【发布时间】:2015-06-16 10:35:33
【问题描述】:
我有以下代码:
data APNSIdentifier = NoIdentifier | Identifier Word32 deriving (Show, Eq)
newtype APNSItem = Item Put
createNotificationIdentifierItem :: APNSIdentifier -> APNSItem <--- here
createNotificationIdentifierItem (Identifier identifier) = do
putWord8 3
putWord16be 4
putWord32be identifier
如何用APNSItem“包装”Put monad?我必须将APNSItem 设为Monad 类型类的实例还是有更简单的解决方案?
【问题讨论】:
-
记住 do 符号是 >>= 和 >> 的糖。那里的类型签名表明您必须在 块之外执行此操作。