polynomial-comonad
Safe HaskellNone
LanguageGHC2021

Data.InternalQuiver.Path

Synopsis

Path

data Path v e where Source #

Bundled Patterns

pattern Path :: v -> [e] -> v -> Path v e 
pattern EmptyPath :: v -> Path v e 
pattern NonEmptyPath :: e -> [e] -> Path v e 

Instances

Instances details
Show2 Path Source # 
Instance details

Defined in Data.InternalQuiver.Path

Methods

liftShowsPrec2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> Int -> Path a b -> ShowS #

liftShowList2 :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> (Int -> b -> ShowS) -> ([b] -> ShowS) -> [Path a b] -> ShowS #

Eq ob => ICategory ob (Path ob mor) Source #

Path is the free category

Instance details

Defined in Data.InternalCategory

Methods

foldPath :: Path ob (Path ob mor) -> Path ob mor Source #

identity :: ob -> Path ob mor Source #

compose :: Path ob mor -> Path ob mor -> Maybe (Path ob mor) Source #

IQuiver v (Path v e) Source # 
Instance details

Defined in Data.InternalQuiver.Path

Methods

src :: Path v e -> v Source #

tgt :: Path v e -> v Source #

Show v => Show1 (Path v) Source # 
Instance details

Defined in Data.InternalQuiver.Path

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Path v a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Path v a] -> ShowS #

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

Defined in Data.InternalQuiver.Path

Methods

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

show :: Path v e -> String #

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

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

Defined in Data.InternalQuiver.Path

Methods

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

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

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

Defined in Data.InternalQuiver.Path

Methods

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

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

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

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

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

max :: Path v e -> Path v e -> Path v e #

min :: Path v e -> Path v e -> Path v e #

Constructing path

path :: (Eq v, IQuiver v e) => v -> [e] -> v -> Maybe (Path v e) Source #

emptyPath :: v -> Path v e Source #

singlePath :: IQuiver v e => e -> Path v e Source #

composePath :: Eq v => Path v e -> Path v e -> Maybe (Path v e) Source #

mapPath :: (IQuiver v' e', Eq v') => (v -> v') -> (e -> e') -> Path v e -> Maybe (Path v' e') Source #

concatPath :: Path v (Path v e) -> Path v e Source #

Partial construction functions

errPath :: (HasCallStack, Eq v, Show v, IQuiver v e) => v -> [e] -> v -> Path v e Source #

errComposePath :: (HasCallStack, Show v, Eq v) => Path v e -> Path v e -> Path v e Source #

errMapPath :: (HasCallStack, IQuiver v' e', Eq v') => (v -> v') -> (e -> e') -> Path v e -> Path v' e' Source #

Sum and Product of paths

injectLeftPath :: Path v e -> Path (Either v w) (Either e f) Source #

injectRightPath :: Path w f -> Path (Either v w) (Either e f) Source #

separateSumPath :: Path (Either v w) (Either e f) -> Either (Path v e) (Path w f) Source #

fstPath :: Path (v, w) (e, f) -> Path v e Source #

sndPath :: Path (v, w) (e, f) -> Path w f Source #

Unsafe

unsafePath :: v -> [e] -> v -> Path v e Source #