Fix map decode when transform_keys is not to_s
Require SimpleDelegator properly
Fix for Ruby 2.6+
Ruby 2.6 added a new method named `then` to `Object` which broke us using the
method_missing based DSL. Switch to def_attr for then/else to fix this.
Switch encoding of binary URI format
Support mixed-kind records
Fix for new Set#=== in newer Ruby
Because breaking things is point releases is how Ruby rolls.
Simplify Natural/subtract on x === y
Implement dependent types, assert : A === B
LetBlock is just sugar now and not part of the AST
This includes the new record selection inspection optimizations.
Normalize multiline string literal line endings
Fix stack level too deep for single quote string
Specialize the visitor since we only use it one place
Do not start IO work until asked
Integrity check must happen after all resolves
Typecheck while resolving