subtype-refinement
SubtypeRefinement
module type IValue = sig ... end
module type IConstraint = sig ... end
module type Subtype = sig ... end
val refine : ('a -> bool) -> (module Subtype with type super = 'a)
module Refine (Constraint : IConstraint) : Subtype with type super = Constraint.t
module Singleton (Value : IValue) : Subtype with type super = Value.t