Currently, the CheckPoint, LocalChain, and spk_client components are not designed to handle generic types, which limits their flexibility. To support caching of Merkle proofs (#1699) and median time passed calculations, it would be beneficial for these components to accept a generic type, specifically to accommodate Headers.