refined-extras-0.1.0.0: Increased functionality for refined types.
Safe HaskellNone
LanguageHaskell2010

Refined.Extras.Polymorphism.Internal.Terms

Description

This module provides an implementation of the ImpliesBool type family at the term level, to facilitate testing the algorithm.

Since: 0.1.0.0

Synopsis

Documentation

data Calculus a Source #

Since: 0.1.0.0

Constructors

CAtom a 
CNot !(Calculus a) 
CAnd !(Calculus a) !(Calculus a) infixr 3 
COr !(Calculus a) !(Calculus a) infixr 2 
CXor !(Calculus a) !(Calculus a) infixr 2 

Instances

Instances details
Show a => Show (Calculus a) Source # 
Instance details

Defined in Refined.Extras.Polymorphism.Internal.Terms

Methods

showsPrec :: Int -> Calculus a -> ShowS #

show :: Calculus a -> String #

showList :: [Calculus a] -> ShowS #

Eq a => Eq (Calculus a) Source #

Since: 0.1.0.0

Instance details

Defined in Refined.Extras.Polymorphism.Internal.Terms

Methods

(==) :: Calculus a -> Calculus a -> Bool #

(/=) :: Calculus a -> Calculus a -> Bool #

impliesBool :: Eq a => Calculus a -> Calculus a -> Bool Source #

Since: 0.1.0.0

toCNF :: Calculus a -> Calculus a Source #

Since: 0.1.0.0

isCNF :: Calculus a -> Bool Source #

Since: 0.1.0.0