Rename app to effect and remove reader and state
Implement functor applicative and monad for set