### Re: [pete] pcan security frustration

```        // inclusive slice
? s[ 2.. 4]
? s[-4..-2]
-- output for both is:
-----> {30,40,50}
```

I get {20,30,40}

``` // append
s[0..-1] = {9999}           -- append

? s
-----> {0,10,20,99,30,40,50,6,9999}
```

I get {0,10,20,30,40,50,6,9999}
because in the previous step, "prepend and append", you set s back to {10,20,30,40,50}
prior to prepending 0 and appending 6.

```        struct point
number x = 0
number y = 0
end struct

procedure show( point q )
printf(1, "(g)", { q.x, q.y } )
end procedure

point  p1 = new()
show(p1)
--> (0,0)

p1.x = 3
p1.y = 5
show( p1 )
--> (3,5)
```

I get (g)(g)
same for the class illustration.

But I would recommend using a better illustration for class. The illustration used is no different from the structure illustration.

```class Pair
public sequence xy;
end class

Pair p1 = new()
Pair p2 = new()

p1.xy = {100,200}
p2.xy = {0,0}

? p1.xy --{100,200}
? p2.xy --{0,0}

```

Or, a more complex example:

```

class Pair -- any 2 objects
public sequence xy;
private integer x,y;
function get_x()
return xy
end function
function get_y()
return xy
end function
end class

type pos_seq(sequence x)
return min(x) >= 0
end type

class Point extends Pair
private pos_seq loc; -- any two numbers >= 0
procedure set_loc(object x)
this.xy = {x,x}
end procedure
end class

class Rectangle extends Point
public Point tlc,brc; --top_left, bottom_right corners;
private sequence size;

function get_size()
this.size = {brc.x-tlc.x , brc.y-tlc.y}
return this.size
end function
end class

Point p1 = new() p1.loc = {50,10}
Point p2 = new() p2.loc = {300,200}

Rectangle r = new()
r.tlc = p1
r.brc = p2
? r -- {"struct","Rectangle",4,1}
? r.size -- {250,190}
```