packages feed

reactive-banana-0.7.1.3: reactive-banana.cabal

Name:                reactive-banana
Version:             0.7.1.3
Synopsis:            Practical library for functional reactive programming (FRP).
Description:         
    Reactive-banana is a practical 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. Thus, the reactive-banana library promises to avoid the spaghetti code commonly used in traditional GUI technologies.
    .
    See the project homepage <http://haskell.org/haskellwiki/Reactive-banana>
    for a more detailed introduction and features.
    .
    Stability forecast:
    No semantic bugs expected.
    Significant API changes are likely in future versions,
    though the main interface is beginning to stabilize.
    The @Reactive.Banana.Switch@ module is quite experimental.
    There is currently /no/ garbage collection for dynamically created events.

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

extra-source-files:     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.3 && < 0.6,
                        transformers >= 0.2 && < 0.4,
                        vault == 0.3.*

    extensions:         EmptyDataDecls,
                        BangPatterns

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

--      CPP-options:    -DUseExtensions
        
    exposed-modules:
                        Reactive.Banana,
                        Reactive.Banana.Combinators,
                        Reactive.Banana.Experimental.Calm,
                        Reactive.Banana.Frameworks,
                        Reactive.Banana.Frameworks.AddHandler,
                        Reactive.Banana.Model
                        Reactive.Banana.Switch
    
    other-modules:
                        Reactive.Banana.Internal.Cached,
                        Reactive.Banana.Internal.DependencyGraph,
                        Reactive.Banana.Internal.EventBehavior1,
                        Reactive.Banana.Internal.InputOutput
                        Reactive.Banana.Internal.Phantom,
                        Reactive.Banana.Internal.PulseLatch0,
                        Reactive.Banana.Internal.Types2


-- compiling the test suite from cabal currently doesn't work
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