regular-0.2.1: Generic programming library for regular datatypes.Source codeContentsIndex
Summary: Deep generic seq. Used to fully evaluate a term.
class DeepSeq a where
dseq :: a -> b -> b
class Seq f where
gseq :: (a -> b -> b) -> f a -> b -> b
gdseq :: (Regular a, Seq (PF a)) => a -> b -> b
class DeepSeq a whereSource

A general class for expressing deep seq. It is used in the K case for the generic seq.

We do not give an instance of the form instance (Regular a, Seq (PF a)) => DeepSeq a where dseq = gdseq because this requires undecidable instances. However, any type for which there is a generic instance can be given a trivial instance of DeepSeq by using gdseq.

dseq :: a -> b -> bSource
show/hide Instances
class Seq f whereSource
The class for generic deep seq.
gseq :: (a -> b -> b) -> f a -> b -> bSource
show/hide Instances
Seq U
Seq I
DeepSeq a => Seq (K a)
Seq f => Seq (S s f)
Seq f => Seq (C c f)
(Seq f, Seq g) => Seq (f :*: g)
(Seq f, Seq g) => Seq (f :+: g)
gdseq :: (Regular a, Seq (PF a)) => a -> b -> bSource
Deep, generic version of seq.
Produced by Haddock version 2.4.2