TA
Сложна...
Size: a a a
TA
TA
TA
MK
TA
MK
data Libo a where
Luboy :: forall x. (x -> x) -> Libo a
Concretny :: (a -> a) -> Libo a
MK
MK
λ> data Libo a where Luboy :: (forall x. x -> x) -> Libo a; Concretny :: (a -> a) -> Libo a
λ> use :: Libo Int -> Int -> String; use (Luboy f) v = show $ f v; use (Concretny f) v = show $ f v
λ> use (Luboy id) 42
"42"
λ> use (Concretny (+1)) 42
"43"
MK
MK
к
MK
MK
MK
к
MK