No Foldable instance for Set

It seems there is no Foldable instance for Set. It would be useful to have an instance. Also Haskell does have a Foldable instance for its set type. Or is there some technical reason that it can’t have an instance?

5 Likes

I don’t think there’s a technical reason. You can very easily add your own instance:

import DA.Set as S
import DA.Foldable as F

instance Foldable Set where
  foldr fn b xs = F.foldr fn b (S.toList xs)
2 Likes

Thanks for the suggestion! We just added this Add a Foldable instance for Set by cocreature · Pull Request #9860 · digital-asset/daml · GitHub and it will be included in tomorrow’s snapshot and the 1.14 release.

6 Likes

Thanks guys. Not hard to add my own but then it would be an orphan instance (at least in the Haskell world, I guess DAML has the same notion of orphan instances).

1 Like