changing names, sigs, ops, etc. to be similar to the haskell data.lens.* libs - useful for language comparison learning!