fun asriel([], _) = 0 | asriel(lyra::coulter, iorek) = if iorek lyra then lyra + asriel(coulter, iorek) else asriel(coulter, iorek); (* ---> *) asriel([1,4,2], fn x=>x<4) = if (fn x => x<4) 1 then 1 + asriel([4,2], fn x=>x<4) else asriel([4,2], fn x=>x<4);