Changelog for semialign-1.1.0.1
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.