rhine-0.9: rhine.cabal
name: rhine
version: 0.9
synopsis: Functional Reactive Programming with type-level clocks
description:
Rhine is a library for synchronous and asynchronous Functional Reactive Programming (FRP).
It separates the aspects of clocking, scheduling and resampling
from each other, and ensures clock-safety on the type level.
Signal processing units can be annotated by clocks,
which hold the information when data will be
input, processed and output.
Different components of the signal network
will become active at different times, or work
at different rates.
To schedule the components and allow them to communicate,
several standard scheduling and resampling solutions are implemented.
Own schedules and resampling buffers can be implemented in a reusable fashion.
A (synchronous) program outputting "Hello World!" every tenth of a second looks like this:
@flow $ constMCl (putStrLn "Hello World!") \@\@ (waitClock :: Millisecond 100)@
license: BSD3
license-file: LICENSE
author: Manuel Bärenz
maintainer: maths@manuelbaerenz.de
category: FRP
build-type: Simple
extra-source-files: ChangeLog.md
extra-doc-files: README.md
cabal-version: 2.0
tested-with:
GHC == 8.10.7
GHC == 9.0.2
GHC == 9.2.5
GHC == 9.4.4
source-repository head
type: git
location: https://github.com/turion/rhine.git
source-repository this
type: git
location: https://github.com/turion/rhine.git
tag: v0.9
library
exposed-modules:
Control.Monad.Schedule
FRP.Rhine
FRP.Rhine.Clock
FRP.Rhine.Clock.FixedStep
FRP.Rhine.Clock.Periodic
FRP.Rhine.Clock.Proxy
FRP.Rhine.Clock.Realtime.Audio
FRP.Rhine.Clock.Realtime.Busy
FRP.Rhine.Clock.Realtime.Event
FRP.Rhine.Clock.Realtime.Millisecond
FRP.Rhine.Clock.Realtime.Stdin
FRP.Rhine.Clock.Select
FRP.Rhine.Clock.Util
FRP.Rhine.ClSF
FRP.Rhine.ClSF.Core
FRP.Rhine.ClSF.Except
FRP.Rhine.ClSF.Random
FRP.Rhine.ClSF.Reader
FRP.Rhine.ClSF.Upsample
FRP.Rhine.ClSF.Util
FRP.Rhine.Reactimation
FRP.Rhine.Reactimation.ClockErasure
FRP.Rhine.Reactimation.Combinators
FRP.Rhine.ResamplingBuffer
FRP.Rhine.ResamplingBuffer.Collect
FRP.Rhine.ResamplingBuffer.FIFO
FRP.Rhine.ResamplingBuffer.Interpolation
FRP.Rhine.ResamplingBuffer.KeepLast
FRP.Rhine.ResamplingBuffer.LIFO
FRP.Rhine.ResamplingBuffer.MSF
FRP.Rhine.ResamplingBuffer.Timeless
FRP.Rhine.ResamplingBuffer.Util
FRP.Rhine.Schedule
FRP.Rhine.Schedule.Concurrently
FRP.Rhine.Schedule.Trans
FRP.Rhine.SN
FRP.Rhine.SN.Combinators
FRP.Rhine.Type
other-modules:
FRP.Rhine.ClSF.Random.Util
FRP.Rhine.ClSF.Except.Util
FRP.Rhine.Schedule.Util
-- LANGUAGE extensions used by modules in this package.
-- other-extensions:
-- Other library packages from which modules are imported.
build-depends: base >= 4.14 && < 4.18
, dunai ^>= 0.9
, transformers >= 0.5
, time >= 1.8
, free >= 5.1
, containers >= 0.5
, vector-sized >= 1.4
, deepseq >= 1.4
, random >= 1.1
, MonadRandom >= 0.5
-- Remove version pin when https://github.com/ivanperez-keera/dunai/issues/298 is resolved:
, simple-affine-space == 0.1.1
, time-domain
-- Directories containing source files.
hs-source-dirs: src
ghc-options: -W
-Wno-unticked-promoted-constructors
if flag(dev)
ghc-options: -Werror
default-extensions:
NoStarIsType
, TypeOperators
-- Base language which the package is written in.
default-language: Haskell2010
flag dev
description: Enable warnings as errors. Active on ci.
default: False
manual: True