aboutsummaryrefslogtreecommitdiff
path: root/lib/model.ml
blob: c44a2899b10516bc4b7592f0e25d5127f4700d59 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
module Make(M: S.Model) = struct
    include M
end

module Message = Make(Message)
module Guild = Make(Guild)
module Channel = Make(Channel)

exception Type_Mismatch

type t =
    | Message of Message.t
    | Guild of Guild.t
    | Channel of Channel.t

let to_message = function
    | Message m -> m
    | _ -> raise Type_Mismatch

let to_guild = function
    | Guild m -> m
    | _ -> raise Type_Mismatch

let to_channel = function
    | Channel m -> m
    | _ -> raise Type_Mismatch