# \[Pitch\] Box

**URL:** <https://forums.swift.org/t/pitch-box/84014>\
**Category:** Pitches\
**Created:** [January 7, 2026, 6:19pm UTC](https://forums.swift.org/t/pitch-box/84014 "2026-01-07T18:19:19Z")\
**Posts on this page:** 1\
**Showing post:** 66

<div class="post-metadata">

**Author:** ![Alejandro](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/alejandro/32/46197_2.png) [@Alejandro](https://forums.swift.org/u/Alejandro)\
**Post date:** [January 13, 2026, 8:22pm UTC](https://forums.swift.org/t/pitch-box/84014/66 "2026-01-13T20:22:21Z")

</div>

> [@Slava\_Pestov](#):
>
> Assuming this is a temporary state of affairs, it seems unfortunate to introduce a new standard library type which will then be subsumed by a built-in language feature in the future.

This is true, but in the example of building a linked list from Ben Cohen here: [Noncopyable Generics in Swift: A Code Walkthrough](https://forums.swift.org/t/noncopyable-generics-in-swift-a-code-walkthrough/70862)

He produces a `List` type defined like:

```swift
struct List<Element: ~Copyable>: ~Copyable {
  struct Node: ~Copyable {
    var element: Element
    var next: Link
  }
  typealias Link = Box<Node>?
  
  var head: Link = nil
}

```

and uses `Optional` as the enum of choice here to wrap the box in which is not an indirect enum. This design certainly could’ve defined its own `Link` type that was explicitly `indirect`, but now it loses out on all of the API that already exists on `Optional`.

---

_[View the full topic](https://forums.swift.org/t/pitch-box/84014)._
