How to sort, paginate normalized results?

Here’s a solution that does the job:

query {
  var(func: eq(foo_type_name, "A", "B")) {
    foos as ~foo_type (after: 0x123)
  }
  foo(func: uid(foos), first: 1) @normalize {
    uid
    foo_name: foo_name
  }
}

The key is to put after in the reverse predicate var query and first in the query that accepts the “result” of the first query. Also, I’m not sure @normalize has anything to do with the issue after all.