std: remove Encoder::emit_{owned,managed}_vec and Decoder::read_{owned,managed}_vec
diff --git a/src/libstd/ebml.rs b/src/libstd/ebml.rs
index fccb707..18cf807 100644
--- a/src/libstd/ebml.rs
+++ b/src/libstd/ebml.rs
@@ -348,8 +348,8 @@
             f()
         }
 
-        fn read_owned_vec<T>(&self, f: &fn(uint) -> T) -> T {
-            debug!("read_owned_vec()");
+        fn read_seq<T>(&self, f: &fn(uint) -> T) -> T {
+            debug!("read_seq()");
             do self.push_doc(self.next_doc(EsVec)) {
                 let len = self._next_uint(EsVecLen);
                 debug!("  len=%u", len);
@@ -357,17 +357,8 @@
             }
         }
 
-        fn read_managed_vec<T>(&self, f: &fn(uint) -> T) -> T {
-            debug!("read_managed_vec()");
-            do self.push_doc(self.next_doc(EsVec)) {
-                let len = self._next_uint(EsVecLen);
-                debug!("  len=%u", len);
-                f(len)
-            }
-        }
-
-        fn read_vec_elt<T>(&self, idx: uint, f: &fn() -> T) -> T {
-            debug!("read_vec_elt(idx=%u)", idx);
+        fn read_seq_elt<T>(&self, idx: uint, f: &fn() -> T) -> T {
+            debug!("read_seq_elt(idx=%u)", idx);
             self.push_doc(self.next_doc(EsVecElt), f)
         }
 
@@ -652,22 +643,14 @@
         }
         fn emit_enum_variant_arg(&self, _idx: uint, f: &fn()) { f() }
 
-        fn emit_borrowed_vec(&self, len: uint, f: &fn()) {
+        fn emit_seq(&self, len: uint, f: &fn()) {
             do self.wr_tag(EsVec as uint) {
                 self._emit_tagged_uint(EsVecLen, len);
                 f()
             }
         }
 
-        fn emit_owned_vec(&self, len: uint, f: &fn()) {
-            self.emit_borrowed_vec(len, f)
-        }
-
-        fn emit_managed_vec(&self, len: uint, f: &fn()) {
-            self.emit_borrowed_vec(len, f)
-        }
-
-        fn emit_vec_elt(&self, _idx: uint, f: &fn()) {
+        fn emit_seq_elt(&self, _idx: uint, f: &fn()) {
             self.wr_tag(EsVecElt as uint, f)
         }
 
diff --git a/src/libstd/json.rs b/src/libstd/json.rs
index c936f8e..d2dd9bc 100644
--- a/src/libstd/json.rs
+++ b/src/libstd/json.rs
@@ -130,19 +130,13 @@
         f();
     }
 
-    fn emit_borrowed_vec(&self, _len: uint, f: &fn()) {
+    fn emit_seq(&self, _len: uint, f: &fn()) {
         self.wr.write_char('[');
         f();
         self.wr.write_char(']');
     }
 
-    fn emit_owned_vec(&self, len: uint, f: &fn()) {
-        self.emit_borrowed_vec(len, f)
-    }
-    fn emit_managed_vec(&self, len: uint, f: &fn()) {
-        self.emit_borrowed_vec(len, f)
-    }
-    fn emit_vec_elt(&self, idx: uint, f: &fn()) {
+    fn emit_seq_elt(&self, idx: uint, f: &fn()) {
         if idx != 0 { self.wr.write_char(','); }
         f()
     }
@@ -165,10 +159,10 @@
     }
 
     fn emit_tup(&self, len: uint, f: &fn()) {
-        self.emit_borrowed_vec(len, f);
+        self.emit_seq(len, f);
     }
     fn emit_tup_elt(&self, idx: uint, f: &fn()) {
-        self.emit_vec_elt(idx, f)
+        self.emit_seq_elt(idx, f)
     }
 
     fn emit_option(&self, f: &fn()) { f(); }
@@ -243,7 +237,7 @@
         f()
     }
 
-    fn emit_borrowed_vec(&self, len: uint, f: &fn()) {
+    fn emit_seq(&self, len: uint, f: &fn()) {
         if len == 0 {
             self.wr.write_str("[]");
         } else {
@@ -256,13 +250,7 @@
             self.wr.write_char(']');
         }
     }
-    fn emit_owned_vec(&self, len: uint, f: &fn()) {
-        self.emit_borrowed_vec(len, f)
-    }
-    fn emit_managed_vec(&self, len: uint, f: &fn()) {
-        self.emit_borrowed_vec(len, f)
-    }
-    fn emit_vec_elt(&self, idx: uint, f: &fn()) {
+    fn emit_seq_elt(&self, idx: uint, f: &fn()) {
         if idx == 0 {
             self.wr.write_char('\n');
         } else {
@@ -300,10 +288,10 @@
         f();
     }
     fn emit_tup(&self, sz: uint, f: &fn()) {
-        self.emit_borrowed_vec(sz, f);
+        self.emit_seq(sz, f);
     }
     fn emit_tup_elt(&self, idx: uint, f: &fn()) {
-        self.emit_vec_elt(idx, f)
+        self.emit_seq_elt(idx, f)
     }
 
     fn emit_option(&self, f: &fn()) { f(); }
@@ -858,8 +846,8 @@
         }
     }
 
-    fn read_owned_vec<T>(&self, f: &fn(uint) -> T) -> T {
-        debug!("read_owned_vec()");
+    fn read_seq<T>(&self, f: &fn(uint) -> T) -> T {
+        debug!("read_seq()");
         let len = match *self.peek() {
             List(ref list) => list.len(),
             _ => fail!(~"not a list"),
@@ -869,19 +857,8 @@
         res
     }
 
-    fn read_managed_vec<T>(&self, f: &fn(uint) -> T) -> T {
-        debug!("read_owned_vec()");
-        let len = match *self.peek() {
-            List(ref list) => list.len(),
-            _ => fail!(~"not a list"),
-        };
-        let res = f(len);
-        self.pop();
-        res
-    }
-
-    fn read_vec_elt<T>(&self, idx: uint, f: &fn() -> T) -> T {
-        debug!("read_vec_elt(idx=%u)", idx);
+    fn read_seq_elt<T>(&self, idx: uint, f: &fn() -> T) -> T {
+        debug!("read_seq_elt(idx=%u)", idx);
         match *self.peek() {
             List(ref list) => {
                 self.stack.push(&list[idx]);
diff --git a/src/libstd/serialize.rs b/src/libstd/serialize.rs
index 42a9e24..512a12a 100644
--- a/src/libstd/serialize.rs
+++ b/src/libstd/serialize.rs
@@ -46,10 +46,8 @@
     fn emit_enum_variant(&self, v_name: &str, v_id: uint, sz: uint, f: &fn());
     fn emit_enum_variant_arg(&self, idx: uint, f: &fn());
 
-    fn emit_borrowed_vec(&self, len: uint, f: &fn());
-    fn emit_owned_vec(&self, len: uint, f: &fn());
-    fn emit_managed_vec(&self, len: uint, f: &fn());
-    fn emit_vec_elt(&self, idx: uint, f: &fn());
+    fn emit_seq(&self, len: uint, f: &fn());
+    fn emit_seq_elt(&self, idx: uint, f: &fn());
 
     fn emit_rec(&self, f: &fn());
     fn emit_struct(&self, name: &str, _len: uint, f: &fn());
@@ -94,9 +92,8 @@
     fn read_enum_variant<T>(&self, names: &[&str], f: &fn(uint) -> T) -> T;
     fn read_enum_variant_arg<T>(&self, idx: uint, f: &fn() -> T) -> T;
 
-    fn read_owned_vec<T>(&self, f: &fn(uint) -> T) -> T;
-    fn read_managed_vec<T>(&self, f: &fn(uint) -> T) -> T;
-    fn read_vec_elt<T>(&self, idx: uint, f: &fn() -> T) -> T;
+    fn read_seq<T>(&self, f: &fn(uint) -> T) -> T;
+    fn read_seq_elt<T>(&self, idx: uint, f: &fn() -> T) -> T;
 
     fn read_rec<T>(&self, f: &fn() -> T) -> T;
     fn read_struct<T>(&self, name: &str, _len: uint, f: &fn() -> T) -> T;
@@ -320,9 +317,9 @@
 
 impl<'self, S:Encoder,T:Encodable<S>> Encodable<S> for &'self [T] {
     fn encode(&self, s: &S) {
-        do s.emit_borrowed_vec(self.len()) {
+        do s.emit_seq(self.len()) {
             for self.eachi |i, e| {
-                s.emit_vec_elt(i, || e.encode(s))
+                s.emit_seq_elt(i, || e.encode(s))
             }
         }
     }
@@ -330,9 +327,9 @@
 
 impl<S:Encoder,T:Encodable<S>> Encodable<S> for ~[T] {
     fn encode(&self, s: &S) {
-        do s.emit_owned_vec(self.len()) {
+        do s.emit_seq(self.len()) {
             for self.eachi |i, e| {
-                s.emit_vec_elt(i, || e.encode(s))
+                s.emit_seq_elt(i, || e.encode(s))
             }
         }
     }
@@ -340,9 +337,9 @@
 
 impl<D:Decoder,T:Decodable<D>> Decodable<D> for ~[T] {
     fn decode(d: &D) -> ~[T] {
-        do d.read_owned_vec |len| {
+        do d.read_seq |len| {
             do vec::from_fn(len) |i| {
-                d.read_vec_elt(i, || Decodable::decode(d))
+                d.read_seq_elt(i, || Decodable::decode(d))
             }
         }
     }
@@ -350,9 +347,9 @@
 
 impl<S:Encoder,T:Encodable<S>> Encodable<S> for @[T] {
     fn encode(&self, s: &S) {
-        do s.emit_managed_vec(self.len()) {
+        do s.emit_seq(self.len()) {
             for self.eachi |i, e| {
-                s.emit_vec_elt(i, || e.encode(s))
+                s.emit_seq_elt(i, || e.encode(s))
             }
         }
     }
@@ -360,9 +357,9 @@
 
 impl<D:Decoder,T:Decodable<D>> Decodable<D> for @[T] {
     fn decode(d: &D) -> @[T] {
-        do d.read_managed_vec |len| {
+        do d.read_seq |len| {
             do at_vec::from_fn(len) |i| {
-                d.read_vec_elt(i, || Decodable::decode(d))
+                d.read_seq_elt(i, || Decodable::decode(d))
             }
         }
     }
@@ -395,9 +392,9 @@
     fn encode(&self, s: &S) {
         match *self {
             (ref t0, ref t1) => {
-                do s.emit_tup(2) {
-                    s.emit_tup_elt(0, || t0.encode(s));
-                    s.emit_tup_elt(1, || t1.encode(s));
+                do s.emit_seq(2) {
+                    s.emit_seq_elt(0, || t0.encode(s));
+                    s.emit_seq_elt(1, || t1.encode(s));
                 }
             }
         }
@@ -406,10 +403,11 @@
 
 impl<D:Decoder,T0:Decodable<D>,T1:Decodable<D>> Decodable<D> for (T0, T1) {
     fn decode(d: &D) -> (T0, T1) {
-        do d.read_tup(2) {
+        do d.read_seq |len| {
+            fail_unless!(len == 2);
             (
-                d.read_tup_elt(0, || Decodable::decode(d)),
-                d.read_tup_elt(1, || Decodable::decode(d))
+                d.read_seq_elt(0, || Decodable::decode(d)),
+                d.read_seq_elt(1, || Decodable::decode(d))
             )
         }
     }
@@ -424,10 +422,10 @@
     fn encode(&self, s: &S) {
         match *self {
             (ref t0, ref t1, ref t2) => {
-                do s.emit_tup(3) {
-                    s.emit_tup_elt(0, || t0.encode(s));
-                    s.emit_tup_elt(1, || t1.encode(s));
-                    s.emit_tup_elt(2, || t2.encode(s));
+                do s.emit_seq(3) {
+                    s.emit_seq_elt(0, || t0.encode(s));
+                    s.emit_seq_elt(1, || t1.encode(s));
+                    s.emit_seq_elt(2, || t2.encode(s));
                 }
             }
         }
@@ -441,11 +439,12 @@
     T2: Decodable<D>
 > Decodable<D> for (T0, T1, T2) {
     fn decode(d: &D) -> (T0, T1, T2) {
-        do d.read_tup(3) {
+        do d.read_seq |len| {
+            fail_unless!(len == 3);
             (
-                d.read_tup_elt(0, || Decodable::decode(d)),
-                d.read_tup_elt(1, || Decodable::decode(d)),
-                d.read_tup_elt(2, || Decodable::decode(d))
+                d.read_seq_elt(0, || Decodable::decode(d)),
+                d.read_seq_elt(1, || Decodable::decode(d)),
+                d.read_seq_elt(2, || Decodable::decode(d))
             )
         }
     }
@@ -461,11 +460,11 @@
     fn encode(&self, s: &S) {
         match *self {
             (ref t0, ref t1, ref t2, ref t3) => {
-                do s.emit_tup(4) {
-                    s.emit_tup_elt(0, || t0.encode(s));
-                    s.emit_tup_elt(1, || t1.encode(s));
-                    s.emit_tup_elt(2, || t2.encode(s));
-                    s.emit_tup_elt(3, || t3.encode(s));
+                do s.emit_seq(4) {
+                    s.emit_seq_elt(0, || t0.encode(s));
+                    s.emit_seq_elt(1, || t1.encode(s));
+                    s.emit_seq_elt(2, || t2.encode(s));
+                    s.emit_seq_elt(3, || t3.encode(s));
                 }
             }
         }
@@ -480,12 +479,13 @@
     T3: Decodable<D>
 > Decodable<D> for (T0, T1, T2, T3) {
     fn decode(d: &D) -> (T0, T1, T2, T3) {
-        do d.read_tup(4) {
+        do d.read_seq |len| {
+            fail_unless!(len == 4);
             (
-                d.read_tup_elt(0, || Decodable::decode(d)),
-                d.read_tup_elt(1, || Decodable::decode(d)),
-                d.read_tup_elt(2, || Decodable::decode(d)),
-                d.read_tup_elt(3, || Decodable::decode(d))
+                d.read_seq_elt(0, || Decodable::decode(d)),
+                d.read_seq_elt(1, || Decodable::decode(d)),
+                d.read_seq_elt(2, || Decodable::decode(d)),
+                d.read_seq_elt(3, || Decodable::decode(d))
             )
         }
     }
@@ -502,12 +502,12 @@
     fn encode(&self, s: &S) {
         match *self {
             (ref t0, ref t1, ref t2, ref t3, ref t4) => {
-                do s.emit_tup(5) {
-                    s.emit_tup_elt(0, || t0.encode(s));
-                    s.emit_tup_elt(1, || t1.encode(s));
-                    s.emit_tup_elt(2, || t2.encode(s));
-                    s.emit_tup_elt(3, || t3.encode(s));
-                    s.emit_tup_elt(4, || t4.encode(s));
+                do s.emit_seq(5) {
+                    s.emit_seq_elt(0, || t0.encode(s));
+                    s.emit_seq_elt(1, || t1.encode(s));
+                    s.emit_seq_elt(2, || t2.encode(s));
+                    s.emit_seq_elt(3, || t3.encode(s));
+                    s.emit_seq_elt(4, || t4.encode(s));
                 }
             }
         }
@@ -524,13 +524,14 @@
 > Decodable<D> for (T0, T1, T2, T3, T4) {
     fn decode(d: &D)
       -> (T0, T1, T2, T3, T4) {
-        do d.read_tup(5) {
+        do d.read_seq |len| {
+            fail_unless!(len == 5);
             (
-                d.read_tup_elt(0, || Decodable::decode(d)),
-                d.read_tup_elt(1, || Decodable::decode(d)),
-                d.read_tup_elt(2, || Decodable::decode(d)),
-                d.read_tup_elt(3, || Decodable::decode(d)),
-                d.read_tup_elt(4, || Decodable::decode(d))
+                d.read_seq_elt(0, || Decodable::decode(d)),
+                d.read_seq_elt(1, || Decodable::decode(d)),
+                d.read_seq_elt(2, || Decodable::decode(d)),
+                d.read_seq_elt(3, || Decodable::decode(d)),
+                d.read_seq_elt(4, || Decodable::decode(d))
             )
         }
     }
@@ -547,9 +548,9 @@
 
 impl<S:Encoder> EncoderHelpers for S {
     fn emit_from_vec<T>(&self, v: &[T], f: &fn(v: &T)) {
-        do self.emit_owned_vec(v.len()) {
+        do self.emit_seq(v.len()) {
             for v.eachi |i, e| {
-                do self.emit_vec_elt(i) {
+                do self.emit_seq_elt(i) {
                     f(e)
                 }
             }
@@ -563,9 +564,9 @@
 
 impl<D:Decoder> DecoderHelpers for D {
     fn read_to_vec<T>(&self, f: &fn() -> T) -> ~[T] {
-        do self.read_owned_vec |len| {
+        do self.read_seq |len| {
             do vec::from_fn(len) |i| {
-                self.read_vec_elt(i, || f())
+                self.read_seq_elt(i, || f())
             }
         }
     }
diff --git a/src/libsyntax/ext/auto_encode.rs b/src/libsyntax/ext/auto_encode.rs
index c9357c9..4b262df 100644
--- a/src/libsyntax/ext/auto_encode.rs
+++ b/src/libsyntax/ext/auto_encode.rs
@@ -1255,17 +1255,10 @@
             self.add_to_log(CallToEmitEnumVariantArg (idx)); f();
         }
 
-        fn emit_borrowed_vec(&self, +_len: uint, f: &fn()) {
+        fn emit_seq(&self, +_len: uint, f: &fn()) {
             self.add_unknown_to_log(); f();
         }
-
-        fn emit_owned_vec(&self, +_len: uint, f: &fn()) {
-            self.add_unknown_to_log(); f();
-        }
-        fn emit_managed_vec(&self, +_len: uint, f: &fn()) {
-            self.add_unknown_to_log(); f();
-        }
-        fn emit_vec_elt(&self, +_idx: uint, f: &fn()) {
+        fn emit_seq_elt(&self, +_idx: uint, f: &fn()) {
             self.add_unknown_to_log(); f();
         }