# from __future__ import annotations

# from metadsl import *
# from metadsl_core import *
# import typing

# IntType = typing.Union[int, Integer]
# IntsType = typing.Union[typing.Tuple[int, ...], Vec[Integer]]
# IdxType = typing.Union[IntType, Vec[Integer], typing.Tuple[int, ...]]
# ArrayType = typing.Union[intType, ]

# class ArrayCompat(Expression):


#     def __getitem__(self, idx: IdxType) -> ArrayCompat:
#         ...

#     def __setitem__(self, idx: IdxType, )