# Formal proposal for closures

**URL:** <https://forum.modular.com/t/formal-proposal-for-closures/2989>\
**Category:** Language Design\
**Created:** [April 18, 2026, 6:23pm UTC](https://forum.modular.com/t/formal-proposal-for-closures/2989 "2026-04-18T18:23:02Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![monte](https://avatars.discourse-cdn.com/v4/letter/m/b77776/32.png) [@monte](https://forum.modular.com/u/monte)\
**Post date:** [April 18, 2026, 6:23pm UTC](https://forum.modular.com/t/formal-proposal-for-closures/2989/1 "2026-04-18T18:23:02Z")

</div>

Good day, everyone.

I trust all is well.

I would like to ask if we could get a formal proposal drawn up for closures.  
It seems that there is currently no formal proposal for closures.

Please also note the following forum post:  
[When should thin or unified be used on closures?](https://forum.modular.com/t/when-should-thin-or-unified-be-used-on-closures/2978/2)

My working assumption is that closures are a work-in-progress, hence the lack of documentation.  
But, similarly, struct extensions are a work-in-progress and has a [formal proposal](https://github.com/modular/modular/blob/main/mojo/proposals/struct-extensions.md).

Any concrete indication of the feature’s state / progress would be appreciated.

- What are the current problems / blockers being worked on?
- What direction is the team working towards? (The kind of information usually detailed in a proposal)
- Are closures expected to be part of v1.0, or is this a post-1.0 feature?

---

<div class="post-metadata">

**Author:** ![Caroline](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/caroline/32/8_2.png) [@Caroline](https://forum.modular.com/u/Caroline)\
**Post date:** [May 18, 2026, 4:40pm UTC](https://forum.modular.com/t/formal-proposal-for-closures/2989/2 "2026-05-18T16:40:01Z")

</div>

Hi @monte,

Apologies for the slow response here! Just wanted to make sure you’ve seen @Steffi’s recent post on the updates to closures:

> [@Mojo Closures 2026](https://forum.modular.com/t/mojo-closures-2026/3013):
>
> Mojo Closures Before this release, Mojo has had several flavors of closures: Legacy capturing[\_] closures — @parameter functions passed only as compile-time type parameters, with implicit captures (and @\_\_copy\_capture to opt into copy semantics). Escaping closures — escaping functions emitted as heap-allocated struct instances and passed as runtime values. Unified closures — declared with the unified keyword, with explicit capture lists (e.g. unified {var x, mut y}), and passed as both a type …

---

<div class="post-metadata">

**Author:** ![monte](https://avatars.discourse-cdn.com/v4/letter/m/b77776/32.png) [@monte](https://forum.modular.com/u/monte)\
**Post date:** [May 24, 2026, 5:23pm UTC](https://forum.modular.com/t/formal-proposal-for-closures/2989/3 "2026-05-24T17:23:26Z")

</div>

Hello, @Caroline.

Thank you for the feedback - I appreciate the “closure” on this 😜

I see that the language referance on the git repo has been updated with additional details on closures:  
[closure-declarations.mdx](https://github.com/modular/modular/blob/main/mojo/docs/reference/closure-declarations.mdx)

Best regards.  
Monté.
