ekmett / ekmett/groupoids

The library should model that a Group induces a Groupoid

Open
#2 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
10
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Like a Semigroup induces a Semigroupoid, a Group induces a Groupoid.
The first relation is captured by the instance: `Semigroup m => Semigroupoid (Semi m)` [(link to Hackage docs)](http://hackage.haskell.org/packages/archive/semigroupoids/3.0.2/doc/html/Data-Semigroupoid.html#t:Semi), but there is no such relationship defined. It would be something like:

``` haskell
instance Group m => Groupoid (Semi m) where
inv (Semi n) = Semi (groupInv m)
```

I'm also missing a definition of Group among your packages.

I'm not asking this just so, but because I've run into an application where some concepts are naturally modeled using groupoids and groups (even though I'd need a slightly different definition).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the existing Semigroup-to-Semigroupoid instance in the semigroupoids package and the Groupoid and Semi definitions in this repository. Compare the proposed inv implementation with the requested Group relationship, then determine how the missing Group definition and the noted alternative definition affect the design. Done means the intended Group-to-Groupoid relationship is specified and covered consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.