adam@1619: functor Make(M : sig adam@1619: type t adam@1619: val read_t : read t adam@1619: val show_t : show t adam@1619: val num_t : num t adam@1619: end) = struct adam@1619: fun calculate (n1, n2) = return adam@1619: {[readError n1 / readError n2 : M.t]} adam@1619: {[readError n1 % readError n2 : M.t]} adam@1619: adam@1619: adam@1619: fun main () = adam@1619: s1 <- source ""; adam@1619: s2 <- source ""; adam@1619: s3 <- source ""; adam@1619: s4 <- source ""; adam@1619: return adam@1619: Client-side adam@1619: adam@1619: / adam@1619: adam@1619: , adam@1619: adam@1619: adam@1619: Server-side adam@1619: adam@1619: adam@1619: / adam@1619: adam@1619: adam@1619: adam@1619: end adam@1619: adam@1619: structure Int = Make(struct type t = int end) adam@1619: structure Float = Make(struct type t = float end) adam@1619: adam@1619: fun main () : transaction page = return adam@1619: Int adam@1619: Float adam@1619: