scmPrint :: (ScmValue -> IO String) -> String
         -> Handle -> [ScmValue] -> IO (ErrOr ScmValue)
scmPrint f _ h [x] = f x >>= hPutStr h >> return (Right ScmVoid)
scmPrint :: (ScmValue -> IO String) -> String
         -> Handle -> [ScmValue] -> IO (ErrOr ScmValue)
scmPrint f _ h [x] = f x >>= hPutStr h >> return (Right ScmVoid)
scmPrint f _ h [x] = f x >>= hPutStr h >> return (Right ScmVoid)