module test import StdEnv, StdMaybe import Data.Func pack :: a -> Dynamic | TC, + a pack a = dynamic a :: a^ //square :: Dynamic -> Dynamic //square (v :: A.a: a | + a) = dynamic (v + v) plus :: Dynamic -> Int plus (plus :: A.a : a -> a | + a) = plus 2 3 plus _ = 0 app :: Dynamic Dynamic -> Dynamic app (db :: A.a: a -> a | + a) (a :: A.a: a | + a) = dynamic (db a) dub :: a -> a| + a dub a = a + a Start w = typeCodeOfDynamic (dynamic (\x->x + x) :: A.a : a a -> a | + a)