<commit_before>2.1.2
=====

* Lower required SDL2 version to 2.0.2.

2.1.1
=====

* `SDL.Input.Mouse` new has a new API for fetching the location of the mouse. This
  API gives you greater control over finding the mouse position with respect to the
  various "modes" a mouse can be in. The old API still exists, but will be removed
  at some point in the future.
* `SDL.Raw` now has a binding to `SDL_free`.

2.1.0
=====

* Introduce `initializeAll` and deprecate `InitEverything`. To fix this deprecation
  warning, change `initialize [InitEverything]` to `initializeAll`.
* `surfaceColorKey`, `surfaceFillRect` and `surfaceFillRects` now all operate on
  on RGBA `V4 Word8` values. They all implicitly map and unmap (using `SDL_MapRGBA`
  and `SDL_GetRGBA` respectively).
* `SDL.mapRGB` is now deprecated, as this conversion is always done for you.
  If you still need this routine, use `SDL.Raw.mapRGB`.
* Fix a runtime crash when reading the current BlendMode of a texture. Thanks to
  @seppeljordan for discovering and fixing this bug.

2.0.0
=====
* Introduce a set of comprehensive high-level bindings to SDL. These bindings
  should allow users to work with SDL while writing idiomatic Haskell code. They
  take care of pointer manipulation, and wrap up values in much more "natural"
  data types. The high-level bindings live in the `SDL` namespace, and have been<commit_msg>Mention in changelist fix for TextEditingEvent<commit_after>2.1.2
=====

* Lower required SDL2 version to 2.0.2.
* Fix decoding of `TextEditingEvent` where the Raw bindings failed to stop reading
  character data past the null terminator.

2.1.1
=====

* `SDL.Input.Mouse` new has a new API for fetching the location of the mouse. This
  API gives you greater control over finding the mouse position with respect to the
  various "modes" a mouse can be in. The old API still exists, but will be removed
  at some point in the future.
* `SDL.Raw` now has a binding to `SDL_free`.

2.1.0
=====

* Introduce `initializeAll` and deprecate `InitEverything`. To fix this deprecation
  warning, change `initialize [InitEverything]` to `initializeAll`.
* `surfaceColorKey`, `surfaceFillRect` and `surfaceFillRects` now all operate on
  on RGBA `V4 Word8` values. They all implicitly map and unmap (using `SDL_MapRGBA`
  and `SDL_GetRGBA` respectively).
* `SDL.mapRGB` is now deprecated, as this conversion is always done for you.
  If you still need this routine, use `SDL.Raw.mapRGB`.
* Fix a runtime crash when reading the current BlendMode of a texture. Thanks to
  @seppeljordan for discovering and fixing this bug.

2.0.0
=====
* Introduce a set of comprehensive high-level bindings to SDL. These bindings
  should allow users to work with SDL while writing idiomatic Haskell code. They
  take care of pointer manipulation, and wrap up values in much more "natural"
  data types. The high-level bindings live in the `SDL` namespace, and have been
{'fraction_non_alphanumeric': 0.07857874957294157, 'fraction_numerical': 0.012299282541851725, 'mean_word_length': 4.154929577464789, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4347857', 'n_tokens_mistral': 901, 'n_tokens_neox': 829, 'n_words': 416}