 
         switch input[loc] {
         case Literal.zero:
-            return decodeNumberLeadingZero(start, sign: -1)
+            return decodeNumberLeadingZero(start, sign: .Negative)
 
         case Literal.one
         ,    Literal.two

                return decodeNumberExponent(start, sign: sign, value: value)

            default:
                return .Ok(.Number(sign * value))
            }
        }
        return .Ok(.Number(sign * value))
    }

    mutating func decodeNumberExponent(start: Int, sign: Double, value: Double) -> Result {
        if ++loc >= input.count {
            return makeParseError("unexpected end of data while parsing number at position \(start)")
        }

            ,    Literal.seven
            ,    Literal.eight
            ,    Literal.nine:
                return decodeNumberPreDecimalDigits(loc, sign: .Positive)

            case Literal.n:
                return decodeNull()
