Refactored ConstrainedType.fs