“…These choices affect fundamental properties of computations such as laziness, strictness, completeness, termination and efficiency, to name a few (see, e.g., [43,41,28]). Used for a long time in λ-calculus [8], strategies are present in programming languages such as Clean [33], Curry [24], and Haskell [25] and can be explicitely defined to rewrite terms in languages such as Elan [11], Stratego [42], Maude [29] or Tom [7]. They are also present in graph transformation tools such as PROGRES [39], AGG [19], Fujaba [32], GROOVE [37], GrGen [21] and GP [36].…”