module Ivory.Language.IString where import Ivory.Language.Type import qualified Ivory.Language.Syntax as AST import Data.String (IsString(..)) newtype IString = IString { getIString :: AST.Expr } instance IvoryType IString where ivoryType _ = AST.TyPtr AST.TyChar instance IvoryVar IString where wrapVar = wrapVarExpr unwrapExpr = getIString instance IvoryExpr IString where wrapExpr = IString instance IsString IString where fromString str = wrapExpr $ AST.ExpLit $ AST.LitString str