Elm reminds me of Haskell. In fact, I'm using `haskell-mode` (for now) in Emacs
to write my Elm code, and it works reliably. I'm not writing a Haskell app, but
if I were, I would define my application Model with the following Haskell code:
```haskell
data Model = Model { whitelistedChords :: [Theory.Chord]
, selectedChord :: Theory.Chord
, isPaused :: Bool
, tempo :: Int
}
```
When I first modelled my application state, I did something similar. After
reading more Elm examples of SPAs, I see that people prefer using type aliases
to define records. As far as I know, you cannot do this in Haskell; I believe
all types are "tagged" (something about "nominal typing" comes to mind). Anyhow,
Elm isn't Haskell; Haskell has cool features like type classes; Elm has cool
features like human-readable error messages and exhaustiveness checking for
cases. I love Haskell, and I love Elm, and you didn't ask.
Anyhow, this commit refactors my records as type aliases instead of types. I
think the resulting code is more readable and ergonomic.
|
||
|---|---|---|
| .. | ||
| blog | ||
| days-of-week-habits | ||
| goals | ||
| habitgarden | ||
| habits | ||
| learn | ||
| sandbox | ||
| default.nix | ||
| index.html | ||
| README.md | ||
wpcarro.dev
https://wpcarro.dev is my personal website. I expose a few subdomains, one of which you are probably visiting right now, git.wpcarro.dev. Here are some of the others:
blog.wpcarro.dev: My personal bloglearn.wpcarro.dev: Teaching others to codesandbox.wpcarro.dev: Where I deploy some pet projects and code sketches
Visit https://wpcarro.dev for a sitemap.