Refcatored some part of the Constraint_of module, adding annotation and moving all the simple generic generators to a separate module.