fn gcdIter a b = ( while b > 0 do ( c = mod a b a = b b = c ) abs a )