Refactored time into a new representation so that we can pass them around as expressions, references and parameters. It is essentially not treated as a special type anymore.
Previously, SSMTime was just a newtype around an SSMExp, so I changed it so that the internal representation uses just SSMExp and then just have Time be part of the frontend.
The Time in Exp Time is an abstract type, and its representation is never exposed to users. We actually never construct values of it either, Exp uses a phantom type.
Refactored time into a new representation so that we can pass them around as expressions, references and parameters. It is essentially not treated as a special type anymore.
Previously,
SSMTime
was just anewtype
around anSSMExp
, so I changed it so that the internal representation uses justSSMExp
and then just haveTime
be part of the frontend. TheTime
inExp Time
is an abstract type, and its representation is never exposed to users. We actually never construct values of it either,Exp
uses a phantom type.