GraphQL query colides with Dgraph's predicate (bug with pre-existing data)

Not quite sure, cuz for some reason if I run this query on Dgraph. It will return only Alice - which is the right response. But on the GraphQL side, it will return all of them as Null and Alice no matter what. That’s what confuses me. Cuz all the other’s aren’t part of the GraphQL context, just Alice.

Again:

This returns Alice

{
  q(func: type(User)) {
    User.name
  }
}

This returns the users created via DQL/RDF

{
  q(func: type(User)) {
   name
  }
}

And this returns all of them, as GraphQL does.

{
  q(func: type(User)) {
   name
   User.name
  }
}

The last one should be the right result, by logic - as the GraphQL has a type of convention that does a kind of “namespacing” - For me DQL and GraphQL should live together and I choose what to expose via GraphQL. Also, the data on Dgraph was made for DQL, not GraphQL. Would be good to have a nice separation and use the instructions here https://dgraph.io/docs/graphql/dgraph/ if I desire to migrate my existing data to GraphQL. Also, I could use Upsert Block as this https://dgraph.io/docs/mutations/upsert-block/#example-of-val-function
e.g

upsert {
  query {
    v as var(func: has(age)) {
      a as age
    }
  }

  mutation {
    # we copy the values from the old predicate
    set {
      uid(v) <User.age> val(a) .
    }

    # and we delete the old predicate
    delete {
      uid(v) <age> * .
    }
  }
}

For me, it is a collision for two reasons. 1. The other users were made in DQL and their predicates aren’t in the GraphQL Schema. The only similarity between the data is the existence of the same <dgraph.type> nothing more. 2. The GraphQL should behave as the DQL query mentioned (q(func: type(User))) and not like:

{
  q(func: type(User)) {
   name
   User.name
   expan(_all_)
  }
}