The elementary base types and classes.
- quarter_pi :: Radian
- half_pi :: Radian
- two_pi :: Radian
- ang180 :: Radian
- ang150 :: Radian
- ang120 :: Radian
- ang90 :: Radian
- ang60 :: Radian
- ang45 :: Radian
- ang30 :: Radian
- ang15 :: Radian
- data UNil u = UNil
- ureturn :: Monad m => m (UNil u)
- uvoid :: Monad m => m a -> m (UNil u)
- class ScalarUnit a where
- class Num u => InterpretUnit u where
- dinterpF :: (Functor t, InterpretUnit u) => FontSize -> t Double -> t u
- normalizeF :: (Functor t, InterpretUnit u) => FontSize -> t u -> t Double
- uconvert1 :: (InterpretUnit u, InterpretUnit u1) => FontSize -> u -> u1
- uconvertF :: (Functor t, InterpretUnit u, InterpretUnit u1) => FontSize -> t u -> t u1
- intraMapPoint :: InterpretUnit u => FontSize -> (DPoint2 -> DPoint2) -> Point2 u -> Point2 u
- intraMapFunctor :: (Functor f, InterpretUnit u) => FontSize -> (f Double -> f Double) -> f u -> f u
- type KernChar u = (u, EscapedChar)
- data PathMode
- data DrawMode
- closedMode :: DrawMode -> PathMode
- data ZDeco
- data HAlign
- data VAlign
- data TextHeight
- data Cardinal
- data Direction
- data ClockDirection
- both :: Applicative f => f a -> f b -> f (a, b)
- monPreRepeatPost :: Monoid a => a -> (Int, a) -> a -> a
Unit phantom type
The empty data type - i.e.
() - wrapped with a phantom unit
UNil rather than
() at the end of sequence of
Many Wumpus objects are usefully constructed in the
do-notation, but because Wumpus has to expose the type of
unit to the type checker we must finish the do-block
Non-contextual unit conversion.
Unit interpretation with respect to the current Point size
dinterp an object that gives access to its unit at the
normalize an object that gives access to its unit at the
Convert a scalar value from one unit to another.
Unit convert an object that gives access to its unit at the Functor position.
In practive this will be *all* Image answers.
Drawing paths and shapes (closed paths)
Draw closed paths.
OSTROKE - open and stroked
Draw closed paths and shapes.
DRAW_STROKE - closed and stroked
DRAW_FILL - closed and filled
CLOSED_FILL_STROKE - the path is filled, its edge is stroked.
Decorating with resepct to the Z-order
SUPERIOR - in front.
ANTERIOR - behind.
Horizontal alignment - align to the top, center or bottom.
Vertical alignment - align to the left, center or bottom.
Wumpus distinguishes two use-cases for displaying vertically centered text.
Arbitrary text that is expected to contain lower case letters with descenders, show take the vertical center as the mid-point between the cap height and the descender depth.
Unfortunately, including the descender depth can produce unbalanced results for text which is not expected to have descenders (e.g. numbers within a bordered box), visually this makes the center too high.
Cardinal (compass) positions
An enumeratied type representing the compass positions.
An enumerated type representing horizontal and vertical directions.
An enumerated type representing clock directions.
Applicative both - run both computations return the pair of the the answers.