packages feed

hint-0.4.3: hint.cabal

name:                hint
version:             0.4.3
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:           Runtime Haskell interpreter (GHC API wrapper)
category:           Language, Compilers/Interpreters
license:            BSD3
license-file:       LICENSE
author:             The Hint Authors
maintainer:         mvdan@mvdan.cc
homepage:           https://github.com/mvdan/hint

cabal-version:      >= 1.9.2
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/mvdan/hint

Test-Suite unit-tests
  type: exitcode-stdio-1.0
  hs-source-dirs: unit-tests
  main-is: run-unit-tests.hs
  build-depends: base < 5
                ,hint
                ,HUnit==1.2.*
                ,directory
                ,filepath
                ,mtl
                ,extensible-exceptions
                ,exceptions

Library
  build-depends:      ghc >= 7.4.2,
                      ghc-paths,
                      mtl,
                      filepath,
                      extensible-exceptions,
                      exceptions
  if impl(ghc >= 6.8) {
    build-depends:    random,
                      directory

    if impl(ghc >= 6.10) {
      build-depends:  base >= 4, base < 5,
                      ghc-mtl == 1.2.1.*
                        -- version 1.1.* uses exceptions instead of MonadCatchIO
                        -- version 1.2.* uses the exceptions-0.4 api
                        -- version 1.2.1.* uses the exceptions-0.6 api
    } else {
      build-depends:  base >= 3, base < 4
    }
  }
  else {
      -- ghc < 6.8
      build-depends:    utf8-string < 0.3
  }

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

  exposed-modules:    Language.Haskell.Interpreter
                      Language.Haskell.Interpreter.Extension
                      Language.Haskell.Interpreter.Unsafe
                      Language.Haskell.Interpreter.GHC
                      Language.Haskell.Interpreter.GHC.Unsafe
  other-modules:      Hint.GHC
                      Hint.Base
                      Hint.InterpreterT
                      Hint.Compat
                      Hint.CompatPlatform
                      Hint.Configuration
                      Hint.Extension
                      Hint.Context
                      Hint.Conversions
                      Hint.Eval
                      Hint.Parsers
                      Hint.Reflection
                      Hint.Typecheck
                      Hint.Sandbox
                      Hint.SignalHandlers
                      Hint.Util

  if impl(ghc >= 6.11) {
      other-modules: Hint.Annotations
  }

  hs-source-dirs:     src

  ghc-options:        -Wall -O2
  extensions:         CPP
                      GeneralizedNewtypeDeriving
                      MultiParamTypeClasses
                      DeriveDataTypeable
                      MagicHash
                      TypeSynonymInstances
                      FlexibleInstances
                      FlexibleContexts
                      FunctionalDependencies
                      KindSignatures
                      Rank2Types
                      ScopedTypeVariables
                      ExistentialQuantification
                      PatternGuards