concat-examples-0.3.0.0: Some examples of compiling to categories
Copyright(c) 2016 Conal Elliott
Maintainerconal@tabula.com
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

ConCat.Scan

Description

Parallel scan

Synopsis

Documentation

class Functor f => LScan f where Source #

Minimal complete definition

Nothing

Methods

lscan :: forall a. Monoid a => f a -> f a :* a Source #

default lscan :: (Generic1 f, LScan (Rep1 f), Monoid a) => f a -> f a :* a Source #

lscanDummy :: f a Source #

Instances

Instances details
LScan Par1 Source # 
Instance details

Defined in ConCat.Scan

Methods

lscan :: Monoid a => Par1 a -> Par1 a :* a Source #

lscanDummy :: Par1 a Source #

LScan Pair Source # 
Instance details

Defined in ConCat.Pair

Methods

lscan :: Monoid a => Pair a -> Pair a :* a Source #

lscanDummy :: Pair a Source #

LScan (U1 :: Type -> Type) Source # 
Instance details

Defined in ConCat.Scan

Methods

lscan :: Monoid a => U1 a -> U1 a :* a Source #

lscanDummy :: U1 a Source #

LScan (V1 :: Type -> Type) Source # 
Instance details

Defined in ConCat.Scan

Methods

lscan :: Monoid a => V1 a -> V1 a :* a Source #

lscanDummy :: V1 a Source #

(LScan f, LScan g) => LScan (f :*: g) Source # 
Instance details

Defined in ConCat.Scan

Methods

lscan :: Monoid a => (f :*: g) a -> (f :*: g) a :* a Source #

lscanDummy :: (f :*: g) a Source #

(LScan f, LScan g) => LScan (f :+: g) Source # 
Instance details

Defined in ConCat.Scan

Methods

lscan :: Monoid a => (f :+: g) a -> (f :+: g) a :* a Source #

lscanDummy :: (f :+: g) a Source #

LScan (K1 i c :: Type -> Type) Source # 
Instance details

Defined in ConCat.Scan

Methods

lscan :: Monoid a => K1 i c a -> K1 i c a :* a Source #

lscanDummy :: K1 i c a Source #

(LScan g, LScan f, Zip g) => LScan (g :.: f) Source # 
Instance details

Defined in ConCat.Scan

Methods

lscan :: Monoid a => (g :.: f) a -> (g :.: f) a :* a Source #

lscanDummy :: (g :.: f) a Source #

LScan f => LScan (M1 i c f) Source # 
Instance details

Defined in ConCat.Scan

Methods

lscan :: Monoid a => M1 i c f a -> M1 i c f a :* a Source #

lscanDummy :: M1 i c f a 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 #

lsums :: forall f a. (LScan f, Num a) => f a -> (f a, a) Source #

lproducts :: forall f a. (LScan f, Num a) => f a -> f a :* a Source #

lAlls :: LScan f => f Bool -> (f Bool, Bool) Source #

lAnys :: LScan f => f Bool -> (f Bool, Bool) Source #

lParities :: LScan f => f Bool -> (f Bool, Bool) Source #

multiples :: (LScan f, Pointed f, Num a) => a -> f a :* a Source #

powers :: (LScan f, Pointed f, Num a) => a -> f a :* a Source #

iota :: (LScan f, Pointed f, Num a) => f a :* a Source #

Numbers from 0 to n (size of f). Named for APL iota operation (but 0 based).