parseFirstWord :: Word8 -> (ASN1Class, Bool, ASN1Tag)
parseFirstWord w = (cl,pc,t1)
  where cl = toEnum $ fromIntegral $ (w `shiftR` 6)
        pc = testBit w 5
        t1 = fromIntegral (w .&. 0x1f)

{- when the first tag is 0x1f, the tag is in long form, where
 - we get bytes while the 7th bit is set. -}
parseFirstWord :: Word8 -> (ASN1Class, Bool, ASN1Tag)
parseFirstWord w = (cl,pc,t1)
  where cl = toEnum $ fromIntegral $ (w `shiftR` 6)
        pc = testBit w 5
        t1 = fromIntegral (w .&. 0x1f)

{- when the first tag is 0x1f, the tag is in long form, where
 - we get bytes while the 7th bit is set. -}
parseFirstWord w = (cl,pc,t1)
  where cl = toEnum $ fromIntegral $ (w `shiftR` 6)
        pc = testBit w 5
        t1 = fromIntegral (w .&. 0x1f)

{- when the first tag is 0x1f, the tag is in long form, where
 - we get bytes while the 7th bit is set. -}