Конечно, тип данных не является точным, но так ли это (более или менее) реализован Monoid Bool
?Monoid Bool in Haskell
import Data.Monoid
data Bool' = T | F deriving (Show)
instance Monoid (Bool') where
mempty = T
mappend T _ = T
mappend _ T = T
mappend _ _ = F
Если да/нет, то рассуждения для изготовления Bool
«s mappend
OR
против AND
?
спасибо. Я не уверен, что это отдельный вопрос, но почему используется 'newtype', а не' data'? Thx –
'newtype' более эффективен, чем' data'. Обтекание и разворачивание нового стиля бесплатное. –
На самом деле четыре. '(&&), (||), (==), (/ =)' все являются возможными моноидными операциями. Тем не менее, последние два не предопределены. –