abstract syntax for stable hashing phase 1