futhark-0.25.27: An optimising compiler for a functional, array-oriented language.

Safe Haskell | Safe-Inferred
Language | GHC2021

Language.Futhark.TypeChecker.Terms.Pat

Description

Type checking of patterns.

Synopsis

- binding :: [Ident StructType] -> TermTypeM a -> TermTypeM a
- bindingParams :: [TypeParam] -> [PatBase NoInfo VName ParamType] -> ([Pat ParamType] -> TermTypeM a) -> TermTypeM a
- bindingPat :: [SizeBinder VName] -> PatBase NoInfo VName (TypeBase Size u) -> StructType -> (Pat ParamType -> TermTypeM a) -> TermTypeM a
- bindingIdent :: IdentBase NoInfo VName StructType -> StructType -> (Ident StructType -> TermTypeM a) -> TermTypeM a
- bindingSizes :: [SizeBinder VName] -> TermTypeM a -> TermTypeM a

# Documentation

binding :: [Ident StructType] -> TermTypeM a -> TermTypeM a Source #

Bind these identifiers locally while running the provided action.

bindingParams :: [TypeParam] -> [PatBase NoInfo VName ParamType] -> ([Pat ParamType] -> TermTypeM a) -> TermTypeM a Source #

Check and bind type and value parameters.

bindingPat :: [SizeBinder VName] -> PatBase NoInfo VName (TypeBase Size u) -> StructType -> (Pat ParamType -> TermTypeM a) -> TermTypeM a Source #

Check and bind a `let`-pattern.

bindingIdent :: IdentBase NoInfo VName StructType -> StructType -> (Ident StructType -> TermTypeM a) -> TermTypeM a Source #

Bind a single term-level identifier.

bindingSizes :: [SizeBinder VName] -> TermTypeM a -> TermTypeM a Source #

Bind `let`-bound sizes. This is usually followed by `bindingPat` immediately afterwards.