| Copyright | (c) Alice Rixte 2025 |
|---|---|
| License | BSD 3 |
| Maintainer | alice.rixte@u-bordeaux.fr |
| Stability | unstable |
| Portability | non-portable (GHC extensions) |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Semidirect.Strict
Description
Semidirect products for left and right actions.
For a lazy version, see .Lazy
- Usage :
>>>import Data.Semigroup>>>LSemidirect (Sum 1) (Product 2) <> LSemidirect (Sum (3 :: Int)) (Product (4 :: Int))LSemidirect {lactee = Sum {getSum = 7}, lactor = Product {getProduct = 8}}
- Property checking :
There is a instance for Semigroup (resp. LSemidirect)
only if there is a RSemidirect (resp. LActSgMorph) instance. For
example, RActSgMorph acting on itself is not a semigroup action by morphism
and therefore the semidirect product is not associative :Sum Int
>>>LSemidirect (Sum 1) (Sum 2) <> LSemidirect (Sum (3 :: Int)) (Sum (4 :: Int))No instance for `LActDistrib (Sum Int) (Sum Int)' arising from a use of `<>'
Synopsis
- data LSemidirect x s = LSemidirect {}
- lerase :: Monoid x => LSemidirect x s -> LSemidirect x s
- lforget :: Monoid s => LSemidirect x s -> LSemidirect x s
- lembedActee :: Monoid s => x -> LSemidirect x s
- lembedActor :: Monoid x => s -> LSemidirect x s
- lfromPair :: (x, s) -> LSemidirect x s
- data RSemidirect x s = RSemidirect {}
- rerase :: Monoid x => RSemidirect x s -> RSemidirect x s
- rforget :: Monoid s => RSemidirect x s -> RSemidirect x s
- rembedActee :: Monoid s => x -> RSemidirect x s
- rembedActor :: Monoid x => s -> RSemidirect x s
- rfromPair :: (x, s) -> RSemidirect x s
Documentation
data LSemidirect x s Source #
A semi-direct product for a left action, where s acts on x
Constructors
| LSemidirect | |
Instances
lerase :: Monoid x => LSemidirect x s -> LSemidirect x s Source #
Erase the actee (i.e. replace it with mempty).
lforget :: Monoid s => LSemidirect x s -> LSemidirect x s Source #
Forget the actor (i.e. replace it with mempty).
lembedActee :: Monoid s => x -> LSemidirect x s Source #
Make a semidirect pair whose actor is mempty.
lembedActor :: Monoid x => s -> LSemidirect x s Source #
Make a semidirect pair whose actee is mempty.
lfromPair :: (x, s) -> LSemidirect x s Source #
Convert a pair into a semidirect product element.
data RSemidirect x s Source #
A semidirect product for a right action, where s acts on x
Constructors
| RSemidirect | |
Instances
rerase :: Monoid x => RSemidirect x s -> RSemidirect x s Source #
Erase the actee (i.e. replace it with mempty).
rforget :: Monoid s => RSemidirect x s -> RSemidirect x s Source #
Forget the actor (i.e. replace it with mempty).
rembedActee :: Monoid s => x -> RSemidirect x s Source #
Make a semidirect pair whose actor element is mempty .
rembedActor :: Monoid x => s -> RSemidirect x s Source #
Make a semidirect pair whose actee is mempty.
rfromPair :: (x, s) -> RSemidirect x s Source #
Convert a pair into a semidirect product element