Shpadoinkle-backend-snabbdom-0.3.0.0: Use the high-performance Snabbdom virtual dom library written in JavaScript.

Safe HaskellNone
LanguageHaskell2010

Shpadoinkle.Backend.Snabbdom

Description

This module provides the Backend binding for the JavaScript virtual DOM implementation Snabbdom.

Synopsis

Documentation

newtype SnabbdomT model m a Source #

Constructors

Snabbdom 

Fields

Instances
MonadBase n m => MonadBase n (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

liftBase :: n α -> SnabbdomT model m α #

MonadBaseControl n m => MonadBaseControl n (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Associated Types

type StM (SnabbdomT model m) a :: Type #

Methods

liftBaseWith :: (RunInBase (SnabbdomT model m) n -> n a) -> SnabbdomT model m a #

restoreM :: StM (SnabbdomT model m) a -> SnabbdomT model m a #

MonadTrans (SnabbdomT model) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

lift :: Monad m => m a -> SnabbdomT model m a #

MonadTransControl (SnabbdomT model) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Associated Types

type StT (SnabbdomT model) a :: Type #

Methods

liftWith :: Monad m => (Run (SnabbdomT model) -> m a) -> SnabbdomT model m a #

restoreT :: Monad m => m (StT (SnabbdomT model) a) -> SnabbdomT model m a #

(MonadJSM m, Eq a) => Backend (SnabbdomT a) m a Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Associated Types

type VNode (SnabbdomT a) m :: Type

Methods

interpret :: (m ~> JSM) -> Html (SnabbdomT a m) a -> SnabbdomT a m (VNode (SnabbdomT a) m)

patch :: RawNode -> Maybe (VNode (SnabbdomT a) m) -> VNode (SnabbdomT a) m -> SnabbdomT a m (VNode (SnabbdomT a) m)

setup :: JSM () -> JSM ()

Monad m => MonadReader (TVar model) (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

ask :: SnabbdomT model m (TVar model) #

local :: (TVar model -> TVar model) -> SnabbdomT model m a -> SnabbdomT model m a #

reader :: (TVar model -> a) -> SnabbdomT model m a #

Monad m => Monad (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

(>>=) :: SnabbdomT model m a -> (a -> SnabbdomT model m b) -> SnabbdomT model m b #

(>>) :: SnabbdomT model m a -> SnabbdomT model m b -> SnabbdomT model m b #

return :: a -> SnabbdomT model m a #

fail :: String -> SnabbdomT model m a #

Functor m => Functor (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

fmap :: (a -> b) -> SnabbdomT model m a -> SnabbdomT model m b #

(<$) :: a -> SnabbdomT model m b -> SnabbdomT model m a #

Applicative m => Applicative (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

pure :: a -> SnabbdomT model m a #

(<*>) :: SnabbdomT model m (a -> b) -> SnabbdomT model m a -> SnabbdomT model m b #

liftA2 :: (a -> b -> c) -> SnabbdomT model m a -> SnabbdomT model m b -> SnabbdomT model m c #

(*>) :: SnabbdomT model m a -> SnabbdomT model m b -> SnabbdomT model m b #

(<*) :: SnabbdomT model m a -> SnabbdomT model m b -> SnabbdomT model m a #

MonadIO m => MonadIO (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

liftIO :: IO a -> SnabbdomT model m a #

MonadThrow m => MonadThrow (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

throwM :: Exception e => e -> SnabbdomT model m a #

MonadCatch m => MonadCatch (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

catch :: Exception e => SnabbdomT model m a -> (e -> SnabbdomT model m a) -> SnabbdomT model m a #

MonadJSM m => MonadJSM (SnabbdomT model m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

liftJSM' :: JSM a -> SnabbdomT model m a #

MonadUnliftIO m => MonadUnliftIO (SnabbdomT r m) Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

Methods

askUnliftIO :: SnabbdomT r m (UnliftIO (SnabbdomT r m)) #

withRunInIO :: ((forall a. SnabbdomT r m a -> IO a) -> IO b) -> SnabbdomT r m b #

type StT (SnabbdomT model) a Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

type StT (SnabbdomT model) a = StT (ReaderT (TVar model)) a
type VNode (SnabbdomT a) m Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

type VNode (SnabbdomT a) m
type StM (SnabbdomT model m) a Source # 
Instance details

Defined in Shpadoinkle.Backend.Snabbdom

type StM (SnabbdomT model m) a = ComposeSt (SnabbdomT model) m a

runSnabbdom :: TVar model -> SnabbdomT model m ~> m Source #

SnabbdomT is a newtype of ReaderT, this is the runReaderT equivalent.

stage :: MonadJSM m => SnabbdomT a m RawNode Source #

Get the window.container DOM node produced by setup (Setup.js).