Convert between Dhall and YAML

Version on this page:1.1.0@rev:2
LTS Haskell 21.25:1.2.12@rev:1
Stackage Nightly 2023-06-21:1.2.12@rev:1
Latest on Hackage:1.2.12@rev:2

See all snapshots dhall-yaml appears in

GPL-3.0-only licensed by Gabriel Gonzalez
Maintained by [email protected]
This version can be pinned in stack with:dhall-yaml-1.1.0@sha256:2af5d810a5b381dd5b7c060594a6d024465fc36920fd8a54715b3a201175d4ed,3634

Module documentation for 1.1.0


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.

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