Allow non camel-case types for FFI
Fix Hash trait usage.
- Use crate collections.
- Use fmt::Show instead of ToStr.