chalmers-lava2000-1.6.1: Hardware description EDSL

Safe HaskellNone
LanguageHaskell98

Lava.Signal

Documentation

newtype Signal a #

Constructors

Signal Symbol 

Instances

Eq (Signal a) # 

Methods

(==) :: Signal a -> Signal a -> Bool #

(/=) :: Signal a -> Signal a -> Bool #

Show (Signal a) # 

Methods

showsPrec :: Int -> Signal a -> ShowS #

show :: Signal a -> String #

showList :: [Signal a] -> ShowS #

Choice (Signal a) # 

Methods

ifThenElse :: Signal Bool -> (Signal a, Signal a) -> Signal a #

FiniteSig a => Finite (Signal a) # 

Methods

domain :: [Signal a] #

ConstructiveSig a => Constructive (Signal a) # 

Methods

zero :: Signal a #

var :: String -> Signal a #

random :: Rnd -> Signal a #

Generic (Signal a) # 
ShowModel (Signal a) # 

Methods

showModel :: Model -> Signal a -> [String] #

Checkable a => Checkable (Signal a) # 

Methods

property :: Signal a -> Property #

ChoiceWithSig a => CoFresh (Signal a) # 

Methods

cofresh :: (Choice b, Fresh b) => Gen b -> Gen (Signal a -> b) #

ConstructiveSig a => Fresh (Signal a) # 

Methods

fresh :: Gen (Signal a) #

newtype Symbol #

Constructors

Symbol (Ref (S Symbol)) 

data S s #

Constructors

Bool Bool 
Inv s 
And [s] 
Or [s] 
Xor [s] 
VarBool String 
DelayBool s s 
Int Int 
Neg s 
Div s s 
Mod s s 
Plus [s] 
Times [s] 
Gte s s 
Equal [s] 
If s s s 
VarInt String 
DelayInt s s 

Instances

Functor S # 

Methods

fmap :: (a -> b) -> S a -> S b #

(<$) :: a -> S b -> S a #

Sequent S # 

Methods

sequent :: Monad m => S (m a) -> m (S a) #

Show a => Show (S a) # 

Methods

showsPrec :: Int -> S a -> ShowS #

show :: S a -> String #

showList :: [S a] -> ShowS #

lift1 :: (Symbol -> S Symbol) -> Signal a -> Signal b #

lift2 :: (Symbol -> Symbol -> S Symbol) -> Signal a -> Signal b -> Signal c #

lift3 :: (Symbol -> Symbol -> Symbol -> S Symbol) -> Signal a -> Signal b -> Signal c -> Signal d #

liftl :: ([Symbol] -> S Symbol) -> [Signal a] -> Signal c #

eval :: S (S a) -> S a #

evalLazy :: S (Maybe (S a)) -> Maybe (S a) #

arguments :: S a -> [a] #

zips :: S [a] -> [S a] #