finish off functor
apply for id
Id and Optional instances for apply in terms of <$>
a bollocks implementation of apply for list
apply instance for the reader monad
implement a bit of lift
some lift stuff