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

Unison.UnisonFile.Type

Synopsis

Documentation

data UnisonFile v a Source #

Instances

Instances details
Generic (UnisonFile v a) Source # 
Instance details

Defined in Unison.UnisonFile.Type

Associated Types

type Rep (UnisonFile v a) :: Type -> Type #

Methods

from :: UnisonFile v a -> Rep (UnisonFile v a) x #

to :: Rep (UnisonFile v a) x -> UnisonFile v a #

(Show a, Show v) => Show (UnisonFile v a) Source # 
Instance details

Defined in Unison.UnisonFile.Type

Methods

showsPrec :: Int -> UnisonFile v a -> ShowS #

show :: UnisonFile v a -> String #

showList :: [UnisonFile v a] -> ShowS #

type Rep (UnisonFile v a) Source # 
Instance details

Defined in Unison.UnisonFile.Type

type Rep (UnisonFile v a) = D1 ('MetaData "UnisonFile" "Unison.UnisonFile.Type" "unison-parser-typechecker-0.0.0-KNkVGbTXlis2lnVjsRIJUx" 'False) (C1 ('MetaCons "UnisonFileId" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dataDeclarationsId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map v (TypeReferenceId, DataDeclaration v a))) :*: S1 ('MetaSel ('Just "effectDeclarationsId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map v (TypeReferenceId, EffectDeclaration v a)))) :*: (S1 ('MetaSel ('Just "terms") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map v (a, Term v a))) :*: S1 ('MetaSel ('Just "watches") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map WatchKind [(v, a, Term v a)])))))

pattern UnisonFile :: Map v (TypeReference, DataDeclaration v a) -> Map v (TypeReference, EffectDeclaration v a) -> Map v (a, Term v a) -> Map WatchKind [(v, a, Term v a)] -> UnisonFile v a Source #

data TypecheckedUnisonFile v a Source #

A UnisonFile after typechecking. Terms are split into groups by cycle and the type of each term is known.

Instances

Instances details
Ord v => Functor (TypecheckedUnisonFile v) Source # 
Instance details

Defined in Unison.UnisonFile.Type

Generic (TypecheckedUnisonFile v a) Source # 
Instance details

Defined in Unison.UnisonFile.Type

Associated Types

type Rep (TypecheckedUnisonFile v a) :: Type -> Type #

(Show a, Show v) => Show (TypecheckedUnisonFile v a) Source # 
Instance details

Defined in Unison.UnisonFile.Type

type Rep (TypecheckedUnisonFile v a) Source # 
Instance details

Defined in Unison.UnisonFile.Type

type Rep (TypecheckedUnisonFile v a) = D1 ('MetaData "TypecheckedUnisonFile" "Unison.UnisonFile.Type" "unison-parser-typechecker-0.0.0-KNkVGbTXlis2lnVjsRIJUx" 'False) (C1 ('MetaCons "TypecheckedUnisonFileId" 'PrefixI 'True) ((S1 ('MetaSel ('Just "dataDeclarationsId'") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map v (TypeReferenceId, DataDeclaration v a))) :*: S1 ('MetaSel ('Just "effectDeclarationsId'") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map v (TypeReferenceId, EffectDeclaration v a)))) :*: (S1 ('MetaSel ('Just "topLevelComponents'") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[(v, a, Term v a, Type v a)]]) :*: (S1 ('MetaSel ('Just "watchComponents") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(WatchKind, [(v, a, Term v a, Type v a)])]) :*: S1 ('MetaSel ('Just "hashTermsId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map v (a, TermReferenceId, Maybe WatchKind, Term v a, Type v a)))))))

pattern TypecheckedUnisonFile :: Map v (TypeReference, DataDeclaration v a) -> Map v (TypeReference, EffectDeclaration v a) -> [[(v, a, Term v a, Type v a)]] -> [(WatchKind, [(v, a, Term v a, Type v a)])] -> Map v (a, TermReference, Maybe WatchKind, Term (F v a a) v a, Term F v a) -> TypecheckedUnisonFile v a Source #