name: dunai-core version: 0.5.1.0 synopsis: Generalised reactive framework supporting classic, arrowized and monadic FRP. (Core library fork.) homepage: https://github.com/turion/dunai-core description: Dunai is a DSL for strongly-typed CPS-based composable transformations. . Dunai is based on a concept of Monadic Stream Functions (MSFs). MSFs are transformations defined by a function @unMSF :: MSF m a b -> a -> m (b, MSF m a b)@ that executes one step of a simulation, and produces an output in a monadic context, and a continuation to be used for future steps. . MSFs are a generalisation of the implementation mechanism used by Yampa, Wormholes and other FRP and reactive implementations. . When combined with different monads, they produce interesting effects. For example, when combined with the @Maybe@ monad, they become transformations that may stop producing outputs (and continuations). The @Either@ monad gives rise to MSFs that end with a result (akin to Tasks in Yampa, and Monadic FRP). . Flattening, that is, going from some structure @MSF (t m) a b@ to @MSF m a b@ for a specific transformer @t@ often gives rise to known FRP constructs. For instance, flattening with @EitherT@ gives rise to switching, and flattening with @ListT@ gives rise to parallelism with broadcasting. . MSFs can be used to implement many FRP variants, including Arrowized FRP, Classic FRP, and plain reactive programming. Arrowized and applicative syntax are both supported. . For a very detailed introduction to MSFs, see: (mirror: ). license: BSD3 license-file: LICENSE author: Ivan Perez, Manuel Bärenz maintainer: programming@manuelbaerenz.de -- copyright: category: Reactivity, FRP build-type: Simple -- extra-source-files: cabal-version: 1.18 source-repository head type: git location: git@github.com:turion/dunai-core library exposed-modules: Control.Monad.Trans.MSF Control.Monad.Trans.MSF.Except Control.Monad.Trans.MSF.GenLift Control.Monad.Trans.MSF.Maybe Control.Monad.Trans.MSF.Random Control.Monad.Trans.MSF.Reader Control.Monad.Trans.MSF.RWS Control.Monad.Trans.MSF.State Control.Monad.Trans.MSF.Writer Data.MonadicStreamFunction Data.MonadicStreamFunction.Core Data.MonadicStreamFunction.Async Data.MonadicStreamFunction.Instances.ArrowChoice Data.MonadicStreamFunction.Instances.ArrowLoop Data.MonadicStreamFunction.Instances.ArrowPlus Data.MonadicStreamFunction.Instances.Num Data.MonadicStreamFunction.Instances.VectorSpace Data.MonadicStreamFunction.Parallel Data.MonadicStreamFunction.ReactHandle Data.MonadicStreamFunction.Util -- Auxiliary definitions Data.VectorSpace other-modules: Control.Arrow.Util build-depends: base >=4.10 && < 4.13 , transformers == 0.5.* , transformers-base == 0.4.* , MonadRandom == 0.5.* hs-source-dirs: src default-language: Haskell2010 ghc-options: -Wall