вот не пример завтипов, но то, что сложно описать без нужных возможностей
некая функция принимает объект с люыми (но известными во время компиляции) ключами, где все элементы имеют тип forall A. E -> A, нужно отдать функцию E -> B, где B - тот самый объект с теми же ключами, но значения элементов - A
простой ответ: сделай как в динамических — введи T - это множество всех выразимых в языке объектов. Функции типа E -> T, и сделать E -> B просто