uniform-algebras: Pointless functions and a simplistic zero and monoid

[ algebra-uniform, gpl, library ] [ Propose Tags ]

Simple algebras avoiding too much mathematical underpinning

  • zero with test isZero, notZero (not a semigroupoid) exports also Maybe and Either

  • pointless operations, e.g. tuples up to 4 or 5, imported from Algebra of Programming (AOP) prelude

  • ListForms (a monoid)

Please see the README on GitHub at https://github.com/andrewufrank/uniform-algebras/readme

[Skip to Readme]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1.0, 0.1.2, 0.1.3,
Change log ChangeLog.md
Dependencies base (>4.7 && <5), extra, numeric-prelude, test-invariant [details]
License GPL-2.0-only
Copyright 2021 Andrew U. Frank
Author Andrew Frank
Maintainer Andrew U. Frank <uniform@gerastree.at>
Category Algebra Uniform
Home page https://github.com/git@github.com:andrewufrank/uniform-algebras.git#readme
Bug tracker https://github.com/andrewufrank/uniform-algebras/issues
Source repo head: git clone https://github.com/git@github.com:andrewufrank/uniform-algebras.git
Uploaded by andrewufrank at 2023-03-06T14:06:44Z
Distributions NixOS:
Reverse Dependencies 4 direct, 11 indirect [details]
Downloads 312 total (26 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-03-06 [all 1 reports]

Readme for uniform-algebras-

[back to package description]

The uniform-algebras package

contains a few simplistic algebras, e.g.

  • a zero which is not even a semigroup to be widely usable as a generic "nothing"; it is attempted to allow automatic instantiation (under construction),
  • a ListForm class, which is a monoid and has generic operations to make and append to a list.
  • a collection of operations for "pointless" code writing, especially tuples with 4 or 5 elements.

This is a starter package, with no dependencies except for base, other uniform packages will build on it.

Pointers to somewhat related things:

Intention of uniform packages

The uniform packages are yet another attempt to select a useful subset from the overwhelming variety of the Haskell biotop. It was started in the 2010, grew over the years but was never packaged and put into Hackage; it is comparable to other similar attempts from which it has learned and occasionally copied code.

The uniform approach is different from some others by:

  • compatible with 'standard' Haskell, i.e. Haskell 2010 plus extensions as indicated in the modules,
  • use the regular Haskell prelude,
  • avoid name clashes as far as possible,
  • combine logically connected operations in one place and in a form allowing coordinated use.

Issues with this approach: it is limited by the understanding of Haskell of the author and formed by his experience. It shows a focus on understanding semantics (and formal ontology) linked to algebra applied to practical problems (Geographic Information Systems). It seems that efforts to construct coherent subsets of Haskell are limited by the complexity of the task -- the more comprehensive an environment should be the more complex is it to learn and use. The approach here is what emerged after some 25 years of using Haskell to write application oriented code, mostly to demonstrate theories in spatial information theory.