dhall-1.29.0: A configuration language guaranteed to terminate

Safe HaskellNone
LanguageHaskell2010

Dhall.Lint

Contents

Description

This module contains the implementation of the dhall lint command

Synopsis

Lint

lint :: Expr s Import -> Expr s Import Source #

Automatically improve a Dhall expression

Currently this:

  • removes unused let bindings with removeUnusedBindings.
  • fixes let a = x ≡ y to be let a = assert : x ≡ y
  • consolidates nested let bindings to use a multiple-let binding with removeLetInLet
  • fixes paths of the form ./../foo to ../foo

removeUnusedBindings :: Eq a => Expr s a -> Maybe (Expr s a) Source #

Remove unused Let bindings.

fixAssert :: Expr s a -> Maybe (Expr s a) Source #

Fix Let bindings that the user probably meant to be asserts

fixParentPath :: Expr s Import -> Maybe (Expr s Import) Source #

This transforms ./../foo into ../foo