-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Simple unique identifier datatype, serializable and encodable as base32
--
-- A simple unique identiier, serializable to binary and JSON, and since
-- base32 is a primary encoding, renders in URLs without any further
-- encoding.
@package uid
@version 0.1.0.0
-- | A UID is a unique identifier, generated from
-- Data.UUID.V4.
--
-- These identifiers are designed for easy presentation as Base32, using
-- Codec.Binary.Base32, and for transport in a JSON format using
-- Data.Aeson.
--
-- The primary constructor, newUID, runs in the IO monad,
-- primarily because of its use of a random number generator during
-- construction. If all you need is a unique string, then
-- newUIDString is just a wrapper that creates a new UID and then
-- invokes toBase32 on it.
module Data.UID
-- | A new, randomly generated identifier
data UID
-- | Construct a new unique identifier.
newUID :: IO UID
-- | Construct a new identifier and immediately convert to its base32
-- representation using toBase32
newUIDString :: IO String
-- | Convert a base32 String representation of the UID back
-- into a UID instance.
fromBase32 :: String -> UID
-- | Convert the UID into a base32 String representation'.
toBase32 :: UID -> String
instance Typeable UID
instance Typeable InvalidUIDException
instance Eq UID
instance Show InvalidUIDException
instance FromJSON UID
instance ToJSON UID
instance Show UID
instance Exception InvalidUIDException
instance Serialize UID