desencadenar una acción desde la función de actualización

Tengo un problema con suerte simple. Cuando recibo la acción A en mi función de actualización, me gustaría devolver una tarea que hace algunas cosas y luego da como resultado la acción B, que es recibida por la función de actualización nuevamente. Entiendo que los efectos que se devuelven de la actualización serán ejecutados por startapp, pero parece que no sucede nada. Aquí hay un ejemplo reducido:

import StartApp exposing (start)
import Effects
import Task
import Html exposing (..)
import Html.Events exposing (..)

main =
  (start
    { init = init
    , update = update
    , view = view
    , inputs = []
    }).html


type Action
    = Click
    | Dummy

type alias Model =
    { clicks: Int
    }


init : (Model, Effects.Effects Action)
init = (Model 0, Effects.none)

update : Action -> Model -> (Model, Effects.Effects Action)
update action model =
  case action of
    Click ->
      -- the click is received.
      (model, Effects.task (Task.succeed Dummy))
    Dummy ->
      -- this never happens!!
      ({ model | clicks = model.clicks + 1}, Effects.none)


view : Signal.Address Action -> Model -> Html
view address model =
  let start = button [ onClick address Click ] [ text (toString model.clicks) ]
  in
      div [] ([start])

Respuestas a la pregunta(1)

Su respuesta a la pregunta