/*
 * 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.
*/
module Z {
    typedef fixed<8, 6> H;
};
module X {
    typedef fixed<10, 2> H;
    module PARAM {
        typedef fixed<31, 2> H;
    };
};
typedef fixed<31, 6> fixed_1;
module EXTENDED {
    module X {
        module PARAM {
            typedef fixed<8, 2> H;
        };
    };
};
interface Y {
    typedef sequence<::fixed_1> H;
    ::fixed_1
    op_k(
        in ::fixed_1 p1,
        out ::fixed_1 p3,
        inout ::fixed_1 p2
    );
    H
    op_h(
        in H p1,
        out H p3,
        inout H p2
    );
    ::X::H
    op_m(
        in ::X::PARAM::H p1,
        out ::X::PARAM::H p3,
        inout ::X::PARAM::H p2
    );
    ::Z::H
    op_n(
        in ::fixed_1 p1,
        out ::fixed_1 p3,
        inout ::fixed_1 p2
    );
    ::EXTENDED::X::PARAM::H
    extended_op_m(
        in ::EXTENDED::X::PARAM::H p1,
        out ::EXTENDED::X::PARAM::H p3,
        inout ::EXTENDED::X::PARAM::H p2
    );
};
