tvl-depot/website/sandbox
William Carroll 3c8bfe85c9 Prefer type alias to type
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.
2020-04-11 16:50:02 +01:00
..
chord-drill-sergeant Prefer type alias to type 2020-04-11 16:50:02 +01:00
contentful Run Prettier across projects 2020-03-27 10:59:50 +00:00
covid-uk Move sandbox into website 2020-03-20 00:52:05 +00:00
github-issues-service Create README for Github Issues Service 2020-04-10 13:40:04 +01:00
typo-po Add README for typo-po 2020-04-10 13:54:33 +01:00
default.nix Move sandbox into website 2020-03-20 00:52:05 +00:00
index.html Run Prettier across projects 2020-03-27 10:59:50 +00:00