# \`borrow\` and \`take\` parameter ownership modifiers

**URL:** <https://forums.swift.org/t/borrow-and-take-parameter-ownership-modifiers/59581>\
**Category:** Pitches\
**Created:** [August 11, 2022, 1:43am UTC](https://forums.swift.org/t/borrow-and-take-parameter-ownership-modifiers/59581 "2022-08-11T01:43:12Z")\
**Posts on this page:** 1\
**Showing post:** 62

<div class="post-metadata">

**Author:** ![Joe\_Groff](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/joe_groff/32/1929_2.png) [@Joe\_Groff](https://forums.swift.org/u/Joe_Groff)\
**Post date:** [August 17, 2022, 5:03pm UTC](https://forums.swift.org/t/borrow-and-take-parameter-ownership-modifiers/59581/62 "2022-08-17T17:03:15Z")

</div>

> [@dabrahams](#):
>
> The overall direction I see in this pitch and [SE-0366](https://github.com/apple/swift-evolution/blob/main/proposals/0366-move-function.md) seems to reflect an effort to give the beginning programmer an illusion that the difference between `borrow` and `take` is not fundamental (despite the very real need for `@escaping`). IMO that will result in a more complex language overall, reflected in part by the spurious distinctions `take` vs. `@escaping` and `borrow` vs. ordinary pass-by-value, and in the use of call-site annotations in “expert” code.

For copyable types, there's really nothing about `borrow` vs. `take` that affects whether you can escape the value. That requires an additional constraint on either the value or the type to take the ability to copy a borrow away. `@escaping` as we use it on closures is kind of a misnomer, by the time you've got something of `@escaping () -> ()` type, it's _already_ escaped, and you're generally just borrowing a reference to the escapee.

> [@dabrahams](#):
>
> Question for Swift designers: is it useful for us to discuss Val's approach in these forums? I think we're onto something that _could_ benefit Swift greatly, but we don't want to just be a distraction.

It might be good to discuss holistically in a new thread. It sounds like you have a lot of ideas and it's hard to get a big picture when they're dropped incrementally in various other threads.

---

_[View the full topic](https://forums.swift.org/t/borrow-and-take-parameter-ownership-modifiers/59581)._
