Module Ocaml_typing.Allowance
type left_only =
Ocaml_typing.Allowance.allowed * Ocaml_typing.Allowance.disallowedtype right_only =
Ocaml_typing.Allowance.disallowed * Ocaml_typing.Allowance.allowedtype both = Ocaml_typing.Allowance.allowed * Ocaml_typing.Allowance.allowedArrange the permissions appropriately for a positive lattice, by doing nothing.
Arrange the permissions appropriately for a negative lattice, by swapping left and right.
module type Allow_disallow = sig ... endmodule Magic_allow_disallow
(X : Ocaml_typing.Allowance.Allow_disallow) :
Ocaml_typing.Allowance.Allow_disallow
with type ('a, 'b, 'd) sided = ('a, 'b, 'd) X.sidedTakes a slow but type-correct Allow_disallow module and returns the magic version, which is faster. NOTE: for this to be sound, the functions in the original module must be identity functions (up to runtime representation).