grapefruit-frp 0.1.0.5 → 0.1.0.6
raw patch · 10 files changed
+44/−30 lines, 10 filesdep ~basedep ~semigroupsPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, semigroups
API changes (from Hackage documentation)
- FRP.Grapefruit.Setup: instance Monoid Setup
- FRP.Grapefruit.Signal: OSF :: signal era val -> SignalFun era (signal Of val)
- FRP.Grapefruit.Signal: SSF :: (signal era val -> SignalFun era shape) -> SignalFun era ((signal Of val) :-> shape)
- FRP.Grapefruit.Signal.Continuous: instance Applicative (CSignal era)
- FRP.Grapefruit.Signal.Continuous: instance Functor (CSignal era)
- FRP.Grapefruit.Signal.Continuous: instance Samplee CSignal
- FRP.Grapefruit.Signal.Continuous: instance Signal CSignal
- FRP.Grapefruit.Signal.Incremental: instance Incremental (Monolithic val)
- FRP.Grapefruit.Signal.Incremental: instance Semigroup (Diff (Monolithic val))
- FRP.Grapefruit.Signal.Incremental.Sequence: instance Incremental (Seq el)
- FRP.Grapefruit.Signal.Incremental.Sequence: instance Monoid (Diff (Seq el))
- FRP.Grapefruit.Signal.Incremental.Sequence: instance Semigroup (Diff (Seq el))
- FRP.Grapefruit.Signal.Incremental.Set: instance Ord el => Incremental (Set el)
- FRP.Grapefruit.Signal.Incremental.Set: instance Ord el => Monoid (Diff (Set el))
- FRP.Grapefruit.Signal.Incremental.Set: instance Ord el => Semigroup (Diff (Set el))
+ FRP.Grapefruit.Setup: instance GHC.Base.Monoid FRP.Grapefruit.Setup.Setup
+ FRP.Grapefruit.Signal: [OSF] :: (Signal signal) => signal era val -> SignalFun era (signal `Of` val)
+ FRP.Grapefruit.Signal: [SSF] :: (Signal signal) => (signal era val -> SignalFun era shape) -> SignalFun era ((signal `Of` val) :-> shape)
+ FRP.Grapefruit.Signal: infixl 4 <#
+ FRP.Grapefruit.Signal.Continuous: instance GHC.Base.Applicative (FRP.Grapefruit.Signal.Continuous.CSignal era)
+ FRP.Grapefruit.Signal.Continuous: instance GHC.Base.Functor (FRP.Grapefruit.Signal.Continuous.CSignal era)
+ FRP.Grapefruit.Signal.Continuous: instance Internal.Signal.Samplee FRP.Grapefruit.Signal.Continuous.CSignal
+ FRP.Grapefruit.Signal.Continuous: instance Internal.Signal.Signal FRP.Grapefruit.Signal.Continuous.CSignal
+ FRP.Grapefruit.Signal.Incremental: data family Diff val :: *;
+ FRP.Grapefruit.Signal.Incremental: instance Data.Semigroup.Semigroup (FRP.Grapefruit.Signal.Incremental.Diff (FRP.Grapefruit.Signal.Incremental.Monolithic val))
+ FRP.Grapefruit.Signal.Incremental: instance FRP.Grapefruit.Signal.Incremental.Incremental (FRP.Grapefruit.Signal.Incremental.Monolithic val)
+ FRP.Grapefruit.Signal.Incremental: type family ValidationState val :: *;
+ FRP.Grapefruit.Signal.Incremental: }
+ FRP.Grapefruit.Signal.Incremental.Sequence: instance Data.Semigroup.Semigroup (FRP.Grapefruit.Signal.Incremental.Diff (Data.Sequence.Seq el))
+ FRP.Grapefruit.Signal.Incremental.Sequence: instance FRP.Grapefruit.Signal.Incremental.Incremental (Data.Sequence.Seq el)
+ FRP.Grapefruit.Signal.Incremental.Sequence: instance GHC.Base.Monoid (FRP.Grapefruit.Signal.Incremental.Diff (Data.Sequence.Seq el))
+ FRP.Grapefruit.Signal.Incremental.Set: instance GHC.Classes.Ord el => Data.Semigroup.Semigroup (FRP.Grapefruit.Signal.Incremental.Diff (Data.Set.Base.Set el))
+ FRP.Grapefruit.Signal.Incremental.Set: instance GHC.Classes.Ord el => FRP.Grapefruit.Signal.Incremental.Incremental (Data.Set.Base.Set el)
+ FRP.Grapefruit.Signal.Incremental.Set: instance GHC.Classes.Ord el => GHC.Base.Monoid (FRP.Grapefruit.Signal.Incremental.Diff (Data.Set.Base.Set el))
- FRP.Grapefruit.Signal: sfApp :: SignalFun era ((signal Of val) :-> shape) -> signal era val -> SignalFun era shape
+ FRP.Grapefruit.Signal: sfApp :: SignalFun era ((signal `Of` val) :-> shape) -> signal era val -> SignalFun era shape
- FRP.Grapefruit.Signal: unOSF :: SignalFun era (signal Of val) -> signal era val
+ FRP.Grapefruit.Signal: unOSF :: SignalFun era (signal `Of` val) -> signal era val
- FRP.Grapefruit.Signal: unSSF :: SignalFun era ((signal Of val) :-> shape) -> (signal era val -> SignalFun era shape)
+ FRP.Grapefruit.Signal: unSSF :: SignalFun era ((signal `Of` val) :-> shape) -> (signal era val -> SignalFun era shape)
- FRP.Grapefruit.Signal.Incremental: class Semigroup (Diff val) => Incremental val where data family Diff val :: * type family ValidationState val :: *
+ FRP.Grapefruit.Signal.Incremental: class (Semigroup (Diff val)) => Incremental val where data Diff val :: * type ValidationState val :: * where {
- FRP.Grapefruit.Signal.Incremental: const :: Incremental val => val -> ISignal era val
+ FRP.Grapefruit.Signal.Incremental: const :: (Incremental val) => val -> ISignal era val
- FRP.Grapefruit.Signal.Incremental: construct :: Incremental val => val -> DSignal era (Diff val) -> ISignal era val
+ FRP.Grapefruit.Signal.Incremental: construct :: (Incremental val) => val -> DSignal era (Diff val) -> ISignal era val
- FRP.Grapefruit.Signal.Incremental: toSSignal :: Incremental val => ISignal era val -> SSignal era val
+ FRP.Grapefruit.Signal.Incremental: toSSignal :: (Incremental val) => ISignal era val -> SSignal era val
- FRP.Grapefruit.Signal.Incremental: withInit :: Signal signal => ISignal era val -> (val -> signal era val') -> signal era val'
+ FRP.Grapefruit.Signal.Incremental: withInit :: (Signal signal) => ISignal era val -> (val -> signal era val') -> signal era val'
- FRP.Grapefruit.Signal.Incremental.Set: deletion :: Ord el => Set el -> Diff (Set el)
+ FRP.Grapefruit.Signal.Incremental.Set: deletion :: (Ord el) => Set el -> Diff (Set el)
- FRP.Grapefruit.Signal.Incremental.Set: difference :: Ord el => ISignal era (Set el) -> ISignal era (Set el) -> ISignal era (Set el)
+ FRP.Grapefruit.Signal.Incremental.Set: difference :: (Ord el) => ISignal era (Set el) -> ISignal era (Set el) -> ISignal era (Set el)
- FRP.Grapefruit.Signal.Incremental.Set: empty :: Ord el => ISignal era (Set el)
+ FRP.Grapefruit.Signal.Incremental.Set: empty :: (Ord el) => ISignal era (Set el)
- FRP.Grapefruit.Signal.Incremental.Set: insertion :: Ord el => Set el -> Diff (Set el)
+ FRP.Grapefruit.Signal.Incremental.Set: insertion :: (Ord el) => Set el -> Diff (Set el)
- FRP.Grapefruit.Signal.Incremental.Set: intersection :: Ord el => ISignal era (Set el) -> ISignal era (Set el) -> ISignal era (Set el)
+ FRP.Grapefruit.Signal.Incremental.Set: intersection :: (Ord el) => ISignal era (Set el) -> ISignal era (Set el) -> ISignal era (Set el)
- FRP.Grapefruit.Signal.Incremental.Set: member :: Ord el => SSignal era el -> ISignal era (Set el) -> SSignal era Bool
+ FRP.Grapefruit.Signal.Incremental.Set: member :: (Ord el) => SSignal era el -> ISignal era (Set el) -> SSignal era Bool
- FRP.Grapefruit.Signal.Incremental.Set: notMember :: Ord el => SSignal era el -> ISignal era (Set el) -> SSignal era Bool
+ FRP.Grapefruit.Signal.Incremental.Set: notMember :: (Ord el) => SSignal era el -> ISignal era (Set el) -> SSignal era Bool
- FRP.Grapefruit.Signal.Incremental.Set: null :: Ord el => ISignal era (Set el) -> SSignal era Bool
+ FRP.Grapefruit.Signal.Incremental.Set: null :: (Ord el) => ISignal era (Set el) -> SSignal era Bool
- FRP.Grapefruit.Signal.Incremental.Set: singleton :: Ord el => SSignal era el -> ISignal era (Set el)
+ FRP.Grapefruit.Signal.Incremental.Set: singleton :: (Ord el) => SSignal era el -> ISignal era (Set el)
- FRP.Grapefruit.Signal.Incremental.Set: size :: Ord el => ISignal era (Set el) -> SSignal era Int
+ FRP.Grapefruit.Signal.Incremental.Set: size :: (Ord el) => ISignal era (Set el) -> SSignal era Int
- FRP.Grapefruit.Signal.Incremental.Set: staticMember :: Ord el => el -> ISignal era (Set el) -> SSignal era Bool
+ FRP.Grapefruit.Signal.Incremental.Set: staticMember :: (Ord el) => el -> ISignal era (Set el) -> SSignal era Bool
- FRP.Grapefruit.Signal.Incremental.Set: staticNotMember :: Ord el => el -> ISignal era (Set el) -> SSignal era Bool
+ FRP.Grapefruit.Signal.Incremental.Set: staticNotMember :: (Ord el) => el -> ISignal era (Set el) -> SSignal era Bool
- FRP.Grapefruit.Signal.Incremental.Set: toAscSeqs :: Ord el => ISignal era (Set el) -> ISignal era (Seq el)
+ FRP.Grapefruit.Signal.Incremental.Set: toAscSeqs :: (Ord el) => ISignal era (Set el) -> ISignal era (Seq el)
- FRP.Grapefruit.Signal.Incremental.Set: toSeqs :: Ord el => ISignal era (Set el) -> ISignal era (Seq el)
+ FRP.Grapefruit.Signal.Incremental.Set: toSeqs :: (Ord el) => ISignal era (Set el) -> ISignal era (Seq el)
- FRP.Grapefruit.Signal.Incremental.Set: union :: Ord el => ISignal era (Set el) -> ISignal era (Set el) -> ISignal era (Set el)
+ FRP.Grapefruit.Signal.Incremental.Set: union :: (Ord el) => ISignal era (Set el) -> ISignal era (Set el) -> ISignal era (Set el)
- FRP.Grapefruit.Signal.Segmented: withInit :: Signal signal => SSignal era val -> (val -> signal era val') -> signal era val'
+ FRP.Grapefruit.Signal.Segmented: withInit :: (Signal signal) => SSignal era val -> (val -> signal era val') -> signal era val'
Files
- LICENSE +22/−19
- grapefruit-frp.cabal +12/−8
- src/FRP/Grapefruit/Circuit.hs +1/−0
- src/FRP/Grapefruit/Signal/Incremental/Sequence.hs +2/−1
- src/FRP/Grapefruit/Signal/Incremental/Set.hs +2/−1
- src/Internal/Signal.hs +1/−1
- src/Internal/Signal/Continuous/Segment.hs +1/−0
- src/Internal/Signal/Discrete.hs +1/−0
- src/Internal/Signal/Discrete/ListenerSet.hs +1/−0
- src/Internal/Signal/Discrete/Vista.hs +1/−0
LICENSE view
@@ -2,27 +2,30 @@ Copyright © 2011–2014 Wolfgang Jeltsch All rights reserved. -Redistribution and use in source and binary forms, with or without modification,-are permitted provided that the following conditions are met:+Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are+met: - • Redistributions of source code must retain the above copyright notice,- this list of conditions and the following disclaimer.+ • Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer. - • Redistributions in binary form must reproduce the above copyright notice,- this list of conditions and the following disclaimer in the documentation- and/or other materials provided with the distribution.+ • Redistributions in binary form must reproduce the above copyright+ notice, this list of conditions and the following disclaimer in+ the documentation and/or other materials provided with the+ distribution. • Neither the name of the copyright holders nor the names of the- contributors may be used to endorse or promote products derived from this- software without specific prior written permission.+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS+IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
grapefruit-frp.cabal view
@@ -1,5 +1,5 @@ Name: grapefruit-frp-Version: 0.1.0.5+Version: 0.1.0.6 Cabal-Version: >= 1.8 Build-Type: Simple License: BSD3@@ -7,10 +7,10 @@ Copyright: © 2007–2009 Brandenburgische Technische Universität Cottbus © 2011–2014 Wolfgang Jeltsch Author: Wolfgang Jeltsch-Maintainer: wolfgang@cs.ioc.ee+Maintainer: wolfgang-it@jeltsch.info Stability: provisional-Homepage: http://grapefruit-project.org/-Package-URL: http://hackage.haskell.org/packages/archive/grapefruit-frp/0.1.0.5/grapefruit-frp-0.1.0.5.tar.gz+Homepage: https://grapefruit-project.org/+Package-URL: https://hackage.haskell.org/package/grapefruit-frp-0.1.0.6/grapefruit-frp-0.1.0.6.tar.gz Synopsis: Functional Reactive Programming core Description: Grapefruit is a library for Functional Reactive Programming (FRP) with a focus on user interfaces. FRP makes it possible to@@ -21,19 +21,23 @@ This package contains general support for Functional Reactive Programming. Category: FRP, Reactivity-Tested-With: GHC == 7.6.3+Tested-With: GHC == 8.0.1 +Source-Repository head+ Type: darcs+ Location: http://hub.darcs.net/jeltsch/grapefruit+ Source-Repository this Type: darcs- Location: http://darcs.grapefruit-project.org/monolithic/0.1- Tag: grapefruit-0.1.0.5+ Location: http://hub.darcs.net/jeltsch/grapefruit+ Tag: grapefruit-0.1.0.6 Library Build-Depends: arrows >= 0.2 && < 0.5, base >= 3.0 && < 5, containers >= 0.1 && < 0.6, fingertree >= 0.0 && < 0.2,- semigroups >= 0.8 && < 0.16,+ semigroups >= 0.8 && < 0.19, TypeCompose >= 0.3 && < 0.10 if impl(ghc >= 7.8) { -- Role annotations are only supported (and needed) from 7.8 onwards.
src/FRP/Grapefruit/Circuit.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE NoImpredicativeTypes #-} -- |This module provides circuits which are descriptions of reactive systems. module FRP.Grapefruit.Circuit (
src/FRP/Grapefruit/Signal/Incremental/Sequence.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE NoImpredicativeTypes #-} module FRP.Grapefruit.Signal.Incremental.Sequence ( -- * Diffs@@ -41,7 +42,7 @@ -- Data import Data.Semigroup as Semigroup import Data.Monoid as Monoid- import Data.Foldable as Foldable+ import Data.Foldable as Foldable (foldl, toList, sum) import Data.Sequence as Seq (Seq) import qualified Data.Sequence as Seq
src/FRP/Grapefruit/Signal/Incremental/Set.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE NoImpredicativeTypes #-} module FRP.Grapefruit.Signal.Incremental.Set ( -- * Diffs@@ -74,7 +75,7 @@ import FRP.Grapefruit.Signal.Segmented as SSignal import FRP.Grapefruit.Signal.Incremental as ISignal hiding (combine, map) import qualified FRP.Grapefruit.Signal.Incremental as ISignal- import qualified FRP.Grapefruit.Signal.Incremental.Sequence as SeqISignal+ import qualified FRP.Grapefruit.Signal.Incremental.Sequence as SeqISignal hiding (Diff) {-FIXME: There are several occurences of set union, difference and intersection which involve a set
src/Internal/Signal.hs view
@@ -249,7 +249,7 @@ -} (#>) :: (Sampler sampler, Samplee samplee) => sampler era dummy -> samplee era val -> sampler era val- (#>) = (<#>) . samplerMap (const id)+ (#>) = (<#>) . samplerMap (const (\ val -> val)) {-| Sampling of signals where the values of the samplee are ignored.
src/Internal/Signal/Continuous/Segment.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE NoImpredicativeTypes #-} {-# OPTIONS_GHC -fno-cse #-} module Internal.Signal.Continuous.Segment (
src/Internal/Signal/Discrete.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE NoImpredicativeTypes #-} module Internal.Signal.Discrete ( -- * Discrete signal type
src/Internal/Signal/Discrete/ListenerSet.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE NoImpredicativeTypes #-} module Internal.Signal.Discrete.ListenerSet ( ListenerSet,
src/Internal/Signal/Discrete/Vista.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE NoImpredicativeTypes #-} module Internal.Signal.Discrete.Vista ( Vista,