我正在寻找最常见的 Haskell 库,它引入了通过将 ing委托给其元素[a]
来实例化的包装器,其方式类似于:Semigroup
mappend
newtype SList a = SList { slist :: [a] }
instance Semigroup a => Semigroup (SList a) where
l1 <> l2 = SList $ foldl1 (<>) <$> transpose [slist l1, slist l2]
例如,SList [a,b,c] <> SList [d,e,f,g]
将评估为SList [a <> d,
b <> e, c <> f, g]
。
令我惊讶的是,我在 Prelude 或其他最受欢迎的库中都找不到任何东西。这是为什么?