Idris2Doc : Language.Reflection.Unify.Interface

Language.Reflection.Unify.Interface

(source)

Definitions

recordUnificationTask : Type
  Unification task

Totality: total
Visibility: public export
Constructor: 
MkUniTask : (lhsFreeVars : VectlfvArg) -> {auto0_ : AllIsNamedArglhsFreeVars} ->TTImp-> (rhsFreeVars : VectrfvArg) -> {auto0_ : AllIsNamedArgrhsFreeVars} ->TTImp->UnificationTask

Projections:
.lfv : UnificationTask->Nat
  Amount of left-hand-side free variables
0.lhsAreNamed : ({rec:0} : UnificationTask) ->AllIsNamedArg (lhsFreeVars{rec:0})
.lhsExpr : UnificationTask->TTImp
  Left-hand-side expression
.lhsFreeVars : ({rec:0} : UnificationTask) ->Vect (lfv{rec:0}) Arg
  Left-hand-side free variables
.rfv : UnificationTask->Nat
  Amount of right-hand-side free variables
0.rhsAreNamed : ({rec:0} : UnificationTask) ->AllIsNamedArg (rhsFreeVars{rec:0})
.rhsExpr : UnificationTask->TTImp
  Right-hand-side expression
.rhsFreeVars : ({rec:0} : UnificationTask) ->Vect (rfv{rec:0}) Arg
  Right-hand-side free variables

Hint: 
ShowUnificationTask
.lfv : UnificationTask->Nat
  Amount of left-hand-side free variables

Totality: total
Visibility: public export
lfv : UnificationTask->Nat
  Amount of left-hand-side free variables

Totality: total
Visibility: public export
.lhsFreeVars : ({rec:0} : UnificationTask) ->Vect (lfv{rec:0}) Arg
  Left-hand-side free variables

Totality: total
Visibility: public export
lhsFreeVars : ({rec:0} : UnificationTask) ->Vect (lfv{rec:0}) Arg
  Left-hand-side free variables

Totality: total
Visibility: public export
0.lhsAreNamed : ({rec:0} : UnificationTask) ->AllIsNamedArg (lhsFreeVars{rec:0})
Totality: total
Visibility: public export
0lhsAreNamed : ({rec:0} : UnificationTask) ->AllIsNamedArg (lhsFreeVars{rec:0})
Totality: total
Visibility: public export
.lhsExpr : UnificationTask->TTImp
  Left-hand-side expression

Totality: total
Visibility: public export
lhsExpr : UnificationTask->TTImp
  Left-hand-side expression

Totality: total
Visibility: public export
.rfv : UnificationTask->Nat
  Amount of right-hand-side free variables

Totality: total
Visibility: public export
rfv : UnificationTask->Nat
  Amount of right-hand-side free variables

Totality: total
Visibility: public export
.rhsFreeVars : ({rec:0} : UnificationTask) ->Vect (rfv{rec:0}) Arg
  Right-hand-side free variables

Totality: total
Visibility: public export
rhsFreeVars : ({rec:0} : UnificationTask) ->Vect (rfv{rec:0}) Arg
  Right-hand-side free variables

Totality: total
Visibility: public export
0.rhsAreNamed : ({rec:0} : UnificationTask) ->AllIsNamedArg (rhsFreeVars{rec:0})
Totality: total
Visibility: public export
0rhsAreNamed : ({rec:0} : UnificationTask) ->AllIsNamedArg (rhsFreeVars{rec:0})
Totality: total
Visibility: public export
.rhsExpr : UnificationTask->TTImp
  Right-hand-side expression

Totality: total
Visibility: public export
rhsExpr : UnificationTask->TTImp
  Right-hand-side expression

Totality: total
Visibility: public export
recordFVData : Type
  Free variable output data

Totality: total
Visibility: public export
Constructor: 
MkFVData : Name->String->Count->PiInfoTTImp->TTImp->MaybeTTImp->FVData

Projections:
.holeName : FVData->String
  Free variable hole name
.name : FVData->Name
  Free variable name
.piInfo : FVData->PiInfoTTImp
  Free variable PiInfo
.rig : FVData->Count
  Free variable count
.type : FVData->TTImp
  Free variable type
.value : FVData->MaybeTTImp
  Free variable value

Hints:
EqFVData
InterpolationFVData
ShowFVData
.name : FVData->Name
  Free variable name

Totality: total
Visibility: public export
name : FVData->Name
  Free variable name

Totality: total
Visibility: public export
.holeName : FVData->String
  Free variable hole name

Totality: total
Visibility: public export
holeName : FVData->String
  Free variable hole name

Totality: total
Visibility: public export
.rig : FVData->Count
  Free variable count

Totality: total
Visibility: public export
rig : FVData->Count
  Free variable count

Totality: total
Visibility: public export
.piInfo : FVData->PiInfoTTImp
  Free variable PiInfo

Totality: total
Visibility: public export
piInfo : FVData->PiInfoTTImp
  Free variable PiInfo

Totality: total
Visibility: public export
.type : FVData->TTImp
  Free variable type

Totality: total
Visibility: public export
type : FVData->TTImp
  Free variable type

Totality: total
Visibility: public export
.value : FVData->MaybeTTImp
  Free variable value

Totality: total
Visibility: public export
value : FVData->MaybeTTImp
  Free variable value

Totality: total
Visibility: public export
makeFVData : (String, (Arg, (Name, (TTImp, MaybeTTImp)))) ->FVData
  Make FVData out of most its components and an argument

Totality: total
Visibility: export
recordFVDeps : Nat->Type
Totality: total
Visibility: public export
Constructor: 
MkFVDeps : FinSetfreeVars->FinSetfreeVars->FinSetfreeVars->FVDepsfreeVars

Projections:
.piInfoDeps : FVDepsfreeVars->FinSetfreeVars
.typeDeps : FVDepsfreeVars->FinSetfreeVars
.valueDeps : FVDepsfreeVars->FinSetfreeVars

Hints:
Eq (FVDepsfreeVars)
Show (FVDepsfreeVars)
.typeDeps : FVDepsfreeVars->FinSetfreeVars
Totality: total
Visibility: public export
typeDeps : FVDepsfreeVars->FinSetfreeVars
Totality: total
Visibility: public export
.valueDeps : FVDepsfreeVars->FinSetfreeVars
Totality: total
Visibility: public export
valueDeps : FVDepsfreeVars->FinSetfreeVars
Totality: total
Visibility: public export
.piInfoDeps : FVDepsfreeVars->FinSetfreeVars
Totality: total
Visibility: public export
piInfoDeps : FVDepsfreeVars->FinSetfreeVars
Totality: total
Visibility: public export
mergeDeps : FVDepsfv->FinSetfv
Totality: total
Visibility: export
removeDeps : FinSetfv->FVDepsfv->FVDepsfv
Totality: total
Visibility: export
recordDependencyGraph : Type
  Free variable depenfdency graph

Totality: total
Visibility: public export
Constructor: 
MkDG : (freeVars : Nat) ->VectfreeVarsFVData->VectfreeVars (FVDepsfreeVars) ->FinSetfreeVars->SortedMapName (FinfreeVars) ->SortedMapString (FinfreeVars) ->DependencyGraph

Projections:
.empties : ({rec:0} : DependencyGraph) ->FinSet (freeVars{rec:0})
  The set of all i: (Fin freeVars), where (index i fvData).value = None
.freeVars : DependencyGraph->Nat
  Free variable amount
.fvData : ({rec:0} : DependencyGraph) ->Vect (freeVars{rec:0}) FVData
  Free variable data
.fvDeps : ({rec:0} : DependencyGraph) ->Vect (freeVars{rec:0}) (FVDeps (freeVars{rec:0}))
  Free variable dependency matrix
.holeToId : ({rec:0} : DependencyGraph) ->SortedMapString (Fin (freeVars{rec:0}))
  For all i : (Fin freeVars); (lookup (index i fvData).holeName holeToId) = i
.nameToId : ({rec:0} : DependencyGraph) ->SortedMapName (Fin (freeVars{rec:0}))
  For all i : (Fin freeVars); (lookup (index i fvData).name nameToId) = i

Hints:
EqDependencyGraph
ShowDependencyGraph
.freeVars : DependencyGraph->Nat
  Free variable amount

Totality: total
Visibility: public export
freeVars : DependencyGraph->Nat
  Free variable amount

Totality: total
Visibility: public export
.fvData : ({rec:0} : DependencyGraph) ->Vect (freeVars{rec:0}) FVData
  Free variable data

Totality: total
Visibility: public export
fvData : ({rec:0} : DependencyGraph) ->Vect (freeVars{rec:0}) FVData
  Free variable data

Totality: total
Visibility: public export
.fvDeps : ({rec:0} : DependencyGraph) ->Vect (freeVars{rec:0}) (FVDeps (freeVars{rec:0}))
  Free variable dependency matrix

Totality: total
Visibility: public export
fvDeps : ({rec:0} : DependencyGraph) ->Vect (freeVars{rec:0}) (FVDeps (freeVars{rec:0}))
  Free variable dependency matrix

Totality: total
Visibility: public export
.empties : ({rec:0} : DependencyGraph) ->FinSet (freeVars{rec:0})
  The set of all i: (Fin freeVars), where (index i fvData).value = None

Totality: total
Visibility: public export
empties : ({rec:0} : DependencyGraph) ->FinSet (freeVars{rec:0})
  The set of all i: (Fin freeVars), where (index i fvData).value = None

Totality: total
Visibility: public export
.nameToId : ({rec:0} : DependencyGraph) ->SortedMapName (Fin (freeVars{rec:0}))
  For all i : (Fin freeVars); (lookup (index i fvData).name nameToId) = i

Totality: total
Visibility: public export
nameToId : ({rec:0} : DependencyGraph) ->SortedMapName (Fin (freeVars{rec:0}))
  For all i : (Fin freeVars); (lookup (index i fvData).name nameToId) = i

Totality: total
Visibility: public export
.holeToId : ({rec:0} : DependencyGraph) ->SortedMapString (Fin (freeVars{rec:0}))
  For all i : (Fin freeVars); (lookup (index i fvData).holeName holeToId) = i

Totality: total
Visibility: public export
holeToId : ({rec:0} : DependencyGraph) ->SortedMapString (Fin (freeVars{rec:0}))
  For all i : (Fin freeVars); (lookup (index i fvData).holeName holeToId) = i

Totality: total
Visibility: public export
recordUnificationResult : Type
  Unification result

Totality: total
Visibility: public export
Constructor: 
MkUR : UnificationTask-> (uniDg : DependencyGraph) ->SortedMapNameTTImp->SortedMapNameTTImp->SortedMapNameTTImp->List (Fin (uniDg.freeVars)) ->UnificationResult

Projections:
.fullResult : UnificationResult->SortedMapNameTTImp
  All free variable values
.lhsResult : UnificationResult->SortedMapNameTTImp
  LHS free variable (polymorphic constructor argument) values
.order : ({rec:0} : UnificationResult) ->List (Fin ((uniDg{rec:0}) .freeVars))
  Order of dependency of free variables without values
(specialised constructor arguments)
.rhsResult : UnificationResult->SortedMapNameTTImp
  RHS free variable (specialised type argument) values
.task : UnificationResult->UnificationTask
  Task given to the unifier
.uniDg : UnificationResult->DependencyGraph
  Dependency graph returned by the unifier

Hints:
Cast (Either (MaybeUnificationError) UnificationResult) UnificationVerdict
ShowUnificationResult
.task : UnificationResult->UnificationTask
  Task given to the unifier

Totality: total
Visibility: public export
task : UnificationResult->UnificationTask
  Task given to the unifier

Totality: total
Visibility: public export
.uniDg : UnificationResult->DependencyGraph
  Dependency graph returned by the unifier

Totality: total
Visibility: public export
uniDg : UnificationResult->DependencyGraph
  Dependency graph returned by the unifier

Totality: total
Visibility: public export
.lhsResult : UnificationResult->SortedMapNameTTImp
  LHS free variable (polymorphic constructor argument) values

Totality: total
Visibility: public export
lhsResult : UnificationResult->SortedMapNameTTImp
  LHS free variable (polymorphic constructor argument) values

Totality: total
Visibility: public export
.rhsResult : UnificationResult->SortedMapNameTTImp
  RHS free variable (specialised type argument) values

Totality: total
Visibility: public export
rhsResult : UnificationResult->SortedMapNameTTImp
  RHS free variable (specialised type argument) values

Totality: total
Visibility: public export
.fullResult : UnificationResult->SortedMapNameTTImp
  All free variable values

Totality: total
Visibility: public export
fullResult : UnificationResult->SortedMapNameTTImp
  All free variable values

Totality: total
Visibility: public export
.order : ({rec:0} : UnificationResult) ->List (Fin ((uniDg{rec:0}) .freeVars))
  Order of dependency of free variables without values
(specialised constructor arguments)

Totality: total
Visibility: public export
order : ({rec:0} : UnificationResult) ->List (Fin ((uniDg{rec:0}) .freeVars))
  Order of dependency of free variables without values
(specialised constructor arguments)

Totality: total
Visibility: public export
dataUnificationError : Type
Totality: total
Visibility: public export
Constructors:
CatastrophicError : UnificationError
InternalError : String->UnificationError
TargetTypeError : TTImp->UnificationError
ExtractionError : TTImp->UnificationError
NoUnificationError : UnificationError

Hints:
Cast (Either (MaybeUnificationError) UnificationResult) UnificationVerdict
EqUnificationError
ShowUnificationError
dataUnificationVerdict : Type
Totality: total
Visibility: public export
Constructors:
Success : UnificationResult->UnificationVerdict
Undecided : UnificationVerdict
Fail : UnificationError->UnificationVerdict

Hints:
Cast (Either (MaybeUnificationError) UnificationResult) UnificationVerdict
ShowUnificationVerdict
isSuccess : UnificationVerdict->Bool
Totality: total
Visibility: export
isUndecided : UnificationVerdict->Bool
Totality: total
Visibility: export
isFail : UnificationVerdict->Bool
Totality: total
Visibility: export
interfaceCanUnify : (Type->Type) ->Type
Parameters: m
Constructor: 
MkCanUnify

Methods:
unify : UnificationTask->mUnificationVerdict

Implementation: 
Monadm=>MonadTranst=>CanUnifym=>CanUnify (tm)
unify : CanUnifym=>UnificationTask->mUnificationVerdict
Totality: total
Visibility: public export
finalizeDG : UnificationTask->DependencyGraph->UnificationResult
  Calculate UnificationResult (var-to-value mappings and empty leaf dependency order)

Totality: total
Visibility: export