Why are duplicate imports allowed in the first place?

On Friday, August 19, 2016 at 2:20:50 AM UTC-5, Martin Janiczek wrote:
>
> Hello,
>
> I've been stumped by a compiler error which I can't figure out. I think 
> it's a compiler bug. (I'd like to maybe help fix that and contribute a PR - 
> even though it might get incorporated into elm-compiler waaaay later or not 
> at all, I could have my own elm-compiler and continue on the project :) )
>
> import Fuzz exposing (Fuzzer)
> import Random.Pcg as Random
> import Random.Extra as Random
> import Shrink
>
>
> type alias Op op =
>     { generator : Random.Generator op }
>
>
> opsFuzzer : List (Op op) -> Fuzzer (List op)
> opsFuzzer ops =
>     Fuzz.custom
>         (Random.together (List.map .generator ops))
>         (Shrink.list Shrink.noShrink)
>
>
> -- TYPE MISMATCH ----------------------------------------------------- src
> /A.elm
>
> The type annotation for `opsFuzzer` does not match its definition.
>
> 21| opsFuzzer : List (Op op) -> Fuzzer (List op)
>                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> The type annotation is saying:
>
>     List { generator : Random.Generator b } -> Fuzzer (List b)
>
> But I am inferring that the definition has this type:
>
>     List { generator : Random.Generator a } -> Fuzzer (List b)
>
> -- TYPE MISMATCH ----------------------------------------------------- src
> /A.elm
>
> The 1st argument to function `custom` is causing a mismatch.
>
> 23|     Fuzz.custom
> 24|>        (Random.together (List.map .generator ops))
> 25|         (Shrink.list Shrink.noShrink)
>
> Function `custom` is expecting the 1st argument to be:
>
>     Random.Generator a
>
> But it is:
>
>     Random.Generator (List a)
>
> Detected errors in 1 module.
>
> (The larger codebase is here: 
> https://github.com/Janiczek/elm-test/commit/9b8323d4721cea0f0420c1440d31b79989b7528a
> )
>
> The compiler is telling me my types don't match but I think they do (even 
> by substituting the types by hand).
> Does anybody have any idea on what to do with this?
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to