Reasoning about interference between units: A general framework