In sf_theta I should narrow types further. Or something. Two scalar ctors with different
different semantic interpretation of the argument (This is in lattice type)
complex ==> lattice parameter
real ==> elliptic nome.
The former must be complex (with Im(tau) > 0) but the latter could be real
or imaginary in real life. So a valid q gets sucked into the wrong ctor.
OK. the lattice type IS tau_t basically.
The complex ctor should be a copy ctor or some tagged thing.
The scalar (now real) ctor for nome input should take complex nome.
In sf_theta I should narrow types further. Or something. Two scalar ctors with different different semantic interpretation of the argument (This is in lattice type) complex ==> lattice parameter real ==> elliptic nome. The former must be complex (with Im(tau) > 0) but the latter could be real or imaginary in real life. So a valid q gets sucked into the wrong ctor.