2022/05/18

2022-05-18 00:00:49 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-05-18 00:01:13 +0200 <kenaryn> Now there is an error with version of 'happy' program that could not be determined besides the entropy build failed, so I wanted to thank you a lot tomsmeding and maerwald you are very kind, skilled, resourceful and patient above all.
2022-05-18 00:01:53 +0200 <kenaryn> So congratulations to you, my first contact with Haskell community was neverthess very pleasing despite not successfully building my damn compiler.
2022-05-18 00:02:51 +0200 <maerwald> build-tools like happy usually don't need to be installed explicitly
2022-05-18 00:03:26 +0200 <kenaryn> Configuring library for haskell-src-exts-1.22.0..
2022-05-18 00:03:26 +0200 <kenaryn> cabal: The program 'happy' version >=1.19 is required but the version of
2022-05-18 00:03:26 +0200 <kenaryn> /home/aurele/.cabal/store/ghc-8.8.4/happy-1.19.12-e-happy-499d6ef10e7cb1f80d76dc2055d59c217a3d5496cd59318ff322fd2f7224c269/bin/happy
2022-05-18 00:03:29 +0200 <kenaryn> could not be determined.
2022-05-18 00:03:54 +0200 <maerwald> what happens if you run it manually
2022-05-18 00:04:14 +0200 <kenaryn> It is the really first time I fail to merely install a compiler, that's such disturbing.
2022-05-18 00:04:32 +0200 <maerwald> because you picked the hardest path: a niche distro with a niche libc
2022-05-18 00:04:50 +0200vicfred(~vicfred@user/vicfred)
2022-05-18 00:05:11 +0200 <kenaryn> I thought voidlinux was a gem. And couldn't bear debian testing any longer.
2022-05-18 00:05:25 +0200 <kenaryn> How I run happy you mean? It's not even installed.
2022-05-18 00:05:37 +0200 <maerwald> I mean /home/aurele/.cabal/store/ghc-8.8.4/happy-1.19.12-e-happy-499d6ef10e7cb1f80d76dc2055d59c217a3d5496cd59318ff322fd2f7224c269/bin/happy
2022-05-18 00:06:18 +0200 <kenaryn> It returns: `[1] 23579 segmentation fault`
2022-05-18 00:06:23 +0200 <maerwald> nice :D
2022-05-18 00:06:28 +0200 <kenaryn> lol
2022-05-18 00:06:40 +0200 <maerwald> pick a normal distro and reinstall your system
2022-05-18 00:07:46 +0200 <kenaryn> I may switch to dragonflyBSD at this point.
2022-05-18 00:07:51 +0200 <maerwald> oh god
2022-05-18 00:08:05 +0200 <maerwald> good luck with haskell there
2022-05-18 00:08:24 +0200 <kenaryn> lol. I can't go back to a non-rolling distro.
2022-05-18 00:08:42 +0200 <maerwald> try fedora
2022-05-18 00:08:58 +0200 <maerwald> it's effectively rolling, given how often stuff breaks
2022-05-18 00:09:05 +0200 <yushyin> lol
2022-05-18 00:13:00 +0200Luj4(~Luj@mail.julienmalka.me)
2022-05-18 00:13:33 +0200 <jackdk> does Nix work on voidlinux?
2022-05-18 00:13:42 +0200 <maerwald> omg, please don't
2022-05-18 00:13:45 +0200 <jackdk> like if we're doubling down on the weird
2022-05-18 00:14:03 +0200 <jackdk> (and I say that as a great fan of Nix)
2022-05-18 00:16:31 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-18 00:16:40 +0200codaraxis(~codaraxis@user/codaraxis)
2022-05-18 00:17:50 +0200Lears(~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Ping timeout: 240 seconds)
2022-05-18 00:19:00 +0200chomwitt(~chomwitt@2a02:587:dc15:4f00:52df:b01:5d3:8b9e) (Ping timeout: 260 seconds)
2022-05-18 00:21:18 +0200acidjnk(~acidjnk@p200300d0c7068b90f0e7fcd35b3ab5be.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-05-18 00:23:16 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-05-18 00:26:27 +0200titibandit(~thibaut@xdsl-78-35-152-200.nc.de) (Remote host closed the connection)
2022-05-18 00:26:27 +0200DNH(~DNH@2a02:8109:b740:2c4:18c:e9ac:d2a3:b6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-05-18 00:26:38 +0200sudden(~cat@user/sudden) (Ping timeout: 260 seconds)
2022-05-18 00:26:50 +0200tfeb(~tfb@88.98.95.237)
2022-05-18 00:26:51 +0200DNH(~DNH@2a02:8109:b740:2c4:18c:e9ac:d2a3:b6)
2022-05-18 00:31:00 +0200DNH(~DNH@2a02:8109:b740:2c4:18c:e9ac:d2a3:b6) (Ping timeout: 250 seconds)
2022-05-18 00:39:13 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-18 00:39:58 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-18 00:43:19 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-05-18 00:44:21 +0200slac41324(~slack1256@191.125.99.64) (Ping timeout: 256 seconds)
2022-05-18 00:47:24 +0200stackdroid18(14094@user/stackdroid)
2022-05-18 00:48:00 +0200tfeb(~tfb@88.98.95.237) (Quit: died)
2022-05-18 00:53:33 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-18 00:54:56 +0200tfeb(~tfb@88.98.95.237)
2022-05-18 01:01:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 01:01:39 +0200tfeb(~tfb@88.98.95.237) (Quit: died)
2022-05-18 01:04:54 +0200codaraxis(~codaraxis@user/codaraxis) (Quit: Leaving)
2022-05-18 01:07:26 +0200machinedgod(~machinedg@24.105.81.50) (Read error: Connection reset by peer)
2022-05-18 01:07:52 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-18 01:13:03 +0200jmd_(~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-18 01:15:07 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2022-05-18 01:15:44 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-05-18 01:18:17 +0200nbms^(~nbms@128-092-160-234.biz.spectrum.com) (Ping timeout: 260 seconds)
2022-05-18 01:18:55 +0200dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 256 seconds)
2022-05-18 01:19:44 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 01:20:30 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds)
2022-05-18 01:20:46 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 272 seconds)
2022-05-18 01:21:34 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be)
2022-05-18 01:23:06 +0200forell(~forell@user/forell) (Ping timeout: 276 seconds)
2022-05-18 01:24:35 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-05-18 01:25:07 +0200hexology-(~hexology@user/hexology)
2022-05-18 01:26:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-18 01:30:49 +0200forell(~forell@user/forell)
2022-05-18 01:36:52 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2022-05-18 01:37:10 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
2022-05-18 01:39:50 +0200hexology-hexology
2022-05-18 01:39:59 +0200hexologyhexology-
2022-05-18 01:40:01 +0200hexology-hexology
2022-05-18 01:42:01 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
2022-05-18 01:52:32 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 01:55:36 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2022-05-18 01:57:53 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-18 02:03:00 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-05-18 02:03:10 +0200sudden(~cat@user/sudden)
2022-05-18 02:08:16 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-05-18 02:11:26 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2022-05-18 02:13:07 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
2022-05-18 02:13:48 +0200sudden(~cat@user/sudden) (Ping timeout: 276 seconds)
2022-05-18 02:14:17 +0200alp_(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-18 02:15:13 +0200sudden(~cat@user/sudden)
2022-05-18 02:18:35 +0200Hash(~Hash@hey.howstoned.ru) (Read error: Connection reset by peer)
2022-05-18 02:19:00 +0200jollygood2(www-data@2607:5300:60:8be::1) (Quit: CGI:IRC (Ping timeout))
2022-05-18 02:20:02 +0200Hash(~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net)
2022-05-18 02:21:46 +0200kenaryn(~aurele@89-88-44-27.abo.bbox.fr)
2022-05-18 02:22:57 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
2022-05-18 02:23:47 +0200 <kenaryn> maerwald: tomsmeding: `stack setup -v` returns that # The .dll case calls STRIP_CMD explicitly, instead of `install -s`, because
2022-05-18 02:24:04 +0200 <kenaryn> # on Win64, "install -s" calls a strip that doesn't understand 64bit binaries.
2022-05-18 02:24:18 +0200 <kenaryn> # For some reason, this means the DLLs end up non-executable, which means
2022-05-18 02:24:35 +0200 <kenaryn> # executables that use them just segfault.
2022-05-18 02:25:23 +0200 <kenaryn> That would explain why ghc-cabal is not found even if it exist, and with right permissions and disk space OK
2022-05-18 02:35:00 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-6165-3a77-319f-4350.res6.spectrum.com) (Ping timeout: 240 seconds)
2022-05-18 02:36:21 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Quit: WeeChat 3.5)
2022-05-18 02:39:03 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-05-18 02:44:18 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 246 seconds)
2022-05-18 02:47:03 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-18 02:47:13 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-898b-f0ee-7872-3957.res6.spectrum.com)
2022-05-18 02:48:07 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2022-05-18 02:49:22 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-18 02:49:23 +0200jlamothe(~jlamothe@198.251.61.229)
2022-05-18 02:49:26 +0200jlamothe(~jlamothe@198.251.61.229) ()
2022-05-18 02:49:33 +0200jlamothe(~jlamothe@198.251.61.229)
2022-05-18 02:50:19 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit)
2022-05-18 02:51:43 +0200sammelweis_(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-05-18 02:51:54 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
2022-05-18 02:54:00 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-18 02:56:08 +0200razetime(~quassel@117.254.35.239)
2022-05-18 02:58:56 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Ping timeout: 272 seconds)
2022-05-18 03:01:19 +0200sammelweis_(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 240 seconds)
2022-05-18 03:05:16 +0200 <kenaryn> Please how can I get libtinfo.so.5? it seems to prevent me from compiling stack.
2022-05-18 03:05:38 +0200 <kenaryn> The lib is missing alongside libgmp.so.3
2022-05-18 03:07:10 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-898b-f0ee-7872-3957.res6.spectrum.com) (Ping timeout: 272 seconds)
2022-05-18 03:10:21 +0200haskell_apprenti(~haskell_a@2603-7000-9900-04ba-7892-62e4-5cb0-de69.res6.spectrum.com)
2022-05-18 03:10:46 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-05-18 03:12:11 +0200 <haskell_apprenti> question: working through the book "haskell programming from first principles" and am up to ch 8, where there's an exercise to write a recursive division function that handles negative values and dividing by zero. I tried writing an implementation that returns a tuple of quotient and remainder, but im getting a type error with the helper function
2022-05-18 03:12:24 +0200 <haskell_apprenti> here's my code
2022-05-18 03:12:25 +0200 <haskell_apprenti>   data DividedResult = Result Integer | DividedByZero
2022-05-18 03:12:25 +0200 <haskell_apprenti>   dividedBy :: Integral a => a -> a -> (DividedResult, DividedResult)
2022-05-18 03:12:26 +0200 <haskell_apprenti>   dividedBy _ 0 = (DividedByZero, DividedByZero)
2022-05-18 03:12:26 +0200 <haskell_apprenti>   dividedBy num denom = go num denom 0 1
2022-05-18 03:12:27 +0200 <haskell_apprenti>     where
2022-05-18 03:12:27 +0200 <haskell_apprenti>       go n d count sign
2022-05-18 03:12:28 +0200 <haskell_apprenti>         | n < 0 = go (- n) d count (- sign)
2022-05-18 03:12:28 +0200 <haskell_apprenti>         | d < 0 = go n (- d) count (- sign)
2022-05-18 03:12:29 +0200 <haskell_apprenti>         | n < d = (Result (count * sign), Result n)
2022-05-18 03:12:29 +0200 <haskell_apprenti>         | otherwise =
2022-05-18 03:12:30 +0200 <haskell_apprenti>           go (n - d) d (count + 1) sign
2022-05-18 03:12:38 +0200 <Axman6> please do not do that
2022-05-18 03:12:41 +0200 <Axman6> !where paste
2022-05-18 03:12:45 +0200 <Axman6> @where paste
2022-05-18 03:12:53 +0200 <haskell_apprenti> oh that's good to know thanks
2022-05-18 03:13:13 +0200 <haskell_apprenti> https://paste.tomsmeding.com/mo3kgoN6
2022-05-18 03:13:35 +0200 <haskell_apprenti> and here's the error im getting https://paste.tomsmeding.com/vXOdHOgz
2022-05-18 03:14:14 +0200 <haskell_apprenti> not sure why it expects an integer type
2022-05-18 03:14:59 +0200ubert1(~Thunderbi@p200300ecdf15883e59cedd0c714ad84e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-05-18 03:16:53 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-05-18 03:16:57 +0200 <haskell_apprenti> also if i remove the tuple return and just return DividedResult type, it works and i don't know why
2022-05-18 03:19:34 +0200andrey_(~andrey@p200300dbcf06c3008d878644fc61df72.dip0.t-ipconnect.de)
2022-05-18 03:19:35 +0200 <Axman6> your definition data DividedResult = Result Integer | DividedByZero explicitly says that result must contain an Integer, but when you use Result n, you're passing it an a
2022-05-18 03:19:37 +0200mmhat(~mmh@p200300f1c7256e03ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-18 03:19:41 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-898b-f0ee-7872-3957.res6.spectrum.com)
2022-05-18 03:22:11 +0200andrey__(~andrey@p200300dbcf1305000a20156e72af94e4.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-05-18 03:22:27 +0200 <Axman6> count and sign are inferered to be Integers, but n is passed to go and that n is defined to be any Integral a, which m,eans it oculd be an Int8, Word64 etc.
2022-05-18 03:23:37 +0200 <haskell_apprenti> aha - so I should change the data declaration to be a generic type? st like
2022-05-18 03:23:38 +0200 <haskell_apprenti> data DividedResult = Result a | DividedByZero? (that also returns a type error though)
2022-05-18 03:23:44 +0200 <haskell_apprenti> more generic type*
2022-05-18 03:24:31 +0200 <Axman6> you'd need to use data DividedResult a = Result a | DividedByZero if that's the behaviour you want
2022-05-18 03:25:41 +0200 <haskell_apprenti> ah cool thanks. what if I want to have the Integral type class constraint?
2022-05-18 03:28:18 +0200xff0x(~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
2022-05-18 03:29:35 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-05-18 03:30:28 +0200flinner(~flinner@user/flinner)
2022-05-18 03:31:29 +0200 <Axman6> you don't
2022-05-18 03:31:56 +0200 <Axman6> putting constraints on data types is almost never what you want, they do on the functions that need those constraints
2022-05-18 03:32:44 +0200 <haskell_apprenti> hm interesting
2022-05-18 03:33:53 +0200 <haskell_apprenti> so what should I do to make my code work in this case? change the function signature to Integer instead?
2022-05-18 03:34:23 +0200 <haskell_apprenti> that actually lets it compile
2022-05-18 03:34:33 +0200 <Axman6> putting them on the data types mean they infect all your code, youy end up with data Result a = Integral a => Result a | DivideByZero; then you end up with needing the Show instance to look like instance (Show a, Integral a) => Show (Result a) where ... where that Integral constraint is completely useless in the instance, but necessary because you said it is always necesssary
2022-05-18 03:36:13 +0200 <Axman6> what isn;'t working? there's no reason why dividedBy :: Integral a => a -> a -> (DividedResult a, DividedResult a) shouldn't work just fine
2022-05-18 03:36:22 +0200 <haskell_apprenti> are you just mentioning the Show instance as an example?
2022-05-18 03:36:51 +0200 <haskell_apprenti> what you mentioned before - count and sign are inferered to be Integers, but n is passed to go and that n is defined to be any Integral a, which m,eans it oculd be an Int8, Word64 etc.
2022-05-18 03:37:00 +0200 <haskell_apprenti> so the type checker's complaining
2022-05-18 03:37:26 +0200 <Axman6> they won't be inferred to be Integers if you change your data type, they will be inferred to be the same type a that you pass in
2022-05-18 03:38:06 +0200 <haskell_apprenti> so you're saying the best practice here would be to give the data declaration a generic type?
2022-05-18 03:39:04 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-898b-f0ee-7872-3957.res6.spectrum.com) (Ping timeout: 250 seconds)
2022-05-18 03:39:06 +0200 <Axman6> see https://paste.tomsmeding.com/muBKM6pX
2022-05-18 03:39:10 +0200 <Axman6> yes.
2022-05-18 03:39:32 +0200 <Axman6> uh, my changeses didn;t happen, one sec
2022-05-18 03:39:49 +0200 <haskell_apprenti> prob this, right? https://paste.tomsmeding.com/MaNzucM2
2022-05-18 03:40:02 +0200 <Axman6> https://paste.tomsmeding.com/GENuW7Gq
2022-05-18 03:40:21 +0200 <haskell_apprenti> aha right
2022-05-18 03:40:24 +0200 <Axman6> IMO, the type that you should be using is this though: dividedBy :: Integral a => a -> a -> Maybe (a,a)
2022-05-18 03:40:57 +0200 <Axman6> there's no good reason to make your own type here, and it's better to make it clear that either both results will exist, or neither will
2022-05-18 03:41:07 +0200 <haskell_apprenti> ah. haven't gotten up to that ch yet but the author keeps mentioning how great Maybe is lol
2022-05-18 03:41:24 +0200 <haskell_apprenti> seems to me like the same kind of idea tbh
2022-05-18 03:41:49 +0200 <haskell_apprenti> DividedResult -> Maybe, DividedByZero -> Nothing
2022-05-18 03:41:56 +0200Soanvig(~Soanvig@83.22.15.24.ipv4.supernova.orange.pl)
2022-05-18 03:41:58 +0200 <haskell_apprenti> Result -> Just
2022-05-18 03:42:37 +0200 <Axman6> yes
2022-05-18 03:43:07 +0200 <haskell_apprenti> anyway, amazing, thanks for all the help
2022-05-18 03:45:10 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 272 seconds)
2022-05-18 03:45:56 +0200megaTherion(~therion@mail.unix.io) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-18 03:47:23 +0200nate1(~nate@98.45.169.16)
2022-05-18 03:48:43 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-18 03:51:20 +0200 <danso> are there standard ways to pack and unpack various sizes of words? e.g. `pack :: Word8 -> Word8 -> Word16` and `unpack :: Word16 -> (Word8,Word8)`
2022-05-18 03:51:29 +0200TonyStone(~TonyStone@2603-7080-8607-c36a-898b-f0ee-7872-3957.res6.spectrum.com)
2022-05-18 03:51:42 +0200nate1(~nate@98.45.169.16) (Ping timeout: 260 seconds)
2022-05-18 04:00:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-18 04:01:15 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 260 seconds)
2022-05-18 04:01:41 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-18 04:03:29 +0200Soanvig(~Soanvig@83.22.15.24.ipv4.supernova.orange.pl) (Quit: Client closed)
2022-05-18 04:03:51 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-05-18 04:03:51 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-05-18 04:03:51 +0200finn_elijaFinnElija
2022-05-18 04:05:03 +0200romesrf(~romes@185.5.8.134) (Read error: Connection reset by peer)
2022-05-18 04:05:24 +0200shailangsa(~shailangs@host109-152-9-235.range109-152.btcentralplus.com) (Remote host closed the connection)
2022-05-18 04:05:28 +0200romesrf(~romes@185.5.8.134)
2022-05-18 04:09:54 +0200 <EvanR> I knew dependent types can get kinda crazy, but do you think you could form a passable "game" using constraints and just the haskell type system
2022-05-18 04:09:57 +0200frost(~frost@user/frost)
2022-05-18 04:10:00 +0200 <EvanR> without full dependent types
2022-05-18 04:12:38 +0200kenaryn(~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
2022-05-18 04:14:34 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 04:19:18 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-05-18 04:22:52 +0200frost(~frost@user/frost)
2022-05-18 04:26:39 +0200gambpang(~ian@2601:249:8300:f320:a4e8:88f5:ee8e:cf45)
2022-05-18 04:28:02 +0200haskell_apprenti(~haskell_a@2603-7000-9900-04ba-7892-62e4-5cb0-de69.res6.spectrum.com) (Quit: Client closed)
2022-05-18 04:40:42 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds)
2022-05-18 04:42:35 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 04:43:31 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-05-18 04:43:33 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 04:47:25 +0200jinsun(~jinsun@user/jinsun)
2022-05-18 04:48:30 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
2022-05-18 04:56:47 +0200gambpang(~ian@2601:249:8300:f320:a4e8:88f5:ee8e:cf45) (Remote host closed the connection)
2022-05-18 04:59:28 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-05-18 05:02:52 +0200darkstarx(~darkstard@50.53.212.60) (Read error: Connection reset by peer)
2022-05-18 05:03:07 +0200razetime(~quassel@117.254.35.239) (Read error: Connection reset by peer)
2022-05-18 05:11:39 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2022-05-18 05:13:31 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-05-18 05:21:48 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 05:22:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 05:27:54 +0200 <shapr> o hi mxs
2022-05-18 05:41:47 +0200megaTherion(~therion@unix.io)
2022-05-18 05:45:45 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-18 05:45:45 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-18 05:45:45 +0200wroathe(~wroathe@user/wroathe)
2022-05-18 05:47:34 +0200markasoftware_markasoftware
2022-05-18 05:50:15 +0200Vq(~vq@90-227-195-41-no77.tbcn.telia.com) (Ping timeout: 276 seconds)
2022-05-18 05:50:27 +0200gpncarl(~gpncarl@210.12.195.5)
2022-05-18 05:58:19 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 05:58:37 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-05-18 06:00:43 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-05-18 06:21:00 +0200Guest|3(~Guest|3@c-73-170-36-58.hsd1.ca.comcast.net)
2022-05-18 06:21:49 +0200Guest|3(~Guest|3@c-73-170-36-58.hsd1.ca.comcast.net) (Client Quit)
2022-05-18 06:25:15 +0200sabry(~sabry@197.37.58.104)
2022-05-18 06:36:56 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-05-18 06:37:14 +0200Feuermagier(~Feuermagi@user/feuermagier)
2022-05-18 06:38:59 +0200flinner(~flinner@user/flinner) (Ping timeout: 240 seconds)
2022-05-18 06:45:38 +0200nate1(~nate@98.45.169.16)
2022-05-18 06:48:32 +0200bliminse(~bliminse@host86-164-128-238.range86-164.btcentralplus.com)
2022-05-18 06:51:50 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-05-18 06:53:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 06:57:56 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-18 06:57:58 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 06:58:44 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 06:59:12 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 06:59:30 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56)
2022-05-18 07:03:06 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-05-18 07:03:10 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-05-18 07:18:38 +0200odnes(~odnes@5-203-155-92.pat.nym.cosmote.net)
2022-05-18 07:20:35 +0200raym(~raym@user/raym) (Quit: kernel update, rebooting...)
2022-05-18 07:21:04 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 07:23:00 +0200chomwitt(~chomwitt@2a02:587:dc15:4f00:b162:3ee9:4b48:2a00)
2022-05-18 07:23:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-18 07:23:56 +0200michalz(~michalz@185.246.204.107)
2022-05-18 07:24:23 +0200raym(~raym@user/raym)
2022-05-18 07:24:34 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-05-18 07:24:55 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-18 07:26:22 +0200zaquest(~notzaques@5.130.79.72)
2022-05-18 07:31:54 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 07:32:43 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 07:35:00 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2022-05-18 07:37:30 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
2022-05-18 07:38:39 +0200causal(~user@50.35.83.177) (Quit: WeeChat 3.5)
2022-05-18 07:40:48 +0200gentauro(~gentauro@user/gentauro)
2022-05-18 07:40:57 +0200coot(~coot@213.134.190.95)
2022-05-18 07:45:07 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-05-18 07:45:31 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-05-18 07:47:43 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-18 07:50:27 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
2022-05-18 07:50:46 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
2022-05-18 07:51:02 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 07:53:37 +0200arjun(~arjun@user/arjun)
2022-05-18 07:57:53 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-05-18 07:58:52 +0200telser_(~quassel@user/telser)
2022-05-18 07:59:14 +0200ralu13(~ralu@static.211.245.203.116.clients.your-server.de)
2022-05-18 07:59:47 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-18 08:00:00 +0200grimey(~grimey@162.255.84.96) (Ping timeout: 246 seconds)
2022-05-18 08:00:01 +0200eL_Bart0-(eL_Bart0@dietunichtguten.org)
2022-05-18 08:00:15 +0200mjs2600_(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2022-05-18 08:00:21 +0200eL_Bart0(eL_Bart0@dietunichtguten.org) (Ping timeout: 246 seconds)
2022-05-18 08:00:42 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 246 seconds)
2022-05-18 08:00:42 +0200bcoppens_(~bartcopp@vpn2.bartcoppens.be) (Ping timeout: 246 seconds)
2022-05-18 08:00:42 +0200meejah(~meejah@rutas.meejah.ca) (Ping timeout: 246 seconds)
2022-05-18 08:00:42 +0200x88x88x(~x88x88x@149.28.53.172) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200hltk(~hltk@hltk.fi) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200int-e(~noone@int-e.eu) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200shachaf(~shachaf@user/shachaf) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200sm[i](~user@plaintextaccounting/sm) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200auri(~auri@fsf/member/auri) (Ping timeout: 246 seconds)
2022-05-18 08:01:03 +0200telser(~quassel@user/telser) (Ping timeout: 246 seconds)
2022-05-18 08:01:24 +0200eldritch(~eldritch@user/eldritch) (Ping timeout: 246 seconds)
2022-05-18 08:01:24 +0200canta(~canta@user/canta) (Ping timeout: 246 seconds)
2022-05-18 08:01:24 +0200ridcully(~ridcully@p57b52a1f.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2022-05-18 08:01:24 +0200Teacup(~teacup@user/teacup) (Ping timeout: 246 seconds)
2022-05-18 08:01:24 +0200ralu1(~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 246 seconds)
2022-05-18 08:01:24 +0200Ekho(~Ekho@user/ekho) (Ping timeout: 246 seconds)
2022-05-18 08:01:24 +0200blades(~blades@204.48.29.163) (Ping timeout: 246 seconds)
2022-05-18 08:01:24 +0200ralu13ralu1
2022-05-18 08:01:30 +0200auri(~auri@fsf/member/auri)
2022-05-18 08:02:01 +0200Teacup(~teacup@user/teacup)
2022-05-18 08:02:16 +0200asivitz(uid178348@id-178348.tinside.irccloud.com)
2022-05-18 08:02:34 +0200meejah(~meejah@rutas.meejah.ca)
2022-05-18 08:02:36 +0200bcoppens(~bartcopp@vpn2.bartcoppens.be)
2022-05-18 08:02:41 +0200ByronJohnson(~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
2022-05-18 08:02:57 +0200int-e(~noone@int-e.eu)
2022-05-18 08:03:01 +0200shachaf(~shachaf@user/shachaf)
2022-05-18 08:03:08 +0200kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2022-05-18 08:03:10 +0200hltk(~hltk@hltk.fi)
2022-05-18 08:03:20 +0200ridcully(~ridcully@p57b52a1f.dip0.t-ipconnect.de)
2022-05-18 08:03:21 +0200blades(~blades@204.48.29.163)
2022-05-18 08:03:50 +0200x88x88x(~x88x88x@149.28.53.172)
2022-05-18 08:04:27 +0200Ekho-(~Ekho@user/ekho)
2022-05-18 08:05:59 +0200eldritch(~eldritch@user/eldritch)
2022-05-18 08:06:57 +0200sm[i](~user@plaintextaccounting/sm)
2022-05-18 08:08:27 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-05-18 08:10:00 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-18 08:11:35 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-05-18 08:13:02 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2022-05-18 08:14:42 +0200perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-05-18 08:15:10 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-18 08:15:13 +0200canta(~canta@user/canta)
2022-05-18 08:16:19 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-05-18 08:16:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 08:17:24 +0200akegalj(~akegalj@93-138-13-196.adsl.net.t-com.hr)
2022-05-18 08:17:44 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-18 08:18:04 +0200Ekho-Ekho
2022-05-18 08:18:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 08:20:02 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 08:20:13 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 08:20:29 +0200xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-05-18 08:21:08 +0200sabry(~sabry@197.37.58.104) (Quit: Client closed)
2022-05-18 08:21:25 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-18 08:25:06 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Ping timeout: 272 seconds)
2022-05-18 08:31:22 +0200arjun(~arjun@user/arjun) (Remote host closed the connection)
2022-05-18 08:37:32 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2022-05-18 08:39:22 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-18 08:39:26 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-18 08:39:26 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-18 08:39:26 +0200wroathe(~wroathe@user/wroathe)
2022-05-18 08:45:42 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: .)
2022-05-18 08:45:53 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es)
2022-05-18 08:46:15 +0200ccntrq(~Thunderbi@172.209.94.92.rev.sfr.net)
2022-05-18 08:46:26 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-05-18 08:46:29 +0200ccntrq(~Thunderbi@172.209.94.92.rev.sfr.net) (Client Quit)
2022-05-18 08:47:17 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 08:54:41 +0200briandaed(~briandaed@109.95.142.93.r.toneticgroup.pl)
2022-05-18 08:55:30 +0200romesrf(~romes@185.5.8.134) (Ping timeout: 272 seconds)
2022-05-18 08:56:25 +0200 <briandaed> quick question, let's assume I've small commercial project running on LTS-16.x (ghc 8.8.4), should I upgrade to LTS-18 based on ghc 8.10.7 or move to LTS-19 with ghc 9.x?
2022-05-18 08:58:39 +0200 <opqdonut> I feel like 8.10.7 is kind of a sweet spot, more breakage incoming in the 9 series
2022-05-18 08:59:05 +0200 <opqdonut> but this is just a gut feel after upgrading some personal projects, YMMV
2022-05-18 08:59:30 +0200 <briandaed> yes, and still some libraries are missing in LTS-19, unfortunately
2022-05-18 08:59:31 +0200slack1256(~slack1256@181.42.54.67)
2022-05-18 09:01:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 09:01:36 +0200tomku(~tomku@user/tomku) (Ping timeout: 246 seconds)
2022-05-18 09:01:46 +0200sus(zero@user/zeromomentum)
2022-05-18 09:03:39 +0200 <dminuoso_> danso: Yes, Data.ByteString.unpack and pack.
2022-05-18 09:06:12 +0200acidjnk(~acidjnk@pd9e0b3b9.dip0.t-ipconnect.de)
2022-05-18 09:09:19 +0200romesrf(~romes@2001:4c80:50:16:78cf:779a:efac:8dcc)
2022-05-18 09:10:51 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 09:12:07 +0200 <dminuoso_> Alternatively you can write something yourself based on FiniteBits
2022-05-18 09:12:17 +0200odnes_(~odnes@5-203-155-92.pat.nym.cosmote.net)
2022-05-18 09:12:24 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 276 seconds)
2022-05-18 09:13:12 +0200odnes(~odnes@5-203-155-92.pat.nym.cosmote.net) (Read error: Connection reset by peer)
2022-05-18 09:14:47 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:f7e7:d42e:7bee:fefc)
2022-05-18 09:15:57 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-05-18 09:16:02 +0200romesrf(~romes@2001:4c80:50:16:78cf:779a:efac:8dcc) (Ping timeout: 260 seconds)
2022-05-18 09:16:03 +0200chele(~chele@user/chele)
2022-05-18 09:17:28 +0200romesrf(~romes@2001:4c80:50:16:78cf:779a:efac:8dcc)
2022-05-18 09:19:53 +0200 <Axman6> going via ByteString seems very inefficient, the bit manipulations would definitely be better
2022-05-18 09:20:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-18 09:21:50 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-18 09:21:57 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 09:23:15 +0200MajorBiscuit(~MajorBisc@145.94.234.141)
2022-05-18 09:23:25 +0200titibandit(~thibaut@xdsl-78-35-152-200.nc.de)
2022-05-18 09:24:35 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-05-18 09:26:10 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-05-18 09:27:10 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2022-05-18 09:31:58 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-18 09:32:25 +0200alp_(~alp@user/alp)
2022-05-18 09:40:06 +0200dextaa490(~dextaa@user/dextaa)
2022-05-18 09:40:19 +0200dextaa490dextaa
2022-05-18 09:40:35 +0200mbuf(~Shakthi@31.32.33.168)
2022-05-18 09:40:41 +0200romesrf(~romes@2001:4c80:50:16:78cf:779a:efac:8dcc) (Ping timeout: 248 seconds)
2022-05-18 09:42:21 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-05-18 09:43:50 +0200 <aria> part
2022-05-18 09:44:03 +0200aria(sid380617@id-380617.lymington.irccloud.com) ()
2022-05-18 09:46:51 +0200slack1256(~slack1256@181.42.54.67) (Ping timeout: 276 seconds)
2022-05-18 09:47:22 +0200romesrf(~romes@2001:4c80:50:16:78cf:779a:efac:8dcc)
2022-05-18 09:49:59 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-18 09:53:08 +0200romesrf(~romes@2001:4c80:50:16:78cf:779a:efac:8dcc) (Ping timeout: 272 seconds)
2022-05-18 09:55:40 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-18 09:57:32 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-18 09:58:46 +0200 <dminuoso_> Axman6: well they said "various sizes of words", thats bytestring. :)
2022-05-18 10:04:05 +0200sagax(~sagax_nb@user/sagax) (Remote host closed the connection)
2022-05-18 10:06:51 +0200romesrf(~romes@2001:4c80:50:16:aca0:e09b:d41e:3058)
2022-05-18 10:08:12 +0200mbuf(~Shakthi@31.32.33.168) (Ping timeout: 250 seconds)
2022-05-18 10:09:21 +0200mbuf(~Shakthi@223.182.195.13)
2022-05-18 10:09:33 +0200titibandit(~thibaut@xdsl-78-35-152-200.nc.de) (Remote host closed the connection)
2022-05-18 10:10:18 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-18 10:11:14 +0200cosimone(~user@2001:b07:ae5:db26:45b3:270d:a90c:9c69)
2022-05-18 10:14:57 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-05-18 10:15:32 +0200acidjnk(~acidjnk@pd9e0b3b9.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-18 10:19:06 +0200mbuf(~Shakthi@223.182.195.13) (Ping timeout: 272 seconds)
2022-05-18 10:21:43 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-05-18 10:22:54 +0200 <kuribas> generic programming is made out to be very hard with types by clojurists/dynamic programmers. But in the end it seems to amount to either prove it here (or let it be proven by the compiler), or pass a proof around.
2022-05-18 10:22:55 +0200notzmv(~zmv@user/notzmv)
2022-05-18 10:23:22 +0200 <kuribas> It's just a bit tedious, but not that much for what it gives back.
2022-05-18 10:25:45 +0200akegalj(~akegalj@93-138-13-196.adsl.net.t-com.hr) (Quit: leaving)
2022-05-18 10:26:45 +0200 <tdammers> tbh, I find generic programming a lot easier in typed languages. Without types to guide me, I tend to lose track of interfaces / contracts really fast.
2022-05-18 10:27:49 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 10:28:21 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 10:29:27 +0200 <kuribas> indeed
2022-05-18 10:29:50 +0200kritzefitz(~kritzefit@debian/kritzefitz) (Ping timeout: 240 seconds)
2022-05-18 10:31:58 +0200mbuf(~Shakthi@31.32.33.168)
2022-05-18 10:32:14 +0200kritzefitz(~kritzefit@debian/kritzefitz)
2022-05-18 10:32:19 +0200 <tdammers> but this is a cultural gap you're not going to bridge on your own
2022-05-18 10:32:54 +0200 <tdammers> IMO, lumping together dynamic languages like Lisp and typed languages like Haskell under the "Functional Programming" umbrella probably does more harm than good
2022-05-18 10:33:15 +0200 <kuribas> clojure is not that functional IMO
2022-05-18 10:33:27 +0200 <kuribas> it has immutability and higher order functions, but that is it.
2022-05-18 10:33:38 +0200 <tdammers> it doesn't even "have immutability"
2022-05-18 10:33:46 +0200 <kuribas> Not enforced, no.
2022-05-18 10:33:52 +0200 <kuribas> But most operations are immutable.
2022-05-18 10:33:56 +0200 <tdammers> C has unenforced immutability too
2022-05-18 10:34:44 +0200 <kuribas> well, in C most standard library functions are mutable.
2022-05-18 10:35:23 +0200 <tdammers> you mean they mutate some of their arguments - the functions themselves aren't mutable
2022-05-18 10:35:26 +0200 <kuribas> When it comes to reasoning about code, clojure isn't that great.
2022-05-18 10:35:39 +0200 <kuribas> yes
2022-05-18 10:35:41 +0200 <tdammers> indeed. clojure delivers an atrocious level of "certainty"
2022-05-18 10:36:10 +0200 <kuribas> it's just lisp symbolic manipulation in a live environment, with some concepts of FP added.
2022-05-18 10:36:16 +0200 <tdammers> you can't even make sure that the program you're testing is identical to the code you're looking at in your editor, most of the time
2022-05-18 10:36:35 +0200 <kuribas> it's not an invalid way of working, but it doesn't feel very "functional".
2022-05-18 10:38:02 +0200 <tdammers> "functional programming", to me, means "programming with functions", where "function" is a synonym for "pure function". you can of course do that in any language, by carefully crafting procedures to behave like pure functions, but in order for a language to deserve the label "functional", I expect it to help me with that beyond just allowing it
2022-05-18 10:38:34 +0200 <kuribas> For me an important part of FP is referential transparency.
2022-05-18 10:38:45 +0200 <kuribas> But clojure functions are rarely referentially transparent.
2022-05-18 10:39:11 +0200 <tdammers> referential transparency is guaranteed by purity, but purity goes a little bit further than that
2022-05-18 10:40:04 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-05-18 10:40:21 +0200 <kuribas> clojure function usually accept anything, and just produce garbage if the arguments don't match what it is "supposed" to do.
2022-05-18 10:40:34 +0200 <kuribas> But it doesn't express what is "supposed" to be passed.
2022-05-18 10:40:37 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 10:40:53 +0200littlebo1eeplittlebebeep
2022-05-18 10:41:05 +0200 <kuribas> There is SPEC, but people don't use spec at every function because it is too inefficient.
2022-05-18 10:41:48 +0200 <tdammers> also because spec was never intended to be a replacement for an actual type system
2022-05-18 10:42:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 10:42:06 +0200littlebebeeplittlebobeep
2022-05-18 10:42:12 +0200 <tdammers> you're supposed to use it to validate at in-the-large interface boundaries
2022-05-18 10:42:21 +0200 <kuribas> maybe I could SPEC my functions, with a flag to disable it at production.
2022-05-18 10:42:25 +0200 <kuribas> yeah
2022-05-18 10:43:20 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 10:43:27 +0200cosimone(~user@2001:b07:ae5:db26:45b3:270d:a90c:9c69) (Remote host closed the connection)
2022-05-18 10:46:06 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 10:46:50 +0200 <kuribas> That's the problem, they will put SPEC on it, and then say the solved the validation problem, but you still need to trace back your functions in order to see which SPEC is being used.
2022-05-18 10:48:20 +0200 <tdammers> calling it a "validation problem" misses the point. it's not a "validation problem", it's a consistency problem
2022-05-18 10:48:43 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-05-18 10:48:54 +0200nate1(~nate@98.45.169.16)
2022-05-18 10:48:59 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-05-18 10:49:15 +0200MajorBiscuit(~MajorBisc@145.94.234.141) (Ping timeout: 276 seconds)
2022-05-18 10:49:17 +0200 <kuribas> But the clojurist would say, "it's easy to solve".
2022-05-18 10:49:40 +0200 <kuribas> As in, you have a test suite that will fail, or you notice it during testing.
2022-05-18 10:50:21 +0200 <tdammers> indeed they will, but again this demonstrates lack of understanding the problem
2022-05-18 10:50:28 +0200MajorBiscuit(~MajorBisc@145.94.234.141)
2022-05-18 10:50:43 +0200cfricke(~cfricke@user/cfricke)
2022-05-18 10:51:05 +0200 <kuribas> as I understand, they value simplicity more than robustness.
2022-05-18 10:51:10 +0200 <tdammers> a test can only ever verify assumptions at one specific point in the program structure; tested properties do not propagate through the code dependency graph
2022-05-18 10:51:32 +0200 <tdammers> it has nothing to do with simplicitly, actually
2022-05-18 10:51:43 +0200 <tdammers> or robustness, for that matter
2022-05-18 10:51:47 +0200Midjak(~Midjak@82.66.147.146)
2022-05-18 10:51:56 +0200 <kuribas> yeah, and if you call types "heavy and a burden", why not say the same about tests?
2022-05-18 10:52:27 +0200 <kuribas> tests often take more time than compilation, which people complain about.
2022-05-18 10:52:27 +0200 <tdammers> I mean, yes, if your code is correct, it will be more robust, and that's a welcome collateral of typed code, but at least for me, the main benefit lies in how a type checker automates the process of tracing invariants and assumptions through the code
2022-05-18 10:52:30 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
2022-05-18 10:53:28 +0200 <tdammers> case in point, the specific "type system" that you get with Java, which is the one most clojurists are familiar with, then you get the worst of both worlds - the type system is too weak to help you all that much, and it has such bad ergonomics that it is indeed a big burden
2022-05-18 10:53:30 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-05-18 10:53:31 +0200 <kuribas> yeah, being able as programmer to examine those assumptions and invariants in the code.
2022-05-18 10:53:48 +0200 <tdammers> I think this is where most clojurists' dislike of typed languages really comes from
2022-05-18 10:54:18 +0200 <tdammers> and no, not just as a programmer - the *compiler* examines and verifies assumptions and invariants for me
2022-05-18 10:54:24 +0200 <kuribas> well, they like to rail about haskell in particular.
2022-05-18 10:54:26 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2022-05-18 10:55:00 +0200 <tdammers> sure, because it spearheads practical typed programming
2022-05-18 10:55:14 +0200 <kuribas> and at the same time often show little practical experience with it.
2022-05-18 10:55:21 +0200 <tdammers> but 90% of the complaints I've heard are plain out uninformed
2022-05-18 10:55:25 +0200 <tdammers> exactly
2022-05-18 10:55:37 +0200 <kuribas> In fact I might agree with many haskell complaints, but not the ones clojurists make.
2022-05-18 10:55:55 +0200 <tdammers> "I've done typed programming in Java, and it was terrible; Haskell is more typed than Java, so it must be more terrible"
2022-05-18 10:56:53 +0200 <tdammers> there's also a fair chunk of Haskell criticism that targets specific Haskell coding styles, often highly experimental ones that people will not actually use in the trenches
2022-05-18 10:57:18 +0200 <tdammers> but as they say, you can disprove someone against their will, but you cannot convince them against their will
2022-05-18 10:58:27 +0200 <kuribas> and IMO haskell is not an optimum.
2022-05-18 10:59:05 +0200 <kuribas> Often putting to much stuff in types has little returns.
2022-05-18 10:59:17 +0200 <kuribas> But getting rid of static types completely isn't it either.
2022-05-18 11:00:09 +0200ishaan[m](~ishaanvma@2001:470:69fc:105::1:fb72) (Quit: You have been kicked for being idle)
2022-05-18 11:00:13 +0200 <kuribas> recursion schemes are neat, but mostly unnecessary.
2022-05-18 11:00:32 +0200ishaan[m](~ishaanvma@2001:470:69fc:105::1:fb72)
2022-05-18 11:02:14 +0200ishaan[m](~ishaanvma@2001:470:69fc:105::1:fb72) ()
2022-05-18 11:07:05 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 248 seconds)
2022-05-18 11:09:10 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 240 seconds)
2022-05-18 11:11:42 +0200cfricke_(~cfricke@user/cfricke)
2022-05-18 11:13:00 +0200kaph(~kaph@151.38.103.226)
2022-05-18 11:14:44 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 11:15:28 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 272 seconds)
2022-05-18 11:18:42 +0200FilipKalan(~FilipKala@77.28.86.211)
2022-05-18 11:19:32 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-18 11:19:50 +0200 <tdammers> you don't *have* to put everything in types in Haskell either
2022-05-18 11:20:10 +0200 <tdammers> a bigger issue IMO is that some things *cannot* be put in types, or require a lot of ceremony for subpar results
2022-05-18 11:21:05 +0200romesrf(~romes@2001:4c80:50:16:aca0:e09b:d41e:3058) (Ping timeout: 260 seconds)
2022-05-18 11:22:01 +0200frost(~frost@user/frost) (Quit: Ping timeout (120 seconds))
2022-05-18 11:23:50 +0200 <kuribas> indeed, and there the idea of just putting stuff in hashmaps looks attractive.
2022-05-18 11:24:01 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 11:24:31 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Quit: mikoto-chan)
2022-05-18 11:24:44 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-18 11:24:57 +0200FilipKalan(~FilipKala@77.28.86.211) (Quit: Client closed)
2022-05-18 11:25:09 +0200romesrf(~romes@2001:4c80:50:16:bd0d:c9c8:e6a9:ed4c)
2022-05-18 11:25:40 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-18 11:26:49 +0200 <tdammers> hashmaps are kind of an orthogonal concern - you can still use hashmaps but use a type system to verify constraints on them, like "has this key", or "value at that key is of type X"
2022-05-18 11:27:18 +0200 <tdammers> GHC doesn't use hashmaps to represent records, but that would be a valid choice in principle.
2022-05-18 11:27:43 +0200 <tdammers> (apart from the gnarliness associated with hashmaps in general, like hashdos and such)
2022-05-18 11:28:01 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 11:28:16 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
2022-05-18 11:29:10 +0200frost(~frost@user/frost)
2022-05-18 11:29:58 +0200 <kuribas> and to get that you need dependent types.
2022-05-18 11:31:17 +0200 <tdammers> No, you don't
2022-05-18 11:31:37 +0200 <kuribas> how else do you say, "this hashmap has these keys".
2022-05-18 11:31:41 +0200 <kuribas> ?
2022-05-18 11:32:05 +0200ubert1(~Thunderbi@2a02:8109:9880:303c:3970:68d6:9563:3ae2)
2022-05-18 11:32:15 +0200 <tdammers> thisHashmap :: (HasKey Foo m, HasKey Bar m) => m
2022-05-18 11:32:27 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 11:32:43 +0200 <tdammers> you have to lift keys to the type level, but that alone doesn't make it "dependently typed"
2022-05-18 11:33:37 +0200 <kuribas> Well, or some hacks to shoehorn this in haskell.
2022-05-18 11:35:49 +0200 <tdammers> I mean, you could literally write a Haskell compiler that uses hashmaps to represent records, and you'd have hashmap key constraints in Haskell98
2022-05-18 11:36:20 +0200 <kuribas> yeah, but records are not that flexible.
2022-05-18 11:36:33 +0200 <kuribas> unless you add generics and higher kinded fields.
2022-05-18 11:36:39 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-05-18 11:38:05 +0200 <tdammers> in most cases, you don't need much more flexibility than that
2022-05-18 11:38:17 +0200 <kuribas> true.
2022-05-18 11:38:21 +0200 <tdammers> the only thing I can think of would be extensible records, which, granted, are a bit awkward in haskell
2022-05-18 11:38:48 +0200 <tdammers> but that's not because Haskell isn't dependently typed enough, but because Haskell records are not extensible out of the box
2022-05-18 11:39:38 +0200 <kuribas> you can always use a type variable to represent other fields.
2022-05-18 11:39:54 +0200 <kuribas> data MyRecord a = MyRecord {foo :: Int, otherFields a}
2022-05-18 11:40:01 +0200 <tdammers> yes, but that's awkward
2022-05-18 11:40:24 +0200 <tdammers> extend the record six times, and now you need a chain of six accessors to work with the fields introduced in the last extension
2022-05-18 11:41:11 +0200romesrf(~romes@2001:4c80:50:16:bd0d:c9c8:e6a9:ed4c) (Ping timeout: 244 seconds)
2022-05-18 11:41:37 +0200 <kuribas> simplify the logic to not chain six times?
2022-05-18 11:43:10 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds)
2022-05-18 11:43:25 +0200tomku(~tomku@user/tomku)
2022-05-18 11:44:15 +0200 <kuribas> wxwidgets used this method to implement inheritance, and it worked well enough.
2022-05-18 11:44:18 +0200 <kuribas> wxhaskell.
2022-05-18 11:44:29 +0200dextaa8(~dextaa@user/dextaa)
2022-05-18 11:44:49 +0200 <kuribas> You'ld get a big chain, but there are type synonyms to reduce typing.
2022-05-18 11:45:10 +0200 <kuribas> It never felt cumbersome to me.
2022-05-18 11:45:14 +0200op(~op@c-6f8972d5.034-341-73746f13.bbcust.telenor.se)
2022-05-18 11:45:35 +0200 <kuribas> tdammers: but I agree real extensible records might be nicer. I just don't see how to implemented them in an ergonomic way in haskell.
2022-05-18 11:45:50 +0200 <tdammers> yeah, me neither
2022-05-18 11:46:02 +0200 <tdammers> I've tried them in Purescript, and I'm not convinced that that's how they should be done
2022-05-18 11:46:02 +0200 <kuribas> the libraries I saw looked unappealing.
2022-05-18 11:46:34 +0200dextaa(~dextaa@user/dextaa) (Ping timeout: 250 seconds)
2022-05-18 11:46:35 +0200dextaa8dextaa
2022-05-18 11:46:42 +0200op(~op@c-6f8972d5.034-341-73746f13.bbcust.telenor.se) (Client Quit)
2022-05-18 11:49:52 +0200 <kuribas> what didn't you like?
2022-05-18 11:50:58 +0200 <tdammers> It's been a while, but, two main complaints: first, records and product types are separate things, so either you get record accessors or pattern matching on a constructor, but not both.
2022-05-18 11:51:21 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:f7e7:d42e:7bee:fefc) (Ping timeout: 248 seconds)
2022-05-18 11:52:16 +0200 <kuribas> https://hackage.haskell.org/package/wxcore-0.92.3.0/docs/Graphics-UI-WXCore-WxcClassTypes.html#t:C…
2022-05-18 11:52:39 +0200 <kuribas> https://hackage.haskell.org/package/wxcore-0.92.3.0/docs/Graphics-UI-WXCore-WxcClassTypes.html#t:C…
2022-05-18 11:52:44 +0200 <kuribas> etc...
2022-05-18 11:53:32 +0200 <kuribas> tdammers: idris does that too.
2022-05-18 11:53:46 +0200 <kuribas> TBF, all your sum types need to have the same fields.
2022-05-18 11:53:50 +0200 <kuribas> or you get partial accessors.
2022-05-18 11:54:11 +0200 <tdammers> that's a different thing. I'm not talking about sum types here
2022-05-18 11:54:27 +0200 <tdammers> I'm talking about how in Haskell, you can access record fields either by name or by position
2022-05-18 11:54:57 +0200 <kuribas> that's a code smell IMO
2022-05-18 11:55:02 +0200 <tdammers> data Blah = Blah { blahFoo :: Int, blahBar :: String }; i = blahFoo blah; (Blah i _) = blah
2022-05-18 11:55:08 +0200 <kuribas> unless there are at most 3 fields.
2022-05-18 11:55:23 +0200 <kuribas> But more fields and it's easy to get errors by swapping arguemnts.
2022-05-18 11:55:40 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
2022-05-18 11:55:42 +0200 <tdammers> it's a useful feature, whether you should be using it is a matter of coding style and "good taste programming"
2022-05-18 11:57:46 +0200 <kuribas> Can't you just pattern match on the fields instead?
2022-05-18 11:58:13 +0200 <kuribas> I am deliberately making it mandatory to match on fields in my idris extensible record library.
2022-05-18 11:58:30 +0200 <kuribas> So you cannot make a record with positional arguments only.
2022-05-18 11:58:41 +0200 <kuribas> The way it is done in servant for example.
2022-05-18 11:58:52 +0200 <kuribas> Very easy to get confusing error messages.
2022-05-18 11:59:44 +0200 <kuribas> foo :<|> bar
2022-05-18 12:00:00 +0200 <kuribas> change too "foo :<|> baz :<|> bar", and get huge confusing error messages.
2022-05-18 12:01:07 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 260 seconds)
2022-05-18 12:01:08 +0200mikoto-c1(~mikoto-ch@213.177.151.239)
2022-05-18 12:03:55 +0200bliminse_(~bliminse@host81-154-179-167.range81-154.btcentralplus.com)
2022-05-18 12:04:37 +0200bliminse(~bliminse@host86-164-128-238.range86-164.btcentralplus.com) (Ping timeout: 260 seconds)
2022-05-18 12:04:47 +0200 <kuribas> I agree with many of the arguments clojurists make. I just rarely agree with the conclusions and solutions.
2022-05-18 12:05:14 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 12:06:15 +0200 <kuribas> but yeah, programming is hard, there are not ideal solutions yet :)
2022-05-18 12:06:50 +0200 <kuribas> At least we should refrain from stupid conclusions like "types are all bad", or "types solve all problems".
2022-05-18 12:07:37 +0200 <kuribas> I prefer "types give you a flexible toolkit that you can use to make robust solutions."
2022-05-18 12:08:38 +0200kenran(~kenran@ip-037-024-119-189.um08.pools.vodafone-ip.de)
2022-05-18 12:08:51 +0200kenran(~kenran@ip-037-024-119-189.um08.pools.vodafone-ip.de) (Client Quit)
2022-05-18 12:09:05 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2022-05-18 12:10:48 +0200 <tdammers> haha, yeah. Rich makes all sorts of great arguments for Haskell, and then proceeds to invent Clojure.
2022-05-18 12:13:33 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
2022-05-18 12:15:20 +0200 <kuribas> +1
2022-05-18 12:15:26 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-18 12:15:49 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 12:16:08 +0200nattiestnate(~nate@202.138.250.13)
2022-05-18 12:18:10 +0200 <maerwald[m]> I'd love to have opt-in dynamic typing and no, type classes are not that
2022-05-18 12:18:10 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 272 seconds)
2022-05-18 12:19:30 +0200MajorBiscuit(~MajorBisc@145.94.234.141) (Ping timeout: 240 seconds)
2022-05-18 12:19:47 +0200notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2022-05-18 12:22:16 +0200cyphase(~cyphase@user/cyphase)
2022-05-18 12:23:38 +0200 <kuribas> maerwald[m]: Data.Dynamic?
2022-05-18 12:25:00 +0200 <maerwald[m]> Nah
2022-05-18 12:25:14 +0200 <maerwald[m]> That is too broad
2022-05-18 12:25:35 +0200 <kuribas> dynamic types are broad :)
2022-05-18 12:27:23 +0200 <maerwald[m]> Not unrestricted no
2022-05-18 12:29:27 +0200 <maerwald[m]> https://github.com/nikita-volkov/isomorphism-class comes close, but it requires you to write instances etc
2022-05-18 12:30:13 +0200romesrf(~romes@185.5.8.134)
2022-05-18 12:30:29 +0200MajorBiscuit(~MajorBisc@145.94.234.141)
2022-05-18 12:30:54 +0200FilipKalan(~FilipKala@77.28.86.211)
2022-05-18 12:31:30 +0200xff0x(~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds)
2022-05-18 12:35:59 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 12:36:09 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-05-18 12:37:16 +0200king_gs(~Thunderbi@187.201.97.18) (Quit: king_gs)
2022-05-18 12:37:50 +0200__monty__(~toonn@user/toonn)
2022-05-18 12:41:33 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-18 12:47:08 +0200FilipKalan(~FilipKala@77.28.86.211) (Quit: Client closed)
2022-05-18 12:51:00 +0200razetime(~quassel@117.254.34.215)
2022-05-18 12:55:38 +0200nattiestnate(~nate@202.138.250.13) (Quit: WeeChat 3.5)
2022-05-18 12:57:18 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds)
2022-05-18 12:57:28 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-05-18 12:58:39 +0200dextaa5(~dextaa@user/dextaa)
2022-05-18 12:58:46 +0200Lord_of_Life_Lord_of_Life
2022-05-18 13:00:55 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-18 13:01:12 +0200dextaa(~dextaa@user/dextaa) (Ping timeout: 260 seconds)
2022-05-18 13:01:12 +0200dextaa5dextaa
2022-05-18 13:04:14 +0200razetime(~quassel@117.254.34.215) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-05-18 13:06:20 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:6617:8718:7034:e8b1)
2022-05-18 13:08:05 +0200cfricke_(~cfricke@user/cfricke) (Quit: WeeChat 3.5)
2022-05-18 13:10:54 +0200doyougnu(~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
2022-05-18 13:11:36 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 276 seconds)
2022-05-18 13:12:59 +0200mstksg(~jle`@cpe-23-240-75-236.socal.res.rr.com)
2022-05-18 13:13:12 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-05-18 13:14:09 +0200razetime(~quassel@117.254.34.215)
2022-05-18 13:16:44 +0200titibandit(~thibaut@2a00:8a60:c000:1:8a13:bf74:b2:8d47)
2022-05-18 13:16:52 +0200Infinite(~Infinite@49.39.117.188)
2022-05-18 13:18:08 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-18 13:20:52 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-18 13:24:15 +0200raym(~raym@user/raym) (Ping timeout: 256 seconds)
2022-05-18 13:24:35 +0200raym(~raym@user/raym)
2022-05-18 13:25:48 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 13:26:46 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-05-18 13:30:22 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
2022-05-18 13:35:02 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2022-05-18 13:39:12 +0200Infinite(~Infinite@49.39.117.188) (Ping timeout: 252 seconds)
2022-05-18 13:42:16 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 13:44:19 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-18 13:44:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 13:46:48 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
2022-05-18 13:48:31 +0200mmhat(~mmh@p200300f1c71af8b0ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-18 13:49:59 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-18 13:51:05 +0200shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-05-18 13:53:28 +0200acidjnk(~acidjnk@p200300d0c7068b757d0566c8380b0d79.dip0.t-ipconnect.de)
2022-05-18 13:57:30 +0200mmhat(~mmh@p200300f1c71af8b0ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.5)
2022-05-18 13:57:32 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-18 13:58:04 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 13:59:16 +0200mmhat(~mmh@p200300f1c71af8b0ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-18 14:00:18 +0200 <jackdk> maerwald[m]: `-fdefer-type-errors`?
2022-05-18 14:00:46 +0200romesrf(~romes@185.5.8.134) (Ping timeout: 272 seconds)
2022-05-18 14:02:53 +0200rkrishnan(~user@2402:e280:215c:2cd:b44d:ba2:6f58:aac5)
2022-05-18 14:04:04 +0200DNH(~DNH@2a02:8109:b740:2c4:f181:7a80:2e1b:312d)
2022-05-18 14:09:31 +0200 <kuribas> maerwald[m]: write a dynamic monad.
2022-05-18 14:09:43 +0200 <kuribas> which handles type errors for you.
2022-05-18 14:09:53 +0200 <maerwald[m]> jackdk: nah, that's a sledgehammer that opts out of everything for the entire codebase
2022-05-18 14:11:17 +0200dextaa0(~dextaa@user/dextaa)
2022-05-18 14:12:42 +0200dextaa(~dextaa@user/dextaa) (Read error: Connection reset by peer)
2022-05-18 14:12:49 +0200pera(~pera@user/pera)
2022-05-18 14:13:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 14:13:46 +0200dextaa0dextaa
2022-05-18 14:13:48 +0200bliminse_bliminse
2022-05-18 14:16:24 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 14:16:24 +0200 <kenaryn> are maerwald and maerwald[m] the same person? I don't understand the meaning of the suffix.
2022-05-18 14:16:24 +0200king_gs(~Thunderbi@187.201.97.18) (Read error: Connection reset by peer)
2022-05-18 14:16:38 +0200 <geekosaur> one's using the matrix gateway
2022-05-18 14:16:45 +0200 <geekosaur> and yes they're the same person
2022-05-18 14:16:59 +0200 <kenaryn> Allright! So my next question is: what is a matrix gateway? (lol)
2022-05-18 14:17:28 +0200 <geekosaur> https://element.io
2022-05-18 14:17:40 +0200 <maerwald[m]> kenaryn: yes we are one
2022-05-18 14:17:41 +0200 <geekosaur> it's sort of next generation IRC
2022-05-18 14:17:46 +0200 <maerwald[m]> Hive mind
2022-05-18 14:17:53 +0200 <kenaryn> the one and many :D
2022-05-18 14:18:00 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 14:18:08 +0200 <kenaryn> Allright, thank you.
2022-05-18 14:18:16 +0200 <maerwald[m]> It's just that mobile IRC clients all suck
2022-05-18 14:18:21 +0200 <maerwald[m]> So there I use matrix
2022-05-18 14:18:22 +0200 <geekosaur> well, elenment is the most popular way to access matrix. matrix.org is the actual matrix server
2022-05-18 14:18:30 +0200 <geekosaur> yep, I do the same
2022-05-18 14:18:36 +0200 <kenaryn> I personally find irssi client up to the task.
2022-05-18 14:18:47 +0200 <maerwald[m]> On mobile?
2022-05-18 14:18:54 +0200 <kenaryn> Ah nan sorry, on desktop.
2022-05-18 14:19:05 +0200romesrf(~romes@2001:4c80:50:16:f5d8:6:441c:a511)
2022-05-18 14:19:11 +0200 <maerwald[m]> On desktop I use weechat
2022-05-18 14:19:24 +0200 <yushyin> on android i use weechat-android
2022-05-18 14:20:14 +0200 <kenaryn> There is a serious learning curve with wee-chat, complicated and powerfull, chinese typical :)
2022-05-18 14:20:50 +0200 <yushyin> chinese?
2022-05-18 14:21:07 +0200 <yushyin> weechat, not WeChat
2022-05-18 14:21:17 +0200 <kenaryn> Arf sorry again.
2022-05-18 14:21:33 +0200 <kenaryn> Give me that sledgehammer :D
2022-05-18 14:21:37 +0200 <geekosaur> wee as in tiny
2022-05-18 14:22:11 +0200 <geekosaur> but I kinda like my UIs so I use hexchat on desktop and element on phone
2022-05-18 14:23:58 +0200titibandit(~thibaut@2a00:8a60:c000:1:8a13:bf74:b2:8d47) (Quit: Leaving.)
2022-05-18 14:25:40 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 14:26:18 +0200jinsun(~jinsun@user/jinsun)
2022-05-18 14:28:00 +0200king_gs(~Thunderbi@187.201.97.18) (Ping timeout: 272 seconds)
2022-05-18 14:28:05 +0200 <kenaryn> I thought [m] was a kind of leet language for uber users :) or a sort of sect
2022-05-18 14:28:49 +0200notzmv(~zmv@user/notzmv)
2022-05-18 14:30:13 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2022-05-18 14:35:11 +0200 <jackdk> maerwald[m]: `{-# OPTIONS_GHC -fdefer-type-errors #-}`? lol
2022-05-18 14:35:54 +0200 <maerwald[m]> jackdk: that's the most crippled feature then
2022-05-18 14:41:12 +0200 <geekosaur> -fdefer-type-errors is intended for IDE-like things so they can do *something* even if the program is broken. there's also -fdefer-all-errors which does the same for syntax errors and the like
2022-05-18 14:49:04 +0200srk(~sorki@user/srk) (Quit: ZNC 1.8.1 - https://znc.in)
2022-05-18 14:50:25 +0200nate1(~nate@98.45.169.16)
2022-05-18 14:50:53 +0200srk(~sorki@user/srk)
2022-05-18 14:54:56 +0200nate1(~nate@98.45.169.16) (Ping timeout: 244 seconds)
2022-05-18 14:55:36 +0200dextaa(~dextaa@user/dextaa) (Quit: The Lounge - https://thelounge.chat)
2022-05-18 14:57:39 +0200dextaa(~dextaa@user/dextaa)
2022-05-18 14:59:54 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 15:00:34 +0200dextaa(~dextaa@user/dextaa) (Client Quit)
2022-05-18 15:00:48 +0200dextaa(~dextaa@user/dextaa)
2022-05-18 15:04:06 +0200acidjnk(~acidjnk@p200300d0c7068b757d0566c8380b0d79.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-05-18 15:04:38 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 15:05:26 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 15:06:02 +0200dextaa(~dextaa@user/dextaa) (Ping timeout: 260 seconds)
2022-05-18 15:06:48 +0200shailangsa(~shailangs@host109-152-9-235.range109-152.btcentralplus.com)
2022-05-18 15:07:12 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
2022-05-18 15:07:55 +0200kaph_(~kaph@pd-18-117-201.service.infuturo.it)
2022-05-18 15:10:26 +0200kaph(~kaph@151.38.103.226) (Ping timeout: 244 seconds)
2022-05-18 15:10:33 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
2022-05-18 15:11:50 +0200img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-18 15:12:31 +0200dextaa(~dextaa@user/dextaa)
2022-05-18 15:12:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 15:13:16 +0200img(~img@user/img)
2022-05-18 15:18:02 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 15:23:17 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 15:25:50 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 15:26:28 +0200finsternis(~X@23.226.237.192) (Ping timeout: 248 seconds)
2022-05-18 15:33:49 +0200vicfred(~vicfred@user/vicfred)
2022-05-18 15:33:58 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Remote host closed the connection)
2022-05-18 15:37:58 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-18 15:37:58 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-18 15:37:58 +0200wroathe(~wroathe@user/wroathe)
2022-05-18 15:38:54 +0200geekosaur[m][m]geekosaur[m]
2022-05-18 15:39:34 +0200romesrf(~romes@2001:4c80:50:16:f5d8:6:441c:a511) (Ping timeout: 272 seconds)
2022-05-18 15:43:01 +0200king_gs(~Thunderbi@187.201.97.18) (Read error: Connection reset by peer)
2022-05-18 15:45:13 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 15:46:31 +0200romesrf(~romes@2001:4c80:50:16:b527:df80:4683:1269)
2022-05-18 15:51:10 +0200romesrf(~romes@2001:4c80:50:16:b527:df80:4683:1269) (Ping timeout: 260 seconds)
2022-05-18 15:52:11 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 15:53:43 +0200gensyst(gensyst@user/gensyst)
2022-05-18 15:58:37 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-05-18 15:58:39 +0200odnes__(~odnes@5-203-155-92.pat.nym.cosmote.net)
2022-05-18 15:58:56 +0200odnes_(~odnes@5-203-155-92.pat.nym.cosmote.net) (Remote host closed the connection)
2022-05-18 15:59:12 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 272 seconds)
2022-05-18 15:59:36 +0200romesrf(~romes@2001:4c80:50:16:b527:df80:4683:1269)
2022-05-18 16:03:41 +0200 <gensyst> I'm using Haskell to export data sets, then using Python to visualize these data sets. The latter makes me feel like I'm cheating.
2022-05-18 16:03:49 +0200 <gensyst> Shouldn't I do *everything* in Haskell?
2022-05-18 16:05:40 +0200 <lortabac> cheating for what? is it an exam?
2022-05-18 16:06:13 +0200 <lortabac> otherwise there is no cheating, you use whatever tool is best for what you need to do
2022-05-18 16:09:51 +0200 <gensyst> well, i'd like your thoughts on doing data visualizations in haskell. is haskell simply not the right tool for this job?
2022-05-18 16:09:59 +0200rkrishnan(~user@2402:e280:215c:2cd:b44d:ba2:6f58:aac5) (Ping timeout: 240 seconds)
2022-05-18 16:09:59 +0200king_gs(~Thunderbi@187.201.97.18) (Read error: Connection reset by peer)
2022-05-18 16:10:09 +0200 <maerwald> gensyst: do you know about diagrams?
2022-05-18 16:10:46 +0200 <maerwald> https://hackage.haskell.org/package/diagrams
2022-05-18 16:11:15 +0200 <maerwald> but I'm not sure that's what you're looking foor
2022-05-18 16:11:24 +0200marquis_andras(~marquis_a@110-175-153-86.static.tpgi.com.au) (Ping timeout: 240 seconds)
2022-05-18 16:12:16 +0200 <gensyst> maerwald, here's a typical thing: open an interactive scatter plot of a certain data set that I can quickly work with more. zoom into specific area. rotate (in case of 3d). etc.
2022-05-18 16:12:29 +0200 <gensyst> as opposed to just exporting images
2022-05-18 16:12:39 +0200 <maerwald> I've used the cairo backend
2022-05-18 16:12:48 +0200 <maerwald> then you can embed your stuff in a gtk+ app
2022-05-18 16:13:10 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 16:13:42 +0200kaph_(~kaph@pd-18-117-201.service.infuturo.it) (Ping timeout: 260 seconds)
2022-05-18 16:14:02 +0200 <maerwald> https://hackage.haskell.org/package/diagrams-cairo
2022-05-18 16:14:16 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 16:18:30 +0200marquis_andras(~marquis_a@118.208.237.82)
2022-05-18 16:18:44 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 16:19:46 +0200 <gensyst> maerwald, thank you
2022-05-18 16:19:50 +0200 <gensyst> this is looking great!
2022-05-18 16:20:21 +0200 <gensyst> In your opinions, given wxmaxima/octave/python/cairo (all these free tools), who would buy maple/mathematica?
2022-05-18 16:20:26 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2022-05-18 16:20:57 +0200 <geekosaur> institutions and businesses
2022-05-18 16:21:20 +0200 <maerwald> here's some (very old) code using diags/cairo/gtk+ to visualize some simplistic algorithms: https://github.com/hasufell/CGA/tree/master/Graphics/Diagram
2022-05-18 16:21:38 +0200frost(~frost@user/frost) (Ping timeout: 252 seconds)
2022-05-18 16:21:41 +0200 <geekosaur> keep in mind the real value of those is commercial plug-ins/libraries for which there still isn't much in the way of good free replacements
2022-05-18 16:22:11 +0200 <geekosaur> (add matlab to that list btw)
2022-05-18 16:22:26 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-18 16:22:59 +0200 <geekosaur> mostly domain specific libs that there isn't much interest in in the freeware world
2022-05-18 16:24:26 +0200 <gensyst> geekosaur, hmm, yes
2022-05-18 16:24:39 +0200agumonkey(~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
2022-05-18 16:25:49 +0200 <geekosaur> that said, those institutions don't much like payying for that stuff either, which is what has fueled the growth of e.g. numpy
2022-05-18 16:25:57 +0200 <Logio> back when I last used Mathematica, I didn't think wxMaxima was worth even considering (for theoretical physics at least). Don't know whether that's changed in the last decade
2022-05-18 16:26:34 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2022-05-18 16:27:32 +0200 <Logio> both for programming ergonomics and some features, I don't think anything but Mathematica could deal with of the integrals at the time
2022-05-18 16:27:39 +0200 <Logio> *some of
2022-05-18 16:27:39 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-18 16:28:01 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 16:31:33 +0200slack1256(~slack1256@191.125.99.92)
2022-05-18 16:32:22 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-05-18 16:34:07 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 260 seconds)
2022-05-18 16:34:46 +0200odnes__(~odnes@5-203-155-92.pat.nym.cosmote.net) (Quit: Leaving)
2022-05-18 16:34:56 +0200 <[exa]> gensyst: what visualizations do you need? for most general plotting purposes there's Chart package here https://github.com/timbod7/haskell-chart/wiki
2022-05-18 16:36:09 +0200 <[exa]> ah, interactive scatterplots, I lost it in the scrollback. How many individual datapoints?
2022-05-18 16:36:35 +0200Sgeo(~Sgeo@user/sgeo)
2022-05-18 16:37:37 +0200 <gensyst> [exa] not too many not like trillions :)
2022-05-18 16:37:40 +0200 <gensyst> not even millions probably
2022-05-18 16:37:41 +0200 <gensyst> thousands?
2022-05-18 16:37:54 +0200 <[exa]> you might be good off with a tiny gloss app running in the window
2022-05-18 16:38:45 +0200 <gensyst> what's that?
2022-05-18 16:39:19 +0200 <[exa]> a nice kinda-DSL for just putting simple graphics on screen
2022-05-18 16:39:55 +0200 <[exa]> you literally type something like `main = animate $ Point (0,0)` and you have a point there in a movable zoomable window
2022-05-18 16:40:28 +0200 <[exa]> http://gloss.ouroborus.net/
2022-05-18 16:41:00 +0200romesrf(~romes@2001:4c80:50:16:b527:df80:4683:1269) (Ping timeout: 272 seconds)
2022-05-18 16:41:56 +0200 <[exa]> still, it's probably not a really "batteries included" solution
2022-05-18 16:46:05 +0200 <gensyst> [exa] i'm trying it now :) what batteries do you have in mind? (not sure if i need those yet)
2022-05-18 16:46:55 +0200 <[exa]> like, from a plotting package you'd expect that it e.g. draws the axes for you etc
2022-05-18 16:47:50 +0200 <[exa]> this is just literally "primitives to screen", and the Chart above isn't animated-- so it's likely going to require some deeper effort to get to something that does the scatterplot thing right
2022-05-18 16:54:17 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds)
2022-05-18 16:59:23 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer)
2022-05-18 17:00:03 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-18 17:02:32 +0200king_gs(~Thunderbi@187.201.97.18) (Read error: Connection reset by peer)
2022-05-18 17:02:53 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-05-18 17:03:22 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 17:04:26 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com)
2022-05-18 17:08:04 +0200stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2022-05-18 17:09:10 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-18 17:10:06 +0200 <gensyst> [exa] it works lol
2022-05-18 17:10:11 +0200 <gensyst> but yeah, very primitive
2022-05-18 17:10:18 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net)
2022-05-18 17:10:51 +0200Infinite(~Infinite@49.39.120.250)
2022-05-18 17:11:24 +0200zincy(~zincy@host86-160-236-152.range86-160.btcentralplus.com) (Ping timeout: 272 seconds)
2022-05-18 17:14:26 +0200yauhsien(~yauhsien@61-231-45-20.dynamic-ip.hinet.net) (Ping timeout: 244 seconds)
2022-05-18 17:14:34 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2022-05-18 17:14:47 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:6617:8718:7034:e8b1) (Quit: WeeChat 2.8)
2022-05-18 17:19:00 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2022-05-18 17:20:13 +0200stiell_(~stiell@gateway/tor-sasl/stiell)
2022-05-18 17:20:25 +0200king_gs(~Thunderbi@187.201.97.18) (Ping timeout: 248 seconds)
2022-05-18 17:20:45 +0200cyanide4dinner(~cyanide4d@122.175.213.207)
2022-05-18 17:21:00 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Ping timeout: 260 seconds)
2022-05-18 17:21:25 +0200romesrf(~romes@2001:4c80:50:16:9d15:fde4:760:76bb)
2022-05-18 17:24:15 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 17:27:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 17:27:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2022-05-18 17:28:00 +0200romesrf(~romes@2001:4c80:50:16:9d15:fde4:760:76bb) (Ping timeout: 260 seconds)
2022-05-18 17:28:29 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-18 17:29:45 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 260 seconds)
2022-05-18 17:32:36 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-05-18 17:33:03 +0200strawburr(~user@2601:681:5880:3700::4c8c)
2022-05-18 17:34:54 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-18 17:36:54 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
2022-05-18 17:38:26 +0200kaph_(~kaph@mi-18-25-131.service.infuturo.it)
2022-05-18 17:38:47 +0200hgolden(~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
2022-05-18 17:42:38 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 17:43:19 +0200zachel(~zachel@user/zachel) (Ping timeout: 240 seconds)
2022-05-18 17:43:58 +0200zachel(~zachel@user/zachel)
2022-05-18 17:44:16 +0200romesrf(~romes@2001:4c80:50:16:9d15:fde4:760:76bb)
2022-05-18 17:45:29 +0200dextaa(~dextaa@user/dextaa) (Quit: The Lounge - https://thelounge.chat)
2022-05-18 17:48:08 +0200gensyst(gensyst@user/gensyst) (Quit: Leaving)
2022-05-18 17:51:21 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-18 17:52:27 +0200romesrf(~romes@2001:4c80:50:16:9d15:fde4:760:76bb) (Ping timeout: 240 seconds)
2022-05-18 17:54:55 +0200briandaed(~briandaed@109.95.142.93.r.toneticgroup.pl) (Read error: Connection reset by peer)
2022-05-18 17:55:00 +0200nbms^(~nbms@c-24-126-228-147.hsd1.ga.comcast.net)
2022-05-18 17:58:37 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 17:59:07 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-05-18 17:59:30 +0200nbms^(~nbms@c-24-126-228-147.hsd1.ga.comcast.net) (Ping timeout: 240 seconds)
2022-05-18 17:59:31 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-18 18:00:04 +0200mbuf(~Shakthi@31.32.33.168) (Quit: Leaving)
2022-05-18 18:00:27 +0200zebrag(~chris@user/zebrag)
2022-05-18 18:02:09 +0200king_gs(~Thunderbi@187.201.97.18) (Read error: Connection reset by peer)
2022-05-18 18:03:11 +0200cyanide4dinner(~cyanide4d@122.175.213.207) (Remote host closed the connection)
2022-05-18 18:04:44 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 18:04:59 +0200k`(~user@152.1.137.158)
2022-05-18 18:05:16 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980) (Quit: Konversation terminated!)
2022-05-18 18:05:30 +0200slack7302(~slack1256@181.43.226.229)
2022-05-18 18:06:06 +0200 <k`> Is there any special meaning to the color of the 'Versions' links in Hackage on Haskell.org? Some of the links are blue, others are black (red?). Is it just my browser?
2022-05-18 18:06:41 +0200Everything(~Everythin@37.115.210.35)
2022-05-18 18:07:11 +0200 <k`> Never mind, I see that the '(info)' link covers that.
2022-05-18 18:07:19 +0200slack1256(~slack1256@191.125.99.92) (Ping timeout: 240 seconds)
2022-05-18 18:08:20 +0200dyeplexer(~dyeplexer@user/dyeplexer)
2022-05-18 18:09:08 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
2022-05-18 18:09:32 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-18 18:11:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-18 18:13:27 +0200P1RATEZ(piratez@user/p1ratez)
2022-05-18 18:13:30 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds)
2022-05-18 18:14:31 +0200ubert1(~Thunderbi@2a02:8109:9880:303c:3970:68d6:9563:3ae2) (Remote host closed the connection)
2022-05-18 18:15:05 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-18 18:16:09 +0200slack1256(~slack1256@191.125.99.92)
2022-05-18 18:17:07 +0200 <slack1256> The haskell PVP document specifies 3 numbers A.B.C as composing the package version, but by default `cabal init` creates a package with 4 number A.B.C.D. Is there a reason for that? I always thought the last number was for _hackage revisions_.
2022-05-18 18:17:43 +0200 <sclv> "A package version number SHOULD have the form A.B.C, and MAY optionally have any number of additional components"
2022-05-18 18:18:00 +0200 <sclv> the last number is not for hackage revisions -- hackage revisions are not part of the pvp
2022-05-18 18:18:23 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2022-05-18 18:18:25 +0200 <slack1256> Any guidelines on how to use the last number D that is included by default by cabal?
2022-05-18 18:18:32 +0200slack7302(~slack1256@181.43.226.229) (Ping timeout: 272 seconds)
2022-05-18 18:18:36 +0200 <sclv> traditionally the 3rd number is for minor releases that might include changing behavior, and the 4th number is for "purely bugfix" releases
2022-05-18 18:18:55 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-18 18:19:52 +0200 <sclv> so if i were to add a new datatype or function then i would increment the 3rd number, but if i was to fix a bug, or just update documentation and deps, etc. then i might just increment the 4th
2022-05-18 18:20:02 +0200Kaiepi(~Kaiepi@156.34.47.253) (Remote host closed the connection)
2022-05-18 18:20:56 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2022-05-18 18:21:52 +0200 <slack1256> Gotcha. At the end of the day, it is an stylistic choice on having finer-grained C over both (C,D). That makes sense.
2022-05-18 18:22:18 +0200MajorBiscuit(~MajorBisc@145.94.234.141) (Ping timeout: 276 seconds)
2022-05-18 18:24:08 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-18 18:25:51 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 18:26:42 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds)
2022-05-18 18:27:55 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-18 18:28:13 +0200 <k`> Is there a way to get cabal to download a license file after a package has been initialized?
2022-05-18 18:29:04 +0200 <k`> Like, say I went with the default BSD3, but realized that the package contents are so simple it should be PublicDomain. How do I switch?
2022-05-18 18:31:22 +0200 <k`> Also, do folks try to avoid PublicDomain for Haskell projects? If you saw a package was PublicDomain, would you avoid it?
2022-05-18 18:32:19 +0200 <tdammers> public domain is problematic in a couple ways; in most cases, you're better served by a maximally permissive open-source license
2022-05-18 18:33:19 +0200 <k`> The BSD0 license, unfortunately, seems to not be included as a default, and might also raise flags.
2022-05-18 18:33:23 +0200 <tdammers> for starters, in some countries it is not legally possible to voluntarily give up copyright, and so "releasing into the public domain" is not something you can even do, which means that if all you do is declare the code to be in the public domain, it defaults to "all rights reserved" in countries that do not recognize it
2022-05-18 18:36:16 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2022-05-18 18:36:59 +0200 <k`> So what are your thoughts on 0BSD rather than BSD-3-Clause?
2022-05-18 18:37:08 +0200 <k`> Or Unlicense?
2022-05-18 18:38:08 +0200king_gs(~Thunderbi@187.201.97.18) (Ping timeout: 244 seconds)
2022-05-18 18:39:11 +0200jmdaemon(~jmdaemon@user/jmdaemon)
2022-05-18 18:39:26 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
2022-05-18 18:41:45 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 244 seconds)
2022-05-18 18:41:59 +0200econo(uid147250@user/econo)
2022-05-18 18:43:29 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-18 18:45:22 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 244 seconds)
2022-05-18 18:46:19 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 240 seconds)
2022-05-18 18:47:06 +0200cyphase(~cyphase@user/cyphase)
2022-05-18 18:47:58 +0200 <sclv> in general i’ve never seen someone say “bsd is insufficiently permissive”
2022-05-18 18:48:54 +0200strawburr(~user@2601:681:5880:3700::4c8c) (Remote host closed the connection)
2022-05-18 18:48:57 +0200 <geekosaur> there's an spdx update coming in the next cabal, not that that helps you now. BSD0 seems to be part of SPDX at this point so it should be included
2022-05-18 18:51:26 +0200 <k`> It seems like my best bet is to double-license it, by providing the default BSD3 licensing defaulted to by cabal and also allowing use under a 0BSD license.
2022-05-18 18:51:55 +0200nate1(~nate@98.45.169.16)
2022-05-18 18:52:42 +0200 <k`> sclv: I don't want someone to have to ask my permission to copy-paste my code, nor do I want to force them to attach my name to a definition that necessarily follows from the type.
2022-05-18 18:53:21 +0200 <EvanR> if the unlicense is a perfect license void, is there a counteracting antithesis license which is like a plenum
2022-05-18 18:53:44 +0200 <EvanR> introducing all possible legal force
2022-05-18 18:53:51 +0200 <k`> And I know that programmers often copy code regardless of license, so I want to avoid creating a legal trap.
2022-05-18 18:53:54 +0200 <geekosaur> "all rights reserved"
2022-05-18 18:53:56 +0200jao(~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-18 18:54:08 +0200 <k`> Yeah, in the US it's just not including any license.
2022-05-18 18:54:18 +0200 <k`> Boom, all rights reserved.
2022-05-18 18:54:19 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 18:54:22 +0200 <EvanR> lol
2022-05-18 18:54:33 +0200 <geekosaur> k`, you're actually getting into fairly murky legal waters because not every country is signatory to the Berne convention
2022-05-18 18:54:55 +0200 <k`> My descendants can sue you for copying my definition of 'rotate3 (x, y, z) = (z, x, y)'
2022-05-18 18:54:57 +0200 <geekosaur> in some countries you *can't* grant that right. in many it doesn't have to be granted because it's covered by fair use
2022-05-18 18:55:26 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-05-18 18:55:37 +0200 <k`> Fair use is also extremely murky in the US.
2022-05-18 18:55:45 +0200 <geekosaur> and everywhere else
2022-05-18 18:55:48 +0200 <EvanR> as I understood it, "my descendants can sue you" just stops there and doesn't require "descendants"
2022-05-18 18:56:07 +0200 <k`> The only way to tell whether a use is fair is to try it and see if somebody gets sued at some point.
2022-05-18 18:56:30 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-05-18 18:56:46 +0200 <maerwald> has anyone used https://github.com/fpco/unliftio/issues/68 to create MonadUnliftIO instance for servants Handler?
2022-05-18 18:57:11 +0200 <geekosaur> that said, fair use isn't going to be an issue for you because copyright requires enforcement and you can simply not enforce
2022-05-18 18:57:22 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-18 18:57:39 +0200 <geekosaur> none of those countries holds a gun to your head and forces you to sue someone
2022-05-18 18:58:02 +0200 <k`> geekosaur: Right, but it's unreasonable for others to trust that I'll act that way.
2022-05-18 18:58:08 +0200 <geekosaur> it's the *other* side that gets murky
2022-05-18 18:58:27 +0200 <EvanR> you're right k, I don't trust you at all. So make sure you do the right thing
2022-05-18 18:58:58 +0200 <geekosaur> and sadly, if you're truly concerned about such things you need to talk to an IP lawyer
2022-05-18 18:59:07 +0200 <k`> EvanR: I'll promise you now that I will do the right thing, but of course you should not trust that either (Hi Google :-).
2022-05-18 18:59:11 +0200 <geekosaur> because it's just a mess
2022-05-18 18:59:31 +0200 <geekosaur> (IANAL nor do I play one on the Internet)
2022-05-18 19:00:10 +0200romesrf(~romes@185.5.8.134)
2022-05-18 19:00:27 +0200 <k`> And now I'm back where I started, which is trying to make the licensing as permissive as possible to avoid this legal BS.
2022-05-18 19:00:59 +0200 <EvanR> you'll also need to factor in all future countries legal environment
2022-05-18 19:01:07 +0200 <geekosaur> except we're back to "some countries don't do 'as permissive as possible'"
2022-05-18 19:02:17 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 260 seconds)
2022-05-18 19:05:29 +0200 <geekosaur[m]> Also note that the only licenses tested in court are bsd3 and gpl3 and those not in all jurisdictions
2022-05-18 19:06:02 +0200 <k`> OK, so with that in mind, offering 2 licenses seems like the safest bet.
2022-05-18 19:06:04 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-18 19:06:41 +0200 <geekosaur[m]> So some companies will avoid anything otherwise licensed anyway to avoid potential hassles
2022-05-18 19:07:18 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-05-18 19:08:55 +0200 <k`> For years the company I work for avoided using anything under a Creative Commons license.
2022-05-18 19:11:12 +0200 <shapr> Companies aren't smart
2022-05-18 19:11:19 +0200 <shapr> I think they center on risk averse
2022-05-18 19:11:43 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-18 19:12:22 +0200pera(~pera@user/pera) (Ping timeout: 272 seconds)
2022-05-18 19:12:44 +0200razetime(~quassel@117.254.34.215) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2022-05-18 19:15:03 +0200 <geekosaur[m]> And the copyright system was designed to protect rights, not free them
2022-05-18 19:15:03 +0200king_gs(~Thunderbi@187.201.97.18) (Read error: Connection reset by peer)
2022-05-18 19:16:09 +0200king_gs(~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55)
2022-05-18 19:16:17 +0200slack1256(~slack1256@191.125.99.92) (Ping timeout: 260 seconds)
2022-05-18 19:23:27 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 19:25:05 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-18 19:26:14 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-18 19:30:31 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 19:33:10 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-18 19:35:00 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 248 seconds)
2022-05-18 19:35:06 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-18 19:35:10 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 272 seconds)
2022-05-18 19:35:59 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-05-18 19:39:27 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-05-18 19:39:41 +0200werneta(~werneta@137.79.199.110)
2022-05-18 19:42:10 +0200king_gs(~Thunderbi@2806:103e:29:5eb8:48de:d3eb:9d44:3d55) (Ping timeout: 260 seconds)
2022-05-18 19:42:32 +0200alp_(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-18 19:42:37 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
2022-05-18 19:43:27 +0200Luj4(~Luj@mail.julienmalka.me) (Quit: The Lounge - https://thelounge.chat)
2022-05-18 19:43:42 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-18 19:43:56 +0200Luj4(~Luj@2a01:e0a:5f9:9681:4314:3e52:bdb3:a61e)
2022-05-18 19:45:49 +0200werneta(~werneta@137.79.199.110) (Ping timeout: 244 seconds)
2022-05-18 19:46:20 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 244 seconds)
2022-05-18 19:47:56 +0200werneta(~werneta@137.79.199.110)
2022-05-18 19:48:09 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 19:51:38 +0200cyphase(~cyphase@user/cyphase)
2022-05-18 19:53:08 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 19:53:42 +0200alp_(~alp@user/alp)
2022-05-18 19:54:24 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-18 19:56:33 +0200mikoto-c1(~mikoto-ch@213.177.151.239) (Ping timeout: 276 seconds)
2022-05-18 20:01:09 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 20:01:12 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2022-05-18 20:02:02 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-05-18 20:04:20 +0200Hobbyboy(Hobbyboy@hobbyboy.co.uk) (Ping timeout: 248 seconds)
2022-05-18 20:05:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 20:06:50 +0200kaph_(~kaph@mi-18-25-131.service.infuturo.it) (Ping timeout: 240 seconds)
2022-05-18 20:07:13 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 20:07:37 +0200Hobbyboy(Hobbyboy@hobbyboy.co.uk)
2022-05-18 20:08:28 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-18 20:10:37 +0200doyougnu(~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 244 seconds)
2022-05-18 20:14:12 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-18 20:20:13 +0200lainon(~lainon@2601:7c0:c500:4d20:a451:1d0:9f9a:2ce)
2022-05-18 20:22:53 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi)
2022-05-18 20:23:20 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-05-18 20:23:44 +0200xkuru(~xkuru@user/xkuru)
2022-05-18 20:26:15 +0200 <k`> do folks prefer using mtl over (e.g.) monads-tf because fundeps make for a better API than type families, or because it's on Github and better maintained?
2022-05-18 20:26:51 +0200 <monochrom> Sometimes type families make for a better API.
2022-05-18 20:26:53 +0200king_gs(~Thunderbi@187.201.97.18) (Read error: Connection reset by peer)
2022-05-18 20:27:01 +0200 <monochrom> But I use mtl because it comes with GHC.
2022-05-18 20:27:47 +0200 <k`> I mean, the API tradeoff seems to be requiring Undecidable and Fleible Instances, vs having to write `StateType` and `EnvType` all over the place.
2022-05-18 20:27:53 +0200 <k`> *flexible
2022-05-18 20:27:53 +0200 <maerwald[m]> I remember edwardk saying something about monads-tf and why it's not the standard, but I don't remember
2022-05-18 20:28:21 +0200 <geekosaur> historical reasons mostly, I think
2022-05-18 20:28:21 +0200coot(~coot@213.134.190.95)
2022-05-18 20:28:55 +0200 <k`> I mean, I think it makes sense to standardize on 1 transformer library, but I was wondering more generally about fundep vs type family APIs.
2022-05-18 20:29:36 +0200 <monochrom> I just want to clue you in on how reasons can be as boring as "inertia" "it comes out of the box".
2022-05-18 20:30:12 +0200 <monochrom> Why did Windows users prefer IE last century, and Edge this century? Hell why do they prefer Windows in the first place?
2022-05-18 20:30:13 +0200 <geekosaur> btw mtl is on github, https://github.com/haskell/mtl
2022-05-18 20:30:15 +0200Infinite(~Infinite@49.39.120.250) (Quit: Ping timeout (120 seconds))
2022-05-18 20:30:34 +0200king_gs(~Thunderbi@187.201.97.18)
2022-05-18 20:31:02 +0200 <monochrom> Answer: They don't prefer anything. The said software came out of the box.
2022-05-18 20:31:16 +0200 <geekosaur> and while there were maintenance problems, (a) recent (especially compared to the monads-fd/monads-tf split) (b) and recently resolved
2022-05-18 20:31:19 +0200 <k`> Yep, having mtl on Github vs monads-tf not having a home page or issues link seems like a pretty big deal.
2022-05-18 20:31:39 +0200 <monochrom> Windows is not on github either.
2022-05-18 20:32:05 +0200 <k`> Really? Not even in a private repo?
2022-05-18 20:32:09 +0200 <geekosaur> oh I misread earlier
2022-05-18 20:32:18 +0200 <geekosaur> I think monads-tf is still maintained by someone
2022-05-18 20:32:48 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-18 20:32:56 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-05-18 20:33:05 +0200 <k`> Oh, just figured that since the last build was in 2016 and it doesn't support RWST et al, it was unsupported.
2022-05-18 20:33:20 +0200 <monochrom> And tomorrow, we will discuss networking effects such as why people prefer github to svn or vice versa.
2022-05-18 20:34:01 +0200 <k`> When I started coding there was only SVN, and I have to say that git & github have been a huge improvement.
2022-05-18 20:34:09 +0200 <geekosaur> hypothetically it doesn't need to, you can just combine type families. I think that's more expensive with mtl so RWST remains part of it (it was more necessary back in the mtl1 days)
2022-05-18 20:34:20 +0200 <geekosaur> kids
2022-05-18 20:34:28 +0200 <geekosaur> nobody remembers SCCS :)
2022-05-18 20:35:17 +0200 <darkling> I remember seeing the name, but I don't think I ever used it. I started with CVS.
2022-05-18 20:35:22 +0200 <monochrom> I remember SCCS, but when I started, RCS was available, I started with RCS, then CVS, then a long time before git.
2022-05-18 20:35:44 +0200 <geekosaur> sccs, rcs, cvs, svn, git
2022-05-18 20:36:03 +0200 <monochrom> Yeah I skipped svn and mercurial and darcs.
2022-05-18 20:36:25 +0200 <geekosaur> a brief fling with mercurial somewhere in there, plus I used darcs with early versions of xmonad
2022-05-18 20:36:48 +0200 <monochrom> Until this year, some profs at my school still taught svn.
2022-05-18 20:36:58 +0200 <geekosaur> somewhere in my past I have an article about darcs losing the mindshare war to git
2022-05-18 20:37:54 +0200 <monochrom> Nah IMO it lost the networking war. And only that.
2022-05-18 20:38:31 +0200 <monochrom> Torvald along with the linux devs are huge influencers.
2022-05-18 20:38:40 +0200 <monochrom> err, Torvalds!
2022-05-18 20:39:27 +0200 <geekosaur> only to a point. torvalds did nothing to speak of for bitkeeper
2022-05-18 20:39:44 +0200 <monochrom> Fortunately, when things plateau to being commodities, it doesn't matter.
2022-05-18 20:41:24 +0200 <monochrom> Oh, change of topic tomorrow: Bluray vs HDDVD vs VHS vs Betamax >:)
2022-05-18 20:41:27 +0200werneta(~werneta@137.79.199.110) (Ping timeout: 260 seconds)
2022-05-18 20:41:57 +0200 <monochrom> Preview: "Clearly, Betamax is better than Blu-ray!"
2022-05-18 20:42:09 +0200geekosaurgoes back to fourth grade
2022-05-18 20:45:09 +0200dyeplexer(~dyeplexer@user/dyeplexer) (Read error: Connection reset by peer)
2022-05-18 20:45:14 +0200 <k`> OK, so going back a bit, I really want a class that gives me read-only access to `StateT`, so that (say) `MonadGet` is a superclass of `MonadState`. Then I can know at a glance whether an action mutates state or just reads it. But there's no way mtl would accept a breaking change like adding a new superclass to `MonadState`.
2022-05-18 20:45:50 +0200 <monochrom> MonadReader gives read-only access.
2022-05-18 20:46:01 +0200 <k`> Yeah, but canonically not to state.
2022-05-18 20:46:37 +0200 <k`> The `MonadReader` instance for `StateT` relies on the Monad parameter being a `MonadReader` instance.
2022-05-18 20:47:18 +0200 <k`> So I can't use a `forall m. (MonadReader s m)=> ...` to substitute for `gets`.
2022-05-18 20:48:09 +0200 <monochrom> People have found that defining their own classes is better than using MonadState etc.
2022-05-18 20:48:25 +0200 <monochrom> This does not mean they don't use StateT.
2022-05-18 20:48:33 +0200 <monochrom> Orthogonal axes.
2022-05-18 20:49:07 +0200 <k`> Yeah, so I coded up a `MonadGet` and new `MonadState` class using type families. But now I'm wondering if it should follow mtl's fundep API.
2022-05-18 20:49:52 +0200 <monochrom> Toss a coin. If head, do both. If tail, toss a coin to decide which one to do.
2022-05-18 20:49:59 +0200 <geekosaur> you could define your own State-like class with MonadState being r/w access and MonadReader being r/o. the main problem with doing this in general (your MonadGet) is mtl-style is kinda exponential in instances
2022-05-18 20:50:03 +0200 <k`> Also I wrote up a `StateReaderT s m` newtype that does read from state. But `local` and `censor` are potential gotchas for the unwary.
2022-05-18 20:51:15 +0200monochromsolves all undecisiveness with GiryT >:)
2022-05-18 20:52:09 +0200 <k`> Yeah, the exponential instances aren't great, but if you define `state` as `lift . state` by default, and `gets` as `\ f -> state (\ s -> (f s, s))`, you pretty much just need to write empty instance declarations.
2022-05-18 20:52:21 +0200kenran(~kenran@200116b82b3fbc00cac9bee633eaca80.dip.versatel-1u1.de)
2022-05-18 20:52:32 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 260 seconds)
2022-05-18 20:53:18 +0200kenaryn(~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
2022-05-18 20:53:42 +0200 <k`> `GiryT` just went right over my head.
2022-05-18 20:54:23 +0200 <geekosaur> monochrom likes his probability monads
2022-05-18 20:54:39 +0200werneta(~werneta@137.79.199.110)
2022-05-18 20:54:50 +0200 <monochrom> The computation "Toss a coin. If head, do both. If tail, toss a coin to decide which one to do" lives in a probability monad :)
2022-05-18 20:55:15 +0200 <monochrom> Let me tell you a success story in google-resistant teaching.
2022-05-18 20:56:25 +0200 <monochrom> I gave an assignment on a probability monad. The type class is defined; students were to code up a decision tree instance.
2022-05-18 20:57:02 +0200 <monochrom> I was aware that saying the words "probability monad" would make it too googlable.
2022-05-18 20:57:30 +0200 <monochrom> Then I had a cunning plan. I called the type class "MonadRandom".
2022-05-18 20:58:16 +0200P1RATEZ(piratez@user/p1ratez) (Remote host closed the connection)
2022-05-18 20:58:35 +0200 <EvanR> "He hid inside a google-able term. We'll never be able to find him"
2022-05-18 20:59:13 +0200 <EvanR> I call dibs on "HVAC repair"
2022-05-18 20:59:26 +0200 <geekosaur> unless it's a googlewhack
2022-05-18 21:00:30 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-18 21:00:54 +0200 <k`> So how did that work out?
2022-05-18 21:01:07 +0200 <darkling> I once managed to set a question in an online test that was pre-poisonesd with useless Google results. :)
2022-05-18 21:01:12 +0200 <k`> It's certainly Hoogleable.
2022-05-18 21:01:21 +0200 <monochrom> Perfectly. A student emailed me to ask "is it OK to import Control.Monad.Random".
2022-05-18 21:01:52 +0200 <darkling> Looked around the room and there were loads of pretty animated pictures of hypertoruses, and nothing on HPC network architectures. :)
2022-05-18 21:02:47 +0200 <monochrom> The holy grail is that googling results in getting rickrolled. >:)
2022-05-18 21:03:03 +0200 <k`> That's kind of beautiful.
2022-05-18 21:03:17 +0200 <darkling> Control.Monad.Astley? :)
2022-05-18 21:03:26 +0200abhixec(~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
2022-05-18 21:03:50 +0200sammelweis(~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
2022-05-18 21:05:00 +0200sammelweis(~quassel@c-68-48-18-140.hsd1.mi.comcast.net)
2022-05-18 21:05:05 +0200 <monochrom> ooohhhh hypertorus, that neato yeah.
2022-05-18 21:05:54 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-18 21:08:05 +0200 <monochrom> Ah a great idea comes to me. Perhaps I can make an assignment that combines second-order logic and monads. Then I get to call it "monadic second-order logic".
2022-05-18 21:08:35 +0200 <monochrom> (Hint: the latter "monadic" just means 1-ary, predicates take 1 parameter only.)
2022-05-18 21:08:55 +0200 <EvanR> monadic monic monoidal modal logic
2022-05-18 21:10:39 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 21:13:32 +0200alp_(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-18 21:14:41 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-18 21:16:15 +0200mikoto-chan(~mikoto-ch@212.203.22.117)
2022-05-18 21:19:22 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2022-05-18 21:20:20 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 21:23:10 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 21:23:15 +0200vicfred(~vicfred@user/vicfred)
2022-05-18 21:24:08 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 248 seconds)
2022-05-18 21:24:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 21:24:41 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 248 seconds)
2022-05-18 21:29:04 +0200Pickchea(~private@user/pickchea)
2022-05-18 21:32:18 +0200king_gs(~Thunderbi@187.201.97.18) (Quit: king_gs)
2022-05-18 21:34:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 21:40:37 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 21:40:51 +0200mikoto-c1(~mikoto-ch@212.203.22.117)
2022-05-18 21:43:05 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-18 21:43:50 +0200slack1256(~slack1256@191.126.227.77)
2022-05-18 21:44:05 +0200mikoto-chan(~mikoto-ch@212.203.22.117) (Ping timeout: 260 seconds)
2022-05-18 21:44:23 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-05-18 21:46:40 +0200agumonkey(~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Remote host closed the connection)
2022-05-18 21:46:53 +0200bonz060(~quassel@2001:bc8:47a4:a23::1)
2022-05-18 21:48:41 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-05-18 21:48:41 +0200wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-05-18 21:48:41 +0200wroathe(~wroathe@user/wroathe)
2022-05-18 21:50:03 +0200slack1256(~slack1256@191.126.227.77) (Remote host closed the connection)
2022-05-18 21:50:44 +0200slack1256(~slack1256@191.126.227.77)
2022-05-18 21:54:07 +0200benin(~benin@183.82.31.170)
2022-05-18 21:56:24 +0200mikoto-c1(~mikoto-ch@212.203.22.117) (Ping timeout: 272 seconds)
2022-05-18 22:02:57 +0200pavonia(~user@user/siracusa)
2022-05-18 22:03:01 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-18 22:03:59 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-05-18 22:05:16 +0200acidjnk(~acidjnk@p200300d0c7068b757d0566c8380b0d79.dip0.t-ipconnect.de)
2022-05-18 22:08:01 +0200ystael(~ystael@user/ystael) (Quit: leaving)
2022-05-18 22:08:30 +0200mikoto-c1(~mikoto-ch@D57E2A4A.static.ziggozakelijk.nl)
2022-05-18 22:09:10 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 240 seconds)
2022-05-18 22:09:46 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
2022-05-18 22:10:20 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 272 seconds)
2022-05-18 22:12:34 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-18 22:13:23 +0200kenaryn(~aurele@89-88-44-27.abo.bbox.fr)
2022-05-18 22:13:29 +0200Unicorn_Princess(~Unicorn_P@93-103-228-248.dynamic.t-2.net)
2022-05-18 22:15:19 +0200mmhat(~mmh@p200300f1c71af8b0ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-05-18 22:20:32 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 22:21:35 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-18 22:27:22 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-05-18 22:29:14 +0200mmhat(~mmh@p200300f1c71af875ee086bfffe095315.dip0.t-ipconnect.de)
2022-05-18 22:29:29 +0200causal(~user@50.35.83.177)
2022-05-18 22:31:12 +0200kenran(~kenran@200116b82b3fbc00cac9bee633eaca80.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-05-18 22:36:00 +0200pera(~pera@user/pera)
2022-05-18 22:36:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 22:36:05 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-18 22:37:45 +0200mikoto-c1(~mikoto-ch@D57E2A4A.static.ziggozakelijk.nl) (Ping timeout: 248 seconds)
2022-05-18 22:38:07 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2022-05-18 22:40:29 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 22:40:49 +0200mikoto-c1(~mikoto-ch@D57E2A4A.static.ziggozakelijk.nl)
2022-05-18 22:40:58 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 244 seconds)
2022-05-18 22:45:26 +0200nate1(~nate@98.45.169.16)
2022-05-18 22:52:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 22:54:43 +0200k`(~user@152.1.137.158) (Remote host closed the connection)
2022-05-18 23:01:11 +0200alp_(~alp@user/alp)
2022-05-18 23:01:11 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-18 23:03:12 +0200mikoto-c1(~mikoto-ch@D57E2A4A.static.ziggozakelijk.nl) (Ping timeout: 260 seconds)
2022-05-18 23:07:04 +0200kadobanana(~mud@user/kadoban) (Ping timeout: 248 seconds)
2022-05-18 23:07:33 +0200kadobanana(~mud@user/kadoban)
2022-05-18 23:09:06 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 23:09:59 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 23:11:03 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-18 23:11:59 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-18 23:13:56 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-18 23:14:17 +0200vicfred(~vicfred@user/vicfred) (Remote host closed the connection)
2022-05-18 23:14:31 +0200vicfred(~vicfred@user/vicfred)
2022-05-18 23:14:56 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313) (Ping timeout: 272 seconds)
2022-05-18 23:20:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 23:23:02 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 23:25:09 +0200Vq(~vq@90-227-195-41-no77.tbcn.telia.com)
2022-05-18 23:26:23 +0200jocke-l(jocke-l@a.x0.is) (Quit: WeeChat 2.3)
2022-05-18 23:27:55 +0200zincy(~zincy@2a00:23c8:970c:4801:2054:62a8:f46a:a313)
2022-05-18 23:29:07 +0200jakalx(~jakalx@base.jakalx.net) ()
2022-05-18 23:29:16 +0200jocke-l(jocke-l@a.x0.is)
2022-05-18 23:31:27 +0200mikoto-c1(~mikoto-ch@D57E2A4A.static.ziggozakelijk.nl)
2022-05-18 23:32:55 +0200zeenk(~zeenk@2a02:2f04:a104:ef00:10:581:f80f:b980)
2022-05-18 23:33:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 23:34:33 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-18 23:34:46 +0200euandreh(~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Quit: WeeChat 3.5)
2022-05-18 23:38:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 23:39:07 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 23:39:21 +0200jocke-l(jocke-l@a.x0.is) (Quit: WeeChat 3.0)
2022-05-18 23:39:30 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 276 seconds)
2022-05-18 23:39:37 +0200jocke-l(jocke-l@a.x0.is)
2022-05-18 23:41:00 +0200euandreh(~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174)
2022-05-18 23:44:51 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-05-18 23:46:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 23:46:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-18 23:46:35 +0200mikoto-c1(~mikoto-ch@D57E2A4A.static.ziggozakelijk.nl) (Ping timeout: 244 seconds)
2022-05-18 23:48:26 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-18 23:48:59 +0200mikoto-c1(~mikoto-ch@84-30-69-159.cable.dynamic.v4.ziggo.nl)
2022-05-18 23:49:15 +0200nate1(~nate@98.45.169.16) (Ping timeout: 276 seconds)
2022-05-18 23:49:32 +0200tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2022-05-18 23:50:47 +0200michalz(~michalz@185.246.204.107) (Remote host closed the connection)