diff --git a/Remote/Directory.hs b/Remote/Directory.hs index 37942a295d..a879875298 100644 --- a/Remote/Directory.hs +++ b/Remote/Directory.hs @@ -6,7 +6,6 @@ -} {-# LANGUAGE CPP #-} -{-# LANGUAGE Rank2Types #-} module Remote.Directory (remote) where diff --git a/Remote/Directory/LegacyChunked.hs b/Remote/Directory/LegacyChunked.hs index 312119f4e6..5c200570c8 100644 --- a/Remote/Directory/LegacyChunked.hs +++ b/Remote/Directory/LegacyChunked.hs @@ -7,8 +7,6 @@ - Licensed under the GNU GPL version 3 or higher. -} -{-# LANGUAGE Rank2Types #-} - module Remote.Directory.LegacyChunked where import qualified Data.ByteString.Lazy as L diff --git a/Remote/Helper/ChunkedEncryptable.hs b/Remote/Helper/ChunkedEncryptable.hs index 2a844212b5..1267f5b59e 100644 --- a/Remote/Helper/ChunkedEncryptable.hs +++ b/Remote/Helper/ChunkedEncryptable.hs @@ -14,6 +14,7 @@ module Remote.Helper.ChunkedEncryptable ( simplyPrepare, ContentSource, checkPrepare, + resourcePrepare, fileStorer, byteStorer, fileRetriever, @@ -49,6 +50,11 @@ checkPrepare checker helper k a = ifM (checker k) , a Nothing ) +-- Use to acquire a resource when preparing a helper. +resourcePrepare :: (Key -> (r -> Annex Bool) -> Annex Bool) -> (r -> helper) -> Preparer helper +resourcePrepare withr helper k a = withr k $ \r -> + a (Just (helper r)) + -- A Storer that expects to be provided with a file containing -- the content of the key to store. fileStorer :: (Key -> FilePath -> MeterUpdate -> Annex Bool) -> Storer diff --git a/Types/StoreRetrieve.hs b/Types/StoreRetrieve.hs index 33f66efb19..bde7489604 100644 --- a/Types/StoreRetrieve.hs +++ b/Types/StoreRetrieve.hs @@ -5,8 +5,6 @@ - Licensed under the GNU GPL version 3 or higher. -} -{-# LANGUAGE Rank2Types #-} - module Types.StoreRetrieve where import Common.Annex @@ -16,7 +14,7 @@ import qualified Data.ByteString.Lazy as L -- Prepares for and then runs an action that will act on a Key's -- content, passing it a helper when the preparation is successful. -type Preparer helper = forall a. Key -> (Maybe helper -> Annex a) -> Annex a +type Preparer helper = Key -> (Maybe helper -> Annex Bool) -> Annex Bool -- A source of a Key's content. data ContentSource