-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A Haskell-embedded DSL for monitoring hard real-time
distributed systems.
--
-- Blah blah blah...
@package copilot-language
@version 0.1
-- | Reexports Prelude from package base hiding identifiers
-- redefined by Copilot.
module Copilot.Language.Prelude
-- | Transforms a Copilot Language specification into a Copilot Core
-- specification.
module Copilot.Language.Reify
reify :: Spec -> IO Spec
module Copilot.Language.Operators.BitWise
-- | The Bits class defines bitwise operations over integral types.
--
--
-- - Bits are numbered from 0 with bit 0 being the least significant
-- bit.
--
--
-- Minimal complete definition: .&., .|., xor,
-- complement, (shift or (shiftL and
-- shiftR)), (rotate or (rotateL and
-- rotateR)), bitSize and isSigned.
class Num a => Bits a
(.&.) :: Bits a => a -> a -> a
(.|.) :: Bits a => a -> a -> a
complement :: Bits a => a -> a
(.^.) :: Bits a => a -> a -> a
(.<<., .>>.) :: (Bits a, Typed a, Typed b, Integral b) => Stream a -> Stream b -> Stream a
instance (Typed a, Bits a) => Bits (Stream a)
module Copilot.Language.Operators.Temporal
(++) :: Typed a => [a] -> Stream a -> Stream a
drop :: Typed a => Int -> Stream a -> Stream a
module Copilot.Language.Operators.Ord
(<=) :: (Ord a, Typed a) => Stream a -> Stream a -> Stream Bool
(>=) :: (Ord a, Typed a) => Stream a -> Stream a -> Stream Bool
(<) :: (Ord a, Typed a) => Stream a -> Stream a -> Stream Bool
(>) :: (Ord a, Typed a) => Stream a -> Stream a -> Stream Bool
module Copilot.Language.Operators.Mux
mux :: Typed a => Stream Bool -> Stream a -> Stream a -> Stream a
ifThenElse :: Typed a => Stream Bool -> Stream a -> Stream a -> Stream a
module Copilot.Language.Operators.Integral
div :: (Typed a, Integral a) => Stream a -> Stream a -> Stream a
mod :: (Typed a, Integral a) => Stream a -> Stream a -> Stream a
module Copilot.Language.Operators.Local
local :: (Typed a, Typed b) => Stream a -> (Stream a -> Stream b) -> Stream b
module Copilot.Language.Operators.Extern
extern :: Typed a => String -> Stream a
externW8 :: String -> Stream Word8
externW16 :: String -> Stream Word16
externW32 :: String -> Stream Word32
externW64 :: String -> Stream Word64
externI8 :: String -> Stream Int8
externI16 :: String -> Stream Int16
externI32 :: String -> Stream Int32
externI64 :: String -> Stream Int64
externF :: String -> Stream Float
externD :: String -> Stream Double
data FunArg
externFun :: Typed a => String -> [FunArg] -> Stream a
externArray :: (Typed a, Typed b, Integral a) => String -> Stream a -> Stream b
funArg :: Typed a => Stream a -> FunArg
module Copilot.Language.Operators.Eq
(==) :: (Eq a, Typed a) => Stream a -> Stream a -> Stream Bool
(/=) :: (Eq a, Typed a) => Stream a -> Stream a -> Stream Bool
-- | Constants.
module Copilot.Language.Operators.Constant
constant :: Typed a => a -> Stream a
-- | Type-safe casting operators.
module Copilot.Language.Operators.Cast
cast :: (Cast a b, Typed a, Typed b) => Stream a -> Stream b
instance Cast Int64 Int64
instance Cast Int32 Int64
instance Cast Int32 Int32
instance Cast Int16 Int64
instance Cast Int16 Int32
instance Cast Int16 Int16
instance Cast Int8 Int64
instance Cast Int8 Int32
instance Cast Int8 Int16
instance Cast Int8 Int8
instance Cast Word64 Word64
instance Cast Word32 Int64
instance Cast Word32 Word64
instance Cast Word32 Word32
instance Cast Word32 Word16
instance Cast Word16 Int64
instance Cast Word16 Int32
instance Cast Word16 Word64
instance Cast Word16 Word32
instance Cast Word16 Word16
instance Cast Word8 Int64
instance Cast Word8 Int32
instance Cast Word8 Int16
instance Cast Word8 Word64
instance Cast Word8 Word32
instance Cast Word8 Word16
instance Cast Word8 Word8
instance Cast Bool Int64
instance Cast Bool Int32
instance Cast Bool Int16
instance Cast Bool Int8
instance Cast Bool Word64
instance Cast Bool Word32
instance Cast Bool Word16
instance Cast Bool Word8
instance Cast Bool Bool
module Copilot.Language.Operators.Boolean
(&&) :: Stream Bool -> Stream Bool -> Stream Bool
(||) :: Stream Bool -> Stream Bool -> Stream Bool
not :: Stream Bool -> Stream Bool
true :: Stream Bool
false :: Stream Bool
xor :: Stream Bool -> Stream Bool -> Stream Bool
(==>) :: Stream Bool -> Stream Bool -> Stream Bool
-- | The interpreter.
module Copilot.Language.Interpret
data Input
csv :: Integer -> [Input] -> Spec -> IO ()
-- | Much slower, but pretty-printed interpreter output.
interpret :: Integer -> [Input] -> Spec -> IO ()
var :: Typed a => String -> [a] -> Input
array :: Typed a => String -> [[a]] -> Input
func :: Typed a => String -> Stream a -> Input
module Copilot.Language.Error
impossible :: String -> String -> a
badUsage :: String -> a
module Copilot.Language
type Spec = Writer [SpecItem] ()
data Stream :: * -> *
observer :: Typed a => String -> Stream a -> Spec
trigger :: String -> Stream Bool -> [TriggerArg] -> Spec
arg :: Typed a => Stream a -> TriggerArg
prettyPrint :: Spec -> IO ()
module Copilot