úÎ2¦/3      !"#$%&'()*+,-./012 Safe-Inferred*An abstract unique value. Values of type 3 may be compared for equality and hashed into Int.Note: Unlike the symbols from  Data.UniqueY, the symbols from this module do not become equal after reloads in the GHC interpreter!Creates a new object of type I. The value returned will not compare equal to any other value of type  returned by previous calls to G. There is no limit on the number of times you may call this function. Hashes a  into an 3W. Two Uniques may hash to the same value, although in practice this is unlikely. The 3 returned makes a good hash key.4545None &Create a new key for use with a vault.'Lookup the value of a key in the vault.>Insert a value for a given key. Overwrites any previous value. >Adjust the value for a given key if it's present in the vault. Delete a key from the vault. Put a single value into a . Retrieve the value from the . The empty vault.Merge two vaults (left-biased).6789:; <      6789:; <None &A persistent store for a single value.Keys for the vault.1A persistent store for values of arbitrary types.5This variant is the simplest and creates keys in the = monad. See the module  Data.Vault.ST if you want to use it with the > monad instead.The empty vault.&Create a new key for use with a vault.'Lookup the value of a key in the vault.>Insert a value for a given key. Overwrites any previous value.>Adjust the value for a given key if it's present in the vault.Delete a key from the vault.Merge two vaults (left-biased).Put a single value into a .Retrieve the value from the .    None &Create a new key for use with a vault.'Lookup the value of a key in the vault. >Insert a value for a given key. Overwrites any previous value.!>Adjust the value for a given key if it's present in the vault."Delete a key from the vault.#Put a single value into a .$Retrieve the value from the .%The empty vault.&Merge two vaults (left-biased).?@ABCD !"#$%&E  !"#$%& % !"&#$?@ABCD !"#$%&ENone '&A persistent store for a single value.(Keys for the vault.)1A persistent store for values of arbitrary types.5This variant is the simplest and creates keys in the = monad. See the module  Data.Vault.ST if you want to use it with the > monad instead.*The empty vault.+&Create a new key for use with a vault.,'Lookup the value of a key in the vault.->Insert a value for a given key. Overwrites any previous value..>Adjust the value for a given key if it's present in the vault./Delete a key from the vault.0Merge two vaults (left-biased).1Put a single value into a '.2Retrieve the value from the '. '()*+,-./012 '()*+,-./012 )(*+,-./0'12 '()*+,-./012F                           ! vault-0.3.0.4Data.Unique.ReallyData.Vault.ST.StrictData.Vault.StrictData.Vault.ST.LazyData.Vault.LazyUnique newUnique hashUniqueLockerKeyVaultnewKeylookupinsertadjustdeletelockunlockemptyunionghc-prim GHC.TypesInt$fHashableUniqueMaptoAnyfromAny $fMonoidVaultIObaseGHC.STST