Answer

Tasks in Elm 0.15 are executed by sending them through a port . That means that your Task or Signal Task needs to be available at the top-level in the Main module, because that's the only place where you can declare a port . This means that you cannot simply send a message to a mailbox in-line (that would be a side-effect), you'll have to make sure that the task can flow through your program to the port definition.

Example

import Html exposing (..) import Html.Attributes exposing (..) import Html.Extra exposing (..) import Signal import Model.PickList exposing (pickList) import Model.BabyName.Debug as Debug headerPane : Html headerPane = header [ id "header" ] [ text "header" ] leftPane : Signal Html leftPane = flip Signal.map (.signal pickList) <| \pl -> ul [] [ li [] [ fromElement << show <| pl ] ] mainPane : Html mainPane = section [ id "main" ] [ text "what? what?" ] layout : Signal Html layout = flip Signal.map leftPane <| \lp -> div [ id "wrapper" ] <| [ headerPane , lp , mainPane ] port toPicklist = Signal.send (.address pickList) Debug.dummyList main : Signal Html main = layout

Resources