- data A s a
- type Ann a f = A a (f a)
- class MonoidA f
- class MonoidA f => ReducerA f
- class BreakableA f
- runAnn :: Ann a f -> (forall b. Ann b f -> r) -> r
- null :: A s a -> Bool
- head :: Unpackable t => A s a -> t
- last :: Unpackable t => A s a -> t
- unpack :: Unpackable t => A s a -> [t]
- empty :: MonoidA f => Ann Nil f
- append :: MonoidA f => Ann a f -> Ann b f -> Ann (a :<> b) f
- unit :: (ReducerA f, Reducer t Rope) => t -> (forall a. Ann (Return a) f -> r) -> r
- snoc :: (ReducerA f, Reducer t Rope) => Ann a f -> t -> (forall c. Ann (Snoc a c t) f -> r) -> r
- cons :: (ReducerA f, Reducer t Rope) => t -> Ann a f -> (forall c. Ann (Cons c t a) f -> r) -> r
- splitAt :: BreakableA f => Int -> Ann a f -> (forall n. Ann (Take n a) f -> Ann (Drop n a) f -> r) -> r
- drop :: BreakableA f => Int -> Ann a f -> (forall n. Ann (Drop n a) f -> r) -> r
- take :: BreakableA f => Int -> Ann a f -> (forall n. Ann (Take n a) f -> r) -> r
- break :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Take n a) f -> Ann (Drop n a) f -> r) -> r
- span :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Take n a) f -> Ann (Drop n a) f -> r) -> r
- takeWhile :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Take n a) f -> r) -> r
- dropWhile :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Drop n a) f -> r) -> r
- uncons :: (BreakableA f, Unpackable t) => Ann a f -> Maybe (t, Ann (Tail t a) f)
- unsnoc :: (BreakableA f, Unpackable t) => Ann a f -> Maybe (Ann (Init a t) f, t)
- type family Drop n a :: *
- type family Take n a :: *
- type Snoc a s t = a :<> Return (Token s t)
- type Cons s t a = Token s t :> a
- type Tail t a = Unit (Tailed t a)
- type Init a t = Unit (Inited a t)
- type Return a = a :> Nil
- data Nil
- type family a :<> b :: *
- data (f :*: g) a = (f a) :*: (g a)
- fstF :: (f :*: g) a -> f a
- sndF :: (f :*: g) a -> g a
- data Unit a
Annotated Rope
s
class BreakableA f Source
BreakableA Unit | |
(BreakableA f, BreakableA g) => BreakableA (:*: f g) |
Unpacking Ropes
head :: Unpackable t => A s a -> tSource
last :: Unpackable t => A s a -> tSource
unpack :: Unpackable t => A s a -> [t]Source
Building Annotated Rope
snoc :: (ReducerA f, Reducer t Rope) => Ann a f -> t -> (forall c. Ann (Snoc a c t) f -> r) -> rSource
cons :: (ReducerA f, Reducer t Rope) => t -> Ann a f -> (forall c. Ann (Cons c t a) f -> r) -> rSource
Cutting An Annotated Rope
splitAt :: BreakableA f => Int -> Ann a f -> (forall n. Ann (Take n a) f -> Ann (Drop n a) f -> r) -> rSource
break :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Take n a) f -> Ann (Drop n a) f -> r) -> rSource
span :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Take n a) f -> Ann (Drop n a) f -> r) -> rSource
takeWhile :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Take n a) f -> r) -> rSource
dropWhile :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Drop n a) f -> r) -> rSource
Inspecting the ends of the Rope
uncons :: (BreakableA f, Unpackable t) => Ann a f -> Maybe (t, Ann (Tail t a) f)Source
unsnoc :: (BreakableA f, Unpackable t) => Ann a f -> Maybe (Ann (Init a t) f, t)Source
Type-level constructors
Annotations
Annotation Product
A Rope
Annotation
product.
(f a) :*: (g a) |
(Functor f, Functor g) => Functor (:*: f g) | |
(Applicative f, Applicative g) => Applicative (:*: f g) | |
(Foldable f, Foldable g) => Foldable (:*: f g) | |
(Traversable f, Traversable g) => Traversable (:*: f g) | |
(BreakableA f, BreakableA g) => BreakableA (:*: f g) | |
(ReducerA f, ReducerA g) => ReducerA (:*: f g) | |
(MonoidA f, MonoidA g) => MonoidA (:*: f g) |