That might solve the cursor issue, but it&#x27;s a bigger issue than cursor state.<p>The real issue is that Elm doesn&#x27;t treat its programmers like grown-ups.  That sounds harsh, so let me explain . . .<p>I&#x27;ve drank enough of the Haskell Kool-Aid to realize that, despite the surface discourse, Haskell is not about religious devotion to purity and lazy-evaluation.  It&#x27;s about managing side-effects, and being honest about them in your type signatures.  Yes, Haskell allows functional purity but its real genius lies in how well it helps you manage state.  (I did an imperative Algorithms course completely in Haskell, and the language really shines.  Mutable unboxed arrays, mutable atomic references . . . it&#x27;s all there when you really need it.)<p>Unfortunately, the folks driving Elm development take a paternalistic tack.  (If someone seeks to argue this point, it&#x27;s not hard to come up with many, many examples from the Elm mailing lists.)<p>Here&#x27;s a few examples:<p>-  Elm shouldn&#x27;t have type-classes because, allegedly, they are too hard for JS-folks to understand.  (<a href="https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!searchin&#x2F;elm-discuss&#x2F;type$20classes&#x2F;elm-discuss&#x2F;oyrODCgYmQI&#x2F;dfkIdosLHRQJ" rel="nofollow">https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!searchin&#x2F;elm-discuss&#x2F;type$...</a>)<p>- Elm doesn&#x27;t publish how you are supposed to write native modules (you must discern it from the code and it&#x27;s subject to change without notice), because Elm&#x27;s author thinks you can&#x27;t be trusted to use FFI wisely.  (<a href="https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!searchin&#x2F;elm-discuss&#x2F;native$20modules&#x2F;elm-discuss&#x2F;jUnFVY8tg7Q&#x2F;cr5lgpfgK10J" rel="nofollow">https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!searchin&#x2F;elm-discuss&#x2F;nativ...</a> and the can was kicked here: <a href="https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!searchin&#x2F;elm-dev&#x2F;native&#x2F;elm-dev&#x2F;R4WOz9O3mfI&#x2F;wKNPjKOrBQAJ" rel="nofollow">https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!searchin&#x2F;elm-dev&#x2F;native&#x2F;el...</a>) And, no, Elm&#x27;s ports are not the equivalent of FFI.<p>- In the most recent release, operators were removed because synonyms for map (&lt;~) and apply (~) are allegedly to hard understand.<p>- Appartently, you shouldn&#x27;t even mention Haskell as a resource for learning Elm.  (<a href="https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!topic&#x2F;elm-discuss&#x2F;OlzLOPixsYg" rel="nofollow">https:&#x2F;&#x2F;groups.google.com&#x2F;forum&#x2F;#!topic&#x2F;elm-discuss&#x2F;OlzLOPix...</a>)<p>I think it&#x27;s healthy for programming languages to have a point of view; that is, languages <i>should</i> lead you in a direction.  (Clojure does a great job at this.)  Yet, ultimately, a language shouldn&#x27;t censor its programmers.<p>Upshot:  Component local state should be an option in Elm when you really need it.