{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_GHC -fno-warn-tabs #-}

module Expr.Dup.Test where

import Data.Bool (Bool(..))
import Data.Function (($))

import Hcompta.Expr.Lit
import Hcompta.Expr.Bool
import Hcompta.Expr.Fun

-- e1 :: (Boo repr, Lit repr) => repr Bool
e1 = lit True `and` neg (lit True `and` lit True)
e2 = let_val (lit True) $ \x -> lit True `and` x