darcs-2.12.5: a distributed, interactive, smart revision control system

Safe HaskellNone
LanguageHaskell2010

Darcs.Patch.Named.Wrapped

Synopsis

Documentation

data WrappedNamed rt p wX wY where Source #

A layer inbetween the 'Named p' type and 'PatchInfoAnd p' design for holding "internal" patches such as the rebase container. Ideally these patches would be stored at the repository level but this would require some significant refactoring/cleaning up of that code.

Constructors

NormalP :: !(Named p wX wY) -> WrappedNamed rt p wX wY 
RebaseP :: (PrimPatchBase p, FromPrim p, Effect p) => !PatchInfo -> !(Suspended p wX wX) -> WrappedNamed (RepoType IsRebase) p wX wX 

Instances

Show2 p => Show2 (WrappedNamed rt p) Source # 

Methods

showDict2 :: ShowDict (WrappedNamed rt p wX wY) Source #

PatchListFormat (WrappedNamed rt p) Source # 
Commute p => Commute (WrappedNamed rt p) Source # 

Methods

commute :: (WrappedNamed rt p :> WrappedNamed rt p) wX wY -> Maybe ((WrappedNamed rt p :> WrappedNamed rt p) wX wY) Source #

PatchInspect p => PatchInspect (WrappedNamed rt p) Source # 

Methods

listTouchedFiles :: WrappedNamed rt p wX wY -> [FilePath] Source #

hunkMatches :: (ByteString -> Bool) -> WrappedNamed rt p wX wY -> Bool Source #

Invert p => Invert (WrappedNamed rt p) Source # 

Methods

invert :: WrappedNamed rt p wX wY -> WrappedNamed rt p wY wX Source #

Merge p => Merge (WrappedNamed rt p) Source # 

Methods

merge :: (WrappedNamed rt p :\/: WrappedNamed rt p) wX wY -> (WrappedNamed rt p :/\: WrappedNamed rt p) wX wY Source #

(ReadPatch p, PrimPatchBase p, FromPrim p, Effect p, PatchListFormat p, IsRepoType rt) => ReadPatch (WrappedNamed rt p) Source # 

Methods

readPatch' :: ParserM m => m (Sealed (WrappedNamed rt p wX)) Source #

Apply p => Apply (WrappedNamed rt p) Source # 

Associated Types

type ApplyState (WrappedNamed rt p :: * -> * -> *) :: (* -> *) -> * Source #

Methods

apply :: ApplyMonad (ApplyState (WrappedNamed rt p)) m => WrappedNamed rt p wX wY -> m () Source #

RepairToFL p => Repair (WrappedNamed rt p) Source # 

Methods

applyAndTryToFix :: ApplyMonad (ApplyState (WrappedNamed rt p)) m => WrappedNamed rt p wX wY -> m (Maybe (String, WrappedNamed rt p wX wY)) Source #

Check p => Check (WrappedNamed rt p) Source # 

Methods

isInconsistent :: WrappedNamed rt p wX wY -> Maybe Doc Source #

(ShowPatch p, PatchListFormat p, Apply p, PrimPatchBase p, IsHunk p, Conflict p, CommuteNoConflicts p) => ShowPatch (WrappedNamed rt p) Source # 

Methods

showNicely :: WrappedNamed rt p wX wY -> Doc Source #

showContextPatch :: (Monad m, ApplyMonad (ApplyState (WrappedNamed rt p)) m) => WrappedNamed rt p wX wY -> m Doc Source #

description :: WrappedNamed rt p wX wY -> Doc Source #

summary :: WrappedNamed rt p wX wY -> Doc Source #

summaryFL :: FL (WrappedNamed rt p) wX wY -> Doc Source #

thing :: WrappedNamed rt p wX wY -> String Source #

things :: WrappedNamed rt p wX wY -> String Source #

(ShowPatchBasic p, PatchListFormat p) => ShowPatchBasic (WrappedNamed rt p) Source # 

Methods

showPatch :: WrappedNamed rt p wX wY -> Doc Source #

IsHunk (WrappedNamed rt p) Source # 

Methods

isHunk :: WrappedNamed rt p wX wY -> Maybe (FileHunk wX wY) Source #

PrimPatchBase p => PrimPatchBase (WrappedNamed rt p) Source # 

Associated Types

type PrimOf (WrappedNamed rt p :: * -> * -> *) :: * -> * -> * Source #

Effect p => Effect (WrappedNamed rt p) Source # 

Methods

effect :: WrappedNamed rt p wX wY -> FL (PrimOf (WrappedNamed rt p)) wX wY Source #

effectRL :: WrappedNamed rt p wX wY -> RL (PrimOf (WrappedNamed rt p)) wX wY Source #

(CommuteNoConflicts p, Conflict p) => Conflict (WrappedNamed rt p) Source # 
Show2 p => Show1 (WrappedNamed rt p wX) Source # 

Methods

showDict1 :: ShowDict (WrappedNamed rt p wX wX) Source #

Show2 p => Show (WrappedNamed rt p wX wY) Source # 

Methods

showsPrec :: Int -> WrappedNamed rt p wX wY -> ShowS #

show :: WrappedNamed rt p wX wY -> String #

showList :: [WrappedNamed rt p wX wY] -> ShowS #

type ApplyState (WrappedNamed rt p) Source # 
type PrimOf (WrappedNamed rt p) Source # 
type PrimOf (WrappedNamed rt p) = PrimOf p

activecontents :: WrappedNamed rt p wX wY -> FL p wX wY Source #

Return a list of the underlying patches that are actually active in the repository, i.e. not suspended as part of a rebase

infopatch :: PatchInfo -> FL p wX wY -> WrappedNamed rt p wX wY Source #

namepatch :: String -> String -> String -> [String] -> FL p wX wY -> IO (WrappedNamed rt p wX wY) Source #

anonymous :: FL p wX wY -> IO (WrappedNamed rt p wX wY) Source #

adddeps :: WrappedNamed rt p wX wY -> [PatchInfo] -> WrappedNamed rt p wX wY Source #

runInternalChecker :: InternalChecker p -> forall wX wY. p wX wY -> EqCheck wX wY Source #

namedInternalChecker :: forall rt p. IsRepoType rt => Maybe (InternalChecker (WrappedNamed rt p)) Source #

Is the given WrappedNamed patch an internal implementation detail that shouldn't be visible in the UI or included in tags/matchers etc? Two-level checker for efficiency: if the value of this is Nothing for a given patch type then there's no need to inspect patches of this type at all, as none of them can be internal.

namedIsInternal :: IsRepoType rt => WrappedNamed rt p wX wY -> EqCheck wX wY Source #

Is the given WrappedNamed patch an internal implementation detail that shouldn't be visible in the UI or included in tags/matchers etc?

removeInternalFL :: IsRepoType rt => FL (WrappedNamed rt p) wX wY -> FL (Named p) wX wY Source #

fmapFL_WrappedNamed Source #

Arguments

:: (FL p wA wB -> FL q wA wB) 
-> ((RebaseTypeOf rt :~~: IsRebase) -> p :~: q)

If the patch might be a rebase container patch, then p and q must be the same type, as no transformation is applied. This function provides a witness to this requirement: if 'RebaseTypeOf rt' might be IsRebase, then it must be able to return a proof that p and q are equal. If 'RebaseTypeOf rt' must be NoRebase, then this function can never be called with a valid value.

-> WrappedNamed rt p wA wB 
-> WrappedNamed rt q wA wB 

lift a function over an FL of patches to one over a 'WrappedNamed rt'. The function is only applied to "normal" patches, and any rebase container patch is left alone.

data a :~: b where Source #

Constructors

ReflPatch :: a :~: a 

data a :~~: b where Source #

Constructors

ReflRebaseType :: a :~~: a