[Haskell-beginners] Compile type Error
Rafael Gustavo da Cunha Pereira Pinto
RafaelGCPP.Linux at gmail.com
Thu Jan 29 11:19:38 EST 2009
I didn't compile, but, by the looks of it, I would change
import qualified Data.ByteString as BS (readFile)
for
import qualified Data.ByteString.Lazy as BS (readFile)
as it seems sha1 needs a lazy bytestring
On Thu, Jan 29, 2009 at 13:25, emmanuel.delaborde <
emmanuel.delaborde at cimex.com> wrote:
> Hello
>
> I have the following snippet :
>
> ----------------------------------------------------------
>
> module Main where
>
> import System.Environment (getArgs)
> import Data.Digest.OpenSSL.MD5 (md5sum)
> import Data.Digest.Pure.SHA (sha1, showDigest)
> import qualified Data.ByteString as BS (readFile)
>
> -- sha1 :: ByteString -> Digest
> -- readFile :: FilePath -> IO ByteString
> -- md5sum :: ByteString -> String
> -- showDigest :: Digest -> String
>
> checkHash :: String -> String -> String -> IO ()
> checkHash codec hash file =
> let f = case codec of
> --"md5" -> md5sum
> "sha1" -> showDigest . sha1
> _ -> error "Codec must be md5 or sha1 !" in
> BS.readFile file >>= \fileBS ->
> let fileHash = f fileBS in
> print (hash == fileHash)
>
> main =
> getArgs >>= \as ->
> case as of
> (codec:hash:file:_) -> checkHash codec hash file
> _ -> usage
>
> usage = print "checksum codec hash file"
>
> ----------------------------------------------------------
>
> which fails to compile, this is the error I get :
>
>
> checksum.hs:20:19:
> Couldn't match expected type `Data.ByteString.Lazy.Internal.ByteString'
> against inferred type `Data.ByteString.Internal.ByteString'
> In the first argument of `f', namely `fileBS'
> In the expression: f fileBS
> In the definition of `fileHash': fileHash = f fileBS
>
>
>
>
> it looks like (showDigest . sha1) expects
> Data.ByteString.Lazy.Internal.ByteString but gets
> Data.ByteString.Internal.ByteString
>
> What can I do ?
>
> Thanks
>
> E.
>
>
>
>
>
>
>
>
> -----------------------------------------------------------------------------------------------
>
> This e-mail (and any attachments) is confidential and may containpersonal
> views which are not the views of Cimex Media Ltd andany affiliated
> companies, unless specifically stated. It is intendedfor the use of the
> individual or group to whom it is addressed. Ifyou have received it in
> error, please delete it from your system,do not use, copy or disclose the
> information in any way nor act inreliance on it and please notify
> postmaster at cimex.com
>
> A company registered in England Wales. Company Number 03765711
> Registered Office : The Olde Bakehouse, 156 Watling Street East, Towcester,
> Northants NN12 6DB
>
> This email was scanned by Postini, the leading provider in Managed Email
> Security.
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
--
Rafael Gustavo da Cunha Pereira Pinto
Electronic Engineer, MSc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20090129/2bcbe134/attachment-0001.htm
More information about the Beginners
mailing list