functor and applicative laws.