functor (D : Declarator->
  sig
    type t = D.t
    val define : t -> unit
    val get_definition : t -> F.pred Formula.declaration
    val on_definition : (t -> F.pred Formula.declaration -> unit) -> unit
  end