had to tweak this to make it work within 32 bits (punt on the BigInt thing)
more AST tests