lr-acts 0.1.1 → 0.2
raw patch · 5 files changed
+164/−39 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.Act.Act: [unactCoerce] :: ActSelf' x -> x
- Data.Act.Act: [unactId] :: ActTrivial x -> x
+ Data.Act.Act: [unactSelf'] :: ActSelf' x -> x
+ Data.Act.Act: [unactTrivial] :: ActTrivial x -> x
+ Data.Semidirect.Lazy: lfromActee :: Monoid s => x -> LSemidirect x s
+ Data.Semidirect.Lazy: lfromActor :: Monoid x => s -> LSemidirect x s
+ Data.Semidirect.Lazy: lreset :: Monoid s => LSemidirect x s -> LSemidirect x s
+ Data.Semidirect.Lazy: lvacate :: Monoid x => LSemidirect x s -> LSemidirect x s
+ Data.Semidirect.Lazy: rfromActee :: Monoid s => x -> RSemidirect x s
+ Data.Semidirect.Lazy: rfromActor :: Monoid x => s -> RSemidirect x s
+ Data.Semidirect.Lazy: rreset :: Monoid s => RSemidirect x s -> RSemidirect x s
+ Data.Semidirect.Lazy: rvacate :: Monoid x => RSemidirect x s -> RSemidirect x s
+ Data.Semidirect.Strict: lfromActee :: Monoid s => x -> LSemidirect x s
+ Data.Semidirect.Strict: lfromActor :: Monoid x => s -> LSemidirect x s
+ Data.Semidirect.Strict: lreset :: Monoid s => LSemidirect x s -> LSemidirect x s
+ Data.Semidirect.Strict: lvacate :: Monoid x => LSemidirect x s -> LSemidirect x s
+ Data.Semidirect.Strict: rfromActee :: Monoid s => x -> RSemidirect x s
+ Data.Semidirect.Strict: rfromActor :: Monoid x => s -> RSemidirect x s
+ Data.Semidirect.Strict: rreset :: Monoid s => RSemidirect x s -> RSemidirect x s
+ Data.Semidirect.Strict: rvacate :: Monoid x => RSemidirect x s -> RSemidirect x s
Files
- CHANGELOG.md +10/−0
- lr-acts.cabal +1/−1
- src/Data/Act/Act.hs +2/−2
- src/Data/Semidirect/Lazy.hs +71/−13
- src/Data/Semidirect/Strict.hs +80/−23
CHANGELOG.md view
@@ -29,3 +29,13 @@ ## 0.1.1 - 2025-12-01 - Fix benchmark + +## 0.2 - 2025-12-11 + +- Rename : + - embedActor -> fromActor + - embedActee -> fromActee + - erase -> vacate + - forget -> reset + - unactCoerce -> unactSelf' + - unactId -> unactTrivial
lr-acts.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: lr-acts-version: 0.1.1+version: 0.2 synopsis: Left and right actions, semidirect products and torsors description: Please see the README on GitHub at <https://github.com/AliceRixte/lr-acts/blob/main/README.md> category: Algebra, Math, Data
src/Data/Act/Act.hs view
@@ -330,7 +330,7 @@ -- >>> Duration 2 <>$ Seconds 3 -- Seconds 5.0 -- -newtype ActSelf' x = ActSelf' {unactCoerce :: x} +newtype ActSelf' x = ActSelf' {unactSelf' :: x} deriving stock (Show, Eq) deriving newtype (Semigroup, Monoid, Group) @@ -358,7 +358,7 @@ -- >>> ActTrivial "Hello !" <>$ "Hi !" -- " Hi !" -newtype ActTrivial x = ActTrivial {unactId :: x} +newtype ActTrivial x = ActTrivial {unactTrivial :: x} deriving stock (Show, Eq) deriving newtype (Semigroup, Monoid, Group)
src/Data/Semidirect/Lazy.hs view
@@ -10,7 +10,7 @@ -- -- Semidirect products for left and right actions. -- --- For a strict version, see @'Data.Semidirect.Strict'@. +-- For a strict version, see "Data.Semidirect.Strict". -- -- [Usage :] -- @@ -32,18 +32,26 @@ ----------------------------------------------------------------------------- module Data.Semidirect.Lazy - ( LSemidirect (..) - , lerase - , lforget - , lembedActee - , lembedActor - , lfromPair - , RSemidirect (..) - , rerase - , rforget - , rembedActee - , rembedActor - , rfromPair + ( LSemidirect (..) + , lvacate + , lerase + , lreset + , lforget + , lfromActor + , lembedActee + , lfromActee + , lembedActor + , lfromPair + , RSemidirect (..) + , rreset + , rerase + , rvacate + , rforget + , rfromActee + , rembedActee + , rfromActor + , rembedActor + , rfromPair ) where import Data.Bifunctor @@ -72,22 +80,48 @@ first f a = a {lactee = f (lactee a)} second = fmap + +-- | Replace the actee with @mempty@. +lvacate :: Monoid x => LSemidirect x s -> LSemidirect x s +lvacate a = a {lactee = mempty} + -- | Erases the actee (i.e. replace it with @mempty@). lerase :: Monoid x => LSemidirect x s -> LSemidirect x s lerase a = a {lactee = mempty} +{-# DEPRECATED lerase "Use lvacate instead." #-} + +-- | Replace the actor with @mempty@. +lreset :: Monoid s => LSemidirect x s -> LSemidirect x s +lreset a = a {lactor = mempty} + -- | Forget the actor (i.e. replace it with @mempty@). lforget :: Monoid s => LSemidirect x s -> LSemidirect x s lforget a =a {lactor = mempty} +{-# DEPRECATED lforget "Use lreset instead." #-} + + -- | Make a semidirect pair whose actee is @mempty@. +lfromActor :: Monoid x => s -> LSemidirect x s +lfromActor s = LPair mempty s + +-- | Make a semidirect pair whose actee is @mempty@. lembedActor :: Monoid x => s -> LSemidirect x s lembedActor s = LPair mempty s +{-# DEPRECATED lembedActor "Use lfromActor instead." #-} + -- | Make a semidirect pair whose actor is @mempty@. +lfromActee :: Monoid s => x -> LSemidirect x s +lfromActee x = LPair x mempty + +-- | Make a semidirect pair whose actor is @mempty@. lembedActee :: Monoid s => x -> LSemidirect x s lembedActee x = LPair x mempty +{-# DEPRECATED lembedActee "Use lfromActee instead." #-} + -- | Converts a pair into a semidirect product element. lfromPair :: (x,s) -> LSemidirect x s lfromPair (x,s) = LPair x s @@ -118,21 +152,45 @@ first f a = a {ractee = f (ractee a)} second = fmap +-- | Replace the actee with @mempty@. +rvacate :: Monoid x => RSemidirect x s -> RSemidirect x s +rvacate a = a {ractee = mempty} + -- | Erase the actee (i.e. replace it with @mempty@). rerase :: Monoid x => RSemidirect x s -> RSemidirect x s rerase a = a {ractee = mempty} +{-# DEPRECATED rerase "Use rvacate instead." #-} + +-- | Replace the actor with @mempty@. +rreset :: Monoid s => RSemidirect x s -> RSemidirect x s +rreset a = a {ractor = mempty} + -- | Forget the actor (i.e. replace it with @mempty@). rforget :: Monoid s => RSemidirect x s -> RSemidirect x s rforget a = a {ractor = mempty} +{-# DEPRECATED rforget "Use rreset instead." #-} + -- | Make a semidirect pair whose actee is @mempty@. +rfromActor :: Monoid x => s -> RSemidirect x s +rfromActor s = RPair mempty s + +-- | Make a semidirect pair whose actee is @mempty@. rembedActor :: Monoid x => s -> RSemidirect x s rembedActor s = RPair mempty s +{-# DEPRECATED rembedActor "Use rfromActor instead." #-} + +-- | Make a semidirect pair whose actor is @mempty@. +rfromActee :: Monoid s => x -> RSemidirect x s +rfromActee x = RPair x mempty + -- | Make a semidirect pair whose actor element is @mempty@ . rembedActee :: Monoid s => x -> RSemidirect x s rembedActee x = RPair x mempty + +{-# DEPRECATED rembedActee "Use rfromActee instead." #-} -- | Convert a pair into a semidirect product element rfromPair :: (x,s) -> RSemidirect x s
src/Data/Semidirect/Strict.hs view
@@ -10,7 +10,7 @@ -- -- Semidirect products for left and right actions. -- --- For a lazy version, see @'Data.Semidirect.Lazy'@. +-- For a lazy version, see "Data.Semidirect.Lazy". -- -- [Usage :] -- @@ -32,19 +32,27 @@ ----------------------------------------------------------------------------- module Data.Semidirect.Strict - ( LSemidirect (..) - , lerase - , lforget - , lembedActee - , lembedActor - , lfromPair - , RSemidirect (..) - , rerase - , rforget - , rembedActee - , rembedActor - , rfromPair - ) where + ( LSemidirect (..) + , lvacate + , lerase + , lreset + , lforget + , lfromActor + , lembedActee + , lfromActee + , lembedActor + , lfromPair + , RSemidirect (..) + , rreset + , rerase + , rvacate + , rforget + , rfromActor + , rembedActee + , rfromActee + , rembedActor + , rfromPair + ) where import Data.Bifunctor import Data.Act @@ -72,22 +80,46 @@ first f a = a {lactee = f (lactee a)} second = fmap --- | Erase the actee (i.e. replace it with @mempty@). +-- | Replace the actee with @mempty@. +lvacate :: Monoid x => LSemidirect x s -> LSemidirect x s +lvacate a = a {lactee = mempty} + +-- | Erase the actee (i.e. replace it with @mempty@). lerase :: Monoid x => LSemidirect x s -> LSemidirect x s lerase a = a {lactee = mempty} --- | Forget the actor (i.e. replace it with @mempty@). +{-# DEPRECATED lerase "Use lvacate instead." #-} + +-- | Replace the actor with @mempty@. +lreset :: Monoid s => LSemidirect x s -> LSemidirect x s +lreset a = a {lactor = mempty} + +-- | Forget the actor (i.e. replace it with @mempty@). lforget :: Monoid s => LSemidirect x s -> LSemidirect x s lforget a =a {lactor = mempty} --- | Make a semidirect pair whose actee is @mempty@. +{-# DEPRECATED lforget "Use lreset instead." #-} + +-- | Make a semidirect pair whose actee is @mempty@. +lfromActor :: Monoid x => s -> LSemidirect x s +lfromActor s = LPair mempty s + +-- | Make a semidirect pair whose actee is @mempty@. lembedActor :: Monoid x => s -> LSemidirect x s lembedActor s = LPair mempty s --- | Make a semidirect pair whose actor is @mempty@. +{-# DEPRECATED lembedActor "Use lfromActor instead." #-} + +-- | Make a semidirect pair whose actor is @mempty@. +lfromActee :: Monoid s => x -> LSemidirect x s +lfromActee x = LPair x mempty + +-- | Make a semidirect pair whose actor is @mempty@. lembedActee :: Monoid s => x -> LSemidirect x s lembedActee x = LPair x mempty +{-# DEPRECATED lembedActee "Use lfromActee instead." #-} + -- | Convert a pair into a semidirect product element. lfromPair :: (x,s) -> LSemidirect x s lfromPair (x,s) = LPair x s @@ -95,7 +127,7 @@ ------------------------------------------------------------------------------ --- | A semidirect product for a right action, where @s@ acts on @x@ +-- | A semidirect product for a right action, where @s@ acts on @x@ -- data RSemidirect x s = RPair { ractee :: !x -- ^ The value being acted on @@ -118,21 +150,46 @@ first f a = a {ractee = f (ractee a)} second = fmap --- | Erase the actee (i.e. replace it with @mempty@). +-- | Replace the actee with @mempty@. +rvacate :: Monoid x => RSemidirect x s -> RSemidirect x s +rvacate a = a {ractee = mempty} + +-- | Erase the actee (i.e. replace it with @mempty@). rerase :: Monoid x => RSemidirect x s -> RSemidirect x s rerase a = a {ractee = mempty} --- | Forget the actor (i.e. replace it with @mempty@). +{-# DEPRECATED rerase "Use rvacate instead." #-} + +-- | Replace the actor with @mempty@. +rreset :: Monoid s => RSemidirect x s -> RSemidirect x s +rreset a = a {ractor = mempty} + +-- | Forget the actor (i.e. replace it with @mempty@). rforget :: Monoid s => RSemidirect x s -> RSemidirect x s rforget a = a {ractor = mempty} --- | Make a semidirect pair whose actee is @mempty@. +{-# DEPRECATED rforget "Use rreset instead." #-} + +-- | Make a semidirect pair whose actee is @mempty@. +rfromActor :: Monoid x => s -> RSemidirect x s +rfromActor s = RPair mempty s + +-- | Make a semidirect pair whose actee is @mempty@. rembedActor :: Monoid x => s -> RSemidirect x s rembedActor s = RPair mempty s --- | Make a semidirect pair whose actor element is @mempty@ . + +{-# DEPRECATED rembedActor "Use rfromActor instead." #-} + +-- | Make a semidirect pair whose actor is @mempty@. +rfromActee :: Monoid s => x -> RSemidirect x s +rfromActee x = RPair x mempty + +-- | Make a semidirect pair whose actor element is @mempty@ . rembedActee :: Monoid s => x -> RSemidirect x s rembedActee x = RPair x mempty + +{-# DEPRECATED rembedActee "Use rfromActee instead." #-} -- | Convert a pair into a semidirect product element rfromPair :: (x,s) -> RSemidirect x s