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

Safe Haskell | Safe
Language | Haskell2010

Darcs.Patch.RepoType

Synopsis

- data RepoType = RepoType {
  - rebaseType :: RebaseType
  }
- class IsRepoType rt where
- data SRepoType repoType where
  - SRepoType :: SRebaseType rebaseType -> SRepoType (RepoType rebaseType)
- data RebaseType
  - = IsRebase
  - | NoRebase
- class IsRebaseType rebaseType
- type family RebaseTypeOf (rt :: RepoType) :: RebaseType
- data SRebaseType rebaseType where
  - SIsRebase :: SRebaseType IsRebase
  - SNoRebase :: SRebaseType NoRebase

# Documentation

data RepoType #

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 |
Fields rebaseType :: RebaseType

class IsRepoType rt where #

Minimal complete definition

singletonRepoType

Methods

singletonRepoType :: SRepoType rt #

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

Instances

IsRebaseType rebaseType => IsRepoType (RepoType rebaseType) # |
Methods singletonRepoType :: SRepoType (RepoType rebaseType) #

data SRepoType repoType where #

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 #

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 #

Minimal complete definition

singletonRebaseType

Instances

IsRebaseType IsRebase # |
Methods singletonRebaseType :: SRebaseType IsRebase
IsRebaseType NoRebase # |
Methods singletonRebaseType :: SRebaseType NoRebase

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

Extract the `RebaseType` from a `RepoType`

Instances

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

data SRebaseType rebaseType where #

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

Constructors

SIsRebase :: SRebaseType IsRebase |
SNoRebase :: SRebaseType NoRebase |