{-# LANGUAGE LinearTypes #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Data.Bool.Linear
(
Bool (..),
(&&),
(||),
not,
otherwise,
)
where
import Prelude (Bool (..), otherwise)
(&&) :: Bool %1 -> Bool %1 -> Bool
Bool
False && :: Bool %1 -> Bool %1 -> Bool
&& Bool
False = Bool
False
Bool
False && Bool
True = Bool
False
Bool
True && Bool
x = Bool
x
infixr 3 &&
(||) :: Bool %1 -> Bool %1 -> Bool
Bool
True || :: Bool %1 -> Bool %1 -> Bool
|| Bool
False = Bool
True
Bool
True || Bool
True = Bool
True
Bool
False || Bool
x = Bool
x
infixr 2 ||
not :: Bool %1 -> Bool
not :: Bool %1 -> Bool
not Bool
False = Bool
True
not Bool
True = Bool
False