User state class for Drawing monads.
- type family UState m :: *
- class (Applicative m, Monad m) => UserStateM m where
- class InsertlM m where
- class Monad m => LocationM m where
- class LocationM m => CursorM m where
- class CursorM m => BranchCursorM m where
- branchCursor :: m a -> m a
- hmoveby :: (CursorM m, Num u, u ~ DUnit (m ())) => u -> m ()
- vmoveby :: (CursorM m, Num u, u ~ DUnit (m ())) => u -> m ()
Monad that collects a graphic trace,
insertl is analogue
to the Writer monad's
Monad with notion of location - i.e. the current point.
Monad with turtle-like cursor movememnt.
Add operations for branching at the current point.
Not all drawings that support tracing support branching. For instance Paths can be built by tracing but they always need a cumulative progression of next point they cannot resrt to the start point and go in a differnt direction.