Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Copilot.Language.Stream
Description
Abstract syntax for streams and operators.
Synopsis
- data Stream :: * -> * where
- Append :: Typed a => [a] -> Maybe (Stream Bool) -> Stream a -> Stream a
- Const :: Typed a => a -> Stream a
- Drop :: Typed a => Int -> Stream a -> Stream a
- Extern :: Typed a => String -> Maybe [a] -> Stream a
- Local :: (Typed a, Typed b) => Stream a -> (Stream a -> Stream b) -> Stream b
- Var :: Typed a => String -> Stream a
- Op1 :: (Typed a, Typed b) => Op1 a b -> Stream a -> Stream b
- Op2 :: (Typed a, Typed b, Typed c) => Op2 a b c -> Stream a -> Stream b -> Stream c
- Op3 :: (Typed a, Typed b, Typed c, Typed d) => Op3 a b c d -> Stream a -> Stream b -> Stream c -> Stream d
- Label :: Typed a => String -> Stream a -> Stream a
- data Arg where
- data StructArg = StructArg {}
Documentation
data Stream :: * -> * where Source #
A stream in Copilot is an infinite succession of values of the same type.
Streams can be built using simple primities (e.g., Const
), by applying
step-wise (e.g., Op1
) or temporal transformations (e.g., Append
, Drop
)
to streams, or by combining existing streams to form new streams (e.g.,
Op2
, Op3
).
Constructors
Append :: Typed a => [a] -> Maybe (Stream Bool) -> Stream a -> Stream a | |
Const :: Typed a => a -> Stream a | |
Drop :: Typed a => Int -> Stream a -> Stream a | |
Extern :: Typed a => String -> Maybe [a] -> Stream a | |
Local :: (Typed a, Typed b) => Stream a -> (Stream a -> Stream b) -> Stream b | |
Var :: Typed a => String -> Stream a | |
Op1 :: (Typed a, Typed b) => Op1 a b -> Stream a -> Stream b | |
Op2 :: (Typed a, Typed b, Typed c) => Op2 a b c -> Stream a -> Stream b -> Stream c | |
Op3 :: (Typed a, Typed b, Typed c, Typed d) => Op3 a b c d -> Stream a -> Stream b -> Stream c -> Stream d | |
Label :: Typed a => String -> Stream a -> Stream a |
Instances
Eq (Stream a) Source # | |
(Typed a, Eq a, Floating a) => Floating (Stream a) Source # | Streams carrying floating point numbers are instances of |
Defined in Copilot.Language.Stream Methods sqrt :: Stream a -> Stream a # (**) :: Stream a -> Stream a -> Stream a # logBase :: Stream a -> Stream a -> Stream a # asin :: Stream a -> Stream a # acos :: Stream a -> Stream a # atan :: Stream a -> Stream a # sinh :: Stream a -> Stream a # cosh :: Stream a -> Stream a # tanh :: Stream a -> Stream a # asinh :: Stream a -> Stream a # acosh :: Stream a -> Stream a # atanh :: Stream a -> Stream a # | |
(Typed a, Eq a, Fractional a) => Fractional (Stream a) Source # | Streams carrying fractional numbers are instances of |
(Typed a, Eq a, Num a) => Num (Stream a) Source # | Streams carrying numbers are instances of |
Show (Stream a) Source # | |
(Typed a, Bits a) => Bits (Stream a) Source # | Instance of the Only the methods |
Defined in Copilot.Language.Operators.BitWise Methods (.&.) :: Stream a -> Stream a -> Stream a # (.|.) :: Stream a -> Stream a -> Stream a # xor :: Stream a -> Stream a -> Stream a complement :: Stream a -> Stream a # shift :: Stream a -> Int -> Stream a rotate :: Stream a -> Int -> Stream a setBit :: Stream a -> Int -> Stream a clearBit :: Stream a -> Int -> Stream a complementBit :: Stream a -> Int -> Stream a testBit :: Stream a -> Int -> Bool bitSizeMaybe :: Stream a -> Maybe Int shiftL :: Stream a -> Int -> Stream a unsafeShiftL :: Stream a -> Int -> Stream a shiftR :: Stream a -> Int -> Stream a unsafeShiftR :: Stream a -> Int -> Stream a rotateL :: Stream a -> Int -> Stream a |
Wrapper to use Stream
s as arguments to triggers.