monoid-subclasses-1.2.5.1: Subclasses of Monoid

Safe Haskell | Safe-Inferred
Language | Haskell2010

Data.Monoid.Instances.PrefixMemory

Description

This module defines the monoid transformer data type `Shadowed`.

Synopsis

- data Shadowed m
- shadowed :: Monoid m => m -> Shadowed m
- content :: Shadowed m -> m
- prefix :: Shadowed m -> m

# Documentation

data Shadowed m #

Monoid transformer that keeps track of the former `prefix` of its `content`. All functions that return a suffix of their argument, such as `stripPrefix` or `commonSuffix`, preserve the discarded `prefix`.

#### Instances

Instances details

(MonoidNull m, StableFactorial m) => Monoid (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods mempty :: Shadowed m # mappend :: Shadowed m -> Shadowed m -> Shadowed m # mconcat :: [Shadowed m] -> Shadowed m #
(MonoidNull m, StableFactorial m) => Semigroup (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods (<>) :: Shadowed m -> Shadowed m -> Shadowed m # sconcat :: NonEmpty (Shadowed m) -> Shadowed m # stimes :: Integral b => b -> Shadowed m -> Shadowed m #
Data m => Data (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Shadowed m -> c (Shadowed m) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Shadowed m) # toConstr :: Shadowed m -> Constr # dataTypeOf :: Shadowed m -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Shadowed m)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Shadowed m)) # gmapT :: (forall b. Data b => b -> b) -> Shadowed m -> Shadowed m # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Shadowed m -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Shadowed m -> r # gmapQ :: (forall d. Data d => d -> u) -> Shadowed m -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Shadowed m -> u # gmapM :: Monad m0 => (forall d. Data d => d -> m0 d) -> Shadowed m -> m0 (Shadowed m) # gmapMp :: MonadPlus m0 => (forall d. Data d => d -> m0 d) -> Shadowed m -> m0 (Shadowed m) # gmapMo :: MonadPlus m0 => (forall d. Data d => d -> m0 d) -> Shadowed m -> m0 (Shadowed m) #
(Monoid m, IsString m) => IsString (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods fromString :: String -> Shadowed m #
(MonoidNull m, Show m) => Show (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods showsPrec :: Int -> Shadowed m -> ShowS # show :: Shadowed m -> String # showList :: [Shadowed m] -> ShowS #
Eq m => Eq (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods (==) :: Shadowed m -> Shadowed m -> Bool # (/=) :: Shadowed m -> Shadowed m -> Bool #
Ord m => Ord (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods compare :: Shadowed m -> Shadowed m -> Ordering # (<) :: Shadowed m -> Shadowed m -> Bool # (<=) :: Shadowed m -> Shadowed m -> Bool # (>) :: Shadowed m -> Shadowed m -> Bool # (>=) :: Shadowed m -> Shadowed m -> Bool # max :: Shadowed m -> Shadowed m -> Shadowed m # min :: Shadowed m -> Shadowed m -> Shadowed m #
(StableFactorial m, FactorialMonoid m) => FactorialMonoid (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods splitPrimePrefix :: Shadowed m -> Maybe (Shadowed m, Shadowed m) # splitPrimeSuffix :: Shadowed m -> Maybe (Shadowed m, Shadowed m) # inits :: Shadowed m -> [Shadowed m] # tails :: Shadowed m -> [Shadowed m] # span :: (Shadowed m -> Bool) -> Shadowed m -> (Shadowed m, Shadowed m) # break :: (Shadowed m -> Bool) -> Shadowed m -> (Shadowed m, Shadowed m) # split :: (Shadowed m -> Bool) -> Shadowed m -> [Shadowed m] # takeWhile :: (Shadowed m -> Bool) -> Shadowed m -> Shadowed m # dropWhile :: (Shadowed m -> Bool) -> Shadowed m -> Shadowed m # spanMaybe :: s -> (s -> Shadowed m -> Maybe s) -> Shadowed m -> (Shadowed m, Shadowed m, s) # spanMaybe' :: s -> (s -> Shadowed m -> Maybe s) -> Shadowed m -> (Shadowed m, Shadowed m, s) # splitAt :: Int -> Shadowed m -> (Shadowed m, Shadowed m) # drop :: Int -> Shadowed m -> Shadowed m # take :: Int -> Shadowed m -> Shadowed m #
(Eq m, StableFactorial m, FactorialMonoid m, LeftGCDMonoid m) => LeftGCDMonoid (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods commonPrefix :: Shadowed m -> Shadowed m -> Shadowed m # stripCommonPrefix :: Shadowed m -> Shadowed m -> (Shadowed m, Shadowed m, Shadowed m) #
(StableFactorial m, FactorialMonoid m, RightGCDMonoid m) => RightGCDMonoid (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods commonSuffix :: Shadowed m -> Shadowed m -> Shadowed m # stripCommonSuffix :: Shadowed m -> Shadowed m -> (Shadowed m, Shadowed m, Shadowed m) #
(MonoidNull m, StableFactorial m) => MonoidNull (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods null :: Shadowed m -> Bool #
(PositiveMonoid m, StableFactorial m) => PositiveMonoid (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory
(Eq m, StableFactorial m, TextualMonoid m) => TextualMonoid (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods fromText :: Text -> Shadowed m # singleton :: Char -> Shadowed m # splitCharacterPrefix :: Shadowed m -> Maybe (Char, Shadowed m) # characterPrefix :: Shadowed m -> Maybe Char # map :: (Char -> Char) -> Shadowed m -> Shadowed m # concatMap :: (Char -> Shadowed m) -> Shadowed m -> Shadowed m # toString :: (Shadowed m -> String) -> Shadowed m -> String # toText :: (Shadowed m -> Text) -> Shadowed m -> Text # any :: (Char -> Bool) -> Shadowed m -> Bool # all :: (Char -> Bool) -> Shadowed m -> Bool # foldl :: (a -> Shadowed m -> a) -> (a -> Char -> a) -> a -> Shadowed m -> a # foldl' :: (a -> Shadowed m -> a) -> (a -> Char -> a) -> a -> Shadowed m -> a # foldr :: (Shadowed m -> a -> a) -> (Char -> a -> a) -> a -> Shadowed m -> a # scanl :: (Char -> Char -> Char) -> Char -> Shadowed m -> Shadowed m # scanl1 :: (Char -> Char -> Char) -> Shadowed m -> Shadowed m # scanr :: (Char -> Char -> Char) -> Char -> Shadowed m -> Shadowed m # scanr1 :: (Char -> Char -> Char) -> Shadowed m -> Shadowed m # mapAccumL :: (a -> Char -> (a, Char)) -> a -> Shadowed m -> (a, Shadowed m) # mapAccumR :: (a -> Char -> (a, Char)) -> a -> Shadowed m -> (a, Shadowed m) # takeWhile :: (Shadowed m -> Bool) -> (Char -> Bool) -> Shadowed m -> Shadowed m # dropWhile :: (Shadowed m -> Bool) -> (Char -> Bool) -> Shadowed m -> Shadowed m # break :: (Shadowed m -> Bool) -> (Char -> Bool) -> Shadowed m -> (Shadowed m, Shadowed m) # span :: (Shadowed m -> Bool) -> (Char -> Bool) -> Shadowed m -> (Shadowed m, Shadowed m) # spanMaybe :: s -> (s -> Shadowed m -> Maybe s) -> (s -> Char -> Maybe s) -> Shadowed m -> (Shadowed m, Shadowed m, s) # spanMaybe' :: s -> (s -> Shadowed m -> Maybe s) -> (s -> Char -> Maybe s) -> Shadowed m -> (Shadowed m, Shadowed m, s) # split :: (Char -> Bool) -> Shadowed m -> [Shadowed m] # find :: (Char -> Bool) -> Shadowed m -> Maybe Char # elem :: Char -> Shadowed m -> Bool # foldl_ :: (a -> Char -> a) -> a -> Shadowed m -> a # foldl_' :: (a -> Char -> a) -> a -> Shadowed m -> a # foldr_ :: (Char -> a -> a) -> a -> Shadowed m -> a # takeWhile_ :: Bool -> (Char -> Bool) -> Shadowed m -> Shadowed m # dropWhile_ :: Bool -> (Char -> Bool) -> Shadowed m -> Shadowed m # break_ :: Bool -> (Char -> Bool) -> Shadowed m -> (Shadowed m, Shadowed m) # span_ :: Bool -> (Char -> Bool) -> Shadowed m -> (Shadowed m, Shadowed m) # spanMaybe_ :: s -> (s -> Char -> Maybe s) -> Shadowed m -> (Shadowed m, Shadowed m, s) # spanMaybe_' :: s -> (s -> Char -> Maybe s) -> Shadowed m -> (Shadowed m, Shadowed m, s) #
(MonoidNull m, StableFactorial m, LeftReductive m) => LeftReductive (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods isPrefixOf :: Shadowed m -> Shadowed m -> Bool # stripPrefix :: Shadowed m -> Shadowed m -> Maybe (Shadowed m) #
(StableFactorial m, FactorialMonoid m, RightReductive m) => RightReductive (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods isSuffixOf :: Shadowed m -> Shadowed m -> Bool # stripSuffix :: Shadowed m -> Shadowed m -> Maybe (Shadowed m) #
(FactorialMonoid m, StableFactorial m) => Factorial (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory Methods factors :: Shadowed m -> [Shadowed m] # primePrefix :: Shadowed m -> Shadowed m # primeSuffix :: Shadowed m -> Shadowed m # foldl :: (a -> Shadowed m -> a) -> a -> Shadowed m -> a # foldl' :: (a -> Shadowed m -> a) -> a -> Shadowed m -> a # foldr :: (Shadowed m -> a -> a) -> a -> Shadowed m -> a # length :: Shadowed m -> Int # foldMap :: Monoid n => (Shadowed m -> n) -> Shadowed m -> n # reverse :: Shadowed m -> Shadowed m #
(StableFactorial m, FactorialMonoid m) => StableFactorial (Shadowed m) # |
Instance details Defined in Data.Monoid.Instances.PrefixMemory

shadowed :: Monoid m => m -> Shadowed m #

The constructor of a `Shadowed` monoid, with the initial `prefix = null`

content :: Shadowed m -> m #

the present value

prefix :: Shadowed m -> m #

used to precede the `content` but has been consumed