add free and bound identifier sets

Still need to add docs, but wanted to see if anyone had feedback.

I will squash when done.
Minor: indentation seems a bit funny here?