This module exports GCD and coprimality test using the binary gcd algorithm
and GCD with the extended Euclidean algorithm.

Efficiently counting the number of trailing zeros, the binary gcd algorithm
can perform considerably faster than the Euclidean algorithm on average.
For Int, GHC has a rewrite rule to use GMP's fast gcd, depending on
hardware and/or GMP version, that can be faster or slower than the binary
algorithm (on my 32-bit box, binary is faster, on my 64-bit box, GMP).
For Word and the sized IntN/WordN types, there is no rewrite rule (yet)
in GHC, and the binary algorithm performs consistently (so far as my tests go)
much better (if this module's rewrite rules fire).

When using this module, always compile with optimisations turned on to
benefit from GHC's primops and the rewrite rules.