Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Type checking of patterns.
Synopsis
- binding :: [Ident StructType] -> TermTypeM a -> TermTypeM a
- bindingParams :: [UncheckedTypeParam] -> [UncheckedPat ParamType] -> ([TypeParam] -> [Pat ParamType] -> TermTypeM a) -> TermTypeM a
- bindingPat :: [SizeBinder VName] -> UncheckedPat (TypeBase Size u) -> StructType -> (Pat ParamType -> TermTypeM a) -> TermTypeM a
- bindingIdent :: IdentBase NoInfo Name StructType -> StructType -> (Ident StructType -> TermTypeM a) -> TermTypeM a
- bindingSizes :: [SizeBinder Name] -> ([SizeBinder VName] -> TermTypeM a) -> TermTypeM a
- doNotShadow :: [Name]
Documentation
binding :: [Ident StructType] -> TermTypeM a -> TermTypeM a Source #
Bind these identifiers locally while running the provided action.
bindingParams :: [UncheckedTypeParam] -> [UncheckedPat ParamType] -> ([TypeParam] -> [Pat ParamType] -> TermTypeM a) -> TermTypeM a Source #
Check and bind type and value parameters.
bindingPat :: [SizeBinder VName] -> UncheckedPat (TypeBase Size u) -> StructType -> (Pat ParamType -> TermTypeM a) -> TermTypeM a Source #
Check and bind a let
-pattern.
bindingIdent :: IdentBase NoInfo Name StructType -> StructType -> (Ident StructType -> TermTypeM a) -> TermTypeM a Source #
Bind a single term-level identifier.
bindingSizes :: [SizeBinder Name] -> ([SizeBinder VName] -> TermTypeM a) -> TermTypeM a Source #
Bind let
-bound sizes. This is usually followed by bindingPat
immediately afterwards.
doNotShadow :: [Name] Source #
Names that may not be shadowed.