Use Symbol for mangled names throughout code generators
diff --git a/syntax/symbol.rs b/syntax/symbol.rs
index a40baaf..fa8e587 100644
--- a/syntax/symbol.rs
+++ b/syntax/symbol.rs
@@ -19,6 +19,12 @@
     }
 }
 
+impl From<&Ident> for Symbol {
+    fn from(ident: &Ident) -> Self {
+        Symbol(ident.to_string())
+    }
+}
+
 impl Symbol {
     fn push(&mut self, segment: &dyn Display) {
         let len_before = self.0.len();
@@ -37,7 +43,9 @@
 }
 
 impl Segment for str {}
+impl Segment for usize {}
 impl Segment for Ident {}
+impl Segment for Symbol {}
 
 impl Segment for Namespace {
     fn write(&self, symbol: &mut Symbol) {