Changelog for semialign-1.3.1
1.3.1
- Support GHC-8.6.5...GHC-9.10.1
1.3
- Depend on
bifunctor-classes-compatinstead ofbifunctorsSee changelog note inbifunctors-5.6: https://hackage.haskell.org/package/bifunctors-5.6/changelog This is breaking change, but affects only GHC-8.0 and older users. In that case you should check various combinations of newer/olderbifunctors,these, andsemialignpackages.
1.2.0.1
- GHC-9.2 support
1.2
- Migrate
SemialignWithIndexandZipWithIndexto this package, usingFunctorWithIndexfromindexed-traversable. - Add
RepeatWithIndextype-class. - Poly-kinded instances (notably
Tagged)
1.1.0.1
- Drop
base-compatdependency
1.1
- Split
SemialignintoSemialignandZip. - Rename old
ZipintoRepeat - i.e. current main hierarchy is
- Remove
malign, usesalignoralignWith mappendwhereMonoidis necessary. - Add
Optioninstances
instance Functor f => Semialign f where
alignWith :: (These a b -> c) -> f a -> f b -> f c
instance Semialign f => Align f where
nil :: f a
instance Semialign f => Zip f where
zipWith :: (a -> b -> c) -> f a -> f b -> f c
instance Zip f => Repeat f where
repeat :: a -> f a
This biased choice, that Semialign is a super-class of Zip is motivated by the fact that
- There's no
Semialign-like class anywhere else, yet ZipandRepeatareApply(fromsemigroupoids) andApplicativewith slightly more laws. I If you need onlyRepeatclass, and your type isn'tAlingable, maybe usingApplicativeis enough?
1
Split out of these package.