add instances for either, maybe, and tuple, and some helper functions

PR for core-tests coming shortly but will require this one to pass.