Nützliche Funktion: [`using :: a -> Strategy a -> a`](https://hackage.haskell.org/package/parallel-3.2.1.1/docs/Control-Parallel-Strategies.html#v:using)
welche nach `n` Einsortierungsversuchen das zu sortierende Element verwirft (z.B. als Liste oder Array) und somit die Sortierung
frühestmöglich abbricht.
Füllen sie die Speedup-Tabelle erneut aus. Was ändert sich?
Issue 3
-------
Sie besitzen eine Bank und sollen Überweisungen programmieren. Sie finden in `Banking.hs` alles fertig. Nur noch die `debit`-Funktion muss geschrieben werden,
Im Szenario der Main-Funktionen hat die Bank 10 verschiedene Server, die gleichzeitig dieselbe Transaktion auf der Datenbank ausführen wollen
(also haben sie mehrere "Banken" in der Main, die auch alle etwas ausgeben, aber alle zeigen denselben Kontostand, da die Konten selbst nur 1x existieren).
Hint (optional!): Mittels `stack exec -- MainBanking1 +RTS -ls` können Sie ein eventlog ausgeben lassen, welches Sie mittels `threadscope` (`stack install threadscope`) ansehen können.
Führen Sie anschließend MainSTMBanking1 und MainSTMBanking2 aus. Was können Sie beobachten? Inwiefern unterscheiden sich die Ergebnisse zu den `MVar`s?
Hint (optional!): Mittels `stack exec -- MainBanking1 +RTS -ls` können Sie ein eventlog ausgeben lassen, welches Sie mittels `threadscope` (`stack install threadscope`) ansehen können.
Wo sind die Unterschiede zu `MVar`s (Performance, Einfachheit der Programmierung, Resistenz gegen Programmierfehler, ..)? Beschreiben Sie kurz wie sich ihre Probleme mit
der jeweiligen Implementation anfühlten und wieso Sie welche Lösung selbst bevorzugen würden.