{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -Wall #-}
module Control.Process.GroupID
( GroupID,
GetGroupID (..),
HasGroupID (..),
ReviewGroupID (..),
AsGroupID (..),
)
where
import Control.Category (id)
import Control.Lens (Getter, Lens', Prism', Review, unto)
import System.Process.Internals (GroupID)
class GetGroupID a where
getGroupID ::
Getter a GroupID
instance GetGroupID GroupID where
getGroupID :: Getter GroupID GroupID
getGroupID = (GroupID -> f GroupID) -> GroupID -> f GroupID
forall a. a -> a
forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
{-# INLINE getGroupID #-}
class (GetGroupID a) => HasGroupID a where
groupID ::
Lens' a GroupID
instance HasGroupID GroupID where
groupID :: Lens' GroupID GroupID
groupID =
(GroupID -> f GroupID) -> GroupID -> f GroupID
forall a. a -> a
forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
class ReviewGroupID a where
reviewGroupID ::
Review a GroupID
instance ReviewGroupID GroupID where
reviewGroupID :: Review GroupID GroupID
reviewGroupID = (GroupID -> GroupID) -> Optic p f GroupID GroupID GroupID GroupID
forall (p :: * -> * -> *) (f :: * -> *) b t s a.
(Profunctor p, Bifunctor p, Functor f) =>
(b -> t) -> Optic p f s t a b
unto GroupID -> GroupID
forall a. a -> a
forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id
{-# INLINE reviewGroupID #-}
class (ReviewGroupID a) => AsGroupID a where
_GroupID ::
Prism' a GroupID
instance AsGroupID GroupID where
_GroupID :: Prism' GroupID GroupID
_GroupID =
p GroupID (f GroupID) -> p GroupID (f GroupID)
forall a. a -> a
forall {k} (cat :: k -> k -> *) (a :: k). Category cat => cat a a
id