úÎ#3l0b5      !"#$%&'()*+,-./01234None127;<=?@AHMVX/šactsA left torsor consists of a free and  transitive- left action of a group on an inhabited type.,This precisely means that for any two terms x, y, there exists a unique group element g taking x to y, which is denoted  y <-- x  (or  x --> y N, but the left-pointing arrow is more natural when working with left actions).That is  y <-- x  is the unique element satisfying: ( y <-- x ) " x = y!Note the order of composition of <-- and --> with respect to <>: $( z <-- y ) <> ( y <-- x ) = z <-- x $( y --> z ) <> ( x --> y ) = x --> zacts3Unique group element effecting the given transitionacts3Unique group element effecting the given transitionacts-Newtype for the action on a type through its 5 instance. µdata ABCD = A | B | C | D deriving stock ( Eq, Generic ) deriving anyclass Finitary deriving ( Act ( Sum ( Finite 4 ) ), Torsor ( Sum ( Finite 4 ) ) ) via Finitely ABCDESizes are checked statically. For instance if we had instead written: Z deriving ( Act ( Sum ( Finite 3 ) ), Torsor ( Sum ( Finite 3 ) ) ) via Finitely ABCD(we would have gotten the error messages: j* No instance for (Act (Sum (Finite 3)) (Finite 4)) * No instance for (Torsor (Sum (Finite 3)) (Finite 4))acts@Trivial act of a semigroup on any type (acting by the identity). actsA left act (or left semigroup action) of a semigroup s on x consists of an operation ( ") :: s -> x -> x such that: a " ( b " x ) = ( a <> b ) " xIn case s is also a 6, we additionally require: mempty " x = x The synonym  act = ( ")  is also provided. actsLeft action of a semigroup. actsLeft action of a semigroup. actsTransport an act: img/transport.svg actsZA group's inversion anti-automorphism corresponds to an isomorphism to the opposite group.šThe inversion allows us to obtain a left action from a right action (of the same group); the equivalent operation is not possible for general semigroups.actsGiven g \in G  acting on  A , B  a torsor under  H ,a map  p \colon A \to B ,)this function returns the unique element  h \in H & making the following diagram commute: img/intertwiner.svgacts#Action of a group on endomorphisms.actsJActing through a function arrow: both covariant and contravariant actions.wIf acting by a group, use `anti :: Group g => g -> Dual g` to act by the original group instead of the opposite group.actsFActing through the contravariant function arrow functor: right action.wIf acting by a group, use `anti :: Group g => g -> Dual g` to act by the original group instead of the opposite group.actsActing through a functor using fmap.acts-Natural left action of a semigroup on itself.actsAct on a type through its 5 instance.acts8Any group is a torsor under its own natural left action.actsTorsor for a type using its 5 instance.   77 5 57      !"#$%&'()*+,-./0123456789:;acts-0.3.1.0-inplaceData.ActTorsor<---->Finitely getFinitelyTrivial getTrivialAct•acttransportActionanti intertwiner $fActgEndo $fAct(,)-> $fActDualOp$fActsAp$fAct(,,,,)(,,,,)$fAct(,,,)(,,,) $fAct(,,)(,,) $fAct(,)(,)$fAct()x $fActProducta $fActSuma$fActss $fActsTrivial$fActsFinitely $fTorsorSuma $fTorsorgg$fTorsorgFinitely $fShowTrivial $fReadTrivial $fDataTrivial$fGenericTrivial$fGeneric1Trivial $fEqTrivial $fOrdTrivial $fEnumTrivial$fBoundedTrivial$fNFDataTrivial$fShowFinitely$fReadFinitely$fDataFinitely$fGenericFinitely$fGeneric1Finitely $fEqFinitely $fOrdFinitely$fNFDataFinitely $fActConst $fActBool $fActBool0finitary-1.2.0.0-inplace Data.FinitaryFinitarybaseGHC.BaseMonoid