!?6      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None2=SX20bson(low 3 bytes only, high byte must be zerobsonXA BSON ObjectID is a 12-byte value consisting of a 4-byte timestamp (seconds since epoch), a 3-byte machine id, a 2-byte process id, and a 3-byte counter. Note that the timestamp and counter fields must be stored big endian unlike the rest of BSON. This is because they are compared byte-by-byte and we want to ensure a mostly increasing order. bsongJavascript code with possibly empty environment mapping variables to values that the code may reference bsonThe first string is the regex pattern, the second is the regex options string. Options are identified by characters, which must be listed in alphabetical order. Valid options are *i* for case insensitive matching, *m* for multiline matching, *x* for verbose mode, *l* to make \w, \W, etc. locale dependent, *s* for dotall mode ("." matches everything), and *u* to make \w, \W, etc. match unicode.bson:Haskell types of this class correspond to BSON value typesbson4A BSON value is one of the following types of values3bsonThe name of a BSON field4bsonZA BSON field is a named value, where the name (label) is a string and the value is a BSON 8bsonA BSON document is a list of 4sbsonGet the current process id.bson]Round second number to nearest multiple of first number. Eg: roundTo (1/1000) 0.12345 = 0.1239bsonDshowHex of n padded with leading zeros if necessary to fill d digits:bson0Recursively lookup a nested field in a Document.;bson@Value of field in document, or fail (Nothing) if field not found<bson}Lookup value of field in document and cast to expected type. Fail (Nothing) if field not found or value not of expected type.=bson-Value of field in document. Error if missing.>bsonATyped value of field in document. Error if missing or wrong type.?bson-Only include fields of document in label list@bson*Exclude fields from document in label listAbsonMerge documents with preference given to first one when both have the same label. I.e. for every (k := v) in first argument, if k exists in second argument then replace its value with v, otherwise add (k := v) to second argument.Bbson&Field with given label and typed valueCbsonMIf Just value then return one field document, otherwise return empty documentDbson%Apply generic function to typed valueEbsonEConvert Value to expected type, or fail (Nothing) if not of that typeFbson7Convert Value to expected type. Error if not that type.GbsonType of typed valuebson:If number fits in type m then cast to m, otherwise NothingHbsonTime when objectId was createdIbsonCreate a fresh ObjectIdbsonHPut last 3 bytes into a Word24. Expected to be called on very short listJ ")/0 $#+!%&'(*,-.123457689:;<=>?@ABCDEFGHIJ8:;<=>?@A4576BC3")/0 $#+!%&'(*,-.12DEFG  HI950B0C0None6_bson&Write binary representation of elementbson%Read binary representation of Element            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~#bson-0.3.2.8-6D1jYvAreNn62K8WKaCgLx Data.BsonData.Bson.BinaryObjectIdOid MinMaxKeyMinKeyMaxKey MongoStampSymbol JavascriptRegex UserDefinedMD5UUIDFunctionBinaryValvalvalListvalMaybecast' cast'List cast'MaybeValueFloatStringDocArrayBinFunUuidMd5UserDefObjIdBoolUTCNullRegExJavaScrSymInt32Int64StampMinMaxLabelField:=labelvalueDocument showHexLen!?looklookupvalueAtatincludeexcludemerge=:=?fvalcasttyped typeOfVal timestamp genObjectId$fReadObjectId$fShowObjectId $fShowValue $fShowField$fValMinMaxKey$fValMongoStamp $fValInteger$fValInt $fValInt64 $fValInt32 $fValSymbol$fValJavascript $fValRegex $fValMaybe$fValNominalDiffTime $fValUTCTime $fValBool $fValObjectId$fValUserDefined$fValMD5 $fValUUID $fValFunction $fValBinary$fVal[] $fValValue $fValField $fValChar $fValText $fValFloat $fValDouble $fShowBinary $fReadBinary $fEqBinary $fOrdBinary$fShowFunction$fReadFunction $fEqFunction $fOrdFunction $fShowUUID $fReadUUID$fEqUUID $fOrdUUID $fShowMD5 $fReadMD5$fEqMD5$fOrdMD5$fShowUserDefined$fReadUserDefined$fEqUserDefined$fOrdUserDefined $fShowRegex $fReadRegex $fEqRegex $fOrdRegex $fShowSymbol $fReadSymbol $fEqSymbol $fOrdSymbol$fShowMongoStamp$fReadMongoStamp$fEqMongoStamp$fOrdMongoStamp$fShowMinMaxKey$fReadMinMaxKey $fEqMinMaxKey$fOrdMinMaxKey $fEqObjectId $fOrdObjectId $fEqValue $fOrdValue$fShowJavascript$fEqJavascript$fOrdJavascript $fEqField $fOrdField putDouble getDoubleputInt32getInt32putInt64getInt64 putCString getCString putDocument getDocumentWord24 getProcessIDroundTofitInt makeWord24putFieldgetField