GP
Size: a a a
GP
ЗП
data Kind = One | Two | ThreeIsSymbol s => Tagged s TypeЗП
Tagged "One" ...ЗП
GP
ЗП
GP
GP
ЗП
ЗП
from/toGP
ЗП
lam_ :: forall tf a. TF.Eval (tf String) a => a -> EADT (BASE tf) -> EADT (BASE tf)
lam_ t b = lam (TF.from t) b
a = lam_ (Tuple "x" TInt) (var "y") :: STLC
b = lam_ "y" (var "x") :: UTLC
ЗП
ЗП
ЗП
ЗП
class ShowLamAlg a where
showLamAlg :: a -> String
instance sshowLamAlg :: ShowLamAlg String where
showLamAlg s = s
instance ttshowLamAlg :: ShowLamAlg (Tuple String Type) where
showLamAlg (Tuple v t) = "(" <> v <> ": " <> show t <> ")"
instance showAlgLam :: (Eval (tf String) a, ShowLamAlg a) => ShowAlg (LamF tf) where
showAlg (LamF t b) = "\\" <> showLamAlg (TF.to t) <> "." <> b
GP