Функция dynApply
от Data.Dynamics
выглядит очень красиво, но на самом деле она требует мономорфного типа функции. Итак, вы не смогли написатьлюбые обходные пути для получения полиморфных функций в 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
являются конкретными типами). Заранее спасибо.
Может список возможных типов возвращаемых переписываются (до полиморфного 'Т *, конечно)? –
@ DanielWagner, этот подход может работать, спасибо, но я думаю, что это будет слишком много усилий, учитывая диапазон вещей [с разными экземплярами _t_], с которыми мне нужно будет применить их. – gatoatigrado
Также я должен указать, что кто-то, похоже, работает над ним [http://hackage.haskell.org/trac/ghc/wiki/PolymorphicDynamic], но еще нет никакого кода. – gatoatigrado