module Data.Pair; type Pair (A : Type) (B : Type) := mkPair : A → B → Pair A B; fst : (A : Type) → (B : Type) → Pair A B → A; fst _ _ (mkPair a b) := a; end;