And my point is that Haskell doesn't even look like it's run from top to bottom.
Example, consider this mutually recursive definition at the top level:
a = 1:b
b = 2:a
It doesn't, by any means logical or not, look like it runs from top to bottom. If so, the first line would have immediately been an error because `b` is an undefined name.
Example, consider this mutually recursive definition at the top level:
It doesn't, by any means logical or not, look like it runs from top to bottom. If so, the first line would have immediately been an error because `b` is an undefined name.