A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://hackage.haskell.org/package/base/docs/Data-Functor-Classes.html below:

Data.Functor.Classes

Description

Liftings of the Prelude classes Eq, Ord, Read and Show to unary and binary type constructors.

These classes are needed to express the constraints on arguments of transformers in portable Haskell. Thus for a new transformer T, one might write instances like

instance (Eq1 f) => Eq1 (T f) where ...
instance (Ord1 f) => Ord1 (T f) where ...
instance (Read1 f) => Read1 (T f) where ...
instance (Show1 f) => Show1 (T f) where ...

If these instances can be defined, defining instances of the base classes is mechanical:

instance (Eq1 f, Eq a) => Eq (T f a) where (==) = eq1
instance (Ord1 f, Ord a) => Ord (T f a) where compare = compare1
instance (Read1 f, Read a) => Read (T f a) where
  readPrec     = readPrec1
  readListPrec = readListPrecDefault
instance (Show1 f, Show a) => Show (T f a) where showsPrec = showsPrec1

Since: base-4.9.0.0

Synopsis Liftings of Prelude classes For unary constructors

class (forall a. Eq a => Eq (f a)) => Eq1 (f :: Type -> Type) where Source #

Lifting of the Eq class to unary type constructors.

Any instance should be subject to the following law that canonicity is preserved:

liftEq (==) = (==)

This class therefore represents the generalization of Eq by decomposing its main method into a canonical lifting on a canonical inner method, so that the lifting can be reused for other arguments than the canonical one.

Since: base-4.9.0.0

Minimal complete definition

Nothing

Methods

liftEq :: (a -> b -> Bool) -> f a -> f b -> Bool Source #

Lift an equality test through the type constructor.

The function will usually be applied to an equality function, but the more general type ensures that the implementation uses it to compare elements of the first container with elements of the second.

Since: base-4.9.0.0

Instances Instances details Eq1 Complex Source #
>>> eq1 (1 :+ 2) (1 :+ 2)
True
>>> eq1 (1 :+ 2) (1 :+ 3)
False

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 NonEmpty Source #

Since: base-4.10.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 Identity Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 Down Source #

Since: base-4.12.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 Par1 Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 Maybe Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 Solo Source #

Since: base-4.15

Instance details

Defined in Data.Functor.Classes

Eq1 [] Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq a => Eq1 (Either a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (Proxy :: Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (U1 :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (UAddr :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (UChar :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (UDouble :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (UFloat :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (UInt :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (UWord :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 (V1 :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq a => Eq1 ((,) a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq a => Eq1 (Const a :: Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

(Generic1 f, Eq1 (Rep1 f)) => Eq1 (Generically1 f) Source #

Since: base-4.17.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 f => Eq1 (Rec1 f) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Eq a, Eq b) => Eq1 ((,,) a b) Source #

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Eq1 f, Eq1 g) => Eq1 (Product f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Product

(Eq1 f, Eq1 g) => Eq1 (Sum f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Sum

(Eq1 f, Eq1 g) => Eq1 (f :*: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Eq1 f, Eq1 g) => Eq1 (f :+: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq c => Eq1 (K1 i c :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Eq a, Eq b, Eq c) => Eq1 ((,,,) a b c) Source #

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Eq1 f, Eq1 g) => Eq1 (Compose f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Compose

(Eq1 f, Eq1 g) => Eq1 (f :.: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Eq1 f => Eq1 (M1 i c f) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

eq1 :: (Eq1 f, Eq a) => f a -> f a -> Bool Source #

Lift the standard (==) function through the type constructor.

Since: base-4.9.0.0

class (Eq1 f, forall a. Ord a => Ord (f a)) => Ord1 (f :: Type -> Type) where Source #

Lifting of the Ord class to unary type constructors.

Any instance should be subject to the following law that canonicity is preserved:

liftCompare compare = compare

This class therefore represents the generalization of Ord by decomposing its main method into a canonical lifting on a canonical inner method, so that the lifting can be reused for other arguments than the canonical one.

Since: base-4.9.0.0

Minimal complete definition

Nothing

Methods

liftCompare :: (a -> b -> Ordering) -> f a -> f b -> Ordering Source #

Lift a compare function through the type constructor.

The function will usually be applied to a comparison function, but the more general type ensures that the implementation uses it to compare elements of the first container with elements of the second.

Since: base-4.9.0.0

Instances Instances details Ord1 NonEmpty Source #

Since: base-4.10.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 Identity Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 Down Source #

Since: base-4.12.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 Par1 Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 Maybe Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 Solo Source #

Since: base-4.15

Instance details

Defined in Data.Functor.Classes

Ord1 [] Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord a => Ord1 (Either a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (Proxy :: Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (U1 :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (UAddr :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (UChar :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (UDouble :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (UFloat :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (UInt :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (UWord :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 (V1 :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord a => Ord1 ((,) a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord a => Ord1 (Const a :: Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

(Generic1 f, Ord1 (Rep1 f)) => Ord1 (Generically1 f) Source #

Since: base-4.17.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 f => Ord1 (Rec1 f) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Ord a, Ord b) => Ord1 ((,,) a b) Source #

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Ord1 f, Ord1 g) => Ord1 (Product f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Product

(Ord1 f, Ord1 g) => Ord1 (Sum f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Sum

(Ord1 f, Ord1 g) => Ord1 (f :*: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Ord1 f, Ord1 g) => Ord1 (f :+: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord c => Ord1 (K1 i c :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Ord a, Ord b, Ord c) => Ord1 ((,,,) a b c) Source #

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Ord1 f, Ord1 g) => Ord1 (Compose f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Compose

(Ord1 f, Ord1 g) => Ord1 (f :.: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Ord1 f => Ord1 (M1 i c f) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

class (forall a. Read a => Read (f a)) => Read1 (f :: Type -> Type) where Source #

Lifting of the Read class to unary type constructors.

Any instance should be subject to the following laws that canonicity is preserved:

liftReadsPrec readsPrec readList = readsPrec

liftReadList readsPrec readList = readList

liftReadPrec readPrec readListPrec = readPrec

liftReadListPrec readPrec readListPrec = readListPrec

This class therefore represents the generalization of Read by decomposing it's methods into a canonical lifting on a canonical inner method, so that the lifting can be reused for other arguments than the canonical one.

Both liftReadsPrec and liftReadPrec exist to match the interface provided in the Read type class, but it is recommended to implement Read1 instances using liftReadPrec as opposed to liftReadsPrec, since the former is more efficient than the latter. For example:

instance Read1 T where
  liftReadPrec     = ...
  liftReadListPrec = liftReadListPrecDefault

For more information, refer to the documentation for the Read class.

Since: base-4.9.0.0

Instances Instances details Read1 Complex Source #
>>> readPrec_to_S readPrec1 0 "(2 % 3) :+ (3 % 4)" :: [(Complex Rational, String)]
[(2 % 3 :+ 3 % 4,"")]

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

Read1 NonEmpty Source #

Since: base-4.10.0.0

Instance details

Defined in Data.Functor.Classes

Read1 Identity Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read1 Down Source #

Since: base-4.12.0.0

Instance details

Defined in Data.Functor.Classes

Read1 Par1 Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Read1 Maybe Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read1 Solo Source #

Since: base-4.15

Instance details

Defined in Data.Functor.Classes

Read1 [] Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read a => Read1 (Either a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read1 (Proxy :: Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read1 (U1 :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Read1 (V1 :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Read a => Read1 ((,) a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read a => Read1 (Const a :: Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read1 f => Read1 (Rec1 f) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Read a, Read b) => Read1 ((,,) a b) Source #

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Read1 f, Read1 g) => Read1 (Product f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Product

(Read1 f, Read1 g) => Read1 (Sum f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Sum

(Read1 f, Read1 g) => Read1 (f :*: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Read1 f, Read1 g) => Read1 (f :+: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Read c => Read1 (K1 i c :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Read a, Read b, Read c) => Read1 ((,,,) a b c) Source #

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (a, b, c, a0) Source #

liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [(a, b, c, a0)] Source #

liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (a, b, c, a0) Source #

liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [(a, b, c, a0)] Source #

(Read1 f, Read1 g) => Read1 (Compose f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Compose

(Read1 f, Read1 g) => Read1 (f :.: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Read1 f => Read1 (M1 i c f) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

class (forall a. Show a => Show (f a)) => Show1 (f :: Type -> Type) where Source #

Lifting of the Show class to unary type constructors.

Any instance should be subject to the following laws that canonicity is preserved:

liftShowsPrec showsPrec showList = showsPrec

liftShowList showsPrec showList = showList

This class therefore represents the generalization of Show by decomposing it's methods into a canonical lifting on a canonical inner method, so that the lifting can be reused for other arguments than the canonical one.

Since: base-4.9.0.0

Minimal complete definition

Nothing

Instances Instances details Show1 Complex Source #
>>> showsPrec1 0 (2 :+ 3) ""
"2 :+ 3"

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

Show1 NonEmpty Source #

Since: base-4.10.0.0

Instance details

Defined in Data.Functor.Classes

Show1 Identity Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show1 Down Source #

Since: base-4.12.0.0

Instance details

Defined in Data.Functor.Classes

Show1 Par1 Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 Maybe Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show1 Solo Source #

Since: base-4.15

Instance details

Defined in Data.Functor.Classes

Show1 [] Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show a => Show1 (Either a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (Proxy :: Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (U1 :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (UAddr :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (UChar :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (UDouble :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (UFloat :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (UInt :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (UWord :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 (V1 :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show a => Show1 ((,) a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show a => Show1 (Const a :: Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show1 f => Show1 (Rec1 f) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Show a, Show b) => Show1 ((,,) a b) Source #

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Show1 f, Show1 g) => Show1 (Product f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Product

(Show1 f, Show1 g) => Show1 (Sum f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Sum

(Show1 f, Show1 g) => Show1 (f :*: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Show1 f, Show1 g) => Show1 (f :+: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show c => Show1 (K1 i c :: Type -> Type) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

(Show a, Show b, Show c) => Show1 ((,,,) a b c) Source #

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Show1 f, Show1 g) => Show1 (Compose f g) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Compose

(Show1 f, Show1 g) => Show1 (f :.: g) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

Show1 f => Show1 (M1 i c f) Source #

Since: base-4.21.0.0

Instance details

Defined in Data.Functor.Classes

For binary constructors

class (forall a. Eq a => Eq1 (f a)) => Eq2 (f :: Type -> Type -> Type) where Source #

Lifting of the Eq class to binary type constructors.

Since: base-4.9.0.0

Methods

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

Lift equality tests through the type constructor.

The function will usually be applied to equality functions, but the more general type ensures that the implementation uses them to compare elements of the first container with elements of the second.

Since: base-4.9.0.0

Instances Instances details Eq2 Either Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq2 (,) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq2 (Const :: Type -> Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Eq a => Eq2 ((,,) a) Source #
>>> eq2 ('x', True, "str") ('x', True, "str")
True

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Eq a, Eq b) => Eq2 ((,,,) a b) Source #
>>> eq2 ('x', True, "str", 2) ('x', True, "str", 2 :: Int)
True

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

eq2 :: (Eq2 f, Eq a, Eq b) => f a b -> f a b -> Bool Source #

Lift the standard (==) function through the type constructor.

Since: base-4.9.0.0

class (Eq2 f, forall a. Ord a => Ord1 (f a)) => Ord2 (f :: Type -> Type -> Type) where Source #

Lifting of the Ord class to binary type constructors.

Since: base-4.9.0.0

Methods

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

Lift compare functions through the type constructor.

The function will usually be applied to comparison functions, but the more general type ensures that the implementation uses them to compare elements of the first container with elements of the second.

Since: base-4.9.0.0

Instances Instances details Ord2 Either Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord2 (,) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord2 (Const :: Type -> Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Ord a => Ord2 ((,,) a) Source #
>>> compare2 ('x', True, "aaa") ('x', True, "zzz")
LT

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Ord a, Ord b) => Ord2 ((,,,) a b) Source #
>>> compare2 ('x', True, "str", 2) ('x', True, "str", 3 :: Int)
LT

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

class (forall a. Read a => Read1 (f a)) => Read2 (f :: Type -> Type -> Type) where Source #

Instances Instances details Read2 Either Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read2 (,) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read2 (Const :: Type -> Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Read a => Read2 ((,,) a) Source #
>>> readPrec_to_S readPrec2 0 "('x', True, 2)" :: [((Char, Bool, Int), String)]
[(('x',True,2),"")]

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Read a, Read b) => Read2 ((,,,) a b) Source #
>>> readPrec_to_S readPrec2 0 "('x', True, 2, 4.5)" :: [((Char, Bool, Int, Double), String)]
[(('x',True,2,4.5),"")]

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

Methods

liftReadsPrec2 :: (Int -> ReadS a0) -> ReadS [a0] -> (Int -> ReadS b0) -> ReadS [b0] -> Int -> ReadS (a, b, a0, b0) Source #

liftReadList2 :: (Int -> ReadS a0) -> ReadS [a0] -> (Int -> ReadS b0) -> ReadS [b0] -> ReadS [(a, b, a0, b0)] Source #

liftReadPrec2 :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec b0 -> ReadPrec [b0] -> ReadPrec (a, b, a0, b0) Source #

liftReadListPrec2 :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec b0 -> ReadPrec [b0] -> ReadPrec [(a, b, a0, b0)] Source #

class (forall a. Show a => Show1 (f a)) => Show2 (f :: Type -> Type -> Type) where Source #

Lifting of the Show class to binary type constructors.

Since: base-4.9.0.0

Instances Instances details Show2 Either Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show2 (,) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show2 (Const :: Type -> Type -> Type) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Classes

Show a => Show2 ((,,) a) Source #
>>> showsPrec2 0 ('x', True, 2 :: Int) ""
"('x',True,2)"

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

(Show a, Show b) => Show2 ((,,,) a b) Source #
>>> showsPrec2 0 ('x', True, 2 :: Int, 4.5 :: Double) ""
"('x',True,2,4.5)"

Since: base-4.16.0.0

Instance details

Defined in Data.Functor.Classes

Helper functions

These functions can be used to assemble Read and Show instances for new algebraic types. For example, given the definition

data T f a = Zero a | One (f a) | Two a (f a)

a standard Read1 instance may be defined as

instance (Read1 f) => Read1 (T f) where
    liftReadPrec rp rl = readData $
        readUnaryWith rp "Zero" Zero <|>
        readUnaryWith (liftReadPrec rp rl) "One" One <|>
        readBinaryWith rp (liftReadPrec rp rl) "Two" Two
    liftReadListPrec = liftReadListPrecDefault

and the corresponding Show1 instance as

instance (Show1 f) => Show1 (T f) where
    liftShowsPrec sp _ d (Zero x) =
        showsUnaryWith sp "Zero" d x
    liftShowsPrec sp sl d (One x) =
        showsUnaryWith (liftShowsPrec sp sl) "One" d x
    liftShowsPrec sp sl d (Two x y) =
        showsBinaryWith sp (liftShowsPrec sp sl) "Two" d x y
Obsolete helpers

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4