Releases: dhall-lang/dhall-haskell
Releases · dhall-lang/dhall-haskell
1.31.1
- BUG FIX: Allow whitespace after record pun entry
- The record pun feature introduced in the previous release did not
correctly parse record puns with trailing whitespace, which this change
fixes.
- The record pun feature introduced in the previous release did not
- Expose
{default,}InputNormalizer- The previous version introduced a breaking change to the
autoWithtype
that required access to the implementation ofInputNormalizer, which was
not exported. This change fixes that.
- The previous version introduced a breaking change to the
- Build against latest dependencies
- Prefer to format using record puns when possible
dhall formatwill now reformat code to use record puns when applicable
- Fixes and improvements to error messages:
1.31.0
- Supports version 15.0.0 of the standard
- Implement
withkeyword- You can now write
someRecord with a.b.c = xto update a nested
fields
- You can now write
- Add support for record puns
- You can now write
{ x, y }as a shorthand for{ x = x, y = y }
- You can now write
- Implement
- BREAKING CHANGE TO THE API: Auto-derive
Generic/FromDhall/ToDhallwith Template Haskell- Now the
Dhall.TH.makeHaskell*utilities will include these derived
instances in the generated declarations - This is a breaking change since users were likely already generating these
instances separately, which will now conflict with the included instances
- Now the
- BREAKING CHANGE TO THE API:
From/ToDhallno longer takesInterpretOptionsargument- The types of the
autoWithandinjectWithmethods have changed to
take anInputNormalizerinstead of anInterpretOptions- Note that
InputNormalizeris a subset ofInterpretOptions
- Note that
- This is a breaking change to how derived
FromDhall/ToDhallinstances
are customized to more closely match how other Haskell packages customize
derived instances (e.g.aesonwithFromJSON/ToJSON)- Previously you would customize the behavior globally by passing in
a top-levelInterpretOptionsrecord toautoWith - Now you can customize the behavior locally on a per-instance basis
- Previously you would customize the behavior globally by passing in
- This change enables the following change ...
- The types of the
- Add
Dhall.Derivingmodule forderiving-viahelpers- Now you can take advantage of the
-XDerivingVialanguage extension to
customize derivedFromDhall/ToDhallinstances, like this:deriving (FromDhall, ToDhall) via Codec (SetSingletonConstructors Bare) Name
- Now you can take advantage of the
- BREAKING CHANGE TO THE LANGUAGE: Match standard with respect to
using toMaphttps://example.com using toMap customHeadersis now a parse error
and needs to be explicitly parenthesized as
https://example.com using (toMap customHeaders)- The language standard had always required the parentheses, but the Haskell
implementation was not correctly matching the standard
- Fix formatting of indented comments containing empty lines
dhall formatwas previously not idempotent when formatting indented
comments with empty lines- Specifically, the formatter kept indenting things further with each
format, which this change fixes
- Fix pretty-printer to preserve original numeric literals
- Now
dhall formatwill preserve numeric literals exactly how you wrote
them - For example,
0xFFwill no longer be reformatted as255
- Now
- Add
dhall to-directory-treesupport forMapsMaps are now converted to directories (just like records)
- Add manpage
- ... mainly for the benefit of people packaging Dhall for various
distributions
- ... mainly for the benefit of people packaging Dhall for various
- Group commands in CLI
- The command-line
--helpoutput now groups commands into useful
sections
- The command-line
- Fix numeric parsing for GHCJS
- The GHCJS backend for Dhall was failing to parse numbers, which this
change fixes
- The GHCJS backend for Dhall was failing to parse numbers, which this
- Fixes and improvements to error messages:
- Fixes and improvements to the haddocks:
1.30.0
- Supports version 14.0.0 of the standard
- BREAKING CHANGE TO THE API: Add
--checkflag todhall {lint,freeze}- You can now use the
--checkflag to verify that a file has already been
linted or frozen - This is a breaking change to the types used by the
Dhall.Formatmodule
- You can now use the
- BREAKING CHANGE TO THE LANGUAGE: Disallow
Naturalliterals with leading zeros- Now a literal like
042is no longer valid - See the changelog for standard version 14.0.0 for more details
- Now a literal like
- BUG FIX: Fix parsing of
Doubleliteral trailing whitespace- Certain expressions using
Doubleliterals would fail to parse, which this
change fixes
- Certain expressions using
- BUG FIX: Use
DeriveLiftinstead of GHC Generics to deriveLift- This fixes a build failure on GHC 8.10
- Drop support for GHC 7.10.3
- GHC 8.0.2 is now the earliest supported version
- Add support for dotted field syntax
{ x.y.z = 1 }now legal syntax for nested fields- See the changelog for standard version 14.0.0 for more details
- Add support for duplicate record fields
- This combines with the previous feature to let you write
{ x.y = 1, x.z = True }, which is equivalent to
{ x = { y = 1, z = True } } - See the changelog for standard version 14.0.0 for more details
- This combines with the previous feature to let you write
- Add
dhall lintsupport for deprecatingOptional/{fold,build}- The
Optional/{fold,build}built-ins are deprecated and can be implemented
in terms of other language features Optional/foldcan be implemented in terms ofmerge(which now works on
Optionalvalues)Optional/buildcould always be implemented usingSome/Nonedhall lintnow transforms the deprecated built-ins to use their
equivalent built-in-free versions
- The
- Support Template Haskell for multiple datatypes
- This extends the Template Haskell support added in the previous release to
work for datatypes that refer to one another
- This extends the Template Haskell support added in the previous release to
- Add support for custom substitutions
- You can now add custom substitutions, which are like
letbindings that
propagate to transitive imports
- You can now add custom substitutions, which are like
- Small formatting fixes
dhall-1.29.0
- Supports version 13.0.0 of the standard
- BREAKING CHANGE: Generate Haskell datatype declarations from Dhall types
- You can now use the
makeHaskellTypeFromUnionTemplate Haskell utility
to generate a Haskell datatype declaration from a Dhall union type - This helps ensure that your Haskell types and Dhall types stay in sync,
when you want the Dhall type to be the source of truth - This is a breaking change because the default
InterpretOptionschanged
the default handling of singleton constructors fromWrappedtoSmart - You can preserve the old behavior using:
autoWith defaultInterpretOptions{ singletonConstructors = Wrapped }
- You can now use the
- BUG FIX: Fix
dhall freeze --cacheanddhall lintto preservelet-related comments- Now they match the behavior of
dhall formatwith regard to preserving
these comments
- Now they match the behavior of
- BUG FIX: Fix escaping of significant leading whitespace when formatting code
- The formatter would sometimes unnecessarily escape significant leading
whitespace for the final line of multiline string literals, which this
change fixes
- The formatter would sometimes unnecessarily escape significant leading
- BUG FIX: Fix
dhall encode --jsonforDoublevalues - NEW FEATURE:
dhall to-directory-treecommand- You can now generate a directory tree from a Dhall expression
- Specifically:
- records are converted to directories
Textfields are converted to files named after the fieldOptionalvalues are omitted ifNone- Everything else is rejected
- NEW FEATURE: Hexadecimal literals
- See the changelog for standard version 13.0.0 for more details
- NEW FEATURE:
mergeworks onOptionalvalues- See the changelog for standard version 13.0.0 for more details
- Improve formatter
dhall formatwill now render expressions nested inside record fields or
alternatives more compactly, including:- Records
- Record completion expressions
- Expressions wrapped in
Some - Lists
- Exclude the
using ...suffix from imports listed bydhall resolve- Specifically when using the
--{immediate,transitive}-dependenciesflags
- Specifically when using the
dhall-1.28.0
- Supports version 12.0.0 of the standard
- BREAKING CHANGE: Add
Integer/{clamp,negate}built-ins- This is a technically breaking change API since this adds a new
constructor to theExprtype - This is also a technically breaking change to the language. See the changelog for standard version 12.0.0 for more details
- This is a technically breaking change API since this adds a new
- BREAKING CHANGE: Remove support for fusion
- This is also a technically breaking change to the language. See the changelog for standard version 12.0.0 for more details
- BREAKING CHANGE: Parse whitespace more precisely
- The Haskell implementation now matches the official grammar much more
closely, but as a result will now reject some programs that it used to
accept - For example,
1:Naturalused to be valid and now is no longer valid as
the standard requires mandatory whitespace after the: - Consult the standard grammar if you run into a new parsing error as a result of this change
- This is also a parsing performance regression (specifically for parsing
comments), but should not be noticeable in practice. See #1512 for more details
- The Haskell implementation now matches the official grammar much more
- BREAKING CHANGE: Rename
TypetoDecoderandInputTypetoEncoder#1483 / #1489 - BUG FIX: Fix
dhall format --check- Before this change
dhall format --checkwould fail due to attempting to
read all of standard input in twice
- Before this change
- BUG FIX: Fix
dhall freezeto always re-freeze an import- Before this fix,
dhall freezewould not attempt to refreeze an already
frozen import
- Before this fix,
- Permit spaces around completion operator
- See the changelog for standard version 12.0.0 for more details
- Make
missingreferentially transparentmissingcan now be imported transitively via a remote import- Normally resolving
missingwould still still fail, except for
missing as Location, which is now a valid transitive import - See the changelog for standard version 12.0.0 for more details
- Write cache files atomically
- This is a resilience improvement so that the cache is not left in a
corrupt state in the event of a power outage or exhausting disk/memory
- This is a resilience improvement so that the cache is not left in a
- New
Dhall.functionutility- This is provides the same functionality as the
Interpretinstance for
(->), except without the use of typeclasses
- This is provides the same functionality as the
- New
dhall haskell-syntax-treecommand- This command displays the Haskell syntax tree of an expression
(primarily for debugging purposes) - Note that this is highly-volatile and subject to change, so don't depend
on this programmatically. We may break the output of this command without
any notice.
- This command displays the Haskell syntax tree of an expression
- Add
instance Show Ann - Move normalization code from
Dhall.CoretoDhall.Normalize- Note that this is not a breaking change. The relocated utilities are
still re-exported fromDhall.Core
- Note that this is not a breaking change. The relocated utilities are
- Fix
dhall resolve --transitive-dependenciesto list dependencies in "post-order" - Performance improvements
- Fixes and improvements to code formatting
- Fixes and improvements to code linting
- Fixes and improvements to error messages
- Fixes and improvements to the parser
- Fixes and improvements to diffs
- Fixes and improvements to the REPL
- Fixes and improvements to documentation
dhall-1.27.0
- Supports version 11.0.0 of the standard
- BREAKING CHANGE: Rename
Inject/InterprettoToDhall/FromDhall- This change
ConstraintKindsto minimize disruption by keeping around
Inject/Interpretas synonyms forToDhall/FromDhall - In other words, constraints and derived instances using
Injector
Interpretwill still work - However, manual instances using
InjectorInterpretwon't work
unless you rename them toToDhall/FromDhallor enable the
TypeSynonymInstancesextension
- This change
- BREAKING CHANGE: Fix
Eqinstance forExprs with specialDoubles- This fixes the
Eqinstance forExprs to match the standard regarding
Doublecomparisons - Specifically:
NaN == NaNand-0.0 /= 0.0 - This is a breaking change because the
DoubleLitconstructor ofExpr
now stores aDhallDoubleinstead of aDouble
- This fixes the
- BREAKING CHANGE: Add
--fileoption fordhall hash- This is a breaking change because it also removes the
Dhall.Hashmodule,
which wasn't really carrying its own weight
- This is a breaking change because it also removes the
- Add support for leading separators
- See the changelog for standard version 11.0.0 for more details
- Add record completion operator
- See the changelog for standard version 11.0.0 for more details
- Add
dhall tagssubcommand- This generates an ETags file from an input file or directory
- Add
dhall lintsupport for fixing malformed assertionsdhall lintnow fixeslet example = foo === barto be
let example = assert : foo === bar
- Normalize inferred types #1337
- New
FromDhall/ToDhall(previouslyInterpret/Inject) instances for: - Add
--outputoption todhall - Move syntax things from
Dhall.Coreto a newDhall.Syntaxmodule- This is not a breaking change.
Dhall.Corestill re-exports the same
API as before
- This is not a breaking change.
- Performance improvements
- Fixes and improvements to code formatting
dhall-1.26.1
- TECHNICALLY BREAKING CHANGES: Simplify
⫽within projection / Simplify nested record projections- These are technically breaking changes because you will need to update
integrity checks that protect code simplified in this way - We're not bumping the major version since the likelihood that you're
affected is quite low
- These are technically breaking changes because you will need to update
- BUG FIX: Fix performance regression
- This change fixes the performance regression introduced in the previous
release (version 1.26.0)
- This change fixes the performance regression introduced in the previous
- BUG FIX: Prevent REPL from inserting inferred
Sorts into context- This protects the REPL from getting hosed if you define an expression
using:letthat has an inferred type ofSort
- This protects the REPL from getting hosed if you define an expression
- NEW FEATURE: Improved
Inject/Interpretsupport for 1-field constructors - (#1315 / #1321)- This adds a new
singletonConstructorsfield toInterpretOptionsthat
lets you control what Dhall type 1-field Haskell constructors correspond
to - The default (
Wrapped) is backwards compatible with the old behavior - The
Smartoption is probably what you want: it will strip the
Haskell constructor from the Dhall type if the constructor has one
anonymous field - The
Bareoption always strips 1-field Haskell constructors from the
Dhall type
- This adds a new
- NEW FEATURE:
--censorflag that disables source code display (#1312 / #1329)- Use this flag when you don't want sensitive
Textliterals showing up in
parsing or type-checking error messages
- Use this flag when you don't want sensitive
- Format record fields more compactly if they fit on 1 line
- The formatter will now format record fields on a field-by-field basis to
avoid unnecessary vertical sprawl of formatted records - Specifically, record fields that fit on one line will now be formatted
on one line
- The formatter will now format record fields on a field-by-field basis to
- Add
--quietoption todhall type- This lets you use
dhall typein "check only" mode (e.g. for CI for
for development feedback)
- This lets you use
- Improved GHCJS support - (#1311 / #1330)
- Fix all executables to accept
--version- Note that the
dhall versionsubcommand is still supported, too
- Note that the
- New
Dhall.Versionmodule - Don't normalize inferred types
- This fixes
dhall typeto more accurately follow the standard
- This fixes
- Initial changes for GHC 8.8 support
- Fix Haddock formatting for
dhallFromJSON
dhall-1.26.0
- Supports version 10.0.0 of the standard
- BREAKING CHANGE TO THE LANGUAGE: Remove old union literal syntax
- Union literals of the form
< x = e | ... >are no longer valid - For more details, see: Migration: Deprecation of old union literal syntax
- Also see the changelog for standard version 10.0.0 for more details
- Union literals of the form
- BREAKING CHANGE TO THE API: Change
Xto be a type synonym forData.Void- This is a breaking change if you were previously pattern matching on the
Xconstructor. You can replace that with the use ofData.Void.absurd
- This is a breaking change if you were previously pattern matching on the
- BREAKING CHANGE TO THE API: Treat multi-
lets as syntactic sugar- This is a breaking change because the
Letconstructor now only stores
oneBindinginstead of aNonEmptylist ofBindings
- This is a breaking change because the
- PERFORMANCE REGRESSION & TECHNICALLY BREAKING CHANGE TO THE LANGUAGE: Dependent types
- You can now write functions from terms to types
- There is also now language support for tests of the form
assert : x === y - This deteriorates the performance of large multi-
letexpressions
(See: #1306) - Splitting large multi-
letexpressions into smaller files may mitigate
the problem as a work-around for now - Follow #1129
for work to fix this performance regression - This is also a technically breaking change because
assertis now a
reserved keyword - See the changelog for standard version 10.0.0 for more details
- TECHNICALLY BREAKING CHANGE TO THE LANGUAGE: Add
Natural/subtractbuilt-in- The language now supports machine subtraction, which can be used to
support several other high-performance operations (likeNatural
comparisons) - This is a technically breaking change if you used
Natural/subtractas an
identifier in your code - See the changelog for standard version 10.0.0 for more details
- The language now supports machine subtraction, which can be used to
- TECHNICALLY BREAKING CHANGE TO THE LANGUAGE: More simplifications for field selection
- Now the interpreter will more intelligently simplify certain field
projections - For example:
λ(x : { a : Bool, b : Bool }) → (x ⫽ { c = 0 }).{ a, c }.c
will now simplify toλ(x : { a : Bool, b : Bool }) → 0 - This is a technically breaking change because you will need to update
integrity checks that protect code simplified in this way - See the changelog for standard version 10.0.0 for more details
- Now the interpreter will more intelligently simplify certain field
- TECHNICALLY BREAKING CHANGE TO THE LANGUAGE: Simplify
⫽when its arguments are equivalent- This is a technically breaking change for the same reason: this will
perturb semantic integrity checks for affected code - See the changelog for standard version 10.0.0 for more details
- This is a technically breaking change for the same reason: this will
- NEW FEATURE: Restore support for records containing both types and terms
- In other words
{ foo = 1, bar = Bool }is now valid again - This means that you now can export a single package containing both types
and terms - See the changelog for standard version 10.0.0 for more details
- In other words
dhall formatnow preservesletcommentsdhallformat will now preserve comments in the following locations of
aletbinding:let {- HERE -} x {- HERE -} : {- HERE -} Bool = {- HERE -} True in x- This support handles both single-line and multi-line comments and also
takes care of correctly indenting/dedenting them - Note that comments before the
letkeyword are still not preserved
(unless it is the beginning of the file)
- Add API support for marshalling recursive types
- You can now marshal recursive types from Dhall into Haskell using the
newly-added utilities - See also: #1298
- You can now marshal recursive types from Dhall into Haskell using the
- New
:helpcommand fordhall repl - New
--no-cacheflag- You can now disable use of the cache with this flag
- This comes in handy if you want to disable α-normalization for imports
protected by a semantic integrity check
- Bug fixes
- Performance optimizations
- Improvements to error messages
- Improvements to formatting
- Improvements to diffs
- Improvements to documentation
- Improvements to command-line interface
dhall-1.25.0
- Supports version 9.0.0 of the standard
- BREAKING CHANGE: Remove support for old-style
List-likeOptionalliterals- List-like
OptionalLiterals (i.e.[ 1 ] : Optional Natural) are no
longer valid - See: #1002
- List-like
- BREAKING CHANGE: Add support for semi-semantic caching
- This change significantly improves the performance of imports
- This change also automatically caches imports without an integrity check
- This changes several types in
Dhall.Importto support this new
feature - See: #1113
- BREAKING CHANGE: Implement new Unicode braced escape sequence
- BREAKING CHANGE: Make the type of extract richer:
Dhall.extractcan now return a detailed error instead of just aMaybe- This is a breaking chnage because the type of
extractchanged - See: #1011
- BREAKING CHANGE: Add support for importing expressions
as Location- This is a breaking change because a new
Locationconstructor was added
toImportMode - See: #1019
- This is a breaking change because a new
- BREAKING CHANGE: Switch
Varto use anInt- This is a performance improvement, but also a breaking change since the
Integerin theVarconstructor was changed to anInt - See: #1044
- This is a performance improvement, but also a breaking change since the
- BREAKING CHANGE: Add new
toMapkeyword- This is a breaking change to the API because a new
ToMapconstructor
was added to theExprtype - This is also a technically breaking change to the language because
toMap
is now a reserved keyword, although most code should be unaffected in
practice - See: #1041
- This is a breaking change to the API because a new
- BREAKING CHANGE: Sort the fields of a record projection during normalization
- This is a technically breaking change to the language because any
expressions with an uninterpreted record projection will have a different
semantic integrity check. However, most could should be unaffected in
practice - See: #1111
- This is a technically breaking change to the language because any
- BUG FIX: Fix substitution into record projection by type
- An expression like this one was being incorrectly rejected:
let e = { a = 10, b = "Text" } let s = { a : Natural } in e.(s), which
this change fixes - See: #1012
- An expression like this one was being incorrectly rejected:
- BUG FIX: Reject record projection when there is a field type mismatch
- Record projection by type was previously not checking the expected
field types, which this change fixes - See: #1027
- Record projection by type was previously not checking the expected
- BUG FIX: Fix linting of unused let bindings
- Certain let bindings were not correctly detected as unused, which this
change fixes - See: #1001
- Certain let bindings were not correctly detected as unused, which this
- BUG FIX: Fix
--fileoption- The
--fileoption from the previous release did not work, due to not
computing relative paths correctly, which this change fixes - See: #1004
- The
- BUG FIX: Minor fix to
dhall diffdhall diffwas incorrectly displaying spurious differences for
identical lists that were function arguments, which this change fixes- See: #1006
- BUG FIX: Allow
Sortas type annotation- This should have been implemented in the previous release as part of
supporting version 8.0.0 of the standard, but was missed - See: #1024
- This should have been implemented in the previous release as part of
- BUG FIX:
Dhall.Map: Reflect original key ordering inOrdinstanceDhall.Mapnow considers key order when comparingMaps, which it should
have done before, but didn't- See: #1050
- BUG FIX: Consistently format multi-line strings
- The formatter now formats naked multi-line strings the same as nested
multi-line strings - Specifically, naked multi-line strings can now be formatted on a single
(just like nested multi-line strings) - See: #1056
- The formatter now formats naked multi-line strings the same as nested
- BUG FIX: Make
isNormalizedconsistent withnormalize- See: #1115
- BUG FIX: Make
normalizeWithMconsistent withnormalize- See: #1126
- BUG FIX: Fix import alternatives to recover from type errors
- See: #1152
- Feature: Semi-semantic caching
- The Haskell implementation now implicitly caches all local imports, not
just imports frozen by integrity checks, so that you don't have to freeze
them when doing local development - These cached imports are still correctly invalidated if they or any of
their dependencies change - This new implicit cache is stored underneath
~/.cache/dhall-haskellby
default - See: #1154
- The Haskell implementation now implicitly caches all local imports, not
- Feature: New
dhall textsubcommand- This new subcommand supersedes the old
dhall-to-textexecutable
- This new subcommand supersedes the old
- Feature: Add
instance Lift (Expr s a)- See: #1119
- Fixes and improvements to error messages:
- Fixes and improvements to tests:
- Performance improvements
dhall-1.24.0
- Supports version 8.0.0 of the standard
- BREAKING CHANGE: Allow tabs and blank lines in multi-line strings
- Blank lines are now ignored for the purpose of dedenting multiline strings
- Lines with leading tabs (or mixed tabs and spaces) are now dedented, too,
so long as they all share the same prefix - This is technically a breaking change, but unlikely to affect programs
in practice, especially if they were formatted withdhall format. This
change mainly affects programs that were not indented correctly. - See the changelog for standard version 8.0.0 for more details
- BREAKING CHANGE: Simplify bare interpolations
- Expressions like
λ(x : Text) → "${x}"now simplify toλ(x : Text) → x - This is a technically breaking change because it changes how these sorts
of expressions are serialized. This does not affect semantic integrity
checks and the new simplified expressions are extensionally equivalent to
their older counterpart expressions. - See the changelog for standard version 8.0.0 for more details
- Expressions like
- BREAKING CHANGE: Encode integrity check as multihash
- Semantic integrity checks are now encoded using the multihash spec
- This is a technically breaking change that does not perturb the hash for
user-facing semantic integrity checks. This only affects how expressions
with unresolved imports are serialized, but semantic integrity checks are
only computed for fully-resolved imports. - See the changelog for standard version 8.0.0 for more details
- BUG FIX: Fix type-checker to reject invalid record type annotations
- e.g.
{ x = 1 } : { x : Text }was not properly rejected by the type
checker - See: #965
- e.g.
- BUG FIX: Custom header forwarding fixed
- Forwarding custom headers could previously fail in various ways, such as:
- Cyclic imports leading to endless network requests
- Resolving a non-existent import for the custom headers
- Resolving an existing but incorrect import for the custom headers
- This change fixes that by forwarding custom headers by value instead of
by reference - See: #967
- Forwarding custom headers could previously fail in various ways, such as:
- BUG FIX: Fix GHCJS support
Natural/foldwas broken in version 1.22, which this change fixes- Specifically, it would hang for
Naturalnumbers greater than 1 - See: #985
- BUG FIX:
dhall diffno longer double-prints key-value separators- See: #952
- Feature: Record projection by expression
- You can now project out a subset of record fields by the expected type
let t = { x : Natural } let p = { x = 1, y = 2 } in p.(t) = { x = 1 }- See the changelog for standard version 8.0.0 for more details
- Feature: Inline headers
- You no longer need to specify custom headers in a separate import. You
can now specify them inline within the same file. - e.g.:
https://example.com/x using [ { header = "Foo", value = "Bar" } ] - See the changelog for standard version 8.0.0 for more details
- You no longer need to specify custom headers in a separate import. You
- Feature: Allow
Sortas a type annotation- An expression such as
Kind → Kind : Sortwill now type-check Sortis still disallowed outside of a type annotation- See the changelog for standard version 8.0.0 for more details
- An expression such as
- Feature: Allow self-describe-cbor when decoding
- Dhall expressions serialized as CBOR can be tagged to describe themselves
as CBOR without affecting decoding - See the changelog for standard version 8.0.0 for more details
- Dhall expressions serialized as CBOR can be tagged to describe themselves
- Feature: New
--fileoption fordhallcommands- In other words, instead of
dhall <<< './some/fileyou can now use
dhall --file some/file - See: #949
- In other words, instead of
- Feature: New
--cacheflag fordhall freezecommand- This automates the idiom used by the Prelude to optimistically cache
imports but gracefully degrade if the semantic integrity check fails - See: #980
- This automates the idiom used by the Prelude to optimistically cache
- Feature: Add
:clearcommand todhall repl- This deletes previous bindings from the history so that they can be
garbage collected - See: #966
- This deletes previous bindings from the history so that they can be
- Feature: New
chunkExprsTraversaladded toDhall.Core- See: #954
- Feature: New
Dhall.Opticsmodule - More GHC 8.8 support
- See: #961