purescript-0.15.15: PureScript Programming Language Compiler

Safe Haskell | None
Language | Haskell2010

Language.PureScript.TypeChecker.Types

Description

This module implements the type checker

Synopsis

- data BindingGroupType
  - = RecursiveBindingGroup
  - | NonRecursiveBindingGroup
- typesOf :: (MonadSupply m, MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => BindingGroupType -> ModuleName -> [((SourceAnn, Ident), Expr)] -> m [((SourceAnn, Ident), (Expr, SourceType))]
- checkTypeKind :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack) => SourceType -> SourceType -> m ()

# Documentation

data BindingGroupType #

Constructors

RecursiveBindingGroup |
NonRecursiveBindingGroup |

#### Instances

Instances details

Show BindingGroupType # |
Instance details Defined in Language.PureScript.TypeChecker.Types Methods showsPrec :: Int -> BindingGroupType -> ShowS # show :: BindingGroupType -> String # showList :: [BindingGroupType] -> ShowS #
Eq BindingGroupType # |
Instance details Defined in Language.PureScript.TypeChecker.Types Methods (==) :: BindingGroupType -> BindingGroupType -> Bool # (/=) :: BindingGroupType -> BindingGroupType -> Bool #
Ord BindingGroupType # |
Instance details Defined in Language.PureScript.TypeChecker.Types Methods compare :: BindingGroupType -> BindingGroupType -> Ordering # (<) :: BindingGroupType -> BindingGroupType -> Bool # (<=) :: BindingGroupType -> BindingGroupType -> Bool # (>) :: BindingGroupType -> BindingGroupType -> Bool # (>=) :: BindingGroupType -> BindingGroupType -> Bool # max :: BindingGroupType -> BindingGroupType -> BindingGroupType # min :: BindingGroupType -> BindingGroupType -> BindingGroupType #

typesOf :: (MonadSupply m, MonadState CheckState m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => BindingGroupType -> ModuleName -> [((SourceAnn, Ident), Expr)] -> m [((SourceAnn, Ident), (Expr, SourceType))] #

Infer the types of multiple mutually-recursive values, and return elaborated values including type class dictionaries and type annotations.

checkTypeKind :: (MonadError MultipleErrors m, MonadState CheckState m, HasCallStack) => SourceType -> SourceType -> m () #

Check the kind of a type, failing if it is not of kind *.