module Control.Category.Printf.String 
       (module Control.Category.Printf
       , printf
       , printfLn
       , hPrintf
       , hPrintfLn
       ) where

import Control.Comonad
import Control.Category.Printf
import System.IO (Handle, hPutStr, hPutStrLn)

printf :: Format String (IO ()) b -> b
printf = printfWith putStr

printfLn :: Format String (IO ()) b -> b
printfLn = printfWith putStrLn

hPrintf :: Handle -> Format String (IO ()) b -> b
hPrintf h = printfWith (hPutStr h)

hPrintfLn :: Handle -> Format String (IO ()) b -> b
hPrintfLn h = printfWith (hPutStrLn h)