packages feed

g2-0.1.0.0: src/G2/Language/Monad/Typing.hs

module G2.Language.Monad.Typing ( tyIntT
                                          , tyIntegerT
                                          , tyDoubleT
                                          , tyFloatT
                                          , tyBoolT ) where

import G2.Language.Syntax
import G2.Language.Support
import G2.Language.Typing

import G2.Language.Monad.Support


appKV :: ExState s m => (KnownValues -> a) -> m a
appKV f = do
    kv <- knownValues
    return $ f kv

tyIntT :: ExState s m => m Type
tyIntT = appKV tyInt

tyIntegerT :: ExState s m => m Type
tyIntegerT = appKV tyInteger

tyDoubleT :: ExState s m => m Type
tyDoubleT = appKV tyDouble

tyFloatT :: ExState s m => m Type
tyFloatT = appKV tyFloat

tyBoolT :: ExState s m => m Type
tyBoolT = appKV tyBool