package stk;

public interface Stk<E> {
	/**
	 * push value
	 * @param val as value
	 * @return new stack
	 */
	public Stk<E> push(final E val);
	/**
	 * pop value
	 * @return old stack
	 */
	public Stk<E> pop();
	/**
	 * @return value on top of stack;
	 */
	public E top();
	/**
	 * @return size
	 */
	public int size();
}
