1. check that size / limit is not exceeded 
   -DONE the checking is missing for the qawo workspace stuff. 
   -DONE we never check if limit < workspace->limit, which is obviously needed 
 
2. check that routines work correctly for (b, a) and (a, b)
   -DONE

3. DONE check the inner workings of the qawo workspace. I haven't verified
it except by checking the overall result.

4. DONE what is this business with  

  if (error_type > 2)
      error_type--;

   WELL, THAT'S JUST THE WAY IT IS. We could make it more consistent but
   then it would be more confusing doing comparisons with the original
   code so we'll just leave it for now.

5. DONE Take a look at the FIXMEs
