tweak-0.1.0.1: A library for incremental computing

Safe HaskellNone

Control.Tweak.Internal

Synopsis

Documentation

data Maker a Source

Maker is the Applicative used to create Tweakable expressions Use the Applicative interface or the Applicative helpers .$. and .*.

Constructors

Maker 

Fields

runmaker :: IO (Tweakable a)
 

make :: Tweakable a -> Maker aSource

Turn a Tweakable into a Maker so it can be combined with other Makers

apply :: IO (Tweakable (a -> b)) -> IO (Tweakable a) -> IO (Tweakable b)Source

class Funktor g f whereSource

Methods

fcrap :: (a -> b) -> f a -> g bSource

(.$.) :: Funktor g f => (a -> b) -> f a -> g bSource

This is slight variation on <$>. Use .$. and .*. avoid explicit calls to make and Pure.

Unlike Functor the input and output * -> * type can change. There is no reasoning or laws behind it, it is just sugar.

The Funktor type class is closed and private. There are only instances for Maker, Tweakable, and Var.

(.*.) :: Comply g h => g (a -> b) -> h a -> g bSource

This is slight variation on <*>. Use .$. and .*. avoid explicit calls to make and Pure.

Unlike Apply, with Comply the input and output * -> * type can change. Like Funktor, there is no reasoning or laws behind it, it is just sugar.

The Comply type class is closed and private. There are only instances for Maker, Tweakable, and Var.

class Comply g h whereSource

Methods

connect :: g (a -> b) -> h a -> g bSource