added an Apply directive, and implemented the ycombinator as a unit test