To avoid the XY problem: I'm aiming to create a function that will take a
List (Maybe a) and return a Maybe (List a), where the result will be
Nothing if ANY of the (Maybe a)s are Nothing, otherwise it will be a list
of just the "a"s.

Here's where I'm getting tripped up in that quest, however: when I manually
combine a list of numbers (0 through 3) things work fine:

```elm
{-| This works -}
test =
    ((((Just 0) `Maybe.andThen` (\_ -> Just 1)) `Maybe.andThen` (\_ -> Just
2)) `Maybe.andThen` (\_ -> Just 3))
```

but when I try to use `foldr` and `andThen`, it fails:

```elm
{-| This does NOT work -}
test : Maybe number
test =
    let
        func =
            Maybe.andThen

        acc =
            (Just 0)

        list =
            [ (\_ -> Just 1), (\_ -> Just 2), (\_ -> Just 3) ]
    in
        List.foldr func acc list
```

I get the error:

```
The 3rd argument to function `foldr` is causing a mismatch:

Function `foldr` is expecting the 3rd argument to be:

    List (Maybe a)

But it is

    List (a -> Maybe number)
```

When I change it and remove the anonymous functions in the list (i.e.
```list = [ Just 1, Just 2, Just 3 ]```) I get a new error, which I believe
is leading me down a wrong path (Function `foldr` is expecting the 2nd
argument to be `a -> Maybe b` But it is `Maybe number`).

Any hints here? I've been hitting my head against the wall for a few hours.
Any help would be appreciated. (Is this an Elm bug?)

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to