[polyml] C finalizers or weak pointer mechanism?