{-# LANGUAGE DeriveLift #-} module Argo.Internal.Type.Permission where import qualified Argo.Vendor.DeepSeq as DeepSeq import qualified Argo.Vendor.TemplateHaskell as TH data Permission = Allow | Forbid deriving (Permission -> Permission -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Permission -> Permission -> Bool $c/= :: Permission -> Permission -> Bool == :: Permission -> Permission -> Bool $c== :: Permission -> Permission -> Bool Eq, forall t. (forall (m :: * -> *). Quote m => t -> m Exp) -> (forall (m :: * -> *). Quote m => t -> Code m t) -> Lift t forall (m :: * -> *). Quote m => Permission -> m Exp forall (m :: * -> *). Quote m => Permission -> Code m Permission liftTyped :: forall (m :: * -> *). Quote m => Permission -> Code m Permission $cliftTyped :: forall (m :: * -> *). Quote m => Permission -> Code m Permission lift :: forall (m :: * -> *). Quote m => Permission -> m Exp $clift :: forall (m :: * -> *). Quote m => Permission -> m Exp TH.Lift, Int -> Permission -> ShowS [Permission] -> ShowS Permission -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Permission] -> ShowS $cshowList :: [Permission] -> ShowS show :: Permission -> String $cshow :: Permission -> String showsPrec :: Int -> Permission -> ShowS $cshowsPrec :: Int -> Permission -> ShowS Show) instance DeepSeq.NFData Permission where rnf :: Permission -> () rnf = forall a b c. (a -> b -> c) -> b -> a -> c flip seq :: forall a b. a -> b -> b seq () toBool :: Permission -> Bool toBool :: Permission -> Bool toBool Permission x = case Permission x of Permission Allow -> Bool True Permission Forbid -> Bool False