module Language.Atom
(
Config (..), defaults, Clock (..), defaultClock, writeC, cType, RuleCoverage,
compile, reportSchedule, Schedule,
Timer, timer, startTimer, startTimerIf, timerDone, oneShotRise,
oneShotFall, debounce, lookupTable, linear, hysteresis, Channel (..),
channel, writeChannel, readChannel,
Fader, FaderInit (..), fader, fadeToA, fadeToB, fadeToCenter,
boolThreshold, doubleThreshold,
ValidData, validData, getValidData, whenValid, whenInvalid,
Atom, atom, period, getPeriod, phase, exactPhase, getPhase, cond,
Assign (..), incr, decr, var, var', array, array', bool, bool', int8,
int8', int16, int16', int32, int32', int64, int64', word8, word8', word16,
word16', word32, word32', word64, word64', float, float', double, double',
action, call, probe, probes, assert, cover, assertImply, Name, liftIO,
path, clock, nextCoverage,
E(..), V(..), UE(..), UV(..), A(..), UA(..), Expr(..), Expression(..),
Variable(..), Type(..), Const(..), Width(..), TypeOf(..), bytes, ue, uv,
NumE, IntegralE, FloatingE, EqE, OrdE, true, false,
value, not_, (&&.), (||.), and_, or_, any_, all_, imply, (.&.), complement,
(.|.), xor, (.<<.), (.>>.), rol, ror, bitSize, isSigned, (==.), (/=.),
(<.), (<=.), (>.), (>=.), min_, minimum_, max_, maximum_, limit, div_,
div0_, mod_, mod0_, mux, (!), (!.), ubool, unot, uand, uor, ueq, umux,
Test(..), defaultTest, Random (..), runTests, printStrLn, printIntegralE,
printFloatingE, printProbe
) where
import Language.Atom.Code
import Language.Atom.Compile
import Language.Atom.Common
import Language.Atom.Common.Fader
import Language.Atom.Common.Threshold
import Language.Atom.Common.ValidData
import Language.Atom.Language
import Language.Atom.Unit