Portability | GHC |
---|---|
Stability | highly unstable |
Maintainer | stephen.tetley@gmail.com |
Drawing monad with immutable start point.
- data GenLocDrawing st u a
- type LocDrawing u a = GenLocDrawing () u a
- class Monad m => LocDrawM m where
- inserti :: u ~ DUnit (m ()) => Image u a -> m a
- inserti_ :: u ~ DUnit (m ()) => Image u a -> m ()
- insertli :: u ~ DUnit (m ()) => Anchor u -> LocImage u a -> m a
- insertli_ :: u ~ DUnit (m ()) => Anchor u -> LocImage u a -> m ()
- insertci :: u ~ DUnit (m ()) => Anchor u -> Anchor u -> ConnectorImage u a -> m a
- insertci_ :: u ~ DUnit (m ()) => Anchor u -> Anchor u -> ConnectorImage u a -> m ()
- runGenLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => GenLocDrawing st u a -> st -> LocImage u (a, st)
- evalGenLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => GenLocDrawing st u a -> st -> LocImage u a
- execGenLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => GenLocDrawing st u a -> st -> LocImage u st
- stripGenLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => GenLocDrawing st u a -> st -> LocQuery u (a, st)
- runLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => LocDrawing u a -> LocImage u a
- runLocDrawing_ :: (Translate a, InterpretUnit u, u ~ DUnit a) => LocDrawing u a -> LocGraphic u
GenLocDrawing monad
data GenLocDrawing st u a Source
GenLocDrawing
is a reader-writer-state monad, unlike
GenLocTrace
there is no updateable current point, instead
the start point is supplied when the drawing is run and it
is translated by the components of the start point.
The writer accumulates a graphical trace.
Essentially, GenLocDrawing
is an Image
object extended
with user state.
Monad (GenLocDrawing st u) | |
Functor (GenLocDrawing st u) | |
Applicative (GenLocDrawing st u) | |
DrawingCtxM (GenLocDrawing st u) | |
UserStateM (GenLocDrawing st u) | |
InterpretUnit u => LocDrawM (GenLocDrawing st u) | |
Monoid a => Monoid (GenLocDrawing st u a) |
type LocDrawing u a = GenLocDrawing () u aSource
class Monad m => LocDrawM m whereSource
inserti :: u ~ DUnit (m ()) => Image u a -> m aSource
inserti_ :: u ~ DUnit (m ()) => Image u a -> m ()Source
insertli :: u ~ DUnit (m ()) => Anchor u -> LocImage u a -> m aSource
insertli_ :: u ~ DUnit (m ()) => Anchor u -> LocImage u a -> m ()Source
insertci :: u ~ DUnit (m ()) => Anchor u -> Anchor u -> ConnectorImage u a -> m aSource
insertci_ :: u ~ DUnit (m ()) => Anchor u -> Anchor u -> ConnectorImage u a -> m ()Source
InterpretUnit u => LocDrawM (GenLocDrawing st u) |
runGenLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => GenLocDrawing st u a -> st -> LocImage u (a, st)Source
evalGenLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => GenLocDrawing st u a -> st -> LocImage u aSource
Forget the user state LocImage, just return the answer.
execGenLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => GenLocDrawing st u a -> st -> LocImage u stSource
Forget the answer, just return the user state.
stripGenLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => GenLocDrawing st u a -> st -> LocQuery u (a, st)Source
runLocDrawing :: (Translate a, InterpretUnit u, u ~ DUnit a) => LocDrawing u a -> LocImage u aSource
Simple version of runGenLocDrawing
- run a LocDrawing
without
user state.
runLocDrawing_ :: (Translate a, InterpretUnit u, u ~ DUnit a) => LocDrawing u a -> LocGraphic uSource