<?xml version="1.0"?>
<!-- GCalc-2.gir generated by valac 0.52.0, do not modify. -->
<repository version="1.2" xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
<include name="GObject" version="2.0"/>
<include name="Gee" version="0.8"/>
<include name="Gio" version="2.0"/>
<package name="gcalc-2"/>
<c:include name="gcalc/gcalc.h"/>
<namespace name="GCalc" version="2" c:prefix="GCalc" c:identifier-prefixes="GCalc" c:symbol-prefix="gcalc">
	<enumeration name="AssigError" c:type="GCalcAssigError" glib:error-domain="gcalc-assig-error-quark">
		<member name="invalid_structure_error" c:identifier="GCALC_ASSIG_ERROR_INVALID_STRUCTURE_ERROR" value="0"/>
	</enumeration>
	<enumeration name="FunctionError" c:type="GCalcFunctionError" glib:error-domain="gcalc-function-error-quark">
		<member name="invalid_parameters_error" c:identifier="GCALC_FUNCTION_ERROR_INVALID_PARAMETERS_ERROR" value="0"/>
		<member name="invocation_error" c:identifier="GCALC_FUNCTION_ERROR_INVOCATION_ERROR" value="1"/>
	</enumeration>
	<enumeration name="GroupError" c:type="GCalcGroupError" glib:error-domain="gcalc-group-error-quark">
		<member name="invalid_polynomial" c:identifier="GCALC_GROUP_ERROR_INVALID_POLYNOMIAL" value="0"/>
		<member name="invalid_internal_term" c:identifier="GCALC_GROUP_ERROR_INVALID_INTERNAL_TERM" value="1"/>
	</enumeration>
	<enumeration name="TermError" c:type="GCalcTermError" glib:error-domain="gcalc-term-error-quark">
		<member name="invalid_operator" c:identifier="GCALC_TERM_ERROR_INVALID_OPERATOR" value="0"/>
		<member name="evaluation_fail" c:identifier="GCALC_TERM_ERROR_EVALUATION_FAIL" value="1"/>
	</enumeration>
	<enumeration name="VariableError" c:type="GCalcVariableError" glib:error-domain="gcalc-variable-error-quark">
		<member name="invalid_parent" c:identifier="GCALC_VARIABLE_ERROR_INVALID_PARENT" value="0"/>
		<member name="invalid_expression_definition" c:identifier="GCALC_VARIABLE_ERROR_INVALID_EXPRESSION_DEFINITION" value="1"/>
		<member name="evaluation_fail" c:identifier="GCALC_VARIABLE_ERROR_EVALUATION_FAIL" value="2"/>
	</enumeration>
	<enumeration name="ParserError" c:type="GCalcParserError" glib:error-domain="gcalc-parser-error-quark">
		<member name="invalid_token_error" c:identifier="GCALC_PARSER_ERROR_INVALID_TOKEN_ERROR" value="0"/>
		<member name="invalid_expression_error" c:identifier="GCALC_PARSER_ERROR_INVALID_EXPRESSION_ERROR" value="1"/>
	</enumeration>
	<enumeration name="SolverError" c:type="GCalcSolverError" glib:error-domain="gcalc-solver-error-quark">
		<member name="expression_error" c:identifier="GCALC_SOLVER_ERROR_EXPRESSION_ERROR" value="0"/>
	</enumeration>
	<class name="Assign" c:type="GCalcAssign" c:symbol-prefix="assign" glib:type-name="GCalcAssign" glib:get-type="gcalc_assign_get_type" glib:type-struct="AssignClass" parent="GCalc.Expression">
		<implements name="GCalc.MathOperator"/>
		<implements name="GCalc.MathBinaryOperator"/>
		<implements name="GCalc.MathAssign"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="AssignPrivate" c:type="GCalcAssignPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_assign_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Assign" c:type="GCalcAssign*"/>
			</return-value>
		</constructor>
	</class>
	<record name="AssignClass" c:type="GCalcAssignClass" glib:is-gtype-struct-for="Assign">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="AssignPrivate" c:type="GCalcAssignPrivate" disguised="1"/>
	<class name="Constant" c:type="GCalcConstant" c:symbol-prefix="constant" glib:type-name="GCalcConstant" glib:get-type="gcalc_constant_get_type" glib:type-struct="ConstantClass" parent="GCalc.Expression">
		<implements name="GCalc.MathConstant"/>
		<implements name="GCalc.MathConstantNumber"/>
		<implements name="GCalc.MathConstantComplex"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ConstantPrivate" c:type="GCalcConstantPrivate*"/>
		</field>
		<constructor name="integer" c:identifier="gcalc_constant_new_integer">
			<return-value transfer-ownership="full">
				<type name="GCalc.Constant" c:type="GCalcConstant*"/>
			</return-value>
			<parameters>
				<parameter name="val" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="unsigned_integer" c:identifier="gcalc_constant_new_unsigned_integer">
			<return-value transfer-ownership="full">
				<type name="GCalc.Constant" c:type="GCalcConstant*"/>
			</return-value>
			<parameters>
				<parameter name="val" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="double" c:identifier="gcalc_constant_new_double">
			<return-value transfer-ownership="full">
				<type name="GCalc.Constant" c:type="GCalcConstant*"/>
			</return-value>
			<parameters>
				<parameter name="val" transfer-ownership="none">
					<type name="gdouble" c:type="gdouble"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="complex" c:identifier="gcalc_constant_new_complex">
			<return-value transfer-ownership="full">
				<type name="GCalc.Constant" c:type="GCalcConstant*"/>
			</return-value>
			<parameters>
				<parameter name="real" transfer-ownership="none">
					<type name="gdouble" c:type="gdouble"/>
				</parameter>
				<parameter name="imag" transfer-ownership="none">
					<type name="gdouble" c:type="gdouble"/>
				</parameter>
			</parameters>
		</constructor>
		<constructor name="new" c:identifier="gcalc_constant_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Constant" c:type="GCalcConstant*"/>
			</return-value>
		</constructor>
	</class>
	<record name="ConstantClass" c:type="GCalcConstantClass" glib:is-gtype-struct-for="Constant">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="ConstantPrivate" c:type="GCalcConstantPrivate" disguised="1"/>
	<class name="Division" c:type="GCalcDivision" c:symbol-prefix="division" glib:type-name="GCalcDivision" glib:get-type="gcalc_division_get_type" glib:type-struct="DivisionClass" parent="GCalc.Expression">
		<implements name="GCalc.MathOperator"/>
		<implements name="GCalc.MathBinaryOperator"/>
		<implements name="GCalc.MathDivision"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="DivisionPrivate" c:type="GCalcDivisionPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_division_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Division" c:type="GCalcDivision*"/>
			</return-value>
		</constructor>
	</class>
	<record name="DivisionClass" c:type="GCalcDivisionClass" glib:is-gtype-struct-for="Division">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="DivisionPrivate" c:type="GCalcDivisionPrivate" disguised="1"/>
	<class name="Equation" c:type="GCalcEquation" c:symbol-prefix="equation" glib:type-name="GCalcEquation" glib:get-type="gcalc_equation_get_type" glib:type-struct="EquationClass" parent="GCalc.Expression">
		<implements name="GCalc.MathEquation"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="EquationPrivate" c:type="GCalcEquationPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_equation_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Equation" c:type="GCalcEquation*"/>
			</return-value>
		</constructor>
	</class>
	<record name="EquationClass" c:type="GCalcEquationClass" glib:is-gtype-struct-for="Equation">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="EquationPrivate" c:type="GCalcEquationPrivate" disguised="1"/>
	<class name="EquationManager" c:type="GCalcEquationManager" c:symbol-prefix="equation_manager" glib:type-name="GCalcEquationManager" glib:get-type="gcalc_equation_manager_get_type" glib:type-struct="EquationManagerClass" parent="GObject.Object">
		<implements name="GCalc.MathEquationManager"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="EquationManagerPrivate" c:type="GCalcEquationManagerPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_equation_manager_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.EquationManager" c:type="GCalcEquationManager*"/>
			</return-value>
		</constructor>
	</class>
	<record name="EquationManagerClass" c:type="GCalcEquationManagerClass" glib:is-gtype-struct-for="EquationManager">
		<field name="parent_class" readable="0" private="1">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="EquationManagerPrivate" c:type="GCalcEquationManagerPrivate" disguised="1"/>
	<class name="ErrorResult" c:type="GCalcErrorResult" c:symbol-prefix="error_result" glib:type-name="GCalcErrorResult" glib:get-type="gcalc_error_result_get_type" glib:type-struct="ErrorResultClass" parent="GObject.Object">
		<implements name="GCalc.MathResult"/>
		<implements name="GCalc.MathErrorResult"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ErrorResultPrivate" c:type="GCalcErrorResultPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_error_result_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.ErrorResult" c:type="GCalcErrorResult*"/>
			</return-value>
			<parameters>
				<parameter name="msg" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="ErrorResultClass" c:type="GCalcErrorResultClass" glib:is-gtype-struct-for="ErrorResult">
		<field name="parent_class" readable="0" private="1">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="ErrorResultPrivate" c:type="GCalcErrorResultPrivate" disguised="1"/>
	<class name="Expression" c:type="GCalcExpression" c:symbol-prefix="expression" glib:type-name="GCalcExpression" glib:get-type="gcalc_expression_get_type" glib:type-struct="ExpressionClass" parent="GObject.Object">
		<implements name="GCalc.MathExpression"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ExpressionPrivate" c:type="GCalcExpressionPrivate*"/>
		</field>
		<method name="to_string" c:identifier="gcalc_expression_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Expression" c:type="GCalcExpression*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="to_string" invoker="to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Expression" c:type="GCalcExpression*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="solve" c:identifier="gcalc_expression_solve">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Expression" c:type="GCalcExpression*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="solve" invoker="solve">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Expression" c:type="GCalcExpression*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<constructor name="new" c:identifier="gcalc_expression_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Expression" c:type="GCalcExpression*"/>
			</return-value>
		</constructor>
	</class>
	<record name="ExpressionClass" c:type="GCalcExpressionClass" glib:is-gtype-struct-for="Expression">
		<field name="parent_class" readable="0" private="1">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
		<field name="to_string">
			<callback name="to_string" c:type="to_string">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.Expression" c:type="GCalcExpression*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="solve">
			<callback name="solve" c:type="solve">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.Expression" c:type="GCalcExpression*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="ExpressionPrivate" c:type="GCalcExpressionPrivate" disguised="1"/>
	<class name="ErrorExpression" c:type="GCalcErrorExpression" c:symbol-prefix="error_expression" glib:type-name="GCalcErrorExpression" glib:get-type="gcalc_error_expression_get_type" glib:type-struct="ErrorExpressionClass" parent="GCalc.Expression">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ErrorExpressionPrivate" c:type="GCalcErrorExpressionPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_error_expression_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.ErrorExpression" c:type="GCalcErrorExpression*"/>
			</return-value>
		</constructor>
	</class>
	<record name="ErrorExpressionClass" c:type="GCalcErrorExpressionClass" glib:is-gtype-struct-for="ErrorExpression">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="ErrorExpressionPrivate" c:type="GCalcErrorExpressionPrivate" disguised="1"/>
	<class name="ExpressionContainer" c:type="GCalcExpressionContainer" c:symbol-prefix="expression_container" glib:type-name="GCalcExpressionContainer" glib:get-type="gcalc_expression_container_get_type" glib:type-struct="ExpressionContainerClass" parent="Gee.ArrayList">
		<implements name="Gio.ListModel"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="Gee.ArrayList" c:type="GeeArrayList"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ExpressionContainerPrivate" c:type="GCalcExpressionContainerPrivate*"/>
		</field>
		<method name="get_object" c:identifier="gcalc_expression_container_get_object">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GObject.Object" c:type="GObject*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</instance-parameter>
				<parameter name="position" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</method>
		<method name="find" c:identifier="gcalc_expression_container_find">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</instance-parameter>
				<parameter name="exp" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_named" c:identifier="gcalc_expression_container_find_named">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</instance-parameter>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<constructor name="new" c:identifier="gcalc_expression_container_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
		</constructor>
		<property name="parent" writable="1">
			<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
		</property>
		<method name="get_parent" c:identifier="gcalc_expression_container_get_parent">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</instance-parameter>
			</parameters>
		</method>
		<method name="set_parent" c:identifier="gcalc_expression_container_set_parent">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="ExpressionContainerClass" c:type="GCalcExpressionContainerClass" glib:is-gtype-struct-for="ExpressionContainer">
		<field name="parent_class" readable="0" private="1">
			<type name="Gee.ArrayListClass" c:type="GeeArrayListClass"/>
		</field>
	</record>
	<record name="ExpressionContainerPrivate" c:type="GCalcExpressionContainerPrivate" disguised="1"/>
	<class name="ExpressionHashMap" c:type="GCalcExpressionHashMap" c:symbol-prefix="expression_hash_map" glib:type-name="GCalcExpressionHashMap" glib:get-type="gcalc_expression_hash_map_get_type" glib:type-struct="ExpressionHashMapClass" parent="Gee.HashMap">
		<field name="parent_instance" readable="0" private="1">
			<type name="Gee.HashMap" c:type="GeeHashMap"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ExpressionHashMapPrivate" c:type="GCalcExpressionHashMapPrivate*"/>
		</field>
		<method name="add" c:identifier="gcalc_expression_hash_map_add">
			<return-value transfer-ownership="full">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
				</instance-parameter>
				<parameter name="exp" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</parameter>
			</parameters>
		</method>
		<method name="remove" c:identifier="gcalc_expression_hash_map_remove">
			<return-value transfer-ownership="full">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
				</instance-parameter>
				<parameter name="exp" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</parameter>
			</parameters>
		</method>
		<method name="find_named" c:identifier="gcalc_expression_hash_map_find_named">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
				</instance-parameter>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<constructor name="new" c:identifier="gcalc_expression_hash_map_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
			</return-value>
		</constructor>
		<property name="parent" writable="1">
			<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
		</property>
		<method name="get_parent" c:identifier="gcalc_expression_hash_map_get_parent">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
				</instance-parameter>
			</parameters>
		</method>
		<method name="set_parent" c:identifier="gcalc_expression_hash_map_set_parent">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="ExpressionHashMapClass" c:type="GCalcExpressionHashMapClass" glib:is-gtype-struct-for="ExpressionHashMap">
		<field name="parent_class" readable="0" private="1">
			<type name="Gee.HashMapClass" c:type="GeeHashMapClass"/>
		</field>
	</record>
	<record name="ExpressionHashMapPrivate" c:type="GCalcExpressionHashMapPrivate" disguised="1"/>
	<class name="Function" c:type="GCalcFunction" c:symbol-prefix="function" glib:type-name="GCalcFunction" glib:get-type="gcalc_function_get_type" glib:type-struct="FunctionClass" parent="GCalc.Expression">
		<implements name="GCalc.MathFunction"/>
		<implements name="GCalc.Hashable"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionPrivate" c:type="GCalcFunctionPrivate*"/>
		</field>
		<constructor name="with_name" c:identifier="gcalc_function_new_with_name">
			<return-value transfer-ownership="full">
				<type name="GCalc.Function" c:type="GCalcFunction*"/>
			</return-value>
			<parameters>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="nparams" transfer-ownership="none">
					<type name="gint" c:type="gint"/>
				</parameter>
			</parameters>
		</constructor>
		<method name="evaluate" c:identifier="gcalc_function_evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Function" c:type="GCalcFunction*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="evaluate" invoker="evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Function" c:type="GCalcFunction*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<constructor name="new" c:identifier="gcalc_function_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Function" c:type="GCalcFunction*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionClass" c:type="GCalcFunctionClass" glib:is-gtype-struct-for="Function">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
		<field name="evaluate">
			<callback name="evaluate" c:type="evaluate" throws="1">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.Function" c:type="GCalcFunction*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<record name="FunctionPrivate" c:type="GCalcFunctionPrivate" disguised="1"/>
	<class name="FunctionAcos" c:type="GCalcFunctionAcos" c:symbol-prefix="function_acos" glib:type-name="GCalcFunctionAcos" glib:get-type="gcalc_function_acos_get_type" glib:type-struct="FunctionAcosClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionAcosPrivate" c:type="GCalcFunctionAcosPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_acos_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionAcos" c:type="GCalcFunctionAcos*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionAcosClass" c:type="GCalcFunctionAcosClass" glib:is-gtype-struct-for="FunctionAcos">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionAcosPrivate" c:type="GCalcFunctionAcosPrivate" disguised="1"/>
	<class name="FunctionAcosh" c:type="GCalcFunctionAcosh" c:symbol-prefix="function_acosh" glib:type-name="GCalcFunctionAcosh" glib:get-type="gcalc_function_acosh_get_type" glib:type-struct="FunctionAcoshClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionAcoshPrivate" c:type="GCalcFunctionAcoshPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_acosh_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionAcosh" c:type="GCalcFunctionAcosh*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionAcoshClass" c:type="GCalcFunctionAcoshClass" glib:is-gtype-struct-for="FunctionAcosh">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionAcoshPrivate" c:type="GCalcFunctionAcoshPrivate" disguised="1"/>
	<class name="FunctionAsin" c:type="GCalcFunctionAsin" c:symbol-prefix="function_asin" glib:type-name="GCalcFunctionAsin" glib:get-type="gcalc_function_asin_get_type" glib:type-struct="FunctionAsinClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionAsinPrivate" c:type="GCalcFunctionAsinPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_asin_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionAsin" c:type="GCalcFunctionAsin*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionAsinClass" c:type="GCalcFunctionAsinClass" glib:is-gtype-struct-for="FunctionAsin">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionAsinPrivate" c:type="GCalcFunctionAsinPrivate" disguised="1"/>
	<class name="FunctionAsinh" c:type="GCalcFunctionAsinh" c:symbol-prefix="function_asinh" glib:type-name="GCalcFunctionAsinh" glib:get-type="gcalc_function_asinh_get_type" glib:type-struct="FunctionAsinhClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionAsinhPrivate" c:type="GCalcFunctionAsinhPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_asinh_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionAsinh" c:type="GCalcFunctionAsinh*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionAsinhClass" c:type="GCalcFunctionAsinhClass" glib:is-gtype-struct-for="FunctionAsinh">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionAsinhPrivate" c:type="GCalcFunctionAsinhPrivate" disguised="1"/>
	<class name="FunctionAtan" c:type="GCalcFunctionAtan" c:symbol-prefix="function_atan" glib:type-name="GCalcFunctionAtan" glib:get-type="gcalc_function_atan_get_type" glib:type-struct="FunctionAtanClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionAtanPrivate" c:type="GCalcFunctionAtanPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_atan_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionAtan" c:type="GCalcFunctionAtan*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionAtanClass" c:type="GCalcFunctionAtanClass" glib:is-gtype-struct-for="FunctionAtan">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionAtanPrivate" c:type="GCalcFunctionAtanPrivate" disguised="1"/>
	<class name="FunctionAtanh" c:type="GCalcFunctionAtanh" c:symbol-prefix="function_atanh" glib:type-name="GCalcFunctionAtanh" glib:get-type="gcalc_function_atanh_get_type" glib:type-struct="FunctionAtanhClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionAtanhPrivate" c:type="GCalcFunctionAtanhPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_atanh_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionAtanh" c:type="GCalcFunctionAtanh*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionAtanhClass" c:type="GCalcFunctionAtanhClass" glib:is-gtype-struct-for="FunctionAtanh">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionAtanhPrivate" c:type="GCalcFunctionAtanhPrivate" disguised="1"/>
	<class name="FunctionCos" c:type="GCalcFunctionCos" c:symbol-prefix="function_cos" glib:type-name="GCalcFunctionCos" glib:get-type="gcalc_function_cos_get_type" glib:type-struct="FunctionCosClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionCosPrivate" c:type="GCalcFunctionCosPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_cos_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionCos" c:type="GCalcFunctionCos*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionCosClass" c:type="GCalcFunctionCosClass" glib:is-gtype-struct-for="FunctionCos">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionCosPrivate" c:type="GCalcFunctionCosPrivate" disguised="1"/>
	<class name="FunctionCosh" c:type="GCalcFunctionCosh" c:symbol-prefix="function_cosh" glib:type-name="GCalcFunctionCosh" glib:get-type="gcalc_function_cosh_get_type" glib:type-struct="FunctionCoshClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionCoshPrivate" c:type="GCalcFunctionCoshPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_cosh_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionCosh" c:type="GCalcFunctionCosh*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionCoshClass" c:type="GCalcFunctionCoshClass" glib:is-gtype-struct-for="FunctionCosh">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionCoshPrivate" c:type="GCalcFunctionCoshPrivate" disguised="1"/>
	<class name="FunctionExp" c:type="GCalcFunctionExp" c:symbol-prefix="function_exp" glib:type-name="GCalcFunctionExp" glib:get-type="gcalc_function_exp_get_type" glib:type-struct="FunctionExpClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionExpPrivate" c:type="GCalcFunctionExpPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_exp_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionExp" c:type="GCalcFunctionExp*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionExpClass" c:type="GCalcFunctionExpClass" glib:is-gtype-struct-for="FunctionExp">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionExpPrivate" c:type="GCalcFunctionExpPrivate" disguised="1"/>
	<class name="FunctionLog" c:type="GCalcFunctionLog" c:symbol-prefix="function_log" glib:type-name="GCalcFunctionLog" glib:get-type="gcalc_function_log_get_type" glib:type-struct="FunctionLogClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionLogPrivate" c:type="GCalcFunctionLogPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_log_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionLog" c:type="GCalcFunctionLog*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionLogClass" c:type="GCalcFunctionLogClass" glib:is-gtype-struct-for="FunctionLog">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionLogPrivate" c:type="GCalcFunctionLogPrivate" disguised="1"/>
	<class name="FunctionSin" c:type="GCalcFunctionSin" c:symbol-prefix="function_sin" glib:type-name="GCalcFunctionSin" glib:get-type="gcalc_function_sin_get_type" glib:type-struct="FunctionSinClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionSinPrivate" c:type="GCalcFunctionSinPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_sin_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionSin" c:type="GCalcFunctionSin*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionSinClass" c:type="GCalcFunctionSinClass" glib:is-gtype-struct-for="FunctionSin">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionSinPrivate" c:type="GCalcFunctionSinPrivate" disguised="1"/>
	<class name="FunctionSinh" c:type="GCalcFunctionSinh" c:symbol-prefix="function_sinh" glib:type-name="GCalcFunctionSinh" glib:get-type="gcalc_function_sinh_get_type" glib:type-struct="FunctionSinhClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionSinhPrivate" c:type="GCalcFunctionSinhPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_sinh_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionSinh" c:type="GCalcFunctionSinh*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionSinhClass" c:type="GCalcFunctionSinhClass" glib:is-gtype-struct-for="FunctionSinh">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionSinhPrivate" c:type="GCalcFunctionSinhPrivate" disguised="1"/>
	<class name="FunctionSqrt" c:type="GCalcFunctionSqrt" c:symbol-prefix="function_sqrt" glib:type-name="GCalcFunctionSqrt" glib:get-type="gcalc_function_sqrt_get_type" glib:type-struct="FunctionSqrtClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionSqrtPrivate" c:type="GCalcFunctionSqrtPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_sqrt_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionSqrt" c:type="GCalcFunctionSqrt*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionSqrtClass" c:type="GCalcFunctionSqrtClass" glib:is-gtype-struct-for="FunctionSqrt">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionSqrtPrivate" c:type="GCalcFunctionSqrtPrivate" disguised="1"/>
	<class name="FunctionTan" c:type="GCalcFunctionTan" c:symbol-prefix="function_tan" glib:type-name="GCalcFunctionTan" glib:get-type="gcalc_function_tan_get_type" glib:type-struct="FunctionTanClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionTanPrivate" c:type="GCalcFunctionTanPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_tan_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionTan" c:type="GCalcFunctionTan*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionTanClass" c:type="GCalcFunctionTanClass" glib:is-gtype-struct-for="FunctionTan">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionTanPrivate" c:type="GCalcFunctionTanPrivate" disguised="1"/>
	<class name="FunctionTanh" c:type="GCalcFunctionTanh" c:symbol-prefix="function_tanh" glib:type-name="GCalcFunctionTanh" glib:get-type="gcalc_function_tanh_get_type" glib:type-struct="FunctionTanhClass" parent="GCalc.Function">
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Function" c:type="GCalcFunction"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="FunctionTanhPrivate" c:type="GCalcFunctionTanhPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_function_tanh_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.FunctionTanh" c:type="GCalcFunctionTanh*"/>
			</return-value>
		</constructor>
	</class>
	<record name="FunctionTanhClass" c:type="GCalcFunctionTanhClass" glib:is-gtype-struct-for="FunctionTanh">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.FunctionClass" c:type="GCalcFunctionClass"/>
		</field>
	</record>
	<record name="FunctionTanhPrivate" c:type="GCalcFunctionTanhPrivate" disguised="1"/>
	<class name="Group" c:type="GCalcGroup" c:symbol-prefix="group" glib:type-name="GCalcGroup" glib:get-type="gcalc_group_get_type" glib:type-struct="GroupClass" parent="GCalc.Expression">
		<implements name="GCalc.MathGroup"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="GroupPrivate" c:type="GCalcGroupPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_group_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Group" c:type="GCalcGroup*"/>
			</return-value>
		</constructor>
	</class>
	<record name="GroupClass" c:type="GCalcGroupClass" glib:is-gtype-struct-for="Group">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="GroupPrivate" c:type="GCalcGroupPrivate" disguised="1"/>
	<class name="Minus" c:type="GCalcMinus" c:symbol-prefix="minus" glib:type-name="GCalcMinus" glib:get-type="gcalc_minus_get_type" glib:type-struct="MinusClass" parent="GCalc.Expression">
		<implements name="GCalc.MathOperator"/>
		<implements name="GCalc.MathBinaryOperator"/>
		<implements name="GCalc.MathMinus"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="MinusPrivate" c:type="GCalcMinusPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_minus_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Minus" c:type="GCalcMinus*"/>
			</return-value>
		</constructor>
	</class>
	<record name="MinusClass" c:type="GCalcMinusClass" glib:is-gtype-struct-for="Minus">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="MinusPrivate" c:type="GCalcMinusPrivate" disguised="1"/>
	<class name="Multiply" c:type="GCalcMultiply" c:symbol-prefix="multiply" glib:type-name="GCalcMultiply" glib:get-type="gcalc_multiply_get_type" glib:type-struct="MultiplyClass" parent="GCalc.Expression">
		<implements name="GCalc.MathOperator"/>
		<implements name="GCalc.MathBinaryOperator"/>
		<implements name="GCalc.MathMultiply"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="MultiplyPrivate" c:type="GCalcMultiplyPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_multiply_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Multiply" c:type="GCalcMultiply*"/>
			</return-value>
		</constructor>
	</class>
	<record name="MultiplyClass" c:type="GCalcMultiplyClass" glib:is-gtype-struct-for="Multiply">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="MultiplyPrivate" c:type="GCalcMultiplyPrivate" disguised="1"/>
	<class name="Parameter" c:type="GCalcParameter" c:symbol-prefix="parameter" glib:type-name="GCalcParameter" glib:get-type="gcalc_parameter_get_type" glib:type-struct="ParameterClass" parent="GCalc.Variable">
		<implements name="GCalc.MathParameter"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Variable" c:type="GCalcVariable"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ParameterPrivate" c:type="GCalcParameterPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_parameter_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Parameter" c:type="GCalcParameter*"/>
			</return-value>
			<parameters>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="ParameterClass" c:type="GCalcParameterClass" glib:is-gtype-struct-for="Parameter">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.VariableClass" c:type="GCalcVariableClass"/>
		</field>
	</record>
	<record name="ParameterPrivate" c:type="GCalcParameterPrivate" disguised="1"/>
	<class name="Parser" c:type="GCalcParser" c:symbol-prefix="parser" glib:type-name="GCalcParser" glib:get-type="gcalc_parser_get_type" glib:type-struct="ParserClass" parent="GObject.Object">
		<field name="parent_instance" readable="0" private="1">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ParserPrivate" c:type="GCalcParserPrivate*"/>
		</field>
		<method name="parse" c:identifier="gcalc_parser_parse" throws="1">
			<return-value transfer-ownership="full">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Parser" c:type="GCalcParser*"/>
				</instance-parameter>
				<parameter name="str" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
				<parameter name="eqman" transfer-ownership="none">
					<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
				</parameter>
			</parameters>
		</method>
		<method name="read_token" c:identifier="gcalc_parser_read_token">
			<return-value transfer-ownership="full">
				<type name="GCalc.ParserTokenType" c:type="GCalcParserTokenType"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Parser" c:type="GCalcParser*"/>
				</instance-parameter>
			</parameters>
		</method>
		<method name="token_to_string" c:identifier="gcalc_parser_token_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Parser" c:type="GCalcParser*"/>
				</instance-parameter>
			</parameters>
		</method>
		<constructor name="new" c:identifier="gcalc_parser_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Parser" c:type="GCalcParser*"/>
			</return-value>
		</constructor>
	</class>
	<record name="ParserClass" c:type="GCalcParserClass" glib:is-gtype-struct-for="Parser">
		<field name="parent_class" readable="0" private="1">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="ParserPrivate" c:type="GCalcParserPrivate" disguised="1"/>
	<enumeration name="ParserTokenType" c:type="GCalcParserTokenType" glib:type-name="GCalcParserTokenType" glib:get-type="gcalc_parser_token_type_get_type">
		<member name="none" c:identifier="GCALC_PARSER_TOKEN_TYPE_NONE" value="0"/>
		<member name="eof" c:identifier="GCALC_PARSER_TOKEN_TYPE_EOF" value="1"/>
		<member name="identifier" c:identifier="GCALC_PARSER_TOKEN_TYPE_IDENTIFIER" value="2"/>
		<member name="integer_literal" c:identifier="GCALC_PARSER_TOKEN_TYPE_INTEGER_LITERAL" value="3"/>
		<member name="real_literal" c:identifier="GCALC_PARSER_TOKEN_TYPE_REAL_LITERAL" value="4"/>
		<member name="star" c:identifier="GCALC_PARSER_TOKEN_TYPE_STAR" value="5"/>
		<member name="plus" c:identifier="GCALC_PARSER_TOKEN_TYPE_PLUS" value="6"/>
		<member name="div" c:identifier="GCALC_PARSER_TOKEN_TYPE_DIV" value="7"/>
		<member name="minus" c:identifier="GCALC_PARSER_TOKEN_TYPE_MINUS" value="8"/>
		<member name="assign" c:identifier="GCALC_PARSER_TOKEN_TYPE_ASSIGN" value="9"/>
		<member name="open_parens" c:identifier="GCALC_PARSER_TOKEN_TYPE_OPEN_PARENS" value="10"/>
		<member name="close_parens" c:identifier="GCALC_PARSER_TOKEN_TYPE_CLOSE_PARENS" value="11"/>
		<member name="carret" c:identifier="GCALC_PARSER_TOKEN_TYPE_CARRET" value="12"/>
		<member name="close_brace" c:identifier="GCALC_PARSER_TOKEN_TYPE_CLOSE_BRACE" value="13"/>
		<member name="close_bracket" c:identifier="GCALC_PARSER_TOKEN_TYPE_CLOSE_BRACKET" value="14"/>
		<member name="open_brace" c:identifier="GCALC_PARSER_TOKEN_TYPE_OPEN_BRACE" value="15"/>
		<member name="open_bracket" c:identifier="GCALC_PARSER_TOKEN_TYPE_OPEN_BRACKET" value="16"/>
		<member name="string_literal" c:identifier="GCALC_PARSER_TOKEN_TYPE_STRING_LITERAL" value="17"/>
		<member name="op_and" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_AND" value="18"/>
		<member name="op_coalescing" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_COALESCING" value="19"/>
		<member name="op_dec" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_DEC" value="20"/>
		<member name="op_eq" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_EQ" value="21"/>
		<member name="op_ge" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_GE" value="22"/>
		<member name="op_gt" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_GT" value="23"/>
		<member name="op_inc" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_INC" value="24"/>
		<member name="op_le" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_LE" value="25"/>
		<member name="op_lt" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_LT" value="26"/>
		<member name="op_ne" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_NE" value="27"/>
		<member name="op_neg" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_NEG" value="28"/>
		<member name="op_or" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_OR" value="29"/>
		<member name="op_ptr" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_PTR" value="30"/>
		<member name="op_shift_left" c:identifier="GCALC_PARSER_TOKEN_TYPE_OP_SHIFT_LEFT" value="31"/>
		<member name="semicolon" c:identifier="GCALC_PARSER_TOKEN_TYPE_SEMICOLON" value="32"/>
		<member name="tilde" c:identifier="GCALC_PARSER_TOKEN_TYPE_TILDE" value="33"/>
		<member name="colon" c:identifier="GCALC_PARSER_TOKEN_TYPE_COLON" value="34"/>
		<member name="comma" c:identifier="GCALC_PARSER_TOKEN_TYPE_COMMA" value="35"/>
		<member name="double_colon" c:identifier="GCALC_PARSER_TOKEN_TYPE_DOUBLE_COLON" value="36"/>
		<member name="dot" c:identifier="GCALC_PARSER_TOKEN_TYPE_DOT" value="37"/>
		<member name="ellipsis" c:identifier="GCALC_PARSER_TOKEN_TYPE_ELLIPSIS" value="38"/>
		<member name="interr" c:identifier="GCALC_PARSER_TOKEN_TYPE_INTERR" value="39"/>
		<member name="hash" c:identifier="GCALC_PARSER_TOKEN_TYPE_HASH" value="40"/>
		<member name="currency_symbol" c:identifier="GCALC_PARSER_TOKEN_TYPE_CURRENCY_SYMBOL" value="41"/>
	</enumeration>
	<class name="Plus" c:type="GCalcPlus" c:symbol-prefix="plus" glib:type-name="GCalcPlus" glib:get-type="gcalc_plus_get_type" glib:type-struct="PlusClass" parent="GCalc.Expression">
		<implements name="GCalc.MathOperator"/>
		<implements name="GCalc.MathBinaryOperator"/>
		<implements name="GCalc.MathPlus"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="PlusPrivate" c:type="GCalcPlusPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_plus_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Plus" c:type="GCalcPlus*"/>
			</return-value>
		</constructor>
	</class>
	<record name="PlusClass" c:type="GCalcPlusClass" glib:is-gtype-struct-for="Plus">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="PlusPrivate" c:type="GCalcPlusPrivate" disguised="1"/>
	<class name="Polynomial" c:type="GCalcPolynomial" c:symbol-prefix="polynomial" glib:type-name="GCalcPolynomial" glib:get-type="gcalc_polynomial_get_type" glib:type-struct="PolynomialClass" parent="GCalc.Expression">
		<implements name="GCalc.MathPolynomial"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="PolynomialPrivate" c:type="GCalcPolynomialPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_polynomial_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Polynomial" c:type="GCalcPolynomial*"/>
			</return-value>
		</constructor>
	</class>
	<record name="PolynomialClass" c:type="GCalcPolynomialClass" glib:is-gtype-struct-for="Polynomial">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="PolynomialPrivate" c:type="GCalcPolynomialPrivate" disguised="1"/>
	<class name="Pow" c:type="GCalcPow" c:symbol-prefix="pow" glib:type-name="GCalcPow" glib:get-type="gcalc_pow_get_type" glib:type-struct="PowClass" parent="GCalc.Expression">
		<implements name="GCalc.MathOperator"/>
		<implements name="GCalc.MathPow"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="PowPrivate" c:type="GCalcPowPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_pow_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Pow" c:type="GCalcPow*"/>
			</return-value>
		</constructor>
	</class>
	<record name="PowClass" c:type="GCalcPowClass" glib:is-gtype-struct-for="Pow">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="PowPrivate" c:type="GCalcPowPrivate" disguised="1"/>
	<class name="Result" c:type="GCalcResult" c:symbol-prefix="result" glib:type-name="GCalcResult" glib:get-type="gcalc_result_get_type" glib:type-struct="ResultClass" parent="GObject.Object">
		<implements name="GCalc.MathResult"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="ResultPrivate" c:type="GCalcResultPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_result_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Result" c:type="GCalcResult*"/>
			</return-value>
			<parameters>
				<parameter name="exp" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</parameter>
			</parameters>
		</constructor>
	</class>
	<record name="ResultClass" c:type="GCalcResultClass" glib:is-gtype-struct-for="Result">
		<field name="parent_class" readable="0" private="1">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="ResultPrivate" c:type="GCalcResultPrivate" disguised="1"/>
	<class name="Solver" c:type="GCalcSolver" c:symbol-prefix="solver" glib:type-name="GCalcSolver" glib:get-type="gcalc_solver_get_type" glib:type-struct="SolverClass" parent="GObject.Object">
		<field name="parent_instance" readable="0" private="1">
			<type name="GObject.Object" c:type="GObject"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="SolverPrivate" c:type="GCalcSolverPrivate*"/>
		</field>
		<method name="add_expression" c:identifier="gcalc_solver_add_expression" throws="1">
			<return-value transfer-ownership="full">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Solver" c:type="GCalcSolver*"/>
				</instance-parameter>
				<parameter name="exp" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<method name="solve" c:identifier="gcalc_solver_solve" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Solver" c:type="GCalcSolver*"/>
				</instance-parameter>
				<parameter name="str" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<constructor name="new" c:identifier="gcalc_solver_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Solver" c:type="GCalcSolver*"/>
			</return-value>
		</constructor>
		<property name="equation-manager" writable="1">
			<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
		</property>
		<method name="get_equation_manager" c:identifier="gcalc_solver_get_equation_manager">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Solver" c:type="GCalcSolver*"/>
				</instance-parameter>
			</parameters>
		</method>
		<method name="set_equation_manager" c:identifier="gcalc_solver_set_equation_manager">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Solver" c:type="GCalcSolver*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
				</parameter>
			</parameters>
		</method>
	</class>
	<record name="SolverClass" c:type="GCalcSolverClass" glib:is-gtype-struct-for="Solver">
		<field name="parent_class" readable="0" private="1">
			<type name="GObject.ObjectClass" c:type="GObjectClass"/>
		</field>
	</record>
	<record name="SolverPrivate" c:type="GCalcSolverPrivate" disguised="1"/>
	<class name="Term" c:type="GCalcTerm" c:symbol-prefix="term" glib:type-name="GCalcTerm" glib:get-type="gcalc_term_get_type" glib:type-struct="TermClass" parent="GCalc.Expression">
		<implements name="GCalc.MathTerm"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="TermPrivate" c:type="GCalcTermPrivate*"/>
		</field>
		<constructor name="new" c:identifier="gcalc_term_new">
			<return-value transfer-ownership="full">
				<type name="GCalc.Term" c:type="GCalcTerm*"/>
			</return-value>
		</constructor>
	</class>
	<record name="TermClass" c:type="GCalcTermClass" glib:is-gtype-struct-for="Term">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="TermPrivate" c:type="GCalcTermPrivate" disguised="1"/>
	<class name="Variable" c:type="GCalcVariable" c:symbol-prefix="variable" glib:type-name="GCalcVariable" glib:get-type="gcalc_variable_get_type" glib:type-struct="VariableClass" parent="GCalc.Expression">
		<implements name="GCalc.MathVariable"/>
		<implements name="GCalc.Hashable"/>
		<field name="parent_instance" readable="0" private="1">
			<type name="GCalc.Expression" c:type="GCalcExpression"/>
		</field>
		<field name="priv" readable="0" private="1">
			<type name="VariablePrivate" c:type="GCalcVariablePrivate*"/>
		</field>
	</class>
	<record name="VariableClass" c:type="GCalcVariableClass" glib:is-gtype-struct-for="Variable">
		<field name="parent_class" readable="0" private="1">
			<type name="GCalc.ExpressionClass" c:type="GCalcExpressionClass"/>
		</field>
	</record>
	<record name="VariablePrivate" c:type="GCalcVariablePrivate" disguised="1"/>
	<interface name="Hashable" c:type="GCalcHashable" c:symbol-prefix="hashable" glib:type-name="GCalcHashable" glib:get-type="gcalc_hashable_get_type" glib:type-struct="HashableIface">
		<prerequisite name="GObject.Object"/>
		<method name="hash" c:identifier="gcalc_hashable_hash">
			<return-value transfer-ownership="full">
				<type name="guint" c:type="guint"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Hashable" c:type="GCalcHashable*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="hash" invoker="hash">
			<return-value transfer-ownership="full">
				<type name="guint" c:type="guint"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.Hashable" c:type="GCalcHashable*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="HashableIface" c:type="GCalcHashableIface" glib:is-gtype-struct-for="Hashable">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="hash">
			<callback name="hash" c:type="hash">
				<return-value transfer-ownership="full">
					<type name="guint" c:type="guint"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.Hashable" c:type="GCalcHashable*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathAssign" c:type="GCalcMathAssign" c:symbol-prefix="math_assign" glib:type-name="GCalcMathAssign" glib:get-type="gcalc_math_assign_get_type" glib:type-struct="MathAssignIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathOperator"/>
		<prerequisite name="GCalc.MathBinaryOperator"/>
		<method name="evaluate" c:identifier="gcalc_math_assign_evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathAssign" c:type="GCalcMathAssign*"/>
				</instance-parameter>
			</parameters>
		</method>
	</interface>
	<record name="MathAssignIface" c:type="GCalcMathAssignIface" glib:is-gtype-struct-for="MathAssign">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="MathBinaryOperator" c:type="GCalcMathBinaryOperator" c:symbol-prefix="math_binary_operator" glib:type-name="GCalcMathBinaryOperator" glib:get-type="gcalc_math_binary_operator_get_type" glib:type-struct="MathBinaryOperatorIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathOperator"/>
	</interface>
	<record name="MathBinaryOperatorIface" c:type="GCalcMathBinaryOperatorIface" glib:is-gtype-struct-for="MathBinaryOperator">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="MathConstant" c:type="GCalcMathConstant" c:symbol-prefix="math_constant" glib:type-name="GCalcMathConstant" glib:get-type="gcalc_math_constant_get_type" glib:type-struct="MathConstantIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<method name="add" c:identifier="gcalc_math_constant_add">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add" invoker="add">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="subtract" c:identifier="gcalc_math_constant_subtract">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="subtract" invoker="subtract">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="multiply" c:identifier="gcalc_math_constant_multiply">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="multiply" invoker="multiply">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="divide" c:identifier="gcalc_math_constant_divide">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="divide" invoker="divide">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="neg" c:identifier="gcalc_math_constant_neg">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="neg" invoker="neg">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="pow" c:identifier="gcalc_math_constant_pow">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="pow" invoker="pow">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</instance-parameter>
				<parameter name="c" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathConstantIface" c:type="GCalcMathConstantIface" glib:is-gtype-struct-for="MathConstant">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="add">
			<callback name="add" c:type="add">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</instance-parameter>
					<parameter name="c" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="subtract">
			<callback name="subtract" c:type="subtract">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</instance-parameter>
					<parameter name="c" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="multiply">
			<callback name="multiply" c:type="multiply">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</instance-parameter>
					<parameter name="c" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="divide">
			<callback name="divide" c:type="divide">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</instance-parameter>
					<parameter name="c" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="neg">
			<callback name="neg" c:type="neg">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="pow">
			<callback name="pow" c:type="pow">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</instance-parameter>
					<parameter name="c" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathConstantComplex" c:type="GCalcMathConstantComplex" c:symbol-prefix="math_constant_complex" glib:type-name="GCalcMathConstantComplex" glib:get-type="gcalc_math_constant_complex_get_type" glib:type-struct="MathConstantComplexIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathConstant"/>
		<method name="real" c:identifier="gcalc_math_constant_complex_real">
			<return-value transfer-ownership="full">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="real" invoker="real">
			<return-value transfer-ownership="full">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="imag" c:identifier="gcalc_math_constant_complex_imag">
			<return-value transfer-ownership="full">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="imag" invoker="imag">
			<return-value transfer-ownership="full">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="zero" c:identifier="gcalc_math_constant_complex_zero">
			<return-value transfer-ownership="full">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="zero" invoker="zero">
			<return-value transfer-ownership="full">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathConstantComplexIface" c:type="GCalcMathConstantComplexIface" glib:is-gtype-struct-for="MathConstantComplex">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="real">
			<callback name="real" c:type="real">
				<return-value transfer-ownership="full">
					<type name="gdouble" c:type="gdouble"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="imag">
			<callback name="imag" c:type="imag">
				<return-value transfer-ownership="full">
					<type name="gdouble" c:type="gdouble"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="zero">
			<callback name="zero" c:type="zero">
				<return-value transfer-ownership="full">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstantComplex" c:type="GCalcMathConstantComplex*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathConstantNumber" c:type="GCalcMathConstantNumber" c:symbol-prefix="math_constant_number" glib:type-name="GCalcMathConstantNumber" glib:get-type="gcalc_math_constant_number_get_type" glib:type-struct="MathConstantNumberIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathConstant"/>
		<method name="value" c:identifier="gcalc_math_constant_number_value">
			<return-value transfer-ownership="full">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstantNumber" c:type="GCalcMathConstantNumber*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="value" invoker="value">
			<return-value transfer-ownership="full">
				<type name="gdouble" c:type="gdouble"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathConstantNumber" c:type="GCalcMathConstantNumber*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathConstantNumberIface" c:type="GCalcMathConstantNumberIface" glib:is-gtype-struct-for="MathConstantNumber">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="value">
			<callback name="value" c:type="value">
				<return-value transfer-ownership="full">
					<type name="gdouble" c:type="gdouble"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathConstantNumber" c:type="GCalcMathConstantNumber*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathDivision" c:type="GCalcMathDivision" c:symbol-prefix="math_division" glib:type-name="GCalcMathDivision" glib:get-type="gcalc_math_division_get_type" glib:type-struct="MathDivisionIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathOperator"/>
		<prerequisite name="GCalc.MathBinaryOperator"/>
	</interface>
	<record name="MathDivisionIface" c:type="GCalcMathDivisionIface" glib:is-gtype-struct-for="MathDivision">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="MathEquation" c:type="GCalcMathEquation" c:symbol-prefix="math_equation" glib:type-name="GCalcMathEquation" glib:get-type="gcalc_math_equation_get_type" glib:type-struct="MathEquationIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<property name="variables">
			<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
		</property>
		<method name="get_variables" c:identifier="gcalc_math_equation_get_variables">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathEquation" c:type="GCalcMathEquation*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_variables" invoker="get_variables">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathEquation" c:type="GCalcMathEquation*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathEquationIface" c:type="GCalcMathEquationIface" glib:is-gtype-struct-for="MathEquation">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="get_variables">
			<callback name="get_variables" c:type="get_variables">
				<return-value transfer-ownership="none">
					<type name="GCalc.ExpressionHashMap" c:type="GCalcExpressionHashMap*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathEquation" c:type="GCalcMathEquation*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathEquationManager" c:type="GCalcMathEquationManager" c:symbol-prefix="math_equation_manager" glib:type-name="GCalcMathEquationManager" glib:get-type="gcalc_math_equation_manager_get_type" glib:type-struct="MathEquationManagerIface">
		<prerequisite name="GObject.Object"/>
		<method name="find_variable" c:identifier="gcalc_math_equation_manager_find_variable">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
				</instance-parameter>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="find_variable" invoker="find_variable">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
				</instance-parameter>
				<parameter name="name" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="equations">
			<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
		</property>
		<method name="get_equations" c:identifier="gcalc_math_equation_manager_get_equations">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_equations" invoker="get_equations">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<property name="functions">
			<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
		</property>
		<method name="get_functions" c:identifier="gcalc_math_equation_manager_get_functions">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_functions" invoker="get_functions">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathEquationManagerIface" c:type="GCalcMathEquationManagerIface" glib:is-gtype-struct-for="MathEquationManager">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="find_variable">
			<callback name="find_variable" c:type="find_variable">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
					</instance-parameter>
					<parameter name="name" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_equations">
			<callback name="get_equations" c:type="get_equations">
				<return-value transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_functions">
			<callback name="get_functions" c:type="get_functions">
				<return-value transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathEquationManager" c:type="GCalcMathEquationManager*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathErrorResult" c:type="GCalcMathErrorResult" c:symbol-prefix="math_error_result" glib:type-name="GCalcMathErrorResult" glib:get-type="gcalc_math_error_result_get_type" glib:type-struct="MathErrorResultIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathResult"/>
		<property name="message">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_message" c:identifier="gcalc_math_error_result_get_message">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathErrorResult" c:type="GCalcMathErrorResult*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_message" invoker="get_message">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathErrorResult" c:type="GCalcMathErrorResult*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathErrorResultIface" c:type="GCalcMathErrorResultIface" glib:is-gtype-struct-for="MathErrorResult">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="get_message">
			<callback name="get_message" c:type="get_message">
				<return-value transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathErrorResult" c:type="GCalcMathErrorResult*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathExpression" c:type="GCalcMathExpression" c:symbol-prefix="math_expression" glib:type-name="GCalcMathExpression" glib:get-type="gcalc_math_expression_get_type" glib:type-struct="MathExpressionIface">
		<prerequisite name="GObject.Object"/>
		<method name="to_string" c:identifier="gcalc_math_expression_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="to_string" invoker="to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="solve" c:identifier="gcalc_math_expression_solve">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="solve" invoker="solve">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<property name="parent" writable="1">
			<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
		</property>
		<method name="get_parent" c:identifier="gcalc_math_expression_get_parent">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_parent" invoker="get_parent">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_parent" c:identifier="gcalc_math_expression_set_parent">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_parent" invoker="set_parent">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="expressions">
			<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
		</property>
		<method name="get_expressions" c:identifier="gcalc_math_expression_get_expressions">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_expressions" invoker="get_expressions">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathExpressionIface" c:type="GCalcMathExpressionIface" glib:is-gtype-struct-for="MathExpression">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="to_string">
			<callback name="to_string" c:type="to_string">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="solve">
			<callback name="solve" c:type="solve">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_parent">
			<callback name="get_parent" c:type="get_parent">
				<return-value transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_parent">
			<callback name="set_parent" c:type="set_parent">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_expressions">
			<callback name="get_expressions" c:type="get_expressions">
				<return-value transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathFunction" c:type="GCalcMathFunction" c:symbol-prefix="math_function" glib:type-name="GCalcMathFunction" glib:get-type="gcalc_math_function_get_type" glib:type-struct="MathFunctionIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<method name="evaluate" c:identifier="gcalc_math_function_evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="evaluate" invoker="evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="verify_params" c:identifier="gcalc_math_function_verify_params" throws="1">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="verify_params" invoker="verify_params" throws="1">
			<return-value transfer-ownership="full">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<property name="param-types">
			<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
		</property>
		<method name="get_param_types" c:identifier="gcalc_math_function_get_param_types">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_param_types" invoker="get_param_types">
			<return-value transfer-ownership="none">
				<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<property name="name" writable="1" construct="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_name" c:identifier="gcalc_math_function_get_name">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_name" invoker="get_name">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_name" c:identifier="gcalc_math_function_set_name">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_name" invoker="set_name">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="n-params" writable="1" construct="1">
			<type name="guint" c:type="guint"/>
		</property>
		<method name="get_n_params" c:identifier="gcalc_math_function_get_n_params">
			<return-value transfer-ownership="none">
				<type name="guint" c:type="guint"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_n_params" invoker="get_n_params">
			<return-value transfer-ownership="none">
				<type name="guint" c:type="guint"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_n_params" c:identifier="gcalc_math_function_set_n_params">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_n_params" invoker="set_n_params">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="closed" writable="1">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<method name="get_closed" c:identifier="gcalc_math_function_get_closed">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_closed" invoker="get_closed">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_closed" c:identifier="gcalc_math_function_set_closed">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_closed" invoker="set_closed">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathFunctionIface" c:type="GCalcMathFunctionIface" glib:is-gtype-struct-for="MathFunction">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="evaluate">
			<callback name="evaluate" c:type="evaluate" throws="1">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="verify_params">
			<callback name="verify_params" c:type="verify_params" throws="1">
				<return-value transfer-ownership="full">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_param_types">
			<callback name="get_param_types" c:type="get_param_types">
				<return-value transfer-ownership="none">
					<type name="GCalc.ExpressionContainer" c:type="GCalcExpressionContainer*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_name">
			<callback name="get_name" c:type="get_name">
				<return-value transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_name">
			<callback name="set_name" c:type="set_name">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_n_params">
			<callback name="get_n_params" c:type="get_n_params">
				<return-value transfer-ownership="none">
					<type name="guint" c:type="guint"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_n_params">
			<callback name="set_n_params" c:type="set_n_params">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="guint" c:type="guint"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_closed">
			<callback name="get_closed" c:type="get_closed">
				<return-value transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_closed">
			<callback name="set_closed" c:type="set_closed">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathFunction" c:type="GCalcMathFunction*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="gboolean" c:type="gboolean"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathGroup" c:type="GCalcMathGroup" c:symbol-prefix="math_group" glib:type-name="GCalcMathGroup" glib:get-type="gcalc_math_group_get_type" glib:type-struct="MathGroupIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<method name="evaluate" c:identifier="gcalc_math_group_evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="evaluate" invoker="evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<property name="level" writable="1">
			<type name="GCalc.MathGroupLevel" c:type="GCalcMathGroupLevel"/>
		</property>
		<method name="get_level" c:identifier="gcalc_math_group_get_level">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathGroupLevel" c:type="GCalcMathGroupLevel"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_level" invoker="get_level">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathGroupLevel" c:type="GCalcMathGroupLevel"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_level" c:identifier="gcalc_math_group_set_level">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathGroupLevel" c:type="GCalcMathGroupLevel"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_level" invoker="set_level">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathGroupLevel" c:type="GCalcMathGroupLevel"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="closed" writable="1">
			<type name="gboolean" c:type="gboolean"/>
		</property>
		<method name="get_closed" c:identifier="gcalc_math_group_get_closed">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_closed" invoker="get_closed">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_closed" c:identifier="gcalc_math_group_set_closed">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_closed" invoker="set_closed">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathGroupIface" c:type="GCalcMathGroupIface" glib:is-gtype-struct-for="MathGroup">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="evaluate">
			<callback name="evaluate" c:type="evaluate" throws="1">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_level">
			<callback name="get_level" c:type="get_level">
				<return-value transfer-ownership="none">
					<type name="GCalc.MathGroupLevel" c:type="GCalcMathGroupLevel"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_level">
			<callback name="set_level" c:type="set_level">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="GCalc.MathGroupLevel" c:type="GCalcMathGroupLevel"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_closed">
			<callback name="get_closed" c:type="get_closed">
				<return-value transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_closed">
			<callback name="set_closed" c:type="set_closed">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathGroup" c:type="GCalcMathGroup*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="gboolean" c:type="gboolean"/>
					</parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<enumeration name="MathGroupLevel" c:type="GCalcMathGroupLevel" glib:type-name="GCalcMathGroupLevel" glib:get-type="gcalc_math_group_level_get_type">
		<member name="one" c:identifier="GCALC_MATH_GROUP_LEVEL_ONE" value="0"/>
		<member name="two" c:identifier="GCALC_MATH_GROUP_LEVEL_TWO" value="1"/>
		<member name="three" c:identifier="GCALC_MATH_GROUP_LEVEL_THREE" value="2"/>
	</enumeration>
	<interface name="MathMinus" c:type="GCalcMathMinus" c:symbol-prefix="math_minus" glib:type-name="GCalcMathMinus" glib:get-type="gcalc_math_minus_get_type" glib:type-struct="MathMinusIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathOperator"/>
		<prerequisite name="GCalc.MathBinaryOperator"/>
	</interface>
	<record name="MathMinusIface" c:type="GCalcMathMinusIface" glib:is-gtype-struct-for="MathMinus">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="MathMultiply" c:type="GCalcMathMultiply" c:symbol-prefix="math_multiply" glib:type-name="GCalcMathMultiply" glib:get-type="gcalc_math_multiply_get_type" glib:type-struct="MathMultiplyIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathOperator"/>
		<prerequisite name="GCalc.MathBinaryOperator"/>
	</interface>
	<record name="MathMultiplyIface" c:type="GCalcMathMultiplyIface" glib:is-gtype-struct-for="MathMultiply">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="MathOperator" c:type="GCalcMathOperator" c:symbol-prefix="math_operator" glib:type-name="GCalcMathOperator" glib:get-type="gcalc_math_operator_get_type" glib:type-struct="MathOperatorIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
	</interface>
	<record name="MathOperatorIface" c:type="GCalcMathOperatorIface" glib:is-gtype-struct-for="MathOperator">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="MathParameter" c:type="GCalcMathParameter" c:symbol-prefix="math_parameter" glib:type-name="GCalcMathParameter" glib:get-type="gcalc_math_parameter_get_type" glib:type-struct="MathParameterIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathVariable"/>
		<method name="set_value" c:identifier="gcalc_math_parameter_set_value" throws="1">
			<return-value transfer-ownership="full">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathParameter" c:type="GCalcMathParameter*"/>
				</instance-parameter>
				<parameter name="val" transfer-ownership="none" allow-none="1">
					<type name="GObject.Value" c:type="GValue*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_value" invoker="set_value" throws="1">
			<return-value transfer-ownership="full">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathParameter" c:type="GCalcMathParameter*"/>
				</instance-parameter>
				<parameter name="val" transfer-ownership="none" allow-none="1">
					<type name="GObject.Value" c:type="GValue*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_value" c:identifier="gcalc_math_parameter_get_value">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GObject.Value" c:type="GValue*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathParameter" c:type="GCalcMathParameter*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_value" invoker="get_value">
			<return-value transfer-ownership="full" allow-none="1">
				<type name="GObject.Value" c:type="GValue*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathParameter" c:type="GCalcMathParameter*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathParameterIface" c:type="GCalcMathParameterIface" glib:is-gtype-struct-for="MathParameter">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="set_value">
			<callback name="set_value" c:type="set_value" throws="1">
				<return-value transfer-ownership="full">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathParameter" c:type="GCalcMathParameter*"/>
					</instance-parameter>
					<parameter name="val" transfer-ownership="none" allow-none="1">
						<type name="GObject.Value" c:type="GValue*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_value">
			<callback name="get_value" c:type="get_value">
				<return-value transfer-ownership="full" allow-none="1">
					<type name="GObject.Value" c:type="GValue*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathParameter" c:type="GCalcMathParameter*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathPlus" c:type="GCalcMathPlus" c:symbol-prefix="math_plus" glib:type-name="GCalcMathPlus" glib:get-type="gcalc_math_plus_get_type" glib:type-struct="MathPlusIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathOperator"/>
		<prerequisite name="GCalc.MathBinaryOperator"/>
	</interface>
	<record name="MathPlusIface" c:type="GCalcMathPlusIface" glib:is-gtype-struct-for="MathPlus">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="MathPolynomial" c:type="GCalcMathPolynomial" c:symbol-prefix="math_polynomial" glib:type-name="GCalcMathPolynomial" glib:get-type="gcalc_math_polynomial_get_type" glib:type-struct="MathPolynomialIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<method name="evaluate" c:identifier="gcalc_math_polynomial_evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathPolynomial" c:type="GCalcMathPolynomial*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="evaluate" invoker="evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathPolynomial" c:type="GCalcMathPolynomial*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathPolynomialIface" c:type="GCalcMathPolynomialIface" glib:is-gtype-struct-for="MathPolynomial">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="evaluate">
			<callback name="evaluate" c:type="evaluate" throws="1">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathPolynomial" c:type="GCalcMathPolynomial*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathPow" c:type="GCalcMathPow" c:symbol-prefix="math_pow" glib:type-name="GCalcMathPow" glib:get-type="gcalc_math_pow_get_type" glib:type-struct="MathPowIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<prerequisite name="GCalc.MathOperator"/>
	</interface>
	<record name="MathPowIface" c:type="GCalcMathPowIface" glib:is-gtype-struct-for="MathPow">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
	</record>
	<interface name="MathResult" c:type="GCalcMathResult" c:symbol-prefix="math_result" glib:type-name="GCalcMathResult" glib:get-type="gcalc_math_result_get_type" glib:type-struct="MathResultIface">
		<prerequisite name="GObject.Object"/>
		<method name="to_string" c:identifier="gcalc_math_result_to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="to_string" invoker="to_string">
			<return-value transfer-ownership="full">
				<type name="utf8" c:type="gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<property name="expression">
			<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
		</property>
		<method name="get_expression" c:identifier="gcalc_math_result_get_expression">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_expression" invoker="get_expression">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathResultIface" c:type="GCalcMathResultIface" glib:is-gtype-struct-for="MathResult">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="to_string">
			<callback name="to_string" c:type="to_string">
				<return-value transfer-ownership="full">
					<type name="utf8" c:type="gchar*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_expression">
			<callback name="get_expression" c:type="get_expression">
				<return-value transfer-ownership="none">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathResult" c:type="GCalcMathResult*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathTerm" c:type="GCalcMathTerm" c:symbol-prefix="math_term" glib:type-name="GCalcMathTerm" glib:get-type="gcalc_math_term_get_type" glib:type-struct="MathTermIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<method name="add" c:identifier="gcalc_math_term_add" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
				</instance-parameter>
				<parameter name="t" transfer-ownership="none">
					<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="add" invoker="add" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
				</instance-parameter>
				<parameter name="t" transfer-ownership="none">
					<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="evaluate" c:identifier="gcalc_math_term_evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="evaluate" invoker="evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<function name="evaluate_constants" c:identifier="gcalc_math_term_evaluate_constants" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<parameter name="c1" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
				<parameter name="c2" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
				<parameter name="op" transfer-ownership="none">
					<type name="GCalc.MathOperator" c:type="GCalcMathOperator*"/>
				</parameter>
			</parameters>
		</function>
	</interface>
	<record name="MathTermIface" c:type="GCalcMathTermIface" glib:is-gtype-struct-for="MathTerm">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="add">
			<callback name="add" c:type="add" throws="1">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
					</instance-parameter>
					<parameter name="t" transfer-ownership="none">
						<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="evaluate">
			<callback name="evaluate" c:type="evaluate" throws="1">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathTerm" c:type="GCalcMathTerm*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
	<interface name="MathVariable" c:type="GCalcMathVariable" c:symbol-prefix="math_variable" glib:type-name="GCalcMathVariable" glib:get-type="gcalc_math_variable_get_type" glib:type-struct="MathVariableIface">
		<prerequisite name="GObject.Object"/>
		<prerequisite name="GCalc.MathExpression"/>
		<method name="evaluate" c:identifier="gcalc_math_variable_evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="evaluate" invoker="evaluate" throws="1">
			<return-value transfer-ownership="full">
				<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<property name="name" writable="1" construct="1">
			<type name="utf8" c:type="gchar*"/>
		</property>
		<method name="get_name" c:identifier="gcalc_math_variable_get_name">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_name" invoker="get_name">
			<return-value transfer-ownership="none">
				<type name="utf8" c:type="const gchar*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_name" c:identifier="gcalc_math_variable_set_name">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_name" invoker="set_name">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="value" writable="1">
			<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
		</property>
		<method name="get_value" c:identifier="gcalc_math_variable_get_value">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_value" invoker="get_value">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_value" c:identifier="gcalc_math_variable_set_value">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_value" invoker="set_value">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<property name="bind" writable="1">
			<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
		</property>
		<method name="get_bind" c:identifier="gcalc_math_variable_get_bind">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_bind" invoker="get_bind">
			<return-value transfer-ownership="none">
				<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
		<method name="set_bind" c:identifier="gcalc_math_variable_set_bind">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</parameter>
			</parameters>
		</method>
		<virtual-method name="set_bind" invoker="set_bind">
			<return-value transfer-ownership="none">
				<type name="none" c:type="void"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
				<parameter name="value" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</parameter>
			</parameters>
		</virtual-method>
		<method name="get_binded" c:identifier="gcalc_math_variable_get_binded">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</method>
		<virtual-method name="get_binded" invoker="get_binded">
			<return-value transfer-ownership="none">
				<type name="gboolean" c:type="gboolean"/>
			</return-value>
			<parameters>
				<instance-parameter name="self" transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</instance-parameter>
			</parameters>
		</virtual-method>
	</interface>
	<record name="MathVariableIface" c:type="GCalcMathVariableIface" glib:is-gtype-struct-for="MathVariable">
		<field name="parent_iface" readable="0" private="1">
			<type name="GObject.TypeInterface" c:type="GTypeInterface"/>
		</field>
		<field name="evaluate">
			<callback name="evaluate" c:type="evaluate" throws="1">
				<return-value transfer-ownership="full">
					<type name="GCalc.MathExpression" c:type="GCalcMathExpression*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_name">
			<callback name="get_name" c:type="get_name">
				<return-value transfer-ownership="none">
					<type name="utf8" c:type="const gchar*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_name">
			<callback name="set_name" c:type="set_name">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="utf8" c:type="const gchar*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_value">
			<callback name="get_value" c:type="get_value">
				<return-value transfer-ownership="none">
					<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_value">
			<callback name="set_value" c:type="set_value">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="GCalc.MathConstant" c:type="GCalcMathConstant*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_bind">
			<callback name="get_bind" c:type="get_bind">
				<return-value transfer-ownership="none">
					<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
		<field name="set_bind">
			<callback name="set_bind" c:type="set_bind">
				<return-value transfer-ownership="none">
					<type name="none" c:type="void"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</instance-parameter>
					<parameter name="value" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</parameter>
				</parameters>
			</callback>
		</field>
		<field name="get_binded">
			<callback name="get_binded" c:type="get_binded">
				<return-value transfer-ownership="none">
					<type name="gboolean" c:type="gboolean"/>
				</return-value>
				<parameters>
					<instance-parameter name="self" transfer-ownership="none">
						<type name="GCalc.MathVariable" c:type="GCalcMathVariable*"/>
					</instance-parameter>
				</parameters>
			</callback>
		</field>
	</record>
</namespace>
</repository>
