#![crate_name="issue_3979_traits"]
#![crate_type = "lib"]
pub trait Positioned {
fn SetX(&mut self, _: isize);
fn X(&self) -> isize;
}
pub trait Movable: Positioned {
fn translate(&mut self, dx: isize) {
let x = self.X() + dx;
self.SetX(x);