packages feed

Wired 0.2.2 → 0.3

raw patch · 6 files changed

+24/−14 lines, 6 filesdep ~QuickCheckdep ~basedep ~containersPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: QuickCheck, base, containers, mtl

API changes (from Hackage documentation)

- Data.Hardware.Internal: instance [overlap ok] (DoubleCast n) => Multiply Double n n
- Data.Hardware.Internal: instance [overlap ok] (DoubleCast n) => Multiply n Double n
- Data.Hardware.Internal: instance [overlap ok] (Eq a) => Eq (Res t a)
- Data.Hardware.Internal: instance [overlap ok] (Show a) => Show (Res t a)
- Data.Hardware.Internal: instance [overlap ok] (Value Length) => Fractional Length
- Data.Hardware.Internal: instance [overlap ok] (Value Length) => Num Length
- Data.Logical.Knot: instance [overlap ok] (Monad m) => Monad (KnotT i x m)
- Data.Logical.Knot: instance [overlap ok] (MonadFix m) => MonadFix (KnotT i x m)
- Data.Logical.Knot: instance [overlap ok] (Ord i) => MonadKnot i x (Knot i x)
- Data.Logical.Let: instance [overlap ok] (Monad m) => Monad (LetT x m)
- Data.Logical.Let: instance [overlap ok] (Monad m) => MonadKnot VarId x (LetT x m)
- Data.Logical.Let: instance [overlap ok] (Monad m) => MonadLet x (LetT x m)
- Data.Logical.Let: instance [overlap ok] (MonadFix m) => MonadFix (LetT x m)
- Data.Logical.Let: instance [overlap ok] (MonadKnot i x m) => MonadKnot i x (StateT s m)
- Layout.Internal: instance [overlap ok] (Monad m) => Monad (LayoutT s b m)
- Layout.Internal: instance [overlap ok] (Monad m) => MonadLayout s b (LayoutT s b m)
- Layout.Internal: instance [overlap ok] (MonadFix m) => MonadFix (LayoutT s b m)
- Layout.Internal: instance [overlap ok] (MonadLayout s b m) => Transformable (m a)
- Wired.Model: instance [overlap ok] (MonadLava lib m) => MonadLava lib (LayoutT s b m)
+ Data.Hardware.Internal: checkAll :: IO ()
+ Data.Hardware.Internal: instance [overlap ok] DoubleCast n => Multiply Double n n
+ Data.Hardware.Internal: instance [overlap ok] DoubleCast n => Multiply n Double n
+ Data.Hardware.Internal: instance [overlap ok] Eq a => Eq (Res t a)
+ Data.Hardware.Internal: instance [overlap ok] Show a => Show (Res t a)
+ Data.Hardware.Internal: instance [overlap ok] Value Length => Fractional Length
+ Data.Hardware.Internal: instance [overlap ok] Value Length => Num Length
+ Data.Hardware.Internal: prop_span1 :: ((Position, Position) -> Double) -> [Position] -> Property
+ Data.Hardware.Internal: prop_span2 :: ((Position, Position) -> Double) -> [Position] -> Property
+ Data.Hardware.Internal: prop_span3 :: ((Position, Position) -> Double) -> [Position] -> Property
+ Data.Hardware.Internal: prop_span4 :: ((Position, Position) -> Double) -> [(XPos, YPos)] -> Bool
+ Data.Hardware.Internal: prop_span5 :: ((Position, Position) -> Double) -> [(Length, Length)] -> Int -> Bool
+ Data.Hardware.Internal: prop_span6 :: ((Position, Position) -> Double) -> [Position] -> Bool
+ Data.Logical.Knot: instance [overlap ok] Applicative (Knot i x)
+ Data.Logical.Knot: instance [overlap ok] Applicative m => Applicative (KnotT i x m)
+ Data.Logical.Knot: instance [overlap ok] Functor (Knot i x)
+ Data.Logical.Knot: instance [overlap ok] Functor m => Functor (KnotT i x m)
+ Data.Logical.Knot: instance [overlap ok] Monad m => Monad (KnotT i x m)
+ Data.Logical.Knot: instance [overlap ok] MonadFix m => MonadFix (KnotT i x m)
+ Data.Logical.Knot: instance [overlap ok] Ord i => MonadKnot i x (Knot i x)
+ Data.Logical.Let: instance [overlap ok] (Monad m, Functor m) => Applicative (LetT x m)
+ Data.Logical.Let: instance [overlap ok] Applicative (Let x)
+ Data.Logical.Let: instance [overlap ok] Functor (Let x)
+ Data.Logical.Let: instance [overlap ok] Functor m => Functor (LetT x m)
+ Data.Logical.Let: instance [overlap ok] Monad m => Monad (LetT x m)
+ Data.Logical.Let: instance [overlap ok] Monad m => MonadKnot VarId x (LetT x m)
+ Data.Logical.Let: instance [overlap ok] Monad m => MonadLet x (LetT x m)
+ Data.Logical.Let: instance [overlap ok] MonadFix m => MonadFix (LetT x m)
+ Data.Logical.Let: instance [overlap ok] MonadKnot i x m => MonadKnot i x (StateT s m)
+ Lava.Internal: checkAll :: IO ()
+ Lava.Internal: prop_correctCellInputs :: CellLibrary lib => [Declaration lib] -> Bool
+ Lava.Internal: prop_encodeBin :: Property
+ Lava.Internal: prop_encodeDecodeBin :: Property
+ Lava.Internal: prop_uniqueCells :: [Declaration t] -> Bool
+ Lava.Internal: prop_uniquePrimInputs :: [Declaration t] -> Bool
+ Layout.Internal: flipAlignment :: Alignment -> Alignment
+ Layout.Internal: instance [overlap ok] Applicative (Layout s b)
+ Layout.Internal: instance [overlap ok] Applicative m => Applicative (LayoutT s b m)
+ Layout.Internal: instance [overlap ok] Functor (Layout s b)
+ Layout.Internal: instance [overlap ok] Functor m => Functor (LayoutT s b m)
+ Layout.Internal: instance [overlap ok] Monad m => Monad (LayoutT s b m)
+ Layout.Internal: instance [overlap ok] Monad m => MonadLayout s b (LayoutT s b m)
+ Layout.Internal: instance [overlap ok] MonadFix m => MonadFix (LayoutT s b m)
+ Layout.Internal: instance [overlap ok] MonadLayout s b m => Transformable (m a)
+ Wired.Model: instance [overlap ok] MonadLava lib m => MonadLava lib (LayoutT s b m)
- Analysis.Timing: class (CellLibrary lib) => TimingLibrary lib
+ Analysis.Timing: class CellLibrary lib => TimingLibrary lib
- Analysis.Timing.Library: class (CellLibrary lib) => TimingLibrary lib
+ Analysis.Timing.Library: class CellLibrary lib => TimingLibrary lib
- Analysis.Timing.Library: class (TimingLibrary lib) => WireTimingLibrary lib
+ Analysis.Timing.Library: class TimingLibrary lib => WireTimingLibrary lib
- Analysis.Timing.Library: delay :: (TimingLibrary lib) => lib -> InPin -> OutPin -> Slope -> Capacitance -> Timing -> Timing
+ Analysis.Timing.Library: delay :: TimingLibrary lib => lib -> InPin -> OutPin -> Slope -> Capacitance -> Timing -> Timing
- Analysis.Timing.Library: layerProps :: (WireTimingLibrary lib) => Layer_ -> Res lib LayerProps
+ Analysis.Timing.Library: layerProps :: WireTimingLibrary lib => Layer_ -> Res lib LayerProps
- Analysis.Timing.Library: loadCaps :: (TimingLibrary lib) => lib -> [Capacitance]
+ Analysis.Timing.Library: loadCaps :: TimingLibrary lib => lib -> [Capacitance]
- Analysis.Timing.Library: wireCap :: (WireTimingLibrary lib) => Layer_ -> Length -> Res lib Capacitance
+ Analysis.Timing.Library: wireCap :: WireTimingLibrary lib => Layer_ -> Length -> Res lib Capacitance
- Data.Hardware: divLen :: (Integral n) => Length -> n -> Length
+ Data.Hardware: divLen :: Integral n => Length -> n -> Length
- Data.Hardware: mulLen :: (Integral n) => Length -> n -> Length
+ Data.Hardware: mulLen :: Integral n => Length -> n -> Length
- Data.Hardware.Internal: (><) :: (Multiply n1 n2 n3) => n1 -> n2 -> n3
+ Data.Hardware.Internal: (><) :: Multiply n1 n2 n3 => n1 -> n2 -> n3
- Data.Hardware.Internal: bilinInterpolate :: (Num i, Ord x, Ord y, Fractional x, Fractional y, Fractional q, DoubleCast x, DoubleCast y, DoubleCast q) => Table2D i x y q -> x -> y -> q
+ Data.Hardware.Internal: bilinInterpolate :: (Num i, Eq i, Ord x, Ord y, Fractional x, Fractional y, Fractional q, DoubleCast x, DoubleCast y, DoubleCast q) => Table2D i x y q -> x -> y -> q
- Data.Hardware.Internal: class (Num n) => DoubleCast n
+ Data.Hardware.Internal: class Num n => DoubleCast n
- Data.Hardware.Internal: class (Num n) => IntCast n
+ Data.Hardware.Internal: class Num n => IntCast n
- Data.Hardware.Internal: class (DoubleCast t) => IsTime t
+ Data.Hardware.Internal: class DoubleCast t => IsTime t
- Data.Hardware.Internal: divLen :: (Integral n) => Length -> n -> Length
+ Data.Hardware.Internal: divLen :: Integral n => Length -> n -> Length
- Data.Hardware.Internal: findPoints :: (Num i, Ord x, Ord y) => Table2D i x y q -> x -> y -> ((x, y), (x, y), (q, q, q, q))
+ Data.Hardware.Internal: findPoints :: (Num i, Eq i, Ord x, Ord y) => Table2D i x y q -> x -> y -> ((x, y), (x, y), (q, q, q, q))
- Data.Hardware.Internal: fromDouble :: (DoubleCast n) => Double -> n
+ Data.Hardware.Internal: fromDouble :: DoubleCast n => Double -> n
- Data.Hardware.Internal: fromInt :: (IntCast n) => Int -> n
+ Data.Hardware.Internal: fromInt :: IntCast n => Int -> n
- Data.Hardware.Internal: mulLen :: (Integral n) => Length -> n -> Length
+ Data.Hardware.Internal: mulLen :: Integral n => Length -> n -> Length
- Data.Hardware.Internal: nearestPoints :: (Num i, Ord a) => i -> (i -> a) -> a -> ((i, a), (i, a))
+ Data.Hardware.Internal: nearestPoints :: (Num i, Eq i, Ord a) => i -> (i -> a) -> a -> ((i, a), (i, a))
- Data.Hardware.Internal: toDouble :: (DoubleCast n) => n -> Double
+ Data.Hardware.Internal: toDouble :: DoubleCast n => n -> Double
- Data.Hardware.Internal: toInt :: (IntCast n) => n -> Int
+ Data.Hardware.Internal: toInt :: IntCast n => n -> Int
- Data.Hardware.Internal: totalLookup :: (Ord k) => k -> Map k [a] -> [a]
+ Data.Hardware.Internal: totalLookup :: Ord k => k -> Map k [a] -> [a]
- Data.Hardware.Internal: value :: (Value v) => v -> Rational
+ Data.Hardware.Internal: value :: Value v => v -> Rational
- Data.Logical.Knot: (*=) :: (MonadKnot i x m) => i -> x -> m ()
+ Data.Logical.Knot: (*=) :: MonadKnot i x m => i -> x -> m ()
- Data.Logical.Knot: accKnot :: (Ord i) => (x -> x -> x) -> Knot i x a -> (a, Map i x)
+ Data.Logical.Knot: accKnot :: Ord i => (x -> x -> x) -> Knot i x a -> (a, Map i x)
- Data.Logical.Knot: askKnot :: (MonadKnot i x m) => i -> m x
+ Data.Logical.Knot: askKnot :: MonadKnot i x m => i -> m x
- Data.Logical.Knot: askKnotDef :: (MonadKnot i x m) => x -> i -> m x
+ Data.Logical.Knot: askKnotDef :: MonadKnot i x m => x -> i -> m x
- Data.Logical.Knot: tieKnot :: (Ord i) => Knot i x a -> (a, Map i x)
+ Data.Logical.Knot: tieKnot :: Ord i => Knot i x a -> (a, Map i x)
- Data.Logical.Let: (===) :: (MonadLet x m) => Var x -> x -> m ()
+ Data.Logical.Let: (===) :: MonadLet x m => Var x -> x -> m ()
- Data.Logical.Let: class (MonadKnot VarId x m) => MonadLet x m | m -> x
+ Data.Logical.Let: class MonadKnot VarId x m => MonadLet x m | m -> x
- Data.Logical.Let: free :: (MonadLet x m) => m (Var x)
+ Data.Logical.Let: free :: MonadLet x m => m (Var x)
- Data.Logical.Let: runLetT :: (MonadFix m) => LetT x m a -> m a
+ Data.Logical.Let: runLetT :: MonadFix m => LetT x m a -> m a
- Lava: class (Port p s) => PortFixed p s | p -> s
+ Lava: class Port p s => PortFixed p s | p -> s
- Lava: class (Port p s) => PortStruct p s t | p -> s t, s t -> p
+ Lava: class Port p s => PortStruct p s t | p -> s t, s t -> p
- Lava: fanout :: (MonadLava lib m) => m a -> InterpDesignDB lib Int
+ Lava: fanout :: MonadLava lib m => m a -> InterpDesignDB lib Int
- Lava: hasCombLoop :: (MonadLava lib m) => m a -> Bool
+ Lava: hasCombLoop :: MonadLava lib m => m a -> Bool
- Lava: hasLoop :: (MonadLava lib m) => m a -> Bool
+ Lava: hasLoop :: MonadLava lib m => m a -> Bool
- Lava: size :: (MonadLava lib m) => m p -> Int
+ Lava: size :: MonadLava lib m => m p -> Int
- Lava: toLava :: (MonadLava lib m) => m a -> Lava lib a
+ Lava: toLava :: MonadLava lib m => m a -> Lava lib a
- Lava.Internal: cellInputs :: (CellLibrary lib) => CellId -> lib -> [(CellId, InPin)]
+ Lava.Internal: cellInputs :: CellLibrary lib => CellId -> lib -> [(CellId, InPin)]
- Lava.Internal: cellList :: (MonadLava lib m) => lib -> [Signal] -> m [Signal]
+ Lava.Internal: cellList :: MonadLava lib m => lib -> [Signal] -> m [Signal]
- Lava.Internal: cellOutputs :: (CellLibrary lib) => CellId -> lib -> [Signal]
+ Lava.Internal: cellOutputs :: CellLibrary lib => CellId -> lib -> [Signal]
- Lava.Internal: class (Port p s) => PortFixed p s | p -> s
+ Lava.Internal: class Port p s => PortFixed p s | p -> s
- Lava.Internal: class (Port p s) => PortStruct p s t | p -> s t, s t -> p
+ Lava.Internal: class Port p s => PortStruct p s t | p -> s t, s t -> p
- Lava.Internal: declare :: (MonadLava lib m) => Declaration lib -> m ()
+ Lava.Internal: declare :: MonadLava lib m => Declaration lib -> m ()
- Lava.Internal: depthInterp :: (CellLibrary lib) => Interpretation lib Int
+ Lava.Internal: depthInterp :: CellLibrary lib => Interpretation lib Int
- Lava.Internal: fanout :: (MonadLava lib m) => m a -> InterpDesignDB lib Int
+ Lava.Internal: fanout :: MonadLava lib m => m a -> InterpDesignDB lib Int
- Lava.Internal: fromListFP :: (PortFixed p s) => [s] -> p
+ Lava.Internal: fromListFP :: PortFixed p s => [s] -> p
- Lava.Internal: hasCombLoop :: (MonadLava lib m) => m a -> Bool
+ Lava.Internal: hasCombLoop :: MonadLava lib m => m a -> Bool
- Lava.Internal: hasLoop :: (MonadLava lib m) => m a -> Bool
+ Lava.Internal: hasLoop :: MonadLava lib m => m a -> Bool
- Lava.Internal: hasLoopDB :: (CellLibrary lib) => Bool -> DesignDB lib -> Bool
+ Lava.Internal: hasLoopDB :: CellLibrary lib => Bool -> DesignDB lib -> Bool
- Lava.Internal: inPinId :: (CellLibrary lib) => lib -> Name -> InPin
+ Lava.Internal: inPinId :: CellLibrary lib => lib -> Name -> InPin
- Lava.Internal: inPinName :: (CellLibrary lib) => lib -> InPin -> Name
+ Lava.Internal: inPinName :: CellLibrary lib => lib -> InPin -> Name
- Lava.Internal: inputSig :: (MonadLava lib m) => m Signal
+ Lava.Internal: inputSig :: MonadLava lib m => m Signal
- Lava.Internal: interpretCells :: (CellLibrary lib) => Interpretation lib x -> [(Signal, x)] -> [(CellId, (lib, [Signal]))] -> Map Signal x
+ Lava.Internal: interpretCells :: CellLibrary lib => Interpretation lib x -> [(Signal, x)] -> [(CellId, (lib, [Signal]))] -> Map Signal x
- Lava.Internal: interpretFuncP :: (CellLibrary lib) => Interpretation lib x -> (PortTree Signal -> Lava lib (PortTree Signal)) -> (PortTree x -> (PortTree x, InterpDesignDB lib x))
+ Lava.Internal: interpretFuncP :: CellLibrary lib => Interpretation lib x -> (PortTree Signal -> Lava lib (PortTree Signal)) -> (PortTree x -> (PortTree x, InterpDesignDB lib x))
- Lava.Internal: interpret_ :: (CellLibrary lib) => Interpretation lib x -> [(Signal, x)] -> Lava lib (PortTree Signal) -> (PortTree x, InterpDesignDB lib x)
+ Lava.Internal: interpret_ :: CellLibrary lib => Interpretation lib x -> [(Signal, x)] -> Lava lib (PortTree Signal) -> (PortTree x, InterpDesignDB lib x)
- Lava.Internal: interpret__ :: (CellLibrary lib) => Interpretation lib x -> [(Signal, x)] -> (PortTree Signal, DesignDB lib) -> (PortTree x, InterpDesignDB lib x)
+ Lava.Internal: interpret__ :: CellLibrary lib => Interpretation lib x -> [(Signal, x)] -> (PortTree Signal, DesignDB lib) -> (PortTree x, InterpDesignDB lib x)
- Lava.Internal: isFlop :: (CellLibrary lib) => lib -> Bool
+ Lava.Internal: isFlop :: CellLibrary lib => lib -> Bool
- Lava.Internal: labelSig :: (MonadLava lib m) => Tag -> Signal -> m Signal
+ Lava.Internal: labelSig :: MonadLava lib m => Tag -> Signal -> m Signal
- Lava.Internal: lava2000Interp :: (CellLibrary lib) => Interpretation lib (Signal Bool)
+ Lava.Internal: lava2000Interp :: CellLibrary lib => Interpretation lib (Signal Bool)
- Lava.Internal: lengthFP :: (PortFixed p s) => Res p Int
+ Lava.Internal: lengthFP :: PortFixed p s => Res p Int
- Lava.Internal: listenDecls :: (MonadLava lib m) => m a -> m (a, [Declaration lib])
+ Lava.Internal: listenDecls :: MonadLava lib m => m a -> m (a, [Declaration lib])
- Lava.Internal: newCellId :: (MonadLava lib m) => m CellId
+ Lava.Internal: newCellId :: MonadLava lib m => m CellId
- Lava.Internal: newPrimInpId :: (MonadLava lib m) => m PrimInpId
+ Lava.Internal: newPrimInpId :: MonadLava lib m => m PrimInpId
- Lava.Internal: numIns :: (CellLibrary lib) => lib -> InPin
+ Lava.Internal: numIns :: CellLibrary lib => lib -> InPin
- Lava.Internal: numOuts :: (CellLibrary lib) => lib -> OutPin
+ Lava.Internal: numOuts :: CellLibrary lib => lib -> OutPin
- Lava.Internal: outPinId :: (CellLibrary lib) => lib -> Name -> OutPin
+ Lava.Internal: outPinId :: CellLibrary lib => lib -> Name -> OutPin
- Lava.Internal: outPinName :: (CellLibrary lib) => lib -> OutPin -> Name
+ Lava.Internal: outPinName :: CellLibrary lib => lib -> OutPin -> Name
- Lava.Internal: physCell :: (MonadLava lib m) => lib -> (a -> m a)
+ Lava.Internal: physCell :: MonadLava lib m => lib -> (a -> m a)
- Lava.Internal: port :: (Port p s) => p -> PortTree s
+ Lava.Internal: port :: Port p s => p -> PortTree s
- Lava.Internal: prop_validDecls :: (CellLibrary lib) => [Declaration lib] -> Bool
+ Lava.Internal: prop_validDecls :: CellLibrary lib => [Declaration lib] -> Bool
- Lava.Internal: prop_validSignals :: (CellLibrary lib) => [Declaration lib] -> Bool
+ Lava.Internal: prop_validSignals :: CellLibrary lib => [Declaration lib] -> Bool
- Lava.Internal: runLava :: (CellLibrary lib) => Lava lib a -> (a, DesignDB lib)
+ Lava.Internal: runLava :: CellLibrary lib => Lava lib a -> (a, DesignDB lib)
- Lava.Internal: size :: (MonadLava lib m) => m p -> Int
+ Lava.Internal: size :: MonadLava lib m => m p -> Int
- Lava.Internal: toLava :: (MonadLava lib m) => m a -> Lava lib a
+ Lava.Internal: toLava :: MonadLava lib m => m a -> Lava lib a
- Lava.Internal: unport :: (Port p s) => PortTree s -> p
+ Lava.Internal: unport :: Port p s => PortTree s -> p
- Lava.Patterns: (-<-) :: (Monad m) => (b -> m c) -> (a -> m b) -> (a -> m c)
+ Lava.Patterns: (-<-) :: Monad m => (b -> m c) -> (a -> m b) -> (a -> m c)
- Lava.Patterns: (->-) :: (Monad m) => (a -> m b) -> (b -> m c) -> (a -> m c)
+ Lava.Patterns: (->-) :: Monad m => (a -> m b) -> (b -> m c) -> (a -> m c)
- Lava.Patterns: (-|-) :: (Monad m) => (a -> m b) -> (c -> m d) -> ((a, c) -> m (b, d))
+ Lava.Patterns: (-|-) :: Monad m => (a -> m b) -> (c -> m d) -> ((a, c) -> m (b, d))
- Lava.Patterns: bfly :: (Monad m) => Int -> ([a] -> m [a]) -> ([a] -> m [a])
+ Lava.Patterns: bfly :: Monad m => Int -> ([a] -> m [a]) -> ([a] -> m [a])
- Lava.Patterns: column :: (Monad m) => ((a, b) -> m (b, c)) -> (([a], b) -> m (b, [c]))
+ Lava.Patterns: column :: Monad m => ((a, b) -> m (b, c)) -> (([a], b) -> m (b, [c]))
- Lava.Patterns: compose :: (Monad m) => [a -> m a] -> (a -> m a)
+ Lava.Patterns: compose :: Monad m => [a -> m a] -> (a -> m a)
- Lava.Patterns: composeN :: (Monad m) => Int -> (a -> m a) -> (a -> m a)
+ Lava.Patterns: composeN :: Monad m => Int -> (a -> m a) -> (a -> m a)
- Lava.Patterns: grid :: (Monad m) => ((a, b) -> m (b, a)) -> (([a], [b]) -> m ([b], [a]))
+ Lava.Patterns: grid :: Monad m => ((a, b) -> m (b, a)) -> (([a], [b]) -> m ([b], [a]))
- Lava.Patterns: ilv :: (Monad m) => ([a] -> m [b]) -> ([a] -> m [b])
+ Lava.Patterns: ilv :: Monad m => ([a] -> m [b]) -> ([a] -> m [b])
- Lava.Patterns: ilvN :: (Monad m) => Int -> ([a] -> m [b]) -> ([a] -> m [b])
+ Lava.Patterns: ilvN :: Monad m => Int -> ([a] -> m [b]) -> ([a] -> m [b])
- Lava.Patterns: iter :: (Monad m) => Int -> ((a -> m b) -> (a -> m b)) -> ((a -> m b) -> (a -> m b))
+ Lava.Patterns: iter :: Monad m => Int -> ((a -> m b) -> (a -> m b)) -> ((a -> m b) -> (a -> m b))
- Lava.Patterns: mirror :: (Monad m) => ((a, b) -> m (c, d)) -> ((b, a) -> m (d, c))
+ Lava.Patterns: mirror :: Monad m => ((a, b) -> m (c, d)) -> ((b, a) -> m (d, c))
- Lava.Patterns: mon :: (Monad m) => (a -> b) -> (a -> m b)
+ Lava.Patterns: mon :: Monad m => (a -> b) -> (a -> m b)
- Lava.Patterns: par :: (Monad m) => (a -> m b) -> (c -> m d) -> ((a, c) -> m (b, d))
+ Lava.Patterns: par :: Monad m => (a -> m b) -> (c -> m d) -> ((a, c) -> m (b, d))
- Lava.Patterns: parl :: (Monad m) => ([a] -> m [b]) -> ([a] -> m [b]) -> ([a] -> m [b])
+ Lava.Patterns: parl :: Monad m => ([a] -> m [b]) -> ([a] -> m [b]) -> ([a] -> m [b])
- Lava.Patterns: pmap :: (Monad m) => ((a, a) -> m (b, b)) -> ([a] -> m [b])
+ Lava.Patterns: pmap :: Monad m => ((a, a) -> m (b, b)) -> ([a] -> m [b])
- Lava.Patterns: row :: (Monad m) => ((a, b) -> m (c, a)) -> ((a, [b]) -> m ([c], a))
+ Lava.Patterns: row :: Monad m => ((a, b) -> m (c, a)) -> ((a, [b]) -> m ([c], a))
- Lava.Patterns: serial :: (Monad m) => (a -> m b) -> (b -> m c) -> (a -> m c)
+ Lava.Patterns: serial :: Monad m => (a -> m b) -> (b -> m c) -> (a -> m c)
- Lava.Patterns: tri :: (Monad m) => (a -> m a) -> ([a] -> m [a])
+ Lava.Patterns: tri :: Monad m => (a -> m a) -> ([a] -> m [a])
- Lava.Patterns: two :: (Monad m) => ([a] -> m [b]) -> ([a] -> m [b])
+ Lava.Patterns: two :: Monad m => ([a] -> m [b]) -> ([a] -> m [b])
- Lava.Patterns: twoN :: (Monad m) => Int -> ([a] -> m [b]) -> ([a] -> m [b])
+ Lava.Patterns: twoN :: Monad m => Int -> ([a] -> m [b]) -> ([a] -> m [b])
- Layout: class (Monad m) => MonadLayout s b m | m -> s b
+ Layout: class Monad m => MonadLayout s b m | m -> s b
- Layout: downwards :: (MonadLayout s b m) => m a -> m a
+ Layout: downwards :: MonadLayout s b m => m a -> m a
- Layout: downwards' :: (MonadLayout s b m) => m a -> m a
+ Layout: downwards' :: MonadLayout s b m => m a -> m a
- Layout: flipX :: (Transformable a) => a -> a
+ Layout: flipX :: Transformable a => a -> a
- Layout: flipY :: (Transformable a) => a -> a
+ Layout: flipY :: Transformable a => a -> a
- Layout: leftwards :: (MonadLayout s b m) => m a -> m a
+ Layout: leftwards :: MonadLayout s b m => m a -> m a
- Layout: leftwards' :: (MonadLayout s b m) => m a -> m a
+ Layout: leftwards' :: MonadLayout s b m => m a -> m a
- Layout: renderLayoutT :: (Monad m) => (forall a. m a -> a) -> Name -> LayoutT s b m a -> IO ()
+ Layout: renderLayoutT :: Monad m => (forall a. m a -> a) -> Name -> LayoutT s b m a -> IO ()
- Layout: rightwards :: (MonadLayout s b m) => m a -> m a
+ Layout: rightwards :: MonadLayout s b m => m a -> m a
- Layout: rightwards' :: (MonadLayout s b m) => m a -> m a
+ Layout: rightwards' :: MonadLayout s b m => m a -> m a
- Layout: rotate :: (Transformable a) => Int -> a -> a
+ Layout: rotate :: Transformable a => Int -> a -> a
- Layout: rotate_ :: (Transformable a) => Int -> a -> a
+ Layout: rotate_ :: Transformable a => Int -> a -> a
- Layout: space :: (MonadLayout s b m) => Length -> a -> m a
+ Layout: space :: MonadLayout s b m => Length -> a -> m a
- Layout: stacked :: (MonadLayout s b m) => m a -> m a
+ Layout: stacked :: MonadLayout s b m => m a -> m a
- Layout: translate :: (MonadLayout s bl m) => XPos -> YPos -> m a -> m a
+ Layout: translate :: MonadLayout s bl m => XPos -> YPos -> m a -> m a
- Layout: unplaced :: (MonadLayout s b m) => m a -> m a
+ Layout: unplaced :: MonadLayout s b m => m a -> m a
- Layout: upwards :: (MonadLayout s b m) => m a -> m a
+ Layout: upwards :: MonadLayout s b m => m a -> m a
- Layout: upwards' :: (MonadLayout s b m) => m a -> m a
+ Layout: upwards' :: MonadLayout s b m => m a -> m a
- Layout.Internal: block :: (MonadLayout s b m) => Width -> Height -> Name -> b -> a -> m a
+ Layout.Internal: block :: MonadLayout s b m => Width -> Height -> Name -> b -> a -> m a
- Layout.Internal: block_ :: (MonadLayout s b m) => Width -> Height -> Name -> b -> m ()
+ Layout.Internal: block_ :: MonadLayout s b m => Width -> Height -> Name -> b -> m ()
- Layout.Internal: class (Monad m) => MonadLayout s b m | m -> s b
+ Layout.Internal: class Monad m => MonadLayout s b m | m -> s b
- Layout.Internal: class (Show a) => PSShow a
+ Layout.Internal: class Show a => PSShow a
- Layout.Internal: currentPlacement :: (MonadLayout s b m) => m Placement
+ Layout.Internal: currentPlacement :: MonadLayout s b m => m Placement
- Layout.Internal: downwards :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: downwards :: MonadLayout s b m => m a -> m a
- Layout.Internal: downwards' :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: downwards' :: MonadLayout s b m => m a -> m a
- Layout.Internal: flipX :: (Transformable a) => a -> a
+ Layout.Internal: flipX :: Transformable a => a -> a
- Layout.Internal: flipY :: (Transformable a) => a -> a
+ Layout.Internal: flipY :: Transformable a => a -> a
- Layout.Internal: leftwards :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: leftwards :: MonadLayout s b m => m a -> m a
- Layout.Internal: leftwards' :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: leftwards' :: MonadLayout s b m => m a -> m a
- Layout.Internal: psShow :: (PSShow a) => a -> Postscript
+ Layout.Internal: psShow :: PSShow a => a -> Postscript
- Layout.Internal: renderLayoutT :: (Monad m) => (forall a. m a -> a) -> Name -> LayoutT s b m a -> IO ()
+ Layout.Internal: renderLayoutT :: Monad m => (forall a. m a -> a) -> Name -> LayoutT s b m a -> IO ()
- Layout.Internal: rightwards :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: rightwards :: MonadLayout s b m => m a -> m a
- Layout.Internal: rightwards' :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: rightwards' :: MonadLayout s b m => m a -> m a
- Layout.Internal: rotate :: (Transformable a) => Int -> a -> a
+ Layout.Internal: rotate :: Transformable a => Int -> a -> a
- Layout.Internal: rotate_ :: (Transformable a) => Int -> a -> a
+ Layout.Internal: rotate_ :: Transformable a => Int -> a -> a
- Layout.Internal: runLayoutT :: (Monad m) => LayoutT s b m a -> m (a, Floorplan s b)
+ Layout.Internal: runLayoutT :: Monad m => LayoutT s b m a -> m (a, Floorplan s b)
- Layout.Internal: space :: (MonadLayout s b m) => Length -> a -> m a
+ Layout.Internal: space :: MonadLayout s b m => Length -> a -> m a
- Layout.Internal: space_ :: (MonadLayout s b m) => Length -> Maybe s -> m ()
+ Layout.Internal: space_ :: MonadLayout s b m => Length -> Maybe s -> m ()
- Layout.Internal: stacked :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: stacked :: MonadLayout s b m => m a -> m a
- Layout.Internal: subLayout :: (MonadLayout s b m) => Placement -> m a -> m a
+ Layout.Internal: subLayout :: MonadLayout s b m => Placement -> m a -> m a
- Layout.Internal: transformFloorplan :: (MonadLayout s b m) => (Floorplan s b -> Floorplan s b) -> m a -> m a
+ Layout.Internal: transformFloorplan :: MonadLayout s b m => (Floorplan s b -> Floorplan s b) -> m a -> m a
- Layout.Internal: translate :: (MonadLayout s bl m) => XPos -> YPos -> m a -> m a
+ Layout.Internal: translate :: MonadLayout s bl m => XPos -> YPos -> m a -> m a
- Layout.Internal: unplaced :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: unplaced :: MonadLayout s b m => m a -> m a
- Layout.Internal: upwards :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: upwards :: MonadLayout s b m => m a -> m a
- Layout.Internal: upwards' :: (MonadLayout s b m) => m a -> m a
+ Layout.Internal: upwards' :: MonadLayout s b m => m a -> m a
- Libs.Nangate45.Lava: and2_x1 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: and2_x1 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: and2_x2 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: and2_x2 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: and2_x4 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: and2_x4 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: buf_x1 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: buf_x1 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: buf_x16 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: buf_x16 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: buf_x2 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: buf_x2 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: buf_x32 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: buf_x32 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: buf_x4 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: buf_x4 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: buf_x8 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: buf_x8 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: fa_x1 :: (MonadLava Nangate45 m) => (Signal, (Signal, Signal)) -> m (Signal, Signal)
+ Libs.Nangate45.Lava: fa_x1 :: MonadLava Nangate45 m => (Signal, (Signal, Signal)) -> m (Signal, Signal)
- Libs.Nangate45.Lava: fillcell_x1 :: (MonadLava Nangate45 m) => a -> m a
+ Libs.Nangate45.Lava: fillcell_x1 :: MonadLava Nangate45 m => a -> m a
- Libs.Nangate45.Lava: fillcell_x16 :: (MonadLava Nangate45 m) => a -> m a
+ Libs.Nangate45.Lava: fillcell_x16 :: MonadLava Nangate45 m => a -> m a
- Libs.Nangate45.Lava: fillcell_x2 :: (MonadLava Nangate45 m) => a -> m a
+ Libs.Nangate45.Lava: fillcell_x2 :: MonadLava Nangate45 m => a -> m a
- Libs.Nangate45.Lava: fillcell_x32 :: (MonadLava Nangate45 m) => a -> m a
+ Libs.Nangate45.Lava: fillcell_x32 :: MonadLava Nangate45 m => a -> m a
- Libs.Nangate45.Lava: fillcell_x4 :: (MonadLava Nangate45 m) => a -> m a
+ Libs.Nangate45.Lava: fillcell_x4 :: MonadLava Nangate45 m => a -> m a
- Libs.Nangate45.Lava: fillcell_x8 :: (MonadLava Nangate45 m) => a -> m a
+ Libs.Nangate45.Lava: fillcell_x8 :: MonadLava Nangate45 m => a -> m a
- Libs.Nangate45.Lava: ha_x1 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m (Signal, Signal)
+ Libs.Nangate45.Lava: ha_x1 :: MonadLava Nangate45 m => (Signal, Signal) -> m (Signal, Signal)
- Libs.Nangate45.Lava: inv_x1 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: inv_x1 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: inv_x16 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: inv_x16 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: inv_x2 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: inv_x2 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: inv_x32 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: inv_x32 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: inv_x4 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: inv_x4 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: inv_x8 :: (MonadLava Nangate45 m) => Signal -> m Signal
+ Libs.Nangate45.Lava: inv_x8 :: MonadLava Nangate45 m => Signal -> m Signal
- Libs.Nangate45.Lava: logic0_x1 :: (MonadLava Nangate45 m) => m Signal
+ Libs.Nangate45.Lava: logic0_x1 :: MonadLava Nangate45 m => m Signal
- Libs.Nangate45.Lava: logic1_x1 :: (MonadLava Nangate45 m) => m Signal
+ Libs.Nangate45.Lava: logic1_x1 :: MonadLava Nangate45 m => m Signal
- Libs.Nangate45.Lava: nand2_x1 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: nand2_x1 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: nand2_x2 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: nand2_x2 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: nand2_x4 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: nand2_x4 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: nor2_x1 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: nor2_x1 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: nor2_x2 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: nor2_x2 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: nor2_x4 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: nor2_x4 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: or2_x1 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: or2_x1 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: or2_x2 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: or2_x2 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: or2_x4 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: or2_x4 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: xnor2_x1 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: xnor2_x1 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: xnor2_x2 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: xnor2_x2 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: xor2_x1 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: xor2_x1 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Libs.Nangate45.Lava: xor2_x2 :: (MonadLava Nangate45 m) => (Signal, Signal) -> m Signal
+ Libs.Nangate45.Lava: xor2_x2 :: MonadLava Nangate45 m => (Signal, Signal) -> m Signal
- Wired: class (CellLibrary lib) => WiredLibrary lib
+ Wired: class CellLibrary lib => WiredLibrary lib
- Wired: featureSize :: (WiredLibrary lib) => Res lib Length
+ Wired: featureSize :: WiredLibrary lib => Res lib Length
- Wired: guideLength :: (WiredLibrary lib) => Layer -> Res lib Length
+ Wired: guideLength :: WiredLibrary lib => Layer -> Res lib Length
- Wired: renderWired :: (WiredLibrary lib) => Name -> Wired lib a -> IO ()
+ Wired: renderWired :: WiredLibrary lib => Name -> Wired lib a -> IO ()
- Wired: renderWiredWithNets :: (WiredLibrary lib) => Name -> Wired lib a -> IO ()
+ Wired: renderWiredWithNets :: WiredLibrary lib => Name -> Wired lib a -> IO ()
- Wired: renderWiredWithNetsCol :: (WiredLibrary lib) => Maybe Color -> (Tag -> Maybe Color) -> Name -> Wired lib a -> IO ()
+ Wired: renderWiredWithNetsCol :: WiredLibrary lib => Maybe Color -> (Tag -> Maybe Color) -> Name -> Wired lib a -> IO ()
- Wired: rowHeight :: (WiredLibrary lib) => Res lib Height
+ Wired: rowHeight :: WiredLibrary lib => Res lib Height
- Wired.Model: class (CellLibrary lib) => WiredLibrary lib
+ Wired.Model: class CellLibrary lib => WiredLibrary lib
- Wired.Model: featureSize :: (WiredLibrary lib) => Res lib Length
+ Wired.Model: featureSize :: WiredLibrary lib => Res lib Length
- Wired.Model: guideLength :: (WiredLibrary lib) => Layer -> Res lib Length
+ Wired.Model: guideLength :: WiredLibrary lib => Layer -> Res lib Length
- Wired.Model: mkCell :: (MonadWired lib m) => Name -> Width -> Height -> m a -> m a
+ Wired.Model: mkCell :: MonadWired lib m => Name -> Width -> Height -> m a -> m a
- Wired.Model: renderWired :: (WiredLibrary lib) => Name -> Wired lib a -> IO ()
+ Wired.Model: renderWired :: WiredLibrary lib => Name -> Wired lib a -> IO ()
- Wired.Model: renderWiredWithNets :: (WiredLibrary lib) => Name -> Wired lib a -> IO ()
+ Wired.Model: renderWiredWithNets :: WiredLibrary lib => Name -> Wired lib a -> IO ()
- Wired.Model: renderWiredWithNetsCol :: (WiredLibrary lib) => Maybe Color -> (Tag -> Maybe Color) -> Name -> Wired lib a -> IO ()
+ Wired.Model: renderWiredWithNetsCol :: WiredLibrary lib => Maybe Color -> (Tag -> Maybe Color) -> Name -> Wired lib a -> IO ()
- Wired.Model: rowHeight :: (WiredLibrary lib) => Res lib Height
+ Wired.Model: rowHeight :: WiredLibrary lib => Res lib Height
- Wired.Model: runWired :: (CellLibrary lib) => Wired lib a -> (a, (DesignDB lib, Floorplan Guide CellId))
+ Wired.Model: runWired :: CellLibrary lib => Wired lib a -> (a, (DesignDB lib, Floorplan Guide CellId))

Files

Data/Hardware/Internal.hs view
@@ -222,6 +222,7 @@ instance Value Length => Fractional Length   where     fromRational r = Length $ round (r / value (Length 1))+    (/) = error "(/) not defined for Length"   @@ -454,7 +455,7 @@   -nearestPoints :: (Num i, Ord a) => i -> (i -> a) -> a -> ((i,a),(i,a))+nearestPoints :: (Num i, Eq i, Ord a) => i -> (i -> a) -> a -> ((i,a),(i,a)) nearestPoints n axis a     | a >= a2   = ((i2,a2), (i1,a1))     | otherwise = nearest i2 a2@@ -511,7 +512,7 @@   findPoints-    :: (Num i, Ord x, Ord y)+    :: (Num i, Eq i, Ord x, Ord y)     => Table2D i x y q -> x -> y -> ((x,y), (x,y), (q,q,q,q))  findPoints (Table2D xLen yLen xAxis yAxis vals) x y =@@ -532,6 +533,7 @@  bilinInterpolate     :: ( Num i+       , Eq i        , Ord x        , Ord y        , Fractional x
Data/Logical/Knot.hs view
@@ -14,6 +14,7 @@   import Data.Map (Map,fromList,fromListWith,(!),findWithDefault)+import Control.Applicative import Control.Monad.Reader import Control.Monad.Writer @@ -24,11 +25,11 @@  newtype Knot i x a =           Knot (ReaderT (Solution i x) (Writer [Constraint i x]) a)-        deriving (Monad, MonadFix)+        deriving (Functor, Applicative, Monad, MonadFix)  newtype KnotT i x m a =           KnotT (ReaderT (Solution i x) (WriterT [Constraint i x] m) a)-        deriving (Monad, MonadFix)+        deriving (Functor, Applicative, Monad, MonadFix)   
Data/Logical/Let.hs view
@@ -13,6 +13,7 @@   import Data.Map (Map)+import Control.Applicative import Control.Monad.Reader import Control.Monad.State import Control.Monad.Writer@@ -24,10 +25,10 @@ type VarId = Integer  newtype Let x a = Let (StateT VarId (Knot VarId x) a)-        deriving (Monad, MonadFix, MonadKnot VarId x)+        deriving (Functor, Applicative, Monad, MonadFix, MonadKnot VarId x)  newtype LetT x m a = LetT (StateT VarId (KnotT VarId x m) a)-        deriving (Monad, MonadFix, MonadKnot VarId x)+        deriving (Functor, Applicative, Monad, MonadFix, MonadKnot VarId x)  data Var x = Var VarId x 
Lava/Model.hs view
@@ -4,6 +4,7 @@   +import Control.Applicative import Control.Arrow ((***)) import Control.Monad.Writer import Control.Monad.State@@ -146,7 +147,7 @@  newtype Lava lib a = Lava           { unLava :: WriterT [Declaration lib] (State (PrimInpId,CellId)) a }-        deriving (Monad, MonadFix)+        deriving (Functor, Applicative, Monad, MonadFix)   
Layout/Internal.hs view
@@ -25,6 +25,7 @@   +import Control.Applicative import Control.Monad.Reader import Control.Monad.Writer @@ -36,11 +37,11 @@  newtype Layout s b a = Layout           (ReaderT Placement (Writer [Floorplan s b]) a)-        deriving (Monad, MonadFix)+        deriving (Functor, Applicative, Monad, MonadFix)  newtype LayoutT s b m a = LayoutT           (ReaderT Placement (WriterT [Floorplan s b] m) a)-        deriving (Monad, MonadFix)+        deriving (Functor, Applicative, Monad, MonadFix)   
Wired.cabal view
@@ -1,6 +1,6 @@ name:      Wired-version:   0.2.2-homepage:  http://www.cs.chalmers.se/~emax/wired/+version:   0.3+homepage:  http://www.cse.chalmers.se/~emax/wired/ synopsis:  Wire-aware hardware description  description:@@ -33,7 +33,7 @@   cell library compilation, and sequential circuits are not yet fully supported.   Also, there is virtually no documentation. The best place to look for guidance   is in the @Examples@ directory. The following thesis-  <http://www.cs.chalmers.se/~emax/documents/PhD_thesis.pdf> gives more+  <http://www.cse.chalmers.se/~emax/documents/PhD_thesis.pdf> gives more   information about the background and some explanation of programming   techniques used in Wired. It should also be said that the library is still   quite unstable and has not yet been tested in any larger scale.@@ -59,7 +59,7 @@ copyright:      (c) 2008. Emil Axelsson <emax@chalmers.se> author:         Emil Axelsson <emax@chalmers.se> maintainer:     Emil Axelsson <emax@chalmers.se>-cabal-version:  >= 1.4+cabal-version:  >= 1.6 build-type:     Simple  data-files:@@ -69,6 +69,10 @@   Examples/Sklansky.hs   Examples/Mult.hs +source-repository head+  type:      darcs+  location:  http://projects.haskell.org/Wired/+ library   exposed-modules:     Data.Logical.Knot@@ -102,7 +106,7 @@   c-sources:     Libs/Nangate45/timing.c -  build-Depends: base >= 3 && < 4, chalmers-lava2000 >= 1.1 && < 2, containers >= 0.2 && < 1, mtl >= 1.1 && < 2, QuickCheck >= 1 && < 2+  build-Depends: base < 10, chalmers-lava2000 >= 1.1 && < 2, containers, mtl, QuickCheck    extensions:     FlexibleContexts