If you need the old "wrapper" function, then use something like this: wrapper :: ([(String,String)] -> IO Html) -> IO () wrapper f = runCGI $ do e <- getInputs a <- lift $ f $ e output $ renderHtml a best regards, Johannes Waldmann.