
* On Monday, February 16 2009, Andrew Coppin wrote:
I do have one little question. Let me see if I can find the quote... Ah, here we go:
"The WrappedMonad and WrappedArrow constructors witness the fact that any Monad and any Arrow can be made into an Applicative."
I don't really understand that sentence. Care to elaborate?
imho, the original wording is concise and clear, but with more common words: Arrow and Monad are special cases of Functor and Applicative, so you can make an Applicative out of any Arrow or Monad. Those newtypes have Applicative instances which you can use for an arbitrary Monad or Arrow, when they are inside that newtype. You could also clarify which part you don't understand (the meanings of constructor, witness, the classes involved, etc.). If the linked haddock documentation had links to colorized source code (present in previous versions), then looking up these instances might be easier.