Create memory-backed 'Handle's, referencing virtual files. This is mostly useful for testing 'Handle'-based APIs without having to interact with the filesystem.
> import Data.ByteString (pack) > import Data.Knob > import System.IO > > main = do > knob <- newKnob (pack []) > h <- newFileHandle knob "test.txt" WriteMode > hPutStrLn h "Hello world!" > hClose h > bytes <- Data.Knob.getContents knob > putStrLn ("Wrote bytes: " ++ show bytes).