final Functional functional = method.getAnnotation(Functional.class);
final ClosureName name = new StringClosureName(method.getSimpleName().toString());
final Name parameterType = new StringName(typeElement.getQualifiedName().toString());
final Closure closure;
if (method.getReturnType().getKind() == TypeKind.BOOLEAN) {
closure = new BaseClosure(name, parameterType, functional.nullsafe());
} else {
final Name returnType = new StringName(method.getReturnType().toString());
closure = new BaseClosure(name, parameterType, returnType, functional.nullsafe());