// Java class com.example.Customprefix is a proxy for talking to a Go program.
//   gobind -lang=java -javapkg=com.example customprefix
//
// File is generated by gobind. Do not edit.
package com.example;

import go.Seq;

public abstract class Customprefix {
    private Customprefix() {} // uninstantiable
    
    public static void F() {
        go.Seq _in = new go.Seq();
        go.Seq _out = new go.Seq();
        Seq.send(DESCRIPTOR, CALL_F, _in, _out);
    }
    
    private static final int CALL_F = 1;
    private static final String DESCRIPTOR = "customprefix";
}
