2024/06/24

2024-06-24 00:00:10 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 246 seconds)
2024-06-24 00:10:52 +0200falafel(~falafel@2a0c:5a87:3103:ec01::62b8)
2024-06-24 00:12:20 +0200solaire(~solaire@2400:4050:aea2:2d00:5665:2fd7:3543:9485)
2024-06-24 00:15:22 +0200 <haskellbridge> <aaron> adamCS: Checking membership in the IntSet probably isn't great. Maybe try both calculating the length of the result first and produce the result by iterating through the IntSet?
2024-06-24 00:17:51 +0200acidjnk_new3(~acidjnk@p200300d6e714dc7721c0cda5f0392c78.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-06-24 00:21:17 +0200emm(~emm@user/edmeme) (Quit: WeeChat 4.3.3)
2024-06-24 00:27:06 +0200solaire(~solaire@2400:4050:aea2:2d00:5665:2fd7:3543:9485) (Ping timeout: 268 seconds)
2024-06-24 00:27:36 +0200solaire(~solaire@fp74528110.tkyc408.ap.nuro.jp)
2024-06-24 00:28:24 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-06-24 00:35:32 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-06-24 00:38:55 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:3bd3:f968:ce64:ffee)
2024-06-24 00:56:55 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 260 seconds)
2024-06-24 00:57:47 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-06-24 01:00:24 +0200aaronv(~aaronv@user/aaronv)
2024-06-24 01:19:44 +0200pyooque(~puke@user/puke)
2024-06-24 01:19:44 +0200pukeGuest79
2024-06-24 01:19:44 +0200Guest79(~puke@user/puke) (Killed (copper.libera.chat (Nickname regained by services)))
2024-06-24 01:19:44 +0200pyooquepuke
2024-06-24 01:21:04 +0200puke(~puke@user/puke) (Max SendQ exceeded)
2024-06-24 01:21:33 +0200puke(~puke@user/puke)
2024-06-24 01:25:14 +0200igemnace(~igemnace@user/igemnace) (Ping timeout: 252 seconds)
2024-06-24 01:25:48 +0200natto(~natto@129.154.243.159) (Ping timeout: 252 seconds)
2024-06-24 01:26:22 +0200sajith_(~sajith@user/sajith)
2024-06-24 01:26:25 +0200natto(~natto@129.154.243.159)
2024-06-24 01:26:54 +0200sajith(~sajith@user/sajith) (Ping timeout: 252 seconds)
2024-06-24 01:27:22 +0200igemnace(~igemnace@user/igemnace)
2024-06-24 01:28:26 +0200tmr(~tamer@5.2.74.82)
2024-06-24 01:29:05 +0200tamer(~tamer@user/tamer) (Ping timeout: 252 seconds)
2024-06-24 01:29:05 +0200andrea_r(~user@93-49-96-212.ip366.fastwebnet.it) (Ping timeout: 252 seconds)
2024-06-24 01:29:24 +0200andrea_r(~user@93-49-96-212.ip366.fastwebnet.it)
2024-06-24 01:35:20 +0200RandomOverlord(~RandomOve@2603-9009-05f0-8210-d04b-f603-057a-2831.inf6.spectrum.com)
2024-06-24 01:36:30 +0200 <DreamDeckup> do you guys know where I could find beginner exercises to learn the syntax and standard library functions?
2024-06-24 01:36:41 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 256 seconds)
2024-06-24 01:38:59 +0200 <geekosaur> https://en.wikibooks.org/wiki/Haskell has exercises
2024-06-24 01:39:06 +0200 <geekosaur> @where cis194
2024-06-24 01:39:07 +0200 <lambdabot> <https://github.com/byorgey/haskell-course>,<https://www.seas.upenn.edu/~cis194/spring13/lectures.html>
2024-06-24 01:40:55 +0200 <DreamDeckup> much appreciated
2024-06-24 01:44:59 +0200RandomOverlord(~RandomOve@2603-9009-05f0-8210-d04b-f603-057a-2831.inf6.spectrum.com) (Ping timeout: 260 seconds)
2024-06-24 02:00:03 +0200henry40408(~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds))
2024-06-24 02:00:05 +0200DreamDeckup(~DreamDeck@bras-base-lprrpq1404w-grc-06-184-145-181-233.dsl.bell.ca) (Ping timeout: 240 seconds)
2024-06-24 02:00:17 +0200DreamDeckup(~DreamDeck@184.145.181.233)
2024-06-24 02:00:31 +0200henry40408(~henry4040@175.182.111.183)
2024-06-24 02:05:03 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:3bd3:f968:ce64:ffee) (Quit: Leaving)
2024-06-24 02:15:27 +0200Guest62(~Guest62@2600:2b00:8c5f:2100::e039)
2024-06-24 02:22:30 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-06-24 02:24:19 +0200Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-06-24 02:24:57 +0200Guest62(~Guest62@2600:2b00:8c5f:2100::e039) (Quit: Client closed)
2024-06-24 02:32:48 +0200henry40408(~henry4040@175.182.111.183) (Quit: Ping timeout (120 seconds))
2024-06-24 02:33:12 +0200henry40408(~henry4040@175.182.111.183)
2024-06-24 02:39:40 +0200Square(~Square@user/square)
2024-06-24 02:41:32 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 268 seconds)
2024-06-24 02:45:37 +0200aaronv(~aaronv@user/aaronv)
2024-06-24 02:47:14 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-06-24 02:51:43 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 268 seconds)
2024-06-24 02:52:36 +0200aaronv(~aaronv@user/aaronv)
2024-06-24 02:54:22 +0200falafel(~falafel@2a0c:5a87:3103:ec01::62b8) (Ping timeout: 256 seconds)
2024-06-24 02:56:02 +0200solaire(~solaire@fp74528110.tkyc408.ap.nuro.jp) (Ping timeout: 268 seconds)
2024-06-24 02:57:34 +0200solaire(~solaire@fp74528110.tkyc408.ap.nuro.jp)
2024-06-24 03:00:16 +0200solaire(~solaire@fp74528110.tkyc408.ap.nuro.jp) (Read error: Connection reset by peer)
2024-06-24 03:02:32 +0200solaire(~solaire@fp74528110.tkyc408.ap.nuro.jp)
2024-06-24 03:02:36 +0200koz(~koz@121.99.240.58) (Quit: ZNC 1.8.2 - https://znc.in)
2024-06-24 03:03:22 +0200koz(~koz@121.99.240.58)
2024-06-24 03:20:32 +0200pavonia(~user@user/siracusa)
2024-06-24 03:31:15 +0200aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2024-06-24 03:31:40 +0200aaronv(~aaronv@user/aaronv)
2024-06-24 03:43:55 +0200aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2024-06-24 03:44:16 +0200aaronv(~aaronv@user/aaronv)
2024-06-24 03:44:52 +0200solaire(~solaire@fp74528110.tkyc408.ap.nuro.jp) (Ping timeout: 246 seconds)
2024-06-24 03:48:14 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:53bd:714:3029:d610)
2024-06-24 03:49:32 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:53bd:714:3029:d610) (Client Quit)
2024-06-24 03:50:40 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:8e19:9b51:38c6:2dc4)
2024-06-24 03:51:13 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2024-06-24 04:00:20 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds)
2024-06-24 04:21:41 +0200ubert(~Thunderbi@p548c973d.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2024-06-24 04:22:46 +0200tabemann_(~tabemann@2600:1700:7990:24e0:2412:852b:477a:286f) (Remote host closed the connection)
2024-06-24 04:23:10 +0200tabemann_(~tabemann@2600:1700:7990:24e0:7602:6b3:85b8:f636)
2024-06-24 04:26:04 +0200erty(~user@user/aeroplane)
2024-06-24 04:42:29 +0200RandomOverlord(~RandomOve@2603-9009-05f0-8210-d04b-f603-057a-2831.inf6.spectrum.com)
2024-06-24 04:47:05 +0200RandomOverlord(~RandomOve@2603-9009-05f0-8210-d04b-f603-057a-2831.inf6.spectrum.com) (Ping timeout: 256 seconds)
2024-06-24 04:51:40 +0200td_(~td@i53870927.versanet.de) (Ping timeout: 256 seconds)
2024-06-24 04:53:39 +0200td_(~td@i5387092F.versanet.de)
2024-06-24 04:55:09 +0200phma_(phma@2001:5b0:211f:da48:e550:db55:4d2e:255e)
2024-06-24 04:55:18 +0200phma(phma@2001:5b0:211f:5fd8:d0b2:ccd9:b64:4a70) (Read error: Connection reset by peer)
2024-06-24 04:57:45 +0200madhavanmiui(~madhavanm@2409:40f4:10f8:3f28:8000::)
2024-06-24 04:57:54 +0200madhavanmiui(~madhavanm@2409:40f4:10f8:3f28:8000::) (Remote host closed the connection)
2024-06-24 05:01:31 +0200erty(~user@user/aeroplane) (Ping timeout: 268 seconds)
2024-06-24 05:02:32 +0200aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2024-06-24 05:05:50 +0200DreamDeckup(~DreamDeck@184.145.181.233) (Remote host closed the connection)
2024-06-24 05:08:28 +0200aaronv(~aaronv@user/aaronv)
2024-06-24 05:08:46 +0200erty(~user@user/aeroplane)
2024-06-24 05:10:28 +0200aaronv(~aaronv@user/aaronv) (Remote host closed the connection)
2024-06-24 05:10:47 +0200aaronv(~aaronv@user/aaronv)
2024-06-24 05:11:02 +0200wbooze(~wbooze@2a02:908:1244:9a20:dadb:a586:6c1f:5f08) (Remote host closed the connection)
2024-06-24 05:13:01 +0200solaire(~solaire@fp74528110.tkyc408.ap.nuro.jp)
2024-06-24 05:14:35 +0200 <monochrom> GHC2021 includes standalone deriving <3 But too bad can't just write "deriving instance (Show M, Eq M)", have to split into two clauses. (No biggie. :) )
2024-06-24 05:16:16 +0200 <monochrom> Moreover it is OK if I put the standalone deriving clauses before the type definition >:D
2024-06-24 05:19:41 +0200solaire(~solaire@fp74528110.tkyc408.ap.nuro.jp) (Ping timeout: 240 seconds)
2024-06-24 05:20:58 +0200 <monochrom> My use case: I am making an exam paper. I am coding up and testing my solution before putting on the exam (copy-paste, delete code, keep type sigs). I want to be too lazy to delete "deriving (Eq, Show)" after a type def. Standalone deriving lets me do that.
2024-06-24 05:24:10 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-06-24 05:24:22 +0200solaire(~solaire@2400:4050:aea2:2d00:327e:e5b7:3dcc:1120)
2024-06-24 05:25:06 +0200visilii(~visilii@188.254.110.246)
2024-06-24 05:31:51 +0200Square(~Square@user/square) (Remote host closed the connection)
2024-06-24 05:38:47 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2024-06-24 05:39:01 +0200aforemny_(~aforemny@2001:9e8:6cf7:eb00:b3e4:61be:b332:f613)
2024-06-24 05:40:41 +0200aforemny(~aforemny@i59F516C6.versanet.de) (Ping timeout: 268 seconds)
2024-06-24 05:45:18 +0200JimL(~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2024-06-24 05:46:51 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 268 seconds)
2024-06-24 05:48:17 +0200JimL(~quassel@89.162.16.26)
2024-06-24 06:08:59 +0200wlhn(~wlhn@82-181-39-15.bb.dnainternet.fi)
2024-06-24 06:12:42 +0200wlhn_(~wlhn@dl46fx8hbfttwvhb-h1ly-3.rev.dnainternet.fi) (Ping timeout: 256 seconds)
2024-06-24 06:19:06 +0200aaronv(~aaronv@user/aaronv)
2024-06-24 06:29:03 +0200danse-nr3(~danse-nr3@rm-19-49-201.service.infuturo.it)
2024-06-24 06:29:47 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-06-24 06:29:50 +0200philopsos1(~caecilius@user/philopsos)
2024-06-24 06:39:00 +0200 <erty> Pardon my lack of knowledge, but in a complex Haskell project, how do developers have to think about the performance?
2024-06-24 06:39:05 +0200 <erty> Is it like writing java code (threading etc.) or javascript code (event loop)? I know we have laziness in Haskell, but how do developers improve performance in a complex level?
2024-06-24 06:40:27 +0200 <monochrom> I don't understand how threading or event loop improve performance.
2024-06-24 06:43:55 +0200 <erty> Threading lets you write concurrent or parallel code.
2024-06-24 06:44:03 +0200 <erty> Event loop manages that for you by offloading asynchronous tasks to kernel.
2024-06-24 06:44:10 +0200 <monochrom> OK, s/concurrent or//
2024-06-24 06:45:35 +0200 <erty> For nodejs, its not exactly performance improvement but still, developer only has to focus on user centric code
2024-06-24 06:48:30 +0200 <joeyadams> Well, the runtime system ought to handle the async part for you. GHC doesn't have async/await, it has "green threads" which basically means regular IO threads are handled efficiently and use async IO behind the scenes.
2024-06-24 06:48:53 +0200 <joeyadams> (unless your code has to run on Windows...)
2024-06-24 06:50:53 +0200 <joeyadams> But if you're asking about general performance guidelines, I'm going to be lazy and link the first Google result: https://wiki.haskell.org/Performance
2024-06-24 06:52:00 +0200 <monochrom> The book "Parallel and Concurrent Programming in Haskell" is a good place to start, but I have lost where to find a free version.
2024-06-24 06:55:20 +0200 <geekosaur> https://github.com/clojurians-org/haskell-ebook/blob/master/Parallel%20and%20Concurrent%20Programm…
2024-06-24 06:55:27 +0200 <erty> joeyadams: Thanks for the explanation. Your answer did satisfied my curiosity! And thanks for the link as well. I also found this link about performance https://www.fpcomplete.com/haskell/tutorial/profiling/
2024-06-24 06:55:39 +0200 <geekosaur> although that doesn't look particularly official now that I see the full url
2024-06-24 06:56:10 +0200 <monochrom> Ah OK, it is still free on O'Reilly, just ignore "start free trial", scroll down to TOC and click "show more", select any section.
2024-06-24 06:57:07 +0200 <monochrom> Haha Clojurians preserve Haskell books.
2024-06-24 07:02:12 +0200 <monochrom> Err I forgot to provide the link. https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/
2024-06-24 07:03:03 +0200phma_phma
2024-06-24 07:05:03 +0200 <erty> geekosaur: monochrom: thank you for providing link for that book. It is really helpful indeed.
2024-06-24 07:05:22 +0200 <geekosaur> @where PCPH
2024-06-24 07:05:22 +0200 <lambdabot> "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive.
2024-06-24 07:05:22 +0200 <lambdabot> org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/>
2024-06-24 07:05:29 +0200 <geekosaur> there's an official free link
2024-06-24 07:05:39 +0200 <erty> But the book is really old and has not been updated (July 2013)
2024-06-24 07:05:51 +0200 <geekosaur> o'reilly was making it aavailable for free for a while but that has apparently expired 😞
2024-06-24 07:05:59 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-06-24 07:08:54 +0200 <Axman6> erty: the majority of the details in there are still very relevant, the implementation of the parallelism and concurrency primitives in GHC haven't needed to change much, they were very well designed
2024-06-24 07:10:47 +0200 <erty> Axman6: This is the thing about functional languages (like haskell,elisp) that I appreciate, articles as old as 1990s or 2000s are still valid today! Its very noice
2024-06-24 07:10:52 +0200 <Axman6> erty: GHC has used an event based system for managing concurrent IO (and threads) for a long time, and the runtime just takes care of it all for you. You can start thousands of threads, one per connection in a netweork server for example, and expect it perform just fine. GHC's threads are very lightweight (fewer bytes per thread for bookkeeping than Erlang)
2024-06-24 07:11:01 +0200wlhn(~wlhn@82-181-39-15.bb.dnainternet.fi) (Remote host closed the connection)
2024-06-24 07:11:34 +0200wlhn(~wlhn@dl46fx8ym7lwsvqknt7by-3.rev.dnainternet.fi)
2024-06-24 07:12:15 +0200euphores(~SASL_euph@user/euphores)
2024-06-24 07:17:47 +0200euleritian(~euleritia@77.22.252.56)
2024-06-24 07:17:51 +0200 <erty> Axman6: The main reason for me asking this question was, that CPUs these days are becoming very powerful, so while writing performant and efficient code, do we have to think about the hardware that it would be executed on? Or let GHC handle that for you.
2024-06-24 07:18:15 +0200 <erty> So I think let GHC handle it
2024-06-24 07:18:49 +0200 <erty> You should think about the complexity of your functions instead
2024-06-24 07:20:41 +0200 <Axman6> that depends a lot on the code I guess. finding what is making your code slow should direct what you focus on, not some general ideas of "if I do these things then my app will be fast". profile, benchmark, measure, then make changes and soo if they improve things. (and do as I say, not as I do, because I'm terrible at following this advice myself =)
2024-06-24 07:22:51 +0200 <Axman6> For beginners, they often run into performance issues related to not understanding how their code actually executes - things like memory leaks through building up large thunks, or even simple algorithmic things like the naive implementation of reverse (see Well Typed's recent video on foldl' on YouTube for more details)
2024-06-24 07:24:30 +0200 <Axman6> It's the same in any language, you have to understand what your code is doing to predict what might not be fast. There are optimisations you can make in many dimensions that will improve things, from chosing more appropriate data types, to changing algorithms, to splitting the problem across cores (and doing that without making things slower, sometimes harder than you'd think)
2024-06-24 07:25:15 +0200tabemann__(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2024-06-24 07:25:31 +0200danse-nr3(~danse-nr3@rm-19-49-201.service.infuturo.it) (Ping timeout: 268 seconds)
2024-06-24 07:27:03 +0200tabemann_(~tabemann@2600:1700:7990:24e0:7602:6b3:85b8:f636) (Ping timeout: 268 seconds)
2024-06-24 07:29:01 +0200michalz(~michalz@185.246.207.193)
2024-06-24 07:30:09 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-06-24 07:35:39 +0200Garbanzo(~Garbanzo@2602:304:6eac:dc10::46) (Remote host closed the connection)
2024-06-24 07:37:38 +0200 <erty> Axman6: These are all very very useful advices. I will gladly try to work on them. Thanks for providing link to that video, I will go and watch it now :-)
2024-06-24 07:43:08 +0200 <erty> this should be the video I believe https://www.youtube.com/watch?v=wJgRsvtarmE&list=PLD8gywOEY4HauPWPfH0pJPIYUWqi0Gg10&index=24
2024-06-24 07:44:49 +0200acidjnk_new3(~acidjnk@p200300d6e714dc8889f5631cf21e07c5.dip0.t-ipconnect.de)
2024-06-24 07:44:56 +0200rosco(~rosco@175.136.155.137)
2024-06-24 07:51:47 +0200philopsos1(~caecilius@user/philopsos) (Ping timeout: 260 seconds)
2024-06-24 07:54:35 +0200aaronv(~aaronv@user/aaronv) (Ping timeout: 260 seconds)
2024-06-24 08:01:50 +0200ubert(~Thunderbi@p200300ecdf49174f0b4465dc752c7466.dip0.t-ipconnect.de)
2024-06-24 08:12:02 +0200joeyadams(~joeyadams@2603:6010:5100:2ed:8e19:9b51:38c6:2dc4) (Quit: Leaving)
2024-06-24 08:16:38 +0200 <Axman6> erty: this is the one I was actually thinking about: https://youtu.be/5ali1ZsABIY?si=b1mrhkloRtXqDHwb
2024-06-24 08:40:07 +0200 <jackdk> Axman6: TIL that `main-is:` for an `executable` target of a `.cabal` file can be a C/C++/ObjC source file.
2024-06-24 08:49:22 +0200 <haskellbridge> <magic_rb> Is there are book/article/anything on how to properly profile haskell programs? On the tooling, how to read the traces, stuff like that. Last time i tried i really struggled to make anything out of the perf file i managed to extract
2024-06-24 08:56:16 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2024-06-24 08:56:43 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-06-24 09:00:02 +0200029ABHGP6(~yobson@mail.jotron.com)
2024-06-24 09:00:04 +0200 <haskellbridge> <sm> magic_rb: start with the chapter in the GHC user guide
2024-06-24 09:00:39 +0200 <haskellbridge> <sm> "profiterole" can make time profiles a little easier to read
2024-06-24 09:06:27 +0200solaire(~solaire@2400:4050:aea2:2d00:327e:e5b7:3dcc:1120) (Ping timeout: 260 seconds)
2024-06-24 09:06:30 +0200029ABHGP6yobson_
2024-06-24 09:07:51 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-06-24 09:10:34 +0200wbooze(~wbooze@2a02:908:1244:9a20:630a:fc0c:74f9:6ed1)
2024-06-24 09:22:25 +0200 <haskellbridge> <magic_rb> sm: Ill try again, because i tried that last time and i got nowhere :(
2024-06-24 09:23:13 +0200 <haskellbridge> <sm> profiling haskell is not easy, but the chapter has useful foundational info
2024-06-24 09:25:01 +0200 <haskellbridge> <sm> after that I think I'd read https://haskell.foundation/hs-opt-handbook.github.io/ and maybe threads like https://www.reddit.com/r/haskell/comments/v787s0/optimisingprofiling_complex_haskell_projects/
2024-06-24 09:25:20 +0200 <haskellbridge> <magic_rb> Ill try it again then, because my physics implementation is still horrendously slow, but that is also probably an algorithmic slowness
2024-06-24 09:27:43 +0200 <haskellbridge> <sm> in time profiles, just reading the number of entries column can be helpful. You can also often make progress without detailed time profiles, eg by just sprinkling trace logging through your code to get insight into what it's doing, or by changing things and comparing "+RTS -s" or "timeit" statistics
2024-06-24 09:27:57 +0200 <haskellbridge> <sm> -just
2024-06-24 09:28:29 +0200 <haskellbridge> <sm> * sometimes
2024-06-24 09:29:45 +0200cfricke(~cfricke@user/cfricke)
2024-06-24 09:35:39 +0200danse-nr3(~danse-nr3@151.57.198.141)
2024-06-24 09:43:29 +0200generalbigm(~generalbi@2001:250:3c0f:2000::e751)
2024-06-24 09:55:11 +0200generalbigm(~generalbi@2001:250:3c0f:2000::e751) ()
2024-06-24 09:56:56 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-06-24 09:57:15 +0200soverysour(~soverysou@user/soverysour)
2024-06-24 09:59:57 +0200[exa](~exa@user/exa/x-3587197)
2024-06-24 10:03:42 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-06-24 10:07:36 +0200rosco(~rosco@175.136.155.137)
2024-06-24 10:18:35 +0200euleritian(~euleritia@77.22.252.56) (Ping timeout: 256 seconds)
2024-06-24 10:19:33 +0200euleritian(~euleritia@dynamic-176-004-153-151.176.4.pool.telefonica.de)
2024-06-24 10:20:09 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-06-24 10:21:46 +0200Guest95(~Guest95@085080238199.dynamic.telenor.dk)
2024-06-24 10:23:24 +0200Guest95(~Guest95@085080238199.dynamic.telenor.dk) (Client Quit)
2024-06-24 10:26:00 +0200euleritian(~euleritia@dynamic-176-004-153-151.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
2024-06-24 10:27:04 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-06-24 10:28:07 +0200kuribas(~user@ptr-17d51em6zbzs6w1hz41.18120a2.ip6.access.telenet.be)
2024-06-24 10:32:13 +0200 <haskellbridge> <magic_rb> Ill try to revisit my optimization struggles later in the week. I need to make the physics more efficient, its not good that two bodies colliding gets my fps from 60 to 30
2024-06-24 10:33:39 +0200ft(~ft@p3e9bcb39.dip0.t-ipconnect.de) (Quit: leaving)
2024-06-24 10:36:17 +0200danse-nr3(~danse-nr3@151.57.198.141) (Ping timeout: 256 seconds)
2024-06-24 10:41:41 +0200__monty__(~toonn@user/toonn)
2024-06-24 10:50:19 +0200gehmehgeh(~user@user/gehmehgeh)
2024-06-24 10:50:28 +0200lxsameer(~lxsameer@Serene/lxsameer)
2024-06-24 10:55:26 +0200target_i(~target_i@user/target-i/x-6023099)
2024-06-24 11:03:47 +0200danse-nr3(~danse-nr3@151.57.198.141)
2024-06-24 11:04:18 +0200chele(~chele@user/chele)
2024-06-24 11:05:18 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-06-24 11:08:35 +0200Nixkernal(~Nixkernal@240.17.194.178.dynamic.cust.swisscom.net)
2024-06-24 11:19:47 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 264 seconds)
2024-06-24 11:25:47 +0200danse-nr3(~danse-nr3@151.57.198.141) (Ping timeout: 264 seconds)
2024-06-24 11:26:25 +0200danse-nr3(~danse-nr3@151.57.243.247)
2024-06-24 11:47:14 +0200gehmehgehgmg
2024-06-24 11:47:29 +0200soverysour(~soverysou@user/soverysour)
2024-06-24 11:48:18 +0200dcoutts(~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848)
2024-06-24 11:48:59 +0200rosco(~rosco@175.136.155.137)
2024-06-24 11:54:55 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds)
2024-06-24 11:55:33 +0200Yumemi(~Yumemi@chamoin.net) (Quit: .)
2024-06-24 11:56:28 +0200Yumemi(~Yumemi@2001:bc8:47a0:1b14::1)
2024-06-24 12:12:30 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-06-24 12:15:06 +0200danse-nr3(~danse-nr3@151.57.243.247) (Remote host closed the connection)
2024-06-24 12:15:06 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-06-24 12:17:59 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-06-24 12:20:12 +0200causal(~eric@50.35.88.207) (Quit: WeeChat 4.3.1)
2024-06-24 12:21:04 +0200danse-nr3(~danse-nr3@151.57.243.247)
2024-06-24 12:22:04 +0200danse-nr3(~danse-nr3@151.57.243.247) (Read error: Connection reset by peer)
2024-06-24 12:23:36 +0200danse-nr3(~danse-nr3@151.57.243.247)
2024-06-24 12:27:14 +0200lortabac(~lortabac@37.174.130.43)
2024-06-24 12:38:41 +0200lain`(lain@user/lain/x-9874679)
2024-06-24 12:43:14 +0200migas97(~migas@static.140.65.63.178.clients.your-server.de) (Quit: The Lounge - https://thelounge.github.io)
2024-06-24 12:45:24 +0200migas97(~migas@static.140.65.63.178.clients.your-server.de)
2024-06-24 12:48:11 +0200danse-nr3(~danse-nr3@151.57.243.247) (Remote host closed the connection)
2024-06-24 12:48:36 +0200danse-nr3(~danse-nr3@151.57.243.247)
2024-06-24 12:51:51 +0200lortabac(~lortabac@37.174.130.43) (Ping timeout: 264 seconds)
2024-06-24 12:55:27 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-06-24 12:57:11 +0200danse-nr3(~danse-nr3@151.57.243.247) (Remote host closed the connection)
2024-06-24 12:57:35 +0200danse-nr3(~danse-nr3@151.57.243.247)
2024-06-24 13:06:51 +0200yin(~yin@user/zero)
2024-06-24 13:08:45 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-06-24 13:12:51 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 260 seconds)
2024-06-24 13:18:33 +0200generalbigm(~generalbi@2001:250:3c0f:2000::e751)
2024-06-24 13:20:07 +0200erty(~user@user/aeroplane) (Remote host closed the connection)
2024-06-24 13:20:45 +0200CiaoSen(~Jura@2a05:5800:291:e700:e6b9:7aff:fe80:3d03)
2024-06-24 13:21:58 +0200soverysour(~soverysou@user/soverysour)
2024-06-24 13:25:52 +0200lortabac(~lortabac@37.174.130.43)
2024-06-24 13:34:41 +0200sawilagar(~sawilagar@user/sawilagar)
2024-06-24 14:08:39 +0200yobson_(~yobson@mail.jotron.com) (Quit: Leaving...)
2024-06-24 14:14:22 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 268 seconds)
2024-06-24 14:18:59 +0200yin(~yin@user/zero) (Ping timeout: 256 seconds)
2024-06-24 14:20:50 +0200danse-nr3(~danse-nr3@151.57.243.247) (Ping timeout: 268 seconds)
2024-06-24 14:27:42 +0200cfricke(~cfricke@user/cfricke)