(* -*- mode: coq; coq-prog-args: ("-allow-sprop") -*- *)
Set Primitive Projections.
Set Warnings "+non-primitive-record".
Set Warnings "+bad-relevance".
Check SProp.
Definition iUnit : SProp := forall A : SProp, A -> A.
Definition itt : iUnit := fun A a => a.
Definition iUnit_irr (P : iUnit -> Type) (x y : iUnit) : P x -> P y
:= fun v => v.
Definition iSquash (A:Type) : SProp
:= forall P : SProp, (A -> P) -> P.
Definition isquash A : A -> iSquash A
:= fun a P f => f a.
Definition iSquash_rect A (P : iSquash A -> SProp) (H : forall x : A, P (isquash A x))
: forall x : iSquash A, P x
:= fun x => x (P x) (H : A -> P x).
Fail Check (fun A : SProp => A : Type).

Lemma foo : Prop.