works with my Maybe functor