← Back to context

Comment by Pay08

10 hours ago

Are type classes scary? PHP has had them since 2012.

They are different things.

  • What are different things?

    • Eli5:

      Haskell type classes are not classes (like Java or PHP classes); they are comparable to Rust traits -- which are different from PHP traits which are comparable to Java/C# interfaces (with default impls; if you just want contracts you have... PHP interfaces).

      A fundamental difference is that you can instantiate/implement a type class (or Rust trait) for any* type, compared to interfaces where each class declares the interfaces it implements. You can therefore create generic (forall) instances, higher kinded type classes, etc.

      2 replies →