| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
PlutusCore.Check.Normal
Description
This module makes sure types are normalized inside programs.
Synopsis
- checkProgram :: forall (uni :: Type -> Type) tyname name fun ann m. (HasUniApply uni, MonadError (NormCheckError tyname name uni fun ann) m) => Program tyname name uni fun ann -> m ()
- checkTerm :: forall (uni :: Type -> Type) tyname name fun ann m. (HasUniApply uni, MonadError (NormCheckError tyname name uni fun ann) m) => Term tyname name uni fun ann -> m ()
- isNormalType :: forall (uni :: Type -> Type) tyname ann. HasUniApply uni => Type tyname uni ann -> Bool
- data NormCheckError tyname name (uni :: Type -> Type) fun ann
Documentation
checkProgram :: forall (uni :: Type -> Type) tyname name fun ann m. (HasUniApply uni, MonadError (NormCheckError tyname name uni fun ann) m) => Program tyname name uni fun ann -> m () Source #
Ensure that all types in the Program are normalized.
checkTerm :: forall (uni :: Type -> Type) tyname name fun ann m. (HasUniApply uni, MonadError (NormCheckError tyname name uni fun ann) m) => Term tyname name uni fun ann -> m () Source #
Ensure that all types in the Term are normalized.
isNormalType :: forall (uni :: Type -> Type) tyname ann. HasUniApply uni => Type tyname uni ann -> Bool Source #
data NormCheckError tyname name (uni :: Type -> Type) fun ann Source #
Constructors
| BadType !ann !(Type tyname uni ann) !Text | |
| BadTerm !ann !(Term tyname name uni fun ann) !Text |