<?xml-stylesheethref="../xsl/default.xsl" type="text/xsl"?>
-<o:program>
-<o:type name="ex:User">
 <o:variable name="name"/>
<!--
 define a constructor that takes one argument 
 -->
-<o:function name="ex:User">
 <o:param name="name"/>
-<o:do>
-<ex:User>
-<name>
 <o:eval select="$name"/>
 </name>
 </ex:User>
 </o:do>
 </o:function>
-<o:function name="name">
-<o:do>
 <o:return select="$name"/>
 </o:do>
 </o:function>
 </o:type>
-<o:type name="ex:SuperUser">
<!--
 SuperUser is a child type of User 
 -->
 <o:parent name="ex:User"/>
 <o:variable name="password"/>
-<o:function name="ex:SuperUser">
 <o:param name="name"/>
 <o:param name="password"/>
<!--
 initialise parent type 
 -->
 <o:parent name="ex:User" select="ex:User($name)"/>
-<o:do>
-<ex:SuperUser>
-<name>
 <o:eval select="$this.name()"/>
 </name>
<!--
 use public interface of User 
 -->
-<password>
 <o:eval select="$password"/>
 </password>
 </ex:SuperUser>
 </o:do>
 </o:function>
 </o:type>
 <o:variable name="user" select="ex:SuperUser('root', 'banana')"/>
-<result>
 <o:eval select="$user"/>
 </result>
 </o:program>