Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Data.Path.Class
Synopsis
- data Uncons (p :: (k -> k -> *) -> k -> k -> *) (l :: k -> k -> *) (a :: k) :: k -> * where
- UnconsSome :: l a b -> p l b c -> Uncons p l a c
- UnconsEmpty :: Uncons p l a a
- data Unsnoc (p :: (k -> k -> *) -> k -> k -> *) (l :: k -> k -> *) (a :: k) :: k -> * where
- UnsnocSome :: p l a b -> l b c -> Unsnoc p l a c
- UnsnocEmpty :: Unsnoc p l a a
- data SplitAt (p :: (k -> k -> *) -> k -> k -> *) (l :: k -> k -> *) (a :: k) :: k -> * where
- class (forall l. Category (p l)) => IsPath (p :: (k -> k -> *) -> k -> k -> *) where
- cons :: l a b -> p l b c -> p l a c
- uncons :: p l a b -> Uncons p l a b
- composeR :: (forall x y z. l x y -> r y z -> r x z) -> p l a b -> r b c -> r a c
- composeL :: (forall x y z. r x y -> l y z -> r x z) -> r a b -> p l b c -> r a c
- composeMap :: Category c => (forall x y. l x y -> c x y) -> p l a b -> c a b
- singleton :: l a b -> p l a b
- snoc :: p l a b -> l b c -> p l a c
- unsnoc :: p l a b -> Unsnoc p l a b
- splitAt :: Int -> p l a b -> SplitAt p l a b
- empty :: IsPath p => p l a a
- append :: IsPath p => p l a b -> p l b c -> p l a c
- compose :: (IsPath p, Category l) => p l a b -> l a b
Documentation
data Uncons (p :: (k -> k -> *) -> k -> k -> *) (l :: k -> k -> *) (a :: k) :: k -> * where #
Constructors
UnconsSome :: l a b -> p l b c -> Uncons p l a c | |
UnconsEmpty :: Uncons p l a a |
data Unsnoc (p :: (k -> k -> *) -> k -> k -> *) (l :: k -> k -> *) (a :: k) :: k -> * where #
Constructors
UnsnocSome :: p l a b -> l b c -> Unsnoc p l a c | |
UnsnocEmpty :: Unsnoc p l a a |
class (forall l. Category (p l)) => IsPath (p :: (k -> k -> *) -> k -> k -> *) where #
Laws:
uncons (cons a b) = UnconsSome a b unsnoc (snoc a b) = UnsnocSome a b cons a empty = singleton = snoc empty a composeR cons p empty = p composeL snoc empty p = p splitAt n xs = SplitAt a b ==> append a b = xs
Methods
cons :: l a b -> p l b c -> p l a c #
uncons :: p l a b -> Uncons p l a b #
composeR :: (forall x y z. l x y -> r y z -> r x z) -> p l a b -> r b c -> r a c #
composeL :: (forall x y z. r x y -> l y z -> r x z) -> r a b -> p l b c -> r a c #
composeMap :: Category c => (forall x y. l x y -> c x y) -> p l a b -> c a b #
singleton :: l a b -> p l a b #
snoc :: p l a b -> l b c -> p l a c #
Instances
IsPath (Path :: (k -> k -> Type) -> k -> k -> Type) # | |
Defined in Data.Path.List Methods cons :: forall l (a :: k0) (b :: k0) (c :: k0). l a b -> Path l b c -> Path l a c # uncons :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Path l a b -> Uncons Path l a b # composeR :: forall k0 l r (a :: k1) (b :: k1) (c :: k0). (forall (x :: k1) (y :: k1) (z :: k0). l x y -> r y z -> r x z) -> Path l a b -> r b c -> r a c # composeL :: forall k0 r l (a :: k0) (b :: k1) (c :: k1). (forall (x :: k0) (y :: k1) (z :: k1). r x y -> l y z -> r x z) -> r a b -> Path l b c -> r a c # composeMap :: forall c l (a :: k0) (b :: k0). Category c => (forall (x :: k0) (y :: k0). l x y -> c x y) -> Path l a b -> c a b # singleton :: forall l (a :: k0) (b :: k0). l a b -> Path l a b # snoc :: forall l (a :: k0) (b :: k0) (c :: k0). Path l a b -> l b c -> Path l a c # unsnoc :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Path l a b -> Unsnoc Path l a b # splitAt :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Int -> Path l a b -> SplitAt Path l a b # | |
IsPath (Path :: (k -> k -> Type) -> k -> k -> Type) # | |
Defined in Data.Path.DList Methods cons :: forall l (a :: k0) (b :: k0) (c :: k0). l a b -> Path l b c -> Path l a c # uncons :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Path l a b -> Uncons Path l a b # composeR :: forall k0 l r (a :: k1) (b :: k1) (c :: k0). (forall (x :: k1) (y :: k1) (z :: k0). l x y -> r y z -> r x z) -> Path l a b -> r b c -> r a c # composeL :: forall k0 r l (a :: k0) (b :: k1) (c :: k1). (forall (x :: k0) (y :: k1) (z :: k1). r x y -> l y z -> r x z) -> r a b -> Path l b c -> r a c # composeMap :: forall c l (a :: k0) (b :: k0). Category c => (forall (x :: k0) (y :: k0). l x y -> c x y) -> Path l a b -> c a b # singleton :: forall l (a :: k0) (b :: k0). l a b -> Path l a b # snoc :: forall l (a :: k0) (b :: k0) (c :: k0). Path l a b -> l b c -> Path l a c # unsnoc :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Path l a b -> Unsnoc Path l a b # splitAt :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Int -> Path l a b -> SplitAt Path l a b # | |
IsPath (Path :: (k -> k -> Type) -> k -> k -> Type) # | |
Defined in Data.Path.Sequence Methods cons :: forall l (a :: k0) (b :: k0) (c :: k0). l a b -> Path l b c -> Path l a c # uncons :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Path l a b -> Uncons Path l a b # composeR :: forall k0 l r (a :: k1) (b :: k1) (c :: k0). (forall (x :: k1) (y :: k1) (z :: k0). l x y -> r y z -> r x z) -> Path l a b -> r b c -> r a c # composeL :: forall k0 r l (a :: k0) (b :: k1) (c :: k1). (forall (x :: k0) (y :: k1) (z :: k1). r x y -> l y z -> r x z) -> r a b -> Path l b c -> r a c # composeMap :: forall c l (a :: k0) (b :: k0). Category c => (forall (x :: k0) (y :: k0). l x y -> c x y) -> Path l a b -> c a b # singleton :: forall l (a :: k0) (b :: k0). l a b -> Path l a b # snoc :: forall l (a :: k0) (b :: k0) (c :: k0). Path l a b -> l b c -> Path l a c # unsnoc :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Path l a b -> Unsnoc Path l a b # splitAt :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Int -> Path l a b -> SplitAt Path l a b # | |
IsPath (Path :: (k -> k -> Type) -> k -> k -> Type) # | |
Defined in Data.Path.Vector Methods cons :: forall l (a :: k0) (b :: k0) (c :: k0). l a b -> Path l b c -> Path l a c # uncons :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Path l a b -> Uncons Path l a b # composeR :: forall k0 l r (a :: k1) (b :: k1) (c :: k0). (forall (x :: k1) (y :: k1) (z :: k0). l x y -> r y z -> r x z) -> Path l a b -> r b c -> r a c # composeL :: forall k0 r l (a :: k0) (b :: k1) (c :: k1). (forall (x :: k0) (y :: k1) (z :: k1). r x y -> l y z -> r x z) -> r a b -> Path l b c -> r a c # composeMap :: forall c l (a :: k0) (b :: k0). Category c => (forall (x :: k0) (y :: k0). l x y -> c x y) -> Path l a b -> c a b # singleton :: forall l (a :: k0) (b :: k0). l a b -> Path l a b # snoc :: forall l (a :: k0) (b :: k0) (c :: k0). Path l a b -> l b c -> Path l a c # unsnoc :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Path l a b -> Unsnoc Path l a b # splitAt :: forall (l :: k0 -> k0 -> Type) (a :: k0) (b :: k0). Int -> Path l a b -> SplitAt Path l a b # |