Safe Haskell | Safe |
---|---|

Language | Haskell2010 |

Zipping and aligning of indexed functors.

## Synopsis

- class (FunctorWithIndex i f, Semialign f) => SemialignWithIndex i f | f -> i where
- ialignWith :: (i -> These a b -> c) -> f a -> f b -> f c

- class (SemialignWithIndex i f, Zip f) => ZipWithIndex i f | f -> i where
- izipWith :: (i -> a -> b -> c) -> f a -> f b -> f c

- class (ZipWithIndex i f, Repeat f) => RepeatWithIndex i f | f -> i where
- irepeat :: (i -> a) -> f a

# Documentation

class (FunctorWithIndex i f, Semialign f) => SemialignWithIndex i f | f -> i where Source #

Indexed version of `Semialign`

.

*Since: 1.2*

Nothing

ialignWith :: (i -> These a b -> c) -> f a -> f b -> f c Source #

Analogous to `alignWith`

, but also provides an index.

#### Instances

class (SemialignWithIndex i f, Zip f) => ZipWithIndex i f | f -> i where Source #

Indexed version of `Zip`

.

*Since: 1.2*

Nothing

izipWith :: (i -> a -> b -> c) -> f a -> f b -> f c Source #

Analogous to `zipWith`

, but also provides an index.

#### Instances

ZipWithIndex Int [] Source # | |

Defined in Data.Semialign.Internal | |

ZipWithIndex Int ZipList Source # | |

ZipWithIndex Int NonEmpty Source # | |

ZipWithIndex Int IntMap Source # | |

ZipWithIndex Int Seq Source # | |

ZipWithIndex Int Vector Source # | |

ZipWithIndex () Maybe Source # | |

ZipWithIndex () Identity Source # | |

(Eq k, Hashable k) => ZipWithIndex k (HashMap k) Source # | |

Ord k => ZipWithIndex k (Map k) Source # | |

ZipWithIndex Void (Proxy :: Type -> Type) Source # | |

ZipWithIndex () (Tagged b) Source # | |

ZipWithIndex e ((->) e :: Type -> Type) Source # | |

Defined in Data.Semialign.Internal | |

(ZipWithIndex i f, ZipWithIndex j g) => ZipWithIndex (Either i j) (Product f g) Source # | |

(ZipWithIndex i f, ZipWithIndex j g) => ZipWithIndex (i, j) (Compose f g) Source # | |

class (ZipWithIndex i f, Repeat f) => RepeatWithIndex i f | f -> i where Source #

Indexed version of `Repeat`

.

*Since: 1.2*

Nothing

irepeat :: (i -> a) -> f a Source #

Analogous to `repeat`

, but also provides an index.

This should be the same as `tabulate`

for representable functors.

#### Instances

RepeatWithIndex Int [] Source # | |

Defined in Data.Semialign.Internal | |

RepeatWithIndex Int ZipList Source # | |

RepeatWithIndex Int NonEmpty Source # | |

RepeatWithIndex () Maybe Source # | |

Defined in Data.Semialign.Internal | |

RepeatWithIndex () Identity Source # | |

Defined in Data.Semialign.Internal | |

RepeatWithIndex Void (Proxy :: Type -> Type) Source # | |

RepeatWithIndex () (Tagged b) Source # | |

Defined in Data.Semialign.Internal | |

RepeatWithIndex e ((->) e :: Type -> Type) Source # | |

Defined in Data.Semialign.Internal | |

(RepeatWithIndex i f, RepeatWithIndex j g) => RepeatWithIndex (Either i j) (Product f g) Source # | |

(RepeatWithIndex i f, RepeatWithIndex j g) => RepeatWithIndex (i, j) (Compose f g) Source # | |

Defined in Data.Semialign.Internal |