Module binders.
Definition mynat@{|} := nat.
Definition foo@{i j | i < j, i < j} (A : Type@{i}) : Type@{j}.
exact A.
Defined.
Polymorphic Lemma hidden_strict_type : Type.
Check hidden_strict_type@{_}.
Fail Check hidden_strict_type@{Set}.
Fail Definition morec@{i j|} (A : Type@{i}) : Type@{j} := A.
(* By default constraints are extensible *)
Polymorphic Definition morec@{i j} (A : Type@{i}) : Type@{j} := A.
Check morec@{_ _}.
exact Type@{j}.
Fail Defined.
Abort.
Fail Lemma bar@{u v | } : let x := (fun x => x) : Type@{u} -> Type@{v} in nat.

Lemma bar@{i j| i < j} : Type@{j}.