summaryrefslogtreecommitdiff
path: root/test-suite/bugs/closed/3892.v
blob: 833722ba9ae7fbf9f6e12c4e8ffa4c3a6f849e33 (plain)
1
2
3
4
5
6
7
8
(* Check that notation variables do not capture names hidden behind
   another notation. *)
Notation "A <-> B" := ((A -> B) * (B -> A))%type : type_scope.
Notation compose := (fun g f x => g (f x)).
Notation "g 'o' f" := (compose g f) (at level 40, left associativity).
Definition iff_compose {A B C : Type} (g : B <-> C) (f : A <-> B) : A <-> C :=
  (fst g o fst f , snd f o snd g).
(* Used to fail with: This expression should be a name. *)