Convert between Dhall and YAML

Version on this page:1.2.1@rev:2
LTS Haskell 16.16:1.1.0@rev:2
Stackage Nightly 2020-09-26:1.2.2
Latest on Hackage:1.2.2

See all snapshots dhall-yaml appears in

GPL-3.0-only licensed by Gabriel Gonzalez
Maintained by Gabriel439@gmail.com

Module documentation for 1.2.1

This version can be pinned in stack with:dhall-yaml-1.2.1@sha256:86fb12473bdf7d87bf24637f80a529095626887a82844b41b3a294afaa92235a,3462


For installation or development instructions, see:

Full documentation here:


This dhall-yaml package provides a Dhall to YAML compiler, dhall-to-yaml-ng, and a tool for deriving Dhall from YAML code: yaml-to-dhall.

Note that the dhall-json package also provides a dhall-to-yaml executable. Currently, the behavior of the dhall-to-yaml and dhall-to-yaml-ng executables should not differ much, but eventually the dhall-to-yaml-ng executable should be able to support greater functionality due to using the HsYAML package as an intermediate step in the transformation process.

Tutorials for the analogous JSON tools are available in the dhall-json package:


$ dhall-to-yaml-ng <<< "{ foo = [1, 2, 3], bar = { baz = True } }" > example.yaml
$ cat example.yaml
  baz: true
- 1
- 2
- 3
$ yaml-to-dhall '{ foo : List Natural, bar : { baz : Bool } }' < example.yaml
{ bar = { baz = True }, foo = [ 1, 2, 3 ] }





  • BREAKING CHANGE: Add yaml-to-dhall support for inferring the schema
    • You no longer need to provide the command with an explicit schema. The command will infer a reasonably close schema from the provided YAML
    • This is a breaking change because the schema field of the Options type now has type Maybe Text instead of Text
  • Add yaml-to-dhall type subcommand
    • You can use this subcommand to print the inferred schema for a YAML value, so that you can edit the schema and use it for subsequent invocations.
  • Add yaml-to-dhall support for using toMap
    • Now if you specify a Map as the schema, the generated Dhall code will use toMap to improve the appearance



  • Build against dhall-1.30.0


  • Build against dhall-1.29.0


  • Initial release