sig type state = Start | Intermediate | Accept | Reject class type state_machine = object method add_packet : Jabber.packet -> unit method get_state : unit -> Jabbersm.state end end