Feature #2: Overloadable operators | and &
Feature #3: Short notation for enum constants
Feature # 4: Private members accessible from tests
Feature #5: Support package-private visibility
Feature #6: Collection literals
Feature #7: Collection comprehensions
Feature #8: Slices for lists and arrays
Feature #9: Inline classes/Value classes
Feature #10: Format strings
Feature #11: Optional (trailing) commas
Feature #12: Unsigned arithmetic
Feature #13: SAM conversions for Kotlin interfaces
Feature #14: Annotations for static analyses
Feature #15: Destructuring assignments
Feature #16: Use invokedynamic to compile Kotlin lambdas
Feature #17: Static members in Kotlin classes
Feature #18: Truly immutable data (beyond val)
Feature #19: Subject variable in when
Feature #20: Vararg-like treatment of data classes