@hackage semialign-optics1.1

SemialignWithIndex, i.e. izipWith and ialignWith

This package provides SemialignWithIndex with two members

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

Superclass FunctorWithIndex is from optics-extra package. See https://hackage.haskell.org/package/semialign-indexed for lens variant.