Capture Clauses as Effects

Introduction In my post on Hoisting Expressions I discussed the move($expr) feature and how it works much like an inverse of the defer feature many languages have. Instead of creating expressions which run after the scope ends, move($expr) runs code before the scope is entered 1 . The goal of this code is to make it so clone -heavy ecosystems like bevy have a much better experience using Rust. 1…