module ABSChat.Main; data ServerMsg = Welcome | GoodBye | NewMessage(String); data ClientMsg = ChatMessage(String,String); interface Server { Unit start(); [Near] Session connect(Client c); } interface Session { Unit receive(ClientMsg m); Unit close(); } interface Client { Unit setServer(Server s); Unit start(); Unit receive(ServerMsg m); [Near] ClientGUI getGUI(); } interface ClientGUI { Unit init2(); [Far] Button getSendButton(); [Far] TextField getTextField(); } interface ClientIntern extends Client { Unit sendText(String text); } interface ClientGUIIntern extends ClientGUI { [Near] ClientIntern getClientIntern(); String getTextFieldText(); } class ClientGUIImpl([Near] ClientIntern client) implements ClientGUIIntern { Window gui; Button sendButton; TextField textField; Bool initialized = False; { gui = new cog WindowImpl(); } Unit init2() { Fut