uuid-1.3.1: For creating, comparing, parsing and printing Universally Unique Identifiers

Safe HaskellNone



This library is useful for comparing, parsing and printing Universally Unique Identifiers. See http://en.wikipedia.org/wiki/UUID for the general idea. See http://tools.ietf.org/html/rfc4122 for the specification.

  • Random UUIDs may be generated using nextRandom or your favorite instance of Random.
  • We have an implementation of generating a UUID from the hardware MAC address and current system time in Data.UUID.V1.
  • For name-based generation of UUIDs using SHA-1 hashing see Data.UUID.V5.



data UUID Source

The UUID type. A Random instance is provided which produces version 4 UUIDs as specified in RFC 4122. The Storable and Binary instances are compatible with RFC 4122, storing the fields in network order as 16 bytes.

toString :: UUID -> StringSource

Convert a UUID into a hypenated string using lower-case letters. Example:

  toString <$> fromString "550e8400-e29b-41d4-a716-446655440000"

fromString :: String -> Maybe UUIDSource

If the passed in String can be parsed as a UUID, it will be. The hyphens may not be omitted. Example:

  fromString "c2cc10e1-57d6-4b6f-9899-38d972112d8c"

Hex digits may be upper or lower-case.

toASCIIBytes :: UUID -> ByteStringSource

Convert a UUID into a hyphentated string using lower-case letters, packed as ASCII bytes into ByteString.

This should be equivalent to toString with pack.

fromASCIIBytes :: ByteString -> Maybe UUIDSource

If the passed in ByteString can be parsed as an ASCII representation of a UUID, it will be. The hyphens may not be omitted.

This should be equivalent to fromString with unpack.

toLazyASCIIBytes :: UUID -> ByteStringSource

Similar to toASCIIBytes except we produce a lazy ByteString.

fromLazyASCIIBytes :: ByteString -> Maybe UUIDSource

Similar to fromASCIIBytes except parses from a lazy ByteString.

toByteString :: UUID -> ByteStringSource

Encode a UUID into a ByteString in network order.

fromByteString :: ByteString -> Maybe UUIDSource

Extract a UUID from a ByteString in network byte order. The argument must be 16 bytes long, otherwise Nothing is returned.

toWords :: UUID -> (Word32, Word32, Word32, Word32)Source

Covert a UUID into a sequence of Word32 values. Usefull for when you need to serialize a UUID and neither Storable nor Binary are appropriate. Introduced in version 1.2.2.

fromWords :: Word32 -> Word32 -> Word32 -> Word32 -> UUIDSource

Create a UUID from a sequence of Word32. The opposite of toWords. Useful when you need a total function for constructing UUID values. Introduced in version 1.2.2.

null :: UUID -> BoolSource

Returns true if the passed-in UUID is the nil UUID.

nil :: UUIDSource

The nil UUID, as defined in RFC 4122. It is a UUID of all zeros. null u iff u == nil.