File 1.cabal of Package ghc-type-eq

name:          type-eq
category:      Type System
version:       0.5
x-revision: 1
author:        Gábor Lehel
maintainer:    Gábor Lehel <glaebhoerl@gmail.com>
homepage:      http://github.com/glaebhoerl/type-eq
copyright:     Copyright (C) 2012-2013 Gábor Lehel
license:       BSD3
license-file:  LICENSE
stability:     experimental
cabal-version: >= 1.10
build-type:    Simple
synopsis:      Type equality evidence you can carry around
description:
    This package provides types and functions to store and manipulate evidence of equality between types.
    .
    To take advantage of kind polymorphism when it is available but not require it, it is split into the following primary modules:
    .
        - @/Type.Eq/@: Types and functions which can be kind-polymorphic if @PolyKinds@ are available, but are specific to kind @*@ otherwise.
    .
        - @/Type.Eq.Higher/@: Kind-monomorphic types and functions of higher kind, up to @* -> * -> *@.
    .
        - @/Type.Eq.Poly/@: Combinators that require kind polymorphism. This module is only available if @PolyKinds@ are available.
    .
    Major required extensions: @GADTs@, @TypeFamilies@ (for @~@), @Rank2Types@, @TypeOperators@
    .
    Optional extensions: @PolyKinds@ (GHC 7.6+)
    .
    Minimum GHC: 6.10
    .
    Related packages:
    .
        - <http://hackage.haskell.org/package/type-equality>
    .
        - <http://hackage.haskell.org/package/eq>
    .
        - <http://hackage.haskell.org/package/ty>
    .
        - <http://hackage.haskell.org/package/dependent-sum>
    .
        - <http://hackage.haskell.org/package/categories> (@Data.Category.Discrete@)

extra-source-files: macros.h

source-repository head
    type:      git
    location:  git://github.com/glaebhoerl/type-eq.git

library
    default-language:
        Haskell98

    other-extensions:
        CPP
        GADTs
        Rank2Types
        TypeFamilies
        TypeOperators
        KindSignatures
        FlexibleContexts

    build-depends:
        base >= 3.0 && < 4.10

    exposed-modules:
        Type.Eq
        Type.Eq.Unsafe
        Type.Eq.Higher
        Type.Eq.Higher.Unsafe

    ghc-options: -pgmPcpphs -optP--cpp
    build-tools: cpphs

-- DeriveDataTypeable and PolyKinds sadly don't mix
--    if impl(ghc)
--        cpp-options: -DHAVE_TYPEABLE
--        other-extensions: DeriveDataTypeable

--    if impl(ghc >= 7.0)
--        cpp-options: -DHAVE_DEPENDENCIES
--        build-depends:
-- Semigroupoid
--            semigroupoids >= 1.0 && < 3.1,
-- Groupoid
--            groupoids     >= 0.1 && < 3.1
-- Tensor
--            data-lens     >= 2.9 && < 2.11

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

    if impl(ghc >= 7.6)
        exposed-modules:  Type.Eq.Poly
--        other-extensions: PolyKinds, Unsafe

    include-dirs: .

    ghc-options:
        -Wall

openSUSE Build Service is sponsored by