úÎ#Þ!s     NoneEncode  to . Decode  from . All  values are packed to . All   values are packed to !. Pack ". Pack  (key,value) pair to JSObject. ! encode_assoc ("a",encode_int 0)     None JSON numbers are #  or !. The JSON value type. " variant of . " variant of . Encode  . Encode $ data (% ), ie. the hosc real-valued  NRT representation. Encode & data (). Encode ' data (Word8 tuple). ($ encoder. The encoding is shallow, , ) and  * are all sent to +. &, $ and  ' are tagged.  let {t = [(int32 0,"0")  ,(int64 0,"0")  ,(float 0.0,"0.0")  ,(double 0.1,"0.1")  ,(string "s","\"s\"") G ,(Blob (Data.ByteString.Lazy.pack [0,1]),"{\"blob\":[0,1]}") 1 ,(TimeStamp 0.0,"{\"timestamp\":0.0}") 4 ,(midi (0,1,2,3),"{\"midi\":[0,1,2,3]}")] C ;r = map (\(d,s) -> encode_json_str (encode_datum d) == s) t}  in all id r == True ,0 encoder, the representation is a flat array of  address and then arguments.  3 let m = message "/m" [Int32 0,Float 1,string "s"] ' in encode_json_str (encode_message m)  import Sound.SC3 D encode_json_str (encode_message (n_free [0])) == "[\"/n_free\",0]" -0 encoder, the representation is a flat array of #bundle  tag, $ and then message arrays.  $ let b = bundle 0 [message "/m" []] & in encode_json_str (encode_bundle b) + let {b = bundle 0 [c_set1 3 4,n_free [0]] 0 ;r = "[\"#bundle\",{\"timestamp\":0.0}" ++ 2 ",[\"/c_set\",3,4.0],[\"/n_free\",0]]"} + in encode_json_str (encode_bundle b) == r . encoder. Decode ,. ( let m = message "/m" [Int32 1,Float 1] 0 in decode_message (encode_message m) == Just m Decode -.  5 let b = bundle 0.0 [message "/m" [Int32 1,Float 1]] . in decode_bundle (encode_bundle b) == Just b + let {b = bundle 0 [c_set1 3 4,n_free [0]]  ;j = encode_bundle b}  in (b,decode_bundle j) Decode ..     /      !"#$%&'()*+&,-./0&12&3456756856956:56;56<560!"56=56>56?@hosc-json-0.14Sound.OSC.Type.JSON.AesonSound.OSC.Type.JSONOInt encode_json decode_jsonencode_integralencode_floating encode_string encode_assoc encode_list decode_str decode_list decode_assoc decode_number decode_word8 decode_datumNumberValueencode_json_strdecode_json_str encode_numberencode_timestamp encode_blob encode_midi encode_datumencode_message encode_bundle encode_packetdecode_message decode_bundle decode_packet aeson-0.6.1.0Data.Aeson.Types.Internalbytestring-0.10.0.2Data.ByteString.Lazy.Internal ByteStringbaseGHC.RealIntegral integer-gmpGHC.Integer.TypeInteger GHC.FloatFloatingghc-prim GHC.TypesDoubleGHC.BaseString Data.EitherEither hosc-0.14Sound.OSC.Type TimeStampTimeBlobMidiDatumFloatMessageBundlePacket