{-# LANGUAGE MagicHash, UnboxedTuples #-} {-| Module : Parsley.Internal.Backend.Machine.Types.Dynamics Description : Representation of components that cross function boundaries License : BSD-3-Clause Maintainer : Jamie Willis Stability : experimental This module contains the types that represent information that crosses a function boundary. @since 1.4.0.0 -} module Parsley.Internal.Backend.Machine.Types.Dynamics ( module Parsley.Internal.Backend.Machine.Types.Dynamics ) where import Data.Kind (Type) import Parsley.Internal.Backend.Machine.Types.Base (Handler#, Cont#, Subroutine#, Func) import Parsley.Internal.Common.Utils (Code) {-| Template Haskell representation of `Parsley.Internal.Backend.Machine.Types.Base.Handler#` @since 1.4.0.0 -} type DynHandler s o a = Code (Handler# s o a) {-| Template Haskell representation of `Parsley.Internal.Backend.Machine.Types.Base.Cont#` @since 1.4.0.0 -} type DynCont s o a x = Code (Cont# s o a x) {-| Template Haskell representation of `Parsley.Internal.Backend.Machine.Types.Base.Subroutine#` @since 1.4.0.0 -} type DynSubroutine s o a x = Code (Subroutine# s o a x) {-| Template Haskell representation of `Parsley.Internal.Backend.Machine.Types.Base.Func#` @since 1.4.0.0 -} type DynFunc (rs :: [Type]) s o a x = Code (Func rs s o a x)