concur-core-0.1.0.0: A client side web UI framework for Haskell. Core framework.

Safe HaskellNone
LanguageHaskell2010

Concur.Core.Types

Synopsis

Documentation

newtype Widget v a Source #

Constructors

Widget 

Fields

Instances
Monad (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

(>>=) :: Widget v a -> (a -> Widget v b) -> Widget v b #

(>>) :: Widget v a -> Widget v b -> Widget v b #

return :: a -> Widget v a #

fail :: String -> Widget v a #

Functor (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

fmap :: (a -> b) -> Widget v a -> Widget v b #

(<$) :: a -> Widget v b -> Widget v a #

Applicative (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

pure :: a -> Widget v a #

(<*>) :: Widget v (a -> b) -> Widget v a -> Widget v b #

liftA2 :: (a -> b -> c) -> Widget v a -> Widget v b -> Widget v c #

(*>) :: Widget v a -> Widget v b -> Widget v b #

(<*) :: Widget v a -> Widget v b -> Widget v a #

Monoid v => MonadIO (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

liftIO :: IO a -> Widget v a #

Monoid v => Alternative (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

empty :: Widget v a #

(<|>) :: Widget v a -> Widget v a -> Widget v a #

some :: Widget v a -> Widget v [a] #

many :: Widget v a -> Widget v [a] #

Monoid v => MonadPlus (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

mzero :: Widget v a #

mplus :: Widget v a -> Widget v a -> Widget v a #

Monoid v => MonadSTM (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

liftSTM :: STM a -> Widget v a Source #

Monoid v => MultiAlternative (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

never :: Widget v a Source #

orr :: [Widget v a] -> Widget v a Source #

widget :: v -> Effect a -> Widget v a Source #

display :: v -> Widget v a Source #

mapView :: (u -> v) -> Widget u a -> Widget v a Source #

wrapView :: Applicative f => (u -> v) -> Widget u a -> Widget (f v) a Source #

newtype Suspend v a Source #

Constructors

Suspend 

Fields

Instances
Functor (Suspend v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

fmap :: (a -> b) -> Suspend v a -> Suspend v b #

(<$) :: a -> Suspend v b -> Suspend v a #

data SuspendF v a Source #

Constructors

SuspendF 

Fields

Instances
Functor (SuspendF v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

fmap :: (a -> b) -> SuspendF v a -> SuspendF v b #

(<$) :: a -> SuspendF v b -> SuspendF v a #

type Effect a = STM (Maybe a) Source #

effect :: v -> STM a -> Widget v a Source #

awaitViewAction :: (Notify a -> v) -> Widget v a Source #

class MultiAlternative f where Source #

Minimal complete definition

never, orr

Methods

never :: f a Source #

orr :: [f a] -> f a Source #

Instances
Alternative f => MultiAlternative f Source # 
Instance details

Defined in Control.MultiAlternative

Methods

never :: f a Source #

orr :: [f a] -> f a Source #

Monoid v => MultiAlternative (Widget v) Source # 
Instance details

Defined in Concur.Core.Types

Methods

never :: Widget v a Source #

orr :: [Widget v a] -> Widget v a Source #

loadWithIO :: v -> IO a -> Widget v a Source #

remoteWidget :: (MultiAlternative m, MonadSTM m, Monad m) => m b -> (a -> m b) -> STM (a -> m (), m b) Source #

unsafeBlockingIO :: Monoid v => IO a -> Widget v a Source #

IMPORTANT: Blocking IO is dangerous as it can block the entire UI from updating. It should only be used for *very* quick running IO actions like creating MVars.