Safe Haskell | None |
---|---|
Language | Haskell2010 |
The Product/Signal isomorphism
Documentation
Isomorphism between a CSignal
of a product type (e.g. a tuple) and a
product type of CSignal
s.
Instances of Bundle
must satisfy the following laws:
bundle . unbundle =id
unbundle . bundle =id
Nothing
bundle :: SClock clk -> Unbundled clk a -> CSignal clk a Source
Example:
bundle :: (CSignal clk a, CSignal clk b) -> CSignal clk (a,b)
However:
bundle :: CSignal clk Bit -> CSignal clk Bit
unbundle :: SClock clk -> CSignal clk a -> Unbundled clk a Source
Example:
unbundle :: CSignal clk (a,b) -> (CSignal clk a, CSignal clk b)
However:
unbundle :: CSignal clk Bit -> CSignal clk Bit
Bundle Bool | |
Bundle Double | |
Bundle Float | |
Bundle Int | |
Bundle Integer | |
Bundle () | |
Bundle (Maybe a) | |
Bundle (Index n) | |
Bundle (BitVector n) | |
Bundle (Signed n) | |
Bundle (Unsigned n) | |
Bundle (Either a b) | |
Bundle (a, b) | |
KnownNat n => Bundle (Vec n a) | |
Bundle (a, b, c) | |
Bundle (Fixed rep int frac) | |
Bundle (a, b, c, d) | |
Bundle (a, b, c, d, e) | |
Bundle (a, b, c, d, e, f) | |
Bundle (a, b, c, d, e, f, g) | |
Bundle (a, b, c, d, e, f, g, h) |