experimental macro support

`Region`-like seem to be the most common duplication of code in our project. :) At any rate, please don't use `MyRange`. Could a type alias for `(Int, Int)` be used as well?