(* Backup methods *) o = [ retrieve=@(s1)s1, backup=@(s2)s2.retrieve <= @(s1)s2 ]; o' = o.backup; o'' = o'.backup; (* Try: o''.retrieve, o''.retrieve.retrieve, etc. *)