úÎCg     None!Image data, either 8 or 16 bits. For 16-bit PPMs. For 8-bit PPMs. 7A pixel containing three 16-bit color components, RGB. 6A pixel containing three 8-bit color components, RGB. 2A PPM file with type, dimensions, and image data. #The netpbm image type of an image. binary pixmap (color) binary greymap binary bitmap ASCII pixmap (color) ASCII greymap  ASCII bitmap The result of a PPM parse. See . Parses a netpbm magic number.  One of P1, P2, P3, P4, P5, P6. Parses a SINGLE PPM file. Specification: http:netpbm.sourceforge.netdoc ppm.html =There can be multiple images in one file, each starting with  a Pn magic number. Comments starting with '#' can only be  8before the whitespace character that delimits the raster  (see http:netpbm.sourceforge.netdoc pbm.html). # Nevertheless, I interpret that as +comments cannot be inside the magic number. See also the notes for . 7Parses a full PPM file, containing one or more images. <A PPM file consists of a sequence of one or more PPM images. G We allow trailing whitespace after images, which is AGAINST THE SPEC:  >"A PPM file consists of a sequence of one or more PPM images. N There are no data, delimiters, or padding before, after, or between images." LHowever, you can find PPM files that have trailing whitespace, especially a '\n'. !Parses a PPM file from the given .  On failure,  Left error contains the error message.  On success, Right (images, Maybe rest) contains the parsed images + and potentially an unparsable rest input. #  !"#      !"#$       !"#$ netpbm-0.2.1Graphics.Netpbm PpmPixelDataPpmPixelDataRGB16PpmPixelDataRGB8 PpmPixelRGB16 PpmPixelRGB8 PPMHeaderppmTypeppmWidth ppmHeightPPM ppmHeaderppmDataPPMTypeP6P5P4P3P2P1PpmParseResultparsePPMmagicNumberParser ppmParser imagesParserbytestring-0.10.0.2Data.ByteString.Internal ByteString $fShowPPM$fUnboxPpmPixelRGB8 storePixel8 storePixel16$fStorablePpmPixelRGB16$fStorablePpmPixelRGB8$fUnboxPpmPixelRGB16