miniBill / elm-html-with-context / Html.WithContext.Keyed

ul : List (Html.WithContext.Attribute context msg) -> List ( String, Html.WithContext.Html context msg ) -> Html.WithContext.Html context msg

ol : List (Html.WithContext.Attribute context msg) -> List ( String, Html.WithContext.Html context msg ) -> Html.WithContext.Html context msg

node : String -> List (Html.WithContext.Attribute context msg) -> List ( String, Html.WithContext.Html context msg ) -> Html.WithContext.Html context msg

Works just like Html.node, but you add a unique identifier to each child node. You want this when you have a list of nodes that is changing: adding nodes, removing nodes, etc. In these cases, the unique identifiers help make the DOM modifications more efficient.