| darcs | Source code | Contents | Index
Darcs.Hopefully
Synopsis
data Hopefully a
data PatchInfoAnd p
piap :: PatchInfo -> Named p -> PatchInfoAnd p
n2pia :: Named p -> PatchInfoAnd p
patchInfoAndPatch :: PatchInfo -> Hopefully (Named p) -> PatchInfoAnd p
conscientiously :: (Doc -> Doc) -> PatchInfoAnd p -> Named p
hopefully :: PatchInfoAnd p -> Named p
info :: PatchInfoAnd p -> PatchInfo
hopefullyM :: Monad m => PatchInfoAnd p -> m (Named p)
createHashed :: String -> (String -> IO (Sealed a)) -> IO (Sealed (Hopefully a))
extractHash :: PatchInfoAnd p -> Either (Named p) String
actually :: a -> Hopefully a
unavailable :: String -> Hopefully a
Documentation
data Hopefully a | Source
``Hopefully` p C` `(x y)` is ``Either` String (p C` `(x y))` in a form adapted to darcs patches. The `C` `(x y)` represents the type witness for the patch that should be there. The `Hopefully` type just tells whether we expect the patch to be hashed or not, and `SimpleHopefully` does the real work of emulating `Either`. `Hopefully sh` represents an expected unhashed patch, and `Hashed hash sh` represents an expected hashed patch with its hash.
data PatchInfoAnd p | Source
``PatchInfoAnd` p` represents a hope we have to get a patch through its info. We're not sure we have the patch, but we know its info.
Instances
MyEq p => MyEq (PatchInfoAnd p)
Invert p => Invert (PatchInfoAnd p)
ReadPatch p => ReadPatch (PatchInfoAnd p)
(Conflict p, Effect p, ShowPatch p) => ShowPatch (PatchInfoAnd p)
Commute p => Commute (PatchInfoAnd p)
Apply p => Apply (PatchInfoAnd p)
RepoPatch p => Patchy (PatchInfoAnd p)
Effect p => Effect (PatchInfoAnd p)
Conflict p => Conflict (PatchInfoAnd p)
piap :: PatchInfo -> Named p -> PatchInfoAnd p | Source
``piap` i p` creates a PatchInfoAnd containing p with info i.
n2pia :: Named p -> PatchInfoAnd p | Source
`n2pia` creates a PatchInfoAnd representing a `Named` patch.
patchInfoAndPatch :: PatchInfo -> Hopefully (Named p) -> PatchInfoAnd p | Source
conscientiously :: (Doc -> Doc) -> PatchInfoAnd p -> Named p | Source
``conscientiously` er hp` tries to extract a patch from a `PatchInfoAnd`. If it fails, it applies the error handling function `er` to a description of the patch info component of `hp`.
hopefully :: PatchInfoAnd p -> Named p | Source
``hopefully` hp` tries to get a patch from a `PatchInfoAnd` value. If it fails, it outputs an error "failed to read patch: <description of the patch>". We get the description of the patch from the info part of hp
info :: PatchInfoAnd p -> PatchInfo | Source
hopefullyM :: Monad m => PatchInfoAnd p -> m (Named p) | Source
`hopefullyM` is a version of `hopefully` which calls `fail` in a monad instead of erroring.
createHashed :: String -> (String -> IO (Sealed a)) -> IO (Sealed (Hopefully a)) | Source
extractHash :: PatchInfoAnd p -> Either (Named p) String | Source
actually :: a -> Hopefully a | Source
unavailable :: String -> Hopefully a | Source
Produced by Haddock version 2.4.2