
OK I see, thanks. Ankit, if your goal is to create a brand new BigInt type, then your point 2 "backend implemented with the help Boost.Math" is not exactly valid. Boost.Math provides bindings, that is wrappers around existing arbitrary precision types provided by 3rd party libraries. It provides a way to write functions that can take either such types or fundamental types as parameter. So you wouldn't really *use* Boost.Math binding, it's even the contrary: ideally you would provide the necessary interface to ensure compatibility with Boost.Math bindings. As for the Proto frontend, something like that is not tight to this particular BigInt type but is something that would be useful for any backend actually. So it might rather make sense to implement that as an extra layer upon Boost.Math bindings so that any backend can leverage it. So to summarize, I can see 3 distinct actions: 1) implement your BigInt backend 2) provide a Boost.Math binding compliant interface for this backend 3) implement a frontend for Boost.Math binding based on Boost.Proto So 1)+2) can be one GSoC project, and 3) another one, actually. Makes sense? Bruno