Haskellに次のものがあるとしましょう。
type Bag a = a -> Int
data Gems = Sapphire|Emerald|Diamond|Ruby deriving (Show)
myBag :: Bag Gems
myBag Sapphire = 3
myBag Diamond = 2
myBag Emerald = 0
emptyBag :: Bag Gems
emptyBag Sapphire = 0
emptyBag Diamond = 0
emptyBag Emerald = 0
addItemxbがアイテムxの単一のオカレンスをバッグbに追加するように関数addItemをどのように定義しますか?