counterexamples
counterexamples copied to clipboard
Three more examples of monotonicity failures in OCaml
This PR adds three more examples of monotonicity failures in OCaml, relating to
- the relaxed value restriction and strict positivity
- compatibility
- labeled arguments
Another possible addition involves constructor disambiguation:
type t = A | B
module M :
sig
type t (* = A *)
end =
struct
type t = A
end
let f = M.[A;B]
but I think that one's less convincing, because it's more about namespacing than type systems as such.