Refactor preserialization for better exhaustiveness checks
Mention new caching in changelog

[skip ci]