module Language.Noodle.Lib.Boolean(env,decls) where import Language.Noodle.Evaluation env = extenv decls decls = [("&&", extfun band) ,("||", extfun bor) ,("true", Thunk btrue) ,("false",Thunk bfalse) ,("isNot",extfun bnot) ] btrue = return $ Symbol "True" bfalse = return $ Nil band :: Val -> IO Val band Nil = bfalse band _ = return $ extfun (\x -> return x) bor Nil = return $ extfun (\x -> return x) bor first = return $ first bnot Nil = btrue bnot _ = bfalse