(* User Modes: +i Invisible User Mode +o Oper User Mode +w WALLOPS User Mode Channel Modes: Type A: +b Ban Channel Mode Type B: +k Key Channel Mode +o Operator Channel Membership Prefix (@) +v Voice Channel Membership Prefix (+) Type C: +l Client Limit Channel Mode Type D: +i Invite-Only Channel Mode +m Moderated Channel Mode +s Secret Channel Mode +t Protected Topic Channel Mode +n No External Messages Mode *) type user = [`i | `o | `w] type chan_a = [`b] type chan_b = [`k | `o | `v] type chan_c = [`l] type chan_d = [`i | `m | `s | `t | `n] type chan = [chan_a | chan_b | chan_c | chan_d] type t = [user | chan] val pp : Format.formatter -> [< t] -> unit val to_char : [< t] -> char val of_char_user : char -> [> user] val of_char_chan : char -> [> chan]