we currently generate all types and function defs. but the defs conflict with the implementation in the lib.