is_lawful_functor source