sig
  val at : InnerTerm.t -> Position.t -> InnerTerm.t
  val replace : InnerTerm.t -> Position.t -> by:InnerTerm.t -> InnerTerm.t
end