{-# OPTIONS_GHC -Wall #-} {-# LANGUAGE NoImplicitPrelude #-} module Control.Process.ProcessHandle( HasProcessHandle(..) , AsProcessHandle(..) ) where import Control.Category(id) import System.Process ( ProcessHandle ) import Control.Lens ( Lens', Prism' ) class HasProcessHandle a where processHandle :: Lens' a ProcessHandle instance HasProcessHandle ProcessHandle where processHandle :: (ProcessHandle -> f ProcessHandle) -> ProcessHandle -> f ProcessHandle processHandle = (ProcessHandle -> f ProcessHandle) -> ProcessHandle -> f ProcessHandle forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a id class AsProcessHandle a where _ProcessHandle :: Prism' a ProcessHandle instance AsProcessHandle ProcessHandle where _ProcessHandle :: p ProcessHandle (f ProcessHandle) -> p ProcessHandle (f ProcessHandle) _ProcessHandle = p ProcessHandle (f ProcessHandle) -> p ProcessHandle (f ProcessHandle) forall k (cat :: k -> k -> *) (a :: k). Category cat => cat a a id