A reducible list abstraction with access to current state