Portability | GHC |
---|---|
Stability | highly unstable |
Maintainer | stephen.tetley@gmail.com |
Writer monad with imperative turtle style movement to build LocGraphics and references allowing connectors between objects.
Note - references are not feedback. Subsequent nodes cannot be place at anchors of previous nodes - anchors only allow connectors to be drawn between located nodes.
- class Monad m => LocTraceM m where
- data RefTrace u z a
- data RefTraceT u z m a
- data Ref
- class Monad m => RefTraceM m where
- runRefTrace :: InterpretUnit u => RefTrace u ans a -> LocImage u a
- runRefTraceT :: (Monad m, InterpretUnit u) => RefTraceT u ans m a -> m (LocImage u a)
- type Lookup u ans = IntMap ans -> Query u (Maybe ans)
- type RefGraphic u ans = IntMap ans -> Graphic u
- lookup :: Ref -> Lookup u ans
- unary :: InterpretUnit u => (ans -> Graphic u) -> Ref -> RefGraphic u ans
- binary :: InterpretUnit u => (ans -> ans -> Graphic u) -> Ref -> Ref -> RefGraphic u ans
- multiway :: InterpretUnit u => ([ans] -> Graphic u) -> [Ref] -> RefGraphic u ans
- oneToMany :: InterpretUnit u => (ans -> [ans] -> Graphic u) -> Ref -> [Ref] -> RefGraphic u ans
Re-exports
class Monad m => LocTraceM m whereSource
insertl
analogue to Writer monad tell
.
insertl :: MonUnit (m ()) ~ u => LocGraphic u -> m ()Source
insertl_ :: MonUnit (m ()) ~ u => LocImage u a -> m ()Source
InterpretUnit u => LocTraceM (LocTrace u) | |
(Monad m, InterpretUnit u) => LocTraceM (LocTraceT u m) | |
InterpretUnit u => LocTraceM (RefTrace u z) | |
InterpretUnit u => LocTraceM (GenPathSpec st u) | Note - location probably should return Point2 not Vec2 hence
this uses TODO - sort out LocTraceM class. |
(Monad m, InterpretUnit u) => LocTraceM (RefTraceT u z m) |
Monad (RefTrace u z) | |
Functor (RefTrace u z) | |
Applicative (RefTrace u z) | |
InterpretUnit u => LocTraceM (RefTrace u z) | |
InterpretUnit u => RefTraceM (RefTrace u z) |
class Monad m => RefTraceM m whereSource
insertRef :: (MonRef m ~ a, MonUnit (m ()) ~ u) => LocImage u a -> m RefSource
linkRef :: (MonRef m ~ a, MonUnit (m ()) ~ u) => RefGraphic u a -> m ()Source
InterpretUnit u => RefTraceM (RefTrace u z) |
runRefTrace :: InterpretUnit u => RefTrace u ans a -> LocImage u aSource
runRefTraceT :: (Monad m, InterpretUnit u) => RefTraceT u ans m a -> m (LocImage u a)Source
type RefGraphic u ans = IntMap ans -> Graphic uSource
unary :: InterpretUnit u => (ans -> Graphic u) -> Ref -> RefGraphic u ansSource
binary :: InterpretUnit u => (ans -> ans -> Graphic u) -> Ref -> Ref -> RefGraphic u ansSource
multiway :: InterpretUnit u => ([ans] -> Graphic u) -> [Ref] -> RefGraphic u ansSource
oneToMany :: InterpretUnit u => (ans -> [ans] -> Graphic u) -> Ref -> [Ref] -> RefGraphic u ansSource