<FromGitter>
<erdnaxeli:cervoi.se> if I include JSON::Serializable in J then it complains it is abstract (understandable). https://carc.in/#/r/ag42
<FromGitter>
<erdnaxeli:cervoi.se> and if I remove the abstract it give me a `J` object, which I don't want
<FromGitter>
<erdnaxeli:cervoi.se> I can try to work my hierarchy of types in another way too, but if somebody sees a quickwin to fix this code, it would be very appreciated :)
<FromGitter>
<Blacksmoke16> You'd probably want to use a discriminator in this case
<FromGitter>
<jrei:matrix.org> I tried with crystalizer, got a weird result: https://carc.in/#/r/ag4c
<FromGitter>
<jrei:matrix.org> normal? And how to have `[A, B]` instead of `[J]`
<FromGitter>
<asterite> Of course it's normal, a union of types under a parent type is the parent type
<FromGitter>
<erdnaxeli:cervoi.se> hmm I can understand the logic but that's not the behavior I expect
<FromGitter>
<erdnaxeli:cervoi.se> maybe I will write my own macro that try every union's type
<FromGitter>
<erdnaxeli:cervoi.se> I expect => I want here
<FromGitter>
<jrei:matrix.org> using composition works
<FromGitter>
<erdnaxeli:cervoi.se> Composition?
<FromGitter>
<jrei:matrix.org> yes, `module j; end`, then in your type, `include J`