!S)s      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                         !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr&(c) Joachim Fasting 2012MIT&Joachim Fasting <joachifm@fastmail.fm>unstable unportableSafe2"8libmpd*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)libmpdMThe MPDError type is used to signal errors, both from the MPD and otherwise.libmpdMPD not respondinglibmpd'An error occurred while talking to MPD.libmpdaMPD 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 <joachifm@fastmail.fm>alphaSafe>*libmpdVA 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.libmpdBProduce 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 <joachifm@fastmail.fm>alphaSafe-slibmpd-Like Prelude.read, but works with ByteString. stuvwxyz{|}~0(c) Ben Sinclair 2005-2009, Joachim Fasting 2010MIT (see LICENSE)&Joachim Fasting <joachifm@fastmail.fm>alphaNone>MX:libmpdA response is either an  or some result.libmpdInner state for MPDlibmpdeThe main implementation of an MPD client. It actually connects to a server and interacts with it.0To use the error throwing/catching capabilities: 3import Control.Monad.Error (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*Re-connect and retry for these Exceptions.libmpdMPredicate to identify ResourceVanished exceptions. Note: these are GHC only!!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 unportableNone4PCl)libmpduA compound command, comprising a parser for the responses and a combined request of an arbitrary number of commands.libmpdKA 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 unportableNoneF4+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 unportableNoneJC-libmpdQSend 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 <joachifm@fastmail.fm>alpha unportableNone=?MTlibmpdA 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.libmpdZConverts 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 <joachifm@fastmail.fm>alphaNone=?MG/libmpdContainer for MPD status.2libmpdA percentage (0-100)./ indicates that the output lacks mixer support.5libmpdMA 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@libmpdHSamplerate/bits/channels for the chosen output device (see mpd.conf).Alibmpd,Job ID of currently running update (if any).BlibmpdAIf 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).ElibmpdVolume 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.Flibmpd"Container for database statistics.HlibmpdNumber of artists.IlibmpdNumber of albums.JlibmpdNumber of songs.KlibmpdDaemon uptime in seconds.LlibmpdTotal playing time.Mlibmpd4Total play time of all the songs in the database.Nlibmpd"Last database update in UNIX time.Slibmpd%The position of a song in a playlist.TlibmpdRepresents a single song item.WlibmpdDMap of available tags (multiple occurrences of one tag type allowed)XlibmpdLast modification dateYlibmpdLength of the song in secondsZlibmpdId in playlist[libmpdPosition in playlist\libmpdRepresents an output device.^libmpdOutput's ID number_libmpd9Output's name as defined in the MPD configuration filealibmpdResult of the lsInfo operationblibmpd DirectoryclibmpdSongdlibmpdPlaylistelibmpd!Represents the result of running count.glibmpd"Number of songs matching the queryhlibmpd!Total play time of matching songsjlibmpdDisable replay gainklibmpdPer track modellibmpdPer album modemlibmpd&Represents the various MPD subsystems.nlibmpdThe song databaseolibmpdDatabase updatesplibmpdStored playlistsqlibmpdThe current playlistrlibmpd The playerslibmpdThe volume mixertlibmpd Audio outputsulibmpdPlayback optionsvlibmpdSticker databasewlibmpd SubscriptionxlibmpdMessage on subscribed channelylibmpd)Represents the different playback states.libmpd Object types.libmpdA metadata value.libmpdtAvailable metadata types/scope modifiers, used for searching the database for entries with certain metadata values.libmpd]Used for commands which require a path within the database. If empty, the root path is used.libmpdYUsed 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.y/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0(c) Ben Sinclair 2005-2009, Joachim Fasting 2010MIT (see LICENSE)&Joachim Fasting <joachifm@fastmail.fm>alphaNone>Qlibmpd Builds a e instance from an assoc. list.libmpdBuilds a list of \ instances from an assoc. listlibmpd Builds a F instance from an assoc. list.libmpd Builds a T 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 <joachifm@fastmail.fm>unstable unportableNonelibmpd&An interface for creating MPD queries.KFor 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.libmpdCreate a query.libmpdCombine queries.6(c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone(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.libmpdStop playback.0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone?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)libmpd Stop playing.(c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNonelibmpdTurn 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 unportableNonelibmpdTurn off an output device.libmpdTurn on an output device.libmpdToggle output device.libmpd,Retrieve information for all output devices.NoneE(c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone3 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 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.libmpdPClear 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 unportableNonelibmpd,Read sticker value for the object specified.libmpdVAdd sticker value to the object. Will overwrite existing stickers with the same name.libmpd|Delete 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.libmpdaSearch 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 unportableNone5libmpd/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.libmpd^Searches 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 unportableNonePlibmpd&Clear current error message in status.libmpd1Song metadata for currently playing song, if any.libmpd^Wait 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 unportableNoneqlibmpd*Clear the current error message in status.libmpdGet the currently playing song.libmpdLWait 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 unportableNoneAlibmpd!Get a list of available commands.libmpd[Get 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.libmpdWGet 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 unportableNonelibmpd&Retrieve a list of available commands.libmpdERetrieve a list of unavailable (due to access restrictions) commands.libmpd+Retrieve a list of available song metadata.libmpd)Retrieve a list of supported urlhandlers.libmpdIRetreive a list of decoder plugins with associated suffix and mime types.libmpd'Retrieve configuration keys and values. (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone 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.libmpdfSet MixRamp overlap threshold. 0dB is the normalized maximum value; use negative values to adjust it.sSongs 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 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        "(c) Joachim Fasting 2014MITjoachifm@fastmail.fmstable unportableNoneM  (c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNone B libmpdLGet 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.ONote that the optional artist value is only ever used if the metadata type is F, 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.libmpdSUpdate 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.L  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.$libmpdFList 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.pIf 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 unportableNoneG+libmpd: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.0libmpdDelete song by id.1libmpd'Move song from one position to another.2libmpdMove a range of songs.3libmpd[Move song id to position. If the position is negative, it is relative to the current song.4libmpd4Find songs in current playlist with strict matching.5libmpduGet song metadata for all items in the current playlist. Optionally restrict listing the song at the given position.6libmpdLike 5/ but can restrict listing to a range of songs.7libmpdlGet song metadata for all items in the current playlist. Optionally restrict selection to a single song id.8libmpdBSearch case-insensitively for partial matches in current playlist.9libmpd`Get song metadata for items that have changed in the playlist since the given playlist version.:libmpdcGet 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.=libmpdGShuffle 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.Alibmpd(Remove tag from specified (remote) song.BlibmpdsSpecify portion of song that shall be played. Both ends of the range are optional; omitting both plays everything.+,-./0123456789:;<=>?@AB+,-./0132456789:;<=>?@AB$0(c) Ben Sinclair 2005-2009, Joachim Fasting 2012MIT (see LICENSE)joachifm@fastmail.fmstable unportableNone>dAClibmpdLike D, but returns a playlist id.Dlibmpd:Add a song (or a whole directory) to the current playlist.ElibmpdClear the current playlist.Flibmpd(Remove a song from the current playlist.Glibmpd(Remove a song from the current playlist.Hlibmpd8Move a song to a given position in the current playlist.IlibmpdMove 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).JlibmpdRetrieve 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 L instead.Klibmpd>Search for songs in the current playlist with strict matching.Llibmpd4Retrieve metadata for songs in the current playlist.MlibmpdLike L& but can restrict to a range of songs.NlibmpdYDisplays a list of songs in the playlist. If id is specified, only its info is returned.OlibmpdRSearch case-insensitively with partial matches for songs in the current playlist.Plibmpd[Retrieve a list of changed songs currently in the playlist since a given playlist version.QlibmpdLike P$ but only returns positions and ids.Rlibmpd(Set the priority of the specified songs.SlibmpdSet priority by song id.TlibmpdShuffle the playlist.Ulibmpd Swap the positions of two songs.Vlibmpd,Swap the positions of two songs (Id version)WlibmpdAdd tag to (remote) song.XlibmpdRemove tag from (remote) song.YlibmpdsSpecify portion of song that shall be played. Both ends of the range are optional; omitting both plays everything.TlibmpdOptional range (start, end)CDEFGHIJKLMNOPQRSTUVWXY(c) Joachim Fasting 2013MITjoachifm@fastmail.fmstable unportableNoneeZ[\]^_`[Z\]^_`%(c) Joachim Fasting 2013MIT (see LICENSE)joachifm@fastmail.fmstable unportableNonegZ[abcde&(c) Joachim Fasting 2012MITjoachifm@fastmail.fmstable unportableNoneh-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*CDEFGHIJKLMNOPQRSTUVWXYZ[abcde(c) Joachim Fasting 2012MIT&Joachim Fasting <joachifm@fastmail.fm>unstable unportableNone|J flibmpdThis is exactly the same as ).glibmpd%Toggles play/pause. Plays if stopped.hlibmpdRAdd a list of songs/folders to a playlist. Should be more efficient than running D many times.ilibmpd Recursive C. 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.jlibmpdLike D' but returns a list of the files added.klibmpdLike ' but returns a list of the files added.llibmpd!List the artists in the database.mlibmpdEList the albums in the database, optionally matching a given artist.nlibmpd*List the songs in an album of some artist.olibmpd.Retrieve the current playlist. Equivalent to playlistinfo Nothing.plibmpdIncrease 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. fghijklmnop fghijklmnop&(c) Joachim Fasting, Simon Hengel 2012MIT&Joachim Fasting <joachifm@fastmail.fm>unstable unportableNoneqlibmpdA 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: KwithMPD $ play Nothing withMPD $ add_ "tool" >> play Nothing >> currentSongrlibmpdSame as qD, 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 q.'s defaults if those arguments are not given.rlibmpdoptional override for MPD_HOSTlibmpdoptional override for MPD_PORT  -./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*CDEFGHIJKLMNOPQRSTUVWXYZ[abcdeqr qr ~}yz{|mnopqrstuvwxijklefghabcd\]^_`TUVWXYZ[OPSEQRFGHIJKLMN/0123456789:;<=>?@ABCDCDEFGHIJKLMNOPQRSTUVWXY !"#$%&'()*-.[Zabcde None}h)*+,    +,-./0123456789:;<=>?@ABZ[\]^_`)*'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUTUVVWXYZ[\]^_`abcdefghijkllmnopqrsttuuvwwxyz{|}~~  !!!!!!!! """"        ###########     $ $$ $ $ $$$ $$$$$$$$$$$$$$$!"#$%&'%#%$%%%&%'()*+,-./0123456789:;<=>?@ABCDEFKGHRIJEKLMNORPMQRSQTUVWXYZ[k\]^_`abcdefgh&libmpd-0.9.0.10-L0FFkF14jMWJQUvAdOHpSB 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-FeIQ5tLoVZBHMSgrT9zptQData.Default.ClassdefACKTypeInvalidArgumentInvalidPasswordAuthUnknownCommand FileNotFound PlaylistMaxSystem PlaylistLoadBusy NotPlaying FileExists UnknownACKMPDErrorNoMPDConnectionError UnexpectedCustomACKMonadMPDopenclosesend getPassword setPassword getVersionPasswordResponseMPDPortHost withMPDExkill getResponse $fMonadMPDMPD$fApplicativeMPD $fFunctorMPD $fMonadMPD $fMonadIOMPD$fMonadErrorMPDCommand runCommandpasswordpingStatusstStatestVolumestRepeatstRandomstPlaylistVersionstPlaylistLength stSongPosstSongID stNextSongPos stNextSongIDstTime stBitrate stXFadeWidth stMixRampdBstMixRampDelaystAudio stUpdatingDbstSingle stConsumestErrorVolumeStats 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=?<&>nextpauseplayplayIdpreviousseekseekIdstop 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 splitGroupsMPDState isRetryableisResourceVanishedParser liftParser emptyResponse unexpected commandParsercommandRequest runParserMPDArgArgs<++><@>prepbase GHC.MaybeNothingGHC.BaseString text-1.2.3.1Data.Text.InternalTextbytestring-0.10.8.2Data.ByteString.Internal ByteString defaultSong parseCount parseOutputs parseStats parseSongparsepairparseMaybeSong takeEntries takeSongs takeValues decodePair