Remove uses of 'Set', and thus the dependency on the "containers" package.
diff --git a/gnome-keyring.cabal b/gnome-keyring.cabal
index db28166..eb9ba83 100644
--- a/gnome-keyring.cabal
+++ b/gnome-keyring.cabal
@@ -41,7 +41,6 @@
       base >= 4.0 && < 5.0
     , text >= 0.7 && < 0.12
     , bytestring >= 0.9 && < 0.10
-    , containers >= 0.2 && < 0.6
     , time >= 1.1 && < 1.5
 
   build-tools:
diff --git a/lib/Gnome/Keyring.chs b/lib/Gnome/Keyring.chs
index c6b0794..1227b04 100644
--- a/lib/Gnome/Keyring.chs
+++ b/lib/Gnome/Keyring.chs
@@ -117,7 +117,6 @@
 
 import           Control.Exception (Exception, bracket, throwIO)
 import           Control.Monad (join)
-import           Data.Set (Set, toList, fromList)
 import           Data.Time (UTCTime)
 import           Data.Time.Clock.POSIX (posixSecondsToUTCTime)
 import           Data.Typeable (Typeable)
@@ -508,7 +507,7 @@
 data AccessControl = AccessControl
 	{ accessControlName :: Maybe String
 	, accessControlPath :: Maybe String
-	, accessControlType :: Set AccessType
+	, accessControlType :: [AccessType]
 	}
 	deriving (Show, Eq)
 
@@ -548,21 +547,20 @@
 freeACL :: Ptr () -> IO ()
 freeACL = {# call acl_free #}
 
-cAccessTypes :: Set AccessType -> CInt
-cAccessTypes = foldr (.|.) 0 . map fromAccessType . toList where
+cAccessTypes :: [AccessType] -> CInt
+cAccessTypes = foldr (.|.) 0 . map fromAccessType where
+	fromAccessType :: AccessType -> CInt
+	fromAccessType AccessRead   = 1
+	fromAccessType AccessWrite  = 2
+	fromAccessType AccessRemove = 4
 
-peekAccessType :: CInt -> Set AccessType
-peekAccessType cint = fromList $ concat
+peekAccessType :: CInt -> [AccessType]
+peekAccessType cint = concat
 	[ [AccessRead   | (cint .&. 1) > 0]
 	, [AccessWrite  | (cint .&. 2) > 0]
 	, [AccessRemove | (cint .&. 4) > 0]
 	]
 
-fromAccessType :: AccessType -> CInt
-fromAccessType AccessRead   = 1
-fromAccessType AccessWrite  = 2
-fromAccessType AccessRemove = 4
-
 accessControlListOperation :: OperationImpl GetListCallback [AccessControl]
 accessControlListOperation = operationImpl $ \checkResult ->
 	wrapGetListCallback $ \cres list _ ->
@@ -619,7 +617,7 @@
                       -> String -- ^ Display name
                       -> String -- ^ Application executable path
                       -> ItemID
-                      -> Set AccessType
+                      -> [AccessType]
                       -> Operation ()
 itemGrantAccessRights k d p item r = voidOperation
 	(item_grant_access_rights k d p item r)
@@ -630,7 +628,7 @@
 	, withUtf8* `String'
 	, withUtf8* `String'
 	, cItemID `ItemID'
-	, cAccessTypes `Set AccessType'
+	, cAccessTypes `[AccessType]'
 	, id `DoneCallbackPtr'
 	, id `Ptr ()'
 	, id `DestroyNotifyPtr'
@@ -641,7 +639,7 @@
 	, withUtf8* `String'
 	, withUtf8* `String'
 	, cItemID `ItemID'
-	, cAccessTypes `Set AccessType'
+	, cAccessTypes `[AccessType]'
 	} -> `(Result, ())' resultAndTuple #}
 
 data FoundItem = FoundItem