unison-parser-typechecker-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Unison.Codebase.Branch.Type

Synopsis

Documentation

type NamespaceHash m = HashFor (Branch0 m) Source #

A Hash for a namespace itself, it doesn't incorporate any history.

newtype Branch m Source #

A node in the Unison namespace hierarchy along with its history.

Constructors

Branch 

Instances

Instances details
Eq (Branch m) Source # 
Instance details

Defined in Unison.Codebase.Branch.Type

Methods

(==) :: Branch m -> Branch m -> Bool #

(/=) :: Branch m -> Branch m -> Bool #

Ord (Branch m) Source # 
Instance details

Defined in Unison.Codebase.Branch.Type

Methods

compare :: Branch m -> Branch m -> Ordering #

(<) :: Branch m -> Branch m -> Bool #

(<=) :: Branch m -> Branch m -> Bool #

(>) :: Branch m -> Branch m -> Bool #

(>=) :: Branch m -> Branch m -> Bool #

max :: Branch m -> Branch m -> Branch m #

min :: Branch m -> Branch m -> Branch m #

AsEmpty (Branch m) Source # 
Instance details

Defined in Unison.Codebase.Branch

Methods

_Empty :: Prism' (Branch m) () #

data Branch0 m Source #

A node in the Unison namespace hierarchy.

$sel:_terms:Branch0 and $sel:_types:Branch0 are the declarations at this level. $sel:_children:Branch0 are the nodes one level below us. $sel:_edits:Branch0 are the Patchs stored at this node in the code.

The remaining fields are derived from the four above. None of the record fields are exported to avoid accidental tweaking without updating the associated derived fields.

Use either the lensy accessors or the field getters.

Instances

Instances details
Eq (Branch0 m) Source # 
Instance details

Defined in Unison.Codebase.Branch.Type

Methods

(==) :: Branch0 m -> Branch0 m -> Bool #

(/=) :: Branch0 m -> Branch0 m -> Bool #

ContentAddressable (Branch0 m) Source # 
Instance details

Defined in Unison.Codebase.Branch

Methods

contentHash :: Branch0 m -> Hash #

data UnconflictedBranchView Source #

A view of a branch's definition (everything outside of lib) that is unconflicted: each name refers to one thing. The data contained within is all just different expressions of the same contents, for various use cases. The intention is to use laziness to avoid recomputing data structures whenever possible.

deleteLibdeps :: Branch0 m -> Branch0 m Source #

deleteLibdeps branch deletes all libdeps from branch.

type Star r n = Star r n Source #