#[test]
fn it_works() {
}


mod SVM {
    /// Singly-linked cons list.
    ///
    /// This is used internally to represent list primitives in the machine.
    pub enum List<T> {
        Nil,
        Cons(T, List<T>)
    }

    /// Public implementation for List.
    impl<T> List<T> {

        fn new() -> List<T> {
            Nil
        }

    }

    enum Exp {
        Number(i32)
    }

    struct Engine {
        stack: Vec<Exp>
    }
}

#[test]
fn it_works() {
}


mod SVM {
    /// Singly-linked cons list.
    ///
    /// This is used internally to represent list primitives in the machine.
    pub enum List<T> {
        Cons(T ~List<T>),
        Nil
    }

    /// Public implementation for List.
    pub impl List<T> {

        pub fn new() -> List<T> {
            Nil
        }

    }

    enum Exp {
        Number(int)
    }

    struct Engine {
        stack: Vec<Exp>
    }
}

--- 
+++ 
@@ -8,21 +8,21 @@
     ///
     /// This is used internally to represent list primitives in the machine.
     pub enum List<T> {
-        Cons(T ~List<T>),
-        Nil
+        Nil,
+        Cons(T, List<T>)
     }
 
     /// Public implementation for List.
-    pub impl List<T> {
+    impl<T> List<T> {
 
-        pub fn new() -> List<T> {
+        fn new() -> List<T> {
             Nil
         }
 
     }
 
     enum Exp {
-        Number(int)
+        Number(i32)
     }
 
     struct Engine {
Use strict size for num expression
