To be precise, the sets of instances differ. Eg. the Char8 module
exports the IsString instance, which normal Data.ByteString.Lazy doesn't.

On 05/04/15 15:25, Ivan Lazar Miljenovic wrote:
> On 5 April 2015 at 22:25, Roman Cheplyaka <r...@ro-che.info> wrote:
>> Data.ByteString.Lazy.Char8 exports the same lazy bytestring type as
>> Data.ByteString.Lazy. Only functions and instances differ.
> 
> Well, *instances* can't differ...
> 
>>
>> On 05/04/15 15:19, Daniel Trstenjak wrote:
>>>
>>> Hi,
>>>
>>> I'm getting the compile error:
>>>
>>> Gamgine/Image/PNG/Internal/Parser.hs:14:10:
>>>     Functional dependencies conflict between instance declarations:
>>>       instance Monad m => Stream LB.ByteString m Word8
>>>         -- Defined at Gamgine/Image/PNG/Internal/Parser.hs:14:10
>>>       instance Monad m => Stream LB.ByteString m Char
>>>         -- Defined in ‘Text.Parsec.Prim’
>>>
>>>
>>>
>>> The relevant stuff from the parsec 3.1.9 code[1] is:
>>>
>>> {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, 
>>> FlexibleContexts, UndecidableInstances #-}
>>>
>>> ...
>>>
>>> import qualified Data.ByteString.Lazy.Char8 as CL
>>> import qualified Data.ByteString.Char8 as C
>>>
>>> ...
>>>
>>> class (Monad m) => Stream s m t | s -> t where
>>>     uncons :: s -> m (Maybe (t,s))
>>>
>>> instance (Monad m) => Stream CL.ByteString m Char where
>>>     uncons = return . CL.uncons
>>>
>>> instance (Monad m) => Stream C.ByteString m Char where
>>>     uncons = return . C.uncons
>>>
>>>
>>>
>>> And from my code[2] is:
>>>
>>> {-# LANGUAGE BangPatterns, FlexibleInstances, MultiParamTypeClasses, 
>>> FlexibleContexts #-}
>>>
>>> ...
>>>
>>> import qualified Data.ByteString.Lazy as LB
>>>
>>> ...
>>>
>>> instance (Monad m) => Stream LB.ByteString m Word8 where
>>>     uncons = return . LB.uncons
>>>
>>>
>>>
>>> As you can see, the instances are for different ByteString types,
>>> therefore I don't quite get where GHC sees here any conflicts.
>>>
>>>
>>> Greetings,
>>> Daniel
>>>
>>>
>>> [1] https://github.com/aslatter/parsec/blob/master/Text/Parsec/Prim.hs
>>> [2] 
>>> https://github.com/dan-t/Gamgine/blob/master/Gamgine/Image/PNG/Internal/Parser.hs
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> haskell-c...@haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> haskell-c...@haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> 
> 
> 

_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users

Reply via email to