jon.recoil.org

Module Jkind.ConstSource

Sourcetype 'd t = 'd Jkind0.Const.t constraint 'd = 'l * 'r

Constant jkinds are used for user-written annotations. They are not actually constant, though: they might contain variables in with-types. The "constant" refers to the fact that there are no sort variables here. The existence of with-types means, though, that we still need the allowance machinery here.

include Allowance.Allow_disallow with type (_, _, 'd) sided = 'd t
Sourcetype (_, _, 'd) sided = 'd t
Sourceval disallow_right : ('a, 'b, 'l * 'r) sided -> ('a, 'b, 'l * Allowance.disallowed) sided

Disallows on the right.

Sourceval disallow_left : ('a, 'b, 'l * 'r) sided -> ('a, 'b, Allowance.disallowed * 'r) sided

Disallows a the left.

Sourceval allow_right : ('a, 'b, 'l * Allowance.allowed) sided -> ('a, 'b, 'l * 'r) sided

Generalizes a right-hand-side allowed to be any allowance.

Sourceval allow_left : ('a, 'b, Allowance.allowed * 'r) sided -> ('a, 'b, 'l * 'r) sided

Generalizes a left-hand-side allowed to be any allowance.

Sourceval to_out_jkind_const : Env.t -> 'd t -> Outcometree.out_jkind_const

Creates an abstract jkind, with max with-bounds, from the path.

Sourceval of_annotation : ?use_abstract_jkinds:bool -> context:('l * Allowance.allowed) History.annotation_context -> Env.t -> Ocaml_parsing.Parsetree.jkind_annotation -> ('l * Allowance.allowed) t
Sourceval expand_once : Env.t -> (_, 'd) Types.base_and_axes -> 'd t option