~singpolyma/dhall-ruby

ref: 3dae10e1594374c8a64de89ce83278a1822e7758 dhall-ruby/lib/dhall/ast.rb -rw-r--r-- 29.2 KiB
implement as Location and use URI internally
Record projection by expression / type
Do not commute multiplication when normalizing
RecordProjection.for
Fix for #join on empty list
Do not commute generally

The operator is commutative, but that doesn't mean x == False should
become False == x upon normalization.
Switch IntegrityCheck encoding to multihash
Split IntegrityCheck and NoIntegrityCheck
Split IntegrityCheck and NoIntegrityCheck
Refactor builtins

The fill/unfill code is much simpler now
IntegrityCheck stores raw hash internally
Disambiguate hoisted union tags properly

An array may contain two nomnatively-equivalent types who are
structurally different -- so they need different (but related) union
tags since they will not share a type.
Enum should not have itself in the alts
More useful to_s for AST nodes
Facility to flatten let blocks
Add new useful facilities to Function
as_dhall for Proc

Cannot actually serialize this, but can be useful for passing functions
in to Dhall functions, etc.
Update to latest dhall-lang
Split Union and Enum

Stop putting special case conditionals for Union#value.nil? everywhere
and just split the classes.
Customizable cache

Caches implemented in this commit:

StandardFileCache - cache conforming to dhall-lang
RamCache - stores in a hash, meant for single-load caching
NoCache - when you want to be sure
Next