{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveLift #-} module Argo.Internal.Type.Permission where import qualified Argo.Vendor.DeepSeq as DeepSeq import qualified Argo.Vendor.TemplateHaskell as TH import qualified GHC.Generics as Generics data Permission = Allow | Forbid deriving (Permission -> Permission -> Bool (Permission -> Permission -> Bool) -> (Permission -> Permission -> Bool) -> Eq Permission 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 x. Permission -> Rep Permission x) -> (forall x. Rep Permission x -> Permission) -> Generic Permission forall x. Rep Permission x -> Permission forall x. Permission -> Rep Permission x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep Permission x -> Permission $cfrom :: forall x. Permission -> Rep Permission x Generics.Generic, Permission -> Q Exp Permission -> Q (TExp Permission) (Permission -> Q Exp) -> (Permission -> Q (TExp Permission)) -> Lift Permission forall t. (t -> Q Exp) -> (t -> Q (TExp t)) -> Lift t liftTyped :: Permission -> Q (TExp Permission) $cliftTyped :: Permission -> Q (TExp Permission) lift :: Permission -> Q Exp $clift :: Permission -> Q Exp TH.Lift, Permission -> () (Permission -> ()) -> NFData Permission forall a. (a -> ()) -> NFData a rnf :: Permission -> () $crnf :: Permission -> () DeepSeq.NFData, Int -> Permission -> ShowS [Permission] -> ShowS Permission -> String (Int -> Permission -> ShowS) -> (Permission -> String) -> ([Permission] -> ShowS) -> Show Permission 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) toBool :: Permission -> Bool toBool :: Permission -> Bool toBool Permission x = case Permission x of Permission Allow -> Bool True Permission Forbid -> Bool False