Adopt Grace
* Asai made the choice to deal with error handling control flow via
effects. Grace only deals with the creation and printing of
diagnostics. For this reason, much of the diff consists of moving from
an effects-based error mechanism to explicitly using the `Result`
type.
For now we use the same error type throughout the codebase. This is
just quickly finish the excision of Asai. In subsequent commits, I
will reexamine the kinds of errors that can arise so that we only
construct diagnostics for errors that the user will face.
I think that much of the code that constructs the diagnostics should
be factored out.
* rename loc to range throughout. Some comments may now contain the
string rangeation...
* refactor Imports to return results
* remove Reporter
* To understand the changes to the parser, refer to this issue:
https://github.com/johnyob/grace/issues/77#issuecomment-4030649630
* This changeset is by no means mergeable, I will still need to review
thoroughly. `failwith "todo"`'s abound.
* This commit contains some janky/untested conversion between Grace and
LSP diagnostics. I don't expect these will remain here for long, since
Grace will hopefully support something like this in the near future.