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 