     let first: Expr
     let second: Expr
 
-    func evaluate() -> Int {
+    func evaluate() -> Double {
         return first.evaluate() * second.evaluate()
+    }
+}
+
+struct Divide: Expr {
+    let first: Expr
+    let second: Expr
+
+    func evaluate() -> Double {
+        return first.evaluate() / second.evaluate()
     }
 }
 

import Syft

protocol Expr {
    func evaluate() -> Int
}

struct Num: Expr {
    let value: Int
    
    func evaluate() -> Int {
        return value
    }
}

    let first: Expr
    let second: Expr

    func evaluate() -> Double {
        return first.evaluate() - second.evaluate()
    }
}
