packages feed

reactive-banana-0.8.1.1: reactive-banana.cabal

Name:                reactive-banana
Version:             0.8.1.1
Synopsis:            Library for functional reactive programming (FRP).
Description:
    Reactive-banana is a library for Functional Reactive Programming (FRP).
    .
    FRP offers an elegant and concise way to express interactive programs such as graphical user interfaces, animations, computer music or robot controllers. It promises to avoid the spaghetti code that is all too common in traditional approaches to GUI programming.
    .
    See the project homepage <http://wiki.haskell.org/Reactive-banana>
    for more detailed documentation and examples.
    .
    /Stability forecast:/
    .
    No semantic bugs expected.
    .
    Significant API changes are likely in future versions,
    though the main interface is beginning to stabilize.
    .
    The library features an efficient, push-driven implementation
    and has seen some optimization work.
    However, the inner loop still has a rather large constant factor overhead.
    Moreover, there is currently /no/ garbage collection for events that are
    created dynamically with @Reactive.Banana.Switch@.

Homepage:            http://wiki.haskell.org/Reactive-banana
License:             BSD3
License-file:        LICENSE
Author:              Heinrich Apfelmus
Maintainer:          Heinrich Apfelmus <apfelmus quantentunnel de>
Category:            FRP
Cabal-version:       >= 1.9.2
Build-type:          Simple

extra-source-files:     CHANGELOG.md,
                        doc/examples/*.hs,
                        src/Reactive/Banana/Test.hs,
                        src/Reactive/Banana/Test/Plumbing.hs

Source-repository head
    type:               git
    location:           git://github.com/HeinrichApfelmus/reactive-banana.git
    subdir:             reactive-banana/

flag UseExtensions
    description: Use GHC-specific language extensions.
                 This enables the efficient push-driven implementation,
                 but doesn't necessarily work with compilers other than GHC.
-- Cabal checks if the package can be build with  UseExtensions = True,
-- otherewise it is set to  False .

Library
    hs-source-dirs:     src
    
    extensions:         RecursiveDo,
                        Rank2Types, ScopedTypeVariables,
                        ExistentialQuantification,
                        TypeSynonymInstances, FlexibleInstances,
                        NoMonomorphismRestriction
    
    build-depends:      base >= 4.2 && < 5,
                        containers >= 0.5 && < 0.6,
                        transformers >= 0.2 && < 0.5,
                        vault == 0.3.*

    extensions:         EmptyDataDecls,
                        BangPatterns

    build-depends:      unordered-containers >= 0.2.1.0 && < 0.3,
                        hashable >= 1.1 && < 1.3,
                        pqueue >= 1.0 && < 1.3

--      CPP-options:    -DUseExtensions
        
    exposed-modules:
                        Control.Event.Handler,
                        Reactive.Banana,
                        Reactive.Banana.Combinators,
                        Reactive.Banana.Experimental.Calm,
                        Reactive.Banana.Frameworks,
                        Reactive.Banana.Model,
                        Reactive.Banana.Prim,
                        Reactive.Banana.Prim.Cached,
                        Reactive.Banana.Switch
    
    other-modules:
                        Reactive.Banana.Internal.Combinators,
                        Reactive.Banana.Internal.Phantom,
                        Reactive.Banana.Prim.Combinators,
                        Reactive.Banana.Prim.Compile,
                        Reactive.Banana.Prim.Dated,
                        Reactive.Banana.Prim.Dependencies,
                        Reactive.Banana.Prim.Evaluation,
                        Reactive.Banana.Prim.IO,
                        Reactive.Banana.Prim.Order,
                        Reactive.Banana.Prim.Plumbing,
                        Reactive.Banana.Prim.Test,
                        Reactive.Banana.Prim.Types,
                        Reactive.Banana.Types

Test-Suite tests
    type:               exitcode-stdio-1.0
    hs-source-dirs:     src
    main-is:            Reactive/Banana/Test.hs
    build-depends:      base >= 4.2 && < 5,
                        HUnit >= 1.2 && < 2,
                        test-framework >= 0.6 && < 0.9,
                        test-framework-hunit >= 0.2 && < 0.4,
                        reactive-banana, vault, containers, transformers,
                        unordered-containers, hashable, pqueue