Symbolic Reasoning as a Library