linear abstraction