make obstack object allocators more type-safe