Idris2Doc : Core.Case.CaseTree

Core.Case.CaseTree

(source)

Definitions

dataCaseTree : Scoped
  Case trees in A-normal forms
i.e. we may only dispatch on variables, not expressions

Totality: total
Visibility: public export
Constructors:
Case : (idx : Nat) -> (0_ : IsVarnameidxvars) ->Termvars->List (CaseAltvars) ->CaseTreevars
  case x return scTy of { p1 => e1 ; ... }
STerm : Int->Termvars->CaseTreevars
  RHS: no need for further inspection
The Int is a clause id that allows us to see which of the
initial clauses are reached in the tree
Unmatched : String->CaseTreevars
  error from a partial match
Impossible : CaseTreevars
  Absurd context

Hints:
FreelyEmbeddableCaseTree
HasNames (CaseTreevars)
Hashable (CaseTreevars)
Show (CaseTreevars)
StripNamespace (CaseTreevars)
TTC (CaseTreevars)
WeakenCaseTree
dataCaseAlt : Scoped
  Case alternatives. Unlike arbitrary patterns, they can be at most
one constructor deep.

Totality: total
Visibility: public export
Constructors:
ConCase : Name->Int-> (args : ListName) ->CaseTree (addInnervarsargs) ->CaseAltvars
  Constructor for a data type; bind the arguments and subterms.
DelayCase : (ty : Name) -> (arg : Name) ->CaseTree (addInnervars [ty, arg]) ->CaseAltvars
  Lazy match for the Delay type use for codata types
ConstCase : Constant->CaseTreevars->CaseAltvars
  Match against a literal
DefaultCase : CaseTreevars->CaseAltvars
  Catch-all case

Hints:
HasNames (CaseAltvars)
Hashable (CaseAltvars)
Show (CaseAltvars)
StripNamespace (CaseAltvars)
TTC (CaseAltvars)
measure : CaseTreevars->Nat
Visibility: public export
isDefault : CaseAltvars->Bool
Visibility: export
dataPat : Type
Totality: total
Visibility: public export
Constructors:
PAs : FC->Name->Pat->Pat
PCon : FC->Name->Int->Nat->ListPat->Pat
PTyCon : FC->Name->Nat->ListPat->Pat
PConst : FC->Constant->Pat
PArrow : FC->Name->Pat->Pat->Pat
PDelay : FC->LazyReason->Pat->Pat->Pat
PLoc : FC->Name->Pat
PUnmatchable : FC->ClosedTerm->Pat

Hints:
HasNamesPat
HashablePat
PrettyIdrisSyntaxPat
ShowPat
TTCPat
isPConst : Pat->MaybeConstant
Visibility: export
0isConPat : Pat->Bool
Visibility: public export
0IsConPat : Pat->Type
Visibility: public export
eqTree : CaseTreevs->CaseTreevs'->Bool
Visibility: export
getRefs : Name->CaseTreevars->NameMapBool
Visibility: export
addRefs : Name->NameMapBool->CaseTreevars->NameMapBool
Visibility: export
getMetas : CaseTreevars->NameMapBool
Visibility: export
mkTerm : (vars : Scope) ->Pat->Termvars
Visibility: export