@@ -121,7 +121,7 @@ getVar (Atom atom) = do
121121getVar n = throw $ TypeMismatch " failure to get variable: " n
122122
123123ensureAtom :: LispVal -> Eval LispVal
124- ensureAtom n@ (Atom txt ) = return n
124+ ensureAtom n@ (Atom _ ) = return n
125125ensureAtom n = throw $ TypeMismatch " expected an atomic value" n
126126
127127extractVar :: LispVal -> T. Text
@@ -134,7 +134,7 @@ getEven (x:xs) = x : getOdd xs
134134
135135getOdd :: [t ] -> [t ]
136136getOdd [] = []
137- getOdd (x : xs) = getEven xs
137+ getOdd (_ : xs) = getEven xs
138138
139139
140140applyLambda :: LispVal -> [LispVal ] -> [LispVal ] -> Eval LispVal
@@ -178,15 +178,15 @@ eval (List [Atom "if", pred, truExpr, flsExpr]) = do
178178 (Bool True ) -> eval truExpr
179179 (Bool False ) -> eval flsExpr
180180 _ -> throw $ BadSpecialForm " if's first arg must eval into a boolean"
181- eval args @ (List ( (:) (Atom " if" ) _)) = throw $ BadSpecialForm " (if <bool> <s-expr> <s-expr>)"
181+ eval (List ( (:) (Atom " if" ) _)) = throw $ BadSpecialForm " (if <bool> <s-expr> <s-expr>)"
182182
183183eval (List [Atom " begin" , rest]) = evalBody rest
184184eval (List ((:) (Atom " begin" ) rest )) = evalBody $ List rest
185185
186186eval (List [Atom " define" , varExpr, defExpr]) = do -- top-level define
187187 EnvCtx {} <- ask
188- varAtom <- ensureAtom varExpr
189- evalVal <- eval defExpr
188+ _varAtom <- ensureAtom varExpr
189+ _evalVal <- eval defExpr
190190 bindArgsEval [varExpr] [defExpr] varExpr
191191
192192eval (List [Atom " let" , List pairs, expr]) = do
@@ -203,33 +203,33 @@ eval (List (Atom "lambda":_) ) = throw $ BadSpecialForm "lambda function expects
203203
204204
205205-- needed to get cadr, etc to work
206- eval all @ (List [Atom " cdr" , List [Atom " quote" , List (x : xs)]]) =
206+ eval (List [Atom " cdr" , List [Atom " quote" , List (_ : xs)]]) =
207207 return $ List xs
208- eval all @ (List [Atom " cdr" , arg@ (List (x: xs))]) =
208+ eval (List [Atom " cdr" , arg@ (List (x: xs))]) =
209209 case x of
210210 -- proxy for if the list can be evaluated
211211 Atom _ -> do val <- eval arg
212212 eval $ List [Atom " cdr" , val]
213213 _ -> return $ List xs
214214
215215
216- eval all @ (List [Atom " car" , List [Atom " quote" , List (x: xs )]]) =
216+ eval (List [Atom " car" , List [Atom " quote" , List (x: _ )]]) =
217217 return x
218- eval all @ (List [Atom " car" , arg@ (List (x: xs ))]) =
218+ eval (List [Atom " car" , arg@ (List (x: _ ))]) =
219219 case x of
220220 Atom _ -> do val <- eval arg
221221 eval $ List [Atom " car" , val]
222222 _ -> return x
223223
224224
225- eval all @ (List ((:) x xs)) = do
225+ eval (List ((:) x xs)) = do
226226 EnvCtx {.. } <- ask
227227 funVar <- eval x
228228 xVal <- mapM eval xs
229229 -- liftIO $ TIO.putStr $ T.concat ["eval:\n ", T.pack $ show all,"\n * fnCall: ", T.pack $ show x, "\n * fnVar ", T.pack $ show funVar,"\n * args: ",T.concat (T.pack . show <$> xVal) ,T.pack "\n"]
230230 case funVar of
231231 (Fun (IFunc internalFn)) -> internalFn xVal
232- (Lambda (IFunc definedFn) (EnvCtx benv bfenv )) -> local (const $ EnvCtx benv fenv) $ definedFn xVal
232+ (Lambda (IFunc definedFn) (EnvCtx benv _bfenv )) -> local (const $ EnvCtx benv fenv) $ definedFn xVal
233233
234234 _ -> throw $ NotFunction funVar
235235
@@ -242,12 +242,12 @@ updateEnv var e@(Lambda _ _) EnvCtx{..} = EnvCtx env $ Map.insert var e fenv
242242updateEnv var e EnvCtx {.. } = EnvCtx (Map. insert var e env) fenv
243243
244244evalBody :: LispVal -> Eval LispVal
245- evalBody x @ (List [List ((:) (Atom " define" ) [Atom var, defExpr]), rest]) = do
245+ evalBody (List [List ((:) (Atom " define" ) [Atom var, defExpr]), rest]) = do
246246 evalVal <- eval defExpr
247247 ctx <- ask
248248 local (const $ updateEnv var evalVal ctx) $ eval rest
249249
250- evalBody x @ (List ((:) (List ((:) (Atom " define" ) [Atom var, defExpr])) rest)) = do
250+ evalBody (List ((:) (List ((:) (Atom " define" ) [Atom var, defExpr])) rest)) = do
251251 evalVal <- eval defExpr
252252 ctx <- ask
253253 local (const $ updateEnv var evalVal ctx) $ evalBody $ List rest
0 commit comments