add set-canonical to unionfind ns
minor update set-canonical
bugfix cartesian-product for sets containing `false` vals