Module aya.base

Interface ResolvingStmt

All Known Subinterfaces:
ResolvingStmt.ResolvingDecl
All Known Implementing Classes:
ResolvingStmt.GenStmt, ResolvingStmt.MiscDecl, ResolvingStmt.ModStmt, ResolvingStmt.TopDecl

public sealed interface ResolvingStmt permits ResolvingStmt.ResolvingDecl, ResolvingStmt.GenStmt, ResolvingStmt.ModStmt
Stmt that is resolving, stores some extra information (i.e. the context 'inside' of it). This is a functional construction, it is similar to the following agda code:
   postulate
     Context : Set

   data Stmt : Set where
     FnDecl : Stmt
     DataDecl : Stmt
     DataCon : Stmt

   data ExtInfo : Stmt -> Set where
     ExtData : Context -> ExtInfo DataDecl
     ExtFn : Context -> ExtInfo FnDecl
     -- trivial extra info
     ExtCon : ExtInfo DataCon

   ResolvingStmt : Set _
   ResolvingStmt = Σ[ s ∈ Stmt ] ExtInfo s