M      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop q r s t u v w x y z { | } ~  None)The IEEE byte representation of a float.  Inverse of . *The IEEE byte representation of a double.  Inverse of f64_i64. ATransform a haskell string into a C string (a null suffixed byte  string).  Inverse of . ATransform a haskell string to a pascal string (a length prefixed  byte string).  Inverse of . NoneEncode a signed 8-bit integer.  Encode a signed 16-bit integer.  Encode a signed 32-bit integer. #Encode an unsigned 16-bit integer.  Encode a signed 64-bit integer. #Encode an unsigned 64-bit integer. ,Encode a 32-bit IEEE floating point number. ,Encode a 64-bit IEEE floating point number. Encode an ASCII string. Decode a signed 8-bit integer.  Decode a signed 16-bit integer.  Decode a signed 32-bit integer. #Decode an unsigned 32-bit integer.  Decode a signed 64-bit integer. #Decode an unsigned 64-bit integer. ,Decode a 32-bit IEEE floating point number. ,Decode a 64-bit IEEE floating point number. Decode an ASCII string. Bundle header string. ?The number of bytes required to align an OSC value to the next  4-byte boundary.      Safe-InferredReal valued variant of . Repeat action until predicate f is  when applied to  result. Repeat action until f does not give  when applied to  result. NoneTime is represented in either UTC or NTP form. The NTP form may  be either integral or real. #-Type for integer representation of NTP time. $Coerce  to integral NTP form. %Coerce  to real-valued UTC form. &*Convert a real-valued NTP timestamp to an # timestamp. ' Convert an #+ timestamp to a real-valued NTP timestamp. (*Convert a real-valued UTC timestamp to an # timestamp. )DConvert a real-valued NTP timestamp to a real-valued UTC timestamp. * Convert an #+ timestamp to a real-valued UTC timestamp. +!The time at 1970-01-01:00:00:00. , Convert an + timestamp to a real-valued UTC timestamp. ->Constant indicating the bundle is to be executed immediately. .Read current real-valued UTC timestamp. / Read current # timestamp. 0The 1. limit (in seconds). Values larger than this 1 require a different thread delay mechanism, see 3. The ( value is the number of microseconds in  maxBound::Int. 1BPause current thread for the indicated duration (in seconds), see  0). Note also that this function does not  attempt pauses less than 1e-4. 21Pause current thread until the given real-valued UTC time, see  0. 3>Sleep current thread for the indicated duration (in seconds). / Divides long sleeps into parts smaller than 0. 41Sleep current thread until the given real-valued UTC time. - Divides long sleeps into parts smaller than 0. 6Times can be ordered, avoid coercion if not required.  !"#$%&'()*+,-./01234 !"#$%&'()*+,-./01234#"! $%&'()*+,-./01234"! #$%&'()*+,-./01234None 5An OSC 5 is either a > or a :. :An OSC bundle. >An OSC message. BOSC address pattern. C$The basic elements of OSC messages. K#Type enumerating Datum categories. L: constructor. It is an  if the > list is  empty. M> constructor. It is an  if the B  doesn'$t conform to the OSC specification. N-Single character identifier of an OSC datum. O Variant of . PGiven K attempt to parse C at . ' parse_datum 'i' "42" == Just (Int 42) 3 parse_datum 'f' "3.14159" == Just (Float 3.14159) 4 parse_datum 'd' "3.14159" == Just (Double 3.14159) 0 parse_datum 's' "\"pi\"" == Just (String "pi") 8 parse_datum 'b' "pi" == Just (Blob (B.pack [112,105])) > parse_datum 'm' "(0,144,60,90)" == Just (Midi (0,144,60,90)) QC as real number if ,  or , else . F map datum_real [Int 5,Float 5,String "5"] == [Just 5,Just 5,Nothing] RA  variant of Q. - map datum_real_err [Int 5,Float 5] == [5,5] SC as integral number if ,  or , else  . G map datum_int [Int 5,Float 5.5,String "5"] == [Just 5,Just 5,Nothing] TA  variant of S. . map datum_int_err [Int 5,Float 5.5] == [5,5] UC as  if  or F, else . I map datum_string [String "5",Blob (B.pack [53])] == [Just "5",Just "5"] VA  variant of U. C map datum_string_err [String "5",Blob (B.pack [53])] == ["5","5"] WDoes > have the specified B. XDo any of the >s at : have the specified  B. YDoes 5 have the specified B, ie.  W or X. ZThe  of 5 , if the 5 is a > this is  -. [Retrieve the set of > s from a 5. \If 5 is a > add - timestamp, else . ]If 5 is a > or a : with an  immediate time & tag and with one element, return the >, else . ^Is 5 immediate, ie. a : with timestamp  -, or a plain Message. _ Variant of  for 5. `Pretty printer for . # map timePP [UTCr 0,NTPr 0,NTPi 0] aPretty printer for C. > map datumPP [Float 1.2,String "str",Midi (0,0x90,0x40,0x60)] bPretty printer for >. cPretty printer for :. dPretty printer for 5. OSC :#s can be ordered (time ascending). 156789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd056789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd0KCJIHGFEDB>?@A:;<=58697LMNOPQRSTUVWXYZ[\]^_`abcd 58697:;<=>?@ABCJIHGFEDKLMNOPQRSTUVWXYZ[\]^_`abcdNonee0Map a normalizing function over datum at an OSC >. f0Map a normalizing function over datum at an OSC :. gCoerce Float to Double. h Coerce Int and Float to Double. i Coerce Float and Double to Int. efghiefghiefghiefghiNonejDecode an OSC >. kDecode an OSC :. lDecode an OSC 5. A let b = B.pack [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0] 0 in decodePacket b == Message "/g_free" [Int 0] jkljkljkl jklNone IIsolate an action to operating within a fixed block of bytes. The action @ is required to consume all the bytes that it is isolated to. 0Get a 32 biut integer in big-endian byte order. Get an aligned OSC string. (Get binary data prefixed by byte count. Get an OSC datum.  Get an OSC >. Get a sequence of OSC >"s, each one headed by its length. m Get an OSC 5. n-Decode an OSC packet from a lazy ByteString. A let b = L.pack [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0] - in decodeOSC b == Message "/g_free" [Int 0] o/Decode an OSC packet from a strict ByteString. mnomnomno mno NonepEncode an OSC >. qEncode an OSC :. rEncode an OSC 5. pqrpqrpqrpqr NonesBuilder monoid for an OSC 5. tEncode an OSC >. uEncode an OSC :. vEncode an OSC 5 to a lazy . A let b = L.pack [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0] / in encodeOSC (Message "/g_free" [Int 0]) == b w0Encode an Packet packet to a strict ByteString. stuvwstuvwstuvw stuvw NonexAn z and { pair over . y6Converting from and to binary packet representations. |z  8. }z  6. ~]  {. \  {. xyzDecode an OSC packet. {Encode an OSC packet. |}~xyz{|}~yz{x|}~ xyz{|}~ None?A type-class for values that can be translated to and from OSC  5s. z  .   {. Translation to 5. Translation from 5.  None1Abstract over the underlying transport protocol. Encode and send an OSC packet. "Receive and decode an OSC packet. Close an existing connection. Bracket OSC communication. Type restricted synonym for . Type restricted synonym for .  Variant of  that runs .  Variant of  that runs \.  Variant of  that runs ].  Variant of  that runs [.  Variant of  that implements an n second timeout.  Wait for a 5! where the supplied predicate is , ! discarding intervening packets.  Wait for a 5+ where the supplied function does not give  ", discarding intervening packets.  ^.  ], ie. an incoming > or  immediate mode : with one element. A  for variant using Y to match on  the B of incoming Packets.  Variant on  that returns matching >.  Variant of  that runs A. None$The UDP transport handle data type. 7Return the port number associated with the UDP socket. "Create and initialise UDP socket. Make a  connection. # let t = openUDP "127.0.0.1" 57110 4 in withTransport t (\fd -> recvT 0.5 fd >>= print) Trivial  server socket.   import Control.Concurrent  0 let {f fd = forever (recvMessage fd >>= print) ' ;t = udpServer "127.0.0.1" 57300} & in void (forkIO (withTransport t f)) # let t = openUDP "127.0.0.1" 57300 > in withTransport t (\fd -> sendMessage fd (message "/n" [])) +Send variant to send to specified address. 0Recv variant to collect message source address. None$The TCP transport handle data type. Make a  connection.  A trivial  OSC server. NoneTransport connection. Encode and send an OSC packet. "Receive and decode an OSC packet. *Bracket Open Sound Control communication. Type restricted synonym for . Type restricted synonym for .  Variant of  that runs .  Variant of  that runs \.  Variant of  that runs ].  Variant of  that runs [.  Wait for a 5! where the supplied predicate is , ! discarding intervening packets.  Wait for a 5+ where the supplied function does not give  ", discarding intervening packets.  ^.  ], ie. an incoming > or  immediate mode : with one element. A  for variant using Y to match on  the B of incoming Packets.  Variant on  that returns matching >.  Variant of  that runs A. NoneV !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdxyz{|}~Nonex !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdxyz{|}~Nonew !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdxyz{|}~ !"#$%&'()*+,-./01234564789:;<=>?@ABCDEFGHIJKLMMNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}   } { |   XYZ[   hosc-0.12"Sound.OpenSoundControl.Coding.Cast"Sound.OpenSoundControl.Coding.ByteSound.OpenSoundControl.WaitSound.OpenSoundControl.TimeSound.OpenSoundControl.Type$Sound.OpenSoundControl.Coding.Coerce)Sound.OpenSoundControl.Coding.Decode.Base+Sound.OpenSoundControl.Coding.Decode.Binary)Sound.OpenSoundControl.Coding.Encode.Base,Sound.OpenSoundControl.Coding.Encode.BuilderSound.OpenSoundControl.CodingSound.OpenSoundControl.ClassSound.OSC.Transport.FDSound.OSC.Transport.FD.UDPSound.OSC.Transport.FD.TCPSound.OSC.Transport.MonadSound.OpenSoundControl Sound.OSC Sound.OSC.FDf32_w32w32_f32f64_w64w64_f64str_cstrcstr_strstr_pstrpstr_str encode_i8 encode_i16 encode_i32 encode_u32 encode_i64 encode_u64 encode_f32 encode_f64 encode_str decode_i8 decode_i16 decode_i32 decode_u32 decode_i64 decode_u64 decode_f32 decode_f64 decode_str bundleHeaderalign timeout_runtilPredicate untilMaybeTimeNTPiNTPrUTCras_ntpias_utcr ntpr_ntpi ntpi_ntpr utcr_ntpi ntpr_utcr ntpi_utcrutc_baseutc_utcr immediatelyutcrntpipauseThreadLimit pauseThreadpauseThreadUntil sleepThreadsleepThreadUntilPacket Packet_Bundle packetBundlePacket_Message packetMessageBundle bundleTimebundleMessagesMessagemessageAddress messageDatumAddress_PatternDatumMidi TimeStampBlobStringDoubleFloatInt Datum_Typebundlemessage datum_tag readMaybe parse_datum datum_realdatum_real_err datum_int datum_int_err datum_stringdatum_string_errmessage_has_addressbundle_has_addresspacket_has_address packetTimepacketMessagespacket_to_bundlepacket_to_messagepacket_is_immediate at_packettimePPdatumPP messagePPbundlePPpacketPPmessage_coerce bundle_coercef_to_dif_to_dfd_to_i decodeMessage decodeBundle decodePacket getPacketdecodePacket_strict encodeMessage encodeBundle encodePacket build_packetencodePacket_strictCoderCodingOSCtoPacket fromPacket encodeOSC decodeOSC TransportsendOSC recvPacketclose withTransport sendMessage sendBundlerecvOSC recvBundle recvMessage recvMessagesrecvPacketTimeout waitUntilwaitFor waitImmediate waitMessage waitAddress waitReply waitDatumUDP udpSocketudpPort udp_socketopenUDP udpServersendTorecvFromTCP tcpHandleopenTCP tcpServer' ConnectionbaseSystem.Timeouttimeoutghc-prim GHC.TypesTrue Data.MaybeNothing time-1.4.0.1Data.Time.Clock.UTCUTCTime $fOrdTime$fEqTimeGHC.Errerror Text.ReadreadGHC.BasefromJustid Data.Eithereither $fOrdBundlesizestorage decode_datumdecode_datum_seqdecode_message_seqb_takeb_dropisolate getInt32be get_string get_bytes get_datum get_messageget_message_seq get_bundle descriptorextend encode_datumencode_message_blobencode_bundle_ntpibytestring-0.10.0.0Data.ByteString.Lazy.Internal ByteStringpadding build_string build_bytes build_datum build_messagebuild_bundle_ntpi. $fCoding[]$fCodingByteString$fCodingByteString0 $fOSCPacket $fOSCBundle $fOSCMessage$fTransportUDP$fTransportTCP$fTransportReaderTtransformers-0.3.0.0Control.Monad.IO.ClassMonadIOliftIO