A redo of algebra/ The goal is to be able write code that can be given multiple interpretations depending on the domain it is evaluated on. - Floating / fixed point simulation. - Sensitivity calculation (autodiff) - Staging and code generation