constrained-categories-0.4.1.0: Constrained clones of the category-theory type classes, using ConstraintKinds.
Copyright(c) 2018 Justus Sagemüller
LicenseGPL v3 (see COPYING)
Maintainer(@) jsag $ hvl.no
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 id, 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

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

Defined in Control.Category.Discrete

Methods

id :: forall (a :: k0). Discrete a a #

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

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

Defined in Control.Category.Constrained

Associated Types

type Object Discrete o Source #

Methods

id :: forall (a :: κ0). Object Discrete a => Discrete a a Source #

(.) :: forall (a :: κ0) (b :: κ0) (c :: κ0). (Object Discrete a, Object Discrete b, Object Discrete c) => Discrete b c -> Discrete a b -> Discrete a c Source #

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 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) (o :: κ) Source # 
Instance details

Defined in Control.Category.Constrained

type Object (Discrete :: κ -> κ -> 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