 	///
 	/// - parameter statement: A compiled SQL statement
 	/// - parameter key: A key used to identify the statement
-	public func setPreparedStatement(_ statement: Statement, forKey key: String) {
+	public func setPreparedStatement(_ statement: Statement, forKey key: AnyHashable) {
 //		precondition(statement.database.db == self.db)
 		preparedStatements[key] = statement
 	}

	/// Returns or stores the compiled SQL statement for `key`.
	///
	/// - parameter key: The key used to identify the statement
	public subscript(key: String) -> Statement? {
		get {
			return preparedStatements[key]
		}

	/// - throws: An error if `sql` could not be compiled
	///
	/// - returns: A compiled SQL statement
	public func prepareStatement(sql: String, forKey key: AnyHashable) throws {
		preparedStatements[key] = try prepare(sql: sql)
	}

