partial-semigroup: A partial binary associative operator

[ algebra, apache, library ] [ Propose Tags ]

A partial semigroup is like a semigroup, but the operator is partial. We represent this in Haskell as a total function (<>?) :: a -> a -> Maybe a.

The partial-semigroup-hedgehog companion package provides support for checking the partial semigroup associativity axiom using the hedgehog package.

Versions [faq],,,,,,,,,,,,
Change log
Dependencies base (>=4.8 && <4.13), semigroups (>=0.8.4 && <1) [details]
License Apache-2.0
Author Chris Martin <>
Maintainer Chris Martin <>
Category Algebra
Home page
Bug tracker
Source repo head: git clone
Uploaded by chris_martin at Wed May 15 03:31:23 UTC 2019
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 3481 total (201 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-05-15 [all 1 reports]


[Index] [Quick Jump]



Require a version of base that provides the Data.Semigroup and Data.List.NonEmpty modules.

Disabling this flag adds a dependency on the semigroups package.


Use the hedgehog package for tests.

Disabling this flag disables all of the tests that use hedgehog.


Use the doctest package to test the code examples in Haddock comments.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees