From reading the Wikipedia page on the MPL, it seems to me that you can "link from code with a different license". The license is even marked as such in the summary box.
If you read the actual license, in its 2.0 version, section "Distribution of a Larger Work", you can read that you have to keep the library in question under MPL, regardless if you distribute your own software in source or executable form. That is, you may not keep the source code of that library under a closed, proprietary license; but this does not apply at all to your code. This is true even if the MPL code is marked as "Incompatible with secondary licenses", since that would only apply if you were mixing the library's source with your own.
The LGPL provides a similar case, and it states explicitly that:
If you dynamically link against an LGPL'd library already present on the user's computer, you need not convey the library's source. On the other hand, if you yourself convey the executable LGPL'd library along with your application, whether linked with statically or dynamically, you must also convey the library's sources, in one of the ways for which the LGPL provides.
Substitute "convey the library's source" (LGPL) by "create a Larger Work under terms of Your choice" (MPL) and you have your case, I guess.
This is my opinion, but I am not a legal expert. Furthermore, this is under the assumption that when you say you "extracted a function and certain type definitions", you mean that you browsed the library in order to understand how to use it; you did not copy a relevant piece of code and integrated it with your own source code.