Refactor AnonymousType typecheck
Refactor Record typecheck
Refactor RecordSelection typecheck
Refactor RecordProjection typecheck
Refactor Function annotate
Refactor Forall typecheck
Refactor some of typecheck
Get closer to fitting the metrics
Clean up style violations
Use path like names in more tests
Implement integrity checks
Always encode OptionalNone in new style
Flatten/unfill applications and builtins when encoding
Remove multi-argument applications
They only exist in binary encoding, so let's keep them there.
Type inference/checking about half done
Passing unit tests for features implemented so far
Support headers for HTTP import
Every AST node uses as_json to express the generic structure for
encoding itself. Expression aliases as_cbor to as_json by default and
then uses as_cbor in to_cbor (aliased as to_binary).
This design is because we need to override the encoding of Double for
CBOR, but want to keep the normal Float value for as_json in case that
is used directly (to avoid surprising the user).