
- better documentation for text methods (add_code, code_get, code_put, ...)

- documentation for ARice and BLVec

- tests for consistent die return strings
  x read unary off end of stream
  x put negative numbers should give "value must be >= 0" for all put_*
  x write with undefined value
  - put_* with undefined parameters or undef value
  - get_* with undefined parameters
  - put_string with invalid string (e.g. '0012')

- test all open modes, especially write-only

- Export

- Would be nice to do Moo/Mouse/Moose interchangably.  Any::Mouse, basically.
  mst says he's moving Moo toward a Mouse replacement, but at the moment there
  are a lot of changes to the module source between the two.  See:

    https://gist.github.com/1259851

- text code needs some redoing

- tie to a file to avoid holding everything in memory.
  Either File::Map or PerlIO :mmap or Sys::Mmap

- ARice: use reference for parameter k.

- Documentation for ARice.

- range testing for comma and block taboo codes

CODES:

- Sayood's NF3 codes (Lossless Compression Handbook pages 67-70).  Generalized
  Fibonacci code, with terminator change.  Can be a little shorter than the
  C2 codes, and he claims they're faster to encode/decode.

- Adaptive Golomb.

- Fenwick punctured codes

- Stout codes

- Yamamoto C(a,f)(n) codes (Yamamoto 2000)

- Pigeon's unconstrained taboo codes.  Described in taboo.ps.  Block codes are
  done.  Since the unconstrained codes have identical lengths to generalized
  Fibonacci codes, and these are efficiently implemented here and in XS, I
  don't think there is a pressing need to do these.

- Thoughts on Huffman, arithmetic
