Important (but a little lost in the article) is that in C++, your boxVolume function would compile until you tried to call it with the wrong type. However, the Haskell version won't compile, even if it hasn't been called.
In C++ templates, instantiating a template on a type that doesn't support the operations needed is a compile error (this is hopefully going to change with concepts), while in Haskell, writing a function requires you to constrain the types that the function operates on to prevent misuse.
The fact that the site only uses RC4 shows that the site's manager understands the BEAST attack (as BEAST could attask TLS1.1 that weren't RC4). Yet simply doesn't care about the CRIME attack, or that RC4 is completely cryptographically defunct.
If you transfer a static document over RC4 changing keys constantly, you can actually average which bits are high and low, and get the clear text.
In C++ templates, instantiating a template on a type that doesn't support the operations needed is a compile error (this is hopefully going to change with concepts), while in Haskell, writing a function requires you to constrain the types that the function operates on to prevent misuse.