Hacker News new | ask | show | jobs
by nmfisher 350 days ago
I'm a heavy user of exhaustive pattern matching with sealed classes, definitely a great feature. You can achieve the same outcome as union types, but it's a lot more leg work, e.g.:

```

sealed class MyParam {}

class Bar extends MyParam { String val; }

class Baz extends MyParam { int val; }

void foo(MyParam param) {

  switch(myParam) { 

      case Baz(val: final val):

      case Bar(val: final val):

  }
} ```

compared to:

```

void foo(Bar | Baz myVar) {

    switch(myVar) { 

        case Bar:

        case Baz:

    }
} ```

I hadn't seen the extension_type_unions package, though, I'll check it out.