I have found that using the type Double in a type signature causes my program to run much faster than if I use a type variable with a Num constraint.

Is this common, and if so, why is explicitly using Double faster?