Как преобразовать свободную монаду в функтор?

Страница Free structure в вики Haskell определяет функцию для преобразования экземпляра функтора в свободную монаду:

inj :: Functor f => f a -> Free f a
inj fa = Roll $ fmap Return fa

Затем, скажем, inj [1,2,3] , имеет тип (Num t) => Free [] t . Как определить функцию, возвращающую что-то вроде inj [1,2,3] обратно в [1,2,3] ?

7
задан user2023370 3 June 2011 в 00:01
поделиться