They could, but I want the trait separate (mentioned in a previous comment), and it sounds like a StringWriter trait will have to be re-homed to a different writer layer later, so better keep it separate. I think it's nice how the trait system makes it easy to keep parts separate.