ometa MTH { loop :f :r (apply(f,r):r)* -> r, myfunc :x ?(x<5) -> (x+1), result = loop(`myfunc, 2) } MTH.match('', `result)