Groupoid

trait Groupoid[A] extends Semigroupoid[A]

A groupoid is a semigroupoid where inverse are defined for all elements, and thus left and right identity elements such that:

 (i) (leftId(g) |+|? g).get === g
 (ii) (g |+|? rightId(g)).get === g
(iii) `a.inverse |+|? a` and `a |+|? a.inverse` are always defined
 (iv) if `a |+|? b`, then `((a |+|? b).get |+|? b.inverse).get === a` and
     `((a.inverse |+|? a).get |+|? b) === b`
Companion
object
trait Semigroupoid[A]
class Any
class IterableGroupoid[A, SA]

Value members

Abstract methods

def inverse(a: A): A

Returns the inverse element of a such that (a |+|? a.inverse).get is an identity.

Returns the inverse element of a such that (a |+|? a.inverse).get is an identity.

Concrete methods

def isId(a: A)(implicit ev: Eq[A]): Boolean

Tests if a is an identity.

Tests if a is an identity.

def leftId(a: A): A

Returns the left identity of a.

Returns the left identity of a.

def opInverseIsDefined(x: A, y: A): Boolean
def partialOpInverse(x: A, y: A): Opt[A]
def rightId(a: A): A

Returns the right identity of a.

Returns the right identity of a.

Inherited methods

def opIsDefined(x: A, y: A): Boolean
Inherited from
Semigroupoid
def partialOp(x: A, y: A): Opt[A]
Inherited from
Semigroupoid