There is a lot of room for improvement in findBin0 especially.
It needs a fair amount of cleanup and elimination of redundant
calculation, as well as either a justification for using the simple
findMinFrom or a proper root-finding algorithm.

It would also be nice to add (preferably by pulling in an
external package) support for numerical integration and
differentiation, so that tables can be derived from only a
PDF (if the end user is willing to take the performance and
accuracy hit for the convenience).

Documentation

A data structure containing all the data that is needed
to implement Marsaglia & Tang's "ziggurat" algorithm for
sampling certain kinds of random distributions.

The documentation here is probably not sufficient to tell a user exactly
how to build one of these from scratch, but it is not really intended to
be. There are several helper functions that will build Ziggurats.
The pathologically curious may wish to read the runZiggurat source.
That is the ultimate specification of the semantics of all these fields.

The X locations of each bin in the distribution. Bin 0 is the
infinite one.

In the case of bin 0, the value given is sort of magical - x[0] is
defined to be V/f(R). It's not actually the location of any bin,
but a value computed to make the algorithm more concise and slightly
faster by not needing to specially-handle bin 0 quite as often.
If you really need to know why it works, see the runZiggurat
source or "the literature" - it's a fairly standard setup.

a bin index, uniform over [0,c) :: Int (where c is the
number of bins in the tables)

a uniformly distributed fractional value, from -1 to 1
if not mirrored, from 0 to 1 otherwise.

This is provided as a single RVar because it can be implemented
more efficiently than naively sampling 2 separate values - a
single random word (64 bits) can be efficiently converted to
a double (using 52 bits) and a bin number (using up to 12 bits),
for example.

The distribution for the final "virtual" bin
(the ziggurat algorithm does not handle distributions
that wander off to infinity, so another distribution is needed
to handle the last "bin" that stretches to infinity)

A flag indicating whether the distribution should be
mirrored about the origin (the ziggurat algorithm in
its native form only samples from one-sided distributions.
By mirroring, we can extend it to symmetric distributions
such as the normal distribution)