let compile_let_item = function
| (Formula.Cons _ | Formula.Type _
| Formula.Function _ | Formula.Predicate _ | Formula.Trecord _) as item -> item
| Formula.FunctionDef(xs,t,e) -> Formula.FunctionDef(xs,t,Fol_eval.elet_expansion e)
| Formula.PredicateDef(xs,p) ->
let xs,p = Fol_let.compile_def xs p in
Formula.PredicateDef(xs,p)
| Formula.Axiom p -> Formula.Axiom (Fol_let.compile p)