comparison demo/more/conference.urs @ 1030:6bcc1020d5cd

Start of Decision
author Adam Chlipala <adamc@hcoop.net>
date Mon, 02 Nov 2009 15:48:06 -0500
parents be1aec7333a5
children 5d9f47124c4c
comparison
equal deleted inserted replaced
1029:53a22f46f377 1030:6bcc1020d5cd
44 con paper :: {(Type * Type)} 44 con paper :: {(Type * Type)}
45 constraint [Id, Document, Authors] ~ paper 45 constraint [Id, Document, Authors] ~ paper
46 val paper : $(map Meta.meta paper) 46 val paper : $(map Meta.meta paper)
47 val paperFolder : folder paper 47 val paperFolder : folder paper
48 48
49 con paperPrivate :: {Type}
50 constraint [Id, Document, Authors] ~ paperPrivate
51 constraint paper ~ paperPrivate
52 val paperPrivate : $(map Meta.private paperPrivate)
53 val paperPrivateFolder : folder paperPrivate
54
49 con review :: {(Type * Type)} 55 con review :: {(Type * Type)}
50 constraint [Paper, User] ~ review 56 constraint [Paper, User] ~ review
51 val review : $(map Meta.meta review) 57 val review : $(map Meta.meta review)
52 val reviewFolder : folder review 58 val reviewFolder : folder review
53 59
54 val submissionDeadline : time 60 val submissionDeadline : time
55 val summarizePaper : ctx ::: {Unit} -> [[Body] ~ ctx] => $(map fst paper) -> xml ([Body] ++ ctx) [] [] 61 val summarizePaper : ctx ::: {Unit} -> [[Body] ~ ctx] => $(map fst paper ++ paperPrivate)
62 -> xml ([Body] ++ ctx) [] []
56 63
57 functor Make (M : INPUT where con paper = map fst paper) 64 functor Make (M : INPUT where con paper = map fst paper ++ paperPrivate)
58 : OUTPUT where con paper = map fst paper 65 : OUTPUT where con paper = map fst paper ++ paperPrivate
59 where con userId = M.userId 66 where con userId = M.userId
60 where con paperId = M.paperId 67 where con paperId = M.paperId
61 end) : sig 68 end) : sig
62 69
63 val main : unit -> transaction page 70 val main : unit -> transaction page
64 71
65 end 72 end
73
74 functor Join(M : sig
75 structure O1 : OUTPUT
76
77 structure O2 : OUTPUT where con paper = O1.paper
78 where con userId = O1.userId
79 where con paperId = O1.paperId
80
81 constraint O1.yourPaperTables ~ O2.yourPaperTables
82 end) : OUTPUT where con paper = M.O1.paper
83 where con userId = M.O1.userId
84 where con paperId = M.O1.paperId
85 where con yourPaperTables = M.O1.yourPaperTables ++ M.O2.yourPaperTables