5.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~4Only tested on GHC 6.12.1, uses TypeSynonymInstances experimental"David Leimbach <leimy2k@gmail.com>2The message envelope type for all 9P2000 messages %A type that enumerates all the valid (and one invalid) message types in 9P2000   !"ZA variable message type that encapsulates the valid kinds of messages in a 9P2000 payload #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi8Provides information on a path entry at a 9P2000 server jklmnopqrstuvA Plan 9 Qid type. See http:"9p.cat-v.org for more information wxyz{|}#Takes a fixed size lazy ByteString sz , running gD on it, and returning the result if all the input is consumed, uses  Prelude.error" otherwise. (Throws an exception) QA monadic action in Get that returns all parseable entries as a list, returning [] if none exist [A monadic action in Put that maps all encodable items into the Put monad for serialization Like  but is preceded by a little endian 16bit word. Useful for retrieving 16bit payload lengths from 9P2000 messages that support it. Runs  over xs followed by computing the 16bit (little endian) length of the list, and prepending it to the final payload. Useful for automatically computing lengths for 9P2000 messages that require it 2Gets a 16bit value from the stream, then executes Data.Binary.Get.get5 that many times to produce a list of parsed values. Puts xs. into the Put stream prepended by its length. Gets a 32bit little endian legnth from the stream, then gets a lazy ByteString of that size from the stream, returning only the ByteString Takes length of xsG and then prepends that to the lazy ByteString it places in the Stream %Convertss VarMsg types to Tag values ~aFor every messages type, runs a Get parser to decode that type of payload from the 9P2000 stream gFor every lower level VarMsg type, encodes a full wrapper around that type for use with 9P2000 streams 0An arbitrarily chosen maxiumum size for any Msg   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~{|}vwxyzijklmnopqrstu!  "fc_][YXSQMKHE@=9731/.,+)'$#ghde`ab^\ZTUVWRNOPLIJFGABCD>?:;<845620-*(%&~!    !"Ffc_][YXSQMKHE@=9731/.,+)'$#ghde`ab^\ZTUVWRNOPLIJFGABCD>?:;<845620-*(%&#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi jklmnopqrstujklmnopqrstuvwxyzwxyz{|}|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijjklmnopqrstuvvwxyz{|}~ NineP-0.0.2 Data.NinePMsgmsg_typmsg_tagmsg_bodyTagTRwstatTTwstatTRstatTTstatTRremoveTTremoveTRclunkTTclunkTRwriteTTwriteTRreadTTreadTRcreateTTcreateTRopenTTopenTRwalkTTwalkTRflushTTflushTRerror XXX_TTerrorTRattachTTattachTRauthTTauth TRversion TTversionVarMsgRwstatTwstattws_fidtws_statRstatrs_statTstatts_fidRremoveTremovetrm_fidRclunkTclunktcl_fidRwriterw_countTwritetwr_fid twr_offsettwr_datRreadrrd_datTreadtrd_fid trd_offset trd_countRcreatercr_qid rcr_iounitTcreatetcr_fidtcr_nametcr_permtcr_modeRopenro_qid ro_iounitTopento_fidto_modeRwalkrw_wqidTwalktw_fid tw_newfid tw_wnamesRattachrat_qidTattachtat_fidtat_afid tat_uname tat_anameRflushTflush tf_oldtagRerrorre_enameRauthra_aqidTauthtau_afid tau_uname tau_anameRversionrv_msize rv_versionTversiontv_msize tv_versionStatst_typst_devst_qidst_modest_atimest_mtime st_lengthst_namest_uidst_gidst_muidQidqid_typqid_versqid_pathBingetput getVarMsg putVarMsggetNest getListAll putListAll getNestList16 putNestList16 getList16 putList16 getBytes32 putBytes32getTagmaxSize