The paper isn ' t opposing stream fusion to buildfoldr fusion , but stream fusion to what they are calling unfoldrdestroy fusion . The latter is just the ' natural ' cochurch encoding of the list or vector , in terms of its corresponding unfoldr data Stream a where Stream s Maybe a , s s Stream aomitting here a Step type . Important functions like filter are still recursive with this approach , so the Skip constructor is introduced to write a fusible nonrecursive filter . This means that , under the hood , one is implementing lists or vectors in terms of the cochurch encoding of Maybe a rather than with this , something like filter becomes a map . The claim is that since with the current approach ' recursive stepper functions are fusible ', the detour via the Skip constructor becomes unnecessary .