Scala Symbol Soup Salvage


By no several pages could one explain or exhausted the absurd bizarre creepy daunting esoteric flabbergasting type system in Scala.
Here are some aspects that Learn Scala by example does not cover.


Context Bound and Implicitly:

def sort[A : Ordered] => def sort[A](implicit x: Ordred[A])
def implicitly[T](implicit e: T) = e

Type Bound:

=:= <:< <%<

Existential Type:

def foo(x: Array[_]) => def foo(x: Array[T] forSome {type T})

Self Type

class BarUsingFooable {self: Fooable => ....} // yet-to-be Fooable, make this binded to self

Structural Type

def Quack(duck: {def quack: Unit})// inline anonymous class like ducktyping

Abstract Type member

trait Job {type A; def get: A}

Type Level Programming:


Last but not least:

Site significantly serving Scala symbol soup salvage saves spiritually severed souls