-- 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. -- -- -- -- 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