unison-core-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

U.Codebase.Reference

Synopsis

Documentation

type Reference = Reference' Text Hash Source #

This is the canonical representation of Reference

type RReference = Reference' Text (Maybe Hash) Source #

A possibly-self (R = "recursive") reference.

type TermReference = Reference Source #

A term reference.

type TermRReference = RReference Source #

A possibly-self term reference.

type TermReferenceId = Id Source #

A term reference id.

type TypeReference = Reference Source #

A type declaration reference.

type TypeRReference = RReference Source #

A possibly-self type declaration reference.

type TypeReferenceId = Id Source #

A type declaration reference id.

data Reference' t h Source #

Either a builtin or a user defined (hashed) top-level declaration. Used for both terms and types.

Instances

Instances details
Bifoldable Reference' Source # 
Instance details

Defined in U.Codebase.Reference

Methods

bifold :: Monoid m => Reference' m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> Reference' a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> Reference' a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> Reference' a b -> c #

Bifunctor Reference' Source # 
Instance details

Defined in U.Codebase.Reference

Methods

bimap :: (a -> b) -> (c -> d) -> Reference' a c -> Reference' b d #

first :: (a -> b) -> Reference' a c -> Reference' b c #

second :: (b -> c) -> Reference' a b -> Reference' a c #

Bitraversable Reference' Source # 
Instance details

Defined in U.Codebase.Reference

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Reference' a b -> f (Reference' c d) #

Functor (Reference' t) Source # 
Instance details

Defined in U.Codebase.Reference

Methods

fmap :: (a -> b) -> Reference' t a -> Reference' t b #

(<$) :: a -> Reference' t b -> Reference' t a #

Generic (Reference' t h) Source # 
Instance details

Defined in U.Codebase.Reference

Associated Types

type Rep (Reference' t h) :: Type -> Type #

Methods

from :: Reference' t h -> Rep (Reference' t h) x #

to :: Rep (Reference' t h) x -> Reference' t h #

(Show t, Show h) => Show (Reference' t h) Source # 
Instance details

Defined in U.Codebase.Reference

Methods

showsPrec :: Int -> Reference' t h -> ShowS #

show :: Reference' t h -> String #

showList :: [Reference' t h] -> ShowS #

(Eq t, Eq h) => Eq (Reference' t h) Source # 
Instance details

Defined in U.Codebase.Reference

Methods

(==) :: Reference' t h -> Reference' t h -> Bool #

(/=) :: Reference' t h -> Reference' t h -> Bool #

(Ord t, Ord h) => Ord (Reference' t h) Source # 
Instance details

Defined in U.Codebase.Reference

Methods

compare :: Reference' t h -> Reference' t h -> Ordering #

(<) :: Reference' t h -> Reference' t h -> Bool #

(<=) :: Reference' t h -> Reference' t h -> Bool #

(>) :: Reference' t h -> Reference' t h -> Bool #

(>=) :: Reference' t h -> Reference' t h -> Bool #

max :: Reference' t h -> Reference' t h -> Reference' t h #

min :: Reference' t h -> Reference' t h -> Reference' t h #

type Rep (Reference' t h) Source # 
Instance details

Defined in U.Codebase.Reference

type Rep (Reference' t h) = D1 ('MetaData "Reference'" "U.Codebase.Reference" "unison-core-0.0.0-7TTEaGpY3e79hYDTKjX5dL" 'False) (C1 ('MetaCons "ReferenceBuiltin" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 t)) :+: C1 ('MetaCons "ReferenceDerived" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Id' h))))

type TermReference' t h = Reference' t h Source #

A type declaration reference.

type TypeReference' t h = Reference' t h Source #

A term declaration reference.

pattern Derived :: h -> Pos -> Reference' t h Source #

type Id = Id' Hash Source #

data Id' h Source #

Pos is a position into a cycle, as cycles are hashed together.

Constructors

Id h Pos 

Instances

Instances details
Foldable Id' Source # 
Instance details

Defined in U.Codebase.Reference

Methods

fold :: Monoid m => Id' m -> m #

foldMap :: Monoid m => (a -> m) -> Id' a -> m #

foldMap' :: Monoid m => (a -> m) -> Id' a -> m #

foldr :: (a -> b -> b) -> b -> Id' a -> b #

foldr' :: (a -> b -> b) -> b -> Id' a -> b #

foldl :: (b -> a -> b) -> b -> Id' a -> b #

foldl' :: (b -> a -> b) -> b -> Id' a -> b #

foldr1 :: (a -> a -> a) -> Id' a -> a #

foldl1 :: (a -> a -> a) -> Id' a -> a #

toList :: Id' a -> [a] #

null :: Id' a -> Bool #

length :: Id' a -> Int #

elem :: Eq a => a -> Id' a -> Bool #

maximum :: Ord a => Id' a -> a #

minimum :: Ord a => Id' a -> a #

sum :: Num a => Id' a -> a #

product :: Num a => Id' a -> a #

Traversable Id' Source # 
Instance details

Defined in U.Codebase.Reference

Methods

traverse :: Applicative f => (a -> f b) -> Id' a -> f (Id' b) #

sequenceA :: Applicative f => Id' (f a) -> f (Id' a) #

mapM :: Monad m => (a -> m b) -> Id' a -> m (Id' b) #

sequence :: Monad m => Id' (m a) -> m (Id' a) #

Functor Id' Source # 
Instance details

Defined in U.Codebase.Reference

Methods

fmap :: (a -> b) -> Id' a -> Id' b #

(<$) :: a -> Id' b -> Id' a #

Show h => Show (Id' h) Source # 
Instance details

Defined in U.Codebase.Reference

Methods

showsPrec :: Int -> Id' h -> ShowS #

show :: Id' h -> String #

showList :: [Id' h] -> ShowS #

Eq h => Eq (Id' h) Source # 
Instance details

Defined in U.Codebase.Reference

Methods

(==) :: Id' h -> Id' h -> Bool #

(/=) :: Id' h -> Id' h -> Bool #

Ord h => Ord (Id' h) Source # 
Instance details

Defined in U.Codebase.Reference

Methods

compare :: Id' h -> Id' h -> Ordering #

(<) :: Id' h -> Id' h -> Bool #

(<=) :: Id' h -> Id' h -> Bool #

(>) :: Id' h -> Id' h -> Bool #

(>=) :: Id' h -> Id' h -> Bool #

max :: Id' h -> Id' h -> Id' h #

min :: Id' h -> Id' h -> Id' h #

t_ :: Prism (Reference' t h) (Reference' t' h) t t' Source #

h_ :: Traversal (Reference' t h) (Reference' t h') h h' Source #

idH :: Lens (Id' h) (Id' h') h h' Source #

component :: Hash -> [k] -> [(k, Id)] Source #