from http://en.wikibooks.org/wiki/Ada_Programming/Object_Orientation
package X is type Object is tagged null record; procedure do (This: in Object; That: in Boolean); end X; with X; procedure Main is Obj : X.Object; begin Obj.do (That => True); end Main;