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

Safe HaskellNone
LanguageHaskell2010

Graphics.Diagrams.Core

Synopsis

Documentation

constant :: Double -> Expr Source #

Embed a constant in an expression

absE :: IsDouble a => a -> a Source #

newVars :: Monad m => [String] -> Diagram lab m [Expr] Source #

minimize :: Monad m => Expr -> Diagram lab m () Source #

maximize :: Monad m => Expr -> Diagram lab m () Source #

(===) :: Expr -> Expr -> Monad m => Diagram lab m () infix 4 Source #

(>==) :: Expr -> Expr -> Monad m => Diagram lab m () infix 4 Source #

(<==) :: Expr -> Expr -> Monad m => Diagram lab m () infix 4 Source #

(=~=) :: Monad m => Expr -> Expr -> Diagram lab m () Source #

minimize the distance between expressions

newtype Diagram lab m a Source #

Constructors

Dia 

Fields

Instances

Monad m => Monad (Diagram lab m) Source # 

Methods

(>>=) :: Diagram lab m a -> (a -> Diagram lab m b) -> Diagram lab m b #

(>>) :: Diagram lab m a -> Diagram lab m b -> Diagram lab m b #

return :: a -> Diagram lab m a #

fail :: String -> Diagram lab m a #

Functor m => Functor (Diagram lab m) Source # 

Methods

fmap :: (a -> b) -> Diagram lab m a -> Diagram lab m b #

(<$) :: a -> Diagram lab m b -> Diagram lab m a #

Monad m => Applicative (Diagram lab m) Source # 

Methods

pure :: a -> Diagram lab m a #

(<*>) :: Diagram lab m (a -> b) -> Diagram lab m a -> Diagram lab m b #

(*>) :: Diagram lab m a -> Diagram lab m b -> Diagram lab m b #

(<*) :: Diagram lab m a -> Diagram lab m b -> Diagram lab m a #

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

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 #

runDiagram :: Monad m => Backend lab m -> Diagram lab m a -> m a Source #

drawText :: Monad m => Point' Expr -> lab -> Diagram lab m BoxSpec Source #

freeze :: (Functor t, Monad m) => t Expr -> (t Constant -> m ()) -> Diagram lab m () Source #

freeze x f performs f on the frozen value of x.

relax :: Monad m => Rational -> Diagram lab m a -> Diagram lab m a Source #

Relax the optimisation functions by the given factor

tighten :: Monad m => Rational -> Diagram lab m a -> Diagram lab m a Source #

Tighten the optimisation functions by the given factor