Hello, I am using bitmap-0.2 [1] to load a Bitmap file [2]. However, the following sample GHCi session fails for me.
> Prelude Data.Bitmap Data.Bitmap.Pure.File> readBitmap "b.bmp" :: IO (Bitmap > Word8) > *** Exception: Data/Bitmap/Internal.hs:(63,17)-(67,15): Non-exhaustive > patterns in case I downloaded the sources of bitmap-0.2 from Hackage and modified the relevant function by appending the last line. > decodeCType :: CInt -> PixelComponentType > decodeCType k = case k of > 1 -> PctWord8 > 2 -> PctWord16 > 3 -> PctWord32 > 4 -> PctFloat > _ -> error $ "decodeCType: unexpected integer (" ++ show k ++ ")" With this modification the same GHCi session given above results in the following error. > Prelude Data.Bitmap Data.Bitmap.Pure.File> readBitmap "b.bmp" :: IO (Bitmap > Word8) > *** Exception: decodeCType: unexpected integer (7077888) I don't have any idea where 7077888 comes from. Am I doing something wrong? Is my bitmap corrupted in some way? The number 7077888 has no apparent significance except that it is a perfect cube [3]. So I guess this is not a problem with endianness. In fact as far as I can tell `decodeCType` is only called on `(PixelComponent t => c_type t)` and `c_type t` only yields integer values in the (inclusive) range of 1 to 4. That is if I am not missing some orphaned instance. Could anyone please enlighten me what is happening and if I am doing something wrong? In case this is relevant: I am using bitmap-0.2 from Hackage with GHC 7.4.1 on a 3.2.20 kernel i686 architecture Linux. Regards, Alexander Foremny [1] http://hackage.haskell.org/package/bitmap [2] https://www.dropbox.com/s/pyutvni9vx6f6mo/b.bmp [3] http://www.wolframalpha.com/input/?i=7077888 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe