summaryrefslogtreecommitdiff
path: root/lib/ur/top.urs
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-02-24 14:04:07 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-02-24 14:04:07 -0500
commit487f7affa283ac96326a6891c29c0800690b2c5f (patch)
treee356fff1dd9e40b0542313178974d74c1d3ff6c3 /lib/ur/top.urs
parent330dbb60d0cffe60d5257adbd82028737165bf63 (diff)
Make folders abstract
Diffstat (limited to 'lib/ur/top.urs')
-rw-r--r--lib/ur/top.urs12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/ur/top.urs b/lib/ur/top.urs
index 29b34b10..a9e5b6b3 100644
--- a/lib/ur/top.urs
+++ b/lib/ur/top.urs
@@ -1,12 +1,14 @@
(** Row folding *)
-con folder = K ==> fn r :: {K} =>
- tf :: ({K} -> Type)
- -> (nm :: Name -> v :: K -> r :: {K} -> tf r
- -> [[nm] ~ r] => tf ([nm = v] ++ r))
- -> tf [] -> tf r
+con folder :: K --> {K} -> Type
structure Folder : sig
+ val fold : K --> r ::: {K} -> folder r
+ -> tf :: ({K} -> Type)
+ -> (nm :: Name -> v :: K -> r :: {K} -> tf r
+ -> [[nm] ~ r] => tf ([nm = v] ++ r))
+ -> tf [] -> tf r
+
val nil : K --> folder (([]) :: {K})
val cons : K --> r ::: {K} -> nm :: Name -> v :: K
-> [[nm] ~ r] => folder r -> folder ([nm = v] ++ r)