cifl-math-library-1.1.1.0: Math libraries
Safe HaskellSafe
LanguageHaskell2010

Math.Graph.GraphMonoid

Synopsis

Documentation

data GraphElem v e Source #

Constructors

Vertex v 
Edge e 

Instances

Instances details
(Data v, Data e) => Data (GraphElem v e) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GraphElem v e -> c (GraphElem v e) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (GraphElem v e) #

toConstr :: GraphElem v e -> Constr #

dataTypeOf :: GraphElem v e -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (GraphElem v e)) #

dataCast2 :: Typeable t => (forall d e0. (Data d, Data e0) => c (t d e0)) -> Maybe (c (GraphElem v e)) #

gmapT :: (forall b. Data b => b -> b) -> GraphElem v e -> GraphElem v e #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GraphElem v e -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GraphElem v e -> r #

gmapQ :: (forall d. Data d => d -> u) -> GraphElem v e -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> GraphElem v e -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> GraphElem v e -> m (GraphElem v e) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GraphElem v e -> m (GraphElem v e) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GraphElem v e -> m (GraphElem v e) #

(Read v, Read e) => Read (GraphElem v e) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

(Show v, Show e) => Show (GraphElem v e) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

showsPrec :: Int -> GraphElem v e -> ShowS #

show :: GraphElem v e -> String #

showList :: [GraphElem v e] -> ShowS #

(PpShow v, PpShow e) => PpShow (GraphElem v e) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

pp :: GraphElem v e -> Doc Source #

(Eq v, Eq e) => Eq (GraphElem v e) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

(==) :: GraphElem v e -> GraphElem v e -> Bool #

(/=) :: GraphElem v e -> GraphElem v e -> Bool #

(Ord v, Ord e) => Ord (GraphElem v e) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

compare :: GraphElem v e -> GraphElem v e -> Ordering #

(<) :: GraphElem v e -> GraphElem v e -> Bool #

(<=) :: GraphElem v e -> GraphElem v e -> Bool #

(>) :: GraphElem v e -> GraphElem v e -> Bool #

(>=) :: GraphElem v e -> GraphElem v e -> Bool #

max :: GraphElem v e -> GraphElem v e -> GraphElem v e #

min :: GraphElem v e -> GraphElem v e -> GraphElem v e #

(Ord v, Ord e) => DigraphFactory (Graph (Three :: Type -> Type -> Type) (GraphElem v e)) v e Source # 
Instance details

Defined in Math.Graph.Digraph

Methods

vertexGraph :: v -> Graph Three (GraphElem v e) Source #

edgeGraph :: e -> v -> v -> Graph Three (GraphElem v e) Source #

verticesFromSetGraph :: Set v -> Graph Three (GraphElem v e) Source #

verticesGraph :: [v] -> Graph Three (GraphElem v e) Source #

completeGraph :: [v] -> (v -> v -> e) -> Graph Three (GraphElem v e) Source #

edgeGraphFromMap :: Map e (v, v) -> Graph Three (GraphElem v e) Source #

edgesGraph :: [(e, (v, v))] -> Graph Three (GraphElem v e) Source #

loopGraph :: [(v, e)] -> Graph Three (GraphElem v e) Source #

(Ord v, Ord e) => ReversibleGraphFactory (Graph (Four :: Type -> Type -> Type) (GraphElem v e)) v e Source # 
Instance details

Defined in Math.Graph.Digraph

mapGraphElem :: (v -> v') -> (e -> e') -> GraphElem v e -> GraphElem v' e' Source #

eitherGraphElem :: (v -> w) -> (e -> w) -> GraphElem v e -> w Source #

class (Category arr, Eq (arr a a), Monoid (arr a a)) => GraphMonoid arr a where Source #

Methods

gdom :: arr a a Source #

gcod :: arr a a Source #

Instances

Instances details
GraphMonoid (Four :: Type -> Type -> Type) Bool Source # 
Instance details

Defined in Math.Graph.GraphMonoid

GraphMonoid (Three :: Type -> Type -> Type) Bool Source # 
Instance details

Defined in Math.Graph.GraphMonoid

class GraphMonoid arr a => ReversibleGraphMonoid arr a where Source #

Methods

gnot :: arr a a Source #

Instances

Instances details
ReversibleGraphMonoid (Four :: Type -> Type -> Type) Bool Source # 
Instance details

Defined in Math.Graph.GraphMonoid

data Three b c where Source #

Constructors

TId :: Three a a 
TDom :: Three a a 
TCod :: Three a a 

Instances

Instances details
Arrow arr => MonoidArrow (arr :: Type -> Type -> Type) (Three Bool Bool) Bool Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

monoidA :: Three Bool Bool -> arr Bool Bool Source #

Category (Three :: k -> k -> Type) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

id :: forall (a :: k0). Three a a #

(.) :: forall (b :: k0) (c :: k0) (a :: k0). Three b c -> Three a b -> Three a c #

GraphMonoid (Three :: Type -> Type -> Type) Bool Source # 
Instance details

Defined in Math.Graph.GraphMonoid

(Ord a, PpShow a) => Show (Graph (Three :: Type -> Type -> Type) a) Source # 
Instance details

Defined in Math.Graph.Show

Methods

showsPrec :: Int -> Graph Three a -> ShowS #

show :: Graph Three a -> String #

showList :: [Graph Three a] -> ShowS #

(Binary a, Ord a) => Binary (Graph (Three :: Type -> Type -> Type) a) Source # 
Instance details

Defined in Math.Graph.Show

Methods

put :: Graph Three a -> Put #

get :: Get (Graph Three a) #

putList :: [Graph Three a] -> Put #

(Ord a, PpShow a) => PpShow (Graph (Three :: Type -> Type -> Type) a) Source # 
Instance details

Defined in Math.Graph.Show

Methods

pp :: Graph Three a -> Doc Source #

(Ord v, Ord e) => DigraphFactory (Graph (Three :: Type -> Type -> Type) (GraphElem v e)) v e Source # 
Instance details

Defined in Math.Graph.Digraph

Methods

vertexGraph :: v -> Graph Three (GraphElem v e) Source #

edgeGraph :: e -> v -> v -> Graph Three (GraphElem v e) Source #

verticesFromSetGraph :: Set v -> Graph Three (GraphElem v e) Source #

verticesGraph :: [v] -> Graph Three (GraphElem v e) Source #

completeGraph :: [v] -> (v -> v -> e) -> Graph Three (GraphElem v e) Source #

edgeGraphFromMap :: Map e (v, v) -> Graph Three (GraphElem v e) Source #

edgesGraph :: [(e, (v, v))] -> Graph Three (GraphElem v e) Source #

loopGraph :: [(v, e)] -> Graph Three (GraphElem v e) Source #

Data a => Data (Three a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Three a a -> c (Three a a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Three a a) #

toConstr :: Three a a -> Constr #

dataTypeOf :: Three a a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Three a a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Three a a)) #

gmapT :: (forall b. Data b => b -> b) -> Three a a -> Three a a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Three a a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Three a a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Three a a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Three a a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Three a a -> m (Three a a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Three a a -> m (Three a a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Three a a -> m (Three a a) #

Monoid (Three a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

mempty :: Three a a #

mappend :: Three a a -> Three a a -> Three a a #

mconcat :: [Three a a] -> Three a a #

Semigroup (Three a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

(<>) :: Three a a -> Three a a -> Three a a #

sconcat :: NonEmpty (Three a a) -> Three a a #

stimes :: Integral b => b -> Three a a -> Three a a #

Show (Three a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

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

show :: Three a a -> String #

showList :: [Three a a] -> ShowS #

Group (Three Bool Bool) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

PpShow (Three a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

pp :: Three a a -> Doc Source #

Universe (Three a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

all_elements :: [Three a a] Source #

Eq (Three a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

(==) :: Three a a -> Three a a -> Bool #

(/=) :: Three a a -> Three a a -> Bool #

Ord (Three a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

compare :: Three a a -> Three a a -> Ordering #

(<) :: Three a a -> Three a a -> Bool #

(<=) :: Three a a -> Three a a -> Bool #

(>) :: Three a a -> Three a a -> Bool #

(>=) :: Three a a -> Three a a -> Bool #

max :: Three a a -> Three a a -> Three a a #

min :: Three a a -> Three a a -> Three a a #

three_action :: (g -> g) -> (g -> g) -> (g -> g) -> Three Bool Bool -> Endo g Source #

intent is that g =~= F Bool, where F : 2^{op} -> Set. But opposite categories are difficult to represent.

three_action_arr :: ArrowChoice arr => arr g g -> arr g g -> arr g g -> Three Bool Bool -> arr g g Source #

intent is that g =~= F Bool, where F : 2^{op} -> Set. But opposite categories are difficult to represent.

mappend_three :: Three b c -> Three a b -> Three a c Source #

data Four a b where Source #

Constructors

FId :: Four a a 
FDom :: Four a a 
FCod :: Four a a 
FNot :: Four a a 

Instances

Instances details
Category (Four :: k -> k -> Type) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

id :: forall (a :: k0). Four a a #

(.) :: forall (b :: k0) (c :: k0) (a :: k0). Four b c -> Four a b -> Four a c #

GraphMonoid (Four :: Type -> Type -> Type) Bool Source # 
Instance details

Defined in Math.Graph.GraphMonoid

ReversibleGraphMonoid (Four :: Type -> Type -> Type) Bool Source # 
Instance details

Defined in Math.Graph.GraphMonoid

MonoidArrow (->) (Four Bool Bool) Bool Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

monoidA :: Four Bool Bool -> Bool -> Bool Source #

(Ord a, PpShow a) => Show (Graph (Four :: Type -> Type -> Type) a) Source # 
Instance details

Defined in Math.Graph.Show

Methods

showsPrec :: Int -> Graph Four a -> ShowS #

show :: Graph Four a -> String #

showList :: [Graph Four a] -> ShowS #

(Ord a, PpShow a) => PpShow (Graph (Four :: Type -> Type -> Type) a) Source # 
Instance details

Defined in Math.Graph.Show

Methods

pp :: Graph Four a -> Doc Source #

(Ord v, Ord e) => ReversibleGraphFactory (Graph (Four :: Type -> Type -> Type) (GraphElem v e)) v e Source # 
Instance details

Defined in Math.Graph.Digraph

(Data a, Typeable a) => Data (Four a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Four a a -> c (Four a a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Four a a) #

toConstr :: Four a a -> Constr #

dataTypeOf :: Four a a -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Four a a)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Four a a)) #

gmapT :: (forall b. Data b => b -> b) -> Four a a -> Four a a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Four a a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Four a a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Four a a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Four a a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Four a a -> m (Four a a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Four a a -> m (Four a a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Four a a -> m (Four a a) #

Monoid (Four Bool Bool) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Semigroup (Four Bool Bool) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Show (Four a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

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

show :: Four a a -> String #

showList :: [Four a a] -> ShowS #

Group (Four Bool Bool) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

PpShow (Four a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

pp :: Four a a -> Doc Source #

Universe (Four a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

all_elements :: [Four a a] Source #

Eq (Four a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

(==) :: Four a a -> Four a a -> Bool #

(/=) :: Four a a -> Four a a -> Bool #

Ord (Four a a) Source # 
Instance details

Defined in Math.Graph.GraphMonoid

Methods

compare :: Four a a -> Four a a -> Ordering #

(<) :: Four a a -> Four a a -> Bool #

(<=) :: Four a a -> Four a a -> Bool #

(>) :: Four a a -> Four a a -> Bool #

(>=) :: Four a a -> Four a a -> Bool #

max :: Four a a -> Four a a -> Four a a #

min :: Four a a -> Four a a -> Four a a #

data Restricted (g :: * -> Constraint) a b where Source #

Constructors

Restricted :: g a => a -> Restricted g a a 

four_action_arr :: ArrowChoice arr => arr g g -> arr g g -> arr g g -> arr g g -> Four Bool Bool -> arr g g Source #

intent is that g =~= F2, where F : 2^{op} -> Set. But opposite categories are difficult to represent.

four_action :: (g -> g) -> (g -> g) -> (g -> g) -> (g -> g) -> Four Bool Bool -> Endo g Source #

intent is that g =~= F2, where F : 2^{op} -> Set. But opposite categories are difficult to represent.

sortPair :: Ord a => (a, a) -> (a, a) Source #

mappend_four :: Four b c -> Four a b -> Four a c Source #

optEndo :: Eq a => [(a, a)] -> Bool -> Endo a Source #

edge :: a -> (a, a) -> Three Bool Bool -> a Source #

edgeE :: e -> (v, v) -> Three Bool Bool -> GraphElem v e Source #

bidirectionalEdge :: (f a, f a) -> (f a, f a) -> Four Bool Bool -> f a Source #

bidirectionalEdgeE :: (e, e) -> (v, v) -> Four Bool Bool -> GraphElem v e Source #

edgesFromMapArr :: (Ord a, ArrowChoice arr, FailureArrow arr String) => Map a (a, a) -> Three Bool Bool -> arr a a Source #

edgesFromMapEndo :: Ord a => Map a (a, a) -> Three Bool Bool -> Endo a Source #

edgesFromMapEndoE :: (Ord e, Ord v) => Map e (v, v) -> Three Bool Bool -> Endo (GraphElem v e) Source #

loopEndo :: Ord a => [(a, a)] -> Three Bool Bool -> Endo a Source #

from list of (v_i,e_i), the loopEndo contains edges e_i : v_i -> v_i

loopEndoE :: (Ord v, Ord e) => [(v, e)] -> Three Bool Bool -> Endo (GraphElem v e) Source #

reversibleOneLaneLoopEndoE :: (Ord v, Ord e) => [(v, e)] -> Four Bool Bool -> Endo (GraphElem v e) Source #

reversibleLoopEndoE :: (Ord v, Ord e) => [(v, e, e)] -> Four Bool Bool -> Endo (GraphElem v e) Source #

edgesArr :: (Eq a, ArrowChoice arr, FailureArrow arr String) => [(a, (a, a))] -> Three Bool Bool -> arr a a Source #

edgesEndoE :: (Ord v, Ord e) => [(e, (v, v))] -> Three Bool Bool -> Endo (GraphElem v e) Source #

edgesEndo :: Ord a => [(a, (a, a))] -> Three Bool Bool -> Endo a Source #

edgesEndo' :: Eq a => [(a, (a, a))] -> Three Bool Bool -> Endo a Source #

reversibleEdgesEndoE :: (Ord v, Ord e) => [((e, e), (v, v))] -> Four Bool Bool -> Endo (GraphElem v e) Source #

reversibleEdgesEndo :: Ord a => [((a, a), (a, a))] -> Four Bool Bool -> Endo a Source #

edgePairEndo :: (m -> Endo a) -> (n -> Endo b) -> (m, n) -> Endo (a, b) Source #

mapEndo :: (a :==: b) -> Endo a :==: Endo b Source #

This is closest that the endomorphism is to a functor.

Orphan instances

FunctorArrow Endo (:==:) (:==:) Source # 
Instance details

Methods

amap :: forall (c :: k) (d :: k). (c :==: d) -> Endo c :==: Endo d Source #

Eq (Endo Bool) Source # 
Instance details

Methods

(==) :: Endo Bool -> Endo Bool -> Bool #

(/=) :: Endo Bool -> Endo Bool -> Bool #

Eq (Bool -> Bool) Source # 
Instance details

Methods

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

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