haphviz-0.1.1.5: Graphviz code generation with Haskell

Safe HaskellSafe
LanguageHaskell2010

Text.Dot.Types.Internal

Contents

Description

Internal types.

You may want to keep off these.

Synopsis

Documentation

type GraphName = Text Source

Internal name of a graph, used to reference graphs and subgraphs

data GraphType Source

Type of a graph, directed or undirected.

This also specifies what edge declarations look like.

type AttributeName = Text Source

Attribute name: just text

type AttributeValue = Text Source

Attribute value: just text

type Attribute = (AttributeName, AttributeValue) Source

Attribute: a tuple of name and value.

data NodeId Source

A node identifier.

This is either a user supplied name or a generated numerical identifier.

Constructors

UserId Text 
Nameless Int 

data DecType Source

Declaration type

Used to declare common attributes for nodes or edges.

Constructors

DecGraph 
DecNode 
DecEdge 

data DotGraph Source

A Haphviz Graph

data RankdirType Source

Rankdir Type

Used to specify the default node layout direction

Constructors

LR 
RL 
TB 
BT 

data Dot Source

Haphviz internal graph content AST

Instances

Eq Dot Source 
Show Dot Source 
Monoid Dot Source

Dot is a monoid, duh, that's the point.

Re-exports

newtype Identity a :: * -> *

Identity functor and monad. (a non-strict monad)

Since: 4.8.0.0

Constructors

Identity 

Fields

runIdentity :: a
 

Instances

Monad Identity 
Functor Identity 
MonadFix Identity 
Applicative Identity 
Foldable Identity 
Traversable Identity 
Generic1 Identity 
MonadZip Identity 
Eq1 Identity 
Ord1 Identity 
Read1 Identity 
Show1 Identity 
Eq a => Eq (Identity a) 
Data a => Data (Identity a) 
Ord a => Ord (Identity a) 
Read a => Read (Identity a)

This instance would be equivalent to the derived instances of the Identity newtype if the runIdentity field were removed

Show a => Show (Identity a)

This instance would be equivalent to the derived instances of the Identity newtype if the runIdentity field were removed

Generic (Identity a) 
type Rep1 Identity = D1 D1Identity (C1 C1_0Identity (S1 S1_0_0Identity Par1)) 
type Rep (Identity a) = D1 D1Identity (C1 C1_0Identity (S1 S1_0_0Identity (Rec0 a))) 

class Monoid a where

The class of monoids (types with an associative binary operation that has an identity). Instances should satisfy the following laws:

  • mappend mempty x = x
  • mappend x mempty = x
  • mappend x (mappend y z) = mappend (mappend x y) z
  • mconcat = foldr mappend mempty

The method names refer to the monoid of lists under concatenation, but there are many other instances.

Some types can be viewed as a monoid in more than one way, e.g. both addition and multiplication on numbers. In such cases we often define newtypes and make those instances of Monoid, e.g. Sum and Product.

Minimal complete definition

mempty, mappend

Methods

mempty :: a

Identity of mappend

mappend :: a -> a -> a

An associative operation

mconcat :: [a] -> a

Fold a list using the monoid. For most types, the default definition for mconcat will be used, but the function is included in the class definition so that an optimized version can be provided for specific types.

Instances

Monoid Ordering 
Monoid () 
Monoid All 
Monoid Any 
Monoid Builder 
Monoid IntSet 
Monoid Dot

Dot is a monoid, duh, that's the point.

Monoid [a] 
Ord a => Monoid (Max a) 
Ord a => Monoid (Min a) 
Monoid a => Monoid (Dual a) 
Monoid (Endo a) 
Num a => Monoid (Sum a) 
Num a => Monoid (Product a) 
Monoid (First a) 
Monoid (Last a) 
Monoid a => Monoid (Maybe a)

Lift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup S may be turned into a monoid simply by adjoining an element e not in S and defining e*e = e and e*s = s = s*e for all s ∈ S." Since there is no "Semigroup" typeclass providing just mappend, we use Monoid instead.

Monoid (IntMap a) 
Ord a => Monoid (Set a) 
Monoid (Seq a) 
Monoid b => Monoid (a -> b) 
(Monoid a, Monoid b) => Monoid (a, b) 
Monoid a => Monoid (Const a b) 
Monoid (Proxy k s) 
Ord k => Monoid (Map k v) 
(Monoid a, Monoid b, Monoid c) => Monoid (a, b, c) 
Alternative f => Monoid (Alt * f a) 
(Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d) 
(Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e)