!6"E      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                !"#$%&'()*+,-./0123456789:;<=>?@ABCDSafe>hoscType specialised EhoscType specialised EhoscType specialised E.hoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised E hoscType specialised E hoscType specialised E hoscType specialised E hoscType specialised E hoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised EhoscType specialised EhoscType-specialised F of EhoscType-specialised F of EhoscType-specialised E of G.hoscType-specialised E of G.hoscType-specialised .hoscType-specialised .  None"hosc(The IEEE byte representation of a float.hosc Inverse of . hosc)The IEEE byte representation of a double.!hosc Inverse of f64_i64."hoscITransform a haskell string into a C string (a null suffixed byte string).#hosc Inverse of ".$hoscNTransform a haskell string to a pascal string (a length prefixed byte string).%hosc Inverse of $. !"#$% !"#$%NoneM?&hoscType specialised H (big-endian).'hoscType specialised H (big-endian). )encode_int16 0x0102 == L.pack [0x01,0x02](hoscLittle-endian. ,encode_int16_le 0x0102 == L.pack [0x02,0x01])hosc,Encode a signed 64-bit integer (big-endian).*hoscType specialised H (big-endian).+hoscType specialised H (big-endian). *encode_word16 0x0102 == L.pack [0x01,0x02],hoscLittle-endian. -encode_word16_le 0x0102 == L.pack [0x02,0x01]-hoscType specialised H..hoscLittle-endian variant of -./hosc"Encode an unsigned 64-bit integer.0hoscEncode a signed 8-bit integer.1hosc"Encode an un-signed 8-bit integer.2hosc#Encode an un-signed 16-bit integer. !encode_u16 0x0102 == L.pack [1,2]3hoscLittle-endian. $encode_u16_le 0x0102 == L.pack [2,1]4hoscEncode a signed 16-bit integer.5hoscEncode a signed 32-bit integer.6hosc"Encode an unsigned 32-bit integer. )encode_u32 0x01020304 == L.pack [1,2,3,4]7hoscLittle-endian. ,encode_u32_le 0x01020304 == L.pack [4,3,2,1]8hosc+Encode a 32-bit IEEE floating point number.9hoscLittle-endian variant of 8.:hosc+Encode a 64-bit IEEE floating point number.;hoscLittle-endian variant of :.<hoscJEncode an ASCII string (ASCII at Datum is an alias for a Char8 Bytetring).=hoscType specialised I.>hoscLittle-endian variant of =.?hoscType specialised I.@hoscType specialised I.AhoscLittle-endian variant of @.BhoscType specialised I.ChoscType specialised I.Dhosc"Decode an un-signed 8-bit integer.EhoscDecode a signed 8-bit integer.Fhosc!Decode an unsigned 8-bit integer.GhoscLittle-endian variant of F.HhoscDecode a signed 16-bit integer.IhoscLittle-endian variant of H.JhoscDecode a signed 32-bit integer. 3decode_i32 (L.pack [0x00,0x00,0x03,0xe7]) == 0x03e7KhoscLittle-endian variant of J. 6decode_i32_le (L.pack [0xe7,0x03,0x00,0x00]) == 0x03e7Lhosc"Decode an unsigned 32-bit integer. +decode_u32 (L.pack [1,2,3,4]) == 0x01020304Mhosc$Little-endian variant of decode_u32. .decode_u32_le (L.pack [1,2,3,4]) == 0x04030201Nhosc+Decode a 32-bit IEEE floating point number.OhoscLittle-endian variant of N.Phosc+Decode a 64-bit IEEE floating point number.Qhosc#Decode an ASCII string, inverse of <.RhoscRead n bytes from h and run f.ShoscType-specialised reader for I.ThoscR of A.UhoscJ of -.VhoscJ of ..WhoscE of K.XhoscH of K.YhoscJ of K.ZhoscK of K.[hoscL of K.\hoscM of K.]hoscJ of 6.^hoscJ of 7._hoscN of K.`hoscO of K.ahosc5Read u8 length prefixed ASCII string (pascal string).bhoscBundle header as a (strict) L.chosc#Bundle header as a lazy ByteString.dhoscRThe number of bytes required to align an OSC value to the next 4-byte boundary. ,map align [0::Int .. 7] == [0,3,2,1,0,3,2,1]?&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd?&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdSafez<ehosc Unix/PosixS time in real-valued (fractional) form. The Unix/Posix epoch is January 1, 1970.fhoscNTP, time in real-valued (fractional) form (ie. ntpr9). This is the primary form of timestamp used by hosc.ghosc7Type for binary (integeral) representation of a 64-bit NTP timestamp (ie. ntpij). The NTP epoch is January 1, 1900. NTPv4 also includes a 128-bit format, which is not used by OSC.hhosc_Constant indicating a bundle to be executed immediately. It has the NTP64 representation of 1.ihosc*Convert a real-valued NTP timestamp to an NTPi timestamp. 4ntpr_to_ntpi immediately == 1 fmap ntpr_to_ntpi timejhosc Convert an NTPi* timestamp to a real-valued NTP timestamp.khosc Difference (in seconds) between NTP and UT epochs. Antp_ut_epoch_diff / (24 * 60 * 60) == 25567 25567 `div` 365 == 70lhosc Convert a e timestamp to an NTPi timestamp.mhoscConvert  Unix/Posix to NTP.nhoscConvert NTP to  Unix/Posix.ohoscConvert NTPi to  Unix/Posix.phoscConvert f to M.qhoscConvert M to f.rhosc The time at 1970-01-01:00:00:00.shoscConvert N to  Unix/Posix.thoscRead current real-valued NTP timestamp. get_ct = fmap utc_to_ut T.getCurrentTime get_pt = fmap realToFrac T.getPOSIXTime (ct,pt) <- get_ct >>= \t0 -> get_pt >>= \t1 -> return (t0,t1) print (pt - ct,pt - ct < 1e-5)uhoscThe v` limit (in seconds). Values larger than this require a different thread delay mechanism, see y0. The value is the number of microseconds in  maxBound::Int.vhoscBPause current thread for the indicated duration (in seconds), see u.whoscType restricted v.xhosc%Pause current thread until the given f, see u.yhoscmSleep current thread for the indicated duration (in seconds). Divides long sleeps into parts smaller than u.zhosc%Sleep current thread until the given f1. Divides long sleeps into parts smaller than u.{hoscHDetailed 37-character ISO 8601 format, including fractional seconds and '+0000' suffix.|hoscParse time according to { ;iso_8601_to_utctime "2015-11-26T00:29:37,145875000000+0000"}hosc UTC time in {. tm <- fmap (utctime_to_iso_8601 . T.posixSecondsToUTCTime) T.getPOSIXTime (length tm,sum [4+1+2+1+2,1,2+1+2+1+2,1,12,1,4],sum [10,1,8,1,12,1,4]) == (37,37,37)~hosc ISO 8601 of f. _tm <- fmap ntpr_to_iso_8601 time import System.Process {- process -} rawSystem "date" ["-d",tm] kt = 15708783354150518784 s = "2015-11-26T00:22:19,366058349609+0000" ntpr_to_iso_8601 (ntpi_to_ntpr t) == shoscf of ISO 8601. ut = 15708783354150518784 s = "2015-11-26T00:22:19,366058349609+0000" fmap ntpr_to_ntpi (iso_8601_to_ntpr s) == Just thosc Alias for ~. Ptime_pp immediately == "1900-01-01T00:00:00,000000000000+0000" fmap time_pp timeefghijklmnopqrstuvwxyz{|}~gfheijklmnopqrstuvwxyz{|}~Safe?#hosc5Perhaps a precision value for floating point numbers.hosc#The basic elements of OSC messages.hosc9Four-byte midi message: port-id, status-byte, data, data.hosc Type for O" arrays, these are stored with an  length prefix.hoscType for ASCII strings (strict P8 L).hosc"Type enumerating Datum categories.hoscType-specialised Q.hoscType-specialised R.hoscType-specialised S.hoscType-specialised T.hosc'List of required data types (tag,name).hosc'List of optional data types (tag,name).hosc"List of all data types (tag,name).hoscLookup name of type.hoscErroring variant.hosc,Single character identifier of an OSC datum.hoscType and name of .hosc as U if Int32 or Int64. mlet d = [Int32 5,Int64 5,Float 5.5,Double 5.5] map datum_integral d == [Just (5::Int),Just 5,Nothing,Nothing]hosc as V- if Int32, Int64, Float, Double or TimeStamp. klet d = [Int32 5,Int64 5,Float 5,Double 5,TimeStamp 5] mapMaybe datum_floating d == replicate 5 (5::Double)hoscType generalised Int32. int32 (1::Int32) == int32 (1::Integer) d_int32 (int32 (maxBound::Int32)) == maxBound int32 (((2::Int) ^ (64::Int))::Int) == Int32 0hoscType generalised Int64. Tint64 (1::Int32) == int64 (1::Integer) d_int64 (int64 (maxBound::Int64)) == maxBoundhoscType generalised Float. float (1::Int) == float (1::Double) floatRange (undefined::Float) == (-125,128) isInfinite (d_float (float (encodeFloat 1 256 :: Double))) == TruehoscType generalised Double. idouble (1::Int) == double (1::Double) double (encodeFloat 1 256 :: Double) == Double 1.157920892373162e77hosc of Q. 5string "string" == ASCII_String (Char8.pack "string")hoscFour-tuple variant of  W . %midi (0,0,0,0) == Midi (MIDI 0 0 0 0)hosc1Message argument types are given by a descriptor. 7descriptor [Int32 1,Float 1,string "1"] == ascii ",ifs"hoscDescriptor tags are comma prefixed.hosc Variant of X that deletes trailing zeros. 1map (floatPP (Just 4)) [1,pi] == ["1.0","3.1416"]hoscPretty printer for Time. !timePP (Just 4) (1/3) == "0.3333"hoscPretty printer for vectors. vecPP [1::Int,2,3] == "<1,2,3>"hosc<Pretty printer for blobs, two-digit zero-padded hexadecimal.hoscPretty printer for . let d = [Int32 1,Float 1.2,string "str",midi (0,0x90,0x40,0x60)] map (datumPP (Just 5)) d == ["1","1.2","\"str\"","<0,144,64,96>"]hosc Variant of  that appends the .hoscGiven  attempt to parse  at Y. aparse_datum 'i' "42" == Just (Int32 42) parse_datum 'h' "42" == Just (Int64 42) parse_datum 'f' "3.14159" == Just (Float 3.14159) parse_datum 'd' "3.14159" == Just (Double 3.14159) parse_datum 's' "\"pi\"" == Just (string "pi") parse_datum 'b' "[112,105]" == Just (Blob (blob_pack [112,105])) parse_datum 'm' "(0,144,60,90)" == Just (midi (0,144,60,90))hoscErroring variant of .44SaferhoscAn OSC  is either a  or a .hoscAn OSC bundle, a f and a sequence of s.hoscAn OSC message, an  and a sequence of .hoscOSC address pattern. This is strictly an ASCII value, however it is very common to pattern match on addresses and matching on  requires OverloadedStrings.hosc constructor. It is an Z if the + doesn't conform to the OSC specification.hosc constructor. It is an Z if the  list is empty.hosc of .hosc of .hoscThe f of  , if the  is a  this is h.hoscRetrieve the set of  s from a .hoscIf  is a  add h timestamp, else [.hoscIf  is a  or a  with an  immediate, time tag and with one element, return the , else \.hoscIs  immediate, ie. a  with timestamp h, or a plain Message.hosc Variant of ] for .hoscDoes  have the specified .hoscDo any of the s at  have the specified .hoscDoes  have the specified , ie.  or .hoscPretty printer for .hoscPretty printer for .hoscPretty printer for .hoscOSC "s can be ordered (time ascending).NoneĈ^hosc*Generate a list of zero bytes for padding._hosc#Nul byte (0) and then zero padding.hoscBuilder for an OSC .hoscEncode an OSC .hoscEncode an OSC , ie.  of . plet m = [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0] encodeMessage (Message "/g_free" [Int32 0]) == L.pack mhoscEncode an OSC , ie.  of . let m = [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0] let b = [35,98,117,110,100,108,101,0,0,0,0,0,0,0,0,1,0,0,0,16] ++ m encodeBundle (Bundle immediately [Message "/g_free" [Int32 0]]) == L.pack bhoscEncode an OSC  to a strict L. NonekhoscAlign byte string, if required.hosc Encode OSC .DMIDI: Bytes from MSB to LSB are: port id, status byte, data1, data2.hosc Encode OSC .hosc Encode OSC  as an OSC blob.hosc Encode OSC .hosc Encode OSC . None֒`hosc.Get a 32 bit integer in big-endian byte order.ahosc.Get a 64 bit integer in big-endian byte order.bhoscGet an aligned OSC string.choscGet an aligned OSC string.dhosc'Get binary data prefixed by byte count.ehoscGet an OSC datum.fhosc Get an OSC %, fail if type descriptor is invalid.ghoscGet a sequence of OSC !s, each one headed by its length.hhosc;Get a bundle. Fail if bundle header is not found in packet.hosc Get an OSC .hoscDecode an OSC  from a lazy ByteString. nlet b = B.pack [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0] decodeMessage b == Message "/g_free" [Int32 0]hoscDecode an OSC  from a lazy ByteString.hosc,Decode an OSC packet from a lazy ByteString. ~let b = B.pack [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0] decodePacket b == Packet_Message (Message "/g_free" [Int32 0])hosc.Decode an OSC packet from a strict ByteString. NonehoscDecode an OSC .hoscDecode an OSC .hoscDecode an OSC . ~let b = B.pack [47,103,95,102,114,101,101,0,44,105,0,0,0,0,0,0] decodePacket b == Packet_Message (Message "/g_free" [Int32 0])ihoscj with k count.lhoscm with k count. Safe<hosc Variant of n+ where time is given in fractional seconds.hoscRepeat action until predicate f is o when applied to result.hoscRepeat action until f does not give \ when applied to result. SafeShosc0Abstract over the underlying transport protocol.hoscEncode and send an OSC packet.hosc!Receive and decode an OSC packet.hoscClose an existing connection.hoscBracket OSC communication.hosc of .hosc of .hosc Variant of  that runs .hosc Variant of  that runs .hosc Variant of  that runs .hosc Variant of  that implements an n second timeout.hosc Wait for a ! where the supplied predicate is o", discarding intervening packets.hosc Wait for a , where the supplied function does not give \!, discarding intervening packets.hosc .hosc , ie. an incoming  or immediate mode  with one element.hoscA  for variant using  to match on the  of incoming Packets. hosc Variant on  that returns matching . hosc Variant of   that runs .    Safev hoscTransport connection. hosc  is   with a MonadIO constraint. hosc  is the union of  and .hoscReceiver monad.hosc!Receive and decode an OSC packet.hosc Sender monad.hoscEncode and send an OSC packet.hosc)Bracket Open Sound Control communication.hoscp of .hoscType restricted synonym for sendOSC.hoscType restricted synonym for sendOSC.hosc Variant of  that runs packet_to_bundle.hosc Variant of  that runs packet_to_message.hoscErroring variant.hosc Variant of  that runs packetMessages.hosc Wait for a Packet! where the supplied predicate is o", discarding intervening packets.hosc Wait for a Packet, where the supplied function does not give \!, discarding intervening packets.hosc packet_is_immediate.hosc packet_to_message, ie. an incoming Message or immediate mode Bundle with one element.hoscA  for variant using packet_has_address to match on the Address_Pattern of incoming Packets.hosc Variant on  that returns matching Message. hosc Variant of  that runs  messageDatum.!hosc over ReaderT."hosc over ReaderT.#hosc  over ReaderT.$hosc  over ReaderT.        None %hosc#The UDP transport handle data type.(hosc6Return the port number associated with the UDP socket.)hoscSend packet over UDP.*hoscReceive packet over UDP.+hosc Close UDP.,hoscBracket UDP communication.-hosc!Create and initialise UDP socket..hoscSet option, ie. q or r./hosc Get option.0hoscMake a % connection.1hoscTrivial % server socket. import Control.Concurrent  vlet u0 = udpServer "127.0.0.1" 57300 t0 <- forkIO (FD.withTransport u0 (\fd -> forever (FD.recvMessage fd >>= print))) jlet u1 = openUDP "127.0.0.1" 57300 FD.withTransport u1 (\fd -> FD.sendMessage fd (Packet.message "/n" []))2hosc Variant of 1' that doesn't require the host address.3hosc*Send variant to send to specified address.4hosc/Recv variant to collect message source address.5hosc% is an instance of .%&'()*+,-./01234%&'()*+,-./01234None 6hosc#The TCP transport handle data type.9hoscSend packet over TCP.:hoscReceive packet over TCP.;hosc Close TCP.<hoscBracket UDP communication.=hosc!Create and initialise TCP socket.>hoscConvert s to 6.?hoscCreate and initialise TCP.@hoscMake a 6 connection. import Sound.OSC.Datum import Sound.OSC.Time let t = openTCP "127.0.0.1" 57110 let m1 = Packet.message "/dumpOSC" [Int32 1] let m2 = Packet.message "/g_new" [Int32 1] FD.withTransport t (\fd -> let f = FD.sendMessage fd in f m1 >> pauseThread 0.25 >> f m2)Ahosct connection at s and run f.Bhoscu of v.Chosc A trivial 6 OSC server.Dhosc6 is an instance of  Transport.6789:;<=>?@ABC6789:;<=>?@ABCNone{efghijklmnopqrstuvwxyz{|}~Noneefghijklmnopqrstuvwxyz{|}~  %&'()*+,-./012346789:;<=>?@ABCNoneefghijklmnopqrstuvwxyz{|}~    %&'()*+,-./012346789:;<=>?@ABCefghijklmnopqrstuvwxyz{|}~    %&'()*+,-./012346789:;<=>?@ABCw !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                 !"##$%&'()*+,-./01233456789:;<=>?@ABCDCEFGHFGIJKLJKMJNOPQORSTUVWJXYJXZJKYJKZA[\]^_`a^bcd^efghijk l m n o p q r s t uJKvwxy zJK{|}wx~ hosc-0.18-Jy4nTWuK5if1eb9TxxhaQA Sound.OSCSound.OSC.Coding.ConvertSound.OSC.Coding.CastSound.OSC.Coding.ByteSound.OSC.TimeSound.OSC.DatumSound.OSC.PacketSound.OSC.Coding.Encode.BuilderSound.OSC.Coding.Encode.BaseSound.OSC.Coding.Decode.BinarySound.OSC.Coding.Decode.BaseSound.OSC.WaitSound.OSC.Transport.FDSound.OSC.Transport.MonadSound.OSC.Transport.FD.UDPSound.OSC.Transport.FD.TCPC ByteStringSound.OSC.Core Sound.OSC.FDbaseControl.Monad.IO.ClassliftIOMonadIO int_to_word8 int_to_word32 int_to_word16 int_to_int8 int_to_int16 int_to_int32 int_to_int64 int8_to_int int16_to_int int32_to_int int64_to_int word8_to_int word16_to_int word32_to_intword16_to_word32word32_to_word16word32_to_int32word32_to_int64word64_to_int64int64_to_int32int64_to_word32word64_to_double word8_to_enumword16_to_enum enum_to_word8enum_to_word16 word8_to_char char_to_word8f32_w32w32_f32f64_w64w64_f64str_cstrcstr_strstr_pstrpstr_str encode_int8 encode_int16encode_int16_le encode_int64 encode_word8 encode_word16encode_word16_le encode_word32encode_word32_le encode_word64 encode_i8 encode_u8 encode_u16 encode_u16_le encode_i16 encode_i32 encode_u32 encode_u32_le encode_f32 encode_f32_le encode_f64 encode_f64_le encode_ascii decode_word16decode_word16_le decode_int16 decode_word32decode_word32_le decode_int64 decode_word64 decode_u8 decode_i8 decode_u16 decode_u16_le decode_i16 decode_i16_le decode_i32 decode_i32_le decode_u32 decode_u32_le decode_f32 decode_f32_le decode_f64 decode_ascii read_decode read_word32read_word32_le write_word32write_word32_leread_i8read_i16read_i32 read_i32_leread_u32 read_u32_le write_u32 write_u32_leread_f32 read_f32_le read_pstrbundleHeader_strict bundleHeaderalignUTTimeNTP64 immediately ntpr_to_ntpi ntpi_to_ntprntp_ut_epoch_diff ut_to_ntpi ut_to_ntpr ntpr_to_ut ntpi_to_utntpr_to_posixtimeposixtime_to_ntprut_epoch utc_to_uttimepauseThreadLimit pauseThreadwaitpauseThreadUntil sleepThreadsleepThreadUntil iso_8601_fmtiso_8601_to_utctimeutctime_to_iso_8601ntpr_to_iso_8601iso_8601_to_ntprtime_pp FP_PrecisionDatumInt32Int64FloatDouble ASCII_StringBlob TimeStampMidid_int32d_int64d_floatd_doubled_ascii_stringd_blob d_timestampd_midiMIDIBLOBASCII Datum_Typeasciiascii_to_string blob_pack blob_unpackosc_types_requiredosc_types_optional osc_types osc_type_nameosc_type_name_err datum_tagdatum_type_namedatum_integraldatum_floatingint32int64floatdoublestringmidi descriptordescriptor_tagsfloatPPtimePPvecPPblobPPdatumPPdatum_pp_typed parse_datumparse_datum_err$fEqMIDI $fShowMIDI $fReadMIDI $fEqDatum $fReadDatum $fShowDatumPacketPacket_Message Packet_Bundle packetMessage packetBundleBundle bundleTimebundleMessagesMessagemessageAddress messageDatumAddress_Patternmessagebundlep_bundle p_message packetTimepacketMessagespacket_to_bundlepacket_to_messagepacket_is_immediate at_packetmessage_has_addressbundle_has_addresspacket_has_address messagePPbundlePPpacketPP $fOrdBundle $fEqMessage $fReadMessage $fShowMessage $fEqBundle $fReadBundle $fShowBundle $fEqPacket $fReadPacket $fShowPacket build_packet encodePacket encodeMessage encodeBundleencodePacket_strictextend encode_datumencode_message_blob get_packet decodeMessage decodeBundle decodePacketdecodePacket_strict timeout_runtilPredicate untilMaybe Transport sendPacket recvPacketclose withTransport sendMessage sendBundle recvBundle recvMessage recvMessagesrecvPacketTimeout waitUntilwaitFor waitImmediate waitMessage waitAddress waitReply waitDatum Connection DuplexOSCRecvOSCSendOSCwithTransport_recvMessage_err$fSendOSCReaderT$fRecvOSCReaderT$fDuplexOSCReaderT$fTransportReaderTUDP udpSocketudpPortupd_send_packetudp_recv_packet udp_closewith_udp udp_socket set_udp_opt get_udp_optopenUDP udpServer udp_serversendTorecvFrom$fTransportUDPTCP tcpHandletcp_send_packettcp_recv_packet tcp_closewith_tcp tcp_socket socket_to_tcp tcp_handleopenTCP tcp_server_frepeatM_ tcp_server$fTransportTCPGHC.Real fromIntegralGHC.EnumtoEnumfromEnumbinary-0.8.6.0 Data.Binaryencodedecodebytestring-0.10.8.2Data.ByteString.LazyhPuthGetData.ByteString.Internal time-1.8.0.2"Data.Time.Clock.Internal.POSIXTime POSIXTime Data.Time.Clock.Internal.UTCTimeUTCTimeGHC.WordWord8 Text.Read.LexLexemeData.ByteString.Char8packunpackIntegral GHC.FloatFloatingGHC.Base.Numeric showFFloatStringGHC.Errerrorid GHC.MaybeNothing Data.Eithereitherpaddingnul_and_padding getInt32be getInt64be get_string get_ascii get_bytes get_datum get_messageget_message_seq get_bundleb_taketakeghc-prim GHC.TypesIntb_dropdropSystem.TimeouttimeoutTrue Data.Functorvoid&network-3.1.1.1-Izwsyk64OoDBVuRysfRa9DNetwork.Socket.Options Broadcast RecvTimeOutNetwork.Socket.TypesSocketNetwork.Socket.SockAddraccept Data.Foldable sequence_GHC.Listrepeat