001package arez;
002
003/**
004 * Functional interface for returning a value.
005 *
006 * @param <T> The type of the returned value.
007 */
008@FunctionalInterface
009public interface Function<T>
010{
011  /**
012   * Return a value.
013   *
014   * @return the value generated by function.
015   * @throws Throwable if unable to return value.
016   */
017  T call()
018    throws Throwable;
019}