implemented monad/applicative/functor/etc. interfaces