{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE TypeSynonymInstances #-} module Control.Process.GroupID( HasGroupID(..) , AsGroupID(..) ) where import Control.Category(id) import Control.Lens ( Lens', Prism' ) import System.Process.Internals ( GroupID ) class HasGroupID a where groupID :: Lens' a GroupID instance HasGroupID GroupID where groupID :: (GroupID -> f GroupID) -> GroupID -> f GroupID groupID = (GroupID -> f GroupID) -> GroupID -> f GroupID forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a id class AsGroupID a where _GroupID :: Prism' a GroupID instance AsGroupID GroupID where _GroupID :: p GroupID (f GroupID) -> p GroupID (f GroupID) _GroupID = p GroupID (f GroupID) -> p GroupID (f GroupID) forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a id