- class MonoidalAnn f
- class MonoidalAnn f => PackableAnn f
- class BreakableAnn f
- data Branded brand t a
- type Ann f s = (s `Branded` Rope) (f s)
- data Unsafe
- null :: Branded s Rope a -> Bool
- head :: Unpackable t => Branded s Rope a -> t
- last :: Unpackable t => Branded s Rope a -> t
- unpack :: Unpackable t => Branded s Rope a -> [t]
- empty :: MonoidalAnn f => Ann f Unsafe
- append :: MonoidalAnn f => Ann f a -> Ann f b -> Ann f Unsafe
- class Packable c
- pack :: (PackableAnn f, Packable t) => t -> Ann f Unsafe
- snoc :: (PackableAnn f, Packable t) => Ann f a -> t -> Ann f Unsafe
- cons :: (PackableAnn f, Packable t) => t -> Ann f a -> Ann f Unsafe
- splitAt :: BreakableAnn f => Int -> Ann f a -> (Ann f Unsafe, Ann f Unsafe)
- drop :: BreakableAnn f => Int -> Ann f a -> Ann f Unsafe
- take :: BreakableAnn f => Int -> Ann f a -> Ann f Unsafe
- break :: (BreakableAnn f, Breakable t) => (t -> Bool) -> Ann f a -> (Ann f Unsafe, Ann f Unsafe)
- span :: (BreakableAnn f, Breakable t) => (t -> Bool) -> Ann f a -> (Ann f Unsafe, Ann f Unsafe)
- takeWhile :: (BreakableAnn f, Breakable t) => (t -> Bool) -> Ann f a -> Ann f Unsafe
- dropWhile :: (BreakableAnn f, Breakable t) => (t -> Bool) -> Ann f a -> Ann f Unsafe
- uncons :: (BreakableAnn f, Unpackable t) => Ann f a -> Maybe (t, Ann f Unsafe)
- unsnoc :: (BreakableAnn f, Unpackable t) => Ann f a -> Maybe (Ann f Unsafe, t)

# Annotations

class MonoidalAnn f Source

MonoidalAnn Unit | |

(MonoidalAnn f, MonoidalAnn g) => MonoidalAnn (:*: f g) |

class MonoidalAnn f => PackableAnn f Source

PackableAnn Unit | |

(PackableAnn f, PackableAnn g) => PackableAnn (:*: f g) |

class BreakableAnn f Source

BreakableAnn Unit | |

(BreakableAnn f, BreakableAnn g) => BreakableAnn (:*: f g) |

# Constructors

Monoid t => MonadWriter t (Branded Unsafe t) | |

Measured v t => Measured v (Branded s t a) | |

Monoid t => Monad (Branded Unsafe t) | |

Functor (Branded s t) | |

Monoid t => Applicative (Branded Unsafe t) | |

Foldable (Branded s t) | |

Traversable (Branded s t) | |

Comonad (Branded s t) | |

(Monoid t, Monoid m) => Monoid (Branded Unsafe t m) |

# Unpacking `Ropes`

head :: Unpackable t => Branded s Rope a -> tSource

last :: Unpackable t => Branded s Rope a -> tSource

unpack :: Unpackable t => Branded s Rope a -> [t]Source

# Building Annotated `Rope`

empty :: MonoidalAnn f => Ann f UnsafeSource

# Cutting An Annotated `Rope`

break :: (BreakableAnn f, Breakable t) => (t -> Bool) -> Ann f a -> (Ann f Unsafe, Ann f Unsafe)Source

span :: (BreakableAnn f, Breakable t) => (t -> Bool) -> Ann f a -> (Ann f Unsafe, Ann f Unsafe)Source

# Inspecting the ends of the `Rope`

uncons :: (BreakableAnn f, Unpackable t) => Ann f a -> Maybe (t, Ann f Unsafe)Source

unsnoc :: (BreakableAnn f, Unpackable t) => Ann f a -> Maybe (Ann f Unsafe, t)Source