zero-cost abstractions