какие-либо обходные пути, чтобы получить полиморфные функции в Data.Dynamics? - PullRequest
2 голосов
/ 17 января 2012

Функция dynApply из Data.Dynamics выглядит очень красиво, но на самом деле для нее требуется мономорфный тип функции. Итак, вы не могли написать

dynApply (toDyn id) (toDyn 3)

У меня есть код, который нуждается в полиморфных возвращаемых типах. Они имеют ограниченную форму, например Функции

forall t. (a -> t) -> t
forall t. (a -> t) -> b -> t
forall t. (a -> t) -> b -> c -> t
...

(где a, b, c - конкретные типы). Заранее спасибо.

1 Ответ

3 голосов
/ 17 января 2012

Нет, полиморфные функции несовместимы с Data.Dynamic.Для этого потребуется полиморфный Data.Typeable и использование средства проверки типов во время выполнения.

Однако есть билет для этой функции: Полиморфный Data.Dynamic

...