iota-0.1.0.0
Safe HaskellNone
LanguageGHC2021

Data.Monoid.Reversible

Synopsis

Documentation

data Reversible a Source #

Constructors

Reversible !a !(Dual a) 

Instances

Instances details
Unbox a => Vector Vector (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Methods

basicUnsafeFreeze :: Mutable Vector s (Reversible a) -> ST s (Vector (Reversible a))

basicUnsafeThaw :: Vector (Reversible a) -> ST s (Mutable Vector s (Reversible a))

basicLength :: Vector (Reversible a) -> Int

basicUnsafeSlice :: Int -> Int -> Vector (Reversible a) -> Vector (Reversible a)

basicUnsafeIndexM :: Vector (Reversible a) -> Int -> Box (Reversible a)

basicUnsafeCopy :: Mutable Vector s (Reversible a) -> Vector (Reversible a) -> ST s ()

elemseq :: Vector (Reversible a) -> Reversible a -> b -> b

Unbox a => MVector MVector (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Methods

basicLength :: MVector s (Reversible a) -> Int

basicUnsafeSlice :: Int -> Int -> MVector s (Reversible a) -> MVector s (Reversible a)

basicOverlaps :: MVector s (Reversible a) -> MVector s (Reversible a) -> Bool

basicUnsafeNew :: Int -> ST s (MVector s (Reversible a))

basicInitialize :: MVector s (Reversible a) -> ST s ()

basicUnsafeReplicate :: Int -> Reversible a -> ST s (MVector s (Reversible a))

basicUnsafeRead :: MVector s (Reversible a) -> Int -> ST s (Reversible a)

basicUnsafeWrite :: MVector s (Reversible a) -> Int -> Reversible a -> ST s ()

basicClear :: MVector s (Reversible a) -> ST s ()

basicSet :: MVector s (Reversible a) -> Reversible a -> ST s ()

basicUnsafeCopy :: MVector s (Reversible a) -> MVector s (Reversible a) -> ST s ()

basicUnsafeMove :: MVector s (Reversible a) -> MVector s (Reversible a) -> ST s ()

basicUnsafeGrow :: MVector s (Reversible a) -> Int -> ST s (MVector s (Reversible a))

Monoid a => Monoid (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Semigroup a => Semigroup (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Show a => Show (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Eq a => Eq (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Methods

(==) :: Reversible a -> Reversible a -> Bool #

(/=) :: Reversible a -> Reversible a -> Bool #

Ord a => Ord (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Unbox a => Unbox (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Unbox a => IsoUnbox (Reversible a) (a, a) Source # 
Instance details

Defined in Data.Monoid.Reversible

Methods

toURepr :: Reversible a -> (a, a)

fromURepr :: (a, a) -> Reversible a

newtype MVector s (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

newtype MVector s (Reversible a) = MV_Reversible (MVector s (a, a))
newtype Vector (Reversible a) Source # 
Instance details

Defined in Data.Monoid.Reversible

newtype Vector (Reversible a) = V_Reversible (Vector (a, a))

mreverse :: Reversible a -> Reversible a Source #

O(1)

>>> mreverse $ foldMap (reversible . (:[])) "abc"
"cba"
>>> mreverse $ reversible "abc"
"abc"
>>> mreverse $ reversible "abc" <> reversible "def"
"defabc"