packages feed

reflection-1.2.0.1: reflection.cabal

name:           reflection
version:        1.2.0.1
license:        BSD3
license-file:   LICENSE
author:         Edward A. Kmett, Elliott Hird, Oleg Kiselyov and Chung-chieh Shan
maintainer:     Edward A. Kmett <ekmett@gmail.com>
stability:      experimental
homepage:       http://github.com/ekmett/reflection
bug-reports:    http://github.com/ekmett/reflection/issues
category:       Data, Reflection, Dependent Types
synopsis:       Reifies arbitrary terms into types that can be reflected back into terms
copyright:      2009-2013 Edward A. Kmett,
                2012 Elliott Hird,
                2004 Oleg Kiselyov and Chung-chieh Shan
build-type:     Simple
cabal-version:  >= 1.10
description:
  This package provides an implementation of the ideas presented in the paper
  \"Functional Pearl: Implicit Configurations\" by Oleg Kiselyov and
  Chung-chieh Shan. However, the API has been streamlined to improve performance.
  .
  The original paper can be obtained from
  <http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf>.

extra-source-files:
  examples/Monoid.hs
  examples/Constraints.hs
  examples/Benchmark.hs
  CHANGELOG.markdown
  README.markdown
  slow/Data/Reflection.hs
  fast/Data/Reflection.hs
  .travis.yml

-- If you enable this flag, we use a more portable much much slower implementation.
-- Moreover, the 'Given' API is broken, so this is currently an unsupported configuration.
--
-- If you feel the need to turn on this flag for any reason, please email the maintainer!
flag slow
  default: False
  manual: False

source-repository head
  type: git
  location: git://github.com/ekmett/reflection.git

library
  ghc-options: -Wall

  if impl(ghc >= 7.2)
    default-extensions: Trustworthy

  build-depends:
    base >= 2 && < 5,
    tagged >= 0.4.4 && < 1

  default-language: Haskell98

  if !flag(slow) && (impl(ghc) || impl(hugs))
    hs-source-dirs: fast
  else
    other-extensions: ScopedTypeVariables, FlexibleInstances
    hs-source-dirs: slow

  other-extensions:
    MultiParamTypeClasses,
    FunctionalDependencies,
    Rank2Types,
    CPP

  exposed-modules: Data.Reflection