E4078#
Cannot derive trait for type.
MoonBit allows you to derive implementation of some traits for your types. However, not all types can be automatically derived. For example, you cannot derive a trait for an abstract type.
Erroneous example#
///|
type T derive(Hash) // Error: Cannot derive trait Hash for type T: target type is abstract
Suggestion#
You can implement the trait manually:
///|
pub type T
///|
pub impl Hash for T with hash_combine(self : T, hasher : Hasher) -> Unit {
ignore(self)
ignore(hasher)
}