Combinatory Logic (Pure, Applied and Typed)