decouple CDeclUse from the type system to make it optional