                 }
 
                 switch extraByte {
-                case UInt8(ascii: ","):
+                case ._comma:
                     state = .expectValue
-                case UInt8(ascii: "]"):
+                case ._closebracket:
                     return array
-                case UInt8(ascii: " "), UInt8(ascii: "\r"), UInt8(ascii: "\n"), UInt8(ascii: "\t"):
+                case ._space, ._return, ._newline, ._tab:
                     state = .expectSeperatorOrEnd
                 default:
                     throw JSONError.unexpectedCharacter(ascii: extraByte, characterIndex: reader.index)

    case singleFragmentFoundButNotAllowed
}



            case .expectSeperatorOrEnd:
                seperatorloop: while let (byte, index) = reader.read() {
                    switch byte {
                    case ._space, ._return, ._newline, ._tab:
                        continue
                    case ._closebrace:
                        return object
                    case ._comma:
                        state = .expectKey
                        break seperatorloop
                    default:
