Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Synopsis
- data GraphElem v e
- data ReversibleGraphProp v e
- = VertexProp v
- | EdgeProp e
- | LoopProp e
- | OneLaneLoopProp e
- | BandProp e
- mapGraphElem :: (v -> v') -> (e -> e') -> GraphElem v e -> GraphElem v' e'
- eitherGraphElem :: (v -> w) -> (e -> w) -> GraphElem v e -> w
- class (Category arr, Eq (arr a a), Monoid (arr a a)) => GraphMonoid arr a where
- class GraphMonoid arr a => ReversibleGraphMonoid arr a where
- gnot :: arr a a
- data Three b c where
- three_action :: (g -> g) -> (g -> g) -> (g -> g) -> Three Bool Bool -> Endo g
- three_action_arr :: ArrowChoice arr => arr g g -> arr g g -> arr g g -> Three Bool Bool -> arr g g
- mappend_three :: Three b c -> Three a b -> Three a c
- data Four a b where
- data Restricted (g :: * -> Constraint) a b where
- Restricted :: g a => a -> Restricted g a a
- three_to_four :: Three a b -> Four a b
- four_action_arr :: ArrowChoice arr => arr g g -> arr g g -> arr g g -> arr g g -> Four Bool Bool -> arr g g
- four_action :: (g -> g) -> (g -> g) -> (g -> g) -> (g -> g) -> Four Bool Bool -> Endo g
- sortPair :: Ord a => (a, a) -> (a, a)
- mappend_four :: Four b c -> Four a b -> Four a c
- vertexEndo :: m -> Endo a
- optEndo :: Eq a => [(a, a)] -> Bool -> Endo a
- edge :: a -> (a, a) -> Three Bool Bool -> a
- edgeE :: e -> (v, v) -> Three Bool Bool -> GraphElem v e
- bidirectionalEdge :: (f a, f a) -> (f a, f a) -> Four Bool Bool -> f a
- bidirectionalEdgeE :: (e, e) -> (v, v) -> Four Bool Bool -> GraphElem v e
- edgesFromMapArr :: (Ord a, ArrowChoice arr, FailureArrow arr String) => Map a (a, a) -> Three Bool Bool -> arr a a
- edgesFromMapEndo :: Ord a => Map a (a, a) -> Three Bool Bool -> Endo a
- edgesFromMapEndoE :: (Ord e, Ord v) => Map e (v, v) -> Three Bool Bool -> Endo (GraphElem v e)
- loopEndo :: Ord a => [(a, a)] -> Three Bool Bool -> Endo a
- loopEndoE :: (Ord v, Ord e) => [(v, e)] -> Three Bool Bool -> Endo (GraphElem v e)
- reversibleOneLaneLoopEndoE :: (Ord v, Ord e) => [(v, e)] -> Four Bool Bool -> Endo (GraphElem v e)
- reversibleLoopEndoE :: (Ord v, Ord e) => [(v, e, e)] -> Four Bool Bool -> Endo (GraphElem v e)
- edgesArr :: (Eq a, ArrowChoice arr, FailureArrow arr String) => [(a, (a, a))] -> Three Bool Bool -> arr a a
- edgesEndoE :: (Ord v, Ord e) => [(e, (v, v))] -> Three Bool Bool -> Endo (GraphElem v e)
- edgesEndo :: Ord a => [(a, (a, a))] -> Three Bool Bool -> Endo a
- edgesEndo' :: Eq a => [(a, (a, a))] -> Three Bool Bool -> Endo a
- reversibleEdgesEndoE :: (Ord v, Ord e) => [((e, e), (v, v))] -> Four Bool Bool -> Endo (GraphElem v e)
- reversibleEdgesEndo :: Ord a => [((a, a), (a, a))] -> Four Bool Bool -> Endo a
- edgePairEndo :: (m -> Endo a) -> (n -> Endo b) -> (m, n) -> Endo (a, b)
- mapEndo :: (a :==: b) -> Endo a :==: Endo b
Documentation
Instances
data ReversibleGraphProp v e Source #
VertexProp v | |
EdgeProp e | |
LoopProp e | |
OneLaneLoopProp e | |
BandProp e |
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 #
class GraphMonoid arr a => ReversibleGraphMonoid arr a where Source #
Instances
Arrow arr => MonoidArrow (arr :: Type -> Type -> Type) (Three Bool Bool) Bool Source # | |
Category (Three :: k -> k -> Type) Source # | |
GraphMonoid (Three :: Type -> Type -> Type) Bool Source # | |
(Ord a, PpShow a) => Show (Graph (Three :: Type -> Type -> Type) a) Source # | |
(Binary a, Ord a) => Binary (Graph (Three :: Type -> Type -> Type) a) Source # | |
(Ord a, PpShow a) => PpShow (Graph (Three :: Type -> Type -> Type) a) Source # | |
(Ord v, Ord e) => DigraphFactory (Graph (Three :: Type -> Type -> Type) (GraphElem v e)) v e Source # | |
Defined in Math.Graph.Digraph 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 # | |
Defined in Math.Graph.GraphMonoid 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 # | |
Semigroup (Three a a) Source # | |
Show (Three a a) Source # | |
Group (Three Bool Bool) Source # | |
PpShow (Three a a) Source # | |
Defined in Math.Graph.GraphMonoid | |
Universe (Three a a) Source # | |
Defined in Math.Graph.GraphMonoid all_elements :: [Three a a] Source # | |
Eq (Three a a) Source # | |
Ord (Three a a) Source # | |
Defined in Math.Graph.GraphMonoid |
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.
Instances
Category (Four :: k -> k -> Type) Source # | |
GraphMonoid (Four :: Type -> Type -> Type) Bool Source # | |
ReversibleGraphMonoid (Four :: Type -> Type -> Type) Bool Source # | |
MonoidArrow (->) (Four Bool Bool) Bool Source # | |
(Ord a, PpShow a) => Show (Graph (Four :: Type -> Type -> Type) a) Source # | |
(Ord a, PpShow a) => PpShow (Graph (Four :: Type -> Type -> Type) a) Source # | |
(Ord v, Ord e) => ReversibleGraphFactory (Graph (Four :: Type -> Type -> Type) (GraphElem v e)) v e Source # | |
Defined in Math.Graph.Digraph reversibleVertexGraph :: v -> Graph Four (GraphElem v e) Source # reversibleVerticesGraph :: [v] -> Graph Four (GraphElem v e) Source # reversibleVerticesFromSetGraph :: Set v -> Graph Four (GraphElem v e) Source # reversibleEdgeGraph :: e -> e -> v -> v -> Graph Four (GraphElem v e) Source # reversibleCompleteGraph :: [v] -> (v -> v -> (e, e)) -> Graph Four (GraphElem v e) Source # reversibleEdgesGraph :: [((e, e), (v, v))] -> Graph Four (GraphElem v e) Source # reversibleLoopGraph :: [(v, e, e)] -> Graph Four (GraphElem v e) Source # | |
(Data a, Typeable a) => Data (Four a a) Source # | |
Defined in Math.Graph.GraphMonoid 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 # | |
Semigroup (Four Bool Bool) Source # | |
Show (Four a a) Source # | |
Group (Four Bool Bool) Source # | |
PpShow (Four a a) Source # | |
Defined in Math.Graph.GraphMonoid | |
Universe (Four a a) Source # | |
Defined in Math.Graph.GraphMonoid all_elements :: [Four a a] Source # | |
Eq (Four a a) Source # | |
Ord (Four a a) Source # | |
Defined in Math.Graph.GraphMonoid |
data Restricted (g :: * -> Constraint) a b where Source #
Restricted :: g a => a -> Restricted g a a |
three_to_four :: Three a b -> Four a b Source #
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.
vertexEndo :: m -> Endo a Source #
edgesFromMapArr :: (Ord a, ArrowChoice arr, FailureArrow arr String) => Map a (a, a) -> Three Bool Bool -> arr a 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
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 #
reversibleEdgesEndoE :: (Ord v, Ord e) => [((e, e), (v, v))] -> Four Bool Bool -> Endo (GraphElem v e) Source #
mapEndo :: (a :==: b) -> Endo a :==: Endo b Source #
This is closest that the endomorphism is to a functor.