r7      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456None(+,=Lastfm API request data typea% is the authentication state. Can be , which means this  is ready to be sent, or 3, if the request signature hasn't been computed yetf1 is the response format (liblastfm supports both  and )'Request that requires signing procedure Request that is ready to be sent#Response format: either JSON or XMLLastfm API request data typelow-level representation,Construct String from request for networkingWrapping to interesting 7 ( ->  ) instanceUnwrapping from interesting 7 ( ->  ) instance8Absorbing a bunch of queries, useful in batch operations,Transforming Request to the "array notation"8 Empty request   HTTP     string 89:;<=>    89:;<=>None(+68Lastfm connection managerApplication secret/Different ways last.fm response can be unusablewrapped http-conduit exception%last.fm error code and message stringGlast.fm thinks it responded with something legible, but it really isn't! provides parsing for the chosen  is parsed to ? type from aeson, while  is parsed to @ from xml-conduit This is a  Prism'  A  in disguise This is a  Prism'  (B, C)  in disguise  This is a  Prism'    in disguise! Sign the  with the  so it's ready to be sentD/Get supplied string md5 hash hex representation"QCreating an HTTPS connection manager is expensive; it's advised to use a single $ for all communications with last.fm# Create a $Close a % Perform the  and parse the response& Perform the  ignoring any responsesE Send the  and parse the Response with the supplied parserFGet the  from the G Admittedly, this isn't the best H instance ever but not having H  does not leave much a choice%IJKLMNOP !QRD"#$%&EFSTUVGWX !"#$%&!"#$%& IJKLMNOP !QRD"#$%&EFSTUVGWXNone(24BlChange request API methodKPrimarily used in API call wrappers, not intended for usage by library usermChange html _method to GETKPrimarily used in API call wrappers, not intended for usage by library usernChange html _method to POSTKPrimarily used in API call wrappers, not intended for usage by library usero"Change API response format to JSONLThis is a little helper. It's actually enough to specialize Format manuallyp!Change API response format to XMLLThis is a little helper. It's actually enough to specialize Format manuallyqChange request API keyrChange request session keysAdd token parametertAdd callback link parameteruAdd artist parametervAdd artists parameterwAdd album parameterxAdd MBID parameteryAdd country parameterzAdd language parameter{Add tags parameter|Add tag parameter}Add autocorrect parameter~Add page parameterAdd limit parameterAdd message parameterAdd public parameterAdd recipient parameterAdd username parameterAdd user parameterAdd password parameterAdd status parameterAdd event parameterAdd festivalsonly parameterAdd longitude parameterAdd latitude parameterAdd location parameterAdd distance parameterAdd venue parameterAdd venue parameterAdd metro parameterAdd start parameterAdd end parameterAdd startTimestamp parameterAdd endTimestamp parameterAdd from parameterAdd to parameterAdd track parameterAdd timestamp parameterAdd playlistID parameterAdd title parameterAdd description parameterAdd fingerprint parameterAdd albumArtist parameterAdd context parameterAdd streamId parameterAdd duration parameterAdd trackNumber parameterAdd chosenByUser parameterAdd taggingType parameterAdd recentTracks parameterAdd useRecs parameterAdd group parameterAdd multiplier parameterAdd bitrate parameterAdd name parameterAdd station parameterAdd group parameterAdd rtp parameterAdd buyLinks parameterAdd comparison parameter'Y()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkZ[\lmnopqrstuvwxyz{|}~]^_`ab'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~lnmopkqjrishtguvfwexdya}TUXWVIH7czORQPMLSKJNb{|DCBA>=GFE<@?:\[ZY]^`~_;965,+*243/10.-'8)('Y()*+,-./1024356789:;<=>?@ABCDEFGHIJKLMNOPQRSTUXWVYZ[\]^_`abcdefghijkZ[\lmnopqrstuvwxyz{|}~]^_`abNone(23468 Unify (g -> f -> &) and (e -> &)0Tag an album using a list of user supplied tags. )http://www.last.fm/api/show/album.addTagsGet a list of Buy Links for a particular Album. It is required that you supply either the artist and track params or the mbid parameter. Optional: } -http://www.last.fm/api/show/album.getBuylinksGet the metadata for an album on Last.fm using the album name or a musicbrainz id. See playlist.fetch on how to get the album playlist. Optional: }, , z )http://www.last.fm/api/show/album.getInfoGet shouts for this album. Optional: }, , ~ +http://www.last.fm/api/show/album.getShoutsBGet the tags applied by an individual user to an album on Last.fm. Optional: },  )http://www.last.fm/api/show/album.getTags@Get the top tags for an album on Last.fm, ordered by popularity. Optional: } ,http://www.last.fm/api/show/album.getTopTags"Remove a user's tag from an album. +http://www.last.fm/api/show/album.removeTagGSearch for an album by name. Returns album matches sorted by relevance. Optional: , ~ (http://www.last.fm/api/show/album.search?Share an album with one or more Last.fm users or other friends. Optional: , ,  'http://www.last.fm/api/show/album.share cd cdNone(2346Unify (g -> &) and (e -> &)2Tag an artist with one or more user supplied tags. *http://www.last.fm/api/show/artist.addTagsmUse the last.fm corrections data to check whether the supplied artist has a correction to a canonical artist 0http://www.last.fm/api/show/artist.getCorrectionGet a list of upcoming events for this artist. Easily integratable into calendars, using the ical standard (see feeds section below). Optional: }, , pages,  ,http://www.last.fm/api/show/artist.getEvents3Get the metadata for an artist. Includes biography. Optional: z, },  *http://www.last.fm/api/show/artist.getInfoMGet a paginated list of all the events this artist has played at in the past. Optional: ~, },  0http://www.last.fm/api/show/artist.getPastEvents-Get a podcast of free mp3s based on an artist Optional: } -http://www.last.fm/api/show/artist.getPodcast:Get shouts for this artist. Also available as an rss feed. Optional:}, , ~ ,http://www.last.fm/api/show/artist.getShouts*Get all the artists similar to this artist Optional: , } -http://www.last.fm/api/show/artist.getSimilarmGet the tags applied by an individual user to an artist on Last.fm. If accessed as an authenticated service and you don't supply a user parameter then this service will return tags for the authenticated user. To retrieve the list of top tags applied to an artist by all users use . Optional: , } *http://www.last.fm/api/show/artist.getTagsCGet the top albums for an artist on Last.fm, ordered by popularity. Optional: }, ~,  /http://www.last.fm/api/show/artist.getTopAlbumsCGet the top fans for an artist on Last.fm, based on listening data. Optional: } -http://www.last.fm/api/show/artist.getTopFansAGet the top tags for an artist on Last.fm, ordered by popularity. Optional: } -http://www.last.fm/api/show/artist.getTopTagsAGet the top tracks by an artist on Last.fm, ordered by popularity Optional: }, ~,  /http://www.last.fm/api/show/artist.getTopTracks#Remove a user's tag from an artist. ,http://www.last.fm/api/show/artist.removeTagISearch for an artist by name. Returns artist matches sorted by relevance. Optional: , ~ )http://www.last.fm/api/show/artist.search4Share an artist with Last.fm users or other friends. Optional: ,  (http://www.last.fm/api/show/artist.shareShout in this artist's shoutbox (http://www.last.fm/api/show/artist.shoutefefNone(Get authorization tokenGet session keyGet session key8Construct link user should follow to approve applicationNone(Get the hyped artists chart Optional: ~,  1http://www.last.fm/api/show/chart.getHypedArtistsGet the top artists chart Optional: ~,  0http://www.last.fm/api/show/chart.getHypedTracksGet the most loved tracks chart Optional: ~,  0http://www.last.fm/api/show/chart.getLovedTracksGet the top artists chart Optional: ~,  /http://www.last.fm/api/show/chart.getTopArtistsGet the top artists chart Optional: ~,  ,http://www.last.fm/api/show/chart.getTopTagsGet the top tracks chart Optional: ~,  .http://www.last.fm/api/show/chart.getTopTracksNone(,Set a user's attendance status for an event. (http://www.last.fm/api/show/event.attend%Get a list of attendees for an event. Optional: ~,  .http://www.last.fm/api/show/event.getAttendeesUGet the metadata for an event on Last.fm. Includes attendance and lineup information. )http://www.last.fm/api/show/event.getInfo9Get shouts for this event. Also available as an rss feed. Optional: ~,  +http://www.last.fm/api/show/event.getShouts?Share an event with one or more Last.fm users or other friends. Optional: ,  'http://www.last.fm/api/show/event.shareShout in this event's shoutbox 'http://www.last.fm/api/show/event.shout None( >Get all events in a specific location by country or city name. Optional: , , , , ~, |, ,  )http://www.last.fm/api/show/geo.getEvents"Get a chart of artists for a metro Optional: , , ~,  3http://www.last.fm/api/show/geo.getMetroArtistChart8Get a chart of hyped (up and coming) artists for a metro Optional: , , ~,  7http://www.last.fm/api/show/geo.getMetroHypeArtistChart!Get a chart of tracks for a metro Optional: , , ~,  6http://www.last.fm/api/show/geo.getMetroHypeTrackChart!Get a chart of tracks for a metro Optional: , , ~,  2http://www.last.fm/api/show/geo.getMetroTrackChart7Get a chart of the artists which make that metro unique Optional: , , ~,  9http://www.last.fm/api/show/geo.getMetroUniqueArtistChart!Get a chart of tracks for a metro Optional: , , ~,  8http://www.last.fm/api/show/geo.getMetroUniqueTrackChartxGet a list of available chart periods for this metro, expressed as date ranges which can be sent to the chart services. 7http://www.last.fm/api/show/geo.getMetroWeeklyChartlistIGet a list of valid countries and metros for use in the other webservices Optional: y )http://www.last.fm/api/show/geo.getMetros2Get the most popular artists on Last.fm by country Optional: , ~ -http://www.last.fm/api/show/geo.getTopArtists;Get the most popular tracks on Last.fm last week by country Optional: , ~ ,http://www.last.fm/api/show/geo.getTopTracks None(Get the hype list for a group )http://www.last.fm/api/show/group.getHype%Get a list of members for this group. Optional: ~,  ,http://www.last.fm/api/show/group.getMembersGet an album chart for a group, for a given date range. If no date range is supplied, it will return the most recent album chart for this group. Optional: ,  5http://www.last.fm/api/show/group.getWeeklyAlbumChartGet an artist chart for a group, for a given date range. If no date range is supplied, it will return the most recent album chart for this group. Optional: ,  6http://www.last.fm/api/show/group.getWeeklyArtistChartqGet a list of available charts for this group, expressed as date ranges which can be sent to the chart services. 4http://www.last.fm/api/show/group.getWeeklyChartListGet a track chart for a group, for a given date range. If no date range is supplied, it will return the most recent album chart for this group. Optional: ,  5http://www.last.fm/api/show/group.getWeeklyTrackChart None( @Add an album or collection of albums to a user's Last.fm library ,http://www.last.fm/api/show/library.addAlbumWhat artist to add to library?)Add an artist to a user's Last.fm library -http://www.last.fm/api/show/library.addArtistWhat album to add to library?'Add a track to a user's Last.fm library ,http://www.last.fm/api/show/library.addTrackXA paginated list of all the albums in a user's library, with play counts and tag counts. Optional: u, , ~ -http://www.last.fm/api/show/library.getAlbumsYA paginated list of all the artists in a user's library, with play counts and tag counts. Optional: , ~ .http://www.last.fm/api/show/library.getArtistsXA paginated list of all the tracks in a user's library, with play counts and tag counts. Optional: u, w, ~,  -http://www.last.fm/api/show/library.getTracks-Remove an album from a user's Last.fm library /http://www.last.fm/api/show/library.removeAlbum.Remove an artist from a user's Last.fm library 0http://www.last.fm/api/show/library.removeArtist/Remove a scrobble from a user's Last.fm library 2http://www.last.fm/api/show/library.removeScrobble,Remove a track from a user's Last.fm library /http://www.last.fm/api/show/library.removeTrack None((Add a track to a Last.fm user's playlist -http://www.last.fm/api/show/playlist.addTrack-Create a Last.fm playlist on behalf of a user Optional: ,  +http://www.last.fm/api/show/playlist.create None(7Fetch new radio content periodically in an XSPF format. Optional: , ,  -http://www.last.fm/api/show/radio.getPlaylistjResolve the name of a resource into a station depending on which resource it is most likely to represent. (http://www.last.fm/api/show/radio.search#Tune in to a Last.fm radio station. Optional: z &http://www.last.fm/api/show/radio.tuneNone( Get the metadata for a tagOptional: language 'http://www.last.fm/api/show/tag.getInfo`Search for tags similar to this one. Returns tags ranked by similarity, based on listening data. *http://www.last.fm/api/show/tag.getSimilar<Get the top albums tagged by this tag, ordered by tag count. Optional: , ~ ,http://www.last.fm/api/show/tag.getTopAlbums=Get the top artists tagged by this tag, ordered by tag count. Optional: , ~ -http://www.last.fm/api/show/tag.getTopArtistsSFetches the top global tags on Last.fm, sorted by popularity (number of times used) *http://www.last.fm/api/show/tag.getTopTags<Get the top tracks tagged by this tag, ordered by tag count. Optional: , ~ ,http://www.last.fm/api/show/tag.getTopTracksGet an artist chart for a tag, for a given date range. If no date range is supplied, it will return the most recent artist chart for this tag. Optional: , ,  4http://www.last.fm/api/show/tag.getWeeklyArtistChartoGet a list of available charts for this tag, expressed as date ranges which can be sent to the chart services. 2http://www.last.fm/api/show/tag.getWeeklyChartList>Search for a tag by name. Returns matches sorted by relevance. Optional: , ~ &http://www.last.fm/api/show/tag.search    None(Get a Tasteometer score from two inputs, along with a list of shared artists. If the input is a user some additional information is returned. Optional:  /http://www.last.fm/api/show/tasteometer.compareNone(24Unify (g -> D -> &) and (e -> &)/Tag a track using a list of user supplied tags. )http://www.last.fm/api/show/track.addTags%Ban a track for a given user profile. %http://www.last.fm/api/show/track.ban /Get a list of Buy Links for a particular track. Optional: } -http://www.last.fm/api/show/track.getBuylinks lUse the last.fm corrections data to check whether the supplied track has a correction to a canonical track. /http://www.last.fm/api/show/track.getCorrection Retrieve track metadata associated with a fingerprint id generated by the Last.fm Fingerprinter. Returns track elements, along with a rank@ value between 0 and 1 reflecting the confidence for each match. 8http://www.last.fm/api/show/track.getFingerprintMetadata (Get the metadata for a track on Last.fm. Optional: },  )http://www.last.fm/api/show/track.getInfo 9Get shouts for this track. Also available as an rss feed. Optional: }, , ~ +http://www.last.fm/api/show/track.getShoutsJGet the similar tracks for this track on Last.fm, based on listening data. Optional: },  ,http://www.last.fm/api/show/track.getSimilarAGet the tags applied by an individual user to a track on Last.fm. Optional: },  )http://www.last.fm/api/show/track.getTagsDGet the top fans for this track on Last.fm, based on listening data. Optional: } ,http://www.last.fm/api/show/track.getTopFansAGet the top tags for this track on Last.fm, ordered by tag count. Optional: } ,http://www.last.fm/api/show/track.getTopTags Love a track for a user profile. &http://www.last.fm/api/show/track.love!Remove a user's tag from a track. +http://www.last.fm/api/show/track.removeTag&Add played tracks to the user profile. Scrobbles 50 first list elements *http://www.last.fm/api/show/track.scrobbleWhat track to scrobble? Optional: w, , , , , x, , LSearch for a track by track name. Returns track matches sorted by relevance. Optional: u, , ~ (http://www.last.fm/api/show/track.search?Share a track twith one or more Last.fm users or other friends. Optional: , ,  'http://www.last.fm/api/show/track.share!Unban a track for a user profile. 'http://www.last.fm/api/show/track.unban"Unlove a track for a user profile. (http://www.last.fm/api/show/track.unloveiUsed to notify Last.fm that a user has started listening to a track. Parameter names are case sensitive. Optional: w, , , , x,  2http://www.last.fm/api/show/track.updateNowPlaying     gh               ghNone(Get a list of tracks by a given artist scrobbled by this user , including scrobble time. Can be limited to specific timeranges, defaults to all time. Optional: , ~,  0http://www.last.fm/api/show/user.getArtistTracks%Returns the tracks banned by the user Optional: , ~ 0http://www.last.fm/api/show/user.getBannedTracksGet a list of upcoming events that this user is attending. Easily integratable into calendars, using the ical standard (see 'more formats' section below). Optional: ~, ,  *http://www.last.fm/api/show/user.getEvents,Get a list of the user's friends on Last.fm. Optional:  recenttracks, , ~ +http://www.last.fm/api/show/user.getFriends%Get information about a user profile. (http://www.last.fm/api/show/user.getInfo 'Get the last 50 tracks loved by a user. Optional: , ~ /http://www.last.fm/api/show/user.getLovedTracks!-Get a list of a user's neighbours on Last.fm. Optional:  .http://www.last.fm/api/show/user.getNeighbours"DGets a list of forthcoming releases based on a user's musical taste. Optional: userecs /http://www.last.fm/api/show/user.getNewReleases#CGet a paginated list of all events a user has attended in the past. Optional: ~,  .http://www.last.fm/api/show/user.getPastEvents$Get the user's personal tags Optional:  taggingtype, , ~ 0http://www.last.fm/api/show/user.getPersonalTags%,Get a list of a user's playlists on Last.fm. -http://www.last.fm/api/show/user.getPlaylists&;Get a list of the recent Stations listened to by this user. Optional: , ~ 2http://www.last.fm/api/show/user.getRecentStations'Get a list of the recent tracks listened to by this user. Also includes the currently playing track with the nowplaying="true" attribute if the user is currently listening. Optional: , ~, , extended,  0http://www.last.fm/api/show/user.getRecentTracks(-Get Last.fm artist recommendations for a user Optional: ~,  6http://www.last.fm/api/show/user.getRecommendedArtists)fGet a paginated list of all events recommended to a user by Last.fm, based on their listening profile. Optional: , ~, , , , y 5http://www.last.fm/api/show/user.getRecommendedEvents*8Get shouts for this user. Also available as an rss feed. Optional: ~,  *http://www.last.fm/api/show/user.getShouts+oGet the top albums listened to by a user. You can stipulate a time period. Sends the overall chart by default. Optional: period, , ~ -http://www.last.fm/api/show/user.getTopAlbums,pGet the top artists listened to by a user. You can stipulate a time period. Sends the overall chart by default. Optional: period, , ~ .http://www.last.fm/api/show/user.getTopArtists-#Get the top tags used by this user. Optional:  +http://www.last.fm/api/show/user.getTopTags.oGet the top tracks listened to by a user. You can stipulate a time period. Sends the overall chart by default. Optional: period, , ~ -http://www.last.fm/api/show/user.getTopTracks/Get an album chart for a user profile, for a given date range. If no date range is supplied, it will return the most recent album chart for this user. Optional: ,  4http://www.last.fm/api/show/user.getWeeklyAlbumChart0Get an artist chart for a user profile, for a given date range. If no date range is supplied, it will return the most recent artist chart for this user. Optional: ,  5http://www.last.fm/api/show/user.getWeeklyArtistChart1pGet a list of available charts for this user, expressed as date ranges which can be sent to the chart services. 3http://www.last.fm/api/show/user.getWeeklyChartList2Get a track chart for a user profile, for a given date range. If no date range is supplied, it will return the most recent track chart for this user. Optional: ,  4http://www.last.fm/api/show/user.getWeeklyTrackChart3Shout on this user's shoutbox &http://www.last.fm/api/show/user.shout !"#$%&'()*+,-./0123 !"#$%&'()*+,-./0123 !"#$%&'()*+,-./0123 !"#$%&'()*+,-./0123None(4,Get a list of upcoming events at this venue. Optional:  +http://www.last.fm/api/show/venue.getEvents5FGet a paginated list of all the events held at this venue in the past. Optional: , ~,  /http://www.last.fm/api/show/venue.getPastEvents6 Search for a venue by venue name Optional: ~, , y (http://www.last.fm/api/show/venue.search456456456456Noneijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*++,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,$-.*/0123456789:;<=>?@ABCDEFGHIJKLMNMOMPMQMRMSMTMUMVMWMXMYMZM[M\M]M^M^M_M`MaMbMcMdMeMfMfgh'ijliblastfm-0.5.1Network.Lastfm.InternalNetwork.Lastfm.ResponseNetwork.Lastfm.RequestNetwork.Lastfm.AlbumNetwork.Lastfm.ArtistNetwork.Lastfm.AuthenticationNetwork.Lastfm.ChartNetwork.Lastfm.EventNetwork.Lastfm.GeoNetwork.Lastfm.GroupNetwork.Lastfm.LibraryNetwork.Lastfm.PlaylistNetwork.Lastfm.RadioNetwork.Lastfm.TagNetwork.Lastfm.TasteometerNetwork.Lastfm.TrackNetwork.Lastfm.UserNetwork.Lastfm.VenueC HttpExceptionNetwork.LastfmRequest unRequestSignReadyFormatXMLJSONR_host_method_querycoercerenderwrapunwrap absorbQuery indexedWithhostmethodquery ConnectionSecret LastfmErrorLastfmHttpErrorLastfmEncodedErrorLastfmBadResponse Supported_LastfmBadResponse_LastfmEncodedError_LastfmHttpErrorsignwithConnection newConnectioncloseConnectionlastfmlastfm_Targeted LibraryArtist LibraryAlbumBuyLinksRTP DiscoveryStationNameBitrateB128B64 MultiplierM2M1 VenueNameVenueGroupScrobbleUseRecs RecentTracks TaggingType ChosenByUser TrackNumberDurationStreamIdContext AlbumArtist Fingerprint TimestampTrack DescriptionTitlePlaylistToFrom EndTimestampStartTimestampEndStartMetroDistanceLocationLatitude Longitude FestivalsEventStatus NotAttendingMaybe AttendingPasswordUserUsername RecipientPublicMessageLimitPage AutocorrectTagLanguageCountryMBIDAlbumArtistCallbackToken SessionKeyAPIKeyapigetpostjsonxmlapiKey sessionKeytokencallbackartistartistsalbummbidcountrylanguagetagstag autocorrectpagelimitmessagepublic recipientusernameuserpasswordstatusevent festivalsonly longitudelatitudelocationdistancevenue venueNamemetrostartendstartTimestamp endTimestampfromtotrack timestampplaylisttitle description fingerprint albumArtistcontextstreamIdduration trackNumber chosenByUser taggingType recentTracksuseRecsgroup multiplierbitratenamestation discoveryrtpbuyLinks comparisonArtistAlbumOrMBIDaddTags getBuyLinksgetInfo getShoutsgetTags getTopTags removeTagsearchshare ArtistOrMBID getCorrection getEvents getPastEvents getPodcast getSimilar getTopAlbums getTopFans getTopTracksshoutgetTokengetMobileSession getSessionlinkgetHypedArtistsgetHypedTracksgetLovedTracks getTopArtistsattend getAttendeesgetMetroArtistChartgetMetroHypeArtistChartgetMetroHypeTrackChartgetMetroTrackChartgetMetroUniqueArtistChartgetMetroUniqueTrackChartgetMetroWeeklyChartlist getMetrosgetHype getMembersgetWeeklyAlbumChartgetWeeklyArtistChartgetWeeklyChartListgetWeeklyTrackChartaddAlbum albumItem addArtist artistItemaddTrack getAlbums getArtists getTracks removeAlbum removeArtistremoveScrobble removeTrackcreate getPlaylisttunecompareArtistTrackOrMBIDbangetFingerprintMetadatalovescrobbleitemunbanunloveupdateNowPlayinggetArtistTracksgetBannedTracks getFriends getNeighboursgetNewReleasesgetPersonalTags getPlaylistsgetRecentStationsgetRecentTracksgetRecommendedArtistsgetRecommendedEventsbase Data.MonoidMonoidremptybimap $fSerializeR$fTraversableRequest$fFoldableRequest$fApplicativeRequest$fFunctorRequest aeson-0.8.0.2Data.Aeson.Types.InternalValuexml-conduit-1.2.3Text.XMLDocumentbytestring-0.10.4.0Data.ByteString.Lazy.Internal ByteStringghc-prim GHC.TypesIntGHC.BaseStringmd5 lastfmWithfinalize$fEqLastfmError GHC.ClassesEq AsLastfmError _LastfmErrorprepareRequestparseResponseBodyparseResponseEncodedErrorparse authTokenapiSig$fIsStringSecret$fAsLastfmErrorSomeException$fAsLastfmErrorLastfmError$fExceptionLastfmError$fSupportedXMLDocument$fSupportedJSONValuetargetArgumentaddtoText$fTargetedUser $fTargeted[] $fArgument[]$fArgumentInt64$fArgumentBool$fArgumentText$fArtistAlbumOrMBIDr(->)$fArtistAlbumOrMBIDr(->)0$fArtistOrMBIDrArtist$fArtistOrMBIDrMBID$fArtistTrackOrMBID(->)$fArtistTrackOrMBID(->)0Control.Applicative<*>pure Alternative Applicativeempty<**>optionalliftA3liftA2liftA<**>manysome<|>getConstConst unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipList Data.Functor<$><$