Proposal: alpha-rename the type signatures of foldl, foldl', and scanl to be consistent with foldr and scanr

Thomas Schilling nominolo at googlemail.com
Mon Oct 15 23:26:05 CEST 2012


On 14 October 2012 15:28, Gábor Lehel <illissius at gmail.com> wrote:
> The total change would be to replace
>
>     Prelude.foldl :: (a -> b -> a) -> a -> [b] -> a
>     Prelude.scanl :: (a -> b -> a) -> a -> [b] -> [a]
>     Data.List.foldl' :: (a -> b -> a) -> a -> [b] -> a
>     Data.Foldable.foldl :: (a -> b -> a) -> a -> t b -> a
>     Data.Foldable.foldl' :: (a -> b -> a) -> a -> t b -> a
>
> with
>
>     Prelude.foldl :: (b -> a -> b) -> b -> [a] -> b
>     Prelude.scanl :: (b -> a -> b) -> b -> [a] -> [b]
>     Data.List.foldl' :: (b -> a -> b) -> b -> [a] -> b
>     Data.Foldable.foldl :: (b -> a -> b) -> b -> t a -> b
>     Data.Foldable.foldl' :: (b -> a -> b) -> b -> t a -> b
>
> I've attached a patch.

+1

We do indeed have a bit of a culture of using too short names for type
variables, but they are fine in this case.


-- 
Push the envelope. Watch it bend.



More information about the Libraries mailing list