semigroupoids-6.0.1: Semigroupoids: Category sans id

Copyright | (C) 2011-2015 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | provisional
Portability | polykinds
Safe Haskell | Trustworthy
Language | Haskell2010

Data.Groupoid

Description

Synopsis

- class Semigroupoid k1 => Groupoid (k1 :: k -> k -> Type) where
  - inv :: forall (a :: k) (b :: k). k1 a b -> k1 b a

# Documentation

class Semigroupoid k1 => Groupoid (k1 :: k -> k -> Type) where Source #

semigroupoid with inverses. This technically should be a category with inverses, except we need to use Ob to define the valid objects for the category

Methods

inv :: forall (a :: k) (b :: k). k1 a b -> k1 b a Source #

#### Instances

Instances details

Groupoid (Coercion :: k -> k -> Type) Source # |
Instance details Defined in Data.Groupoid Methods inv :: forall (a :: k) (b :: k). Coercion a b -> Coercion b a Source #
Groupoid ((:~:) :: k -> k -> Type) Source # |
Instance details Defined in Data.Groupoid Methods inv :: forall (a :: k) (b :: k). (a :~: b) -> b :~: a Source #
Groupoid ((:~~:) :: k -> k -> Type) Source # |
Instance details Defined in Data.Groupoid Methods inv :: forall (a :: k) (b :: k). (a :~~: b) -> b :~~: a Source #
Semigroupoid k2 => Groupoid (Iso k2 :: k1 -> k1 -> Type) Source # |
Instance details Defined in Data.Isomorphism Methods inv :: forall (a :: k1) (b :: k1). Iso k2 a b -> Iso k2 b a Source #
Groupoid k2 => Groupoid (Dual k2 :: k1 -> k1 -> Type) Source # |
Instance details Defined in Data.Groupoid Methods inv :: forall (a :: k1) (b :: k1). Dual k2 a b -> Dual k2 b a Source #