ivory-0.1.0.3: src/Ivory/Language/Const.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Ivory.Language.Const where
import Ivory.Language.Proxy
import Ivory.Language.Type
import qualified Ivory.Language.Syntax as AST
-- Extern constants ------------------------------------------------------------
-- | Import an externally defined constant by providing a global name.
extern :: forall t. IvoryExpr t => AST.Sym -> String -> t
extern sym file = wrapExpr $ AST.ExpExtern $ AST.Extern
{ AST.externSym = sym
, AST.externFile = file
, AST.externType = ivoryType (Proxy :: Proxy t)
}