comparison demo/more/versioned.urs @ 995:166ea3944b91

Versioned1 demo working
author Adam Chlipala <adamc@hcoop.net>
date Tue, 06 Oct 2009 17:36:45 -0400
parents 10114d7b7477
children
comparison
equal deleted inserted replaced
994:7932d577cf78 995:166ea3944b91
1 functor Make(M : sig 1 functor Make(M : sig
2 con key :: {Type} 2 con key :: {Type}
3 con data :: {Type} 3 con data :: {Type}
4 constraint key ~ data 4 constraint key ~ data
5 constraint [When] ~ (key ++ data) 5 constraint [When, Version] ~ (key ++ data)
6 6
7 val key : $(map sql_injectable key) 7 val key : $(map sql_injectable key)
8 val data : $(map (fn t => {Inj : sql_injectable_prim t, 8 val data : $(map (fn t => {Inj : sql_injectable_prim t,
9 Eq : eq t}) data) 9 Eq : eq t}) data)
10 10
14 val insert : $(M.key ++ M.data) -> transaction unit 14 val insert : $(M.key ++ M.data) -> transaction unit
15 val update : $(M.key ++ M.data) -> transaction unit 15 val update : $(M.key ++ M.data) -> transaction unit
16 16
17 val keys : transaction (list $M.key) 17 val keys : transaction (list $M.key)
18 val current : $M.key -> transaction (option $M.data) 18 val current : $M.key -> transaction (option $M.data)
19
20 type version
21 val keysAt : version -> transaction (list $M.key)
22 val archive : version -> $M.key -> transaction (option $M.data)
23 val updateTimes : transaction (list (version * time))
19 end 24 end