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