On the PuzzleScript [home page](https://www.puzzlescript.net/Documentation/rules101.html), there is an [example](https://www.puzzlescript.net/editor.html?demo=sokoban_eyeball) of an enemy (`Eyeball`) which, when you (`Player`) are directly in its line of sight, will move one square closer to you, using the rule

    [ Eyeball | ... | Player ] -> [ > Eyeball | ... | Player ]

However, the `Eyeball` will walk towards `Player` even if it shouldn't be able to see you, for instance if there is a wall in the way. This is apparent in a level like

    #########
    #....O..#
    #.......#
    #########
    #.......#
    #..P....#
    #########

where, if `Player` passes below `Eyeball`, `Eyeball` will move one square down.

How do I make it so that the enemy can't see me through walls?

Inserting `no Wall` into the rule above doesn't work, as that doesn't tell `...` to only match wall-free tiles, but rather checks whether there is at least one non-wall tile between `Eyeball` and `Player`. And adding the rule

    [ > Eyeball | ... | Wall | ... | Player ] -> [ Eyeball | ... | Wall | ... | Player ]

in an attempt to correct the movement doesn't work as two ellipses in a single match pattern isn't allowed.