In the older code, type parameters that were not constrained by some argument would fail to be threaded through. We now pass `PhantomData` arguments and/or specify the type parameters manually so that this all works out fine. Fixes #104.