/* 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
*/ 
typedef fixed <31, 2> f1_1;
typedef fixed <8,  2> f1_2;

interface if {
	typedef fixed <31, 2> f2_1;
	typedef fixed <8,  2> f2_2;

	void op2_1(in  f1_1 in_op2_1_f1_1);
	void op2_2(out f2_2 out_op2_2_f2_2);
};

module m {
	typedef fixed <31, 2> f3_1;
	typedef fixed <8,  2> f3_2;

	interface m_if {
		typedef fixed <31, 2> f4_1;
		typedef fixed <8,  2> f4_2;
		
		void op4_1(in    f1_1 in_m_if_op4_1_f1_1);
		//void op4_2(out   f2_1 out_m_if_op4_2_f2_1);
		void op4_3(inout f3_1 inout_m_if_op4_3_f3_1);
		void op4_4(in    f4_1 in_m_if_op4_4_f4_1);
	};
};

//get heavy with the consts
//const fixed fixed1 = 1234.56D;
//const fixed fixed2 = 1000.56d;
//const fixed fixed3 = 000.56D;
//const fixed fixed4 = 0.56D;
//
//const fixed fixed5 = 1234.56000D;
