here variables are only implicit

SELECT $city
WHERE
    $city isa city
  & happens ( event: $conf, location: $city, ... )
  & $conf isa conference

variables conceptually range over everything in the map

=> yes, SELECT sucks, but we already knew that

$conf and $city are existentially quantified

is down-translated into:

            [[ [ $city isa city ] ]] .
            [[ [ happens ( ... $conf ... $city ... ) ] ]] .
            [[ [ $conf isa conference ] ]] .
            ( $city )                                  | $conf => [[ %_ ]]
                                                       | $city => [[ %_ ]]
# eliminating variable $conf
= [[ %_ ]] .
            [[ [ $city isa city ] ]] .
            [[ [ happens ( ... $0 ... $city ... ) ] ]] .
            [[ [ $0 isa conference ] ]] .
            ( $city )                                  | $city => [[ %_ ]]
# eliminating variable $city
= [[ %_ ]] .
  ( $0, [[ %_ ]]) .
            [[ [ $0 isa city ] ]] .
            [[ [ happens ( ... $1 ... $0 ... ) ] ]] .
            [[ [ $1 isa conference ] ]] .
            ( $0 )