Module Types.Rigid_name
Types shared by ikind algorithms.
type t = | Atom of {constr : Path.t;arg_index : int;(*
*)arg_index= 0 refers to the base contribution, and subsequent indices refer to the coefficients of the i-th argument. This is a positional index, not a type-variable id.
}| KAtom of Path.t(*A jkind-atom path. Unlike
*)Atom, this refers to a jkind alias path and should be interpreted through jkind lookup in an environment when possible.| Param of int(*
*)Param idonly occurs in formulas for type constructors. Refers to a type-parameter of the constructor, whereidis theTypes.get_idof the type variable representing the parameter.| Unknown of unknown_id(*An unknown quantity with a given id. Used to model not-best in ikinds. This is used when we couldn't compute a precise ikind, e.g. for a polymorphic variant with conjunctive type -- `Constr of (a & b & ...)
*)
val to_string : t -> stringval param : int -> tval unknown : Shape.Uid.t -> t