+,      !"#$%&'()*+,-./01234567+Instance for special casing null pointers. 89:;Given a bit pattern, yield all bit masks that it contains. I This does *not* attempt to compute a minimal set of bit masks that when G combined yield the bit pattern, instead all contained bit masks are  produced. ;Integral conversion <Floating conversion =Obtain C value from Haskell >. ?Obtain Haskell > from C value. @$Convert a C enumeration to Haskell. A$Convert a Haskell enumeration to C. $BCDEFGHIJKLMNOP,-./0123456789:;<=?@A,-./0123456789:;<=?@AQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~QRSTUVWXYZ[\]^_`abcdefghijklmnopq1~}|{zyxwvutsrrstuvwxyz{|}~B ECounts are in samples, not bytes. Multi-channel data is interleaved.  !"#$%&Buffer size (in sample frames) to use  device, e.g default number of channels sample frequency  buffer time  period time 2(buffer_time,buffer_size,period_time,period_size)  buffer size  period size &'()1This expects pad bytes that are needed in memory *in order to satisfy aligment constraints. 6This is only a problem for samples sizes like 24 bit. Same restrictions as for . *+,  !"#$%&'()*+,  !"#$%&'()*++    !"#$%&'()*+       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFDGHDIJDKLDMNDMODMPDMQDMRDSTDSUDSVDSWDSXDEYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ alsa-pcm-0.5Sound.ALSA.PCMSound.ALSA.PCM.C2HSSound.ALSA.PCM.CorePcm SoundSink soundSinkFmt soundSinkOpensoundSinkClosesoundSinkWritesoundSinkStart soundSinkStop SoundSourcesoundSourceFmtsoundSourceOpensoundSourceClosesoundSourceStartsoundSourceStopsoundSourceReadSoundBufferTime bufferTime periodTimeTimeSoundFmt sampleFreq SampleFreq SampleFmtsampleFmtToPcmFormatwithSoundSourcewithSoundSourceRunning withSoundSinkwithSoundSinkRunning soundFmtMIMEaudioBytesPerSampleaudioBytesPerFramesoundSourceBytesPerFramesoundSinkBytesPerFrame copySoundalsaSoundSource alsaSoundSinkalsaSoundSourceTimealsaSoundSinkTimefileSoundSource fileSoundSinkwithCStringLenIntConvpeekCStringLenIntConv withIntConv withFloatConv peekIntConv peekFloatConvwithBoolpeekBoolwithEnumpeekEnum nothingIf nothingIfNullcombineBitMaskscontainsBitMaskextractBitMaskscIntConv cFloatConv cFromBoolghc-primGHC.BoolBoolcToBoolcToEnum cFromEnumbaseGHC.PtrPtrForeign.C.String withCStringForeign.Marshal.UtilswithForeign.Marshal.AllocallocaForeign.C.TypesCCharCIntCUIntCLongCULongForeign.Storablepokepeek alignmentsizeOfStorablecastPtrpcm_sw_params_current'_pcm_sw_params'_pcm_sw_params_free'_pcm_sw_params_malloc'_pcm_hw_params_free'_pcm_hw_params_malloc'_ pcm_writei'_ pcm_readi'_ pcm_sw_params_set_silence_size'_%pcm_sw_params_set_silence_threshold'_pcm_sw_params_set_xfer_align'_pcm_sw_params_set_avail_min'_#pcm_sw_params_set_start_threshold'_pcm_hw_params_get_buffer_time'_$pcm_hw_params_set_buffer_time_near'_pcm_hw_params_set_periods'_$pcm_hw_params_set_period_time_near'_pcm_hw_params_get_period_size'_pcm_hw_params_get_buffer_size'_pcm_hw_params_set_buffer_size'_pcm_hw_params_set_channels'_pcm_hw_params_set_rate'_pcm_hw_params_set_format'_pcm_hw_params_set_access'_pcm_hw_params_any'_pcm_hw_params'_ pcm_drain'_ pcm_drop'_ pcm_start'_ pcm_prepare'_ pcm_close'_ pcm_open'_ PcmFormatPcmFormatIec958SubframePcmFormatFloat64PcmFormatFloat PcmFormatU32 PcmFormatS32 PcmFormatU24 PcmFormatS24 PcmFormatU16 PcmFormatS16 PcmFormatLastPcmFormatU183bePcmFormatU183lePcmFormatS183bePcmFormatS183lePcmFormatU203bePcmFormatU203lePcmFormatS203bePcmFormatS203lePcmFormatU243bePcmFormatU243lePcmFormatS243bePcmFormatS243lePcmFormatSpecial PcmFormatGsm PcmFormatMpegPcmFormatImaAdpcm PcmFormatALawPcmFormatMuLawPcmFormatIec958SubframeBePcmFormatIec958SubframeLePcmFormatFloat64BePcmFormatFloat64LePcmFormatFloatBePcmFormatFloatLePcmFormatU32BePcmFormatU32LePcmFormatS32BePcmFormatS32LePcmFormatU24BePcmFormatU24LePcmFormatS24BePcmFormatS24LePcmFormatU16BePcmFormatU16LePcmFormatS16BePcmFormatS16Le PcmFormatU8 PcmFormatS8PcmFormatUnknown PcmAccess PcmAccessLastPcmAccessRwNoninterleavedPcmAccessRwInterleavedPcmAccessMmapComplexPcmAccessMmapNoninterleavedPcmAccessMmapInterleaved PcmStream PcmStreamLastPcmStreamCapturePcmStreamPlayback PcmSwParams PcmHwParamspcm_open pcm_close pcm_prepare pcm_startpcm_drop pcm_drain pcm_hw_paramspcm_hw_params_anypcm_hw_params_set_accesspcm_hw_params_set_formatpcm_hw_params_set_ratepcm_hw_params_set_channelspcm_hw_params_set_buffer_sizepcm_hw_params_get_buffer_sizepcm_hw_params_get_period_size"pcm_hw_params_set_period_time_nearpcm_hw_params_set_periods"pcm_hw_params_set_buffer_time_nearpcm_hw_params_get_buffer_time!pcm_sw_params_set_start_thresholdpcm_sw_params_set_avail_minpcm_sw_params_set_xfer_align#pcm_sw_params_set_silence_thresholdpcm_sw_params_set_silence_size pcm_readi pcm_writeipcm_hw_params_mallocpcm_hw_params_freepcm_sw_params_mallocpcm_sw_params_free pcm_sw_paramspcm_sw_params_current orderingToInt intToOrdering peekOrdering withOrderingmemsetdefaultBufferTimenullSoundSource nullSoundSink withSampleFmt numChannelsdebugalsaOpen setHwParams setSwParams withHwParams withSwParams alsaClose alsaStartalsaStopalsaRead alsaWrite alsaWrite_fileRead fileWrite callocaArray clearBytes arraySize