type Model = | Counter(Int) fn getCount(m: Model): Int = match m { Counter(n) => n, } fn init(): Model = Counter(0) type Msg = | Increment | Decrement | Reset fn update(model: Model, msg: Msg): Model = match msg { Increment => Counter(getCount(model) + 1), Decrement => Counter(getCount(model) - 1), Reset => Counter(0), } fn view(model: Model): String = { let count = getCount(model) "