Proxy从Data.Proxy似乎只是一个单纯的
data Proxy s
Run Code Online (Sandbox Code Playgroud)
我什么时候需要这样一种无人居住的类型,或者更确切地说,它是什么使我无法做到的呢?与其他方法相比,它何时简化了事情,它在实践中如何使用?
当看着Data.Monoid,我看到有不同的newtype包装,例如All,Sum或者Product,编码各种类群的.然而,当试图使用这些包装时,我不禁想知道使用这些包装器的好处是什么Data.Monoid.例如,比较相当繁琐的总和
print $ getSum $ mconcat [ Sum 33, Sum 2, Sum 55 ]
Run Code Online (Sandbox Code Playgroud)
与更简洁的惯用变体相比
print $ sum [ 33, 2, 55 ]
Run Code Online (Sandbox Code Playgroud)
但重点是什么?所有这些newtype包装纸都有实用价值吗?是否有Monoid newtype比上述更有说服力的包装使用示例?