Следующая функция -
mayBeMempty :: (Eq a, Semigroup a) => a -> a -> Bool
mayBeMempty candidate ref = candidate <> ref == ref
Является (менее эффективным) обобщением Data.Set.isSubSetOf
.Он проверяет, содержится ли первый аргумент во втором, и всегда возвращает True
, когда первый аргумент равен mempty
(когда он возвращает False
, известно, что он не равен mempty
).
Кто-нибудь знает, существует ли эта функция или понятие уже под каким-либо именем или даже существующим классом типов (в этом случае он не будет менее эффективным, чем isSubSetOf
)?