sig
  val name : 'Type.t -> 'Type.t -> 'Type.t -> 'Type.t -> string
  val module_name : string
  val structural_descr :
    Structural_descr.t ->
    Structural_descr.t ->
    Structural_descr.t -> Structural_descr.t -> Structural_descr.t
  type ('a, 'b, 'c, 'd) t
  val reprs :
    '-> '-> '-> '-> ('a, 'b, 'c, 'd) Type.Polymorphic4_input.t list
end