lp-diagrams-2.0: An EDSL for diagrams based based on linear constraints

Safe HaskellNone
LanguageHaskell2010

Graphics.Diagrams.Types

Synopsis

Documentation

type Frozen x = x Constant Source #

square :: forall a. Multiplicative a => a -> a Source #

(*-) :: Module Constant a => Constant -> a -> a infixr 7 Source #

avg :: Module Constant a => [a] -> a Source #

Average

data Pair a Source #

Constructors

Pair 

Fields

Instances

Functor Pair Source # 

Methods

fmap :: (a -> b) -> Pair a -> Pair b #

(<$) :: a -> Pair b -> Pair a #

Show a => Show (Pair a) Source # 

Methods

showsPrec :: Int -> Pair a -> ShowS #

show :: Pair a -> String #

showList :: [Pair a] -> ShowS #

data Point' a Source #

Constructors

Point 

Fields

Instances

Functor Point' Source # 

Methods

fmap :: (a -> b) -> Point' a -> Point' b #

(<$) :: a -> Point' b -> Point' a #

Applicative Point' Source # 

Methods

pure :: a -> Point' a #

(<*>) :: Point' (a -> b) -> Point' a -> Point' b #

(*>) :: Point' a -> Point' b -> Point' b #

(<*) :: Point' a -> Point' b -> Point' a #

Foldable Point' Source # 

Methods

fold :: Monoid m => Point' m -> m #

foldMap :: Monoid m => (a -> m) -> Point' a -> m #

foldr :: (a -> b -> b) -> b -> Point' a -> b #

foldr' :: (a -> b -> b) -> b -> Point' a -> b #

foldl :: (b -> a -> b) -> b -> Point' a -> b #

foldl' :: (b -> a -> b) -> b -> Point' a -> b #

foldr1 :: (a -> a -> a) -> Point' a -> a #

foldl1 :: (a -> a -> a) -> Point' a -> a #

toList :: Point' a -> [a] #

null :: Point' a -> Bool #

length :: Point' a -> Int #

elem :: Eq a => a -> Point' a -> Bool #

maximum :: Ord a => Point' a -> a #

minimum :: Ord a => Point' a -> a #

sum :: Num a => Point' a -> a #

product :: Num a => Point' a -> a #

Traversable Point' Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Point' a -> f (Point' b) #

sequenceA :: Applicative f => Point' (f a) -> f (Point' a) #

mapM :: Monad m => (a -> m b) -> Point' a -> m (Point' b) #

sequence :: Monad m => Point' (m a) -> m (Point' a) #

Module k a => Module k (Point' a) Source # 

Methods

(*^) :: k -> Point' a -> Point' a #

Eq a => Eq (Point' a) Source # 

Methods

(==) :: Point' a -> Point' a -> Bool #

(/=) :: Point' a -> Point' a -> Bool #

Show a => Show (Point' a) Source # 

Methods

showsPrec :: Int -> Point' a -> ShowS #

show :: Point' a -> String #

showList :: [Point' a] -> ShowS #

Additive a => Additive (Point' a) Source # 

Methods

(+) :: Point' a -> Point' a -> Point' a #

zero :: Point' a #

times :: Natural -> Point' a -> Point' a #

AbelianAdditive v => AbelianAdditive (Point' v) Source # 
Group v => Group (Point' v) Source # 

Methods

(-) :: Point' v -> Point' v -> Point' v #

negate :: Point' v -> Point' v #

mult :: Integer -> Point' v -> Point' v #

data Segment v Source #

Constructors

CurveTo (Point' v) (Point' v) (Point' v) 
StraightTo (Point' v) 
Cycle 

Instances

Functor Segment Source # 

Methods

fmap :: (a -> b) -> Segment a -> Segment b #

(<$) :: a -> Segment b -> Segment a #

Foldable Segment Source # 

Methods

fold :: Monoid m => Segment m -> m #

foldMap :: Monoid m => (a -> m) -> Segment a -> m #

foldr :: (a -> b -> b) -> b -> Segment a -> b #

foldr' :: (a -> b -> b) -> b -> Segment a -> b #

foldl :: (b -> a -> b) -> b -> Segment a -> b #

foldl' :: (b -> a -> b) -> b -> Segment a -> b #

foldr1 :: (a -> a -> a) -> Segment a -> a #

foldl1 :: (a -> a -> a) -> Segment a -> a #

toList :: Segment a -> [a] #

null :: Segment a -> Bool #

length :: Segment a -> Int #

elem :: Eq a => a -> Segment a -> Bool #

maximum :: Ord a => Segment a -> a #

minimum :: Ord a => Segment a -> a #

sum :: Num a => Segment a -> a #

product :: Num a => Segment a -> a #

Traversable Segment Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Segment a -> f (Segment b) #

sequenceA :: Applicative f => Segment (f a) -> f (Segment a) #

mapM :: Monad m => (a -> m b) -> Segment a -> m (Segment b) #

sequence :: Monad m => Segment (m a) -> m (Segment a) #

Eq v => Eq (Segment v) Source # 

Methods

(==) :: Segment v -> Segment v -> Bool #

(/=) :: Segment v -> Segment v -> Bool #

Show v => Show (Segment v) Source # 

Methods

showsPrec :: Int -> Segment v -> ShowS #

show :: Segment v -> String #

showList :: [Segment v] -> ShowS #

data Path' a Source #

Constructors

EmptyPath 
Path 

Fields

Instances

Functor Path' Source # 

Methods

fmap :: (a -> b) -> Path' a -> Path' b #

(<$) :: a -> Path' b -> Path' a #

Foldable Path' Source # 

Methods

fold :: Monoid m => Path' m -> m #

foldMap :: Monoid m => (a -> m) -> Path' a -> m #

foldr :: (a -> b -> b) -> b -> Path' a -> b #

foldr' :: (a -> b -> b) -> b -> Path' a -> b #

foldl :: (b -> a -> b) -> b -> Path' a -> b #

foldl' :: (b -> a -> b) -> b -> Path' a -> b #

foldr1 :: (a -> a -> a) -> Path' a -> a #

foldl1 :: (a -> a -> a) -> Path' a -> a #

toList :: Path' a -> [a] #

null :: Path' a -> Bool #

length :: Path' a -> Int #

elem :: Eq a => a -> Path' a -> Bool #

maximum :: Ord a => Path' a -> a #

minimum :: Ord a => Path' a -> a #

sum :: Num a => Path' a -> a #

product :: Num a => Path' a -> a #

Traversable Path' Source # 

Methods

traverse :: Applicative f => (a -> f b) -> Path' a -> f (Path' b) #

sequenceA :: Applicative f => Path' (f a) -> f (Path' a) #

mapM :: Monad m => (a -> m b) -> Path' a -> m (Path' b) #

sequence :: Monad m => Path' (m a) -> m (Path' a) #

Show a => Show (Path' a) Source # 

Methods

showsPrec :: Int -> Path' a -> ShowS #

show :: Path' a -> String #

showList :: [Path' a] -> ShowS #

newtype Decoration Source #

Tikz decoration

Constructors

Decoration String 

type Color = String Source #

Tikz color

data LineCap Source #

Tikz line cap

Constructors

ButtCap 
RectCap 
RoundCap 

data LineJoin Source #

Tikz line join

Constructors

MiterJoin 
RoundJoin 
BevelJoin 

type DashPattern = [(Constant, Constant)] Source #

Tikz dash pattern

data BoxSpec Source #

Size of a box, in points. boxDepth is how far the baseline is from the bottom. boxHeight is how far the baseline is from the top. (These are TeX meanings)

Constructors

BoxSpec 

Instances

data Backend lab m Source #

Constructors

Backend 

Fields

tracePath :: forall lab m. Lens' (Backend lab m) (PathOptions -> FrozenPath -> m ()) Source #

traceLabel :: forall lab m location x. Monad x => Getter (Backend lab m) ((location -> (FrozenPoint -> m ()) -> x ()) -> (forall a. m a -> x a) -> location -> lab -> x BoxSpec) Source #

data Env lab m Source #

Constructors

Env 

Fields

Instances

Monad m => MonadReader (Env lab m) (Diagram lab m) # 

Methods

ask :: Diagram lab m (Env lab m) #

local :: (Env lab m -> Env lab m) -> Diagram lab m a -> Diagram lab m a #

reader :: (Env lab m -> a) -> Diagram lab m a #

diaTightness :: forall lab m. Lens' (Env lab m) Rational Source #

diaPathOptions :: forall lab m. Lens' (Env lab m) PathOptions Source #

diaBackend :: forall lab m lab m. Lens (Env lab m) (Env lab m) (Backend lab m) (Backend lab m) Source #