{-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE FlexibleContexts #-} {-# OPTIONS_GHC -fno-warn-missing-signatures #-} module Expr.Lambda.Test where import Test.Tasty import Prelude hiding ((&&), not, (||), (==), id) import Language.Symantic.Expr.Lambda import Language.Symantic.Expr.Bool -- * Expressions e1 = lam $ \x -> lam $ \y -> (x || y) && not (x && y) e2 = lam $ \x -> lam $ \y -> (x && not y) || (not x && y) e3 = let_ (bool True) $ \x -> x && x e4 = let_ (lam $ \x -> x && x) $ \f -> f $$ bool True e5 = lam $ \x0 -> lam $ \x1 -> x0 && x1 e6 = let_ (bool True) id && bool False e7 = lam $ \f -> (f $$ bool True) && bool True e8 = lam $ \f -> f $$ (bool True && bool True) tests :: TestTree tests = testGroup "Lambda" [ ]