Idris2Doc : Deriving.DepTyCheck.Util.DeepConsApp

Deriving.DepTyCheck.Util.DeepConsApp

(source)

Reexports

importpublic Control.Monad.Writer.Interface
importpublic Data.Fin.Split
importpublic Data.List.Ex
importpublic Data.List.Map
importpublic Data.List.Set
importpublic Data.SortedSet
importpublic Data.Vect.Ex
importpublic Language.Reflection.Compat.TypeInfo

Definitions

dataConsDetermInfo : Type
Totality: total
Visibility: public export
Constructors:
DeterminedByType : ConsDetermInfo
NotDeterminedByType : ConsDetermInfo
MustDecEqWith : TTImp->ConsDetermInfo

Hints:
CastBoolConsDetermInfo
CastConsDetermInfoBool
MonoidConsDetermInfo
SemigroupConsDetermInfo
ShowConsDetermInfo
ShowConsDetermInfo : ShowConsDetermInfo
Totality: total
Visibility: export
determineMustDecEqs : ConsDetermInfo->ConsDetermInfo
Totality: total
Visibility: public export
BindExprFun : Nat->Type
Totality: total
Visibility: public export
DeepConsAnalysisRes : Bool->Type
Totality: total
Visibility: public export
analyseDeepConsApp : NamesInfoInTypes=>MonadWriter (ListString) m=> (collectConsDetermInfo : Bool) ->SortedSetName->TTImp->m (DeepConsAnalysisRescollectConsDetermInfo)
  Analyses whether the given expression can be an expression of free variables applied (maybe deeply) to a number of data constructors.

Returns which of given free names are actually used in the given expression, in order of appearance in the expression.
Notice that applied free names may repeat as soon as one name is used several times in the given expression.

Also, a function returning a bind expression (an expression replacing all free names with bind names (`IBindVar`))
is also returned.
This function requires bind variable names as input.
It returns correct bind expression only when all given bind names are different.

Totality: total
Visibility: export