Extensible ECS data structure

I see! If you want to keep things even simpler, maybe you can use the whole component to compare it directly:

> type alias Component data =
|       { id : Int
|       , parent : Int
|       , data : data
|       }
> a = Component 1 2 True
{ data = True, id = 1, parent = 2 }
    : Component Bool
> b = Component 1 2 True
{ data = True, id = 1, parent = 2 }
    : Component Bool
> a == b
True : Bool

In Elm comparisons are by value :slight_smile: