在 Haskell 中的半群实例中连接半格示例



我正在收集Semigroup实例中的连接半格示例。如您所知,连接半格类似于半群,但需要额外的交换性和幂等性。从对黑客库的快速扫描中,我发现了以下示例:

  • Data.Semigroup.Max
  • Data.Semigroup.All
  • Data.Semigroup.Any
  • Data.Map.Append.AppendMap

我很好奇您是否在 Haskell 库中遇到过任何其他(有趣且有用的(连接半格示例?

有序严格增加的完全比较元素列表(其中相等意味着相同(似乎在包data-ordlistData.List.Ordered.union下形成连接半晶格。

>Data.IntSet.IntSet将集合的联合操作作为其<>,这似乎符合您的标准。对于其他集合来说可能也是如此,只要你对它们的元素破坏它的病理Eq实例感到满意。

对于Proxy也是如此,但这远非你能得到的有用。

最新更新