(module json (export quote_string null_value bool_value i32_value u32_value i64_value u64_value f64_value parse_string_value_result parse_bool_value_result parse_i32_value_result parse_u32_value_result parse_i64_value_result parse_u64_value_result parse_f64_value_result parse_null_value_result field_string field_bool field_i32 field_u32 field_i64 field_u64 field_f64 field_null array0 array1 array2 array3 object0 object1 object2 object3)) (type JsonText string) (type JsonField string) (fn quote_string ((value string)) -> JsonText (std.json.quote_string value)) (fn null_value () -> JsonText "null") (fn bool_value ((value bool)) -> JsonText (if value "true" "false")) (fn i32_value ((value i32)) -> JsonText (std.num.i32_to_string value)) (fn u32_value ((value u32)) -> JsonText (std.num.u32_to_string value)) (fn i64_value ((value i64)) -> JsonText (std.num.i64_to_string value)) (fn u64_value ((value u64)) -> JsonText (std.num.u64_to_string value)) (fn f64_value ((value f64)) -> JsonText (std.num.f64_to_string value)) (fn parse_string_value_result ((token string)) -> (result string i32) (std.json.parse_string_value_result token)) (fn parse_bool_value_result ((token string)) -> (result bool i32) (std.json.parse_bool_value_result token)) (fn parse_i32_value_result ((token string)) -> (result i32 i32) (std.json.parse_i32_value_result token)) (fn parse_u32_value_result ((token string)) -> (result u32 i32) (std.json.parse_u32_value_result token)) (fn parse_i64_value_result ((token string)) -> (result i64 i32) (std.json.parse_i64_value_result token)) (fn parse_u64_value_result ((token string)) -> (result u64 i32) (std.json.parse_u64_value_result token)) (fn parse_f64_value_result ((token string)) -> (result f64 i32) (std.json.parse_f64_value_result token)) (fn parse_null_value_result ((token string)) -> (result bool i32) (if (= token "null") (ok bool i32 true) (err bool i32 1))) (fn field_fragment ((name string) (encoded_value JsonText)) -> JsonField (std.string.concat (std.string.concat (quote_string name) ":") encoded_value)) (fn field_string ((name string) (value string)) -> JsonField (field_fragment name (quote_string value))) (fn field_bool ((name string) (value bool)) -> JsonField (field_fragment name (bool_value value))) (fn field_i32 ((name string) (value i32)) -> JsonField (field_fragment name (i32_value value))) (fn field_u32 ((name string) (value u32)) -> JsonField (field_fragment name (u32_value value))) (fn field_i64 ((name string) (value i64)) -> JsonField (field_fragment name (i64_value value))) (fn field_u64 ((name string) (value u64)) -> JsonField (field_fragment name (u64_value value))) (fn field_f64 ((name string) (value f64)) -> JsonField (field_fragment name (f64_value value))) (fn field_null ((name string)) -> JsonField (field_fragment name (null_value))) (fn array0 () -> JsonText "[]") (fn array1 ((first JsonText)) -> JsonText (std.string.concat (std.string.concat "[" first) "]")) (fn array2 ((first JsonText) (second JsonText)) -> JsonText (std.string.concat (std.string.concat (std.string.concat (std.string.concat "[" first) ",") second) "]")) (fn array3 ((first JsonText) (second JsonText) (third JsonText)) -> JsonText (std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat "[" first) ",") second) ",") third) "]")) (fn object0 () -> JsonText "{}") (fn object1 ((first JsonField)) -> JsonText (std.string.concat (std.string.concat "{" first) "}")) (fn object2 ((first JsonField) (second JsonField)) -> JsonText (std.string.concat (std.string.concat (std.string.concat (std.string.concat "{" first) ",") second) "}")) (fn object3 ((first JsonField) (second JsonField) (third JsonField)) -> JsonText (std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat (std.string.concat "{" first) ",") second) ",") third) "}"))