if ( steps.get( 0 ) != null ) return ( (Expression) steps.get( 0 ) ).returnsType(); return Type.NODE;
if( steps.size() == 0 ) return Type.NODE; return ((Expression) steps.getLast()).returnsType();
    public int returnsType() {        if ( steps.get( 0 ) != null )            return ( (Expression) steps.get( 0 ) ).returnsType();        return Type.NODE;    }