| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
GHC.Data.Unboxed
Synopsis
- data MaybeUB a :: TYPE ('SumRep '[ZeroBitRep, LiftedRep]) where
- fmapMaybeUB :: (a -> b) -> MaybeUB a -> MaybeUB b
- fromMaybeUB :: a -> MaybeUB a -> a
- apMaybeUB :: MaybeUB (a -> b) -> MaybeUB a -> MaybeUB b
- maybeUB :: b -> (a -> b) -> MaybeUB a -> b
- traverseMaybeUB :: (a -> Maybe b) -> [a] -> Maybe [b]
Documentation
data MaybeUB a :: TYPE ('SumRep '[ZeroBitRep, LiftedRep]) where Source #
Like Maybe, but using unboxed sums.
Use with care. Using a unboxed maybe is not always a win in execution *time* even when allocations go down. So make sure to benchmark for execution time as well. If the difference in *runtime* for the compiler is too small to measure it's likely better to use a regular Maybe instead.
This is since it causes more function arguments to be passed, and potentially more variables to be captured by closures increasing closure size.
fmapMaybeUB :: (a -> b) -> MaybeUB a -> MaybeUB b Source #
fromMaybeUB :: a -> MaybeUB a -> a Source #