Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 15685b8620
Fetching contributors…

Cannot retrieve contributors at this time

96 lines (85 sloc) 2.953 kB
name: reflection
version: 1.1.5.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-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 in 1.1.5/:
.
* Both implementations now work on Hugs; the fast implementation ascends
from the ranks of completely unportable black magic to being merely
/mostly/ unportable black magic.
.
/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 the 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
.travis.yml
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.2.3 && < 0.5
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
Jump to Line
Something went wrong with that request. Please try again.