Complex numbers are an algebraic type.
For a complex number z, abs z is a number with the magnitude of z, but oriented in the positive real direction, whereas signum z has the phase of z, but unit magnitude.

Complex numbers.

A complex contour, which can be self-intersecting and/or concave.

A complex (possibly concave) polygon, represented by one or more complex and possibly intersecting contours.

The base package's Data.Complex has a RealFloat requirement for almost all operations, which rules out uses such as 'Complex Rational' or 'Complex Integer'. This package provides an alternative, putting most operations into additional type classes. Generating instances with template haskell helps reduce excessive boilerplate and avoids instance overlap.
Version 0.1.1

Small and simple library for integration of complex functions. Integrates functions along straight lines. Compatible with real-valued functions. Uses Simpson's method.
Version 1.0.0

Determine the complexity of functions by testing them on inputs of various sizes.
Version 0.1.3

Provides a Storable instance for Complex which is binary compatible with C99, C++ and Fortran complex data types.
The only purpose of this package is to provide a standard location for this instance so that other packages needing this instance can play nicely together.
Version 0.2.1