(STRATEGY
    INNERMOST)

(VAR
    X Y)
(DATATYPES
    A = µX.< c, n__f(X), true, false >)
(SIGNATURES
    f :: [A] -> A
    if :: [A x A x A] -> A
    activate :: [A] -> A)
(RULES
    f(X) -> if(X,c(),n__f(true()))
    if(true(),X,Y) -> X
    if(false(),X,Y) -> activate(Y)
    f(X) -> n__f(X)
    activate(n__f(X)) -> f(X)
    activate(X) -> X)