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

Safe HaskellSafe
LanguageHaskell2010

Darcs.Patch.RepoType

Synopsis

Documentation

data RepoType Source #

This type is intended to be used as a phantom type via the DataKinds extension. It tracks different types of repositories, e.g. to indicate when a rebase is in progress.

Constructors

RepoType 

class IsRepoType (rt :: RepoType) where Source #

Minimal complete definition

singletonRepoType

Methods

singletonRepoType :: SRepoType rt Source #

Reflect RepoType to the value level so that code can explicitly switch on it.

Instances

IsRebaseType rebaseType => IsRepoType (RepoType rebaseType) Source # 

data SRepoType (repoType :: RepoType) where Source #

A reflection of RepoType at the value level so that code can explicitly switch on it.

Constructors

SRepoType :: SRebaseType rebaseType -> SRepoType (RepoType rebaseType) 

data RebaseType Source #

This type is intended to be used as a phantom type via the DataKinds extension, normally as part of RepoType. Indicates whether or not a rebase is in progress.

Constructors

IsRebase 
NoRebase 

class IsRebaseType (rebaseType :: RebaseType) Source #

Minimal complete definition

singletonRebaseType

type family RebaseTypeOf (rt :: RepoType) :: RebaseType Source #

Extract the RebaseType from a RepoType

Instances

type RebaseTypeOf (RepoType rebaseType) Source # 
type RebaseTypeOf (RepoType rebaseType) = rebaseType

data SRebaseType (rebaseType :: RebaseType) where Source #

A reflection of RebaseType at the value level so that code can explicitly switch on it.