# Vol.71 MoonBit Update

**URL:** <https://discuss.moonbitlang.com/t/vol-71-moonbit-update/361>\
**Category:** Announcement\
**Tags:** weekly-update\
**Created:** [May 6, 2025, 9:48am UTC](https://discuss.moonbitlang.com/t/vol-71-moonbit-update/361 "2025-05-06T09:48:51Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kuki](https://discuss.moonbitlang.com/user_avatar/discuss.moonbitlang.com/kuki/32/160_2.png) [@Kuki](https://discuss.moonbitlang.com/u/Kuki)\
**Post date:** [May 6, 2025, 9:48am UTC](https://discuss.moonbitlang.com/t/vol-71-moonbit-update/361/1 "2025-05-06T09:48:51Z")

</div>

# 2025-05-06

## Language Updates

- **[Breaking Change]** The way traits are implemented will change. In the future, traits must be explicitly implemented for a type `A` using `impl T for A { ... }`. Simply defining methods on `A` with the same signature as those in `trait T` will no longer be considered as implementing the trait `T` for `A`. This change was previously accompanied by a compiler warning and will soon take effect officially.

- A new syntactic sugar has been introduced to allow the use of `_` as a placeholder for omitted parameters when creating anonymous functions, simplifying their syntax. For example, `f(a, _, c, _)` is equivalent to `fn(b, d) { f(a, b, c, d) }`. Supported usage scenarios include:

- `fnalias` now supports creating aliases for types and trait methods:

- All pragmas have been removed and will be completely replaced by attributes going forward.

- The `#internal` attribute has been implemented to provide warnings for external users of a public API:

- A new warning has been added for potentially ambiguous use of loop arguments inside a `loop` block:

- Implicit type conversions are now supported from `Array` to `ArrayView`, and from `Bytes` to `@bytes.View`.

## Toolchain Updates

- The `moon` CLI now supports the `bench` subcommand for running performance benchmarks.
