h$=z^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                         &(c) Joachim Fasting 2012MIT&Joachim Fasting unstable unportable Safe-Inferred3 Slibmpd*Represents various MPD errors (aka. ACKs).libmpdInvalid argument passed (ACK 2)libmpd!Invalid password supplied (ACK 3)libmpdAuthentication required (ACK 4)libmpdUnknown command (ACK 5)libmpd#File or directory not found ACK 50)libmpd!Playlist at maximum size (ACK 51)libmpdA system error (ACK 52) libmpd Playlist loading failed (ACK 53) libmpdUpdate already running (ACK 54) libmpd;An operation requiring playback got interrupted (ACK 55) libmpdFile already exists (ACK 56) libmpdAn unknown ACK (aka. bug)libmpdThe MPDError type is used to signal errors, both from the MPD and otherwise.libmpdMPD not respondinglibmpd'An error occurred while talking to MPD.libmpdMPD returned an unexpected response. This is a bug, either in the library or in MPD itself.libmpdUsed for misc. errorslibmpd)ACK type and a message from the server 0(c) Ben Sinclair 2005-2009, Joachim Fasting 2010MIT (see LICENSE)&Joachim Fasting alpha Safe-Inferred? libmpdA typeclass to allow for multiple implementations of a connection to an MPD server.libmpd1Open (or re-open) a connection to the MPD server.libmpdClose the connection.libmpd4Send a string to the server and return its response.libmpdProduce a password to send to the server should it ask for one.libmpd)Alters password to be sent to the server.libmpdGet MPD protocol version0(c) Ben Sinclair 2005-2009, Joachim Fasting 2010MIT (see LICENSE)&Joachim Fasting alpha Safe-Inferred libmpd-Like Prelude.read, but works with ByteString. 0(c) Ben Sinclair 2005-2009, Joachim Fasting 2010MIT (see LICENSE)&Joachim Fasting alphaNone ?rlibmpdA response is either an  or some result.libmpdThe main implementation of an MPD client. It actually connects to a server and interacts with it.0To use the error throwing/catching capabilities: 4import Control.Monad.Except (throwError, catchError)'To run IO actions within the MPD monad: #import Control.Monad.Trans (liftIO) libmpd4The most configurable API for running an MPD action.!libmpd;Kill the server. Obviously, the connection is then invalid."libmpd7Send a command to the MPD server and return the result."  !""  "!(c) Simon Hengel 2012MITjoachifm@fastmail.fmstable unportableNone 5)libmpdA compound command, comprising a parser for the responses and a combined request of an arbitrary number of commands.libmpdA line-oriented parser that returns a value along with any remaining input.libmpdConvert a regular parser.libmpd+Return everything until the next "list_OK".libmpd)For commands returning an empty response.libmpdFail with unexpected response.*libmpd Execute a ). )*(c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone +libmpd9Authenticate session. The password is sent in plain text.,libmpd Ping daemon.+,+,0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone-libmpdSend password to server to authenticate session. Password is sent as plain text..libmpd*Check that the server is still responding.-.&(c) Joachim Fasting, Simon Hengel 2012MIT&Joachim Fasting alpha unportableNone> libmpd0Wrapper for creating signed instances of MPDArg.libmpdA uniform interface for argument preparation The basic idea is that one should be able to magically prepare an argument for use with an MPD command, without necessarily knowing/caring how it needs to be represented internally.libmpdArguments for getResponse are accumulated as strings in values of this type after being converted from whatever type (an instance of MPDArg) they were to begin with.libmpd)Groups together arguments to getResponse.libmpdConverts a command name and a string of arguments into the string to hand to getResponse. 320(c) Ben Sinclair 2005-2009, Joachim Fasting 2010MIT (see LICENSE)&Joachim Fasting alphaNone>'/libmpdContainer for MPD status.2libmpdA percentage (0-100)./ indicates that the output lacks mixer support.5libmpdA value that is incremented by the server every time the playlist changes.6libmpd,The number of items in the current playlist.7libmpd(Current song's position in the playlist.8libmpdCurrent song's playlist ID.9libmpd%Next song's position in the playlist.:libmpdNext song's playlist ID.;libmpd1Time elapsed/total time of playing song (if any).<libmpd;Bitrate (in kilobytes per second) of playing song (if any).=libmpdCrossfade time.>libmpdMixRamp threshold in dB?libmpdMixRamp extra delay in seconds@libmpdSamplerate/bits/channels for the chosen output device (see mpd.conf).Alibmpd,Job ID of currently running update (if any).BlibmpdIf True, MPD will play only one song and stop after finishing it.Clibmpd9If True, a song will be removed after it has been played.DlibmpdLast error message (if any).ElibmpdThe name of MPD partition.FlibmpdVolume values.2Values of this type are always in the range 0-100.,Arithmetic on volumes has the property that: *current + new = 100 if current + new > 100 (current - new = 0 if current - new < 0but  current / 0+ still yields a division by zero exception.Glibmpd"Container for database statistics.IlibmpdNumber of artists.JlibmpdNumber of albums.KlibmpdNumber of songs.LlibmpdDaemon uptime in seconds.MlibmpdTotal playing time.Nlibmpd4Total play time of all the songs in the database.Olibmpd"Last database update in UNIX time.Tlibmpd%The position of a song in a playlist.UlibmpdRepresents a single song item.XlibmpdMap of available tags (multiple occurrences of one tag type allowed)YlibmpdLast modification dateZlibmpdLength of the song in seconds[libmpdId in playlist\libmpdPosition in playlist]libmpdRepresents an output device._libmpdOutput's ID number`libmpd9Output's name as defined in the MPD configuration fileblibmpdResult of the lsInfo operationclibmpd DirectorydlibmpdSongelibmpdPlaylistflibmpd!Represents the result of running count.hlibmpd"Number of songs matching the queryilibmpd!Total play time of matching songsklibmpdDisable replay gainllibmpdPer track modemlibmpdPer album modenlibmpd&Represents the various MPD subsystems.olibmpdThe song databaseplibmpdDatabase updatesqlibmpdStored playlistsrlibmpdThe current playlistslibmpd The playertlibmpdThe volume mixerulibmpd Audio outputsvlibmpdPlayback optionswlibmpdSticker databasexlibmpd SubscriptionylibmpdMessage on subscribed channelzlibmpd)Represents the different playback states.libmpd Object types.libmpdA metadata value.libmpdAvailable metadata types/scope modifiers, used for searching the database for entries with certain metadata values.libmpdUsed for commands which require a path within the database. If empty, the root path is used.libmpdUsed for commands which require a playlist name. If empty, the current playlist is used.libmpd1A type class for values that can be converted to s.libmpdConvert given value to .libmpdConvert given value to .libmpd'Convert given value to a UTF-8 encoded .libmpdGet list of specific tag typelibmpdAdd metadata tag value./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz|{}~0(c) Ben Sinclair 2005-2009, Joachim Fasting 2010MIT (see LICENSE)&Joachim Fasting alphaNone ?+Hlibmpd Builds a f instance from an assoc. list.libmpdBuilds a list of ] instances from an assoc. listlibmpd Builds a G instance from an assoc. list.libmpd Builds a U instance from an assoc. list.libmpdA helper that runs a parser on a string and, depending on the outcome, either returns the result of some command applied to the result, or a default value. Used when building structures.libmpdA helper for running a parser returning Maybe on a pair of strings. Returns Just if both strings where parsed successfully, Nothing otherwise.(c) Joachim Fasting 2012MIT&Joachim Fasting unstable unportableNone0 libmpd&An interface for creating MPD queries.For example, to match any song where the value of artist is "Foo", we use: Artist =? "Foo"We can also compose queries, thus narrowing the search. For example, to match any song where the value of artist is "Foo" and the value of album is "Bar", we use: !Artist =? "Foo" <> Album =? "Bar"libmpd!An empty query. Matches anything.libmpd+Create a query matching a tag with a value. libmpdCreate a query matching a tag with anything but a value. Requires MPD 0.21 or newer. libmpdCreate a query for a tag containing a value. Requires MPD 0.21 or newer. libmpdCreate a query matching a tag with regexp. Requires MPD 0.21 or newer. libmpdCreate a query matching a tag with anything but a regexp. Requires MPD 0.21 or newer. libmpd,Negate a Query. Requires MPD 0.21 or newer. libmpdCreate a query for songs modified since a date. Requires MPD 0.21 or newer. libmpdCreate a query for the full song URI relative to the music directory. Requires MPD 0.21 or newer. libmpdLimit the query to the given directory, relative to the music directory. Requires MPD 0.21 or newer.libmpdCombine queries. 6(c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone 3A libmpdPlay next song in the playlist.libmpd Toggle pause.libmpd3Begin playback (optionally at a specific position).libmpd(Begin playback at the specified song id.libmpdPlay previous song.libmpd/Seek to time in the song at the given position.libmpd+Seek to time in the song with the given id. libmpdSeek to time in the current song. Absolute time for True in the frist argument, relative time for False.libmpdStop playback.  0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone 5 libmpdPlay the next song.libmpdPause playing.libmpdBegin/continue playing.libmpdPlay a file with given id.libmpdPlay the previous song.libmpdSeek to some point in a song.libmpd)Seek to some point in a song (id version) libmpdSeek to some point in the current song. Absolute time for True in the frist argument, relative time for False.libmpd Stop playing. (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone 6libmpdTurn off output.libmpdTurn on output.libmpdToggle output.libmpd3Get information about all available output devices.0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone 7libmpdTurn off an output device.libmpdTurn on an output device.libmpdToggle output device.libmpd,Retrieve information for all output devices.None 8(c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone : libmpd List song items in the playlist.libmpd.List song items in the playlist with metadata.libmpdGet a list of stored playlists.libmpd%Load playlist into the current queue.libmpd*Add a database path to the named playlist.libmpdClear the playlist.libmpd8Delete the item at the given position from the playlist.libmpd2Move a song to a new position within the playlist.libmpdRename the playlist.libmpdRemove the playlist.libmpd)Save current queue to the named playlist.  0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone >D libmpd-Retrieve a list of files in a given playlist.libmpd0Retrieve metadata for files in a given playlist.libmpd$Retreive a list of stored playlists.libmpdLoad an existing playlist.libmpdAdd a song (or a whole directory) to a stored playlist. Will create a new playlist if the one specified does not already exist.libmpdClear a playlist. If the specified playlist does not exist, it will be created.libmpdRemove a song from a playlist.libmpd:Move a song to a given position in the playlist specified.libmpdRename an existing playlist.libmpdDelete existing playlist.libmpdSave the current playlist.libmpdOriginal playlistlibmpdNew playlist name (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone @libmpd,Read sticker value for the object specified.libmpdAdd sticker value to the object. Will overwrite existing stickers with the same name.libmpdDelete a sticker value from the object. If no sticker name is given, all sticker values attached to the object are deleted.libmpdList stickers for the object.libmpdSearch the sticker database for stickers with the specified name, below the specified directory.0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone Clibmpd/Reads a sticker value for the specified object.libmpd-Adds a sticker value to the specified object.libmpd1Delete a sticker value from the specified object.libmpd,Lists the stickers for the specified object.libmpdSearches the sticker database for stickers with the specified name, below the specified path.libmpd Object URIlibmpd Sticker namelibmpd Object URIlibmpd Sticker namelibmpd Sticker valuelibmpd Object URIlibmpd Sticker namelibmpd Object URIlibmpdSticker name/sticker valuelibmpdPathlibmpd Sticker namelibmpdURI/sticker value (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone Elibmpd&Clear current error message in status.libmpd1Song metadata for currently playing song, if any.libmpdWait until there is noteworthy change in one or more of MPD's subsystems. When active, only  commands are allowed.libmpd Cancel an  request.libmpdGet database statistics.libmpd%Get the current status of the player.0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone Hlibmpd*Clear the current error message in status.libmpdGet the currently playing song.libmpdWait until there is a noteworthy change in one or more of MPD's susbystems.The first argument is a list of subsystems that should be considered. An empty list specifies that all subsystems should be considered.>A list of subsystems that have noteworthy changes is returned.7Note that running this command will block until either  returns or is cancelled by .libmpdCancel .libmpdGet server statistics.libmpdGet the server's status. (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone Klibmpd!Get a list of available commands.libmpdGet a list of unavailable commands (i.e., commands that require an authenticated session).libmpd&Get a list of available song metadata.libmpd%Get a list of available URL handlers.libmpdGet a list of available decoder plugins, with their supported suffixes and MIME types.libmpd1Get configuration values of interest to a client.Note: only permitted for clients connected via a unix domain socket (aka "local clients"). 0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone MDlibmpd&Retrieve a list of available commands.libmpdRetrieve a list of unavailable (due to access restrictions) commands.libmpd+Retrieve a list of available song metadata.libmpd)Retrieve a list of supported urlhandlers.libmpdRetreive a list of decoder plugins with associated suffix and mime types.libmpd'Retrieve configuration keys and values. (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone Pc libmpdToggle consume mode.libmpdSet crossfading between songs.libmpdToggle random mode.libmpdToggle repeat mode.libmpd Set volume.libmpdToggle single mode.libmpdSet replay gain mode.libmpd2Get replay gain status: option name and its value.libmpdSet MixRamp overlap threshold. 0dB is the normalized maximum value; use negative values to adjust it.Songs must have MixRamp tags set by an external tool for this to work; crossfading is used if no tags are present.libmpd;Additional time subtracted from the overlap calculated by . NaN9 disables MixRamp overlapping and reverts to crossfading.  !0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone R%libmpdSet consume modelibmpdSet crossfading between songs.libmpdSet random playing.libmpdSet repeating.libmpdSet the volume.libmpdSet single modelibmpdSet the replay gain mode.libmpdGet the replay gain options. (c) Joachim Fasting 2014MITjoachifm@fastmail.fmstable unportableNone R"(c) Joachim Fasting 2014MITjoachifm@fastmail.fmstable unportableNone S  (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone W libmpdGet a count of songs and their total playtime that exactly match the query.libmpd&Find songs matching the query exactly.libmpdLike . but adds the results to the current playlist.libmpd%Lists all tags of the specified type.Note that the optional artist value is only ever used if the metadata type is , and is then taken to mean that the albums by that artist be listed.libmpd2List all songs and directories in a database path.libmpdSame as  but also returns metadata.libmpd*List the contents of a database directory.libmpd2Read comments from the file at the specified path.libmpdLike  but with inexact matching.libmpdLike . but adds the results to the current playlist.Since MPD 0.17.libmpdLike ( but adds results to the named playlist.Since MPD 0.17.libmpdUpdate the music database. If no path is supplied, the entire database is updated.libmpdLike " but also rescan unmodified files.#0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone [ libmpd-Count the number of entries matching a query.libmpd9Search the database for entries exactly matching a query.libmpd4Adds songs matching a query to the current playlist.libmpd$List all tags of the specified type.libmpdList the songs (without metadata) in a database directory recursively.libmpd Recursive .libmpd:Non-recursively list the contents of a database directory.libmpd Read comments from file at path.libmpd4Search the database using case insensitive matching.libmpdUpdate the server's database.If no path is given, the whole library will be scanned. Unreadable or non-existent paths are silently ignored.The update job id is returned.libmpdLike # but also rescans unmodified files.libmpdMetadata to list (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone blibmpd:Add a song (or a whole directory) to the current playlist.libmpd/Add a song (non-recursively) and return its id.libmpdClear the current playlist.libmpd+Delete song at the given playlist position.libmpd*Delete a range of songs from the playlist.libmpdDelete song by id.libmpd'Move song from one position to another.libmpdMove a range of songs.libmpdMove song id to position. If the position is negative, it is relative to the current song.libmpd4Find songs in current playlist with strict matching.libmpdGet song metadata for all items in the current playlist. Optionally restrict listing the song at the given position.libmpdLike / but can restrict listing to a range of songs.libmpdGet song metadata for all items in the current playlist. Optionally restrict selection to a single song id.libmpdSearch case-insensitively for partial matches in current playlist.libmpdGet song metadata for items that have changed in the playlist since the given playlist version.libmpdGet positions and ids of songs that have changed in the playlist since the given playlist version.libmpd(Set the priority of the specified songs.libmpdSet priority by song id.libmpdShuffle the current playlist. Optionally restrict to a range of songs.libmpdSwap songs by position.libmpdSwap songs by id.libmpd#Add tag to specified (remote) song.libmpd(Remove tag from specified (remote) song.libmpdSpecify portion of song that shall be played. Both ends of the range are optional; omitting both plays everything.$0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone ?kMlibmpdLike , but returns a playlist id.libmpd:Add a song (or a whole directory) to the current playlist.libmpdClear the current playlist.libmpd(Remove a song from the current playlist. libmpd2Remove a range of songs from the current playlist.libmpd(Remove a song from the current playlist.libmpd8Move a song to a given position in the current playlist. libmpdMove a range of songs to a given position in the current playlist.libmpdMove a song from (songid) to (playlist index) in the playlist. If to is negative, it is relative to the current song in the playlist (if there is one).libmpdRetrieve file paths and positions of songs in the current playlist. Note that this command is only included for completeness sake; it's deprecated and likely to disappear at any time, please use  instead.libmpd>Search for songs in the current playlist with strict matching.libmpd4Retrieve metadata for songs in the current playlist.libmpdLike & but can restrict to a range of songs.libmpdDisplays a list of songs in the playlist. If id is specified, only its info is returned.libmpdSearch case-insensitively with partial matches for songs in the current playlist.libmpdRetrieve a list of changed songs currently in the playlist since a given playlist version.libmpdLike $ but only returns positions and ids.libmpd(Set the priority of the specified songs.libmpdSet priority by song id.libmpdShuffle the playlist.libmpd Swap the positions of two songs.libmpd,Swap the positions of two songs (Id version)libmpdAdd tag to (remote) song.libmpdRemove tag from (remote) song.libmpdSpecify portion of song that shall be played. Both ends of the range are optional; omitting both plays everything.libmpdOptional range (start, end)(c) Joachim Fasting 2013MITjoachifm@fastmail.fmstable unportableNone k%(c) Joachim Fasting 2013MIT (see LICENSE)joachifm@fastmail.fmstable unportableNonelm&(c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNonel-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz|{}~(c) Joachim Fasting 2012MIT&Joachim Fasting unstable unportableNone r libmpdThis is exactly the same as .libmpd%Toggles play/pause. Plays if stopped.libmpdAdd a list of songs/folders to a playlist. Should be more efficient than running  many times.libmpd Recursive . For directories, it will use the given position for the first file in the directory and use the successor for the remaining files. It returns a list of playlist ids for the songs added.libmpdLike ' but returns a list of the files added.libmpdLike ' but returns a list of the files added.libmpd!List the artists in the database.libmpdList the albums in the database, optionally matching a given artist.libmpd*List the songs in an album of some artist.libmpd.Retrieve the current playlist. Equivalent to playlistinfo Nothing.libmpdIncrease or decrease volume by a given percent, e.g. 'volume 10' will increase the volume by 10 percent, while 'volume (-10)' will decrease it by the same amount.  &(c) Joachim Fasting, Simon Hengel 2012MIT&Joachim Fasting unstable unportableNonevFlibmpdA wrapper for   that uses localhost:6600 as the default host:port, or whatever is found in the environment variables MPD_HOST and MPD_PORT. If MPD_HOST is of the form "password@host" the password will be supplied as well. Examples: withMPD $ play Nothing withMPD $ add_ "tool" >> play Nothing >> currentSonglibmpdSame as , but takes optional arguments that override MPD_HOST and MPD_PORT.5This is e.g. useful for clients that optionally take --port and --host. as command line arguments, and fall back to .'s defaults if those arguments are not given.libmpdoptional override for MPD_HOSTlibmpdoptional override for MPD_PORT  -./0EDCBA@?>=<;:987654312FGHONMLKIJPQRSTUV\[ZYWX]^a_`becdfghijmklnyxwvutsrqopz}|{~  ~z|{}nopqrstuvwxyjklmfghibcde]^_`aUVWXYZ[\PQTFRSGHIJKLMNO/0123456789:;<=>?@ABCDE-.Noney)*+,)*'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUTUVVWXYZ[\]^_`abcdefghijklmmnopqrstuuvvwxxyz{|}~                            !!!!!!!!    """"               ###########$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%KRRl%libmpd-0.9.3.0-Itni6brfpUALX8xf2zdph5 Network.MPDNetwork.MPD.CoreNetwork.MPD.Applicative"Network.MPD.Applicative.Connection'Network.MPD.Applicative.PlaybackControlNetwork.MPD.Applicative.Output'Network.MPD.Applicative.StoredPlaylists Network.MPD.Applicative.StickersNetwork.MPD.Applicative.Status"Network.MPD.Applicative.Reflection'Network.MPD.Applicative.PlaybackOptionsNetwork.MPD.Applicative.Mount Network.MPD.Applicative.Database'Network.MPD.Applicative.CurrentPlaylist&Network.MPD.Applicative.ClientToClientNetwork.MPD.Commands.ExtensionsNetwork.MPD.Core.ErrorNetwork.MPD.Core.ClassNetwork.MPD.Util Network.MPD.Applicative.InternalNetwork.MPD.Commands.ConnectionNetwork.MPD.Commands.ArgNetwork.MPD.Commands.TypesNetwork.MPD.Commands.ParseNetwork.MPD.Commands.Query$Network.MPD.Commands.PlaybackControlNetwork.MPD.Commands.OutputNetwork.MPD.Applicative.Util$Network.MPD.Commands.StoredPlaylistsNetwork.MPD.Commands.StickersNetwork.MPD.Commands.StatusNetwork.MPD.Commands.Reflection$Network.MPD.Commands.PlaybackOptionsNetwork.MPD.Commands.MountNetwork.MPD.Commands.Database$Network.MPD.Commands.CurrentPlaylist#Network.MPD.Commands.ClientToClientNetwork.MPD.Commands1data-default-class-0.1.2.0-IIN1s3V8yfYEDHe5yjxXHVData.Default.ClassdefACKTypeInvalidArgumentInvalidPasswordAuthUnknownCommand FileNotFound PlaylistMaxSystem PlaylistLoadBusy NotPlaying FileExists UnknownACKMPDErrorNoMPDConnectionError UnexpectedCustomACKMonadMPDopenclosesend getPassword setPassword getVersionPasswordResponseMPDPortHost withMPDExkill getResponse $fMonadMPDMPD$fApplicativeMPD $fFunctorMPD $fMonadMPD $fMonadIOMPD$fMonadErrorMPDErrorMPDCommand runCommandpasswordpingStatusstStatestVolumestRepeatstRandomstPlaylistVersionstPlaylistLength stSongPosstSongID stNextSongPos stNextSongIDstTime stBitrate stXFadeWidth stMixRampdBstMixRampDelaystAudio stUpdatingDbstSingle stConsumestError stPartitionVolumeStats stsArtists stsAlbumsstsSongs stsUptime stsPlaytime stsDbPlaytime stsDbUpdatePriorityIdPositionSong sgFilePathsgTagssgLastModifiedsgLengthsgIdsgIndexDevice dOutputID dOutputNamedOutputEnabledLsResult LsDirectoryLsSong LsPlaylistCountcSongs cPlaytimeReplayGainModeOff TrackMode AlbumMode Subsystem DatabaseSUpdateSStoredPlaylistS PlaylistSPlayerSMixerSOutputSOptionsSStickerS SubscriptionSMessageS PlaybackStatePlayingStoppedPausedDecibelsSecondsFractionalSeconds ObjectTypeSongObjValueMetadataArtist ArtistSortAlbum AlbumArtistAlbumArtistSortTitleTrackNameGenreDateComposer PerformerCommentDiscMUSICBRAINZ_ARTISTIDMUSICBRAINZ_ALBUMIDMUSICBRAINZ_ALBUMARTISTIDMUSICBRAINZ_TRACKIDMUSICBRAINZ_RELEASETRACKIDPath PlaylistNameToStringtoStringtoTexttoUtf8sgGetTagsgAddTagQueryanything=?/=?%?~?/~?qNot qModSinceqFileqBase<&>nextpauseplayplayIdpreviousseekseekIdseekCurstop disableOutput enableOutput toggleOutputoutputs listPlaylistlistPlaylistInfo listPlaylistsload playlistAdd playlistClearplaylistDelete playlistMoverenamermsave stickerGet stickerSet stickerDelete stickerList stickerFind clearError currentSongidlenoidlestatsstatuscommands notCommandstagTypes urlHandlersdecodersconfigconsume crossfaderandomrepeat setVolumesinglereplayGainModereplayGainStatus mixrampDb mixrampDelaymountunmount listMounts listNeighborscountfindfindAddlistlistAlllsInfo' listAllInfolsInfo readCommentssearch searchAdd searchAddPlupdaterescanupdate_addaddIdcleardelete deleteRangedeleteIdmove moveRangemoveId playlistFind playlistInfoplaylistInfoRange playlistIdplaylistSearch plChangesplChangesPosIdprioprioIdshuffleswapswapIdaddTagId clearTagIdrangeIdplaylist MessageText ChannelName subscribe unsubscribechannels readMessages sendMessageupdateIdtoggleaddMany addIdManyaddListplaylistAddList listArtists listAlbums listAlbum getPlaylistvolumewithMPDwithMPD_read breakChar parseDate parseIso8601 formatIso8601parseNum parseFracshowBool parseBool parseTripletoAssoc toAssocList splitGroupsParser liftParser emptyResponse unexpected commandParsercommandRequest runParserSignMPDArgArgs<++><@>unSignprepbase GHC.MaybeNothingGHC.BaseString text-1.2.3.2Data.Text.InternalTextbytestring-0.10.10.0Data.ByteString.Internal ByteString defaultSong parseCount parseOutputs parseStats parseSongparsepairparseMaybeSong takeEntries takeSongs takeValues decodePair