How to break Dependency Cycles?

import User exposing (User)

type Model =
    Maybe User

type Msg =
    UserSpecific User.Msg
    Login String String

update : Msg -> Model -> (Model,Cmd Msg)
update msg =
    case msg of
        UserSpecific userMsg ->
            User.update userMsg
        Login name pass ->
            Debug.todo "login user"
import Main exposing (Msg)

type User =

type Msg =
updateUser : Msg -> User -> (Model,Cmd Msg)

viewUser : User -> Html Msg


How to break out of the dependency cycles?


  1. Isolate the elements that both of the source modules need access to.

  2. Move the shared elements into a new module.

  3. Make the source module depend on the new Module.

Further Reading

Last updated