* non recursive top_down_rewrite
* nicer algorithm
* rewrite bottom up also
* only top down is broken?
* simpler iterative algo
* no recursion errors
* top down and bottom up
* unified rewrite
* simpler rewrite
* clean up comments
* move that comment
* KERNELIZE makes softmax a single kernel
* single kernel works
* softmax works
* broken
* correct
* skip that test
* kernelize tests
* rename to fuse
* better reduce_push_add_ones code
* correct now
* cleanups
* oops
* return None if we can't push ones
* rename + docs
* atol fixes group
* flash attention broken test