This: ```python def check_re_range_alternatives( alts : list[ReRange], char : str) -> bool: result : bool = False rr : ReRange for rr in alts: if check_re_range(rr, char): result = True break return result ``` gives: ```console $ lpython a.py semantic error: Unsupported type annotation: ReRange --> a.py:2:21 | 2 | alts : list[ReRange], | ^^^^^^^ ``` But rather the error message should be: ``` semantic error: The type `ReRange` is not declared ``` or ``` semantic error: Unknown type `ReRange` ``` I think I like the second more. Regarding "Unsupported type annotation: ReRange", that should be emitted for things like `from typing import List`. If you just do `List[i32]` without importing it from anywhere, then I think it should just say `Unknown type List`, and we can provide a "hint: did you mean `list`?"