val emailSuffix : string
type user = {id : int, name : string, rname : string, bal : int, joined : C.timestamp,
- app : int}
+ app : int, shares : int}
val rowError : string * C.value list -> 'a
val lookupUser : int -> user
val listUsers : unit -> user list
- val addUser : string * string * int * int -> int
- (* Pass name, real name, and balance ID *)
+ val addUser : string * string * int * int * int -> int
+ (* Pass name, real name, balance ID, and share count *)
val modUser : user -> unit
val deleteUser : int -> string
+ val byPledge : unit -> user list
+ val unmigratedUsers : unit -> user list
val validUsername : string -> bool
val userNameToId : string -> int option
val dateString : unit -> string
val grandfatherUsers : unit -> unit
+
+ type node = {id : int, name : string, descr : string, debian : string}
+
+ val listNodes : unit -> node list
+ val nodeName : int -> string
+ val nodeDebian : int -> string
+
+ val explain : exn -> string
+ val tokens : unit -> string
+ val tokensForked : unit -> unit
end