code: public static boolean isFunctionalInterface(JvmGenericType type, IActionPrototypeProvider sarlSignatureProvider) {
  		if (type != null && type.isInterface()) {
  			final Map<ActionPrototype, JvmOperation> operations = new HashMap<>();
  			populateInterfaceElements(type, operations, null, sarlSignatureProvider);
  			if (operations.size() == 1) {
  				final JvmOperation op = operations.values().iterator().next();
  				return !op.isStatic() && !op.isDefault();
  			}
  		}
  		return false;
  	}
docs: Replies if the given type is a functional interface.
  
  <p>This function does not test if the {@code @FunctionalInterface} is attached to the type.
  The function counts the number of operations.
  
  @param type the type to test.
  @param sarlSignatureProvider the provider of SARL operation signatures.
  @return <code>true</code> if the given type is final.