I fixed your program (with beef's help) so that it fits on one line:
type Animal = tuple[name:string;age:int];let speak=(proc(self:var
Animal,msg:string)=echo self.name&" says:"&msg);let setName=(proc(self:var
Animal,name:string)=self.name=name);let incAge=(proc(self:var
Animal)=self.age+=1);let `$`=(proc(x:Animal): string = $x.name & " is " &
$x.age & " years old");var sparky=(name:"Sparky",age:10);sparky.speak"I am
eating";echo sparky;sparky.setName "John";sparky.incAge;echo sparky;echo sparky
Run