sig
  module Priority : Cf_ordered.Total_T
  class virtual ['a] prioritizer :
    object
      method virtual code : '-> Priority.t
      method virtual tag : '-> string
    end
  class ['a] event :
    '#Cf_journal.T.prioritizer ->
    '->
    string ->
    object
      method level : 'a
      method message : string
      method prioritizer : 'Cf_journal.T.prioritizer
    end
  class virtual ['a] archiver :
    object
      constraint 'a = '#Cf_journal.T.event
      method virtual emit : '-> unit
    end
  class virtual ['a] agent :
    '#Cf_journal.T.prioritizer ->
    '->
    'a list ->
    object
      constraint 'a = ('#Cf_journal.T.event as 'c) #Cf_journal.T.archiver
      val mutable archivers_ : 'a list
      val mutable limit_ : Priority.t
      method enabled : '-> bool
      method private virtual event : '-> string -> 'c
      method private put :
        ''e.
          '-> ('-> 'e) -> ('d, unit, string, 'e) Pervasives.format4 -> 'd
      method setlimit : '-> unit
    end
end