Find first SO chat message in Haskell I have made some simple functions to find the first SO chat message. How can I improve my code?

Even if there is a stackoverflow link that will get the job done (I'd be glad to know), I'd like to improve upon my already written code. 

import Network.HTTP
import Text.Regex.Posix

type UserID      = String
type MessageLink = String
type PageNumber  = Integer

findLast :: UserID -&gt; IO MessageLink
findLast = searchLast 1 "Not found" 

searchLast :: PageNumber -&gt; MessageLink -&gt; UserID -&gt; IO MessageLink 
searchLast pg lnk id = do

    let link = "http://chat.stackoverflow.com/users/" ++
               id ++ "?tab=recent&amp;page=" ++ show pg 

    c &lt;- simpleHTTP (getRequest link) &gt;&gt;= getResponseBody

    let match = c =~ "/transcript/[^\"]+" :: [[String]]

    if null (c =~ "monologue" :: String)
        then return $ "http://chat.stackoverflow.com" ++ lnk
        else searchLast (pg + 1) (head . last $ match) id
Avoid partial functions like head and last.
http://chat.stackoverflow.com is repeated twice in searchLast. Maybe throw it into its own let-binding to make the function more DRY.