btw, from this example, it might seem like ``fix`` is useless, as it "wont ever evaluate", but, the funny part is: you dont actually need to fully evaluate something to make use of it in haskell, as it is lazily evaluated: you could have a lazy infinite list, and get its first N items or something like that and, well, it can fully evaluate, you can just not use the provided argument in ``f`` and evaluate to a final value (with pattern matching you can implement anonymous recursion that way)
wow