/*
 * Copyright 2018, Data61, CSIRO (ABN 41 687 119 230)
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

procedure Echo {
    string echo_string(in string s);
    int echo_int(in int i);
    float echo_float(in float f);
    double echo_double(in double d);
    int echo_mix(in double d);
    int echo_parameter(in int pin, out int pout);
};
