Added a module for formalizing the mutation cost interface

And enforce it too.