github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library@v0.2.0/JSON_Spec/JSON_Spec.go (about)

     1  // Package JSON_Spec
     2  // Dafny module JSON_Spec compiled into Go
     3  
     4  package JSON_Spec
     5  
     6  import (
     7  	os "os"
     8  
     9  	m_Actions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Actions"
    10  	m_Base64 "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64"
    11  	m_Base64Lemmas "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Base64Lemmas"
    12  	m_BoundedInts "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/BoundedInts"
    13  	m_DivInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternals"
    14  	m_DivInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivInternalsNonlinear"
    15  	m_DivMod "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/DivMod"
    16  	m_FileIO "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FileIO"
    17  	m_FloatCompare "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/FloatCompare"
    18  	m_Functions "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Functions"
    19  	m_GeneralInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GeneralInternals"
    20  	m_GetOpt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/GetOpt"
    21  	m_HexStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/HexStrings"
    22  	m_JSON_Errors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Errors"
    23  	m_JSON_Utils_Cursors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Cursors"
    24  	m_JSON_Utils_Lexers_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Core"
    25  	m_JSON_Utils_Lexers_Strings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Lexers_Strings"
    26  	m_JSON_Utils_Parsers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Parsers"
    27  	m_JSON_Utils_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Seq"
    28  	m_JSON_Utils_Str "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str"
    29  	m_JSON_Utils_Str_CharStrConversion "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrConversion"
    30  	m_JSON_Utils_Str_CharStrEscaping "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Str_CharStrEscaping"
    31  	m_JSON_Utils_Vectors "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Vectors"
    32  	m_JSON_Utils_Views_Core "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Core"
    33  	m_JSON_Utils_Views_Writers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Utils_Views_Writers"
    34  	m_JSON_Values "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/JSON_Values"
    35  	m_Logarithm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Logarithm"
    36  	m__Math "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Math_"
    37  	m_ModInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternals"
    38  	m_ModInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/ModInternalsNonlinear"
    39  	m_Mul "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Mul"
    40  	m_MulInternals "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternals"
    41  	m_MulInternalsNonlinear "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/MulInternalsNonlinear"
    42  	m_Power "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Power"
    43  	m_Relations "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Relations"
    44  	m_Seq "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq"
    45  	m_Seq_MergeSort "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Seq_MergeSort"
    46  	m_Sorting "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Sorting"
    47  	m_StandardLibrary "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary"
    48  	m_StandardLibraryInterop "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibraryInterop"
    49  	m_StandardLibrary_Sequence "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_Sequence"
    50  	m_StandardLibrary_String "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_String"
    51  	m_StandardLibrary_UInt "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/StandardLibrary_UInt"
    52  	m_Streams "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Streams"
    53  	m_UnicodeStrings "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/UnicodeStrings"
    54  	m__Unicode "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Unicode_"
    55  	m_Utf16EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf16EncodingForm"
    56  	m_Utf8EncodingForm "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Utf8EncodingForm"
    57  	m_Wrappers "github.com/aws/aws-cryptographic-material-providers-library/releases/go/smithy-dafny-standard-library/Wrappers"
    58  	m__System "github.com/dafny-lang/DafnyRuntimeGo/v4/System_"
    59  	_dafny "github.com/dafny-lang/DafnyRuntimeGo/v4/dafny"
    60  )
    61  
    62  var _ = os.Args
    63  var _ _dafny.Dummy__
    64  var _ m__System.Dummy__
    65  var _ m_Wrappers.Dummy__
    66  var _ m_Relations.Dummy__
    67  var _ m_Seq_MergeSort.Dummy__
    68  var _ m__Math.Dummy__
    69  var _ m_Seq.Dummy__
    70  var _ m_BoundedInts.Dummy__
    71  var _ m__Unicode.Dummy__
    72  var _ m_Functions.Dummy__
    73  var _ m_Utf8EncodingForm.Dummy__
    74  var _ m_Utf16EncodingForm.Dummy__
    75  var _ m_UnicodeStrings.Dummy__
    76  var _ m_FileIO.Dummy__
    77  var _ m_GeneralInternals.Dummy__
    78  var _ m_MulInternalsNonlinear.Dummy__
    79  var _ m_MulInternals.Dummy__
    80  var _ m_Mul.Dummy__
    81  var _ m_ModInternalsNonlinear.Dummy__
    82  var _ m_DivInternalsNonlinear.Dummy__
    83  var _ m_ModInternals.Dummy__
    84  var _ m_DivInternals.Dummy__
    85  var _ m_DivMod.Dummy__
    86  var _ m_Power.Dummy__
    87  var _ m_Logarithm.Dummy__
    88  var _ m_StandardLibraryInterop.Dummy__
    89  var _ m_StandardLibrary_UInt.Dummy__
    90  var _ m_StandardLibrary_Sequence.Dummy__
    91  var _ m_StandardLibrary_String.Dummy__
    92  var _ m_StandardLibrary.Dummy__
    93  var _ m_Streams.Dummy__
    94  var _ m_Sorting.Dummy__
    95  var _ m_HexStrings.Dummy__
    96  var _ m_GetOpt.Dummy__
    97  var _ m_FloatCompare.Dummy__
    98  var _ m_Base64.Dummy__
    99  var _ m_Base64Lemmas.Dummy__
   100  var _ m_Actions.Dummy__
   101  var _ m_JSON_Utils_Views_Core.Dummy__
   102  var _ m_JSON_Utils_Views_Writers.Dummy__
   103  var _ m_JSON_Utils_Lexers_Core.Dummy__
   104  var _ m_JSON_Utils_Lexers_Strings.Dummy__
   105  var _ m_JSON_Utils_Cursors.Dummy__
   106  var _ m_JSON_Utils_Parsers.Dummy__
   107  var _ m_JSON_Utils_Str_CharStrConversion.Dummy__
   108  var _ m_JSON_Utils_Str_CharStrEscaping.Dummy__
   109  var _ m_JSON_Utils_Str.Dummy__
   110  var _ m_JSON_Utils_Seq.Dummy__
   111  var _ m_JSON_Utils_Vectors.Dummy__
   112  var _ m_JSON_Errors.Dummy__
   113  var _ m_JSON_Values.Dummy__
   114  
   115  type Dummy__ struct{}
   116  
   117  // Definition of class Default__
   118  type Default__ struct {
   119  	dummy byte
   120  }
   121  
   122  func New_Default___() *Default__ {
   123  	_this := Default__{}
   124  
   125  	return &_this
   126  }
   127  
   128  type CompanionStruct_Default___ struct {
   129  }
   130  
   131  var Companion_Default___ = CompanionStruct_Default___{}
   132  
   133  func (_this *Default__) Equals(other *Default__) bool {
   134  	return _this == other
   135  }
   136  
   137  func (_this *Default__) EqualsGeneric(x interface{}) bool {
   138  	other, ok := x.(*Default__)
   139  	return ok && _this.Equals(other)
   140  }
   141  
   142  func (*Default__) String() string {
   143  	return "JSON_Spec.Default__"
   144  }
   145  func (_this *Default__) ParentTraits_() []*_dafny.TraitID {
   146  	return [](*_dafny.TraitID){}
   147  }
   148  
   149  var _ _dafny.TraitOffspring = &Default__{}
   150  
   151  func (_static *CompanionStruct_Default___) EscapeUnicode(c uint16) _dafny.Sequence {
   152  	var _0_sStr _dafny.Sequence = m_JSON_Utils_Str.Companion_Default___.OfNat(_dafny.IntOfUint16(c), _dafny.IntOfInt64(16))
   153  	_ = _0_sStr
   154  	var _1_s _dafny.Sequence = m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_0_sStr)
   155  	_ = _1_s
   156  	return _dafny.Companion_Sequence_.Concatenate(_1_s, _dafny.SeqCreate(((_dafny.IntOfInt64(4)).Minus(_dafny.IntOfUint32((_1_s).Cardinality()))).Uint32(), func(coer36 func(_dafny.Int) uint16) func(_dafny.Int) interface{} {
   157  		return func(arg40 _dafny.Int) interface{} {
   158  			return coer36(arg40)
   159  		}
   160  	}(func(_2___v0 _dafny.Int) uint16 {
   161  		return uint16(_dafny.Char(' '))
   162  	})))
   163  }
   164  func (_static *CompanionStruct_Default___) Escape(str _dafny.Sequence, start _dafny.Int) _dafny.Sequence {
   165  	var _0___accumulator _dafny.Sequence = _dafny.SeqOf()
   166  	_ = _0___accumulator
   167  	goto TAIL_CALL_START
   168  TAIL_CALL_START:
   169  	if (start).Cmp(_dafny.IntOfUint32((str).Cardinality())) >= 0 {
   170  		return _dafny.Companion_Sequence_.Concatenate(_0___accumulator, _dafny.SeqOf())
   171  	} else {
   172  		_0___accumulator = _dafny.Companion_Sequence_.Concatenate(_0___accumulator, func() _dafny.Sequence {
   173  			var _source0 uint16 = (str).Select((start).Uint32()).(uint16)
   174  			_ = _source0
   175  			{
   176  				if (_source0) == (uint16(34)) {
   177  					return m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_dafny.SeqOfString("\\\""))
   178  				}
   179  			}
   180  			{
   181  				if (_source0) == (uint16(92)) {
   182  					return m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_dafny.SeqOfString("\\\\"))
   183  				}
   184  			}
   185  			{
   186  				if (_source0) == (uint16(8)) {
   187  					return m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_dafny.SeqOfString("\\b"))
   188  				}
   189  			}
   190  			{
   191  				if (_source0) == (uint16(12)) {
   192  					return m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_dafny.SeqOfString("\\f"))
   193  				}
   194  			}
   195  			{
   196  				if (_source0) == (uint16(10)) {
   197  					return m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_dafny.SeqOfString("\\n"))
   198  				}
   199  			}
   200  			{
   201  				if (_source0) == (uint16(13)) {
   202  					return m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_dafny.SeqOfString("\\r"))
   203  				}
   204  			}
   205  			{
   206  				if (_source0) == (uint16(9)) {
   207  					return m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_dafny.SeqOfString("\\t"))
   208  				}
   209  			}
   210  			{
   211  				var _1_c uint16 = _source0
   212  				_ = _1_c
   213  				if (_1_c) < (uint16(31)) {
   214  					return _dafny.Companion_Sequence_.Concatenate(m_UnicodeStrings.Companion_Default___.ASCIIToUTF16(_dafny.SeqOfString("\\u")), Companion_Default___.EscapeUnicode(_1_c))
   215  				} else {
   216  					return _dafny.SeqOf((str).Select((start).Uint32()).(uint16))
   217  				}
   218  			}
   219  		}())
   220  		var _in0 _dafny.Sequence = str
   221  		_ = _in0
   222  		var _in1 _dafny.Int = (start).Plus(_dafny.One)
   223  		_ = _in1
   224  		str = _in0
   225  		start = _in1
   226  		goto TAIL_CALL_START
   227  	}
   228  }
   229  func (_static *CompanionStruct_Default___) EscapeToUTF8(str _dafny.Sequence, start _dafny.Int) m_Wrappers.Result {
   230  	var _0_valueOrError0 m_Wrappers.Result = (m_UnicodeStrings.Companion_Default___.ToUTF16Checked(str)).ToResult_k(m_JSON_Errors.Companion_SerializationError_.Create_InvalidUnicode_())
   231  	_ = _0_valueOrError0
   232  	if (_0_valueOrError0).IsFailure() {
   233  		return (_0_valueOrError0).PropagateFailure()
   234  	} else {
   235  		var _1_utf16 _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence)
   236  		_ = _1_utf16
   237  		var _2_escaped _dafny.Sequence = Companion_Default___.Escape(_1_utf16, _dafny.Zero)
   238  		_ = _2_escaped
   239  		var _3_valueOrError1 m_Wrappers.Result = (m_UnicodeStrings.Companion_Default___.FromUTF16Checked(_2_escaped)).ToResult_k(m_JSON_Errors.Companion_SerializationError_.Create_InvalidUnicode_())
   240  		_ = _3_valueOrError1
   241  		if (_3_valueOrError1).IsFailure() {
   242  			return (_3_valueOrError1).PropagateFailure()
   243  		} else {
   244  			var _4_utf32 _dafny.Sequence = (_3_valueOrError1).Extract().(_dafny.Sequence)
   245  			_ = _4_utf32
   246  			return (m_UnicodeStrings.Companion_Default___.ToUTF8Checked(_4_utf32)).ToResult_k(m_JSON_Errors.Companion_SerializationError_.Create_InvalidUnicode_())
   247  		}
   248  	}
   249  }
   250  func (_static *CompanionStruct_Default___) String(str _dafny.Sequence) m_Wrappers.Result {
   251  	var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.EscapeToUTF8(str, _dafny.Zero)
   252  	_ = _0_valueOrError0
   253  	if (_0_valueOrError0).IsFailure() {
   254  		return (_0_valueOrError0).PropagateFailure()
   255  	} else {
   256  		var _1_inBytes _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence)
   257  		_ = _1_inBytes
   258  		return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("\"")), _1_inBytes), m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("\""))))
   259  	}
   260  }
   261  func (_static *CompanionStruct_Default___) IntToBytes(n _dafny.Int) _dafny.Sequence {
   262  	var _0_s _dafny.Sequence = m_JSON_Utils_Str.Companion_Default___.OfInt(n, _dafny.IntOfInt64(10))
   263  	_ = _0_s
   264  	return m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_0_s)
   265  }
   266  func (_static *CompanionStruct_Default___) Number(dec m_JSON_Values.Decimal) m_Wrappers.Result {
   267  	return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(Companion_Default___.IntToBytes((dec).Dtor_n()), (func() _dafny.Sequence {
   268  		if ((dec).Dtor_e10()).Sign() == 0 {
   269  			return _dafny.SeqOf()
   270  		}
   271  		return _dafny.Companion_Sequence_.Concatenate(m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("e")), Companion_Default___.IntToBytes((dec).Dtor_e10()))
   272  	})()))
   273  }
   274  func (_static *CompanionStruct_Default___) KeyValue(kv _dafny.Tuple) m_Wrappers.Result {
   275  	var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.String((*(kv).IndexInt(0)).(_dafny.Sequence))
   276  	_ = _0_valueOrError0
   277  	if (_0_valueOrError0).IsFailure() {
   278  		return (_0_valueOrError0).PropagateFailure()
   279  	} else {
   280  		var _1_key _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence)
   281  		_ = _1_key
   282  		var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.JSON((*(kv).IndexInt(1)).(m_JSON_Values.JSON))
   283  		_ = _2_valueOrError1
   284  		if (_2_valueOrError1).IsFailure() {
   285  			return (_2_valueOrError1).PropagateFailure()
   286  		} else {
   287  			var _3_value _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence)
   288  			_ = _3_value
   289  			return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_1_key, m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString(":"))), _3_value))
   290  		}
   291  	}
   292  }
   293  func (_static *CompanionStruct_Default___) Join(sep _dafny.Sequence, items _dafny.Sequence) m_Wrappers.Result {
   294  	if (_dafny.IntOfUint32((items).Cardinality())).Sign() == 0 {
   295  		return m_Wrappers.Companion_Result_.Create_Success_(_dafny.SeqOf())
   296  	} else {
   297  		var _0_valueOrError0 m_Wrappers.Result = (items).Select(0).(m_Wrappers.Result)
   298  		_ = _0_valueOrError0
   299  		if (_0_valueOrError0).IsFailure() {
   300  			return (_0_valueOrError0).PropagateFailure()
   301  		} else {
   302  			var _1_first _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence)
   303  			_ = _1_first
   304  			if (_dafny.IntOfUint32((items).Cardinality())).Cmp(_dafny.One) == 0 {
   305  				return m_Wrappers.Companion_Result_.Create_Success_(_1_first)
   306  			} else {
   307  				var _2_valueOrError1 m_Wrappers.Result = Companion_Default___.Join(sep, (items).Drop(1))
   308  				_ = _2_valueOrError1
   309  				if (_2_valueOrError1).IsFailure() {
   310  					return (_2_valueOrError1).PropagateFailure()
   311  				} else {
   312  					var _3_rest _dafny.Sequence = (_2_valueOrError1).Extract().(_dafny.Sequence)
   313  					_ = _3_rest
   314  					return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(_1_first, sep), _3_rest))
   315  				}
   316  			}
   317  		}
   318  	}
   319  }
   320  func (_static *CompanionStruct_Default___) Object(obj _dafny.Sequence) m_Wrappers.Result {
   321  	var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.Join(m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString(",")), _dafny.SeqCreate((_dafny.IntOfUint32((obj).Cardinality())).Uint32(), func(coer37 func(_dafny.Int) m_Wrappers.Result) func(_dafny.Int) interface{} {
   322  		return func(arg41 _dafny.Int) interface{} {
   323  			return coer37(arg41)
   324  		}
   325  	}((func(_1_obj _dafny.Sequence) func(_dafny.Int) m_Wrappers.Result {
   326  		return func(_2_i _dafny.Int) m_Wrappers.Result {
   327  			return Companion_Default___.KeyValue((_1_obj).Select((_2_i).Uint32()).(_dafny.Tuple))
   328  		}
   329  	})(obj))))
   330  	_ = _0_valueOrError0
   331  	if (_0_valueOrError0).IsFailure() {
   332  		return (_0_valueOrError0).PropagateFailure()
   333  	} else {
   334  		var _3_middle _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence)
   335  		_ = _3_middle
   336  		return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("{")), _3_middle), m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("}"))))
   337  	}
   338  }
   339  func (_static *CompanionStruct_Default___) Array(arr _dafny.Sequence) m_Wrappers.Result {
   340  	var _0_valueOrError0 m_Wrappers.Result = Companion_Default___.Join(m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString(",")), _dafny.SeqCreate((_dafny.IntOfUint32((arr).Cardinality())).Uint32(), func(coer38 func(_dafny.Int) m_Wrappers.Result) func(_dafny.Int) interface{} {
   341  		return func(arg42 _dafny.Int) interface{} {
   342  			return coer38(arg42)
   343  		}
   344  	}((func(_1_arr _dafny.Sequence) func(_dafny.Int) m_Wrappers.Result {
   345  		return func(_2_i _dafny.Int) m_Wrappers.Result {
   346  			return Companion_Default___.JSON((_1_arr).Select((_2_i).Uint32()).(m_JSON_Values.JSON))
   347  		}
   348  	})(arr))))
   349  	_ = _0_valueOrError0
   350  	if (_0_valueOrError0).IsFailure() {
   351  		return (_0_valueOrError0).PropagateFailure()
   352  	} else {
   353  		var _3_middle _dafny.Sequence = (_0_valueOrError0).Extract().(_dafny.Sequence)
   354  		_ = _3_middle
   355  		return m_Wrappers.Companion_Result_.Create_Success_(_dafny.Companion_Sequence_.Concatenate(_dafny.Companion_Sequence_.Concatenate(m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("[")), _3_middle), m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("]"))))
   356  	}
   357  }
   358  func (_static *CompanionStruct_Default___) JSON(js m_JSON_Values.JSON) m_Wrappers.Result {
   359  	var _source0 m_JSON_Values.JSON = js
   360  	_ = _source0
   361  	{
   362  		if _source0.Is_Null() {
   363  			return m_Wrappers.Companion_Result_.Create_Success_(m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("null")))
   364  		}
   365  	}
   366  	{
   367  		if _source0.Is_Bool() {
   368  			var _0_b bool = _source0.Get_().(m_JSON_Values.JSON_Bool).B
   369  			_ = _0_b
   370  			return m_Wrappers.Companion_Result_.Create_Success_((func() _dafny.Sequence {
   371  				if _0_b {
   372  					return m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("true"))
   373  				}
   374  				return m_UnicodeStrings.Companion_Default___.ASCIIToUTF8(_dafny.SeqOfString("false"))
   375  			})())
   376  		}
   377  	}
   378  	{
   379  		if _source0.Is_String() {
   380  			var _1_str _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_String).Str
   381  			_ = _1_str
   382  			return Companion_Default___.String(_1_str)
   383  		}
   384  	}
   385  	{
   386  		if _source0.Is_Number() {
   387  			var _2_dec m_JSON_Values.Decimal = _source0.Get_().(m_JSON_Values.JSON_Number).Num
   388  			_ = _2_dec
   389  			return Companion_Default___.Number(_2_dec)
   390  		}
   391  	}
   392  	{
   393  		if _source0.Is_Object() {
   394  			var _3_obj _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_Object).Obj
   395  			_ = _3_obj
   396  			return Companion_Default___.Object(_3_obj)
   397  		}
   398  	}
   399  	{
   400  		var _4_arr _dafny.Sequence = _source0.Get_().(m_JSON_Values.JSON_Array).Arr
   401  		_ = _4_arr
   402  		return Companion_Default___.Array(_4_arr)
   403  	}
   404  }
   405  
   406  // End of class Default__