@@ -334,19 +334,25 @@ fromString' s0 = do
336toString :: UUID -> String
336toString :: UUID -> String
337−toString uuid = hexw w0 $ hexw' w1 $ hexw' w2 $ hexw w3 ""
337+toString uuid = hexw0 w0 $ hexw1 w1 ""
338− where hexw :: Word32 -> String -> String
338+ where hexw0 :: Word64 -> String -> String
339+ hexw0 w s = hexn w 60 : hexn w 56 : hexn w 52 : hexn w 48
340+ : hexn w 44 : hexn w 40 : hexn w 36 : hexn w 32
339− hexw w s = hexn w 28 : hexn w 24 : hexn w 20 : hexn w 16
341+ : '-' : hexn w 28 : hexn w 24 : hexn w 20 : hexn w 16
340− : hexn w 12 : hexn w 8 : hexn w 4 : hexn w 0 : s
342+ : '-' : hexn w 12 : hexn w 8 : hexn w 4 : hexn w 0
342− hexw' :: Word32 -> String -> String
345+ hexw1 :: Word64 -> String -> String
343− hexw' w s = '-' : hexn w 28 : hexn w 24 : hexn w 20 : hexn w 16
346+ hexw1 w s = '-' : hexn w 60 : hexn w 56 : hexn w 52 : hexn w 48
347+ : '-' : hexn w 44 : hexn w 40 : hexn w 36 : hexn w 32
348+ : hexn w 28 : hexn w 24 : hexn w 20 : hexn w 16
344− : '-' : hexn w 12 : hexn w 8 : hexn w 4 : hexn w 0 : s
349+ : hexn w 12 : hexn w 8 : hexn w 4 : hexn w 0
346− hexn :: Word32 -> Int -> Char
352+ hexn :: Word64 -> Int -> Char
347 hexn w r = intToDigit $ fromIntegral ((w `shiftR` r) .&. 0xf)
353 hexn w r = intToDigit $ fromIntegral ((w `shiftR` r) .&. 0xf)
349− (w0,w1,w2,w3) = toWords uuid
355+ (w0,w1) = toWords64 uuid
351-- | If the passed in `Text` can be parsed as an ASCII representation of
357-- | If the passed in `Text` can be parsed as an ASCII representation of
352-- a `UUID`, it will be. The hyphens may not be omitted.
358-- a `UUID`, it will be. The hyphens may not be omitted.