{-# LANGUAGE UnicodeSyntax #-} ------------------------------------------------------------------------------- -- | -- Module : Control.Monad.Trans.Region.Unsafe -- Copyright : (c) 2009 Bas van Dijk -- License : BSD3 (see the file LICENSE) -- Maintainer : Bas van Dijk -- -- /WARNING:/ This module should /not/ be used by end-users directly because it -- allows access to the 'internalHandle' of a resource which enables them to -- close the resource manually, which will defeat the safety-guarantees that -- this package provides! -- -------------------------------------------------------------------------------- module Control.Monad.Trans.Region.Unsafe ( internalHandle , mapInternalHandle ) where import Control.Monad.Trans.Region.Internal ( RegionalHandle, internalHandle ) import Control.Resource ( Handle ) -- | Modify the internal handle from the given regional handle. mapInternalHandle ∷ (Handle resource1 → Handle resource2) → (RegionalHandle resource1 r → RegionalHandle resource2 r) mapInternalHandle f rh = rh { internalHandle = f $ internalHandle rh }