scmOpenFile :: IOMode -> (Handle -> ScmValue) -> String
            -> [ScmValue] -> IO (ErrOr ScmValue)
scmOpenFile mode toPort _ [s] | isString s = do
   path <- strToList s
   fmap (Right . toPort) (openFile path mode)
scmOpenFile :: IOMode -> (Handle -> ScmValue) -> String
            -> [ScmValue] -> IO (ErrOr ScmValue)
scmOpenFile mode toPort _ [s] | isString s = do
   path <- strToList s
   fmap (Right . toPort) (openFile path mode)
scmOpenFile mode toPort _ [s] | isString s = do
   path <- strToList s
   fmap (Right . toPort) (openFile path mode)