packages feed

reflection-1.1.1: reflection.cabal

name:           reflection
version:        1.1.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
category:       Data, Reflection, Dependent Types
synopsis:       Reifies arbitrary terms into types that can be reflected back into terms
copyright:      2009-2012 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>
  .
  /Changes from 0.5 to 1.1/:
  .
  * Much faster implementation available that is about 50 /times/ faster than 0.9 and which runs
    purely on black magic. This version is now used by default. To turn it off install with the
    'slow' flag. If you encounter a problem with implementation, please contact the author.
  .
  * Removed @ReifiedNum@, @reflectNum@, and @reifyIntegral@; @reify@ and @reflect@ are
    about 3 orders of magnitude faster than the special case combinators were.
  .
  /Changes in 0.5/:
  .
  * Generalized the type signatures in reflect to allow you to pass any type
    with kind @* -> *@ wrapped around the desired type as the phantom type
    argument rather than just a @Proxy@.
  .
  /Changes in 0.4/:
  .
  * Converted from `Data.Tagged` to using `Data.Proxy` for reflection. This
    reduces the need for helper functions and scoped type variables in user
    code.

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

flag slow
  default: False
  manual: False

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

library
  ghc-options: -Wall

  build-depends:
    base >= 4 && < 5,
    tagged >= 0.2.3 && < 0.3

  default-language: Haskell2010

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

  other-extensions: MultiParamTypeClasses, FunctionalDependencies, Rank2Types

  exposed-modules: Data.Reflection