----- Mail original ----- > De: "Diego Olivier Fernandez Pons" > À: "caml-list" > Envoyé: Dimanche 2 Octobre 2011 13:51:13 > Objet: [Caml-list] How to simplify an arithmetic expression ? > OCaml list, > It's easy to encapsulate a couple of arithmetic simplifications into a > function that applies them bottom up to an expression represented as a > tree Not absolutely sure it will fit your needs, but it will at least advertise a nice tool... The "moca" preprocessor allows you to add properties to constructors of a sum type (e. g. associativity, commutativity, etc.). Example from the webpage (*): type t = private | Zero | One | Opp of t | Add of t * t begin associative commutative neutral (Zero) opposite (Opp) end ;; Regards, Xavier Clerc (*) http://moca.inria.fr/eng.htm