cqrs-0.1.0: src/Data/CQRS/GUID.hs
-- | Globally Unique IDentifiers.
module Data.CQRS.GUID
( GUID
, mkGUID
) where
import Data.Binary (Binary(..))
import Data.ByteString (ByteString)
import Data.Typeable (Typeable)
-- | A GUID for values of type 'a'.
newtype GUID a = GUID ByteString
deriving (Show, Typeable, Eq)
-- | Binary instance.
instance forall a . Binary (GUID a) where
get = fmap GUID get
put (GUID g) = put g
-- | Make a GUID.
mkGUID :: ByteString -> GUID a
mkGUID s = GUID s