aig-0.2: And-inverter graphs in Haskell.

Copyright(c) Galois, Inc. 2014
LicenseBSD3
Maintainerjhendrix@galois.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.AIG.Trace

Description

A tracing wrapper AIG interface. Given an underlying AIG interface, this wrapper intercepts all interface calls and logs them to a file for debugging purposes.

Documentation

class Traceable l where Source

Methods

compareLit :: l s -> l s -> Ordering Source

showLit :: l s -> String Source

newtype TraceLit l s Source

Constructors

TraceLit 

Fields

unTraceLit :: l s
 

Instances

TraceOutput l g (TraceLit l s) 
TraceOp l g b => TraceOp l g ([TraceLit l s] -> b) 
TraceOp l g b => TraceOp l g (TraceLit l s -> b) 
IsLit l => IsLit (TraceLit l) 
(IsAIG l g, Traceable l) => IsAIG (TraceLit l) (TraceGraph l g) 
Traceable l => Eq (TraceLit l s) 
Traceable l => Ord (TraceLit l s) 

data TraceGraph l g s Source

Constructors

TraceGraph 

Fields

tGraph :: g s
 
tActive :: IORef (Maybe Handle)
 

Instances

(IsAIG l g, Traceable l) => IsAIG (TraceLit l) (TraceGraph l g) 

withTracing :: TraceGraph l g s -> FilePath -> IO a -> IO a Source

class TraceOp l g a where Source

Methods

traceOp :: (Traceable l, IsAIG l g) => TraceGraph l g s -> String -> a -> a Source

Instances

TraceOutput l g x => TraceOp l g (IO x) 
TraceOp l g b => TraceOp l g (FilePath -> b) 
TraceOp l g b => TraceOp l g ([TraceLit l s] -> b) 
TraceOp l g b => TraceOp l g (TraceLit l s -> b) 
TraceOp l g b => TraceOp l g (Int -> b) 

class TraceOutput l g x where Source

Methods

traceOutput :: (Traceable l, IsAIG l g) => TraceGraph l g s -> x -> String Source

withNewGraphTracing :: (IsAIG l g, Traceable l) => Proxy l g -> FilePath -> (forall s. TraceGraph l g s -> IO a) -> IO a Source