| 
<?phpnamespace Acme\Package;
 
 use eMacros\Package\Package;
 use Acme\Runtime\Distance;
 
 class GeometryPackage extends Package {
 public function __construct() {
 parent::__construct('Geometry');
 
 //default distance
 $this['dist'] = new Distance(0, 0);
 
 //macro style
 $this->macro('@dist:X(\d+)Y(\d+)@', function ($matches) {
 return new Distance(intval($matches[1]), intval($matches[2]));
 });
 }
 }
 |