Expand() alongside specified edge

Experience Report for Feature Request

What you wanted to do

Use expand() to expand non-uid predicates only. I feel like if you use expand() with no next level (curly braces) then it should only expand non-uid predicates.

<name>: string .
<edgeInMyType>: [uid] .
type mytype {
  name
  edgeInMyType
}
...
q(func: type(mytype)){
  expand(mytype)
  edgeInMyType { ## error repeated subgraph while using expand
    uid
  }
}

What you actually did

Broke my type into two sub types, one for non-uids and one for uids

<name>: string .
<edgeInMyType>: [uid] .
type mytype.scalars {
  name
}
type mytype.edges {
  edgeInMyType
}
...
q(func: type(mytype)){
  expand(mytype.scalars)
  edgeInMyType {
    uid
  }
}

Why that wasn’t great, with examples

Ok its probably obvious it would be better to just use one type instead of front the type with two types. With the above I can also use expand twice once with each sub-type with good effect:

q(func: type(mytype)){
  expand(mytype.scalars)
  expand(mytype.edges) {
    uid
  }
}

Any external references to support your case

Any reason the expand function expands to edges without actually selecting from them at all? Maybe a use case I am not thinking about?