(* Movable Points *) origin1 = [ x=0, mv_x=@(s)\(dx)s.x:=s.x+dx ]; origin2 = [ x=0, y=0, mv_x=@(s)\(dx)s.x:=(s.x+dx), mv_y=@(s)\(dy)s.y:=(s.y+dy) ]; Origin1 = [ new=@(z)[x=@(s)z.x(s), mv_x=@(s)z.mv_x(s)], x = \(s)0, mv_x = \(s)\(dx)s.x:=s.x+dx ]; Origin2 = [ new=@(z)[x=@(s)z.x(s), y=@(s)z.x(s), mv_x=@(s)z.mv_x(s), mv_y=@(s)z.mv_y(s)], x = Origin1.x, y = \(s)0, mv_x = Origin1.mv_x, mv_y = \(s)\(dy)s.y:=s.y+dy ];