compose
Applicative
Functor
Traverse