Polymorphic3.1-P
include Type.Polymorphic3_input
val name : 'a Type.t -> 'b Type.t -> 'c Type.t -> string
val module_name : string
val structural_descr : Structural_descr.t -> Structural_descr.t -> Structural_descr.t -> Structural_descr.t
type ('a, 'b, 'c) t
val reprs : 'a -> 'b -> 'c -> ( 'a, 'b, 'c ) t list
val mk_equal : ( 'a -> 'a -> bool ) -> ( 'b -> 'b -> bool ) -> ( 'c -> 'c -> bool ) -> ( 'a, 'b, 'c ) t -> ( 'a, 'b, 'c ) t -> bool
val mk_compare : ( 'a -> 'a -> int ) -> ( 'b -> 'b -> int ) -> ( 'c -> 'c -> int ) -> ( 'a, 'b, 'c ) t -> ( 'a, 'b, 'c ) t -> int
val mk_hash : ( 'a -> int ) -> ( 'b -> int ) -> ( 'c -> int ) -> ( 'a, 'b, 'c ) t -> int
val map : ( 'a -> 'a ) -> ( 'b -> 'b ) -> ( 'c -> 'c ) -> ( 'a, 'b, 'c ) t -> ( 'a, 'b, 'c ) t
val mk_pretty : ( Stdlib.Format.formatter -> 'a -> unit ) -> ( Stdlib.Format.formatter -> 'b -> unit ) -> ( Stdlib.Format.formatter -> 'c -> unit ) -> Stdlib.Format.formatter -> ( 'a, 'b, 'c ) t -> unit
val mk_mem_project : ( ( Project_skeleton.t -> bool ) -> 'a -> bool ) -> ( ( Project_skeleton.t -> bool ) -> 'b -> bool ) -> ( ( Project_skeleton.t -> bool ) -> 'c -> bool ) -> ( Project_skeleton.t -> bool ) -> ( 'a, 'b, 'c ) t -> bool