Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data ClockProxy cl where
- LeafProxy :: (cl ~ In cl, cl ~ Out cl) => ClockProxy cl
- SequentialProxy :: ClockProxy cl1 -> ClockProxy cl2 -> ClockProxy (SequentialClock m cl1 cl2)
- ParallelProxy :: ClockProxy clL -> ClockProxy clR -> ClockProxy (ParallelClock m clL clR)
- inProxy :: ClockProxy cl -> ClockProxy (In cl)
- outProxy :: ClockProxy cl -> ClockProxy (Out cl)
- inTag :: ClockProxy cl -> Tag cl -> Maybe (Tag (In cl))
- outTag :: ClockProxy cl -> Tag cl -> Maybe (Tag (Out cl))
- class GetClockProxy cl where
- getClockProxy :: ClockProxy cl
- class ToClockProxy a where
- type Cl a :: Type
- toClockProxy :: a -> ClockProxy (Cl a)
Documentation
data ClockProxy cl where Source #
Witnesses the structure of a clock type,
in particular whether SequentialClock
s or ParallelClock
s are involved.
LeafProxy :: (cl ~ In cl, cl ~ Out cl) => ClockProxy cl | |
SequentialProxy :: ClockProxy cl1 -> ClockProxy cl2 -> ClockProxy (SequentialClock m cl1 cl2) | |
ParallelProxy :: ClockProxy clL -> ClockProxy clR -> ClockProxy (ParallelClock m clL clR) |
inProxy :: ClockProxy cl -> ClockProxy (In cl) Source #
outProxy :: ClockProxy cl -> ClockProxy (Out cl) Source #
inTag :: ClockProxy cl -> Tag cl -> Maybe (Tag (In cl)) Source #
Return the incoming tag, assuming that the incoming clock is ticked,
and Nothing
otherwise.
outTag :: ClockProxy cl -> Tag cl -> Maybe (Tag (Out cl)) Source #
Return the incoming tag, assuming that the outgoing clock is ticked,
and Nothing
otherwise.
class GetClockProxy cl where Source #
Clocks should be able to automatically generate a proxy for themselves.
Nothing
getClockProxy :: ClockProxy cl Source #
default getClockProxy :: (cl ~ In cl, cl ~ Out cl) => ClockProxy cl Source #
Instances
class ToClockProxy a where Source #
Extract a clock proxy from a type.
Nothing
toClockProxy :: a -> ClockProxy (Cl a) Source #
default toClockProxy :: GetClockProxy (Cl a) => a -> ClockProxy (Cl a) Source #
Instances
GetClockProxy cl => ToClockProxy (SN m cl a b) Source # | |
Defined in FRP.Rhine.SN toClockProxy :: SN m cl a b -> ClockProxy (Cl (SN m cl a b)) Source # | |
GetClockProxy cl => ToClockProxy (Rhine m cl a b) Source # | |
Defined in FRP.Rhine.Type toClockProxy :: Rhine m cl a b -> ClockProxy (Cl (Rhine m cl a b)) Source # |