laws for functor