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