So first of all thanks for putting this together.
The main problem I see with merging what I did is this: you added a notion of "type variable" in wrapper definitions whereas I only allowed for type aliases on existing wrappers (List or NonNull).
Another problem I see is that you used the notion of haskell tuples, without giving a definitive meaning for it (in graphql I mean):
wrapper Entry<a> = (ID!, a)
Except for the Entry type the type variable is useless in the examples you provide and I think it's be clearer to state:
wrapper Set = List
# versus
wrapper Set<a> = [a]
On the other hand I don't really know how to define a tuple without adding the notion of type variables in wrapper type definitions, but that's drastically extending the type system I guess...
Overall, I think It'd be better to separate the proposal into 2 parts:
- A proposal for wrapper aliases (enabling lists, vectors etc)
- A proposal for "multi type wrapper" definitions (like tuples) ? Or for type variables in general ? At the very least a definition for what
(ID!, a) means in graphql terms is required
let me know what you think
So first of all thanks for putting this together.
The main problem I see with merging what I did is this: you added a notion of "type variable" in wrapper definitions whereas I only allowed for type aliases on existing wrappers (List or NonNull).
Another problem I see is that you used the notion of haskell tuples, without giving a definitive meaning for it (in graphql I mean):
Except for the Entry type the type variable is useless in the examples you provide and I think it's be clearer to state:
On the other hand I don't really know how to define a tuple without adding the notion of type variables in wrapper type definitions, but that's drastically extending the type system I guess...
Overall, I think It'd be better to separate the proposal into 2 parts:
(ID!, a)means in graphql terms is requiredlet me know what you think