summaryrefslogtreecommitdiff
path: root/lib/ur
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-02-26 16:16:54 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-02-26 16:16:54 -0500
commite4e1bf5221bd0cf68df2ba444425e5a0b9d50af1 (patch)
tree986072376068c16f878d6702faa48b50dbd85f92 /lib/ur
parent40e3a4a698ed666280de68373d3ed09f43985bef (diff)
Kind-polymorphic [fst] and friends
Diffstat (limited to 'lib/ur')
-rw-r--r--lib/ur/top.ur10
-rw-r--r--lib/ur/top.urs10
2 files changed, 10 insertions, 10 deletions
diff --git a/lib/ur/top.ur b/lib/ur/top.ur
index 48ee4dd0..053075bd 100644
--- a/lib/ur/top.ur
+++ b/lib/ur/top.ur
@@ -49,11 +49,11 @@ fun not b = if b then False else True
con idT (t :: Type) = t
con record (t :: {Type}) = $t
-con fstTT (t :: (Type * Type)) = t.1
-con sndTT (t :: (Type * Type)) = t.2
-con fstTTT (t :: (Type * Type * Type)) = t.1
-con sndTTT (t :: (Type * Type * Type)) = t.2
-con thdTTT (t :: (Type * Type * Type)) = t.3
+con fst = K1 ==> K2 ==> fn t :: (K1 * K2) => t.1
+con snd = K1 ==> K2 ==> fn t :: (K1 * K2) => t.2
+con fst3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.1
+con snd3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.2
+con thd3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.3
con mapUT = fn f :: Type => map (fn _ :: Unit => f)
diff --git a/lib/ur/top.urs b/lib/ur/top.urs
index 65da4a07..583b025f 100644
--- a/lib/ur/top.urs
+++ b/lib/ur/top.urs
@@ -23,11 +23,11 @@ val not : bool -> bool
con idT = fn t :: Type => t
con record = fn t :: {Type} => $t
-con fstTT = fn t :: (Type * Type) => t.1
-con sndTT = fn t :: (Type * Type) => t.2
-con fstTTT = fn t :: (Type * Type * Type) => t.1
-con sndTTT = fn t :: (Type * Type * Type) => t.2
-con thdTTT = fn t :: (Type * Type * Type) => t.3
+con fst = K1 ==> K2 ==> fn t :: (K1 * K2) => t.1
+con snd = K1 ==> K2 ==> fn t :: (K1 * K2) => t.2
+con fst3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.1
+con snd3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.2
+con thd3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.3
con mapUT = fn f :: Type => map (fn _ :: Unit => f)