From 4ecc513e5917057f50150e2cb0a1d63d6010f0d7 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 27 Mar 2019 22:58:53 -0700 Subject: bs: add protolude and organize imports --- lore/Language/Bs/Eval.hs | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'lore/Language/Bs/Eval.hs') diff --git a/lore/Language/Bs/Eval.hs b/lore/Language/Bs/Eval.hs index 8246d7b..8495b88 100644 --- a/lore/Language/Bs/Eval.hs +++ b/lore/Language/Bs/Eval.hs @@ -2,26 +2,29 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE NoImplicitPrelude #-} module Language.Bs.Eval ( - evalText, - evalFile, - runParseTest, - safeExec, - runASTinEnv, - basicEnv, - fileToEvalForm, - textToEvalForm, - getFileContents + evalText +, evalFile +, runParseTest +, safeExec +, runASTinEnv +, basicEnv +, fileToEvalForm +, textToEvalForm +, getFileContents ) where import Control.Exception import Control.Monad.Reader -import Data.Map as Map +import qualified Data.Map as Map +import Data.String import qualified Data.Text as T import qualified Data.Text.IO as TIO import Language.Bs.Expr import Language.Bs.Parser import Language.Bs.Primitives +import Protolude import System.Directory import Text.Parsec @@ -131,6 +134,7 @@ applyFunc expr params args = bindArgsEval params args expr bindArgsEval :: [Expr] -> [Expr] -> Expr -> Eval Expr bindArgsEval params args expr = do Env{..} <- ask + let newVars = zipWith (\a b -> (extractVar a,b)) params args let (newEnv, newFenv) = Map.partition (not . isFunc) $ Map.fromList newVars local (const $ Env (newEnv <> env) (newFenv <> fenv)) $ eval expr -- cgit v1.2.3