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}