summaryrefslogtreecommitdiff
path: root/transfer/examples/pair.tr
blob: 07182e3013839fadab653208e55a8c738f1d8bef (plain)
1
2
3
4
5
6
7
8
9
10
11
Pair : Type -> Type -> Type ;
Pair A B = { p1 : A; p2 : B } ;

pair : (A:Type) -> (B:Type) -> A -> B -> Pair A B ;
pair _ _ x y = { p1 = x; p2 = y } ;

fst : (A:Type) -> (B:Type) -> Pair A B -> A ;
fst _ _ p = case p of { (Pair _ _ x _) -> x } ;

snd : (A:Type) -> (B:Type) -> Pair A B -> B ;
snd _ _ p = case p of { (Pair _ _ x _) -> x } ;