Where does SType go? Ultimately, the dictionary should have type annotation, because the dictionary contents are used to define the MyHDL signals. But the straightforward way to do that introduces duplication: both Term and Node would have type annotation. Maybe that's just the way to go without a lot of restructuring, because SeqTerm uses a writer, not a state monad? Yes let's just do duplication.