

 -  read matrix market format, optionally gzipped.
    https://www.gnu.org/software/autoconf-archive/ax_check_zlib.html

 -  integration/unit test
      mcxarray
      mcxload  (ahem, see testing)
      binary format
    autogenerate. idempotency, some sort of invariant check.
      mcxload axes
         -  auto-extension of tabs
         -  keeping track of maximum index seen (symmetric/directed)
         -  strict / restrict / extend
         -  dropping/ignoring of data (restrict)
         -  labels vs numbers
         -  symmetric vs directed domains (tabs)
         -  symmetric vs directed edges
         -  values vs novalues
         -  with --expect-values should they always be present?
            auto-detect values should be possible.
         -  lots of fixmes in code

 -  per-node and per-cluster modularity

 -  mcxsubs reimplement; mcxi and/or lex/yacc. cellatac one use case.
 -  consider also mcxalter/tf()

 '  statsReset moved. fresh mcl valgrind
 '  check mclvIdxVal offset use

 -  mclxVectorDispatch; matrix argument not const. This for e.g. mclxSymReduceDispatch,
    but perhaps consider the latter and similar (knn reductions) for purge. certainly shrug etc.

 -  update/point README compile instructions

 -  mcx{load,dump} restrict tab: report intersect and difference (useful sanity-check feedback for user).

 -  hidden options in clm close should be part of other clm mode.

 -  why are mclxSub and mclxChangeDomains not more alike?
    (physical moving of column vectors in the latter).

 ?  matrix read on clustering (intra-edges only -- help --force-connected)

 !  mclExpandVector / mclvKBar should use pval rather than float?

 -  mcxi uses 'int' for integers. Why not long?

 -  fast colsizes in mcx query with binary format.

 -  mcx query -vary-threshold with 20x21 matrix L == 0 - better NA.

 -  (clxdo) easy way to generate top and bottom clusterings.
    paste <(seq 0 1 $((10-1))) <(yes 0 | head -n 10) | recol 21 | mcxload -123 -

