added <*> and <|> combinators, abstracted out curry pattern...