!qH      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q rstuvwxyz{|}~          Safegit$An element of a computed difference.git=The difference between two lists using the patience algorithmSafe-j      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixSafegh BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone 3(ijklmnopqrstuvwxyz{|}~ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone20 gitReference wasn't foundgitTInvalid Reference exception raised when using something that is not a ref as a ref.git represent a git reference (SHA1)gitMtake a hexadecimal bytestring that represent a reference and turn into a refgitItake a hexadecimal string that represent a reference and turn into a refgit.transform a ref into an hexadecimal bytestringgit*transform a ref into an hexadecimal stringgitMtransform a bytestring that represent a binary bytestring and returns a ref.gitMtransform a bytestring that represent a binary bytestring and returns a ref.git)turn a reference into a binary bytestringgit3returns the prefix (leading byte) of this referencegitcompare prefixgitTreturns the splitted format "prefix/suffix" for addressing the loose object databasegit"hash a bytestring into a referencegit'hash a lazy bytestring into a reference gitAny hash algorithm  !  ! BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone2 BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone5gitMGet a configuration element in a stack of config file, starting from the top.gitstack of configgit section namegitkey name ,-./01None5 BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone><2gitpossible commands in a delta5gitDa delta is a source size, a destination size and a list of delta cmd7gitparse a delta. format is 2 variable sizes, followed by delta cmds. for each cmd: * if first byte MSB is set, we copy from source. * otherwise, we copy from delta. * extensions are not handled.8git&read one delta from a lazy bytestring.9git?apply a delta on a lazy bytestring, returning a new bytestring.2345678956234789 BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNoneXAFgitcontent of a ref file.JgitRepresent a named specifier.gitMlist all the loose refs available recursively from a directory starting point>?@ABCDEFGHIJKLMNOPQRSTUVWXYZJKLMNOPQRSFGHICDET>?@ABXYZUVW BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixSafe2K*dgit;Exception when a revision cannot be resolved to a referencefgitA git revision. this can be many things: * a shorten ref * a ref * a named branch or tag followed by optional modifiers h: that can represent: * parenting * type * datehgitBA modifier to a revision, which is a function apply of a revisionigitparent accessor ^ n and ^jgitparent accessor ~ nkgit@{type} accessorlgit@{date} accessormgit @{n} accessor defghijklm fghijklmde BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNoneXL BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone2Pgit:seek in a handle, and reset the remaining buffer to empty.gitparse from a filebuffergitOget a Variable Length Field. get byte as long as MSB is set, and one byte after BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNoneR  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone_gitCrepresent an packIndex header with the version and the fanout tablegit2enumerate every indexes file in the pack directorygit open an indexgitclose an indexgit;variant of withFile on the index file and with a FileReadergit;returns the number of references, referenced in this index.git!byte size of an packIndex header.git@get the number of reference in this index with a specific prefixgit#fold on refs with a specific prefixgit4return the reference offset in the packfile if foundgit(get all references that start by prefix.gitZreturns absolute offset in the index file of the sha1s, the crcs and the packfiles offset.gitparse index headergit*read index header from an index filereadergit(get index header from an index referencegitread all index|}~|}~ BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone2qgitDelta pointing to a ref.gitDelta pointing to an offset.gitRepresent a signed tag.gitRepresent a commit object.gitRepresent a binary blob.git5Represent a root tree with zero to many tree entries.git2an author or committer line has the format: name  emailv time timezone FIXME: should be a string, but I don't know if the data is stored consistantly in one encoding (UTF8)gitrepresent one entry in the tree (permission,file or directory name,blob or tree ref) name should maybe a filepath, but not sure about the encoding.git Entity namegita bitfield representing a typical unix permission: * bit 0 represents the read permission * bit 1 represents the write permission * bit 2 represents the execute permissiongit<traditional unix permission for owner, group and permissionsgitGit object file typegitdGit time is number of seconds since unix epoch in the UTC zone with the current timezone associatedgittype of a git object.git:the enum instance is useful when marshalling to pack file.DD  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone}xgitdescribe a git object, that could of 6 differents types: tree, blob, commit, tag and deltas (offset or ref). the deltas one are only available in packs.gittRaw objects infos have an header (type, size, ptr), the data and a pointers chains to parents for resolved objects. gitsDelta objects points to some others objects in the database either as offset in the pack or as a direct reference. git%location of an object in the databasegitparse a tree contentgitparse a blob contentgitparse a commit contentgitparse a tag content5      !"#$5      !"#$  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone;git5Enumerate the pack refs available in this repository.<git open a pack=git close a pack>git)return the number of entries in this pack?gitLread an object at a specific position using a map function on the objectData@git%read an object at a specific positionAgit0read a raw representation at a specific positionBgitJenumerate all objects in this pack and callback to f for reach raw objects3456789:;<=>?@ABCD3456789:;<=>?@ABCD  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone%X Jgit5unmarshall an object (with header) from a bytestring.Kgit8unmarshall an object (with header) from a zipped stream.Lgit>unmarshall an object as (header, data) tuple from a bytestringMgitAunmarshall an object as (header, data) tuple from a zipped streamNgitGread a specific ref from a loose object and returns an header and data.Ogit'read only the header of a loose object.Pgit=read a specific ref from a loose object and returns an objectQgit.check if a specific ref exists as loose objectRgit5enumarate all prefixes available in the object store.Sgit:enumerate all references available with a specific prefix.Ugit4marshall as lazy bytestring an object except deltas.Vgitkcreate a new blob on a temporary location and on success move it to the object store with its digest name.Wgitwrite an object to disk as a loose reference. use looseWriteBlobFromFile for efficiently writing blobs when being commited from a file.GHIJKLMNOPQRSTUVWGHIJLKMUPONQVWRST  BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNoneXqZgitUrepresent a git repo, with possibly already opened filereaders for indexes and packsgit5this is a cache representation of the packed-ref file^git!open a new git repository context_gitBclose a git repository context, closing all remaining fileReaders.`git3Find the git repository from the current directory.If the environment variable GIT_DIR is set then it's used, otherwise iterate from current directory, up to 128 parents for a .git directoryagit3Find the git repository from the current directory.If the environment variable GIT_DIR is set then it's used, otherwise iterate from current directory, up to 128 parents for a .git directorybgit(execute a function f with a git context.cgit-execute a function on the current repository.6check findRepo to see how the git repository is found.dgit=basic checks to see if a specific path looks like a git repo.egit3initialize a new repository at a specific location.fgit!read the repository's descriptionggit set the repository's descriptionigit/Get the object location of a specific referencejgit6get all the references that start by a specific prefixkgitget an object from repositorylgitget an object from repositorymgit"get an object type from repositoryngit?get an object from repository using a location to reference it.ogit*get an object from repository using a ref.pgit Just like oJ but will raise a RefNotFound exception if the reference cannot be found.qgitbset an object in the store and returns the new ref this is always going to create a loose object.ogit repositorygitthe object's reference togit"whether to resolve deltas if foundgitreturned object if foundpgit repositorygitthe object's reference togit"whether to resolve deltas if foundgitreturned object if foundZ][\^_`abcdefghijklmnopqZ\[]^_bc`adefghijlkopnmq BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNone%2Xgit6Exception when trying to convert an object pointed by  to a type that is differentsgitJhierarchy tree, either a reference to a blob (file) or a tree (directory).vgitget a specified commitwgit[get a specified commit but raises an exception if doesn't exists or type is not appropriatexgitget a specified treeygitget a specified tree but raisezgit^try to resolve a string to a specific commit ref for example: HEAD, HEAD^, master~3, shortRef{gitIreturns a tree from a ref that might be either a commit, a tree or a tag.|gitARewrite a set of commits from a revision and returns the new ref.If during revision traversal (diving) there's a commit with zero or multiple parents then the traversal will stop regardless of the amount of parent requested.;calling "rewrite f 2 (revisionOf d)" on the following tree:a <-- b <-- c <-- d2result in the following tree after mapping with f:a <-- f(b) <-- f(c) <-- f(d)}git)build a hierarchy tree from a tree object~gitIresolve the ref (tree or blob) related to a path at a specific commit refgit/Write a branch to point to a specific referencegitReturn the list of branchesgit,Write a tag to point to a specific referencegitReturn the list of branchesgit9Set head to point to either a reference or a branch name.git<Get what the head is pointing to, or the reference otherwisegitRead the ConfiggitGet a configuration element from the config file, starting from the local repository config file, then the global config file.6for example the equivalent to git config user.name is: configGet git "user" "name"|git RepositorygitMapping functiongitrevision to start fromgitthe number of parents to mapgitreturn the new head REF~git repositorygitcommit referencegitpathsgit repositorygitthe name of the branch to writegitthe reference to setgit repositorygitthe name of the tag to writegitthe reference to setgit repositorygit'either a raw reference or a branch namegit Git contextgit section namegitkey namegit The resulting value if it exists!,-./01CDEZderstuvwxyz{|}~!Z01,-./rstuCDEvwxy|}~{zed BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNoneM@gitCreate a new worktreegit(Create a worktree from a tree reference.git!delete a path from a working tree-if the path doesn't exist, no error is raisedgit2Set a file in this working tree to a specific ref.wThe ref should point to a valid blob or tree object, and it's safer to write the referenced tree or blob object first.gitrFlush the worktree by creating all the necessary trees in the git store and return the root ref of the work tree.   BSD-style#Vincent Hanquez <vincent@snarc.org> experimentalunixNoneVCDEfZabcdeoqwyz{|~VCDEfz{~Zcbaed|owyq BSD-style&Nicolas DI PRIMA <nicolas@di-prima.fr> experimentalunixNone=?SX' git%ReadOnly operations on a given commitgitNBasic operations common between the different Monads defined in this package.git6the current Monad must allow access to the current Gitgit~this is a convenient class to allow a common interface for what user may need to optain a Ref from a given Resolvable object.each of this instances is a convenient implementation of what a user would have to do in order to resolve a branch, a tag or a String. Zresolve (Ref "2ad98b90...2ca") === Ref "2ad98b90...2ca" resolve "master" resolve "HEAD^^^"git-get the content of the file at the given PathQif the given Path is not a file or does not exist, the function returns Nothing.git4list the element present in the Given Directory PathVif the given Path is not a directory or does not exist, the function returns Nothing.git%open a commit in the current GitMonadDRead commit's info (Author, Committer, message...) or Commit's Tree. withCurrentRepo $ withCommit "master" $ do -- print the commit's author information author <- getAuthor liftGit $ print author -- print the list of files|dirs in the root directory l <- getDir [] liftGit $ print lgitreplace the Commit's Authorgitreplace the Commit's Committergitreplace the Commit's Parentsgitreplace the Commit's Extrasgitreplace the Commit's encodinggit8replace the Commit's message with the new given message.git.add a new file in in the Commit's Working Treegit-delete a file from the Commit's Working Tree.git+create a new commit in the current GitMonad;The commit is pre-filled with the following default values:!author and committer are the same%the commit's parents is an empty listthere is no commit encoding$the commit's extras is an empty list)the commit message is an empty ByteString\the working tree is a new empty Tree or the Tree associated to the given Revision or Ref.KYou can update these values with the commit setters (setFile, setAuthor...)Example: withCurrentRepo $ do (r, ()) <- withNewCommit person (Nothing :: Maybe (Ref SHA1)) $ do setMessage "inital commit" setFile ["README.md"] "# My awesome project\n\nthis is a new project\n" branchWrite "master" r you can also continue the work on a same branch. In this case the commit's parent is already set to the Reference associated to the revision. You can, change the parents if you wish to erase, or replace, this value. &withCurrentRepo $ do readmeContent <- withCommit (Just "master") $ getFile ["README.md"] (r, ()) <- withNewCommit person (Just "master") $ do setMessage "update the README" setFile ["README.md"] $ readmeContent <> "just add some more description\n" branchWrite "master" rgit&create or continue to work on a branchThis is a convenient function to create or to linearily work on a branch. This function applies a first Collect of information on the parent commit (the actual branch's commit). Then it creates a new commit and update the branch to point to this commit. for example: withCurrentRepo $ withBranch person "master" True (getAuthor) (maybe (setMessage "initial commit on this branch") (author -> setMessage $ "continue the great work of " ++ show (personName author)) ) git9the commit Ref, Revision ("master", "HEAD^^" or a ref...)git(the commit revision or reference to opengit8by default a commit must have an Author and a Committer.;The given value will be given to both Author and Committer.gitHit is possible to prepopulate the Working Tree with a given Ref's Tree.gitPthe action to perform in the new commit (set files, Person, encoding or extras)git&the default Author and Committer (see )gitthe branch to work ongitHpropopulate the parent's tree (if it exists) in the new created commit.fIn any cases, if the branch already exists, the new commit parent will be filled with the result of (resolv "branchName")git?the action to performs in the parent's new commit if it exists.git(the action to performs in the new commit>the argument is the result of the action on the parent commit.%Nothing if the parent does not exist.8CDEZ8ZCDE BSD-style&Nicolas DI PRIMA <nicolas@di-prima.fr> experimentalunixNoneGI gitThis is a proposed diff records for a given file. It contains useful information: * the filename (with its path in the root project) * a file diff (with the Data.Algorithm.Patience method) * the file's mode (i.e. the file priviledge) * the file's refgitRepresents a file state between two revisions A file (a blob) can be present in the first Tree's revision but not in the second one, then it has been deleted. If only in the second Tree's revision, then it has been created. If it is in the both, maybe it has been changed.git6This is a blob description at a given state (revision)gitPrepresents a blob's content (i.e., the content of a file at a given reference).gitText file's linesgitBinary contentgitDgenerate a diff list between two revisions with a given diff helper.}Useful to extract any kind of information from two different revisions. For example you can get the number of deleted files: dgetdiffwith f 0 head^ head git where f (OnlyOld _) acc = acc+1 f _ acc = accOr save the list of new files: ugetdiffwith f [] head^ head git where f (OnlyNew bs) acc = (bsFilename bs):acc f _ acc = accgitoA default Diff getter which returns all diff information (Mode, Content and Binary) with a context of 5 lines. (getDiff = getDiffWith (defaultDiff 5) []gitA default diff helper. It is an example about how you can write your own diff helper or you can use it if you want to get all of differences.gitTwo 0 are equal if they have the same filename, i.e., 7((BlobState x _ _ _) == (BlobState y _ _ _)) = (x == y)git1diff helper (State -> accumulator -> accumulator)git accumulatorgit%commit reference (the original state)git commit reference (the new state)git repositorygitNumber of line for contextgit AccumulatorgitAccumulator with a new content// ! "#$%&'()*+,,--./0123456789:;<=>?@ABCDEFGHIIJKLLMNOPPQRSTUVWXXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{||}}~                                   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; ; < = > ? @ A B C D E F G H I J K L M N N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v wxyz{|}~}hi        ! " # $ % & ' ( ( )*+*+*,-.-/-0-12323242525262727289:9:9;9<9<9=9>9>9?9@9@9A9B9B9C9D9D9E9F9F9GHIHJKLMNOPQRSTUVWXYZ[\]^_`abcdedfdgdhdijkljkmjknjkojkpjkqjkrjksjktjkujkvjkwjkxyz{y|}y|~y|y|  git-0.3.0-KlljUyd4J3RFHeoY5fiY1XData.Git.Revision Data.Git.RefData.Git.Diff.PatienceData.Git.RepositoryData.Git.DeltaData.Git.NamedData.Git.Storage.PackIndexData.Git.TypesData.Git.Storage.ObjectData.Git.Storage.PackData.Git.Storage.LooseData.Git.StorageData.GitData.Git.Monad Data.Git.DiffData.Git.ImportsData.Git.Internal Data.Git.OS Data.Git.PathData.Git.ConfigData.Git.ParserData.Git.Storage.CacheFileData.Git.Storage.FileReaderData.Git.Storage.FileWriterData.Git.WorkTreebase Data.String fromString%cryptonite-0.25-1VY3WdimbMoh8etp8TxXECrypto.Hash.SHA1SHA1Crypto.Hash.TypeshashDigestSize HashAlgorithmItemOldNewBothdiff $fFunctorItem $fShowPiece $fShowItem$fEqItem RefNotFound RefInvalidRefisHex isHexStringfromHex fromHexStringtoHex toHexString fromBinary fromDigesttoBinary refPrefix cmpPrefixtoFilePathPartshashhashLBShashAlghashAlgFromRef $fShowRef$fExceptionRefInvalid$fExceptionRefNotFound$fEqRef$fOrdRef$fShowRefInvalid$fEqRefInvalid$fDataRefInvalid$fShowRefNotFound$fEqRefNotFoundSection sectionName sectionKVsConfigDeltaCmd DeltaCopyDeltaSrcDelta deltaParse deltaRead deltaApply$fShowDeltaCmd $fEqDeltaCmd $fShowDelta $fEqDelta PackedRefs packedRemotes packedBranchs packedTagsRefName refNameRaw RefContentTy RefDirectRefLinkRefContentUnknown RefSpecTyRefHead RefOrigHead RefFetchHead RefBranchRefTag RefRemote RefPatchesRefStashRefOtherreadPackedRefslooseHeadsList looseTagsListlooseRemotesList existsRefFile writeRefFile readRefFile$fIsStringRefName $fShowRefName $fEqRefName $fOrdRefName$fShowRefSpecTy $fEqRefSpecTy$fOrdRefSpecTy$fShowRefContentTy$fEqRefContentTyRevisionNotFoundRevision RevModifier RevModParentRevModParentFirstN RevModAtType RevModAtDate RevModAtN$fShowRevModifier$fIsStringRevision$fShowRevision $fMonadStream$fAlternativeStream$fApplicativeStream$fFunctorStream$fEqRevModifier$fDataRevModifier $fEqRevision$fDataRevision$fShowRevisionNotFound$fEqRevisionNotFound$fDataRevisionNotFound PackIndexpackIndexSha1s packIndexCRCspackIndexPackoffspackIndexPackChecksumpackIndexChecksumPackIndexHeaderpackIndexEnumerate packIndexOpenpackIndexClose withPackIndexpackIndexHeaderGetNbWithPrefixpackIndexGetReferenceLocation packIndexGetReferencesWithPrefixpackIndexReadHeaderpackIndexGetHeader packIndexRead$fShowPackIndexHeader$fEqPackIndexHeaderDeltaRefDeltaOfsTagtagRef tagObjectTypetagBlobtagNametagS CommitExtracommitExtraKeycommitExtraValueCommit commitTreeish commitParents commitAuthorcommitCommittercommitEncoding commitExtras commitMessageBlobblobGetContentTree treeGetEntsPerson personName personEmail personTimeTreeEntEntPathEntNamegetEntNameBytesFilePermissions getOwnerPerm getGroupPerm getOtherPermObjectFileTypeFileTypeDirectoryFileTypeRegularFileFileTypeSymbolicLinkFileTypeGitLinkModePermGitTime gitTimeUTCgitTimeTimezone ObjectTypeTypeTreeTypeBlob TypeCommitTypeTag TypeDeltaOff TypeDeltaRefgitTimegitTimeToLocal getPermission getFiletypeentName entPathAppend$fEnumObjectType $fShowGitTime $fTimeGitTime$fTimeableGitTime$fIsStringEntName $fShowEntName$fShowObjectType$fEqObjectType$fDataObjectType $fEqGitTime$fShowModePerm $fEqModePerm$fShowObjectFileType$fEqObjectFileType$fShowFilePermissions$fEqFilePermissions $fEqEntName $fOrdEntName $fShowPerson $fEqPerson $fShowTree$fEqTree $fShowBlob$fEqBlob$fShowCommitExtra$fEqCommitExtra $fShowCommit $fEqCommit $fShowTag$fEqTag$fShowDeltaOfs $fEqDeltaOfs$fShowDeltaRef $fEqDeltaRef ObjectablegetTypegetRawisDeltatoObjectObject ObjCommitObjTagObjBlobObjTree ObjDeltaOfs ObjDeltaRef ObjectInfooiHeaderoiDataoiChains ObjectData ObjectHeader ObjectPtrPtrRefPtrOfsObjectLocationNotFoundLoosePacked objectToTypeobjectTypeMarshallobjectTypeUnmarshallobjectTypeIsDelta objectIsDelta objectToTreeobjectToCommit objectToTag objectToBlob treeParse blobParse commitParsetagParseobjectParseTreeobjectParseCommitobjectParseTagobjectParseBlobobjectWriteHeader objectWrite objectHash$fObjectableDeltaRef$fObjectableDeltaOfs$fObjectableTree$fObjectableTag$fObjectableCommit$fObjectableBlob$fShowObjectLocation$fEqObjectLocation$fShowObjectPtr $fEqObjectPtr$fShowObjectInfo$fEqObjectInfo $fShowObject $fEqObjectPackedObjectInfopoiType poiOffsetpoiSize poiActualSizepoiExtraPackedObjectRaw packEnumeratepackOpen packClosepackReadHeaderpackReadMapAtOffsetpackReadAtOffsetpackReadRawAtOffsetpackEnumerateObjectspackedObjectToObjectpackObjectFromRaw$fShowPackedObjectInfo$fEqPackedObjectInfoZipped getZippedDatalooseUnmarshalllooseUnmarshallZippedlooseUnmarshallRawlooseUnmarshallZippedRaw looseReadRawlooseReadHeader looseRead looseExistslooseEnumeratePrefixeslooseEnumerateWithPrefixFilterlooseEnumerateWithPrefix looseMarshalllooseWriteBlobFromFile looseWrite $fShowZipped $fEqZippedGit gitRepoPath packedNamedconfigsopenRepo closeRepo findRepoMaybefindRepowithRepowithCurrentRepoisRepoinitRepogetDescriptionsetDescriptioniterateIndexes findReferencefindReferencesWithPrefixgetObjectRawAt getObjectRaw getObjectType getObjectAt getObject getObject_ setObjectHTreeHTreeEntTreeDirTreeFilegetCommitMaybe getCommit getTreeMaybegetTreeresolveRevisionresolveTreeishrewrite buildHTree resolvePath branchWrite branchListtagWritetagListheadSetheadGet configGetAll configGet$fExceptionInvalidType$fShowInvalidType$fEqInvalidTypeEntType EntDirectoryEntFile EntExecutableWorkTree workTreeNew workTreeFromworkTreeDelete workTreeSet workTreeFlushCommitM CommitAccessMGitMGitMonadgetGitliftGit Resolvableresolve headResolv getAuthor getCommitter getParents getExtras getEncoding getMessagegetFilegetDir withCommit setAuthor setCommitter setParents setExtras setEncoding setMessagesetFile deleteFile withNewCommit withBranch$fResolvableRefName$fResolvable[]$fResolvableRevision$fResolvableRef$fGitMonadGitM $fMonadGitM$fApplicativeGitM $fFunctorGitM$fGitMonadCommitAccessM$fMonadCommitAccessM$fApplicativeCommitAccessM$fFunctorCommitAccessM$fGitMonadCommitM$fMonadCommitM$fApplicativeCommitM$fFunctorCommitMGitDiff hFileName hFileContent hFileModehFileRef GitFileRefNewRefOldRef ModifiedRef UnModifiedRef GitFileModeNewModeOldMode ModifiedModeUnModifiedModeGitFileContent NewBinaryFile OldBinaryFile NewTextFile OldTextFileModifiedBinaryFile ModifiedFileUnModifiedFile FilteredDiff NormalLine SeparatorTextLine lineNumber lineContent BlobStateDiffOnlyOldOnlyNew OldAndNew BlobState bsFilenamebsModebsRef bsContent BlobContent FileContent BinaryContent getDiffWithgetDiff defaultDiff $fEqBlobState $fOrdTextLine $fEqTextLine$fShowBlobContent$fShowBlobState Control.MonadguardGHC.BasejoinMonad>>=>>returnfailFunctorfmap<$ Applicativepure<*>*>liftA2<*Data.TraversablemapMsequence<>Monoidmemptymappendmconcatmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMforMControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.ConstConstgetConst Data.Foldablemsum sequence_forM_mapM_ Data.MonoidFirstgetFirstLastgetLastApgetApData.Semigroup.InternalDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductAltgetAlt Data.Functorvoid<$>apliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA<**> Alternativeempty<|>somemany MonadPlusmzeromplusbe32be16GHC.IO.Handle.TypesHandle GHC.IO.HandlehClose GHC.IO.IOModeIOModeReadMode WriteMode AppendMode ReadWriteMode-system-fileio-0.3.16.4-HlRuLFEUs5510FaMgZTWEJ Filesystem writeFilereadFilewithFileopenFilegetSizegetHomeDirectorygetWorkingDirectory removeFile listDirectorycreateDirectoryrename isDirectoryisFile-system-filepath-0.4.14-FRUtJu5zAWTG9MKrRBz8D6Filesystem.Path.CurrentOSvalidFilesystem.Path stripPrefixabsoluteparentMTime LocalPathlistDirectoryFilenamecreateParentDirectory readTextFile writeTextFiletimeZerogetMTime getEnvAsPathlocalPathDecodelocalPathEncodereadBinaryFilewriteBinaryFilereadBinaryFileLazy configPath headsPathtagsPath remotesPathpackedRefsPathheadPathtagPath remotePath specialPath remoteEntPath packDirPath indexPathpackPath objectPathobjectPathOfRefobjectTemporaryPathget readConfigreadGlobalConfig listSections%memory-0.14.18-8LdYq1aaDAu34qW98bOKgtData.ByteArray.ParsetakeAll takeWhiletakebytesbyteanyBytehasMoreparse parseFeedResult ParseFail ParseMoreParseOKParservlfword32ref referenceBin referenceHexdecimalstring maybeParsemaybeParseChunks eitherParseeitherParseChunkstakeUntilASCIItillEOLskipEOL skipASCII takeWhile1listRefs CacheFile newCacheVal getCacheValfileReaderSeekfileReaderParsefileReaderGetVLF FileReader fileReaderNewfileReaderClosewithFileReaderwithFileReaderDecompressfileReaderGetPos fileReaderGetfileReaderGetLBSfileReaderGetBSfileReaderGetReffileReaderInflateToSize FileWriter writerDigest writerDeflate writerHandledefaultCompressionmodifyIORefStrict fileWriterNewwithFileWriter postDeflatefileWriterOutputfileWriterClosefileWriterGetDigestpackIndexHeaderGetSizepackIndexHeaderByteSizepackIndexHeaderFoldRefpackIndexOffsetsparsePackIndexHeaderPermCachedPackedRef InvalidType resolvPath