Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Type inference of loop
. This is complicated because of the
uniqueness and size inference, so the implementation is separate
from the main type checker.
Synopsis
- type UncheckedLoop = (UncheckedPat ParamType, UncheckedExp, LoopFormBase NoInfo Name, UncheckedExp)
- type CheckedLoop = ([VName], Pat ParamType, Exp, LoopFormBase Info VName, Exp)
- checkLoop :: (UncheckedExp -> TermTypeM Exp) -> UncheckedLoop -> SrcLoc -> TermTypeM (CheckedLoop, AppRes)
Documentation
type UncheckedLoop = (UncheckedPat ParamType, UncheckedExp, LoopFormBase NoInfo Name, UncheckedExp) Source #
An un-checked loop.
type CheckedLoop = ([VName], Pat ParamType, Exp, LoopFormBase Info VName, Exp) Source #
A loop that has been type-checked.
checkLoop :: (UncheckedExp -> TermTypeM Exp) -> UncheckedLoop -> SrcLoc -> TermTypeM (CheckedLoop, AppRes) Source #
Type-check a loop
expression, passing in a function for
type-checking subexpressions.