{-# LANGUAGE CPP #-}
module Shrun.Configuration.Default
( Default (..),
fromMaybe,
(<.>),
)
where
import Shrun.Prelude hiding (fromMaybe)
class Default a where
def :: a
fromMaybe :: (Default a) => Maybe a -> a
fromMaybe :: forall a. Default a => Maybe a -> a
fromMaybe (Just a
x) = a
x
fromMaybe Maybe a
Nothing = a
forall a. Default a => a
def
(<.>) :: (Default a) => Maybe a -> Maybe a -> a
Maybe a
x <.> :: forall a. Default a => Maybe a -> Maybe a -> a
<.> Maybe a
y = Maybe a -> a
forall a. Default a => Maybe a -> a
fromMaybe (Maybe a
x Maybe a -> Maybe a -> Maybe a
forall a. Maybe a -> Maybe a -> Maybe a
forall (f :: Type -> Type) a. Alternative f => f a -> f a -> f a
<|> Maybe a
y)
infixr 6 <.>
#if OSX
instance Default NotifySystem where
def = NotifySystemAppleScript
#else
instance Default NotifySystem where
def :: NotifySystem
def = NotifySystem
NotifySystemDBus
#endif
instance Default NotifyTimeout where
def :: NotifyTimeout
def = Int -> NotifyTimeout
NotifyTimeoutMillis Int
10_000