diff --git a/README.md b/README.md
index 73441e8..bf46d38 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,6 @@ the following packages:
* [`dhall-bash`](./dhall-bash) - [![Hackage](https://img.shields.io/hackage/v/dhall-bash.svg)](https://hackage.haskell.org/package/dhall-bash)
* [`dhall-json`](./dhall-json) - [![Hackage](https://img.shields.io/hackage/v/dhall-json.svg)](https://hackage.haskell.org/package/dhall-json)
* [`dhall-nix`](./dhall-nix) - [![Hackage](https://img.shields.io/hackage/v/dhall-nix.svg)](https://hackage.haskell.org/package/dhall-nix)
-* [`dhall-text`](./dhall-text) - [![Hackage](https://img.shields.io/hackage/v/dhall-text.svg)](https://hackage.haskell.org/package/dhall-text)
Navigate to each package's directory for their respective `README`s
@@ -41,7 +40,6 @@ visit one of the following links:
* [https://hydra.dhall-lang.org/job/dhall-haskell/master/linux-dhall-json/latest](https://hydra.dhall-lang.org/job/dhall-haskell/master/linux-dhall-json/latest)
* [https://hydra.dhall-lang.org/job/dhall-haskell/master/linux-dhall-nix/latest](https://hydra.dhall-lang.org/job/dhall-haskell/master/linux-dhall-nix/latest)
* [https://hydra.dhall-lang.org/job/dhall-haskell/master/linux-dhall-lsp-server/latest](https://hydra.dhall-lang.org/job/dhall-haskell/master/linux-dhall-lsp-server/latest)
-* [https://hydra.dhall-lang.org/job/dhall-haskell/master/linux-dhall-text/latest](https://hydra.dhall-lang.org/job/dhall-haskell/master/linux-dhall-text/latest)
You can then click the "Help" button in the bottom right corner, which will
show you a `nix-env` command that you can run to install the prebuilt
@@ -71,7 +69,6 @@ download image archives for each package using the following URLs:
* [https://hydra.dhall-lang.org/job/dhall-haskell/master/image-dhall-json/latest/download/1/docker-image-dhall-json.tar.gz](https://hydra.dhall-lang.org/job/dhall-haskell/master/image-dhall-json/latest/download/1/docker-image-dhall-json.tar.gz)
* [https://hydra.dhall-lang.org/job/dhall-haskell/master/image-dhall-lsp-server/latest/download/1/docker-image-dhall-lsp-server.tar.gz](https://hydra.dhall-lang.org/job/dhall-haskell/master/image-dhall-lsp-server/latest/download/1/docker-image-dhall-lsp-server.tar.gz)
* [https://hydra.dhall-lang.org/job/dhall-haskell/master/image-dhall-nix/latest/download/1/docker-image-dhall-nix.tar.gz](https://hydra.dhall-lang.org/job/dhall-haskell/master/image-dhall-nix/latest/download/1/docker-image-dhall-nix.tar.gz)
-* [https://hydra.dhall-lang.org/job/dhall-haskell/master/image-dhall-text/latest/download/1/docker-image-dhall-text.tar.gz](https://hydra.dhall-lang.org/job/dhall-haskell/master/image-dhall-text/latest/download/1/docker-image-dhall-text.tar.gz)
You can then load and run one of these archives like so:
diff --git a/appveyor.yml b/appveyor.yml
index 72bb3a9..ed171b4 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -31,7 +31,6 @@ cache:
- .stack-work -> '%STACK_YAML%'
- dhall\.stack-work -> '%STACK_YAML%'
- dhall-json\.stack-work -> '%STACK_YAML%'
- - dhall-text\.stack-work -> '%STACK_YAML%'
- dhall-bash\.stack-work -> '%STACK_YAML%'
- dhall-lsp-server\.stack-work -> '%STACK_YAML%'
@@ -51,7 +50,6 @@ for:
- 7z a "bin\dhall-json-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\dhall-to-yaml.exe"
- 7z a "bin\dhall-json-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\json-to-dhall.exe"
- 7z a "bin\dhall-json-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\yaml-to-dhall.exe"
- - 7z a "bin\dhall-text-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\dhall-to-text.exe"
- 7z a "bin\dhall-bash-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\dhall-to-bash.exe"
- 7z a "bin\dhall-lsp-server-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\dhall-lsp-server.exe"
@@ -59,7 +57,6 @@ for:
test_script:
- stack test dhall:tasty
- stack test dhall-json
- - stack test dhall-text
- stack test dhall-bash
# - stack test dhall-lsp-server # Disabled while the tests are broken.
- stack bench --benchmark-arguments "--quick --min-duration=0 --include-first-iter"
@@ -77,7 +74,6 @@ for:
# dhall-json and dhall-lsp-server is not supported for LTS 6, so do not try to copy the
# corresponding binaries
- 7z a "bin\dhall-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\dhall.exe"
- - 7z a "bin\dhall-text-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\dhall-to-text.exe"
- 7z a "bin\dhall-bash-%DEPLOY_SUFFIX%" "%APPVEYOR_BUILD_FOLDER%\bin\dhall-to-bash.exe"
artifacts:
@@ -85,8 +81,6 @@ artifacts:
name: dhall
- path: bin\dhall-json-%DEPLOY_SUFFIX%
name: dhall-json
- - path: bin\dhall-text-%DEPLOY_SUFFIX%
- name: dhall-text
- path: bin\dhall-bash-%DEPLOY_SUFFIX%
name: dhall-bash
- path: bin\dhall-lsp-server-%DEPLOY_SUFFIX%
@@ -96,7 +90,7 @@ deploy:
- provider: GitHub
auth_token:
secure: Gs/tiz6Jtg/Zjd4zGHDhuSv4Y9a+zJ574LWwzOe2bvZNGX/M8XupkxdGmBpDlnOf
- artifact: dhall, dhall-json, dhall-text, dhall-bash, dhall-lsp-server
+ artifact: dhall, dhall-json, dhall-bash, dhall-lsp-server
on:
APPVEYOR_REPO_TAG: true
STACK_YAML: stack.yaml
diff --git a/cabal.project b/cabal.project
index f730098..557639a 100644
--- a/cabal.project
+++ b/cabal.project
@@ -1 +1 @@
-packages: ./dhall ./dhall-bash ./dhall-json ./dhall-text ./dhall-lsp-server
+packages: ./dhall ./dhall-bash ./dhall-json ./dhall-lsp-server
diff --git a/default.nix b/default.nix
index 4a617c1..854b270 100644
--- a/default.nix
+++ b/default.nix
@@ -13,7 +13,6 @@ in
dhall-json
dhall-lsp-server
dhall-nix
- dhall-text
;
inherit (shared_ghcjs) dhall-try;
diff --git a/dhall-text/LICENSE b/dhall-text/LICENSE
deleted file mode 100644
index d240dd1..0000000
--- a/dhall-text/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2018 Gabriel Gonzalez
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
-list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation
-and/or other materials provided with the distribution.
-
-3. Neither the name of the author nor the names of its contributors may be
-used to endorse or promote products derived from this software without
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/dhall-text/README.md b/dhall-text/README.md
index 7157694..32cec7f 100644
--- a/dhall-text/README.md
+++ b/dhall-text/README.md
@@ -1,4 +1,7 @@
-# `dhall-text`
+# `dhall text`
+
+The `dhall-text` executable is now subsumed by the `dhall text` subcommand,
+which does the same thing. This `README` remains behind as a tutorial.
For installation or development instructions, see:
@@ -6,8 +9,8 @@ For installation or development instructions, see:
## Introduction
-This `dhall-text` package provides a `dhall-to-text` executable which you can
-use to template text using the Dhall configuration language.
+You can use the `dhall text` subcommand to template text using the Dhall
+configuration language.
## Example
@@ -80,7 +83,7 @@ in \(people : List ./Person) ->
Templating HTML is just ordinary function application:
```bash
-$ dhall-to-text <<< './make-items ./people'
+$ dhall text <<< './make-items ./people'
14
Maria
diff --git a/dhall-text/Setup.hs b/dhall-text/Setup.hs
deleted file mode 100644
index 9a994af..0000000
--- a/dhall-text/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/dhall-text/default.nix b/dhall-text/default.nix
deleted file mode 100644
index c01b892..0000000
--- a/dhall-text/default.nix
+++ /dev/null
@@ -1 +0,0 @@
-(import ../nix/shared.nix {}).possibly-static.dhall-text
diff --git a/dhall-text/dhall-text.cabal b/dhall-text/dhall-text.cabal
deleted file mode 100644
index e3d5cb8..0000000
--- a/dhall-text/dhall-text.cabal
+++ /dev/null
@@ -1,33 +0,0 @@
-Name: dhall-text
-Version: 1.0.18
-Cabal-Version: >=1.8.0.2
-Build-Type: Simple
-Tested-With: GHC == 7.10.3, GHC == 8.4.3, GHC == 8.6.1
-License: BSD3
-License-File: LICENSE
-Copyright: 2017 Gabriel Gonzalez
-Author: Gabriel Gonzalez
-Maintainer: Gabriel439@gmail.com
-Bug-Reports: https://github.com/dhall-lang/dhall-haskell/issues
-Synopsis: Template text using Dhall
-Description:
- This package provides a @dhall-to-text@ executable that templates text using
- the Dhall configuration language
-Category: Compiler
-Extra-Source-Files:
- README.md
-Source-Repository head
- Type: git
- Location: https://github.com/dhall-lang/dhall-haskell/tree/master/dhall-text
-
-Executable dhall-to-text
- Hs-Source-Dirs: exec
- Main-Is: Main.hs
- Build-Depends:
- base >= 4.8.0.0 && < 5 ,
- dhall >= 1.15.0 && < 1.25,
- optparse-applicative < 0.16,
- text >= 0.11.1.0 && < 1.3
- GHC-Options: -Wall
- Other-Modules:
- Paths_dhall_text
diff --git a/dhall-text/exec/Main.hs b/dhall-text/exec/Main.hs
deleted file mode 100644
index fbe85f6..0000000
--- a/dhall-text/exec/Main.hs
+++ /dev/null
@@ -1,63 +0,0 @@
-{-# LANGUAGE RecordWildCards #-}
-
-import Control.Applicative ((<|>))
-import Data.Monoid ((<>))
-import Options.Applicative (Parser, ParserInfo)
-
-import qualified Data.Text.IO
-import qualified Data.Version
-import qualified Dhall
-import qualified Options.Applicative
-import qualified Paths_dhall_text
-
-data Options
- = Default { explain :: Bool }
- | Version
-
-parseOptions :: Parser Options
-parseOptions = parseVersion <|> parseDefault
- where
- parseVersion =
- Options.Applicative.subparser
- ( Options.Applicative.command "version" parserInfoVersion
- <> Options.Applicative.metavar "version"
- )
- where
- parserInfoVersion =
- Options.Applicative.info parser
- ( Options.Applicative.fullDesc
- <> Options.Applicative.progDesc "Display version"
- )
-
- parser =
- Options.Applicative.helper <*> pure Version
-
- parseDefault = Default <$> parseExplain
- where
- parseExplain =
- Options.Applicative.switch
- ( Options.Applicative.long "explain"
- <> Options.Applicative.help "Explain error messages in detail"
- )
-
-parserInfoOptions :: ParserInfo Options
-parserInfoOptions =
- Options.Applicative.info
- (Options.Applicative.helper <*> parseOptions)
- ( Options.Applicative.progDesc "Template text using Dhall"
- <> Options.Applicative.fullDesc
- )
-
-main :: IO ()
-main = do
- options <- Options.Applicative.execParser parserInfoOptions
-
- case options of
- Default {..} -> do
- let detail = if explain then Dhall.detailed else id
- code <- Data.Text.IO.getContents
- text <- detail (Dhall.input Dhall.auto code)
- Data.Text.IO.putStr text
-
- Version -> do
- putStrLn (Data.Version.showVersion Paths_dhall_text.version)
diff --git a/dhall-text/shell.nix b/dhall-text/shell.nix
deleted file mode 100644
index 1e4f6ed..0000000
--- a/dhall-text/shell.nix
+++ /dev/null
@@ -1 +0,0 @@
-(import ../nix/shared.nix {}).shell-dhall-text
diff --git a/dhall/src/Dhall.hs b/dhall/src/Dhall.hs
index ef53c79..a01a90b 100644
--- a/dhall/src/Dhall.hs
+++ b/dhall/src/Dhall.hs
@@ -230,6 +230,8 @@ data InvalidType s a = InvalidType
}
deriving (Typeable)
+instance (Pretty s, Typeable s, Pretty a, Typeable a) => Exception (InvalidType s a)
+
_ERROR :: String
_ERROR = "\ESC[1;31mError\ESC[0m"
diff --git a/dhall/src/Dhall/Main.hs b/dhall/src/Dhall/Main.hs
index aa2d586..7f07690 100644
--- a/dhall/src/Dhall/Main.hs
+++ b/dhall/src/Dhall/Main.hs
@@ -27,7 +27,7 @@ import Data.Text (Text)
import Data.Text.Prettyprint.Doc (Doc, Pretty)
import Data.Version (showVersion)
import Dhall.Binary (StandardVersion)
-import Dhall.Core (Expr(..), Import, pretty)
+import Dhall.Core (Expr(Annot), Import, pretty)
import Dhall.Freeze (Intent(..), Scope(..))
import Dhall.Import (Imported(..), Depends(..))
import Dhall.Parser (Src)
@@ -100,6 +100,7 @@ data Mode
| Lint { inplace :: Maybe FilePath }
| Encode { file :: Maybe FilePath, json :: Bool }
| Decode { file :: Maybe FilePath, json :: Bool }
+ | Text { file :: Maybe FilePath }
data ResolveMode
= Dot
@@ -186,6 +187,10 @@ parseMode =
"decode"
"Decode a Dhall expression from binary"
(Decode <$> optional parseFile <*> parseJSONFlag)
+ <|> subcommand
+ "text"
+ "Render a Dhall expression that evaluates to a Text literal"
+ (Text <$> optional parseFile)
<|> (Default <$> optional parseFile <*> parseAnnotate <*> parseAlpha)
where
argument =
@@ -567,6 +572,27 @@ command (Options {..}) = do
renderDoc System.IO.stdout doc
+ Text {..} -> do
+ expression <- getExpression file
+
+ resolvedExpression <- State.evalStateT (Dhall.Import.loadWith expression) (toStatus file)
+
+ _ <- Dhall.Core.throws (Dhall.TypeCheck.typeOf (Annot resolvedExpression Dhall.Core.Text))
+
+ let normalizedExpression = Dhall.Core.normalize resolvedExpression
+
+ case normalizedExpression of
+ Dhall.Core.TextLit (Dhall.Core.Chunks [] text) -> do
+ Data.Text.IO.putStr text
+ _ -> do
+ let invalidTypeExpected :: Expr X X
+ invalidTypeExpected = Dhall.Core.Text
+
+ let invalidTypeExpression :: Expr X X
+ invalidTypeExpression = normalizedExpression
+
+ Control.Exception.throwIO (Dhall.InvalidType {..})
+
-- | Entry point for the @dhall@ executable
main :: IO ()
main = do
diff --git a/nix/shared.nix b/nix/shared.nix
index 295eff1..46f395c 100644
--- a/nix/shared.nix
+++ b/nix/shared.nix
@@ -7,7 +7,6 @@ let
"dhall-json"
"dhall-lsp-server"
"dhall-nix"
- "dhall-text"
];
fetchNixpkgs = import ./fetchNixpkgs.nix;
@@ -139,7 +138,6 @@ let
# to ../dhall/dhall-lang/
# "dhall-lsp-server"
"dhall-nix"
- "dhall-text"
]
# Test suite doesn't work on GHCJS or GHC 7.10.3
++ pkgsNew.lib.optional (!(compiler == "ghcjs" || compiler == "ghc7103")) "dhall"
@@ -153,7 +151,6 @@ let
"dhall"
"dhall-bash"
"dhall-json"
- "dhall-text"
];
extension =
@@ -196,12 +193,6 @@ let
(pkgsNew.sdist ../dhall-nix)
{ };
- dhall-text =
- haskellPackagesNew.callCabal2nix
- "dhall-text"
- (pkgsNew.sdist ../dhall-text)
- { };
-
dhall-try =
pkgsNew.haskell.lib.overrideCabal
(haskellPackagesNew.callCabal2nix
@@ -536,9 +527,6 @@ let
dhall-nix-static =
pkgsNew.haskell.lib.statify haskellPackagesOld.dhall-nix;
-
- dhall-text-static =
- pkgsNew.haskell.lib.statify haskellPackagesOld.dhall-text;
};
in
@@ -594,7 +582,6 @@ let
dhall-json = makeStaticIfPossible "dhall-json" ;
dhall-lsp-server = makeStaticIfPossible "dhall-lsp-server";
dhall-nix = makeStaticIfPossible "dhall-nix" ;
- dhall-text = makeStaticIfPossible "dhall-text" ;
};
toDockerImage = name:
@@ -622,11 +609,10 @@ in
tarball-dhall-json = makeTarball "dhall-json" ;
tarball-dhall-lsp-server = makeTarball "dhall-lsp-server";
tarball-dhall-nix = makeTarball "dhall-nix" ;
- tarball-dhall-text = makeTarball "dhall-text" ;
inherit (pkgs) tarball-website website;
- inherit (pkgs.haskell.packages."${compiler}") dhall dhall-bash dhall-json dhall-lsp-server dhall-nix dhall-text dhall-try;
+ inherit (pkgs.haskell.packages."${compiler}") dhall dhall-bash dhall-json dhall-lsp-server dhall-nix dhall-try;
inherit (pkgs.releaseTools) aggregate;
@@ -635,7 +621,6 @@ in
shell-dhall-json = pkgs.haskell.packages."${compiler}".dhall-json.env ;
shell-dhall-lsp-server = pkgs.haskell.packages."${compiler}".dhall-lsp-server.env;
shell-dhall-nix = pkgs.haskell.packages."${compiler}".dhall-nix.env ;
- shell-dhall-text = pkgs.haskell.packages."${compiler}".dhall-text.env ;
shell-dhall-try = pkgs.haskell.packages."${compiler}".dhall-try.env ;
image-dhall = toDockerImage "dhall" ;
@@ -643,7 +628,6 @@ in
image-dhall-json = toDockerImage "dhall-json" ;
image-dhall-lsp-server = toDockerImage "dhall-lsp-server";
image-dhall-nix = toDockerImage "dhall-nix" ;
- image-dhall-text = toDockerImage "dhall-text" ;
test-dhall =
pkgs.mkShell
diff --git a/release.nix b/release.nix
index e337b1d..9ddd21e 100644
--- a/release.nix
+++ b/release.nix
@@ -33,7 +33,6 @@ in
# shared_7_10_3.dhall-lsp-server
# `hnix` depends on `lens-family-th`, which doesn't support GHC 7.10.3
# shared_7_10_3.dhall-nix
- shared_7_10_3.dhall-text
# Verify that the packages build against the latest supported version
# of the compiler
@@ -44,7 +43,6 @@ in
# shared_8_6_1.dhall-lsp-server
# `hnix` depends on `unix-2.7.*` and doesn't work with GHC 8.6
# shared_8_6_1.dhall-nix
- shared_8_6_1.dhall-text
# However, we still use GHC 8.4.3 to build the distributed tarballs
# due to a bug in GHC 8.6.1. See:
@@ -55,7 +53,6 @@ in
shared.tarball-dhall-json
shared.tarball-dhall-lsp-server
shared.tarball-dhall-nix
- shared.tarball-dhall-text
shared_ghcjs.tarball-website
@@ -77,7 +74,6 @@ in
tarball-dhall-json
tarball-dhall-lsp-server
tarball-dhall-nix
- tarball-dhall-text
;
linux-dhall = shared_linux.possibly-static.dhall;
@@ -85,7 +81,6 @@ in
linux-dhall-json = shared_linux.possibly-static.dhall-json;
linux-dhall-lsp-server = shared_linux.possibly-static.dhall-lsp-server;
linux-dhall-nix = shared_linux.possibly-static.dhall-nix;
- linux-dhall-text = shared_linux.possibly-static.dhall-text;
inherit (shared_linux)
image-dhall
@@ -93,6 +88,5 @@ in
image-dhall-json
image-dhall-lsp-server
image-dhall-nix
- image-dhall-text
;
}
diff --git a/shell.nix b/shell.nix
index ac8040b..0545fde 100644
--- a/shell.nix
+++ b/shell.nix
@@ -7,7 +7,6 @@ shared.pkgs.runCommand "dhall-shell-${shell}" {
buildInputs = [
static.dhall
static.dhall-json
- static.dhall-text
static.dhall-bash
static.dhall-nix
];
@@ -22,7 +21,6 @@ shared.pkgs.runCommand "dhall-shell-${shell}" {
echo " $ nix-shell --argstr shell zsh"
source <(dhall --${shell}-completion-script dhall)
- source <(dhall-to-text --${shell}-completion-script dhall-to-text)
source <(dhall-to-bash --${shell}-completion-script dhall-to-bash)
source <(dhall-to-nix --${shell}-completion-script dhall-to-nix)
source <(dhall-to-json --${shell}-completion-script dhall-to-json)
diff --git a/stack-lts-12.yaml b/stack-lts-12.yaml
index c2413df..f4125c6 100644
--- a/stack-lts-12.yaml
+++ b/stack-lts-12.yaml
@@ -3,7 +3,6 @@ packages:
- dhall
- dhall-bash
- dhall-json
- - dhall-text
- dhall-lsp-server
extra-deps:
- megaparsec-7.0.4
diff --git a/stack-lts-6.yaml b/stack-lts-6.yaml
index 3ddfd63..ed00179 100644
--- a/stack-lts-6.yaml
+++ b/stack-lts-6.yaml
@@ -2,7 +2,6 @@ resolver: lts-6.27
packages:
- dhall
- dhall-bash
- - dhall-text
extra-deps:
- ansi-terminal-0.7.1.1
- either-5
diff --git a/stack.yaml b/stack.yaml
index b9c45a9..15ddb58 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -3,7 +3,6 @@ packages:
- dhall
- dhall-bash
- dhall-json
- - dhall-text
- dhall-lsp-server
extra-deps:
- repline-0.2.1.0