Safe Haskell | None |
---|
a simple type that only lets an IO action happen once, caching its result.
- data Once a
- newOnce :: IO (Once a)
- runOnce :: Once a -> IO a -> IO a
- altOnce :: Once () -> IO b -> IO b -> IO b
- data OnceMap a b
- newOnceMap :: Ord a => IO (OnceMap a b)
- runOnceMap :: Ord a => OnceMap a b -> a -> IO b -> IO b
- altOnceMap :: Ord a => OnceMap a () -> a -> IO b -> IO b -> IO b
- onceMapToList :: OnceMap a b -> IO [(a, b)]
- onceMapKeys :: OnceMap a b -> IO [a]
- onceMapElems :: OnceMap a b -> IO [b]
Documentation
runOnce :: Once a -> IO a -> IO aSource
execute the action at most once, always returning the same result
altOnce :: Once () -> IO b -> IO b -> IO bSource
run first argument once, after which perform the second
newOnceMap :: Ord a => IO (OnceMap a b)Source
onceMapToList :: OnceMap a b -> IO [(a, b)]Source
onceMapKeys :: OnceMap a b -> IO [a]Source
onceMapElems :: OnceMap a b -> IO [b]Source