traits
Like Haskell classes, though with rusts naming scheme. This is to avoid the common problems the keyword "class" causes for newcomers, especially those familiar with OOP.
Example:
trait Eq a:
(==) :: a -> a -> Bool
(/=) :: a -> a -> Bool
implement Eq Bool:
True == True := True
False == False := True
_ == _ := False
x /= y := not (x == y)