packages feed

boolean-normal-forms 0.0.0.1 → 0.0.0.2

raw patch · 12 files changed

+67/−40 lines, 12 filesdep ~QuickCheckdep ~basedep ~condPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: QuickCheck, base, cond, containers

API changes (from Hackage documentation)

- Data.Algebra.Boolean.CNF.List: instance CoBoolean a => CoBoolean (CNF a)
- Data.Algebra.Boolean.CNF.List: instance CoBoolean1 CNF
- Data.Algebra.Boolean.CNF.List: instance Eq a => Eq (CNF a)
- Data.Algebra.Boolean.CNF.List: instance Functor CNF
- Data.Algebra.Boolean.CNF.List: instance Negable a => Boolean (CNF a)
- Data.Algebra.Boolean.CNF.List: instance Negable a => Negable (CNF a)
- Data.Algebra.Boolean.CNF.List: instance NormalForm CNF
- Data.Algebra.Boolean.CNF.List: instance Ord a => Ord (CNF a)
- Data.Algebra.Boolean.CNF.List: instance Read a => Read (CNF a)
- Data.Algebra.Boolean.CNF.List: instance Show a => Show (CNF a)
- Data.Algebra.Boolean.CNF.List: instance Typeable1 CNF
- Data.Algebra.Boolean.CNF.List: unCNF :: CNF a -> [[a]]
- Data.Algebra.Boolean.CNF.Set: instance (Ord a, Negable a) => Boolean (CNF a)
- Data.Algebra.Boolean.CNF.Set: instance (Ord a, Negable a) => Negable (CNF a)
- Data.Algebra.Boolean.CNF.Set: instance (Ord a, Read a) => Read (CNF a)
- Data.Algebra.Boolean.CNF.Set: instance CoBoolean a => CoBoolean (CNF a)
- Data.Algebra.Boolean.CNF.Set: instance CoBoolean1 CNF
- Data.Algebra.Boolean.CNF.Set: instance Eq a => Eq (CNF a)
- Data.Algebra.Boolean.CNF.Set: instance NormalForm CNF
- Data.Algebra.Boolean.CNF.Set: instance Ord a => Ord (CNF a)
- Data.Algebra.Boolean.CNF.Set: instance Show a => Show (CNF a)
- Data.Algebra.Boolean.CNF.Set: instance Typeable1 CNF
- Data.Algebra.Boolean.CNF.Set: unCNF :: CNF a -> Set (Set a)
- Data.Algebra.Boolean.CoBoolean: instance (CoBoolean f, CoBoolean g) => CoBoolean (Either f g)
- Data.Algebra.Boolean.CoBoolean: instance CoBoolean (Maybe a)
- Data.Algebra.Boolean.CoBoolean: instance CoBoolean Bool
- Data.Algebra.Boolean.CoBoolean: instance CoBoolean1 Maybe
- Data.Algebra.Boolean.DNF.List: instance CoBoolean a => CoBoolean (DNF a)
- Data.Algebra.Boolean.DNF.List: instance CoBoolean1 DNF
- Data.Algebra.Boolean.DNF.List: instance Eq a => Eq (DNF a)
- Data.Algebra.Boolean.DNF.List: instance Functor DNF
- Data.Algebra.Boolean.DNF.List: instance Negable a => Boolean (DNF a)
- Data.Algebra.Boolean.DNF.List: instance Negable a => Negable (DNF a)
- Data.Algebra.Boolean.DNF.List: instance NormalForm DNF
- Data.Algebra.Boolean.DNF.List: instance Ord a => Ord (DNF a)
- Data.Algebra.Boolean.DNF.List: instance Read a => Read (DNF a)
- Data.Algebra.Boolean.DNF.List: instance Show a => Show (DNF a)
- Data.Algebra.Boolean.DNF.List: instance Typeable1 DNF
- Data.Algebra.Boolean.DNF.List: unDNF :: DNF a -> [[a]]
- Data.Algebra.Boolean.DNF.Set: instance (Ord a, Negable a) => Boolean (DNF a)
- Data.Algebra.Boolean.DNF.Set: instance (Ord a, Negable a) => Negable (DNF a)
- Data.Algebra.Boolean.DNF.Set: instance (Ord a, Read a) => Read (DNF a)
- Data.Algebra.Boolean.DNF.Set: instance CoBoolean a => CoBoolean (DNF a)
- Data.Algebra.Boolean.DNF.Set: instance CoBoolean1 DNF
- Data.Algebra.Boolean.DNF.Set: instance Eq a => Eq (DNF a)
- Data.Algebra.Boolean.DNF.Set: instance NormalForm DNF
- Data.Algebra.Boolean.DNF.Set: instance Ord a => Ord (DNF a)
- Data.Algebra.Boolean.DNF.Set: instance Show a => Show (DNF a)
- Data.Algebra.Boolean.DNF.Set: instance Typeable1 DNF
- Data.Algebra.Boolean.DNF.Set: unDNF :: DNF a -> Set (Set a)
- Data.Algebra.Boolean.FreeBoolean: instance Boolean (FreeBoolean a)
- Data.Algebra.Boolean.FreeBoolean: instance CoBoolean a => CoBoolean (FreeBoolean a)
- Data.Algebra.Boolean.FreeBoolean: instance CoBoolean1 FreeBoolean
- Data.Algebra.Boolean.FreeBoolean: instance Eq a => Eq (FreeBoolean a)
- Data.Algebra.Boolean.FreeBoolean: instance Functor FreeBoolean
- Data.Algebra.Boolean.FreeBoolean: instance Negable (FreeBoolean a)
- Data.Algebra.Boolean.FreeBoolean: instance Ord a => Ord (FreeBoolean a)
- Data.Algebra.Boolean.FreeBoolean: instance Read a => Read (FreeBoolean a)
- Data.Algebra.Boolean.FreeBoolean: instance Show a => Show (FreeBoolean a)
- Data.Algebra.Boolean.FreeBoolean: instance Typeable1 FreeBoolean
- Data.Algebra.Boolean.NNF.Set: instance (Ord a, Negable a) => Boolean (NNF a)
- Data.Algebra.Boolean.NNF.Set: instance (Ord a, Negable a) => Negable (NNF a)
- Data.Algebra.Boolean.NNF.Set: instance (Ord a, Read a) => Read (NNF a)
- Data.Algebra.Boolean.NNF.Set: instance CoBoolean a => CoBoolean (NNF a)
- Data.Algebra.Boolean.NNF.Set: instance CoBoolean1 NNF
- Data.Algebra.Boolean.NNF.Set: instance Eq a => Eq (NNF a)
- Data.Algebra.Boolean.NNF.Set: instance NormalForm NNF
- Data.Algebra.Boolean.NNF.Set: instance Ord a => Ord (NNF a)
- Data.Algebra.Boolean.NNF.Set: instance Show a => Show (NNF a)
- Data.Algebra.Boolean.NNF.Set: instance Typeable1 NNF
- Data.Algebra.Boolean.NNF.Tree: instance CoBoolean a => CoBoolean (NNF a)
- Data.Algebra.Boolean.NNF.Tree: instance CoBoolean1 NNF
- Data.Algebra.Boolean.NNF.Tree: instance Eq a => Eq (NNF a)
- Data.Algebra.Boolean.NNF.Tree: instance Functor NNF
- Data.Algebra.Boolean.NNF.Tree: instance Negable a => Boolean (NNF a)
- Data.Algebra.Boolean.NNF.Tree: instance Negable a => Negable (NNF a)
- Data.Algebra.Boolean.NNF.Tree: instance NormalForm NNF
- Data.Algebra.Boolean.NNF.Tree: instance Ord a => Ord (NNF a)
- Data.Algebra.Boolean.NNF.Tree: instance Read a => Read (NNF a)
- Data.Algebra.Boolean.NNF.Tree: instance Show a => Show (NNF a)
- Data.Algebra.Boolean.NNF.Tree: instance Typeable1 NNF
- Data.Algebra.Boolean.Negable: instance (Negable a, Negable b) => Negable (Either a b)
- Data.Algebra.Boolean.Negable: instance (Negable a, Negable b) => Negable (a, b)
- Data.Algebra.Boolean.Negable: instance CoBoolean (Neg a)
- Data.Algebra.Boolean.Negable: instance CoBoolean1 Neg
- Data.Algebra.Boolean.Negable: instance Eq a => Eq (Neg a)
- Data.Algebra.Boolean.Negable: instance Functor Neg
- Data.Algebra.Boolean.Negable: instance Monoid m => Negable (Maybe m)
- Data.Algebra.Boolean.Negable: instance Negable (Neg a)
- Data.Algebra.Boolean.Negable: instance Negable Bool
- Data.Algebra.Boolean.Negable: instance Ord a => Ord (Neg a)
- Data.Algebra.Boolean.Negable: instance Read a => Read (Neg a)
- Data.Algebra.Boolean.Negable: instance Show a => Show (Neg a)
- Data.Algebra.Boolean.Negable: instance Typeable1 Neg
- Data.Algebra.Boolean.NormalForm: instance NormalForm FreeBoolean
+ Data.Algebra.Boolean.CNF.List: [unCNF] :: CNF a -> [[a]]
+ Data.Algebra.Boolean.CNF.List: instance Data.Algebra.Boolean.CoBoolean.CoBoolean a => Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Algebra.Boolean.CNF.List.CNF a)
+ Data.Algebra.Boolean.CNF.List: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 Data.Algebra.Boolean.CNF.List.CNF
+ Data.Algebra.Boolean.CNF.List: instance Data.Algebra.Boolean.Negable.Negable a => Data.Algebra.Boolean.Boolean (Data.Algebra.Boolean.CNF.List.CNF a)
+ Data.Algebra.Boolean.CNF.List: instance Data.Algebra.Boolean.Negable.Negable a => Data.Algebra.Boolean.Negable.Negable (Data.Algebra.Boolean.CNF.List.CNF a)
+ Data.Algebra.Boolean.CNF.List: instance Data.Algebra.Boolean.NormalForm.NormalForm Data.Algebra.Boolean.CNF.List.CNF
+ Data.Algebra.Boolean.CNF.List: instance Data.Foldable.Foldable Data.Algebra.Boolean.CNF.List.CNF
+ Data.Algebra.Boolean.CNF.List: instance GHC.Base.Functor Data.Algebra.Boolean.CNF.List.CNF
+ Data.Algebra.Boolean.CNF.List: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Algebra.Boolean.CNF.List.CNF a)
+ Data.Algebra.Boolean.CNF.List: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Algebra.Boolean.CNF.List.CNF a)
+ Data.Algebra.Boolean.CNF.List: instance GHC.Read.Read a => GHC.Read.Read (Data.Algebra.Boolean.CNF.List.CNF a)
+ Data.Algebra.Boolean.CNF.List: instance GHC.Show.Show a => GHC.Show.Show (Data.Algebra.Boolean.CNF.List.CNF a)
+ Data.Algebra.Boolean.CNF.Set: [unCNF] :: CNF a -> Set (Set a)
+ Data.Algebra.Boolean.CNF.Set: instance (GHC.Classes.Ord a, Data.Algebra.Boolean.Negable.Negable a) => Data.Algebra.Boolean.Boolean (Data.Algebra.Boolean.CNF.Set.CNF a)
+ Data.Algebra.Boolean.CNF.Set: instance (GHC.Classes.Ord a, Data.Algebra.Boolean.Negable.Negable a) => Data.Algebra.Boolean.Negable.Negable (Data.Algebra.Boolean.CNF.Set.CNF a)
+ Data.Algebra.Boolean.CNF.Set: instance (GHC.Classes.Ord a, GHC.Read.Read a) => GHC.Read.Read (Data.Algebra.Boolean.CNF.Set.CNF a)
+ Data.Algebra.Boolean.CNF.Set: instance Data.Algebra.Boolean.CoBoolean.CoBoolean a => Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Algebra.Boolean.CNF.Set.CNF a)
+ Data.Algebra.Boolean.CNF.Set: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 Data.Algebra.Boolean.CNF.Set.CNF
+ Data.Algebra.Boolean.CNF.Set: instance Data.Algebra.Boolean.NormalForm.NormalForm Data.Algebra.Boolean.CNF.Set.CNF
+ Data.Algebra.Boolean.CNF.Set: instance Data.Foldable.Foldable Data.Algebra.Boolean.CNF.Set.CNF
+ Data.Algebra.Boolean.CNF.Set: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Algebra.Boolean.CNF.Set.CNF a)
+ Data.Algebra.Boolean.CNF.Set: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Algebra.Boolean.CNF.Set.CNF a)
+ Data.Algebra.Boolean.CNF.Set: instance GHC.Show.Show a => GHC.Show.Show (Data.Algebra.Boolean.CNF.Set.CNF a)
+ Data.Algebra.Boolean.CoBoolean: instance (Data.Algebra.Boolean.CoBoolean.CoBoolean f, Data.Algebra.Boolean.CoBoolean.CoBoolean g) => Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Either.Either f g)
+ Data.Algebra.Boolean.CoBoolean: instance Data.Algebra.Boolean.CoBoolean.CoBoolean (GHC.Base.Maybe a)
+ Data.Algebra.Boolean.CoBoolean: instance Data.Algebra.Boolean.CoBoolean.CoBoolean GHC.Types.Bool
+ Data.Algebra.Boolean.CoBoolean: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 GHC.Base.Maybe
+ Data.Algebra.Boolean.DNF.List: [unDNF] :: DNF a -> [[a]]
+ Data.Algebra.Boolean.DNF.List: instance Data.Algebra.Boolean.CoBoolean.CoBoolean a => Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Algebra.Boolean.DNF.List.DNF a)
+ Data.Algebra.Boolean.DNF.List: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 Data.Algebra.Boolean.DNF.List.DNF
+ Data.Algebra.Boolean.DNF.List: instance Data.Algebra.Boolean.Negable.Negable a => Data.Algebra.Boolean.Boolean (Data.Algebra.Boolean.DNF.List.DNF a)
+ Data.Algebra.Boolean.DNF.List: instance Data.Algebra.Boolean.Negable.Negable a => Data.Algebra.Boolean.Negable.Negable (Data.Algebra.Boolean.DNF.List.DNF a)
+ Data.Algebra.Boolean.DNF.List: instance Data.Algebra.Boolean.NormalForm.NormalForm Data.Algebra.Boolean.DNF.List.DNF
+ Data.Algebra.Boolean.DNF.List: instance Data.Foldable.Foldable Data.Algebra.Boolean.DNF.List.DNF
+ Data.Algebra.Boolean.DNF.List: instance GHC.Base.Functor Data.Algebra.Boolean.DNF.List.DNF
+ Data.Algebra.Boolean.DNF.List: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Algebra.Boolean.DNF.List.DNF a)
+ Data.Algebra.Boolean.DNF.List: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Algebra.Boolean.DNF.List.DNF a)
+ Data.Algebra.Boolean.DNF.List: instance GHC.Read.Read a => GHC.Read.Read (Data.Algebra.Boolean.DNF.List.DNF a)
+ Data.Algebra.Boolean.DNF.List: instance GHC.Show.Show a => GHC.Show.Show (Data.Algebra.Boolean.DNF.List.DNF a)
+ Data.Algebra.Boolean.DNF.Set: [unDNF] :: DNF a -> Set (Set a)
+ Data.Algebra.Boolean.DNF.Set: instance (GHC.Classes.Ord a, Data.Algebra.Boolean.Negable.Negable a) => Data.Algebra.Boolean.Boolean (Data.Algebra.Boolean.DNF.Set.DNF a)
+ Data.Algebra.Boolean.DNF.Set: instance (GHC.Classes.Ord a, Data.Algebra.Boolean.Negable.Negable a) => Data.Algebra.Boolean.Negable.Negable (Data.Algebra.Boolean.DNF.Set.DNF a)
+ Data.Algebra.Boolean.DNF.Set: instance (GHC.Classes.Ord a, GHC.Read.Read a) => GHC.Read.Read (Data.Algebra.Boolean.DNF.Set.DNF a)
+ Data.Algebra.Boolean.DNF.Set: instance Data.Algebra.Boolean.CoBoolean.CoBoolean a => Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Algebra.Boolean.DNF.Set.DNF a)
+ Data.Algebra.Boolean.DNF.Set: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 Data.Algebra.Boolean.DNF.Set.DNF
+ Data.Algebra.Boolean.DNF.Set: instance Data.Algebra.Boolean.NormalForm.NormalForm Data.Algebra.Boolean.DNF.Set.DNF
+ Data.Algebra.Boolean.DNF.Set: instance Data.Foldable.Foldable Data.Algebra.Boolean.DNF.Set.DNF
+ Data.Algebra.Boolean.DNF.Set: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Algebra.Boolean.DNF.Set.DNF a)
+ Data.Algebra.Boolean.DNF.Set: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Algebra.Boolean.DNF.Set.DNF a)
+ Data.Algebra.Boolean.DNF.Set: instance GHC.Show.Show a => GHC.Show.Show (Data.Algebra.Boolean.DNF.Set.DNF a)
+ Data.Algebra.Boolean.FreeBoolean: instance Data.Algebra.Boolean.Boolean (Data.Algebra.Boolean.FreeBoolean.FreeBoolean a)
+ Data.Algebra.Boolean.FreeBoolean: instance Data.Algebra.Boolean.CoBoolean.CoBoolean a => Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Algebra.Boolean.FreeBoolean.FreeBoolean a)
+ Data.Algebra.Boolean.FreeBoolean: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 Data.Algebra.Boolean.FreeBoolean.FreeBoolean
+ Data.Algebra.Boolean.FreeBoolean: instance Data.Algebra.Boolean.Negable.Negable (Data.Algebra.Boolean.FreeBoolean.FreeBoolean a)
+ Data.Algebra.Boolean.FreeBoolean: instance Data.Foldable.Foldable Data.Algebra.Boolean.FreeBoolean.FreeBoolean
+ Data.Algebra.Boolean.FreeBoolean: instance GHC.Base.Functor Data.Algebra.Boolean.FreeBoolean.FreeBoolean
+ Data.Algebra.Boolean.FreeBoolean: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Algebra.Boolean.FreeBoolean.FreeBoolean a)
+ Data.Algebra.Boolean.FreeBoolean: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Algebra.Boolean.FreeBoolean.FreeBoolean a)
+ Data.Algebra.Boolean.FreeBoolean: instance GHC.Read.Read a => GHC.Read.Read (Data.Algebra.Boolean.FreeBoolean.FreeBoolean a)
+ Data.Algebra.Boolean.FreeBoolean: instance GHC.Show.Show a => GHC.Show.Show (Data.Algebra.Boolean.FreeBoolean.FreeBoolean a)
+ Data.Algebra.Boolean.NNF.Set: instance (GHC.Classes.Ord a, Data.Algebra.Boolean.Negable.Negable a) => Data.Algebra.Boolean.Boolean (Data.Algebra.Boolean.NNF.Set.NNF a)
+ Data.Algebra.Boolean.NNF.Set: instance (GHC.Classes.Ord a, Data.Algebra.Boolean.Negable.Negable a) => Data.Algebra.Boolean.Negable.Negable (Data.Algebra.Boolean.NNF.Set.NNF a)
+ Data.Algebra.Boolean.NNF.Set: instance (GHC.Classes.Ord a, GHC.Read.Read a) => GHC.Read.Read (Data.Algebra.Boolean.NNF.Set.NNF a)
+ Data.Algebra.Boolean.NNF.Set: instance Data.Algebra.Boolean.CoBoolean.CoBoolean a => Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Algebra.Boolean.NNF.Set.NNF a)
+ Data.Algebra.Boolean.NNF.Set: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 Data.Algebra.Boolean.NNF.Set.NNF
+ Data.Algebra.Boolean.NNF.Set: instance Data.Algebra.Boolean.NormalForm.NormalForm Data.Algebra.Boolean.NNF.Set.NNF
+ Data.Algebra.Boolean.NNF.Set: instance Data.Foldable.Foldable Data.Algebra.Boolean.NNF.Set.NNF
+ Data.Algebra.Boolean.NNF.Set: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Algebra.Boolean.NNF.Set.NNF a)
+ Data.Algebra.Boolean.NNF.Set: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Algebra.Boolean.NNF.Set.NNF a)
+ Data.Algebra.Boolean.NNF.Set: instance GHC.Show.Show a => GHC.Show.Show (Data.Algebra.Boolean.NNF.Set.NNF a)
+ Data.Algebra.Boolean.NNF.Tree: instance Data.Algebra.Boolean.CoBoolean.CoBoolean a => Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Algebra.Boolean.NNF.Tree.NNF a)
+ Data.Algebra.Boolean.NNF.Tree: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 Data.Algebra.Boolean.NNF.Tree.NNF
+ Data.Algebra.Boolean.NNF.Tree: instance Data.Algebra.Boolean.Negable.Negable a => Data.Algebra.Boolean.Boolean (Data.Algebra.Boolean.NNF.Tree.NNF a)
+ Data.Algebra.Boolean.NNF.Tree: instance Data.Algebra.Boolean.Negable.Negable a => Data.Algebra.Boolean.Negable.Negable (Data.Algebra.Boolean.NNF.Tree.NNF a)
+ Data.Algebra.Boolean.NNF.Tree: instance Data.Algebra.Boolean.NormalForm.NormalForm Data.Algebra.Boolean.NNF.Tree.NNF
+ Data.Algebra.Boolean.NNF.Tree: instance Data.Foldable.Foldable Data.Algebra.Boolean.NNF.Tree.NNF
+ Data.Algebra.Boolean.NNF.Tree: instance GHC.Base.Functor Data.Algebra.Boolean.NNF.Tree.NNF
+ Data.Algebra.Boolean.NNF.Tree: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Algebra.Boolean.NNF.Tree.NNF a)
+ Data.Algebra.Boolean.NNF.Tree: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Algebra.Boolean.NNF.Tree.NNF a)
+ Data.Algebra.Boolean.NNF.Tree: instance GHC.Read.Read a => GHC.Read.Read (Data.Algebra.Boolean.NNF.Tree.NNF a)
+ Data.Algebra.Boolean.NNF.Tree: instance GHC.Show.Show a => GHC.Show.Show (Data.Algebra.Boolean.NNF.Tree.NNF a)
+ Data.Algebra.Boolean.Negable: instance (Data.Algebra.Boolean.Negable.Negable a, Data.Algebra.Boolean.Negable.Negable b) => Data.Algebra.Boolean.Negable.Negable (Data.Either.Either a b)
+ Data.Algebra.Boolean.Negable: instance (Data.Algebra.Boolean.Negable.Negable a, Data.Algebra.Boolean.Negable.Negable b) => Data.Algebra.Boolean.Negable.Negable (a, b)
+ Data.Algebra.Boolean.Negable: instance Data.Algebra.Boolean.CoBoolean.CoBoolean (Data.Algebra.Boolean.Negable.Neg a)
+ Data.Algebra.Boolean.Negable: instance Data.Algebra.Boolean.CoBoolean.CoBoolean1 Data.Algebra.Boolean.Negable.Neg
+ Data.Algebra.Boolean.Negable: instance Data.Algebra.Boolean.Negable.Negable (Data.Algebra.Boolean.Negable.Neg a)
+ Data.Algebra.Boolean.Negable: instance Data.Algebra.Boolean.Negable.Negable GHC.Types.Bool
+ Data.Algebra.Boolean.Negable: instance GHC.Base.Functor Data.Algebra.Boolean.Negable.Neg
+ Data.Algebra.Boolean.Negable: instance GHC.Base.Monoid m => Data.Algebra.Boolean.Negable.Negable (GHC.Base.Maybe m)
+ Data.Algebra.Boolean.Negable: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.Algebra.Boolean.Negable.Neg a)
+ Data.Algebra.Boolean.Negable: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Algebra.Boolean.Negable.Neg a)
+ Data.Algebra.Boolean.Negable: instance GHC.Read.Read a => GHC.Read.Read (Data.Algebra.Boolean.Negable.Neg a)
+ Data.Algebra.Boolean.Negable: instance GHC.Show.Show a => GHC.Show.Show (Data.Algebra.Boolean.Negable.Neg a)
+ Data.Algebra.Boolean.NormalForm: instance Data.Algebra.Boolean.NormalForm.NormalForm Data.Algebra.Boolean.FreeBoolean.FreeBoolean
+ Data.Algebra.Boolean.NormalForm: type NFConstraint nf a = ();
+ Data.Algebra.Boolean.NormalForm: type family NFConstraint nf a :: Constraint;
+ Data.Algebra.Boolean.NormalForm: }
- Data.Algebra.Boolean.CNF.Set: fromDoubleList :: Ord a => [[a]] -> CNF a
+ Data.Algebra.Boolean.CNF.Set: fromDoubleList :: (Ord a) => [[a]] -> CNF a
- Data.Algebra.Boolean.DNF.Set: fromDoubleList :: Ord a => [[a]] -> DNF a
+ Data.Algebra.Boolean.DNF.Set: fromDoubleList :: (Ord a) => [[a]] -> DNF a
- Data.Algebra.Boolean.NormalForm: class CoBoolean1 nf => NormalForm nf where type family NFConstraint nf a :: Constraint type instance NFConstraint nf a = ()
+ Data.Algebra.Boolean.NormalForm: class CoBoolean1 nf => NormalForm nf where type NFConstraint nf a :: Constraint type NFConstraint nf a = () where {

Files

boolean-normal-forms.cabal view
@@ -1,5 +1,5 @@ name:                boolean-normal-forms-version:             0.0.0.1+version:             0.0.0.2 synopsis:            Boolean normal form: NNF, DNF & CNF description:         The provided types that might be useful in symbolic manipulation of propositional logic expressions. license:             MIT@@ -9,10 +9,20 @@ copyright:           © Oleg Grenrus 2014 category:            Data build-type:          Simple-cabal-version:       >=1.10+cabal-version:       >=1.18 extra-source-files:  README.md extra-doc-files:      doc-formulae/*.svg+tested-with:+  GHC==7.6.3,+  GHC==7.8.4,+  GHC==7.10.3,+  GHC==8.0.2,+  GHC==8.2.2 +source-repository head+  type: git+  location: https://github.com/phadej/boolean-normal-forms.git+ library   hs-source-dirs:      src   exposed-modules:     Data.Algebra.Boolean.NormalForm,@@ -33,16 +43,11 @@                        ConstraintKinds,                        TypeFamilies,                        ScopedTypeVariables-  build-depends:       base >=4.6 && <4.8,-                       containers >=0.5 && <0.6,-                       cond >=0.4.1 && <0.5+  build-depends:       base        >=4.6   && <4.11,+                       containers  >=0.5   && <0.6,+                       cond        >=0.4.1 && <0.5   default-language:    Haskell2010   ghc-options:         -Wall-                       -O2-                       -fwarn-tabs-                       -fspec-constr-count=6-                       -fmax-simplifier-iterations=10-                       -fdicts-cheap  test-suite test   default-language:    Haskell2010@@ -50,6 +55,7 @@   hs-source-dirs:      tests   main-is:             Main.hs   other-modules:       BooleanLaws,+                       BooleanModelLaws,                        CNFList,                        CNFSet,                        DNFList,@@ -60,11 +66,11 @@                        NNFSet,                        NNFTree,                        SimplifyLaws-  ghc-options:         -Wall -O2 -fno-warn-orphans-  build-depends:       base >=4.6 && <4.8,-                       containers >= 0.5 && <0.6,-                       cond >=0.4.1 && <0.5,-                       tasty >=0.8,-                       tasty-quickcheck >=0.8.0.3,-                       QuickCheck >=2.7 && <=2.8,+  ghc-options:         -Wall -fno-warn-orphans+  build-depends:       base,+                       containers,+                       cond,+                       tasty                >=0.8,+                       tasty-quickcheck     >=0.8.0.3,+                       QuickCheck           >=2.10 && <2.11,                        boolean-normal-forms
src/Data/Algebra/Boolean/CNF/List.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE TypeFamilies #-} --------------------------------------------------------------------@@ -21,7 +22,8 @@ import Prelude hiding ((||),(&&),not,any,all,and,or) import Data.Monoid import Data.Either (partitionEithers)-import Data.Typeable+import Data.Typeable (Typeable)+import Data.Foldable (Foldable)  import Data.Algebra.Boolean.NormalForm import Data.Algebra.Boolean.Negable hiding (not)@@ -35,7 +37,7 @@ -- -- <<doc-formulae/cnf.svg>> newtype CNF a = CNF { unCNF :: [[a]] }-  deriving (Eq, Ord, Show, Read, Functor, Typeable)+  deriving (Eq, Ord, Show, Read, Functor, Foldable, Typeable)  instance CoBoolean1 CNF where   toBooleanWith f = all (any f) . unCNF
src/Data/Algebra/Boolean/CNF/Set.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE TypeFamilies #-} --------------------------------------------------------------------@@ -19,7 +20,8 @@  import Prelude hiding ((||),(&&),not,and,or,any,all) import Data.Monoid-import Data.Typeable+import Data.Typeable (Typeable)+import Data.Foldable (Foldable)  import Data.Set (Set) import qualified Data.Set as Set@@ -39,7 +41,7 @@ -- -- <<doc-formulae/cnf.svg>> newtype CNF a = CNF { unCNF :: Set (Set a) }-  deriving (Eq, Ord, Show, Read, Typeable)+  deriving (Eq, Ord, Show, Read, Foldable, Typeable)  instance CoBoolean1 CNF where   toBooleanWith f = all (any f) . unCNF
src/Data/Algebra/Boolean/DNF/List.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE TypeFamilies #-} --------------------------------------------------------------------@@ -21,7 +22,8 @@ import Prelude hiding ((||),(&&),not,any,all,and,or) import Data.Monoid import Data.Either (partitionEithers)-import Data.Typeable+import Data.Typeable (Typeable)+import Data.Foldable (Foldable)  import Data.Algebra.Boolean.NormalForm import Data.Algebra.Boolean.Negable hiding (not)@@ -35,7 +37,7 @@ -- -- <<doc-formulae/dnf.svg>> newtype DNF a = DNF { unDNF :: [[a]] }-  deriving (Eq, Ord, Show, Read, Functor, Typeable)+  deriving (Eq, Ord, Show, Read, Functor, Foldable, Typeable)  instance CoBoolean1 DNF where   toBooleanWith f = any (all f) . unDNF
src/Data/Algebra/Boolean/DNF/Set.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE TypeFamilies #-} --------------------------------------------------------------------@@ -19,7 +20,8 @@  import Prelude hiding ((||),(&&),not,and,or,any,all) import Data.Monoid-import Data.Typeable+import Data.Typeable (Typeable)+import Data.Foldable (Foldable)  import Data.Set (Set) import qualified Data.Set as Set@@ -39,7 +41,7 @@ -- -- <<doc-formulae/dnf.svg>> newtype DNF a = DNF { unDNF :: Set (Set a) }-  deriving (Eq, Ord, Show, Read, Typeable)+  deriving (Eq, Ord, Show, Read, Foldable, Typeable)  instance CoBoolean1 DNF where   toBooleanWith f = any (all f) . unDNF
src/Data/Algebra/Boolean/FreeBoolean.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveDataTypeable #-} -------------------------------------------------------------------- -- |@@ -14,7 +15,8 @@   module Data.Algebra.Boolean.CoBoolean ) where -import Data.Typeable+import Data.Typeable (Typeable)+import Data.Foldable (Foldable)  import Data.Algebra.Boolean.CoBoolean import Data.Algebra.Boolean.Negable hiding (not)@@ -32,7 +34,7 @@                    | FBNot (FreeBoolean a)                    | FBAnd (FreeBoolean a) (FreeBoolean a)                    | FBOr (FreeBoolean a) (FreeBoolean a)-  deriving (Eq, Ord, Show, Read, Functor, Typeable)+  deriving (Eq, Ord, Show, Read, Functor, Foldable, Typeable)  instance CoBoolean1 FreeBoolean where   toBooleanWith f (FBValue x)  = f x
src/Data/Algebra/Boolean/NNF/Set.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE TypeFamilies #-} --------------------------------------------------------------------@@ -24,7 +25,8 @@ import Prelude hiding ((||),(&&),not,any,all) import Data.Algebra.Boolean -import Data.Typeable+import Data.Typeable (Typeable)+import Data.Foldable (Foldable)  -- | Boolean formula in Negation Normal Form --@@ -36,7 +38,7 @@            | NNFValue a            | NNFOr (Set (NNF a))            | NNFAnd (Set (NNF a))-  deriving (Eq, Ord, Show, Read, Typeable)+  deriving (Eq, Ord, Show, Read, Foldable, Typeable)  instance CoBoolean a => CoBoolean (NNF a) where   toBoolean = toBooleanWith toBoolean
src/Data/Algebra/Boolean/NNF/Tree.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE TypeFamilies #-} --------------------------------------------------------------------@@ -23,7 +24,8 @@  import Data.Algebra.Boolean -import Data.Typeable+import Data.Typeable (Typeable)+import Data.Foldable (Foldable)  -- | Boolean formula in Negation Normal Form --@@ -35,7 +37,7 @@            | NNFValue a            | NNFOr (NNF a) (NNF a)            | NNFAnd (NNF a) (NNF a)-  deriving (Eq, Ord, Show, Read, Functor, Typeable)+  deriving (Eq, Ord, Show, Read, Functor, Foldable, Typeable)  instance CoBoolean a => CoBoolean (NNF a) where   toBoolean = toBooleanWith toBoolean
+ tests/BooleanModelLaws.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE ConstraintKinds #-}+module BooleanModelLaws (booleanModelLaws) where++import Test.Tasty+import Test.Tasty.QuickCheck as QC++import FreeBoolean++import Data.Algebra.Boolean.NormalForm++modelProperty :: (CoBoolean a, NormalForm nf, NFConstraint nf a) => nf a -> FreeBoolean a-> Property+modelProperty t b = collect (freeBooleanHeight b) $+  toBoolWith toBool b == toBoolWith toBool (fromFreeBoolean b `asTypeOf` t)++booleanModelLaws :: (Arbitrary a, Show a, CoBoolean a, NormalForm nf, NFConstraint nf a) => nf a -> TestTree+booleanModelLaws t = QC.testProperty "Boolean model" $ modelProperty t
tests/CNFSet.hs view
@@ -18,9 +18,6 @@ import Data.Algebra.Boolean.Negable (Negable) import Data.Algebra.Boolean.CNF.Set -instance Arbitrary a => Arbitrary (Sum a) where-  arbitrary = Sum <$> arbitrary- instance (Ord a, Negable a, Arbitrary a) => Arbitrary (CNF a) where   arbitrary = fromFreeBoolean <$> arbitrary 
tests/DNFSet.hs view
@@ -18,9 +18,6 @@ import Data.Algebra.Boolean.Negable (Negable) import Data.Algebra.Boolean.DNF.Set -instance Arbitrary a => Arbitrary (Sum a) where-  arbitrary = Sum <$> arbitrary- instance (Ord a, Negable a, Arbitrary a) => Arbitrary (DNF a) where   arbitrary = fromFreeBoolean <$> arbitrary 
tests/NNFSet.hs view
@@ -18,9 +18,6 @@ import Data.Algebra.Boolean.Negable (Negable) import Data.Algebra.Boolean.NNF.Set -instance Arbitrary a => Arbitrary (Sum a) where-  arbitrary = Sum <$> arbitrary- instance (Ord a, Negable a, Arbitrary a) => Arbitrary (NNF a) where   arbitrary = fromFreeBoolean <$> arbitrary