Prelude> :l Lambda
[1 of 1] Compiling Lambda ( Lambda.hs, interpreted )
Ok, modules loaded: Lambda.
Loading package utf8-string-0.2 ... linking ... done.
*Lambda> list
((λx.λy.λf.(f x) y) a) (((λx.λy.λf.(f x) y) b) (((λx.λy.λf.(f x) y) c) nil))
*Lambda> eval list
λf.(f a) (((λx.λy.λf.(f x) y) b) (((λx.λy.λf.(f x) y) c) nil))
*Lambda> eval (Ap list car)
a
*Lambda> eval (Ap list cdr)
λf.(f b) (((λx.λy.λf.(f x) y) c) nil)
*Lambda> eval (Ap list cadr)
b
*Lambda> car
λx.λy.x
*Lambda> cdr
λx.λy.y
*Lambda> cadr
λx.λy.y (λx.λy.x)
*Lambda>