octopus-0.0.2.0: Language/Octopus/Data/Shortcut.hs
module Language.Octopus.Data.Shortcut where
import Import
import qualified Data.Sequence as Seq
import qualified Data.Map as Map
import Language.Octopus.Data
mkInt :: Integral a => a -> Val
mkInt = Nm . fromIntegral
mkSy :: String -> Val
mkSy = Sy . intern
mkTx :: String -> Val
mkTx = Tx . pack
mkBy :: String -> Val
mkBy = By . encodeUtf8 . pack
mkSq :: [Val] -> Val
mkSq = Sq . Seq.fromList
mkOb :: [(Symbol, Val)] -> Val
mkOb = Ob . Map.fromList
getTag :: Val -> Word
getTag (Tg tg _) = tg
fromEnv :: Val -> Map Symbol Val
fromEnv (Ob ob) = ob
fromEnv _ = Map.empty