tcalculus-1.0.0: A DSL prototype for structured realtime/reactive functional programing

Copyright(c) David Janin, Simon Archipoff, 2016
Licensesee the LICENSE file in the distribution
Maintainerjanin@labri.fr
Stabilityexperimental
Safe HaskellSafe
LanguageHaskell2010

Reactive.Updatable

Contents

Description

The key class to allow on-the-fly updates of recursive tile definitions. No possible realtime tile programming without it.

Synopsis

Class Updatable

type UpdateData d iv = (d -> d, InQList d iv -> InQList d iv) Source #

Type of updates

class Updatable p d iv where Source #

Type p can be update via type v

Minimal complete definition

update

Methods

update :: UpdateData d iv -> p -> p Source #

Instances

Updatable Bool d iv Source #

No update needed

Methods

update :: UpdateData d iv -> Bool -> Bool Source #

Updatable Char d iv Source #

No update needed

Methods

update :: UpdateData d iv -> Char -> Char Source #

Updatable Int d iv Source #

No update needed

Methods

update :: UpdateData d iv -> Int -> Int Source #

Updatable Integer d iv Source #

No update needed

Methods

update :: UpdateData d iv -> Integer -> Integer Source #

Updatable Rational d iv Source #

No update needed

Methods

update :: UpdateData d iv -> Rational -> Rational Source #

Updatable () d iv Source #

No update needed

Methods

update :: UpdateData d iv -> () -> () Source #

Updatable ScaleType d iv Source # 
Updatable Midi d iv Source #

No update needed

Methods

update :: UpdateData d iv -> Midi -> Midi Source #

Updatable PitchClass d iv Source #

No update needed

Updatable p d iv => Updatable [p] d iv Source #

Closure under list functor

Methods

update :: UpdateData d iv -> [p] -> [p] Source #

Updatable p d iv => Updatable (Maybe p) d iv Source #

Closure under Maybe

Methods

update :: UpdateData d iv -> Maybe p -> Maybe p Source #

Updatable p d iv => Updatable (p -> q) d iv Source #

Closure under exponentiation

Methods

update :: UpdateData d iv -> (p -> q) -> p -> q Source #

(Updatable p1 d iv, Updatable p2 d iv) => Updatable (Either p1 p2) d iv Source #

Closure under binary disjoint sum

Methods

update :: UpdateData d iv -> Either p1 p2 -> Either p1 p2 Source #

(Updatable p1 d iv, Updatable p2 d iv) => Updatable (p1, p2) d iv Source #

Closure under binary Cartesian product

Methods

update :: UpdateData d iv -> (p1, p2) -> (p1, p2) Source #

Updatable (InQList d iv) d iv Source #

On-the fly updates of inputs

Methods

update :: UpdateData d iv -> InQList d iv -> InQList d iv Source #

(Updatable p1 d iv, Updatable p2 d iv, Updatable p3 d iv) => Updatable (p1, p2, p3) d iv Source #

Closure under ternary Cartesian product

Methods

update :: UpdateData d iv -> (p1, p2, p3) -> (p1, p2, p3) Source #

Updatable (Atom d iv v) d iv Source #

On-the fly updates of atoms

Methods

update :: UpdateData d iv -> Atom d iv v -> Atom d iv v Source #

Updatable (DQ d iv v) d iv Source #

For on-the fly updates of outputs

Methods

update :: UpdateData d iv -> DQ d iv v -> DQ d iv v Source #

Updatable (QList d iv v) d iv Source #

For on-the fly updates of outputs

Methods

update :: UpdateData d iv -> QList d iv v -> QList d iv v Source #

Updatable (Tile d iv v) d iv Source #

For on-the fly updates

Methods

update :: UpdateData d iv -> Tile d iv v -> Tile d iv v Source #

(Updatable p1 d iv, Updatable p2 d iv, Updatable p3 d iv, Updatable p4 d iv) => Updatable (p1, p2, p3, p4) d iv Source #

Closure under fourary Cartesian product

Methods

update :: UpdateData d iv -> (p1, p2, p3, p4) -> (p1, p2, p3, p4) Source #