contravariant-1.5.5: Contravariant functors
Copyright (C) 2007-2015 Edward Kmett
License BSD-style (see the file LICENSE)
Maintainer Edward Kmett <ekmett@gmail.com>
Stability experimental
Portability ConstraintKinds
Safe Haskell Safe
Language Haskell2010

Data.Functor.Contravariant.Generic

Description

Synopsis

Documentation

class ( Generic a, GDeciding q (Rep' a)) => Deciding q a where Source #

This provides machinery for deconstructing an arbitrary Generic instance using a Decidable Contravariant functor.

Examples:

gcompare :: Deciding Ord a => a -> a -> Ordering
gcompare = getComparison $ deciding (Proxy :: Proxy Ord) (Comparison compare)
geq :: Deciding Eq a => a -> a -> Bool
geq = getEquivalence $ deciding (Proxy :: Proxy Eq) (Equivalence (==))

Methods

deciding :: Decidable f => p q -> ( forall b. q b => f b) -> f a Source #

Instances

Instances details
( Generic a, GG ( Rep a), GDeciding q (Rep' a)) => Deciding q a Source #
Instance details

Defined in Data.Functor.Contravariant.Generic

Methods

deciding :: Decidable f => p q -> ( forall b. q b => f b) -> f a Source #

class ( Generic1 t, GDeciding1 q (Rep1' t)) => Deciding1 q t where Source #

This provides machinery for deconstructing an arbitrary Generic1 instance using a Decidable Contravariant functor.

Examples:

gcompare1 :: Deciding1 Ord f => (a -> a -> Ordering) -> f a -> f a -> Ordering
gcompare1 f = getComparison $ deciding1 (Proxy :: Proxy Ord) (Comparison compare) (Comparison f)
geq1 :: Deciding1 Eq f => (a -> a -> Bool) -> f a -> f a -> Bool
geq1 f = getEquivalence $ deciding1 (Proxy :: Proxy Eq) (Equivalence (==)) (Equivalence f)

Methods

deciding1 :: Decidable f => p q -> ( forall b. q b => f b) -> f a -> f (t a) Source #

Instances

Instances details
( Generic1 t, GDeciding1 q (Rep1' t), GG ( Rep1 t)) => Deciding1 q t Source #
Instance details

Defined in Data.Functor.Contravariant.Generic

Methods

deciding1 :: Decidable f => p q -> ( forall b. q b => f b) -> f a -> f (t a) Source #