Module Partial_subst

type ('term, 'quality, 'univ) t
val make : (int * int * int) -> ('term'quality'univ) t
val add_term : int -> 't -> ('t'q'u) t -> ('t'q'u) t
val maybe_add_term : int option -> 't -> ('t'q'u) t -> ('t'q'u) t
val add_quality : int -> 'q -> ('t'q'u) t -> ('t'q'u) t
val maybe_add_quality : int option -> 'q -> ('t'q'u) t -> ('t'q'u) t
val add_univ : int -> 'u -> ('t'q'u) t -> ('t'q'u) t
val maybe_add_univ : int option -> 'u -> ('t'q'u) t -> ('t'q'u) t
val to_arrays : ('t'q'u) t -> 't array * 'q array * 'u array
val pr : ('t -> Pp.t) -> ('q -> Pp.t) -> ('u -> Pp.t) -> ('t'q'u) t -> Pp.t