Dhall-golang releases thread


I’ve made a lot of progress on Dhall bindings for Go recently, and I think it’s time to make progress towards a v1.0 release. As a result, I’m releasing the first release candidate today. You can use it by adding this line to your go.mod:

require github.com/philandstuff/dhall-golang v1.0.0-rc.1

The full changelog is here. Note that some things are still in flux and
subject to change:

  • The dhall package is stable and will not have any breaking
    changes. In particular, dhall.Decode and dhall.Unmarshal will
    not have any breaking changes before a v1.0.0 release.
  • The parser package is also stable and will not have any breaking
  • The core package is still subject to change: in particular, names
    which are currently exported may be unexported before a v1.0.0


  • Core Dhall functionality:
    • Parse Dhall source to Terms
    • Resolve Dhall imports
    • Use Dhall cache for imports
    • Typecheck Dhall Terms
    • Evaluate Dhall Terms to Values
    • Marshalling/unmarshalling to CBOR format
  • Go bindings:
    • dhall.Decode to decode a Dhall Value into a Go variable
    • dhall.Unmarshal as a convenience all-in-one
      Dhall-source-to-Go-variable function


(Rather than start a new thread for each dhall-golang release, I’m going to keep them all in one thread.)

I’ve just released dhall-golang v1.0.0-rc.2. You can use it by adding this to your go.mod:

require github.com/philandstuff/dhall-golang v1.0.0-rc.2

Release notes

Another release candidate. As promised, the core package is still
in flux and has undergone a huge refactor in this release. Along with
that, the godoc has been vastly improved, and a new README has been
written to replace the previous scrappy development notes.

Also, this brings dhall-golang up to version 14.0.0 of the language

Breaking changes

  • refactoring of the core package
    • moved core.Term and implementations to new package term
    • removed core.AppValue from public interface
    • renamed various types to remove -Val and -Term suffixes
  • (from Dhall 14.0.0): decimal Natural literals can no longer have
    leading 0 digits



  • dhall.Unmarshal() now resolves imports and typechecks before


  • added core.ListOf, core.OptionalOf, core.NoneOf Value types
    to represent List a, Optional a and None a Values


I’ve just released dhall-golang v1.0.0-rc.3. You can use it by adding this to your go.mod:

require github.com/philandstuff/dhall-golang v1.0.0-rc.3

Another release candidate. A few more breaking changes, though less
drastic than rc.2 was. Things are slowly stabilising.

Thanks to @Duncaen for his contribution to this release.

Breaking changes

  • core.Pi.Range has been renamed to core.Pi.Codomain (#12)
  • core.TextLit has been removed and replaced with core.PlainTextLit.
    There is no longer a (public) interpolated text Value type.
  • struct tags are now dhall not json (#15)


  • fixed a parser bug related to single quote strings (#1)


  • faster parser by approx 30% (#11)