Add depths to expressions.
Use those depths to stop generating duplicates.
Fix a bug with calling a function that is a bracket access.