fn pack_declaration<W: Write>(
    declaration: &Declaration,
    codec: &mut Codec<W>
) -> Result<(), WriteError>