It has to, right? ATS has many function types as well, plus stack-allocated closures (I think Rust has that too??)
(and yes, there are three types of closures, because they need to know if they take said struct by reference, by mutable reference, or by owner.)
(and yes, there are three types of closures, because they need to know if they take said struct by reference, by mutable reference, or by owner.)