-- | 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