packages feed

hnix-0.14.0: hnix.cabal

cabal-version:  2.2
name:           hnix
version:        0.14.0
synopsis:       Haskell implementation of the Nix language
description:    Haskell implementation of the Nix language.
category:       System, Data, Nix
homepage:       https://github.com/haskell-nix/hnix#readme
bug-reports:    https://github.com/haskell-nix/hnix/issues
author:         John Wiegley
maintainer:     johnw@newartisans.com
license:        BSD-3-Clause
license-file:   License
build-type:     Simple
data-dir:       data/
data-files:
  nix/corepkgs/buildenv.nix
  nix/corepkgs/unpack-channel.nix
  nix/corepkgs/derivation.nix
  nix/corepkgs/fetchurl.nix
  nix/corepkgs/imported-drv-to-derivation.nix
extra-source-files:
  ChangeLog.md
  ReadMe.md
  License
  data/nix/corepkgs/buildenv.nix
  data/nix/corepkgs/unpack-channel.nix
  data/nix/corepkgs/derivation.nix
  data/nix/corepkgs/fetchurl.nix
  data/nix/corepkgs/imported-drv-to-derivation.nix
  data/nix/tests/lang/binary-data
  data/nix/tests/lang/data
  data/nix/tests/lang/dir1/a.nix
  data/nix/tests/lang/dir2/a.nix
  data/nix/tests/lang/dir2/b.nix
  data/nix/tests/lang/dir3/a.nix
  data/nix/tests/lang/dir3/b.nix
  data/nix/tests/lang/dir3/c.nix
  data/nix/tests/lang/dir4/a.nix
  data/nix/tests/lang/dir4/c.nix
  data/nix/tests/lang/eval-fail-abort.nix
  data/nix/tests/lang/eval-fail-antiquoted-path.nix
  data/nix/tests/lang/eval-fail-assert.nix
  data/nix/tests/lang/eval-fail-bad-antiquote-1.nix
  data/nix/tests/lang/eval-fail-bad-antiquote-2.nix
  data/nix/tests/lang/eval-fail-bad-antiquote-3.nix
  data/nix/tests/lang/eval-fail-blackhole.nix
  data/nix/tests/lang/eval-fail-deepseq.nix
  data/nix/tests/lang/eval-fail-hashfile-missing.nix
  data/nix/tests/lang/eval-fail-missing-arg.nix
  data/nix/tests/lang/eval-fail-path-slash.nix
  data/nix/tests/lang/eval-fail-remove.nix
  data/nix/tests/lang/eval-fail-scope-5.nix
  data/nix/tests/lang/eval-fail-seq.nix
  data/nix/tests/lang/eval-fail-substring.nix
  data/nix/tests/lang/eval-fail-to-path.nix
  data/nix/tests/lang/eval-fail-undeclared-arg.nix
  data/nix/tests/lang/eval-okay-any-all.exp
  data/nix/tests/lang/eval-okay-any-all.nix
  data/nix/tests/lang/eval-okay-arithmetic.exp
  data/nix/tests/lang/eval-okay-arithmetic.nix
  data/nix/tests/lang/eval-okay-attrnames.exp
  data/nix/tests/lang/eval-okay-attrnames.nix
  data/nix/tests/lang/eval-okay-attrs2.exp
  data/nix/tests/lang/eval-okay-attrs2.nix
  data/nix/tests/lang/eval-okay-attrs3.exp
  data/nix/tests/lang/eval-okay-attrs3.nix
  data/nix/tests/lang/eval-okay-attrs4.exp
  data/nix/tests/lang/eval-okay-attrs4.nix
  data/nix/tests/lang/eval-okay-attrs5.exp
  data/nix/tests/lang/eval-okay-attrs5.nix
  data/nix/tests/lang/eval-okay-attrs.exp
  data/nix/tests/lang/eval-okay-attrs.nix
  data/nix/tests/lang/eval-okay-autoargs.exp
  data/nix/tests/lang/eval-okay-autoargs.flags
  data/nix/tests/lang/eval-okay-autoargs.nix
  data/nix/tests/lang/eval-okay-backslash-newline-1.exp
  data/nix/tests/lang/eval-okay-backslash-newline-1.nix
  data/nix/tests/lang/eval-okay-backslash-newline-2.exp
  data/nix/tests/lang/eval-okay-backslash-newline-2.nix
  data/nix/tests/lang/eval-okay-builtins-add.exp
  data/nix/tests/lang/eval-okay-builtins-add.nix
  data/nix/tests/lang/eval-okay-builtins.exp
  data/nix/tests/lang/eval-okay-builtins.nix
  data/nix/tests/lang/eval-okay-callable-attrs.exp
  data/nix/tests/lang/eval-okay-callable-attrs.nix
  data/nix/tests/lang/eval-okay-catattrs.exp
  data/nix/tests/lang/eval-okay-catattrs.nix
  data/nix/tests/lang/eval-okay-closure.exp.xml
  data/nix/tests/lang/eval-okay-closure.nix
  data/nix/tests/lang/eval-okay-comments.exp
  data/nix/tests/lang/eval-okay-comments.nix
  data/nix/tests/lang/eval-okay-concat.exp
  data/nix/tests/lang/eval-okay-concatmap.exp
  data/nix/tests/lang/eval-okay-concatmap.nix
  data/nix/tests/lang/eval-okay-concat.nix
  data/nix/tests/lang/eval-okay-concatstringssep.exp
  data/nix/tests/lang/eval-okay-concatstringssep.nix
  data/nix/tests/lang/eval-okay-context.exp
  data/nix/tests/lang/eval-okay-context-introspection.exp
  data/nix/tests/lang/eval-okay-context-introspection.nix
  data/nix/tests/lang/eval-okay-context.nix
  data/nix/tests/lang/eval-okay-curpos.exp
  data/nix/tests/lang/eval-okay-curpos.nix
  data/nix/tests/lang/eval-okay-deepseq.exp
  data/nix/tests/lang/eval-okay-deepseq.nix
  data/nix/tests/lang/eval-okay-delayed-with.exp
  data/nix/tests/lang/eval-okay-delayed-with-inherit.exp
  data/nix/tests/lang/eval-okay-delayed-with-inherit.nix
  data/nix/tests/lang/eval-okay-delayed-with.nix
  data/nix/tests/lang/eval-okay-dynamic-attrs-2.exp
  data/nix/tests/lang/eval-okay-dynamic-attrs-2.nix
  data/nix/tests/lang/eval-okay-dynamic-attrs-bare.exp
  data/nix/tests/lang/eval-okay-dynamic-attrs-bare.nix
  data/nix/tests/lang/eval-okay-dynamic-attrs.exp
  data/nix/tests/lang/eval-okay-dynamic-attrs.nix
  data/nix/tests/lang/eval-okay-elem.exp
  data/nix/tests/lang/eval-okay-elem.nix
  data/nix/tests/lang/eval-okay-empty-args.exp
  data/nix/tests/lang/eval-okay-empty-args.nix
  data/nix/tests/lang/eval-okay-eq-derivations.exp
  data/nix/tests/lang/eval-okay-eq-derivations.nix
  data/nix/tests/lang/eval-okay-eq.exp.disabled
  data/nix/tests/lang/eval-okay-eq.nix
  data/nix/tests/lang/eval-okay-filter.exp
  data/nix/tests/lang/eval-okay-filter.nix
  data/nix/tests/lang/eval-okay-flatten.exp
  data/nix/tests/lang/eval-okay-flatten.nix
  data/nix/tests/lang/eval-okay-float.exp
  data/nix/tests/lang/eval-okay-float.nix
  data/nix/tests/lang/eval-okay-fromjson.exp
  data/nix/tests/lang/eval-okay-fromjson.nix
  data/nix/tests/lang/eval-okay-fromTOML.exp
  data/nix/tests/lang/eval-okay-fromTOML.nix
  data/nix/tests/lang/eval-okay-functionargs.exp.xml
  data/nix/tests/lang/eval-okay-functionargs.nix
  data/nix/tests/lang/eval-okay-getattrpos.exp
  data/nix/tests/lang/eval-okay-getattrpos.nix
  data/nix/tests/lang/eval-okay-getattrpos-undefined.exp
  data/nix/tests/lang/eval-okay-getattrpos-undefined.nix
  data/nix/tests/lang/eval-okay-getenv.exp
  data/nix/tests/lang/eval-okay-getenv.nix
  data/nix/tests/lang/eval-okay-hash.exp
  data/nix/tests/lang/eval-okay-hashfile.exp
  data/nix/tests/lang/eval-okay-hashfile.nix
  data/nix/tests/lang/eval-okay-hashstring.exp
  data/nix/tests/lang/eval-okay-hashstring.nix
  data/nix/tests/lang/eval-okay-if.exp
  data/nix/tests/lang/eval-okay-if.nix
  data/nix/tests/lang/eval-okay-import.exp
  data/nix/tests/lang/eval-okay-import.nix
  data/nix/tests/lang/eval-okay-ind-string.exp
  data/nix/tests/lang/eval-okay-ind-string.nix
  data/nix/tests/lang/eval-okay-let.exp
  data/nix/tests/lang/eval-okay-let.nix
  data/nix/tests/lang/eval-okay-list.exp
  data/nix/tests/lang/eval-okay-list.nix
  data/nix/tests/lang/eval-okay-listtoattrs.exp
  data/nix/tests/lang/eval-okay-listtoattrs.nix
  data/nix/tests/lang/eval-okay-logic.exp
  data/nix/tests/lang/eval-okay-logic.nix
  data/nix/tests/lang/eval-okay-mapattrs.exp
  data/nix/tests/lang/eval-okay-mapattrs.nix
  data/nix/tests/lang/eval-okay-map.exp
  data/nix/tests/lang/eval-okay-map.nix
  data/nix/tests/lang/eval-okay-nested-with.exp
  data/nix/tests/lang/eval-okay-nested-with.nix
  data/nix/tests/lang/eval-okay-new-let.exp
  data/nix/tests/lang/eval-okay-new-let.nix
  data/nix/tests/lang/eval-okay-null-dynamic-attrs.exp
  data/nix/tests/lang/eval-okay-null-dynamic-attrs.nix
  data/nix/tests/lang/eval-okay-overrides.exp
  data/nix/tests/lang/eval-okay-overrides.nix
  data/nix/tests/lang/eval-okay-partition.exp
  data/nix/tests/lang/eval-okay-partition.nix
  data/nix/tests/lang/eval-okay-pathexists.exp
  data/nix/tests/lang/eval-okay-pathexists.nix
  data/nix/tests/lang/eval-okay-path.nix
  data/nix/tests/lang/eval-okay-patterns.exp
  data/nix/tests/lang/eval-okay-patterns.nix
  data/nix/tests/lang/eval-okay-readDir.exp
  data/nix/tests/lang/eval-okay-readDir.nix
  data/nix/tests/lang/eval-okay-readfile.exp
  data/nix/tests/lang/eval-okay-readfile.nix
  data/nix/tests/lang/eval-okay-redefine-builtin.exp
  data/nix/tests/lang/eval-okay-redefine-builtin.nix
  data/nix/tests/lang/eval-okay-regex-match.exp
  data/nix/tests/lang/eval-okay-regex-match.nix
  data/nix/tests/lang/eval-okay-regex-split.exp
  data/nix/tests/lang/eval-okay-regex-split.nix
  data/nix/tests/lang/eval-okay-remove.exp
  data/nix/tests/lang/eval-okay-remove.nix
  data/nix/tests/lang/eval-okay-replacestrings.exp
  data/nix/tests/lang/eval-okay-replacestrings.nix
  data/nix/tests/lang/eval-okay-scope-1.exp
  data/nix/tests/lang/eval-okay-scope-1.nix
  data/nix/tests/lang/eval-okay-scope-2.exp
  data/nix/tests/lang/eval-okay-scope-2.nix
  data/nix/tests/lang/eval-okay-scope-3.exp
  data/nix/tests/lang/eval-okay-scope-3.nix
  data/nix/tests/lang/eval-okay-scope-4.exp
  data/nix/tests/lang/eval-okay-scope-4.nix
  data/nix/tests/lang/eval-okay-scope-6.exp
  data/nix/tests/lang/eval-okay-scope-6.nix
  data/nix/tests/lang/eval-okay-scope-7.exp
  data/nix/tests/lang/eval-okay-scope-7.nix
  data/nix/tests/lang/eval-okay-search-path.exp
  data/nix/tests/lang/eval-okay-search-path.flags
  data/nix/tests/lang/eval-okay-search-path.nix
  data/nix/tests/lang/eval-okay-seq.exp
  data/nix/tests/lang/eval-okay-seq.nix
  data/nix/tests/lang/eval-okay-sort.exp
  data/nix/tests/lang/eval-okay-sort.nix
  data/nix/tests/lang/eval-okay-splitversion.exp
  data/nix/tests/lang/eval-okay-splitversion.nix
  data/nix/tests/lang/eval-okay-string.exp
  data/nix/tests/lang/eval-okay-string.nix
  data/nix/tests/lang/eval-okay-strings-as-attrs-names.exp
  data/nix/tests/lang/eval-okay-strings-as-attrs-names.nix
  data/nix/tests/lang/eval-okay-substring.exp
  data/nix/tests/lang/eval-okay-substring.nix
  data/nix/tests/lang/eval-okay-tail-call-1.exp-disabled
  data/nix/tests/lang/eval-okay-tail-call-1.nix
  data/nix/tests/lang/eval-okay-tojson.exp
  data/nix/tests/lang/eval-okay-tojson.nix
  data/nix/tests/lang/eval-okay-toxml2.exp
  data/nix/tests/lang/eval-okay-toxml2.nix
  data/nix/tests/lang/eval-okay-toxml.exp
  data/nix/tests/lang/eval-okay-toxml.nix
  data/nix/tests/lang/eval-okay-tryeval.exp
  data/nix/tests/lang/eval-okay-tryeval.nix
  data/nix/tests/lang/eval-okay-types.exp
  data/nix/tests/lang/eval-okay-types.nix
  data/nix/tests/lang/eval-okay-versions.exp
  data/nix/tests/lang/eval-okay-versions.nix
  data/nix/tests/lang/eval-okay-with.exp
  data/nix/tests/lang/eval-okay-with.nix
  data/nix/tests/lang/eval-okay-xml.exp.xml
  data/nix/tests/lang/eval-okay-xml.nix
  data/nix/tests/lang/imported2.nix
  data/nix/tests/lang/imported.nix
  data/nix/tests/lang/lib.nix
  data/nix/tests/lang/parse-fail-dup-attrs-1.nix
  data/nix/tests/lang/parse-fail-dup-attrs-2.nix
  data/nix/tests/lang/parse-fail-dup-attrs-3.nix
  data/nix/tests/lang/parse-fail-dup-attrs-4.nix
  data/nix/tests/lang/parse-fail-dup-attrs-7.nix
  data/nix/tests/lang/parse-fail-dup-formals.nix
  data/nix/tests/lang/parse-fail-mixed-nested-attrs1.nix
  data/nix/tests/lang/parse-fail-mixed-nested-attrs2.nix
  data/nix/tests/lang/parse-fail-patterns-1.nix
  data/nix/tests/lang/parse-fail-regression-20060610.nix
  data/nix/tests/lang/parse-fail-uft8.nix
  data/nix/tests/lang/parse-fail-undef-var-2.nix
  data/nix/tests/lang/parse-fail-undef-var.nix
  data/nix/tests/lang/parse-okay-1.nix
  data/nix/tests/lang/parse-okay-crlf.nix
  data/nix/tests/lang/parse-okay-dup-attrs-5.nix
  data/nix/tests/lang/parse-okay-dup-attrs-6.nix
  data/nix/tests/lang/parse-okay-mixed-nested-attrs-1.nix
  data/nix/tests/lang/parse-okay-mixed-nested-attrs-2.nix
  data/nix/tests/lang/parse-okay-mixed-nested-attrs-3.nix
  data/nix/tests/lang/parse-okay-regression-20041027.nix
  data/nix/tests/lang/parse-okay-regression-751.nix
  data/nix/tests/lang/parse-okay-subversion.nix
  data/nix/tests/lang/parse-okay-url.nix
  data/nix/tests/lang/readDir/bar
  data/nix/tests/lang/readDir/foo/git-hates-directories
  data/nix/tests/local.mk
  data/nixpkgs-all-packages.nix
  data/let-comments.nix
  data/let-comments-multiline.nix
  data/simple-pretty.nix
  data/simple.nix
  data/nixpkgs-all-packages-pretty.nix
  data/let.nix
  tests/eval-compare/builtins.appendContext.nix
  tests/eval-compare/builtins.eq-bottom-00.nix
  tests/eval-compare/builtins.fetchurl-01.nix
  tests/eval-compare/builtins.fromJSON-01.nix
  tests/eval-compare/builtins.getContext.nix
  tests/eval-compare/builtins.lessThan-01.nix
  tests/eval-compare/builtins.mapAttrs-01.nix
  tests/eval-compare/builtins.pathExists.nix
  tests/eval-compare/builtins.replaceStrings-01.nix
  tests/eval-compare/builtins.split-01.nix
  tests/eval-compare/builtins.split-02.nix
  tests/eval-compare/builtins.split-03.nix
  tests/eval-compare/builtins.split-04.nix
  tests/eval-compare/builtins.string.store.nix
  tests/eval-compare/builtins.toJSON.nix
  tests/eval-compare/current-system.nix
  tests/eval-compare/ellipsis.nix
  tests/eval-compare/ind-string-01.nix
  tests/eval-compare/ind-string-02.nix
  tests/eval-compare/ind-string-03.nix
  tests/eval-compare/ind-string-04.nix
  tests/eval-compare/ind-string-05.nix
  tests/eval-compare/ind-string-06.nix
  tests/eval-compare/ind-string-07.nix
  tests/eval-compare/ind-string-08.nix
  tests/eval-compare/ind-string-09.nix
  tests/eval-compare/ind-string-10.nix
  tests/eval-compare/ind-string-11.nix
  tests/eval-compare/ind-string-12.nix
  tests/eval-compare/ind-string-13.nix
  tests/eval-compare/ind-string-14.nix
  tests/eval-compare/ind-string-15.nix
  tests/eval-compare/ind-string-16.nix
  tests/eval-compare/ind-string-17.nix
  tests/eval-compare/paths-01.nix
  tests/eval-compare/placeholder.nix
  tests/files/attrs.nix
  tests/files/callLibs.nix
  tests/files/eighty.nix
  tests/files/file.nix
  tests/files/file2.nix
  tests/files/findFile.nix
  tests/files/force.nix
  tests/files/goodbye.nix
  tests/files/hello.nix
  tests/files/hello2.nix
  tests/files/if-then.nix
  tests/files/lint.nix
  tests/files/loop.nix
  tests/files/test.nix
  tests/files/with.nix

source-repository head
  type: git
  location: https://github.com/haskell-nix/hnix

flag optimize
  description: Enable all optimization flags
  manual: True
  default: True

flag profiling
  description: Enable profiling
  manual: True
  default: False

library
  exposed-modules:
    Nix
    Nix.Atoms
    Nix.Builtins
    Nix.Cache
    Nix.Cited
    Nix.Cited.Basic
    Nix.Context
    Nix.Convert
    Nix.Effects
    Nix.Effects.Basic
    Nix.Effects.Derivation
    Nix.Eval
    Nix.Exec
    Nix.Expr
    Nix.Expr.Shorthands
    Nix.Expr.Strings
    Nix.Expr.Types
    Nix.Expr.Types.Annotated
    Nix.Frames
    Nix.Fresh
    Nix.Fresh.Basic
    Nix.Json
    Nix.Lint
    Nix.Normal
    Nix.Options
    Nix.Options.Parser
    Nix.Parser
    Nix.Pretty
    Nix.Reduce
    Nix.Render
    Nix.Render.Frame
    Nix.Scope
    Nix.Standard
    Nix.String
    Nix.String.Coerce
    Nix.TH
    Nix.Thunk
    Nix.Thunk.Basic
    Nix.Type.Assumption
    Nix.Type.Env
    Nix.Type.Infer
    Nix.Type.Type
    Nix.Utils
    Nix.Utils.Fix1
    Nix.Value
    Nix.Value.Equal
    Nix.Value.Monad
    Nix.Var
    Nix.XML
  other-modules:
    Paths_hnix
  autogen-modules:
    Paths_hnix
  hs-source-dirs:
    src
  mixins:
      base hiding (Prelude)
    , relude (Relude as Prelude)
    , relude
  ghc-options:
    -Wall
    -fprint-potential-instances
  build-depends:
      aeson >= 1.4.2 && < 1.6
    , array >= 0.4 && < 0.6
    , base >= 4.12 && < 5
    , base16-bytestring >= 0.1.1 && < 1.1
    , binary >= 0.8.5 && < 0.9
    , bytestring >= 0.10.8 && < 0.12
    , cryptonite
    , comonad >= 5.0.4 && < 5.1
    , containers >= 0.5.11.0 && < 0.7
    , data-fix >= 0.3.0 && < 0.4
    , deepseq >= 1.4.3 && <1.5
    , deriving-compat >= 0.3 && < 0.6
    , directory >= 1.3.1 && < 1.4
    , exceptions >= 0.10.0 && < 0.11
    , filepath >= 1.4.2 && < 1.5
    , free >= 5.1 && < 5.2
    , gitrev >= 1.1.0 && < 1.4
    , hashable >= 1.2.5 && < 1.4
    , hashing >= 0.1.0 && < 0.2
    , hnix-store-core >= 0.5.0 && < 0.6
    , hnix-store-remote >= 0.5.0 && < 0.6
    , http-client >= 0.5.14 && < 0.6 || >= 0.6.4 && < 0.8
    , http-client-tls >= 0.3.5 && < 0.4
    , http-types >= 0.12.2 && < 0.13
    , lens-family >= 1.2.2 && < 2.2
    , lens-family-core >= 1.2.2 && < 2.2
    , lens-family-th >= 0.5.0 && < 0.6
    , logict >= 0.6.0 && < 0.7 || >= 0.7.0.2 && < 0.8
    , megaparsec >= 7.0 && < 9.1
    , monad-control >= 1.0.2 && < 1.1
    , monadlist >= 0.0.2 && < 0.1
    , mtl >= 2.2.2 && < 2.3
    , neat-interpolation >= 0.4 && < 0.6
    , optparse-applicative >= 0.14.3 && < 0.17
    , parser-combinators >= 1.0.1 && < 1.4
    , pretty-show >= 1.9.5 && < 1.11
    , prettyprinter >= 1.7.0 && < 1.8
    , process >= 1.6.3 && < 1.7
    , ref-tf >= 0.5 && < 0.6
    , regex-tdfa >= 1.2.3 && < 1.4
    , relude >= 1.0.0 && < 1.1.0
    , scientific >= 0.3.6 && < 0.4
    , semialign >= 1.2 && < 1.3
    , serialise >= 0.2.1 && < 0.3
    , some >= 1.0.1 && < 1.1
    , split >= 0.2.3 && < 0.3
    , syb >= 0.7 && < 0.8
    , template-haskell >= 2.13 && < 2.18
    -- provides:
    --   * compat instances for old versions of TH for old GHCs
    --   * orphan instances for TH missing instances
    -- aka Lift Text, Bytestring, Vector, Containers,
    -- we use Lift Text particulrarly for GHC 8.6
    , th-lift-instances >= 0.1 && < 0.2
    , text >= 1.2.3 && < 1.3
    , these >= 1.0.1 && < 1.2
    , time >= 1.8.0 && < 1.9 || >= 1.9.3 && < 1.10
    , transformers >= 0.5.5 && < 0.6
    , transformers-base >= 0.4.5 && < 0.5
    , unix >= 2.7.2 && < 2.8
    , unordered-containers >= 0.2.9 && < 0.3
    , vector >= 0.12.0 && < 0.13
    , xml >= 1.3.14 && < 1.4
  default-extensions:
      OverloadedStrings
    , DeriveGeneric
    , DeriveDataTypeable
    , DeriveFunctor
    , DeriveFoldable
    , DeriveTraversable
    , DeriveLift
    , FlexibleContexts
    , FlexibleInstances
    , StandaloneDeriving
    , TypeApplications
    , TypeSynonymInstances
    , InstanceSigs
    , MultiParamTypeClasses
    , TupleSections
    , LambdaCase
    , BangPatterns
  if flag(optimize)
    default-extensions:
      ApplicativeDo
    ghc-options:
      -O2
      -fexpose-all-unfoldings
      -fspecialise-aggressively
  -- if !flag(profiling)
  --   build-depends:
  --       ghc-datasize
  default-language: Haskell2010

executable hnix
  hs-source-dirs:
    main
  main-is: Main.hs
  other-modules:
    Repl
    Paths_hnix
  autogen-modules:
    Paths_hnix
  ghc-options:
    -Wall
  build-depends:
      aeson
    , base
    , comonad
    , containers
    , data-fix
    , deepseq
    , exceptions
    , filepath
    , free
    , haskeline >= 0.8.0.0 && < 0.9
    , hnix
    , optparse-applicative
    , pretty-show
    , prettyprinter
    , ref-tf
    , relude
    , repline >= 0.4.0.0 && < 0.5
    , serialise
    , template-haskell
    , time
  mixins:
      base hiding (Prelude)
    , relude (Relude as Prelude)
    , relude
  default-extensions:
      OverloadedStrings
    , DeriveGeneric
    , DeriveDataTypeable
    , DeriveFunctor
    , DeriveFoldable
    , DeriveTraversable
    , DeriveLift
    , FlexibleContexts
    , FlexibleInstances
    , StandaloneDeriving
    , TypeApplications
    , TypeSynonymInstances
    , InstanceSigs
    , MultiParamTypeClasses
    , TupleSections
    , LambdaCase
    , BangPatterns
  if flag(optimize)
    default-extensions:
      ApplicativeDo
    ghc-options:
      -O2
      -fexpose-all-unfoldings
      -fspecialise-aggressively
  if impl(ghc < 8.10)
    -- GHC < 8.10 comes with haskeline < 0.8, which we don't support.
    -- To simplify CI, we just disable the component.
    buildable: False
  default-language: Haskell2010

test-suite hnix-tests
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
    EvalTests
    NixLanguageTests
    ParserTests
    PrettyParseTests
    PrettyTests
    ReduceExprTests
    TestCommon
  mixins:
      base hiding (Prelude)
    , relude (Relude as Prelude)
    , relude
  hs-source-dirs:
    tests
  ghc-options:
    -Wall
    -threaded
  build-depends:
      Diff
    , Glob
    , base
    , containers
    , data-fix
    , directory
    , exceptions
    , filepath
    , hedgehog
    , hnix
    , megaparsec
    , neat-interpolation
    , optparse-applicative
    , pretty-show
    , prettyprinter
    , process
    , relude
    , split
    , tasty
    , tasty-hedgehog
    , tasty-hunit
    , tasty-th
    , serialise
    , template-haskell
    , time
    , unix
  default-extensions:
      OverloadedStrings
    , DeriveGeneric
    , DeriveDataTypeable
    , DeriveFunctor
    , DeriveFoldable
    , DeriveTraversable
    , DeriveLift
    , FlexibleContexts
    , FlexibleInstances
    , StandaloneDeriving
    , TypeApplications
    , TypeSynonymInstances
    , InstanceSigs
    , MultiParamTypeClasses
    , TupleSections
    , LambdaCase
    , BangPatterns
  if flag(optimize)
    default-extensions:
      ApplicativeDo
    ghc-options:
      -O2
      -fexpose-all-unfoldings
      -fspecialise-aggressively
  default-language: Haskell2010

benchmark hnix-benchmarks
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
    ParserBench
  hs-source-dirs:
    benchmarks
  mixins:
      base hiding (Prelude)
    , relude (Relude as Prelude)
    , relude
  ghc-options:
    -Wall
  build-depends:
      base
    , criterion
    , data-fix
    , exceptions
    , filepath
    , hnix
    , optparse-applicative
    , relude
    , serialise
    , template-haskell
    , time
  default-extensions:
      OverloadedStrings
    , DeriveGeneric
    , DeriveDataTypeable
    , DeriveFunctor
    , DeriveFoldable
    , DeriveTraversable
    , DeriveLift
    , FlexibleContexts
    , FlexibleInstances
    , StandaloneDeriving
    , TypeApplications
    , TypeSynonymInstances
    , InstanceSigs
    , MultiParamTypeClasses
    , TupleSections
    , LambdaCase
    , BangPatterns
  if flag(optimize)
    default-extensions:
      ApplicativeDo
    ghc-options:
      -O2
      -fexpose-all-unfoldings
      -fspecialise-aggressively
  default-language: Haskell2010