{-# htermination (fsEsMyBool :: MyBool -> MyBool -> MyBool) #-} import qualified Prelude data MyBool = MyTrue | MyFalse data List a = Cons a (List a) | Nil esEsMyBool :: MyBool -> MyBool -> MyBool esEsMyBool MyFalse MyFalse = MyTrue; esEsMyBool MyFalse MyTrue = MyFalse; esEsMyBool MyTrue MyFalse = MyFalse; esEsMyBool MyTrue MyTrue = MyTrue; not :: MyBool -> MyBool; not MyTrue = MyFalse; not MyFalse = MyTrue; fsEsMyBool :: MyBool -> MyBool -> MyBool fsEsMyBool x y = not (esEsMyBool x y);