aig 0.2.3 → 0.2.4
raw patch · 3 files changed
+9/−18 lines, 3 filesdep +base-compatPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: base-compat
API changes (from Hackage documentation)
- Data.AIG.Interface: instance Arbitrary LitTree
- Data.AIG.Interface: instance Eq LitTree
- Data.AIG.Interface: instance Eq SatResult
- Data.AIG.Interface: instance Eq VerifyResult
- Data.AIG.Interface: instance Eq a => Eq (LitView a)
- Data.AIG.Interface: instance Foldable LitView
- Data.AIG.Interface: instance Functor LitView
- Data.AIG.Interface: instance Ord LitTree
- Data.AIG.Interface: instance Ord a => Ord (LitView a)
- Data.AIG.Interface: instance Show LitTree
- Data.AIG.Interface: instance Show SatResult
- Data.AIG.Interface: instance Show VerifyResult
- Data.AIG.Interface: instance Show a => Show (LitView a)
- Data.AIG.Interface: instance Traversable LitView
- Data.AIG.Interface: unLitTree :: LitTree -> LitView LitTree
- Data.AIG.Operations: instance Eq l => Eq (BV l)
- Data.AIG.Operations: instance Foldable BV
- Data.AIG.Operations: instance Functor BV
- Data.AIG.Operations: instance Ord l => Ord (BV l)
- Data.AIG.Operations: instance Show l => Show (BV l)
- Data.AIG.Operations: instance Traversable BV
- Data.AIG.Trace: instance (IsAIG l g, Traceable l) => IsAIG (TraceLit l) (TraceGraph l g)
- Data.AIG.Trace: instance IsLit l => IsLit (TraceLit l)
- Data.AIG.Trace: instance TraceOp l g b => TraceOp l g (FilePath -> b)
- Data.AIG.Trace: instance TraceOp l g b => TraceOp l g (Int -> b)
- Data.AIG.Trace: instance TraceOp l g b => TraceOp l g (TraceLit l s -> b)
- Data.AIG.Trace: instance TraceOp l g b => TraceOp l g ([TraceLit l s] -> b)
- Data.AIG.Trace: instance TraceOutput l g ()
- Data.AIG.Trace: instance TraceOutput l g (TraceLit l s)
- Data.AIG.Trace: instance TraceOutput l g Int
- Data.AIG.Trace: instance TraceOutput l g SatResult
- Data.AIG.Trace: instance TraceOutput l g VerifyResult
- Data.AIG.Trace: instance TraceOutput l g a => TraceOutput l g [a]
- Data.AIG.Trace: instance TraceOutput l g x => TraceOp l g (IO x)
- Data.AIG.Trace: instance TraceOutput l g x => TraceOutput l g (LitView x)
- Data.AIG.Trace: instance Traceable l => Eq (TraceLit l s)
- Data.AIG.Trace: instance Traceable l => Ord (TraceLit l s)
- Data.AIG.Trace: tActive :: TraceGraph g s -> IORef (Maybe Handle)
- Data.AIG.Trace: tGraph :: TraceGraph g s -> g s
- Data.AIG.Trace: unTraceLit :: TraceLit l s -> l s
+ Data.AIG.Interface: [unLitTree] :: LitTree -> LitView LitTree
+ Data.AIG.Interface: instance Data.Foldable.Foldable Data.AIG.Interface.LitView
+ Data.AIG.Interface: instance Data.Traversable.Traversable Data.AIG.Interface.LitView
+ Data.AIG.Interface: instance GHC.Base.Functor Data.AIG.Interface.LitView
+ Data.AIG.Interface: instance GHC.Classes.Eq Data.AIG.Interface.LitTree
+ Data.AIG.Interface: instance GHC.Classes.Eq Data.AIG.Interface.SatResult
+ Data.AIG.Interface: instance GHC.Classes.Eq Data.AIG.Interface.VerifyResult
+ Data.AIG.Interface: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.AIG.Interface.LitView a)
+ Data.AIG.Interface: instance GHC.Classes.Ord Data.AIG.Interface.LitTree
+ Data.AIG.Interface: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.AIG.Interface.LitView a)
+ Data.AIG.Interface: instance GHC.Show.Show Data.AIG.Interface.LitTree
+ Data.AIG.Interface: instance GHC.Show.Show Data.AIG.Interface.SatResult
+ Data.AIG.Interface: instance GHC.Show.Show Data.AIG.Interface.VerifyResult
+ Data.AIG.Interface: instance GHC.Show.Show a => GHC.Show.Show (Data.AIG.Interface.LitView a)
+ Data.AIG.Interface: instance Test.QuickCheck.Arbitrary.Arbitrary Data.AIG.Interface.LitTree
+ Data.AIG.Operations: instance Data.Foldable.Foldable Data.AIG.Operations.BV
+ Data.AIG.Operations: instance Data.Traversable.Traversable Data.AIG.Operations.BV
+ Data.AIG.Operations: instance GHC.Base.Functor Data.AIG.Operations.BV
+ Data.AIG.Operations: instance GHC.Classes.Eq l => GHC.Classes.Eq (Data.AIG.Operations.BV l)
+ Data.AIG.Operations: instance GHC.Classes.Ord l => GHC.Classes.Ord (Data.AIG.Operations.BV l)
+ Data.AIG.Operations: instance GHC.Show.Show l => GHC.Show.Show (Data.AIG.Operations.BV l)
+ Data.AIG.Trace: [tActive] :: TraceGraph g s -> IORef (Maybe Handle)
+ Data.AIG.Trace: [tGraph] :: TraceGraph g s -> g s
+ Data.AIG.Trace: [unTraceLit] :: TraceLit l s -> l s
+ Data.AIG.Trace: instance (Data.AIG.Interface.IsAIG l g, Data.AIG.Trace.Traceable l) => Data.AIG.Interface.IsAIG (Data.AIG.Trace.TraceLit l) (Data.AIG.Trace.TraceGraph l g)
+ Data.AIG.Trace: instance Data.AIG.Interface.IsLit l => Data.AIG.Interface.IsLit (Data.AIG.Trace.TraceLit l)
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOp l g b => Data.AIG.Trace.TraceOp l g (Data.AIG.Trace.TraceLit l s -> b)
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOp l g b => Data.AIG.Trace.TraceOp l g (GHC.IO.FilePath -> b)
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOp l g b => Data.AIG.Trace.TraceOp l g (GHC.Types.Int -> b)
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOp l g b => Data.AIG.Trace.TraceOp l g ([Data.AIG.Trace.TraceLit l s] -> b)
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOutput l g ()
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOutput l g (Data.AIG.Trace.TraceLit l s)
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOutput l g Data.AIG.Interface.SatResult
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOutput l g Data.AIG.Interface.VerifyResult
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOutput l g GHC.Types.Int
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOutput l g a => Data.AIG.Trace.TraceOutput l g [a]
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOutput l g x => Data.AIG.Trace.TraceOp l g (GHC.Types.IO x)
+ Data.AIG.Trace: instance Data.AIG.Trace.TraceOutput l g x => Data.AIG.Trace.TraceOutput l g (Data.AIG.Interface.LitView x)
+ Data.AIG.Trace: instance Data.AIG.Trace.Traceable l => GHC.Classes.Eq (Data.AIG.Trace.TraceLit l s)
+ Data.AIG.Trace: instance Data.AIG.Trace.Traceable l => GHC.Classes.Ord (Data.AIG.Trace.TraceLit l s)
Files
- aig.cabal +2/−1
- src/Data/AIG/Interface.hs +2/−7
- src/Data/AIG/Operations.hs +5/−10
aig.cabal view
@@ -1,5 +1,5 @@ Name: aig-Version: 0.2.3+Version: 0.2.4 License: BSD3 License-file: LICENSE Author: Galois Inc.@@ -35,6 +35,7 @@ ghc-options: -Wall -fno-ignore-asserts -O2 build-depends: base == 4.*,+ base-compat >= 0.6.0, mtl, vector, QuickCheck >= 2.7
src/Data/AIG/Interface.hs view
@@ -8,7 +8,6 @@ Interfaces for building, simulating and analysing And-Inverter Graphs (AIG). -}-{-# LANGUAGE CPP #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE Rank2Types #-}@@ -55,13 +54,9 @@ import Control.Applicative import Control.Monad-import Prelude hiding (not, and, or)+import Prelude()+import Prelude.Compat hiding (not, and, or, mapM) import Test.QuickCheck (Gen, Arbitrary(..), generate, oneof, sized, choose)--#if !MIN_VERSION_base(4,8,0)-import Data.Foldable (Foldable)-import Data.Traversable (Traversable)-#endif -- | Concrete datatype representing the ways -- an AIG can be constructed.
src/Data/AIG/Operations.hs view
@@ -9,11 +9,11 @@ A collection of higher-level operations (mostly 2's complement arithmetic operations) that can be built from the primitive And-Inverter Graph interface. -}-{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveFoldable #-} {-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE CPP #-} module Data.AIG.Operations ( -- * Bitvectors BV@@ -127,9 +127,8 @@ import Control.Applicative hiding (empty) import Control.Exception (assert) import qualified Control.Monad-import Control.Monad.State hiding (zipWithM, replicateM, mapM)+import Control.Monad.State hiding (zipWithM, replicateM, mapM, sequence) import Data.Bits ((.|.), setBit, shiftL, testBit)- #if MIN_VERSION_base(4,8,0) import qualified Data.Bits as Bits #endif@@ -137,16 +136,12 @@ import qualified Data.Vector as V import qualified Data.Vector.Generic.Mutable as MV -import Prelude+import Prelude()+import Prelude.Compat hiding (and, concat, length, not, or, replicate, splitAt, tail, (++), take, drop, zipWith, mapM)-import qualified Prelude+import qualified Prelude.Compat as Prelude import Data.AIG.Interface--#if !MIN_VERSION_base(4,8,0)-import Data.Foldable (Foldable)-import Data.Traversable (Traversable)-#endif -- | A BitVector consists of a sequence of symbolic bits and can be used -- for symbolic machine-word arithmetic. Bits are stored in