Lazy a represents lazily-computed values of type
A lazy value is computed at most once - the result is saved after the first computation, and subsequent attempts to read the value simply return the saved value.
Lazy values can be created with
defer, or by using the provided
type class instances.
Lazy values can be evaluated by using the
purerl note: Due to the nature of the BEAM platform Lazy values are not in fact lazy with the Erlang backend, but simple thunks, i.e. will be recomputed each time they are required.
(Semiring a) => Semiring (Lazy a)
(Ring a) => Ring (Lazy a)
(CommutativeRing a) => CommutativeRing (Lazy a)
(EuclideanRing a) => EuclideanRing (Lazy a)
(Eq a) => Eq (Lazy a)
(Ord a) => Ord (Lazy a)
(Bounded a) => Bounded (Lazy a)
(Semigroup a) => Semigroup (Lazy a)
(Monoid a) => Monoid (Lazy a)
(HeytingAlgebra a) => HeytingAlgebra (Lazy a)
(BooleanAlgebra a) => BooleanAlgebra (Lazy a)
FunctorWithIndex Unit Lazy
FoldableWithIndex Unit Lazy
TraversableWithIndex Unit Lazy
(Show a) => Show (Lazy a)
Lazy (Lazy a)