A type provider for BSON