None of your examples make sense to me.<p>You say &quot;explicitly passing self is lame&quot; and then praise Golang for &quot;feature restraint&quot; when it does the exact same thing.<p>I don&#x27;t know what &quot;pattern matching on type constructors&quot; means. You use the constructor syntax to pattern match in Rust.<p>There is no such thing as &quot;block syntax with where clause&quot;. Where clauses go on signatures, not blocks. This is also the exact same syntax as Swift, which you praise for &quot;more refined syntax&quot;.