diagrams-lib-1.4.2.3: Embedded domain-specific language for declarative graphics

Copyright(c) 2013 diagrams-lib team (see LICENSE)
LicenseBSD-style (see LICENSE)
Maintainerdiagrams-discuss@googlegroups.com
Safe HaskellNone
LanguageHaskell2010

Diagrams.Names

Contents

Description

Names can be given to subdiagrams, and subdiagrams can later be queried by name. This module exports types for representing names and subdiagrams, and various functions for working with them.

Synopsis

Names

data AName #

Instances
Eq AName 
Instance details

Defined in Diagrams.Core.Names

Methods

(==) :: AName -> AName -> Bool Source #

(/=) :: AName -> AName -> Bool Source #

Ord AName 
Instance details

Defined in Diagrams.Core.Names

Show AName 
Instance details

Defined in Diagrams.Core.Names

IsName AName 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: AName -> Name #

Each Name Name AName AName 
Instance details

Defined in Diagrams.Core.Names

data Name #

Instances
Eq Name 
Instance details

Defined in Diagrams.Core.Names

Methods

(==) :: Name -> Name -> Bool Source #

(/=) :: Name -> Name -> Bool Source #

Ord Name 
Instance details

Defined in Diagrams.Core.Names

Show Name 
Instance details

Defined in Diagrams.Core.Names

Semigroup Name 
Instance details

Defined in Diagrams.Core.Names

Monoid Name 
Instance details

Defined in Diagrams.Core.Names

Wrapped Name 
Instance details

Defined in Diagrams.Core.Names

Associated Types

type Unwrapped Name :: Type Source #

IsName Name 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Name -> Name #

Qualifiable Name 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a => a -> Name -> Name #

Rewrapped Name Name 
Instance details

Defined in Diagrams.Core.Names

Each Name Name AName AName 
Instance details

Defined in Diagrams.Core.Names

Action Name (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

act :: Name -> SubMap b v n m -> SubMap b v n m Source #

type Unwrapped Name 
Instance details

Defined in Diagrams.Core.Names

class (Typeable a, Ord a, Show a) => IsName a where #

Minimal complete definition

Nothing

Methods

toName :: a -> Name #

Instances
IsName Bool 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Bool -> Name #

IsName Char 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Char -> Name #

IsName Double 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Double -> Name #

IsName Float 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Float -> Name #

IsName Int 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Int -> Name #

IsName Integer 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Integer -> Name #

IsName () 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: () -> Name #

IsName AName 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: AName -> Name #

IsName Name 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Name -> Name #

IsName a => IsName [a] 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: [a] -> Name #

IsName a => IsName (Maybe a) 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: Maybe a -> Name #

(IsName a, IsName b) => IsName (a, b) 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: (a, b) -> Name #

(IsName a, IsName b, IsName c) => IsName (a, b, c) 
Instance details

Defined in Diagrams.Core.Names

Methods

toName :: (a, b, c) -> Name #

(.>) :: (IsName a1, IsName a2) => a1 -> a2 -> Name #

class Qualifiable q where #

Methods

(.>>) :: IsName a => a -> q -> q #

Instances
Qualifiable Name 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a => a -> Name -> Name #

Qualifiable a => Qualifiable [a] 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a0 => a0 -> [a] -> [a] #

(Ord a, Qualifiable a) => Qualifiable (Set a) 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a0 => a0 -> Set a -> Set a #

Qualifiable a => Qualifiable (TransInv a) 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a0 => a0 -> TransInv a -> TransInv a #

Qualifiable a => Qualifiable (Located a) Source # 
Instance details

Defined in Diagrams.Located

Methods

(.>>) :: IsName a0 => a0 -> Located a -> Located a #

Qualifiable a => Qualifiable (b -> a) 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a0 => a0 -> (b -> a) -> b -> a #

(Qualifiable a, Qualifiable b) => Qualifiable (a, b) 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a0 => a0 -> (a, b) -> (a, b) #

Qualifiable a => Qualifiable (Map k a) 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a0 => a0 -> Map k a -> Map k a #

Qualifiable a => Qualifiable (Measured n a) 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a0 => a0 -> Measured n a -> Measured n a #

(Qualifiable a, Qualifiable b, Qualifiable c) => Qualifiable (a, b, c) 
Instance details

Defined in Diagrams.Core.Names

Methods

(.>>) :: IsName a0 => a0 -> (a, b, c) -> (a, b, c) #

(Metric v, OrderedField n, Semigroup m) => Qualifiable (QDiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

(.>>) :: IsName a => a -> QDiagram b v n m -> QDiagram b v n m #

Qualifiable (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

(.>>) :: IsName a => a -> SubMap b v n m -> SubMap b v n m #

Subdiagrams

data Subdiagram b (v :: Type -> Type) n m #

Instances
Functor (Subdiagram b v n) 
Instance details

Defined in Diagrams.Core.Types

Methods

fmap :: (a -> b0) -> Subdiagram b v n a -> Subdiagram b v n b0 Source #

(<$) :: a -> Subdiagram b v n b0 -> Subdiagram b v n a Source #

(OrderedField n, Metric v, Monoid' m) => Enveloped (Subdiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

getEnvelope :: Subdiagram b v n m -> Envelope (V (Subdiagram b v n m)) (N (Subdiagram b v n m))

(Metric v, OrderedField n) => HasOrigin (Subdiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

moveOriginTo :: Point (V (Subdiagram b v n m)) (N (Subdiagram b v n m)) -> Subdiagram b v n m -> Subdiagram b v n m #

(OrderedField n, Metric v, Semigroup m) => Traced (Subdiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

getTrace :: Subdiagram b v n m -> Trace (V (Subdiagram b v n m)) (N (Subdiagram b v n m))

Transformable (Subdiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

transform :: Transformation (V (Subdiagram b v n m)) (N (Subdiagram b v n m)) -> Subdiagram b v n m -> Subdiagram b v n m #

type N (Subdiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

type N (Subdiagram b v n m) = n
type V (Subdiagram b v n m) 
Instance details

Defined in Diagrams.Core.Types

type V (Subdiagram b v n m) = v

mkSubdiagram :: QDiagram b v n m -> Subdiagram b v n m #

subPoint :: (Metric v, OrderedField n) => Point v n -> Subdiagram b v n m #

getSub :: (Metric v, OrderedField n, Semigroup m) => Subdiagram b v n m -> QDiagram b v n m #

rawSub :: Subdiagram b v n m -> QDiagram b v n m #

location :: (Additive v, Num n) => Subdiagram b v n m -> Point v n #

Subdiagram maps

data SubMap b (v :: Type -> Type) n m #

Instances
Action Name (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

act :: Name -> SubMap b v n m -> SubMap b v n m Source #

Functor (SubMap b v n) 
Instance details

Defined in Diagrams.Core.Types

Methods

fmap :: (a -> b0) -> SubMap b v n a -> SubMap b v n b0 Source #

(<$) :: a -> SubMap b v n b0 -> SubMap b v n a Source #

Semigroup (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

(<>) :: SubMap b v n m -> SubMap b v n m -> SubMap b v n m Source #

sconcat :: NonEmpty (SubMap b v n m) -> SubMap b v n m Source #

stimes :: Integral b0 => b0 -> SubMap b v n m -> SubMap b v n m Source #

Monoid (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

mempty :: SubMap b v n m Source #

mappend :: SubMap b v n m -> SubMap b v n m -> SubMap b v n m Source #

mconcat :: [SubMap b v n m] -> SubMap b v n m Source #

Wrapped (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Associated Types

type Unwrapped (SubMap b v n m) :: Type Source #

Methods

_Wrapped' :: Iso' (SubMap b v n m) (Unwrapped (SubMap b v n m)) Source #

(OrderedField n, Metric v) => HasOrigin (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

moveOriginTo :: Point (V (SubMap b v n m)) (N (SubMap b v n m)) -> SubMap b v n m -> SubMap b v n m #

Qualifiable (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

(.>>) :: IsName a => a -> SubMap b v n m -> SubMap b v n m #

Transformable (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

Methods

transform :: Transformation (V (SubMap b v n m)) (N (SubMap b v n m)) -> SubMap b v n m -> SubMap b v n m #

Rewrapped (SubMap b v n m) (SubMap b' v' n' m') 
Instance details

Defined in Diagrams.Core.Types

type Unwrapped (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

type Unwrapped (SubMap b v n m) = Map Name [Subdiagram b v n m]
type N (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

type N (SubMap b v n m) = n
type V (SubMap b v n m) 
Instance details

Defined in Diagrams.Core.Types

type V (SubMap b v n m) = v

fromNames :: IsName a => [(a, Subdiagram b v n m)] -> SubMap b v n m #

rememberAs :: IsName a => a -> QDiagram b v n m -> SubMap b v n m -> SubMap b v n m #

lookupSub :: IsName nm => nm -> SubMap b v n m -> Maybe [Subdiagram b v n m] #

Naming things

named :: (IsName nm, Metric v, OrderedField n, Semigroup m) => nm -> QDiagram b v n m -> QDiagram b v n m Source #

Attach an atomic name to a diagram.

nameSub :: (IsName nm, Metric v, OrderedField n, Semigroup m) => (QDiagram b v n m -> Subdiagram b v n m) -> nm -> QDiagram b v n m -> QDiagram b v n m #

namePoint :: (IsName nm, Metric v, OrderedField n, Semigroup m) => (QDiagram b v n m -> Point v n) -> nm -> QDiagram b v n m -> QDiagram b v n m Source #

Attach an atomic name to a certain point (which may be computed from the given diagram), treated as a subdiagram with no content and a point envelope.

localize :: (Metric v, OrderedField n, Semigroup m) => QDiagram b v n m -> QDiagram b v n m #

Querying by name

names :: (Metric v, Semigroup m, OrderedField n) => QDiagram b v n m -> [(Name, [Point v n])] #

lookupName :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> QDiagram b v n m -> Maybe (Subdiagram b v n m) #

withName :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> (Subdiagram b v n m -> QDiagram b v n m -> QDiagram b v n m) -> QDiagram b v n m -> QDiagram b v n m #

withNameAll :: (IsName nm, Metric v, Semigroup m, OrderedField n) => nm -> ([Subdiagram b v n m] -> QDiagram b v n m -> QDiagram b v n m) -> QDiagram b v n m -> QDiagram b v n m #

withNames :: (IsName nm, Metric v, Semigroup m, OrderedField n) => [nm] -> ([Subdiagram b v n m] -> QDiagram b v n m -> QDiagram b v n m) -> QDiagram b v n m -> QDiagram b v n m #