regular-0.2: Generic programming library for regular datatypes.Source codeContentsIndex
Generics.Regular.Functions.Seq
Portabilitynon-portable
Stabilityexperimental
Maintainergenerics@haskell.org
Description
Summary: Deep generic seq. Used to fully evaluate a term.
Synopsis
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
Documentation
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.

Methods
dseq :: a -> b -> bSource
show/hide Instances
class Seq f whereSource
The class for generic deep seq.
Methods
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