Why the naming discrepancy? My thinking is that I want both Decimal and
Rational as internal representation, so Value can be decimal or rational.
But what is a good name for "decimal or rational"? I can think of
"number", but I want to reserve that for the supertype of int and this
one. "Rational" would be technically correct because decimals are also
rationals, just with a power of 10 denominator. But then what if I put
a sqrt function in there, or an approximation of pi? Sure technically
they are approximations, but I think this would _also_ be weird. So
let's go with float ... Also, this is what Cue calls them so there is
precedent.
Inspired by Terraform's error output, the box drawing characters tend
to get connected in a terminal (but not IntelliJ it seems), it looks
slightly cleaner than pipes. And these code points are in Unicode since
1993, so I don't think they are particularly controversial to use
(unlike color emoji).
And now that I have to rewrite all the goldens, let's fix the column
counter too. It still counts bytes and not columns, but I'm not sure
if the way it's counted is consistent across applications. We could
the existing unicode-width dependency to count though.
Previously this was difficult to do, because the abstractor could not
report errors. But in the meantime I added that, so now this is every
easy to do. Nice, one more todo eliminated!
Handling numbers with a decimal point (floats) is still to be done
though.