Success and failure in Stratego allows one to avoid computing with Boolean values all the time. However, sometimes it is necessary to capture the failure (or success) of a strategy and translate it into a term. For example, when performing [[constant folding]] of relational expressions one would like to write ConstFold : |[ i < j ]| -> (i, j) However, when the =lt= fails, the rule fails. What is needed is a little wrapper strategy that turns failure and success into an appropriate term. ConstFold : |[ i < j ]| -> (i,j))> where =to-bool= could be defined as to-bool(s) = if s then !|[ true ]| else !|[ false ]| end that is, when =s= succeeds return =true=, otherwise return =false=. (Note that these examples use [[concrete syntax]].) -- Main.EelcoVisser - 17 Jun 2002