module NotSoRandom exposing (main) import RandomNumbersUI import Random exposing (Seed) main : Program Flags Model Msg main = RandomNumbersUI.makeElement (always (initModel, Cmd.none)) update (MouseClick, Reset, Noop) [] type alias Flags = () type Msg = Noop | Reset | MouseClick type alias Model = { seed: Seed, randomNumbers: List Int } initModel = { seed = Random.initialSeed 17, randomNumbers = [] } update : Msg -> Model -> (Model, Cmd Msg) update msg model = case msg of Noop -> (model, Cmd.none) Reset -> (initModel, Cmd.none) MouseClick -> let (i, newSeed) = Random.step (Random.int 1 10) model.seed in let randomNumbers = i :: model.randomNumbers in ({ seed = newSeed, randomNumbers = randomNumbers }, Cmd.none)