以下功能 -
mayBeMempty :: (Eq a, Semigroup a) => a -> a -> Bool
mayBeMempty candidate ref = candidate <> ref == ref
是 的(效率较低的)泛化Data.Set.isSubSetOf。它检查第一个参数是否“包含”在第二个参数中,并且总是True在第一个参数存在mempty时返回(当它返回时False,已知它不是mempty)。
有谁知道这个函数或概念是否已经以某个名称甚至是现有的类型类存在(在这种情况下它的效率不会低于isSubSetOf)?