compdata-param-0.9.2: Parametric Compositional Data Types

Copyright(c) 2011 Patrick Bahr Tom Hvitved
LicenseBSD3
MaintainerTom Hvitved <hvitved@diku.dk>
Stabilityexperimental
Portabilitynon-portable (GHC Extensions)
Safe HaskellSafe
LanguageHaskell98

Data.Comp.Param.Difunctor

Contents

Description

This module defines difunctors (Meijer, Hutton, FPCA '95), i.e. binary type constructors that are contravariant in the first argument and covariant in the second argument.

Synopsis

Documentation

difmap :: Difunctor f => (a -> b) -> f c a -> f c b Source #

class Difunctor f where Source #

This class represents difunctors, i.e. binary type constructors that are contravariant in the first argument and covariant in the second argument.

Minimal complete definition

dimap

Methods

dimap :: (a -> b) -> (c -> d) -> f b c -> f a d Source #

Instances
Difunctor ((->) :: * -> * -> *) Source #

The canonical example of a difunctor.

Instance details

Defined in Data.Comp.Param.Difunctor

Methods

dimap :: (a -> b) -> (c -> d) -> (b -> c) -> a -> d Source #

Difunctor f => Difunctor (f :&: p) Source # 
Instance details

Defined in Data.Comp.Param.Ops

Methods

dimap :: (a -> b) -> (c -> d) -> (f :&: p) b c -> (f :&: p) a d Source #

(Difunctor f, Difunctor g) => Difunctor (f :+: g) Source # 
Instance details

Defined in Data.Comp.Param.Ops

Methods

dimap :: (a -> b) -> (c -> d) -> (f :+: g) b c -> (f :+: g) a d Source #

Orphan instances

Difunctor f => Functor (f a) Source # 
Instance details

Methods

fmap :: (a0 -> b) -> f a a0 -> f a b #

(<$) :: a0 -> f a b -> f a a0 #