Mercurial > urweb
comparison lib/ur/top.urs @ 898:d1d0b18afd3d
Working on Grid; have gone from one dynamic table bizareness to another
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sun, 19 Jul 2009 17:45:02 -0400 |
parents | 87a7702d681d |
children | 7a4b026e45dd |
comparison
equal
deleted
inserted
replaced
897:2faf558b2d05 | 898:d1d0b18afd3d |
---|---|
19 end | 19 end |
20 | 20 |
21 | 21 |
22 val not : bool -> bool | 22 val not : bool -> bool |
23 | 23 |
24 con idT = fn t :: Type => t | 24 con id = K ==> fn t :: K => t |
25 con record = fn t :: {Type} => $t | 25 con record = fn t :: {Type} => $t |
26 con fst = K1 ==> K2 ==> fn t :: (K1 * K2) => t.1 | 26 con fst = K1 ==> K2 ==> fn t :: (K1 * K2) => t.1 |
27 con snd = K1 ==> K2 ==> fn t :: (K1 * K2) => t.2 | 27 con snd = K1 ==> K2 ==> fn t :: (K1 * K2) => t.2 |
28 con fst3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.1 | 28 con fst3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.1 |
29 con snd3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.2 | 29 con snd3 = K1 ==> K2 ==> K3 ==> fn t :: (K1 * K2 * K3) => t.2 |
42 val show_option : t ::: Type -> show t -> show (option t) | 42 val show_option : t ::: Type -> show t -> show (option t) |
43 val read_option : t ::: Type -> read t -> read (option t) | 43 val read_option : t ::: Type -> read t -> read (option t) |
44 | 44 |
45 val txt : t ::: Type -> ctx ::: {Unit} -> use ::: {Type} -> show t -> t | 45 val txt : t ::: Type -> ctx ::: {Unit} -> use ::: {Type} -> show t -> t |
46 -> xml ctx use [] | 46 -> xml ctx use [] |
47 | |
48 val mp : K --> tf1 :: (K -> Type) -> tf2 :: (K -> Type) | |
49 -> (t ::: K -> tf1 t -> tf2 t) | |
50 -> r :: {K} -> folder r -> $(map tf1 r) -> $(map tf2 r) | |
51 val map2 : K1 --> K2 --> tf1 :: (K1 -> Type) -> tf2 :: (K2 -> Type) -> tf :: (K1 -> K2) | |
52 -> (t ::: K1 -> tf1 t -> tf2 (tf t)) | |
53 -> r :: {K1} -> folder r -> $(map tf1 r) -> $(map tf2 (map tf r)) | |
47 | 54 |
48 val foldUR : tf :: Type -> tr :: ({Unit} -> Type) | 55 val foldUR : tf :: Type -> tr :: ({Unit} -> Type) |
49 -> (nm :: Name -> rest :: {Unit} | 56 -> (nm :: Name -> rest :: {Unit} |
50 -> [[nm] ~ rest] => | 57 -> [[nm] ~ rest] => |
51 tf -> tr rest -> tr ([nm] ++ rest)) | 58 tf -> tr rest -> tr ([nm] ++ rest)) |