         }
 
         loc += 5
-        return .Ok(.Bool(false))
+        return .Success(.Bool(false))
     }
 
     private var stringDecodingBuffer = [UInt8]()
-    private mutating func decodeString() -> Result {
+    private mutating func decodeString() -> Result<JSON, NSError> {
         let start = loc
         ++loc
         stringDecodingBuffer.removeAll(keepCapacity: true)

        }
    }

    private mutating func decodeNumberExponentDigits(start: Int, sign: Sign, value: Double, expSign: Sign) -> Result {
        var exponent: Double = 0

        advancing: while loc < input.count {

    static let nine  = UInt8(ascii: "9")
}

private let ParserMaximumDepth = 512

public struct JSONParser {

    private enum Sign: Int {
        case Positive = 1
