~ l.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - None       None 3=K9The primary key in all our documents is the default "id".2Expression which represents the primary key field.EExpression which represents the value of a field inside of an Object.1True if the object field matches the given value.:True if the object's primary key matches the given string.&Take the first item out of a sequence.None./0123456789:;<=  ./0123456789:;<=None !"3B&2The operations that can be applied to JSON values.Splice is used to manipulate ArrayGs. It can remove and insert multiple elements in a single operation.Set is applied to KNs. It is used for adding, updating and deleting properties from the object.!ObjectId"*Object which contains authorization rules.#>An object describing a particualar release of the base object.$;The base object whose snapshots contain the actual content.%RevId(ObjId+Path.<Pk - Types which can be converted to a database primary key.0aThe root object id is used for object created internally or when there is no applicable creator.1The %( which is used for the initial snapshot.WPatch`SnapshotgSecretkSecretIdnReleaseyBlob~BlobId*The record that is stored in the database. SessionId_The table name is derived from the view name. Therefore it should be unique amongst all views.2Function which parses objects stored in this view.JFunction which transforms an Avers Object into a type stored in the view.&Secondary indices defined on the view.3A reference to the config, just in case we need it.8A pool of handles which are used to access the database. Map from ! to a recent %2. It may be the latest or a few revisions behind.Configuration of the  monad.QThe hostname where RethinkDB is running. The port is currently not configurable.YRethinkDB supports multiple databases. This is the name of the one which should be used.1The influx server where avers reports metrics to.Function which saves the given blob in the blob store. This can be the local filesystem or an external services such as Amazon S3.*TODO: Propagate errors back to the caller.-All the object types which Avers knows about.An A describes a particular type of object that is managed by Avers.The value of the type field of the K.qAction which generates a new id. This is so that object types can have different strategies how to generate ids. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./01234KLMNOPQRSTWXYZ[\]`abcdghijklmnoyz{|}~./J+,-IHGFE()*DCBA@0%&'?>=<;:1!$#"98765234 VVVVSTRKLMNOPQU____WXYZ[\]^ffff`abcdexxxxnowvklmutsrqghijp~yz{|}a !$#"%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ NoneNone 3=K>?@ABCDEFGH >?@ABCDEFGHNone !"3BhConstruct the table name for the given view. The table names look something like this: "view_openGames"  NoneWApply the given op on the value. Can throw an exception if the operation is invalid.Resolve the path in the object. Given an ( which was created against a particular Ig (content), rebase it on top of patches which were created against the very same content in parallel.pThis function assumes that the patches apply cleanly to the content. Failure to do so results in a fatal error. JKLMNOP JKLMNOP None3M True if the object exists. Lookup an K by its ( . Throws  if the object doesn't exist.<Create a new object of the given type. An initial snapshot (%* 0) is created from the supplied content.Mark the object as deleted. Prune the object from the database. This is only allowed if the object is marked as deleted. Note that this is a very dangerous operation, it can not be undone. 4Fetch the content of the object and try to parse it.This function will fail with a : if the content can not be decoded into the desired type. <Get the snapshot of the newest revision of the given object.Get the newest snapshot which is stored in the database. The object may be at a higher revision if the later snapshots are missing from the database.OThis is an internal function. If you want the latest snapshot, you should use  .XVerify the value against the secret. If that fails, then this function throws an error.bThis function automatically updates the secret in the database if the scrypt params have changed.@Internal function which actually saves a secret in the database.=Lookup an object type which is registered in the Avers monad.'\Create a new release of the given revision. If the object doesn't exist, it will fail with .>     #The object which you want to updateThe %* against which the operations were created CommitterThe operations to apply$True if validation should be skipped !"#$%&'()*+,->      !"#$%&'()*+,->      !"#$%&'()*+,-3       !"#$%&'()*+,- None !"#$%&'()*+,-./01KLMNOPQSTWXYZ[\]`abcdghijklmnoyz{|}~    !"#$&'()*++,-./()*0%&'1!$#" KLMNOPQ *+WXYZ[\]ST`abcd  no&'( !"~yz{|})klmghij#$Q     !"#$%&'()*+,-./0122344566789:;<=>?@ABCDEFGHIJKLMNOPQRSTUUVWXYZ[\]^_``abcdefghhijklmnnopqqrsstuvwxyz{|}}~  \                                     !"#$%&'()*+,-./01123456789: ;<=>?@ABCD avers-0.0.2Avers.TH Avers.IndexAvers.Storage.Expressions Avers.Types Avers.MetricsAvers.Storage.Backend Avers.ViewsAvers.Patching Avers.StorageAvers aeson-0.8.0.2 Data.Aeson.TH deriveJSONData.Aeson.Types.ClasstoJSONToJSON parseJSONFromJSON IndexTypeArbitraryIndex MultiIndex CompoundIndex SimpleIndexIndex indexName indexTypeprimaryKeyFieldprimaryKeyFieldE objectFieldEobjectFieldEqE primaryKeyEqEheadEderiveJSONOptionsvariantOptionsdefaultVariantOptionsderiveEncodingderiveRecordEncoding OperationSpliceopIndexopRemoveopInsertSetopPathopValueObjectIdAuthorizationObjectIdReleaseObjectId BaseObjectIdRevIdunRevIdObjIdunObjIdPathunPathPktoPk rootObjId zeroRevIdobjectIdParser parseObjectId objectIdBase$fToDatumObjectId$fFromDatumObjectId$fFromJSONObjectId$fToJSONObjectId $fPkObjectId$fToDatumRevId$fFromDatumRevId$fFromJSONRevId $fToJSONRevId $fPkRevId $fEnumRevId$fToDatumObjId$fFromDatumObjId$fFromJSONObjId $fToJSONObjId $fPkObjId $fToDatumPath$fFromDatumPath$fFromJSONPath $fToJSONPath$fIsStringPath$fPkTextObjectobjectId objectTypeobjectCreatedAtobjectCreatedBy objectDeletedPatchM PatchErrorUnknownPatchError $fPkObject$fToJSONOperationPatch patchObjectIdpatchRevisionId patchAuthorIdpatchCreatedAtpatchOperation $fPkPatch$fToJSONObjectSnapshotsnapshotObjectIdsnapshotRevisionIdsnapshotContent $fPkSnapshot $fToJSONPatchSecretsecretId secretValueSecretId unSecretIdRelease $fPkSecret$fToDatumSecretId$fFromDatumSecretId$fFromJSONSecretId$fToJSONSecretId $fPkSecretId$fFromJSONRelease$fToJSONRelease$fToJSONSnapshotBlobblobIdblobSizeblobContentTypeBlobIdunBlobId$fPkBlob$fToDatumBlobId$fFromDatumBlobId$fFromJSONBlobId$fToJSONBlobId $fPkBlobId$fToJSONSecretSession sessionIdsessionAccountIdsessionCreatedAtsessionLastAccessedAt SessionId unSessionId $fPkSession$fToDatumSessionId$fFromDatumSessionId$fFromJSONSessionId$fToJSONSessionId $fPkSessionId $fToJSONBlobSomeViewViewviewName viewParserviewObjectTransformer viewIndices MonadAvers liftAversrunAvers AversStateconfigdatabaseHandlePoolrecentRevisionCache AversConfig databaseHost databaseName influxConfigputBlob objectTypesSomeObjectType ObjectTypeotTypeotIdotViews AversError NotAuthorizedDocumentNotFoundObjectNotFoundUnknownObjectType ParseError DatabaseError InternalError internalErrorinternal databaseError patchError parseErrordocumentNotFoundstrErr parseValueAsnewDatabaseHandlePoolnewState evalAvers$fMonadAversStateT$fMonadAversAvers$fToJSONSessionPoint pointMachinepointComponent pointValue reportPoint$fToSeriesDataPoint parseValue parseDatumrunQuerySingleSelection runQueryDatumrunQueryrunQueryCollectexistsDocumentlookupDocumentinsertDocumentdeleteDocumentupsertDocumentRecordrecId recContent viewTableupdateObjectViews updateView$fToDatumRecord$fToJSONRecord $fPkRecordapplyOperation resolvePathInopOTrebaseOperation AversPatch PatchState psObjectType psObjectId psRevisionId psCommitterId psOperationspsNumConsumedOperationspsBaseSnapshotpsLatestSnapshotpsPreviousPatches psPatches requireResult blobsTable objectsTable patchesTable secretsTable sessionsTablesnapshotsTabletraceexists lookupObject createObject deleteObject pruneObject objectContentlookupLatestSnapshotapplyPatchToSnapshot applyPatcheslookupRecentRevisionupdateRecentRevisionnewestSnapshotlookupSnapshot savePatch saveSnapshot updateSecret verifySecretsaveSecretValuepatchesAfterRevision lookupPatchlookupObjectTypeapplyObjectUpdates patchHandler existsBlob lookupBlob insertBlobsaveBlobContent saveSession lookupSession dropSessionnewIdvalidateObjectvalidateWithType lookupRelease createReleaselookupLatestRelease createBlob objectsOfTypeallObjectsOfType isNotDeletedmapId dropPrefix dasherizeTagderiveEncodingWithDefaultsderiveJSONWithDefaultsderiveFromJSONWithDefaults modifyObjectmkInsertDefaultsderiveDatumWithDefaultsderiveFromDatumWithDefaultsmodifyDatumObjectmkInsertDatumDefaultsmkAppsmkAppTys getTyInfotyVarBndrNames getFieldNames WriteResponsewriteResponseInsertedwriteResponseDeletedwriteResponseReplacedwriteResponseUnchangedwriteResponseSkippedwriteResponseErrorscheckWriteResponsemergePk$fToDatumWriteResponseData.Aeson.Types.InternalValueisString hasObjectId pathElements changeObject changeArraychangeObjectAt matchObjectId