product-isomorphic-0.0.1.0: Weaken applicative functor on products

Copyright2017 Kei Hibino
LicenseBSD3
Maintainerex8k.hibino@gmail.com
Stabilityexperimental
Portabilityunknown
Safe HaskellSafe
LanguageHaskell2010

Data.Functor.ProductIsomorphic.Class

Description

This module defines functor interfaces which morphed functions are restricted to products.

Synopsis

Documentation

class ProductIsoFunctor f where Source #

Restricted functor on products.

Minimal complete definition

(|$|)

Methods

(|$|) :: ProductConstructor (a -> b) => (a -> b) -> f a -> f b infixl 4 Source #

Instances

Functor f => ProductIsoFunctor (WrappedFunctor f) Source # 

Methods

(|$|) :: ProductConstructor (a -> b) => (a -> b) -> WrappedFunctor f a -> WrappedFunctor f b Source #

ProductIsoFunctor (WrappedAlter f a) Source # 

Methods

(|$|) :: ProductConstructor (a -> b) => (a -> b) -> WrappedAlter f a a -> WrappedAlter f a b Source #

class ProductIsoFunctor f => ProductIsoApplicative f where Source #

Restricted applicative functor on products.

Minimal complete definition

pureP, (|*|)

Methods

pureP :: ProductConstructor a => a -> f a Source #

(|*|) :: f (a -> b) -> f a -> f b infixl 4 Source #

class ProductIsoApplicative f => ProductIsoAlternative f where Source #

Restricted alternative on products.

Minimal complete definition

emptyP, (|||)

Methods

emptyP :: f a Source #

(|||) :: f a -> f a -> f a infixl 3 Source #