Copyright | (c) 2016 Conal Elliott |
---|---|
Maintainer | conal@tabula.com |
Stability | experimental |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Parallel scan
Synopsis
- class Functor f => LScan f where
- lscan :: forall a. Monoid a => f a -> f a :* a
- lscanDummy :: f a
- lscanT :: Traversable t => (b -> a -> b) -> b -> t a -> (t b, b)
- lscanTraversable :: Traversable f => forall a. Monoid a => f a -> f a :* a
- lsums :: forall f a. (LScan f, Num a) => f a -> (f a, a)
- lproducts :: forall f a. (LScan f, Num a) => f a -> f a :* a
- lAlls :: LScan f => f Bool -> (f Bool, Bool)
- lAnys :: LScan f => f Bool -> (f Bool, Bool)
- lParities :: LScan f => f Bool -> (f Bool, Bool)
- multiples :: (LScan f, Pointed f, Num a) => a -> f a :* a
- powers :: (LScan f, Pointed f, Num a) => a -> f a :* a
- iota :: (LScan f, Pointed f, Num a) => f a :* a
Documentation
class Functor f => LScan f where Source #
Nothing
Instances
LScan Par1 Source # | |
LScan Pair Source # | |
LScan (U1 :: Type -> Type) Source # | |
LScan (V1 :: Type -> Type) Source # | |
(LScan f, LScan g) => LScan (f :*: g) Source # | |
(LScan f, LScan g) => LScan (f :+: g) Source # | |
LScan (K1 i c :: Type -> Type) Source # | |
(LScan g, LScan f, Zip g) => LScan (g :.: f) Source # | |
LScan f => LScan (M1 i c f) Source # | |
lscanT :: Traversable t => (b -> a -> b) -> b -> t a -> (t b, b) Source #
Traversable version (sequential)
lscanTraversable :: Traversable f => forall a. Monoid a => f a -> f a :* a Source #