GHCi, version 6.8.1:
http://www.haskell.org/ghc/ :? for help
Loading package base ... linking ... done.
Ok, modules loaded: SystemF.
Prelude SystemF> eId
\A a:A -> a
Prelude SystemF> :t eId
eId :: NExpr (a :-> (a -> a))
Prelude SystemF> :t eBottom
eBottom :: NExpr (a :-> a)
Prelude SystemF> eBottom
\A -> fix (\a:A -> a)
Prelude SystemF> putStrLn $ showExprExplicit eBottom
(EGamma "A" (EFix (ELam "a" TVar EVar)))
Prelude SystemF> tInt
I#
Prelude SystemF> :t (TPrim "I#" (undefined :: Integer))
(TPrim "I#" (undefined :: Integer)) :: TypRep Integer ts
Prelude SystemF> :t tInt
tInt :: TypRep Integer ts
Prelude SystemF> eK
\A B a:A b:B -> a
Prelude SystemF> eFact
fix (\rec:(I#->I#) z:I# -> (\A -> if#) I# (eq# z 0) 1 (times# z (rec (minus# z 1))))
Prelude SystemF> :t eFact
eFact :: NExpr (Integer -> Integer)
Prelude SystemF> compile eFact 5
120
Prelude SystemF> putStrLn $ showExprExplicit eFat