annotate demo/more/conference.urs @ 1022:4de35df3d545

Start of bidding implementation compiles
author Adam Chlipala <adamc@hcoop.net>
date Sat, 31 Oct 2009 15:51:50 -0400
parents 16f7cb0891b6
children e46227efcbba
rev   line source
adamc@1022 1 signature INPUT = sig
adamc@1022 2 con paper :: {(Type * Type)}
adamc@1022 3 constraint [Id, Document] ~ paper
adamc@1022 4
adamc@1022 5 type userId
adamc@1022 6 val userId_inj : sql_injectable_prim userId
adamc@1022 7 table user : {Id : userId, Nam : string, Password : string, Chair : bool, OnPc : bool}
adamc@1022 8 PRIMARY KEY Id,
adamc@1022 9 CONSTRAINT Nam UNIQUE Nam
adamc@1022 10
adamc@1022 11 type paperId
adamc@1022 12 val paperId_inj : sql_injectable_prim paperId
adamc@1022 13 table paper : ([Id = paperId, Document = blob] ++ map fst paper)
adamc@1022 14 PRIMARY KEY Id
adamc@1022 15
adamc@1022 16 val checkLogin : transaction (option {Id : userId, Nam : string, Chair : bool, OnPc : bool})
adamc@1022 17 val getLogin : transaction {Id : userId, Nam : string, Chair : bool, OnPc : bool}
adamc@1022 18 end
adamc@1022 19
adamc@1022 20 signature OUTPUT = sig
adamc@1022 21 type userId
adamc@1022 22 type paperId
adamc@1022 23
adamc@1022 24 val linksForPc : xbody
adamc@1022 25
adamc@1022 26 con yourPaperTables :: {{Type}}
adamc@1022 27 constraint [Paper] ~ yourPaperTables
adamc@1022 28 val joinYourPaper : tabs ::: {{Type}} -> paper ::: {Type}
adamc@1022 29 -> [[Paper] ~ tabs] => [[Paper] ~ yourPaperTables] => [tabs ~ yourPaperTables] => [[Id] ~ paper] =>
adamc@1022 30 sql_from_items ([Paper = [Id = paperId] ++ paper] ++ tabs)
adamc@1022 31 -> sql_from_items (yourPaperTables ++ [Paper = [Id = paperId] ++ paper] ++ tabs)
adamc@1022 32 end
adamc@1022 33
adamc@1001 34 functor Make(M : sig
adamc@1003 35 con paper :: {(Type * Type)}
adamc@1010 36 constraint [Id, Document, Authors] ~ paper
adamc@1004 37 val paper : $(map Meta.meta paper)
adamc@1007 38 val paperFolder : folder paper
adamc@1003 39
adamc@1001 40 con review :: {(Type * Type)}
adamc@1003 41 constraint [Paper, User] ~ review
adamc@1004 42 val review : $(map Meta.meta review)
adamc@1011 43 val reviewFolder : folder review
adamc@1006 44
adamc@1006 45 val submissionDeadline : time
adamc@1009 46 val summarizePaper : $(map fst paper) -> xbody
adamc@1022 47
adamc@1022 48 functor Make (M : INPUT where con paper = paper)
adamc@1022 49 : OUTPUT where con userId = M.userId
adamc@1022 50 where con paperId = M.paperId
adamc@1001 51 end) : sig
adamc@1001 52
adamc@1001 53 val main : unit -> transaction page
adamc@1001 54
adamc@1001 55 end