name:         hint
version:      0.9.0.8
description:
        This library defines an Interpreter monad. It allows to load Haskell
        modules, browse them, type-check and evaluate strings with Haskell
        expressions and even coerce them into values. The library is thread-safe
        and type-safe (even the coercion of expressions to values).

        It is, essentially, a huge subset of the GHC API wrapped in a simpler
        API.

synopsis:     A Haskell interpreter built on top of the GHC API
category:     Language, Compilers/Interpreters
license:      BSD3
license-file: LICENSE
author:       The Hint Authors
maintainer:   "Samuel Gélineau" <gelisam@gmail.com>
homepage:     https://github.com/haskell-hint/hint
tested-with:  ghc == 8.10.7
            , ghc == 8.6.5
            , ghc == 8.8.4
            , ghc == 9.0.2
            , ghc == 9.2.7
            , ghc == 9.4.5
            , ghc == 9.6.1
            , ghc == 9.8.1

cabal-version: >= 1.10
build-type:    Simple

extra-source-files: README.md
                    AUTHORS
                    CHANGELOG.md
                    examples/example.hs
                    examples/SomeModule.hs

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

test-suite unit-tests
  type:           exitcode-stdio-1.0
  hs-source-dirs: unit-tests
  main-is:        run-unit-tests.hs
  default-language: Haskell2010

  build-depends:  base == 4.*,
                  bytestring,
                  hint,
                  HUnit,
                  directory,
                  filepath,
                  exceptions >= 0.10.0,
                  stm,
                  text,
                  typed-process,

                  -- packages used by setImports calls
                  containers

  if impl(ghc >= 8.10) {
      cpp-options: -DTHREAD_SAFE_LINKER
  }

  if !os(windows) {
      build-depends: unix >= 2.2.0.0
  }

  default-extensions:  CPP

library
  default-language: Haskell2010
  build-depends: base == 4.*,
                 containers,
                 ghc >= 8.4 && < 9.9,
                 ghc-paths,
                 ghc-boot,
                 transformers,
                 filepath,
                 exceptions == 0.10.*,
                 random,
                 directory,
                 temporary

  if impl(ghc >= 8.10) {
      cpp-options: -DTHREAD_SAFE_LINKER
  }

  if !os(windows) {
      build-depends: unix >= 2.2.0.0
  }

  exposed-modules: Language.Haskell.Interpreter
                   Language.Haskell.Interpreter.Extension
                   Language.Haskell.Interpreter.Unsafe
                   Hint.Internal
  other-modules:   Hint.GHC
                   Hint.Base
                   Hint.InterpreterT
                   Hint.CompatPlatform
                   Hint.Configuration
                   Hint.Extension
                   Hint.Context
                   Hint.Conversions
                   Hint.Eval
                   Hint.Parsers
                   Hint.Reflection
                   Hint.Typecheck
                   Hint.Util
                   Hint.Annotations
                   Control.Monad.Ghc

  hs-source-dirs: src

  ghc-options: -Wall
  default-extensions:  CPP
                       GeneralizedNewtypeDeriving
                       DeriveDataTypeable
                       MagicHash
                       FunctionalDependencies
                       Rank2Types
                       ScopedTypeVariables
                       ExistentialQuantification
                       LambdaCase