Somehow, we allow traces with no continuation after and currently
default to a Todo. That todo is completely invisible from a user
standpoint and return a generic `a`.
So it is pretty easy for someone to think their program is okay,
compiles, and have no issues, while simply crashing at runtime because
of an invisible todo.
Hence, I've changed that to default to `Void` instead, which is more
sensible as a default for an empty trace.
Also, I've made the parser fail with one puts a colon for label, but
doesn't add any value to display.
Fixes#1113.
Signed-off-by: KtorZ <matthias.benkort@gmail.com>
We've never been using those 'expected' tokens captured during
parsing, which is lame because they contain useful information!
This is much better than merely showing our infamous
"Try removing it!"
While we agree on the idea of having some ways of emitting events, the
design hasn't been completely fleshed out and it is unclear whether
events should have a well-defined format independent of the framework
/ compiler and what this format should be.
So we need more time discussing and agreeing about what use case we
are actually trying to solve with that.
Irrespective of that, some cleanup was also needed on the UPLC side
anyway since the PR introduced a lot of needless duplications.