packages feed

ddc-core-0.4.3.1: DDC/Core/Check/Context.hs

module DDC.Core.Check.Context
        ( 
          -- * Type Checker Mode.
          Mode    (..)

          -- * Positions in the Context.
        , Pos     (..)

          -- * Roles of Type Variable.
        , Role    (..)

          -- * Existentials
        , Exists  (..)
        , typeOfExists
        , takeExists
        , slurpExists

          -- * Context Elements.
        , Elem    (..)

          -- * Checker Context.
        , Context (..)

          -- * Construction
        , emptyContext
        , contextOfEnvT
        , contextOfEnvX
        , contextOfPrimEnvs

          -- * Projection
        , contextEquations
        , contextCapabilities
        , contextDataDefs
        , contextEnvT

          -- * Pushing
        , pushType,   pushTypes
        , pushKind,   pushKinds
        , pushExists, pushExistsBefore, pushExistsScope

          -- * Marking
        , markContext

          -- * Popping
        , popToPos

          -- * Lookup
        , lookupType
        , lookupKind
        , lookupExistsEq

          -- * Membership
        , memberType
        , memberKind
        , memberKindBind

          -- * Existentials
        , locationOfExists
        , updateExists

          -- * Lifting and Lowering
        , liftTypes
        , lowerTypes

          -- * Applying
        , applyContextEither
        , applySolvedEither

          -- * Effects
        , effectSupported)
where
import DDC.Core.Check.Context.Effect
import DDC.Core.Check.Context.Apply
import DDC.Core.Check.Context.Elem
import DDC.Core.Check.Context.Mode
import DDC.Core.Check.Context.Base