ide-backend-0.9.0: IdeSession/Strict/Maybe.hs
{-# LANGUAGE TemplateHaskell, DeriveFunctor #-}
-- | Version of maybe that is strict in its argument
module IdeSession.Strict.Maybe (
nothing
, just
, maybe
, fromMaybe
) where
import Prelude hiding (maybe)
import IdeSession.Strict.Container
import qualified Data.Maybe as Maybe
nothing :: Strict Maybe a
nothing = force $ Nothing
just :: a -> Strict Maybe a
just = force . Just
maybe :: b -> (a -> b) -> Strict Maybe a -> b
maybe x f = Maybe.maybe x f . toLazyMaybe
fromMaybe :: a -> Strict Maybe a -> a
fromMaybe def = Maybe.fromMaybe def . toLazyMaybe