úÎ-4));      !"#$%&'()*+,-./0123456789:SafeIs n integral, ie. is ; 1.Is n integral, and < to m.Is n integral and in range for =.Is n integral and in range for >.    None Encode ? to @. Decode ? from @. All A values are packed to B. All C values are packed to D. Pack E.Pack  (key,value) pair to JSObject. encode_assoc ("a",encode_int 0)    NoneJSON numbers are F B or D.The JSON value type.E variant of  encode_json.E variant of  decode_json. himport Sound.OSChar8.Type.JSON let j = decode_json_str "[\"/n_set\",-1,\"c1\",66]" fmap decode_message jEncode . Encode G data (H ), ie. the hosc real-valued NRT representation.#Encode I data (@).$Encode J data (Word8 tuple).%Datum$ encoder. The encoding is shallow, , K and L are all sent to M. I, G and J are tagged. ÿ†let {t = [(int32 0,"0") ,(int64 0,"0") ,(float 0.0,"0.0") ,(double 0.1,"0.1") ,(string "s","\"s\"") ,(Blob (Data.ByteString.Lazy.pack [0,1]),"{\"blob\":[0,1]}") ,(TimeStamp 0.0,"{\"timestamp\":0.0}") ,(midi (0,1,2,3),"{\"midi\":[0,1,2,3]}")] ;r = map (\(d,s) -> encode_json_str (encode_datum d) == s) t} in all id r == True&Message1 encoder, the representation is a flat array of address and then arguments. Wlet m = message "/m" [Int32 0,Float 1,string "s"] in encode_json_str (encode_message m) Simport Sound.SC3 encode_json_str (encode_message (n_free [0])) == "[\"/n_free\",0]"'N0 encoder, the representation is a flat array of #bundle tag, G and then message arrays. Glet b = bundle 0 [message "/m" []] in encode_json_str (encode_bundle b) ³let {b = bundle 0 [c_set1 3 4,n_free [0]] ;r = "[\"#bundle\",{\"timestamp\":0.0}" ++ ",[\"/c_set\",3,4.0],[\"/n_free\",0]]"} in encode_json_str (encode_bundle b) == r(Packet encoder.)Decode Message. Ulet m = message "/m" [Int32 1,Float 1] in decode_message (encode_message m) == Just m*Decode Bundle. `let b = bundle 0.0 [message "/m" [Int32 1,Float 1]] in decode_bundle (encode_bundle b) == Just b Zlet {b = bundle 0 [c_set1 3 4,n_free [0]] ;j = encode_bundle b} in (b,decode_bundle j)+Decode Packet. !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+ !"#$%&'()*+None,-./0123456789:,-./0123456789:213456789,-./0: ,-./0123456789:O      !"#$%&'()*+,-./01233456789:;<=>?@ABCDEFDGAHIJK#LMNABOPQRASTDGUAVWAXYZ[\Z]^Z[_Z[`Z[aZ[UJK"Zbcd%hosc-json-0.16-LxKwcRpu9591duXUyUTy65Sound.OSC.Type.JSON.MathSound.OSC.Type.JSON.AesonSound.OSC.Type.JSONSound.OSC.Transport.JSONOIntin_rangein_int8in_int16in_int32in_int64ratio_is_integralratio_is_bounded_integral ratio_is_intratio_is_word8 encode_json decode_jsonencode_integer encode_double encode_string encode_assoc encode_list decode_str decode_list decode_assoc result_maybedecode_integer decode_double decode_numberdecode_double_errdecode_number_err decode_word8 decode_datumNumberValueencode_json_strdecode_json_str encode_numberencode_timestampencode_integralencode_floating encode_blob encode_midi encode_datumencode_message encode_bundle encode_packetdecode_message decode_bundle decode_packetOptwith_to_hostw_portWithTdie handle_jsonproc_lbproc_bproc_sproc_tproc_lt opt_parseopt_argbaseGHC.Real denominatorghc-prim GHC.Classes<= GHC.TypesGHC.WordWord8$aeson-1.2.3.0-Ip8RjPBjTJpBF7QvZ30gY9Data.Aeson.Types.Internalbytestring-0.10.8.1Data.ByteString.Lazy.Internal ByteStringIntegral integer-gmpGHC.Integer.TypeInteger GHC.FloatFloatingDoubleGHC.BaseString Data.EitherEither hosc-0.16-CCCOrDODpHPEmjIfmGoq9VSound.OSC.Datum TimeStampSound.OSC.TimeTimeBlobMidiFloatSound.OSC.PacketBundle