Abstract how source positions are created so Truffle can get more detail without burdening non-Truffle.