Moving Monads into the core