listen: the purescript stuff is not actually the stuff that is running on the llama site these days. maybe see this post.
okay so these are slides. if you have a javascript enabled, you should be able to click on one of the little -symbols in order to view like one slide. and then press a and d keys to move back and forward through them. (and press escape to like exit slide mode.) (also also press t to toggle display of current time)
camelid in sheep’s clothing
not an alpaca
what, if anything, is a llama?
recursion: http://llama-the-ultimate.org/slides/lambdadays2018
me: @JonasWinje, Glorp
am not used to proper slides
hopes for no mistakes
hi hello welcome to object oriented days
part 0 is intro, background
some general fp things?
web dev wiring stuff
(from interview with Dylan Carlson (the guitarist (who plays in Earth)))
— I joke about: I have only had one good idea, and I’ve been running with it ever since.
— What is that?
— To play slow and repeat yourself.
to have evaluator
in text editor
as if by hand
btw smalltalk
(λa.λb.a ((λa.λb.a (λn.λf.λx.f (n f x)) b) b) (λf.λx.x)) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λb.(λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) b) (λf.λx.x)) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x))))))))))) (λf.λx.x) (λx.(λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) x)))))))))) (λf.λx.x) (λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))) (λb.(λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λn.λf.λx.f (n f x)) b) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))) (λx.(λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))) (λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))))))) λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))))))) f x) λf.λx.f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))))) f x)) f x) λf.λx.f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))))) f x)) x) λf.λx.f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))))) f x)) λf.λx.f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))))) f x)) f x)) λf.λx.f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))))) f x)) x)) λf.λx.f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))))) f x))) λf.λx.f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))) f x)) f x))) λf.λx.f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))) f x)) x))) λf.λx.f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))) f x)))) λf.λx.f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))) f x)) f x)))) λf.λx.f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))) f x)) x)))) λf.λx.f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))) f x))))) λf.λx.f (f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))) f x)) f x))))) λf.λx.f (f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))) f x)) x))))) λf.λx.f (f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))) f x)))))) λf.λx.f (f (f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))) f x)) f x)))))) λf.λx.f (f (f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))) f x)) x)))))) λf.λx.f (f (f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))) f x))))))) λf.λx.f (f (f (f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))) f x)) f x))))))) λf.λx.f (f (f (f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))) f x)) x))))))) λf.λx.f (f (f (f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))) f x)))))))) λf.λx.f (f (f (f (f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))) f x)) f x)))))))) λf.λx.f (f (f (f (f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))) f x)) x)))))))) λf.λx.f (f (f (f (f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))) f x))))))))) λf.λx.f (f (f (f (f (f (f (f (f ((λf.λx.f ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))) f x)) f x))))))))) λf.λx.f (f (f (f (f (f (f (f (f ((λx.f ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))) f x)) x))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))) f x)))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f ((λb.(λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λn.λf.λx.f (n f x)) b) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))) f x)))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f ((λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))) f x)))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f ((λx.(λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))) f x)))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))))))) f x)))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))))) f x)) f x)))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))))) f x)) x)))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))))) f x))))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))))) f x)) f x))))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))))) f x)) x))))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))))) f x)))))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))) f x)) f x)))))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))) f x)) x)))))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f (f (f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x))))))))))))))) f x))))))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f (f (f ((λf.λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))) f x)) f x))))))))))))) λf.λx.f (f (f (f (f (f (f (f (f (f (f (f (f ((λx.f ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λn.λf.λx.f (n f x)) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) ((λa.λb.a (λn.λf.λx.f (n f x)) b) (λf.λx.f (f (f (f (f (f (f (f (f (f x)))))))))) (λf.λx.x)))))))))))))) f x)) x)))))))))))))
someone asked us a question
answer was awkward
emacs and standard ml
emacs and racket
would be to link to something
that ran in browser
I don’t know too much about
web development)
demo a little bit
tech
a bit of haskell and elm
purescript is a thing
do basic HTML
and some CSS
code editor for browser
(used in vs code)
part 1 is purescript then
with sensible ml things
and weird haskellisms
is good for getting started
(that is what it’s for)
draws dotted lines under stuff
and colours some words
wait part 1 is also lambda calculus!
mathematical logic
for computation
(λa.a (foo a)) bar
and function application
and variables
(λa.a (foo a)) bar
Exp u ::= | x | variable |
λx.u | abstraction | |
u1 u2 | application |
(λa.a (foo a)) bar
App (Lam "a" (App (Var "foo") (Var "a"))) (Var "bar")
parsing
lam :: Parser String Term -> Parser String Term lam x = do _ <- (string "λ") <|> (string "\\") p <- identifier _ <- (string ".") b <- x pure (Lam p b)
reserved :: Set.Set Char reserved = Set.fromFoldable [':', '\\', '≜', 'λ', ' ', '\n', '\t', '.', '(', ')']
identifier :: Parser String String identifier = many1 (satisfy (\x -> not (Set.member x reserved))) >>= pure <<< listString
paren :: forall a b m.StringLike a => Monad m => ParserT a m b -> ParserT a m b paren x = between (string "(") (string ")") x
unparsing
pstring :: String -> String pstring s = "(" <> s <> ")" argstring :: Term -> String argstring (Var s) = s argstring t = pstring (unparse t) -- | uns the parse unparse :: Term -> String unparse (Lam p b) = "λ" <> p <> "." <> unparse b unparse (App (Lam p b) a) = pstring (unparse (Lam p b)) <> " " <> argstring a unparse (App f a) = unparse f <> " " <> argstring a unparse (Var s) = s
computation
variables in scope but
use substitution)
as if by hand
as if by hand
(btw I like substitution)
reducible expressions
of a lambda abstraction
to an expression
(λa.a (foo a)) bar
(λa.a (foo a)) bar
beta reduction
argument substituted
for parameter
(λa.a (foo a)) bar
(λa.a (foo a)) bar
argument: bar
parameter: a
body:
a (foo a)
swoosh
bar (foo bar)
so
(λa.a (foo a)) bar
a (foo a)
bar (foo bar)
finding a reducible expression
(λa.a (foo a)) bar
(λa.a (foo a)) bar
(λa.a (foo a)) bar
data structures and functions
for searching for terms
data Redex = Redex Term String Term
redex :: Term -> Maybe Redex redex (App (Lam p b) a) = Just (Redex a p b) redex _ = Nothing
(λa.a (foo a)) bar
given
App (Lam "a" (App (Var "foo") (Var "a"))) (Var "bar")
the match on
redex (App (Lam p b) a) = ...
should match and like bind variables
p = "a" b = App (Var "foo") (Var "a") a = (Var "bar")
substitution (swoosh)
(λa.a (foo a)) bar
a (foo a)
bar (foo bar)
subst :: Redex -> Term subst (Redex arg param body) = halp body where halp :: Term -> Term halp (App f a) = App (halp f) (halp a) halp (Lam p b) = Lam p (if p == param then b else halp b) halp (Var s) = if s == param then arg else (Var s)
toplevel definitions
alpha renaming)
also btw boolean blindness
return the stuff you need for
next part of program
often more good:
data Redex = Redex Term String Term
redex :: Term -> Maybe Redex
subst :: Redex -> Term
possibly less good:
redex :: Term -> Boolean
unsurprisingly
better A and B leads to
better A -> B
part 2 is wiring? assembly? architecture?
layer with state and effects
surrounding the core
io, eff
modernized algol
reasonably properly
(other parts less so)
of a lambda calculus
evaluator
--optimise --standalone lambs
--to lambs.js
parse :: String -> Maybe Toplevel parse s = Parse.parseTop s
step :: Maybe Toplevel -> String step Nothing = ":(" step (Just (Def (Define s _))) = s <> " is defined :)" step (Just (Undef (Undefine s))) = s <> " is undefined :o" step (Just (Trm term)) = execStr (Just (stepExec term))
isJust :: forall a. Maybe a -> Boolean isJust Nothing = false isJust _ = true
we can test some stuff in js console
lambs.step(lambs.parse("(λx.λy.y x) foo"))
lambs.isJust(lambs.parse("(λx.λy.y x foo"))
var lambs; var defs; var getDefs; var updateDefs; require(['lambs'], function (foo) { lambs = foo; defs = lambs.noDefs; updateDefs = function (d) { defs = lambs.updateDefs(d)(defs); }; });
the mo in monaco stands for moo, the co for cow
put it somewhere within reach
require bit me
var startMonaco = function() { var res = []; var elems = document.getElementsByName("lambs"); require(['vs/editor/editor.main'], function() { for (var i = 0; i < elems.length; i++) { var elem = elems[i]; if (elem.getAttribute("prelude") === "true") { res.push(startPreluditor(elem)); } else { res.push(startEditor(elem)); } }}); return res; };
var content = element.textContent; element.textContent = ""; var editor = monaco.editor.create(element, { value: content, lineNumbers: false, quickSuggestions: false, mouseWheelZoom: true });
editor.addCommand([monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_L], function() { var range = editor.getSelection(); var id = { major: 1, minor: 1 }; var text = 'λ'; var op = {identifier: id, range: range, text: text, forceMoveMarkers: true}; editor.executeEdits("lambs", [op]); });
editor.addCommand([monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter], function() { var selection = editor.getSelection(); var line = selection.positionLineNumber; var model = editor.getModel(); var s = model.getLineContent(line); var pos = new monaco.Position(line, s.length + 1); editor.setPosition(pos); var range = editor.getSelection(); var id = { major: 1, minor: 1 }; var parsed = lambs.parse(s); updateDefs(parsed); var text = '\n' + lambs.step(parsed); var op = {identifier: id, range: range, text: text, forceMoveMarkers: true}; editor.pushUndoStop(); editor.executeEdits("lambs", [op]); editor.pushUndoStop(); editor.revealPosition(editor.getPosition()); });
html+css
I use racket for this but it basically amounts to
<html> ... <body> ... <p>blah blah hello goodbye</p> <div name="lambs"> (λx.λy.y x) foo bar </div> <p>blah blah blah</p> <div name="lambs"> (λx.λy.y x) foo bar </div> ...
part conclusion is okay yes
appendix A is like, misc
purescript broke some of my stuff
but only one time
typeclasses, show and ord and such
PSCi, version 0.11.7 Type :? for help import Prelude > { x: 1 }
typeclasses, show and ord and such
PSCi, version 0.11.7 Type :? for help import Prelude > { x: 1 } Error found: in module $PSCI at <internal> line 0, column 0 - line 0, column 0 No type class instance was found for Data.Show.Show { x :: Int } while applying a function eval of type Eval t2 => t2 -> Eff ( console :: CONSOLE ) Unit to argument it while checking that expression eval it has type Eff t0 t1 in value declaration $main where t0 is an unknown type t1 is an unknown type t2 is an unknown type See https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md for more information, or to contribute content related to this error.
has thing of type T in it
don’t know where T is
record punning
if you have e.g.
x = "hello"
and you wanna do
{ x: x, y: 5 }
you can do
{ x, y: 5 }
instead.
(I think that’s weird)
oogly boogly beep boop bap
currying instead
Could not match type Ren -> Exec with type Exec while checking that type Ren -> Exec is at least as general as type Exec while checking that expression renameHalp f has type Exec in value declaration stepExec
paren :: forall a b m.StringLike a => Monad m => ParserT a m b -> ParserT a m b paren x = between (string "(") (string ")") x
Could not match type Function with type ParserT a0 while trying to match type Function (ParserT t3 t4 t5) with type ParserT a0 m1 while checking that expression (between (string "(")) (string ")") has type ParserT a0 m1 b2 in value declaration paren where m1 is a rigid type variable b2 is a rigid type variable a0 is a rigid type variable t5 is an unknown type t3 is an unknown type t4 is an unknown type
okay bye
what, if anything, is a llama?
recursion: http://llama-the-ultimate.org/slides/lambdadays2018
me: @JonasWinje, Glorp