fig:rise-type-overview shows the grammar and corresponding class hierarchies of RISE types.
Type level values are organized into distinct and interconnected classes following the formalization given by the grammar and the formal typing rules (not shown in this paper, but described in [1]}, [2]}).
DataTypes are kept distinct from general types and represent types that can be stored in memory.
As we compile to GPUs, this design carefully avoids the challenge of storing functions (or closures) in memory, enforcing an important invariant of our IR.
