git.iko.soy/typeable/pandoc
on master help sign in
Avoid non-exhaustive pattern match.
commit6003c596d7b348b29dd4f452f504bfd717634fa2 authorJohn MacFarlane <jgm@berkeley.edu> dateFri 10 Aug 2018, 15:44 (8 years ago) parent84e0b90
1 file changed+8−7
src/Text/Pandoc/UUID.hs+8−7
src/Text/Pandoc/UUID.hs+8−7
@@ -67,13 +67,14 @@ instance Show UUID where
6767
6868getUUID :: RandomGen g => g -> UUID
6969getUUID gen =
70− let [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p] = take 16 $ randoms gen :: [Word8]
71− -- set variant
72− i' = i `setBit` 7 `clearBit` 6
73− -- set version (0100 for random)
74− 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
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] ->
72+ -- set variant
73+ let i' = i `setBit` 7 `clearBit` 6
74+ -- set version (0100 for random)
75+ g' = g `clearBit` 7 `setBit` 6 `clearBit` 5 `clearBit` 4
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
7778
7879getRandomUUID :: IO UUID
7980getRandomUUID = getUUID <$> getStdGen