acts: Semigroup actions and torsors.
Acts and torsors model types which can be transformed under the action of another type.
A prototypical example is affine space, which has an action by translation: given any two points in affine space, there is a unique translation that brings one to the other.
This can be useful in a library keeping track of time: on top of needing to keep track of units, one also needs to distinguish between absolute time (time stamps) and relative time (time differences). The operations one expects in this situation are:
Addition and subtraction of time differences: time differences form a (commutative) group.
Translation of an absolute time by a time difference: there is an action of relative time on absolute time.
Given two absolute times, one can obtain the time difference between them: absolute time is a torsor under relative time.
This library provides a convenient framework which helps to avoid mixing up these two different notions.
A fleshed out example is available at Acts.Examples.MusicalIntervals, which showcases the use of actions and torsors in the context of musical intervals and harmony. It also demonstrates common usage patterns of this library, such as how to automatically derive instances.
See also the project readme, which includes a simple example with 2D affine space.
library acts
library acts:acts-examples
Flags
Manual Flags
Name | Description | Default |
---|---|---|
finitary | Use the Disable to remove dependencies on `finite-typelits` and | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- acts-0.3.1.1.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.1.1 |
---|---|
Change log | changelog.md |
Dependencies | acts, base (>=4.12 && <4.21), deepseq (>=1.4.4.0 && <1.6), finitary (>=1.2.0.0 && <2.2), finite-typelits (>=0.1.4.2 && <0.2), groups (>=0.4.0.0 && <0.6) [details] |
License | BSD-3-Clause |
Author | Sam Derbyshire |
Maintainer | Sam Derbyshire |
Revised | Revision 2 made by sheaf at 2024-02-17T11:45:11Z |
Category | Algebra, Math |
Home page | https://github.com/sheaf/acts |
Bug tracker | https://github.com/sheaf/acts/issues |
Source repo | head: git clone git://github.com/sheaf/acts.git |
Uploaded | by sheaf at 2022-12-03T15:12:13Z |
Distributions | |
Downloads | 1386 total (6 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs not available [build log] All reported builds failed as of 2022-12-03 [all 2 reports] |