- Dependent types allow types to depend on values, enabling parametrized types like vectors of length n
- The CALF language extends CAO with dependent types, polymorphism, and other features to improve safety and flexibility
- CALF translates to CAO by instantiating type parameters with concrete values from a specification file
- This allows verifying properties like out-of-bounds checks directly in CALF before translation to low-level CAO