functor (D : Declarator) -> sig type t = D.t val define : t -> unit val get_definition : t -> decl val on_definition : (t -> decl -> unit) -> unit end