I think that the conversion of trans to not using comprehensions is
trans({st, _, []}) ->
[{[], 0}];
trans(S) ->
Fun = fun({S1, M1, C1}) ->
lists:map(fun({M2, C2}) ->
{[M1|M2], C1+C2}
end,
trans(S1))
end,
lists:flatmap(Fun, move(S)).
At least, this returns the same result for zurg:solution() :-)
/Vlad