# Remove 1 record field

**URL:** https://discourse.elm-lang.org/t/remove-1-record-field/7169
**Category:** Learn
**Created:** [March 28, 2021, 3:45am UTC](https://discourse.elm-lang.org/t/remove-1-record-field/7169 "2021-03-28T03:45:40Z")
**Posts on this page:** 1
**Showing post:** 12

<div class="post-metadata">

### Author: ![rupert](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/rupert/32/1775_2.png) [@rupert](https://discourse.elm-lang.org/u/rupert)
#### Post date: [March 29, 2021, 10:45pm UTC](https://discourse.elm-lang.org/t/remove-1-record-field/7169/12 "2021-03-29T22:45:05Z")

</div>

> [@jfine2358](#):
>
> There’s no reference on that page to the update pipe symbol `|` being used in a type definition.

It was there on an earlier version of that page and removed recently - I am guessing to avoid encouraging its use in data modelling.

> <https://github.com/elm/elm-lang.org/commit/6b0e34930a02c527d2545bc9b34908815920a9e8>
>
> We used to think that making type alias of extensible records might be a cool id…ea, but did not have much usage experience to decide one way or the other. Enough people have tried it by now that It seems like it is not a great way to structure code. It is fine in some cases, but having explicit structures for each phase seems to come together nicer overall. \*\*Better to have a function that takes four arguments than a function that takes an open record with four specific fields.\*\* Just pass the four values in, then it doesn't matter whether the data structure is a record or custom type or whatever else.
> 
> Anyway, I replaced it with some notes on "Large Records" to try to warn people about the \`Bool\` and \`Maybe\` pitfalls. Thanks to @JoelQ for the nice posts describing these cases!

But yes, a little annoying since it is part of the syntax.

Maybe some other syntax you didn’t yet find out about:

> [@Lesser known syntax](https://discourse.elm-lang.org/t/lesser-known-syntax/641):
>
> Please share your knowledge of any lesser known Elm syntax that is not mentioned in the official overview ([http://elm-lang.org/docs/syntax](http://elm-lang.org/docs/syntax)) and is possibly buried somewhere else and easy to miss. I was pleased to find out that for function parameters that are records or tuples, you do not need to choose between either destructuring that parameter OR giving a name to it as a whole. You can do both at the same time using the wrapping (… as foo) syntax! f a b c = … f a {x, y} c = … …

---

_[View the full topic](https://discourse.elm-lang.org/t/remove-1-record-field/7169)._
