Ah, you know that the second `|' is for a clause defining f when you see the `='. If that is the first point where you can dis-ambiguate then you will have to have quite a bit of look ahead I would think.