constrained-categories-0.4.0.0: Constrained clones of the category-theory type classes, using ConstraintKinds.

Copyright(c) 2018 Justus Sagemüller
LicenseGPL v3 (see COPYING)
Maintainer(@) sagemueller $ geo.uni-koeln.de
Safe HaskellTrustworthy
LanguageHaskell2010

Control.Category.Discrete

Description

 
Synopsis

Documentation

data Discrete a b where Source #

The discrete category is the category with the minimum possible amount of arrows: for any given type, there is Category, and that's all. You can use this to provide a proof that some endomorphism (of not closer specified category) is the identity.

Constructors

Refl :: Discrete a a 
Instances
Category (Discrete :: k -> k -> Type) Source # 
Instance details

Defined in Control.Category.Discrete

Methods

id :: Discrete a a #

(.) :: Discrete b c -> Discrete a b -> Discrete a c #

Functor [] (Discrete :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Functor.Constrained

Methods

fmap :: (Object Discrete a, Object Discrete [a], Object Discrete b, Object Discrete [b]) => Discrete a b -> Discrete [a] [b] Source #

Functor Maybe (Discrete :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Functor.Constrained

Functor IO (Discrete :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Functor.Constrained

Methods

fmap :: (Object Discrete a, Object Discrete (IO a), Object Discrete b, Object Discrete (IO b)) => Discrete a b -> Discrete (IO a) (IO b) Source #

Functor Complex (Discrete :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Functor.Constrained

HasAgent (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Associated Types

type AgentVal Discrete a v :: Type Source #

Category (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Category.Constrained

Associated Types

type Object Discrete o :: Constraint Source #

EnhancedCat (Coercion :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Arrow.Constrained

Functor (Either a) (Discrete :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Functor.Constrained

Methods

fmap :: (Object Discrete a0, Object Discrete (Either a a0), Object Discrete b, Object Discrete (Either a b)) => Discrete a0 b -> Discrete (Either a a0) (Either a b) Source #

Functor ((,) a) (Discrete :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Functor.Constrained

Methods

fmap :: (Object Discrete a0, Object Discrete (a, a0), Object Discrete b, Object Discrete (a, b)) => Discrete a0 b -> Discrete (a, a0) (a, b) Source #

EnhancedCat (Discrete :: Type -> Type -> Type) f => EnhancedCat (Discrete :: Type -> Type -> Type) (o f) Source # 
Instance details

Defined in Control.Arrow.Constrained

Methods

arr :: (Object (o f) b, Object (o f) c, Object Discrete b, Object Discrete c) => (o f) b c -> Discrete b c Source #

EnhancedCat ((->) :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Arrow.Constrained

Methods

arr :: (Object Discrete b, Object Discrete c, Object (->) b, Object (->) c) => Discrete b c -> b -> c Source #

Category f => EnhancedCat (o f) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Arrow.Constrained

Methods

arr :: (Object Discrete b, Object Discrete c, Object (o f) b, Object (o f) c) => Discrete b c -> (o f) b c Source #

Functor ((->) a :: Type -> Type) (Discrete :: Type -> Type -> Type) (Discrete :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Functor.Constrained

Methods

fmap :: (Object Discrete a0, Object Discrete (a -> a0), Object Discrete b, Object Discrete (a -> b)) => Discrete a0 b -> Discrete (a -> a0) (a -> b) Source #

type Object (Discrete :: Type -> Type -> Type) o Source # 
Instance details

Defined in Control.Category.Constrained

type Object (Discrete :: Type -> Type -> Type) o = ()
type AgentVal (Discrete :: Type -> Type -> Type) a v Source # 
Instance details

Defined in Control.Category.Constrained

type AgentVal (Discrete :: Type -> Type -> Type) a v = GenericAgent (Discrete :: Type -> Type -> Type) a v