Ben Lippmeier wrote: >>> The first thing I would do is replace your isInCircle :: (Floating >>> a, Ord a) => (a,a) -> Bool with isInCircle :: (Double, Double) -> >>> Bool >> >> Can you point me to why that matters? > > At the machine level, GHC treats the (Floating a, Ord a) as an extra > argument to the function. This argument holds function pointers that > tell it how to perform multiplication and <= for the unknown type > 'a'. If you use Double instead of 'a', then it's more likely to use > the actual machine op.
I'd recommend use of a SPECIALIZE pragma instead of rewriting the code itself: http://www.haskell.org/ghc/docs/latest/html/users_guide/pragmas.html (section 8.13.8) Ganesh =============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html =============================================================================== _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe