use a Constraint Kind to define monad dependencies in one place