Inductive sig2 (A : Type) (P Q : A -> Prop) : Type :=
    exist2 : forall x : A, P x -> Q x -> {x | P x & Q x}

For sig2: Argument A is implicit
For exist2: Argument A is implicit
For sig2: Argument scopes are [type_scope type_scope type_scope]
For exist2: Argument scopes are [type_scope _ _ _ _ _]
exists x : nat, x = x
     : Prop
fun b : bool => if b then b else b
     : bool -> bool
