13
Estoy tratando de obtener el tamaño de archivo como Real World Haskell recomienda:tamaño del archivo en Haskell
getFileSize :: FilePath -> IO (Maybe Integer)
getFileSize path = handle (\_ -> return Nothing)
$ bracket (openFile path ReadMode) (hClose) (\h -> do size <- hFileSize h
return $ Just size)
Y me da este error:
Ambiguous type variable `e0' in the constraint:
(GHC.Exception.Exception e0) arising from a use of `handle'
Probable fix: add a type signature that fixes these type variable(s)
In the expression: handle (\ _ -> return Nothing)
In the expression:
handle (\ _ -> return Nothing)
$ bracket
(openFile path ReadMode)
(hClose)
(\ h
-> do { size <- hFileSize h;
return $ Just size })
In an equation for `getFileSize':
getFileSize path
= handle (\ _ -> return Nothing)
$ bracket
(openFile path ReadMode)
(hClose)
(\ h
-> do { size <- hFileSize h;
return $ Just size })
pero no puedo cifra qué está pasando.
Tenga en cuenta que la razón de esto es que Real World Haskell fue escrito antes de 'Control.Exception' fue renovado en' versión base' 4. (La interfaz anterior está en desuso, pero todavía está disponible en 'Control.OldException'). – hammar
Puede acortar esto al activar 'ScopedTypeVariables' -' (\ (_ :: SomeException) -> return Nothing) '. –