{-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE AllowAmbiguousTypes #-} {-# OPTIONS_GHC -fno-warn-missing-signatures #-} module Expr.Fun.Test where import Test.Tasty import Prelude hiding (or, and) import TFHOE.Expr.Fun import TFHOE.Expr.Bool e1 = val $ \x -> val $ \y -> (x `or` y) `and` neg (x `and` y) e2 = val $ \x -> val $ \y -> (x `and` neg y) `or` (neg x `and` y) e3 = let_val (bool True) $ \x -> x `and` x e4 = let_val (val $ \x -> x `and` x) $ \f -> f `app` bool True e5 = val $ \x0 -> val $ \x1 -> x0 `and` x1 e6 = let_val (bool True) id `and` bool False e7 = val $ \f -> (f `app` bool True) `and` bool True e8 = val $ \f -> f `app` (bool True `and` bool True) tests :: TestTree tests = testGroup "Fun" [ ]