public Set<ResolvedMethod> getMethodsToImplement(final MemberDeclaration delegate) { final Function1<TypeReference, Iterable<? extends ResolvedMethod>> _function = (TypeReference it) -> { return it.getDeclaredResolvedMethods(); }; final Function1<ResolvedMethod, Boolean> _function_1 = (ResolvedMethod it) -> { final Function1<ResolvedParameter, TypeReference> _function_2 = (ResolvedParameter it_1) -> { return it_1.getResolvedType(); }; MethodDeclaration _findDeclaredMethod = delegate.getDeclaringType().findDeclaredMethod(it.getDeclaration().getSimpleName(), ((TypeReference[])Conversions.unwrapArray(IterableExtensions.map(it.getResolvedParameters(), _function_2), TypeReference.class))); return Boolean.valueOf((_findDeclaredMethod == null)); }; final Function1<ResolvedMethod, Boolean> _function_2 = (ResolvedMethod it) -> { boolean _isObjectMethod = this.isObjectMethod(it); return Boolean.valueOf((!_isObjectMethod)); }; final Function1<ResolvedMethod, String> _function_3 = (ResolvedMethod it) -> { return it.getSimpleSignature(); }; final Function1<List<ResolvedMethod>, ResolvedMethod> _function_4 = (List<ResolvedMethod> it) -> { return IterableExtensions.<ResolvedMethod>head(it); }; return IterableExtensions.<ResolvedMethod>toSet(IterableExtensions.<List<ResolvedMethod>, ResolvedMethod>map(IterableExtensions.<String, ResolvedMethod>groupBy(IterableExtensions.<ResolvedMethod>filter(IterableExtensions.<ResolvedMethod>filter(Iterables.<ResolvedMethod>concat(IterableExtensions.<TypeReference, Iterable<? extends ResolvedMethod>>map(this.getDelegatedInterfaces(delegate), _function)), _function_1), _function_2), _function_3).values(), _function_4)); }