git.iko.soy/typeable/pandoc
on master help sign in
Avoid non-exhaustive pattern match.
6003c59John MacFarlane
src/Text/Pandoc/UUID.hs+8−7
@@ -67,13 +67,14 @@ instance Show UUID where
67
67
68getUUID :: RandomGen g => g -> UUID
68getUUID :: RandomGen g => g -> UUID
69getUUID gen =
69getUUID gen =
70− let [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p] = take 16 $ randoms gen :: [Word8]
70+ case take 16 (randoms gen :: [Word8]) of
71+ [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p] ->
71− -- set variant
72+ -- set variant
72− i' = i `setBit` 7 `clearBit` 6
73+ let i' = i `setBit` 7 `clearBit` 6
73− -- set version (0100 for random)
74+ -- set version (0100 for random)
74− g' = g `clearBit` 7 `setBit` 6 `clearBit` 5 `clearBit` 4
75+ g' = g `clearBit` 7 `setBit` 6 `clearBit` 5 `clearBit` 4
75− in
76− UUID a b c d e f g' h i' j k l m n o p
76+ in UUID a b c d e f g' h i' j k l m n o p
77+ _ -> error "not enough random numbers for UUID" -- should not happen
77
78
78getRandomUUID :: IO UUID
79getRandomUUID :: IO UUID
79getRandomUUID = getUUID <$> getStdGen
80getRandomUUID = getUUID <$> getStdGen