comparison lib/top.urs @ 345:b85e6ba56618

Merge CDisjoint and TDisjoint
author Adam Chlipala <adamc@hcoop.net>
date Sat, 04 Oct 2008 15:50:28 -0400
parents 389399d65331
children fa2d25fe75ce
comparison
equal deleted inserted replaced
344:3c0feecd057d 345:b85e6ba56618
20 val txt : t ::: Type -> ctx ::: {Unit} -> use ::: {Type} -> show t -> t 20 val txt : t ::: Type -> ctx ::: {Unit} -> use ::: {Type} -> show t -> t
21 -> xml ctx use [] 21 -> xml ctx use []
22 22
23 val foldTR : tf :: (Type -> Type) -> tr :: ({Type} -> Type) 23 val foldTR : tf :: (Type -> Type) -> tr :: ({Type} -> Type)
24 -> (nm :: Name -> t :: Type -> rest :: {Type} -> [nm] ~ rest 24 -> (nm :: Name -> t :: Type -> rest :: {Type} -> [nm] ~ rest
25 -> tf t -> tr rest -> tr ([nm = t] ++ rest)) 25 => tf t -> tr rest -> tr ([nm = t] ++ rest))
26 -> tr [] -> r :: {Type} -> $(mapTT tf r) -> tr r 26 -> tr [] -> r :: {Type} -> $(mapTT tf r) -> tr r
27 27
28 val foldT2R : tf :: ((Type * Type) -> Type) -> tr :: ({(Type * Type)} -> Type) 28 val foldT2R : tf :: ((Type * Type) -> Type) -> tr :: ({(Type * Type)} -> Type)
29 -> (nm :: Name -> t :: (Type * Type) -> rest :: {(Type * Type)} -> [nm] ~ rest 29 -> (nm :: Name -> t :: (Type * Type) -> rest :: {(Type * Type)} -> [nm] ~ rest
30 -> tf t -> tr rest -> tr ([nm = t] ++ rest)) 30 => tf t -> tr rest -> tr ([nm = t] ++ rest))
31 -> tr [] -> r :: {(Type * Type)} -> $(mapT2T tf r) -> tr r 31 -> tr [] -> r :: {(Type * Type)} -> $(mapT2T tf r) -> tr r
32 32
33 val foldTR2 : tf1 :: (Type -> Type) -> tf2 :: (Type -> Type) -> tr :: ({Type} -> Type) 33 val foldTR2 : tf1 :: (Type -> Type) -> tf2 :: (Type -> Type) -> tr :: ({Type} -> Type)
34 -> (nm :: Name -> t :: Type -> rest :: {Type} -> [nm] ~ rest 34 -> (nm :: Name -> t :: Type -> rest :: {Type} -> [nm] ~ rest
35 -> tf1 t -> tf2 t -> tr rest -> tr ([nm = t] ++ rest)) 35 => tf1 t -> tf2 t -> tr rest -> tr ([nm = t] ++ rest))
36 -> tr [] -> r :: {Type} -> $(mapTT tf1 r) -> $(mapTT tf2 r) -> tr r 36 -> tr [] -> r :: {Type} -> $(mapTT tf1 r) -> $(mapTT tf2 r) -> tr r
37 37
38 val foldT2R2 : tf1 :: ((Type * Type) -> Type) -> tf2 :: ((Type * Type) -> Type) 38 val foldT2R2 : tf1 :: ((Type * Type) -> Type) -> tf2 :: ((Type * Type) -> Type)
39 -> tr :: ({(Type * Type)} -> Type) 39 -> tr :: ({(Type * Type)} -> Type)
40 -> (nm :: Name -> t :: (Type * Type) -> rest :: {(Type * Type)} -> [nm] ~ rest 40 -> (nm :: Name -> t :: (Type * Type) -> rest :: {(Type * Type)} -> [nm] ~ rest
41 -> tf1 t -> tf2 t -> tr rest -> tr ([nm = t] ++ rest)) 41 => tf1 t -> tf2 t -> tr rest -> tr ([nm = t] ++ rest))
42 -> tr [] -> r :: {(Type * Type)} -> $(mapT2T tf1 r) -> $(mapT2T tf2 r) -> tr r 42 -> tr [] -> r :: {(Type * Type)} -> $(mapT2T tf1 r) -> $(mapT2T tf2 r) -> tr r
43 43
44 val foldTRX : tf :: (Type -> Type) -> ctx :: {Unit} 44 val foldTRX : tf :: (Type -> Type) -> ctx :: {Unit}
45 -> (nm :: Name -> t :: Type -> rest :: {Type} -> [nm] ~ rest 45 -> (nm :: Name -> t :: Type -> rest :: {Type} -> [nm] ~ rest
46 -> tf t -> xml ctx [] []) 46 => tf t -> xml ctx [] [])
47 -> r :: {Type} -> $(mapTT tf r) -> xml ctx [] [] 47 -> r :: {Type} -> $(mapTT tf r) -> xml ctx [] []
48 48
49 val foldT2RX : tf :: ((Type * Type) -> Type) -> ctx :: {Unit} 49 val foldT2RX : tf :: ((Type * Type) -> Type) -> ctx :: {Unit}
50 -> (nm :: Name -> t :: (Type * Type) -> rest :: {(Type * Type)} -> [nm] ~ rest 50 -> (nm :: Name -> t :: (Type * Type) -> rest :: {(Type * Type)} -> [nm] ~ rest
51 -> tf t -> xml ctx [] []) 51 => tf t -> xml ctx [] [])
52 -> r :: {(Type * Type)} -> $(mapT2T tf r) -> xml ctx [] [] 52 -> r :: {(Type * Type)} -> $(mapT2T tf r) -> xml ctx [] []
53 53
54 val foldTRX2 : tf1 :: (Type -> Type) -> tf2 :: (Type -> Type) -> ctx :: {Unit} 54 val foldTRX2 : tf1 :: (Type -> Type) -> tf2 :: (Type -> Type) -> ctx :: {Unit}
55 -> (nm :: Name -> t :: Type -> rest :: {Type} -> [nm] ~ rest 55 -> (nm :: Name -> t :: Type -> rest :: {Type} -> [nm] ~ rest
56 -> tf1 t -> tf2 t -> xml ctx [] []) 56 => tf1 t -> tf2 t -> xml ctx [] [])
57 -> r :: {Type} -> $(mapTT tf1 r) -> $(mapTT tf2 r) -> xml ctx [] [] 57 -> r :: {Type} -> $(mapTT tf1 r) -> $(mapTT tf2 r) -> xml ctx [] []
58 58
59 val foldT2RX2 : tf1 :: ((Type * Type) -> Type) -> tf2 :: ((Type * Type) -> Type) -> ctx :: {Unit} 59 val foldT2RX2 : tf1 :: ((Type * Type) -> Type) -> tf2 :: ((Type * Type) -> Type) -> ctx :: {Unit}
60 -> (nm :: Name -> t :: (Type * Type) -> rest :: {(Type * Type)} -> [nm] ~ rest 60 -> (nm :: Name -> t :: (Type * Type) -> rest :: {(Type * Type)} -> [nm] ~ rest
61 -> tf1 t -> tf2 t -> xml ctx [] []) 61 => tf1 t -> tf2 t -> xml ctx [] [])
62 -> r :: {(Type * Type)} -> $(mapT2T tf1 r) -> $(mapT2T tf2 r) -> xml ctx [] [] 62 -> r :: {(Type * Type)} -> $(mapT2T tf1 r) -> $(mapT2T tf2 r) -> xml ctx [] []
63 63
64 val queryX : tables ::: {{Type}} -> exps ::: {Type} -> ctx ::: {Unit} 64 val queryX : tables ::: {{Type}} -> exps ::: {Type} -> ctx ::: {Unit}
65 -> sql_query tables exps -> tables ~ exps 65 -> sql_query tables exps -> tables ~ exps
66 -> ($(exps ++ fold (fn nm (fields :: {Type}) acc => [nm] ~ acc => [nm = $fields] ++ acc) [] tables) 66 => ($(exps ++ fold (fn nm (fields :: {Type}) acc => [nm] ~ acc => [nm = $fields] ++ acc) [] tables)
67 -> xml ctx [] []) 67 -> xml ctx [] [])
68 -> transaction (xml ctx [] []) 68 -> transaction (xml ctx [] [])
69 69
70 val oneOrNoRows : tables ::: {{Type}} -> exps ::: {Type} -> sql_query tables exps 70 val oneOrNoRows : tables ::: {{Type}} -> exps ::: {Type} -> sql_query tables exps
71 -> tables ~ exps 71 -> tables ~ exps
72 -> transaction 72 => transaction
73 (option $(exps ++ fold (fn nm (fields :: {Type}) acc => [nm] ~ acc => [nm = $fields] ++ acc) [] tables)) 73 (option $(exps ++ fold (fn nm (fields :: {Type}) acc => [nm] ~ acc => [nm = $fields] ++ acc) [] tables))