Base classes and type families.
Drawing is always built on TraceM and DrawingCtxM, it may use PointSupplyM for chains or turtle drawing.
- type family MonUnit m :: *
- class Monad m => TraceM m where
- class Monad m => DrawingCtxM m where
- asksCtx :: DrawingCtxM m => (DrawingContext -> a) -> m a
- class Monad m => PointSupplyM m where
Collect elementary graphics as part of a larger drawing.
TraceM works much like a writer monad.