class Atom<Token> implements Parser<Token,Token>{
    Token tok;
    Atom(Token tok){this.tok=tok;}

    public Pair<Token,Li<Token>> parse(Li<Token> xs){
	if (xs.isEmpty()) return null;
	if( tok.equals(xs.hd)) 
	    return new Pair<Token,Li<Token>>(xs.hd,xs.tl);
	return null;
    }

  public static void main(String [] args){
      Parser<Character,Character> p
        = new Atom<Character>('(');
      System.out.println(
	  p.parse(new Li<Character>('(',new Li<Character>())));
      System.out.println(
	  p.parse(new Li<Character>('ü',new Li<Character>())));
  }
}
