sig
  val decl_map :
    (Term.term -> Term.term) ->
    (Term.term -> Term.term) -> Decl.decl -> Decl.decl
  val decl_fold :
    ('-> Term.term -> 'a) ->
    ('-> Term.term -> 'a) -> '-> Decl.decl -> 'a
  val decl_map_fold :
    ('-> Term.term -> 'a * Term.term) ->
    ('-> Term.term -> 'a * Term.term) -> '-> Decl.decl -> 'a * Decl.decl
end