Home liberachat/#haskell: Logs Calendar

Logs on 2022-11-24 (liberachat/#haskell)

00:00:36 freeside joins (~mengwong@103.252.202.193)
00:05:33 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
00:05:48 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
00:05:54 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
00:06:34 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 252 seconds)
00:06:49 <Square> Im reading both GHCJS and Asterius are planned for GHC 9.6. Are they orthogonal or will GHCJS be realized using Asterius?
00:07:23 <geekosaur> orthogonal
00:07:55 <geekosaur> ghc 9.6 adds backends; wasm is the first backend, js the second (and I think not committed yet)
00:08:03 <geekosaur> (wasm went in a couple days ago)
00:09:08 <Square> I may lack deeper understanding of this, but wouldn't GHCJS benefit from wasm?
00:10:51 <geekosaur> I have no idea tbh
00:11:10 <geekosaur> I just know the current plan is separate backends
00:11:17 <Square> gotcha
00:12:48 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
00:14:29 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
00:14:49 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
00:15:10 × Guest4277 quits (Guest4277@id-532813.tinside.irccloud.com) (Changing host)
00:15:10 Guest4277 joins (Guest4277@user/polo)
00:15:18 Guest4277 is now known as MONEY
00:15:25 MONEY is now known as money
00:17:20 freeside joins (~mengwong@103.252.202.193)
00:17:36 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd) (Remote host closed the connection)
00:20:49 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:20:49 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:20:49 wroathe joins (~wroathe@user/wroathe)
00:39:54 denh^ joins (~denh@76.145.185.103)
00:42:53 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
00:46:31 × Xeroine quits (~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
00:46:49 Xeroine joins (~Xeroine@user/xeroine)
00:47:39 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd)
00:48:43 × Me-me quits (~me-me@user/me-me) (Quit: Disconnecting on purpose.)
00:49:18 × king_gs quits (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Ping timeout: 260 seconds)
00:50:06 thyriaen joins (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
00:50:52 cheater1__ joins (~Username@user/cheater)
00:51:38 × acidjnk_new quits (~acidjnk@p200300d6e7137a175929a180a95a2c61.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
00:52:09 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
00:52:17 cheater1__ is now known as cheater
00:54:09 × thyriaen quits (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection)
00:56:44 × sammelweis_ quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
00:59:32 × kenaryn quits (~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
01:02:25 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:03:54 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:04:24 califax joins (~califax@user/califx)
01:07:51 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Client Quit)
01:10:41 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:10:58 zebrag joins (~chris@user/zebrag)
01:13:40 king_gs joins (~Thunderbi@187.201.139.206)
01:17:19 × Xeroine quits (~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
01:17:37 Xeroine joins (~Xeroine@user/xeroine)
01:18:13 × accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
01:18:39 × euandreh quits (~Thunderbi@179.214.113.107) (Remote host closed the connection)
01:19:28 euandreh joins (~Thunderbi@179.214.113.107)
01:19:46 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
01:20:52 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:21:44 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
01:25:28 × chomwitt quits (~chomwitt@2a02:587:7a0d:dd00:1ac0:4dff:fedb:a3f1) (Ping timeout: 260 seconds)
01:27:48 × xff0x quits (~xff0x@2405:6580:b080:900:9162:2d84:4b79:4fbe) (Ping timeout: 260 seconds)
01:30:54 freeside joins (~mengwong@103.252.202.193)
01:33:45 king_gs1 joins (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924)
01:33:45 × king_gs quits (~Thunderbi@187.201.139.206) (Read error: Connection reset by peer)
01:33:45 king_gs1 is now known as king_gs
01:35:23 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
01:40:08 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
01:42:08 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 256 seconds)
01:46:36 × euandreh quits (~Thunderbi@179.214.113.107) (Remote host closed the connection)
01:47:35 euandreh joins (~Thunderbi@179.214.113.107)
01:59:05 freeside joins (~mengwong@103.252.202.193)
02:02:50 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
02:03:02 razetime joins (~quassel@117.254.35.142)
02:05:34 × euandreh quits (~Thunderbi@179.214.113.107) (Remote host closed the connection)
02:05:43 × opticblast quits (~Thunderbi@secure-165.caltech.edu) (Ping timeout: 260 seconds)
02:07:16 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
02:08:30 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:13:54 euandreh joins (~Thunderbi@179.214.113.107)
02:14:46 finsternis joins (~X@23.226.237.192)
02:17:35 × sawilagar quits (~sawilagar@user/sawilagar) (Read error: Connection reset by peer)
02:18:16 × euandreh quits (~Thunderbi@179.214.113.107) (Remote host closed the connection)
02:26:16 × caryhartline quits (~caryhartl@2603-8080-6a0e-8d88-cd07-ecec-ac47-b707.res6.spectrum.com) (Quit: caryhartline)
02:28:21 × ridcully quits (~ridcully@p508acd4f.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
02:28:34 ridcully joins (~ridcully@p508ac9a8.dip0.t-ipconnect.de)
02:29:26 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 255 seconds)
02:33:54 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 268 seconds)
02:37:04 euandreh joins (~Thunderbi@179.214.113.107)
02:41:33 stiell joins (~stiell@gateway/tor-sasl/stiell)
02:41:54 × euandreh quits (~Thunderbi@179.214.113.107) (Remote host closed the connection)
02:44:48 euandreh joins (~Thunderbi@179.214.113.107)
02:45:29 nate4 joins (~nate@98.45.169.16)
02:45:47 <oak-> Okay, so GHCJS is also going to be updated from current 8.10?
02:46:46 Katarushisu7 joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
02:47:52 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 256 seconds)
02:47:52 Katarushisu7 is now known as Katarushisu
02:49:52 × Achylles quits (~Achylles_@2804:431:d724:3700:32de:e039:b5d9:f13a) (Remote host closed the connection)
02:55:53 × razetime quits (~quassel@117.254.35.142) (Ping timeout: 260 seconds)
02:56:21 razetime joins (~quassel@117.254.35.124)
02:57:06 <Axman6> GHC 9.6 should have both a WASM and JS backend, which have some overlap with Asturius and GHCJS projects, but are not nthe same as far as I understand it
02:59:36 <Axman6> Asterius*
03:00:36 <Axman6> Asterius has been deprecated in favour of this new backend (see https://www.tweag.io/blog/2022-11-22-wasm-backend-merged-in-ghc/) and I assume GHCJS will do the same
03:03:25 <oak-> Let's see if Reflex and reflex-Dom get ported to the new WASM and/or JS backends
03:04:56 Kaiepi joins (~Kaiepi@108.175.84.104)
03:04:59 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
03:05:02 <oak-> I currently have one Reflex-Dom project I'm maintaining and that is currently being compiled using GHCJS
03:12:17 marc joins (~marc@5.83.191.76)
03:12:41 marc is now known as Guest2573
03:15:11 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
03:15:29 × Guest1081 quits (~marc@5.83.191.231) (Ping timeout: 260 seconds)
03:15:29 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
03:15:47 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
03:17:41 freeside joins (~mengwong@103.252.202.193)
03:18:03 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:23:39 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
03:28:58 × king_gs quits (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Ping timeout: 252 seconds)
03:33:55 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
03:42:34 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
03:49:00 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 255 seconds)
03:49:04 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
03:50:37 <Clinton[m]> is there a deriving Contravariant thing I can do to deriving Contravariant like you can Functor generically? It looks like there's code in there but contramap doesn't look like it has the default definition to support this: https://hackage.haskell.org/package/base-4.17.0.0/docs/src/Data.Functor.Contravariant.html#Contravariant
03:51:26 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
03:52:33 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
03:52:45 <Clinton[m]> ```
03:52:45 <Clinton[m]> data T a = T (a -> Int) (a -> Float) deriving anyclass Contravariant
03:52:45 <Clinton[m]> ```
03:52:45 <Clinton[m]> Gives me warnings so I suspect I need to do something else also
03:53:09 <c_wraith> you're correct. Someone did about 90% of the work of allowing it to be implemented via Generic, but then didn't expose it
03:53:27 <Clinton[m]> * Float) deriving stock Generic deriving anyclass Contravariant
03:53:57 <Clinton[m]> c_wraith: That's weird. Is there a way I can use the work that's been done?
03:54:47 <Clinton[m]> * ```... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/e9048bdcccf139207a3c8d2204906d588ae985aa>)
03:55:19 <c_wraith> I guess you could write the generic implementation and then just write your own instances that delegate to that implementation
03:55:28 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
03:55:33 <c_wraith> But that's rarely going to be less work than just implementing it
03:56:13 <jackdk> The modern way to do this would be to have `instance (Generic1 f, Contravariant (Rep1 f)) => Contravariant (Generically1 f)` and then use `-XDerivingVia`
03:57:01 <c_wraith> I'd usually just see an explicit implementation than deriving via. That extension stuffs everything into the type level for no value I can appreciate.
03:57:08 × ddellacosta quits (~ddellacos@143.244.47.100) (Ping timeout: 248 seconds)
03:57:09 <jackdk> I suspect the instance does not exist in the compatibility `generically` package because it wants `base >=4.9` and `Contravariant` is `base >=4.12`
03:57:52 × jargon quits (~jargon@184.101.188.35) (Remote host closed the connection)
03:58:05 <jackdk> I do not understand your objection. Nothing is being stuffed into the type level - it simply copies an instance from a representationally-equivalent type, just as `-XGeneralizedNewtypeDeriving` does
03:58:41 <c_wraith> the via expression stuffs everything into the type level. Have you seen those when people insist "you can just do this" and then they're two lines long?
03:59:50 × td_ quits (~td@83.135.9.0) (Ping timeout: 256 seconds)
04:00:18 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
04:01:32 td_ joins (~td@83.135.9.50)
04:13:16 <jackdk> Hm, is this all moot? `data P a = P (a -> Bool) deriving stock (Generic, Generic1)` errors with "Can't make a derived instance of ‘Generic1 P’ with the stock strategy: Constructor ‘P’ applies a type to an argument involving the last parameter but the applied type is not of kind * -> *
04:18:29 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
04:22:22 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
04:29:06 × califax quits (~califax@user/califx) (Remote host closed the connection)
04:29:52 califax joins (~califax@user/califx)
04:34:28 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
04:36:03 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
04:45:41 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
04:47:18 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 260 seconds)
04:50:22 × Vajb quits (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) (Read error: Connection reset by peer)
04:51:09 Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
05:25:34 × razetime quits (~quassel@117.254.35.124) (Ping timeout: 252 seconds)
05:26:03 razetime joins (~quassel@117.193.3.67)
05:33:29 × Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
05:34:18 Vajb joins (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d)
05:35:28 × jinsl quits (~jinsl@2408:8207:2551:7d70:211:32ff:fec8:6aea) (Ping timeout: 252 seconds)
05:35:44 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
05:35:54 jinsl joins (~jinsl@2408:8207:2557:ce20:211:32ff:fec8:6aea)
05:36:27 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
05:41:08 king_gs joins (~Thunderbi@187.201.139.206)
05:41:22 × razetime quits (~quassel@117.193.3.67) (Ping timeout: 268 seconds)
05:41:45 razetime joins (~quassel@117.254.35.76)
05:45:02 Guest60 joins (~Guest60@149.159.207.218)
05:45:44 nate4 joins (~nate@98.45.169.16)
05:50:37 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds)
06:02:12 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
06:03:21 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
06:04:40 kenran joins (~user@user/kenran)
06:07:48 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
06:11:39 × king_gs quits (~Thunderbi@187.201.139.206) (Read error: Connection reset by peer)
06:11:40 king_gs1 joins (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924)
06:12:33 × kenran quits (~user@user/kenran) (Remote host closed the connection)
06:13:57 king_gs1 is now known as king_gs
06:20:13 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds)
06:22:16 × razetime quits (~quassel@117.254.35.76) (Read error: Connection reset by peer)
06:22:29 razetime joins (~quassel@117.254.35.76)
06:27:36 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
06:28:42 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
06:35:34 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:48:56 opticblast joins (~Thunderbi@2607:fb90:646:4a7b:a68e:2fc4:53c0:4b2b)
06:56:02 mei_ joins (~mei@user/mei)
06:58:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:58:40 chomwitt joins (~chomwitt@2a02:587:7a0d:dd00:1ac0:4dff:fedb:a3f1)
07:13:13 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
07:16:56 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd) (Remote host closed the connection)
07:19:09 crocuta joins (~normie@222-0-178-69.static.gci.net)
07:19:16 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
07:29:50 zeenk joins (~zeenk@2a02:2f04:a208:3600::7fe)
07:31:45 × opticblast quits (~Thunderbi@2607:fb90:646:4a7b:a68e:2fc4:53c0:4b2b) (Ping timeout: 255 seconds)
07:33:54 × burakcan- quits (burakcank@2a01:4f8:c17:efa0::3) (*.net *.split)
07:33:54 × jackdk quits (sid373013@cssa/jackdk) (*.net *.split)
07:33:54 × RMSBach quits (~guygastin@137.184.131.156) (*.net *.split)
07:33:54 × amir quits (sid22336@user/amir) (*.net *.split)
07:33:54 × Fangs quits (sid141280@id-141280.hampstead.irccloud.com) (*.net *.split)
07:34:02 amir joins (sid22336@user/amir)
07:34:04 jackdk joins (sid373013@cssa/jackdk)
07:34:08 Fangs joins (sid141280@id-141280.hampstead.irccloud.com)
07:34:13 RMSBach joins (~guygastin@137.184.131.156)
07:34:26 burakcan- joins (burakcank@has.arrived.and.is.ready-to.party)
07:34:40 zer0bitz joins (~zer0bitz@196.244.192.58)
07:38:32 × zer0bitz_ quits (~zer0bitz@196.244.192.58) (Ping timeout: 268 seconds)
07:39:31 Erutuon joins (~Erutuon@user/erutuon)
07:44:50 × ringo__ quits (~ringo@157.230.117.128) (*.net *.split)
07:44:50 × totbwf quits (sid402332@2a03:5180:f:5::6:239c) (*.net *.split)
07:44:51 × jimki quits (~jmaki@gazorpazorp.fixme.fi) (*.net *.split)
07:44:51 × sloorush quits (~sloorush@52.187.184.81) (*.net *.split)
07:44:51 × nerdypepper quits (~nerdypepp@user/nerdypepper) (*.net *.split)
07:44:58 totbwf joins (sid402332@id-402332.uxbridge.irccloud.com)
07:45:03 jimki joins (~jmaki@gazorpazorp.fixme.fi)
07:45:15 ringo__ joins (~ringo@157.230.117.128)
07:46:07 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
07:46:07 sloorush joins (~sloorush@52.187.184.81)
07:46:28 nerdypepper joins (~nerdypepp@user/nerdypepper)
07:54:08 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
07:58:03 × Guest60 quits (~Guest60@149.159.207.218) (Ping timeout: 260 seconds)
07:58:23 × ft quits (~ft@p508dbd59.dip0.t-ipconnect.de) (Quit: leaving)
08:05:04 × king_gs quits (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Ping timeout: 252 seconds)
08:07:59 cfricke joins (~cfricke@user/cfricke)
08:10:10 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
08:10:36 × inversed quits (~inversed@bcdcac82.skybroadband.com) (Read error: Connection reset by peer)
08:12:36 mmhat joins (~mmh@p200300f1c70c6086ee086bfffe095315.dip0.t-ipconnect.de)
08:13:52 × rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
08:14:33 invsersed joins (~inversed@bcdcac82.skybroadband.com)
08:15:55 lortabac joins (~lortabac@2a01:e0a:541:b8f0:ac0a:38a2:8562:1b2b)
08:16:03 rembo10 joins (~rembo10@main.remulis.com)
08:16:07 biberu joins (~biberu@user/biberu)
08:17:24 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd)
08:19:45 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
08:20:45 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
08:21:24 king_gs joins (~Thunderbi@187.201.139.206)
08:21:41 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd) (Ping timeout: 255 seconds)
08:26:29 × denh^ quits (~denh@76.145.185.103) (Remote host closed the connection)
08:26:55 × crocuta quits (~normie@222-0-178-69.static.gci.net) (Remote host closed the connection)
08:30:05 michalz joins (~michalz@185.246.207.215)
08:31:06 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
08:35:37 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
08:36:38 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
08:40:33 gmg joins (~user@user/gehmehgeh)
08:44:21 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
08:44:29 mei joins (~mei@user/mei)
08:45:06 gmg joins (~user@user/gehmehgeh)
08:47:21 × mei_ quits (~mei@user/mei) (Ping timeout: 255 seconds)
08:48:11 acidjnk_new joins (~acidjnk@p200300d6e7137a91c4f65aaee5ea4b91.dip0.t-ipconnect.de)
08:49:29 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:51:18 × king_gs quits (~Thunderbi@187.201.139.206) (Ping timeout: 268 seconds)
08:51:47 chele joins (~chele@user/chele)
08:55:48 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
08:57:35 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
09:00:03 × silky[m] quits (~noonvande@2001:470:69fc:105::2:943c) (Quit: You have been kicked for being idle)
09:03:39 MajorBiscuit joins (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net)
09:05:50 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
09:06:27 mei_ joins (~mei@user/mei)
09:06:37 × phma quits (phma@2001:5b0:211f:4b08:4055:ac0:eabe:4279) (Read error: Connection reset by peer)
09:07:16 phma joins (phma@2001:5b0:211f:d9e8:77e8:13de:2d1:bc)
09:07:48 Major_Biscuit joins (~MajorBisc@c-001-009-054.client.tudelft.eduvpn.nl)
09:08:51 × mei quits (~mei@user/mei) (Ping timeout: 265 seconds)
09:11:16 × MajorBiscuit quits (~MajorBisc@2a02-a461-129d-1-193d-75d8-745d-e91e.fixed6.kpn.net) (Ping timeout: 265 seconds)
09:17:25 vpan joins (~0@212.117.1.172)
09:22:33 InstX1_ joins (~Liam@2601:6c4:4081:54f0:e9f2:606c:4487:f118)
09:24:41 × InstX1 quits (~Liam@2601:6c4:4081:54f0:c59f:75f5:30c:12fd) (Ping timeout: 255 seconds)
09:28:49 × razetime quits (~quassel@117.254.35.76) (Ping timeout: 260 seconds)
09:29:11 razetime joins (~quassel@117.254.35.234)
09:30:30 × money quits (Guest4277@user/polo) ()
09:35:34 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
09:36:15 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:36:19 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
09:41:40 money joins (money@user/polo)
09:42:12 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Ping timeout: 265 seconds)
09:45:23 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
09:46:59 nate4 joins (~nate@98.45.169.16)
09:47:10 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
09:47:54 razetime_ joins (~quassel@117.254.34.241)
09:48:00 × razetime quits (~quassel@117.254.35.234) (Ping timeout: 265 seconds)
09:48:49 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
09:51:48 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
09:54:47 × razetime_ quits (~quassel@117.254.34.241) (Ping timeout: 264 seconds)
09:55:05 razetime joins (~quassel@117.254.34.19)
10:03:38 merijn joins (~merijn@86.86.29.250)
10:04:45 teo joins (~teo@user/teo)
10:05:42 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
10:05:59 jinsun joins (~jinsun@user/jinsun)
10:06:29 <lyxia> yes Generic1 is very limited
10:06:59 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
10:08:08 × merijn quits (~merijn@86.86.29.250) (Ping timeout: 260 seconds)
10:13:59 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
10:15:33 × razetime quits (~quassel@117.254.34.19) (Ping timeout: 265 seconds)
10:16:50 razetime joins (~quassel@117.254.35.52)
10:20:13 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
10:22:47 sawilagar joins (~sawilagar@user/sawilagar)
10:25:10 × razetime quits (~quassel@117.254.35.52) (Ping timeout: 256 seconds)
10:25:35 razetime joins (~quassel@117.193.4.43)
10:29:46 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
10:30:22 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:30:47 × razetime quits (~quassel@117.193.4.43) (Ping timeout: 264 seconds)
10:31:18 razetime joins (~quassel@117.193.7.209)
10:32:04 __monty__ joins (~toonn@user/toonn)
10:36:08 × foul_owl quits (~kerry@157.97.134.158) (Ping timeout: 268 seconds)
10:38:14 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
10:38:22 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
10:39:14 foul_owl joins (~kerry@174-21-75-230.tukw.qwest.net)
10:41:06 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
10:46:30 AVirginGirl joins (~AVirginGi@172.58.178.186)
10:46:41 AVirginGirl parts (~AVirginGi@172.58.178.186) ()
10:46:42 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
10:55:07 <carbolymer> what's the difference between `data F = forall a. F { value :: a }` and `data F = F { value :: forall a. a }` ?
10:56:14 Guest75 joins (~Guest75@178.141.145.247)
10:59:35 × Major_Biscuit quits (~MajorBisc@c-001-009-054.client.tudelft.eduvpn.nl) (Ping timeout: 264 seconds)
11:00:32 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
11:01:18 cafkafk joins (~cafkafk@fsf/member/cafkafk)
11:01:58 <dminuoso> carbolymer: One is an existential type, the other is a polymorphic type.
11:02:41 <dminuoso> Though neither is particularly useful without a typeclass constraint (or a more elaborate type)
11:04:54 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
11:04:57 <dminuoso> % :set -XExistentialQuantification
11:04:57 <yahb2> <no output>
11:04:59 <dminuoso> % data Showable = forall a. Show a => Showable a
11:04:59 <yahb2> <no output>
11:05:20 <carbolymer> yeah, without constraint the aren't useful, I was wondering what's the difference where I put forall
11:05:28 <dminuoso> Here, Showable will be constructed with a particular type that will at least satisfy Show. If a consumer pattern matches, it will be a *particular* type, but you cannot know which
11:05:34 <carbolymer> usually I was following compiler errors and chosing the compiling one
11:05:42 <dminuoso> But you can use any Show methods with it.
11:05:57 <dminuoso> Compare with:
11:06:01 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
11:06:09 <dminuoso> % data Numeric = Numeric (forall a. Num a => a)
11:06:09 <yahb2> <no output>
11:06:28 × son0p quits (~ff@2604:3d08:5b7f:5540::ebf0) (Ping timeout: 260 seconds)
11:06:41 <dminuoso> `Numeric 5` will contain a polymorphic value, that a consumer can just instantiate at any type they like (as long as Num a is satisfied)
11:07:10 <dminuoso> % a = Showable 10
11:07:10 <yahb2> <no output>
11:07:14 <dminuoso> % b = Showable "foo"
11:07:14 <yahb2> <no output>
11:07:19 <dminuoso> % :t a
11:07:19 <yahb2> a :: Showable
11:07:21 <dminuoso> % :t b
11:07:21 <yahb2> b :: Showable
11:07:39 <dminuoso> % case a of (Showable i) -> show i
11:07:39 <yahb2> "10"
11:07:41 <dminuoso> % case b of (Showable i) -> show i
11:07:41 <yahb2> "\"foo\""
11:08:03 <dminuoso> carbolymer: See the difference?
11:08:18 <dminuoso> % num = Numeric 5
11:08:18 <yahb2> <no output>
11:08:30 <dminuoso> % case num of Numeric i -> show (i :: Float)
11:08:31 <yahb2> "5.0"
11:08:33 <dminuoso> % case num of Numeric i -> show (i :: Double)
11:08:33 <yahb2> "5.0"
11:08:37 <dminuoso> % case num of Numeric i -> show (i :: Integer)
11:08:37 <yahb2> "5"
11:09:13 <dminuoso> So on one, the consumer can instantiate at any type they like, even multiple different types, but the provider has to provide a polymorphic value (they cannot decide)
11:09:37 <dminuoso> on the other the provider instantiatesr at a single type, but the consumer cannot know which one. if typeclass constrained, they can only use typeuclass methods on it.
11:09:57 <carbolymer> I see
11:10:22 <dminuoso> Maybe for better symmetry you can compare the last few yahb invocations with:
11:10:30 <dminuoso> % case Showable 10 of Showable i -> show i
11:10:30 <yahb2> "10"
11:10:34 <dminuoso> % case Showable "foo" of Showable i -> show i
11:10:34 <yahb2> "\"foo\""
11:10:55 <dminuoso> That highlights the difference better I think
11:10:59 xff0x joins (~xff0x@2405:6580:b080:900:ba2b:e368:237f:a79)
11:12:18 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
11:12:42 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
11:14:13 <carbolymer> ok I get it
11:15:21 <carbolymer> so `F (forall a. a)` is more flexible, because you can pick suitable type, unless you want to enforce that in a producer
11:15:49 <carbolymer> thanks dminuoso
11:16:37 <dminuoso> carbolymer: well, they are very different really.
11:17:04 <dminuoso> I think its rather difficult to find an example where you have a choice between them
11:18:25 <dminuoso> It's sort of the difference between `f :: (forall t. ... t ...) -> ...` and `f :: forall t. ... t ...`
11:19:31 <carbolymer> good point
11:19:53 × razetime quits (~quassel@117.193.7.209) (Ping timeout: 260 seconds)
11:20:44 razetime joins (~quassel@117.254.35.218)
11:22:12 <dminuoso> Both are equally flexible, but on different sides. One delegates the type choice to the provider and hides it from the consumer, the other delegates the type choice to the consumer but hides it from the producer.
11:23:09 zant joins (~zant@62.96.232.178)
11:26:35 <dminuoso> carbolymer: Your original data types are a bit interesting to look at. The first can created at type, but you cannot recover any information about it, so you can do *nothing* with it. The other can only be created with `undefined`, but you can instantiate at any type, use it *everywhere*
11:26:42 <dminuoso> Do you see this kind of duality?
11:26:59 <dminuoso> (One is completely useless, the other is universally useful)
11:27:15 <dminuoso> well "useful" in the sense of "where can this be plugged into"
11:28:38 × foul_owl quits (~kerry@174-21-75-230.tukw.qwest.net) (Ping timeout: 260 seconds)
11:29:35 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Quit: use-value)
11:34:23 × razetime quits (~quassel@117.254.35.218) (Ping timeout: 264 seconds)
11:34:23 razetime_ joins (~quassel@117.254.34.180)
11:34:50 <carbolymer> yep
11:35:02 <carbolymer> like usb-c
11:39:08 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
11:39:16 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
11:39:36 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
11:41:39 × zeenk quits (~zeenk@2a02:2f04:a208:3600::7fe) (Quit: Konversation terminated!)
11:43:07 zeenk joins (~zeenk@2a02:2f04:a208:3600::7fe)
11:43:37 razetime_ is now known as razetime
11:44:19 foul_owl joins (~kerry@193.29.61.77)
11:46:59 × mmhat quits (~mmh@p200300f1c70c6086ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
11:49:38 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 260 seconds)
12:00:44 jakalx joins (~jakalx@base.jakalx.net)
12:01:24 money is now known as polo
12:08:54 × Xeroine quits (~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
12:10:13 Xeroine joins (~Xeroine@user/xeroine)
12:12:54 freeside joins (~mengwong@103.252.202.193)
12:13:18 opticblast joins (~Thunderbi@97.64.79.177)
12:17:21 polo is now known as Joey
12:17:28 Joey is now known as hoey
12:19:35 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Remote host closed the connection)
12:21:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd)
12:22:53 × Guest75 quits (~Guest75@178.141.145.247) (Ping timeout: 260 seconds)
12:24:21 <dminuoso> heh, usb type c is actually a horrible thing
12:24:36 <dminuoso> It's very non-universal, mostly because type c is a formfactor, not an signaling protocol
12:25:50 <dminuoso> You can do mere PD, USB, DisplayPort, Thunderbolt, or any number of completely proprietary protocols over type C, and they tend to have different electrical requirements, to the point that an USB type c cable might work for one thing, but not the other.
12:25:52 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd) (Ping timeout: 256 seconds)
12:27:11 <dminuoso> There's at least 5 system defined alternate modes, with some additional ones. USB Type C is probably the worst thing that has happened in universal connectors. :(
12:28:33 <dminuoso> For most consumers the differences are not obvious, and cables are usually not clearly marked, so if an USB Type C <-> Type C cable works for whatever you want, its probably just luck. but sometimes it also just does not work.
12:28:39 <dminuoso> end of rant.
12:29:38 <chreekat> The distance between what I thought USB-C was and what it actually is was a long way to fall
12:33:44 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 260 seconds)
12:34:23 <dminuoso> Worst of all, for PD if you buy a wrong cable, you actually have a realistic risk of electrical damage to the consumer. Fried phones or laptops just because of a wrong USB Type C cable can happen
12:34:38 <dminuoso> Im not even talking about cables being out of spec, just cables with the *wrong* specs.
12:34:52 <__monty__> carbolymer's analogy to Type C is pretty apt though. Plugs in anywhere but is often useless.
12:35:00 <dminuoso> __monty__: haha!
12:37:17 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
12:39:14 azimut joins (~azimut@gateway/tor-sasl/azimut)
12:40:58 × opticblast quits (~Thunderbi@97.64.79.177) (Ping timeout: 260 seconds)
12:41:21 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
12:46:20 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
12:47:27 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
12:47:58 nschoe joins (~q@141.101.51.197)
12:49:23 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
12:53:25 ChaiTRex joins (~ChaiTRex@user/chaitrex)
12:54:14 ivan__ joins (~ivan__@2001:818:ea58:9200:c83e:9a28:c46f:bf84)
13:03:27 <carbolymer> dminuoso: tbf I'd rather have one cable with different protocols, than the bullshit we had with mobile phones' chargers we had 10 years ago
13:03:34 <carbolymer> or rather cables
13:03:59 <dminuoso> carbolymer: You cant tell these cables apart once you pull them out of the box. Most cables dont have proper markings.
13:04:15 <dminuoso> I dont like having a cable where you dont know whether it will brick your laptop if you charge with it or not.
13:04:26 <dminuoso> Not entirely sure how that seems advantageous
13:05:19 <dminuoso> The only reason most people dont complain, is because the large fraction of Type-C <-> Type C cables are USB cables (for *some* USB speed), which fits the bill of the majority.
13:05:31 <dminuoso> Until you have a thunderbolt cable in your hand
13:05:35 <dminuoso> or want to connect your laptop to a docking station
13:05:40 <dminuoso> or want to connect your laptop to a screen
13:06:21 <dminuoso> and when you do find a cable that suggests its a thunderbolt cable, its the wrong thunderbolt version, and if you do, its out of spec, and your docking station silently doenst work.
13:06:57 <dminuoso> (And no, you cannot use a USB 3.1 cable for these things, you will need speciality cables)
13:08:43 <dminuoso> carbolymer: its really collectively worse. before, you couldnt accidentally plug a say firewire cable into an usb port. now you can sort of do, it still wont work, but it will fit.
13:08:49 <dminuoso> but you cant even tell beforehand that it wont work.
13:08:52 <dminuoso> carbolymer: how is this better?
13:09:41 <dminuoso> About the only univerality you get is that PD tends to work on most cables, until the cable has wrong impedances, then you risk bricking or putting your consumer on fire. Great perspective.
13:12:16 <dminuoso> The only advantage that USB type c really has, is if the device can run multiple modes over the same connector. Say if the device can somehow run either USB 3.1, HDMI or Thunderbolt. There's only a very limited of laptops that have this capability, and there its great because you actually *save* the number of USB ports.
13:12:29 <dminuoso> On something like a phone its absurd, because you generally dont need any of these things. But you do have that PD risk I talked about earlier.
13:15:19 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
13:15:31 son0p joins (~ff@2604:3d08:5b7f:5540::6bfc)
13:15:47 Major_Biscuit joins (~MajorBisc@145.94.180.252)
13:15:51 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 268 seconds)
13:18:47 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 264 seconds)
13:19:26 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
13:20:46 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:33:22 <carbolymer> dminuoso: I see your point. Despite having competing protocols, there's still some convergence on the physical layer. At least you can charge and send data with the same cable to different devices.
13:33:54 <AndreasK> Maybe it will be a bigger issue in a few years. So far only a single device of mine is actually usb-c
13:34:07 <AndreasK> But I expect that to become an issue for me as time goes on
13:35:37 freeside joins (~mengwong@103.252.202.193)
13:47:52 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
13:48:27 nate4 joins (~nate@98.45.169.16)
13:50:09 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
13:53:35 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 264 seconds)
13:56:40 elevenkb joins (~elevenkb@105.184.125.168)
13:57:13 × ivan__ quits (~ivan__@2001:818:ea58:9200:c83e:9a28:c46f:bf84) (Read error: Connection reset by peer)
13:58:25 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
14:02:50 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
14:04:06 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
14:05:57 kenaryn joins (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
14:12:03 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:16:06 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
14:18:16 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
14:21:08 × kenaryn quits (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
14:28:54 srz joins (~srz@181.228.49.93)
14:35:17 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
14:38:33 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
14:41:20 <absence> is there something like sequenceA for (a subset of) monad transformers? it's possible to do "MaybeT . ExceptT . fmap sequenceA . runMaybeT . runExceptT" explicitly, but i don't know if the concept makes sense more generally, or if it would break laws, etc
14:42:29 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
14:43:59 × freeside quits (~mengwong@103.252.202.193) (Ping timeout: 264 seconds)
14:44:38 × acidjnk_new quits (~acidjnk@p200300d6e7137a91c4f65aaee5ea4b91.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
14:45:00 hoey is now known as money
14:45:26 <lortabac> absence: more general on what level? sequenceA is already very general
14:45:43 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
14:45:44 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
14:45:44 wroathe joins (~wroathe@user/wroathe)
14:45:49 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
14:46:57 <absence> lortabac: it can't turn "ExceptT e (MaybeT m) a" to "MaybeT (ExceptT e m) a"
14:47:14 × elevenkb quits (~elevenkb@105.184.125.168) (Remote host closed the connection)
14:47:29 <absence> only "Either e (Maybe a)" to "Maybe (Either e a)"
14:50:54 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
14:54:36 <lortabac> absence: I see, I guess that's something you might find in the streaming libraries
14:55:43 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection)
14:57:37 <Guillaum[m]> Is there a way to ask GHC to take into account a package.conf.d/pname-version.conf without creating a package database?
14:58:30 <lortabac> absence: that said, I don't see why it wouldn't work with ExceptT e (MaybeT m)
14:58:42 × mei_ quits (~mei@user/mei) (Remote host closed the connection)
14:59:02 <absence> lortabac: why streaming?
14:59:07 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
14:59:19 <lortabac> isn't ExceptT an instance of Traversable?
15:00:48 <mauke> Guillaum[m]: unrelated, but what is that symbol before "package.conf.d/pname-version.conf" on your end?
15:01:54 <absence> lortabac: yes, but the Traversable typeclass can't flip two monad transformers
15:02:06 <Guillaum[m]> mauke: I'm not sure I understand your question. I used a "backtick" in order to format the string (I'm using matrix bridge to IRC, so "markdown syntax". Sorry if it cause any inconvenience)
15:02:43 <absence> lortabac: you'd need something like MTraversable i guess, in the spirit of mmorph's MFunctor and MMonad?
15:02:44 <mauke> ah, inline code markup
15:03:06 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
15:03:39 <mauke> Guillaum[m]: the bridge turns it into a Ctrl-Q character :-)
15:04:18 <Guillaum[m]> mauke: ha, damned. Is that acceptable to read or really painful? To know if I need to stop or not?
15:05:06 <mauke> fine with me, now that I know what it is. maybe some IRC clients do something sensible with it?
15:05:10 acidjnk joins (~acidjnk@p200300d6e7137a67f01158a637cc3bb0.dip0.t-ipconnect.de)
15:05:19 <mauke> otherwise it's just an extra symbol at the beginning of the span
15:05:20 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
15:06:23 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
15:06:27 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
15:06:47 <hpc> my client formats it as monospace text... but my client is also irssi :P
15:07:29 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.7.1)
15:08:00 ddellacosta joins (~ddellacos@89.46.62.188)
15:09:11 <geekosaur> my client mostly handles such markup fine, but not that one. I might write a script if I can find out what it's supposed to be doing
15:09:16 phma_ joins (~phma@host-67-44-208-136.hnremote.net)
15:10:45 <mauke> I wonder if it works in reverse. hello, I'm code
15:10:54 freeside joins (~mengwong@103.252.202.193)
15:11:28 <geekosaur[m]> seems to work here
15:11:59 geekosaur[m] popped element; normally does matrix only on phone
15:12:59 <geekosaur> interesting they changed that; backticks used to be passed through
15:13:13 × phma quits (phma@2001:5b0:211f:d9e8:77e8:13de:2d1:bc) (Ping timeout: 260 seconds)
15:13:32 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
15:14:18 <geekosaur> since I use fixed width font anyway I'll probably just strip it
15:16:18 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
15:16:22 <mauke> https://modern.ircdocs.horse/formatting.html#monospace
15:17:34 × chomwitt quits (~chomwitt@2a02:587:7a0d:dd00:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds)
15:18:13 <lortabac> absence: ah yes you are right, using sequenceA on ExcepT e (MaybeT m) only applies it to the 'm', it doesn't flip the transformers
15:18:47 geekosaur makes note of strikethrough as well
15:18:58 <lortabac> I think 'sequence' in streaming or pipes is the closest thing to what you are looking for
15:20:32 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
15:20:52 <lortabac> absence: but it's not for transformers, it only works for its own abstractions
15:21:27 <absence> lortabac: then i'm not sure how it's close :)
15:23:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd)
15:26:34 <lortabac> absence: haha fair point
15:26:34 × Vajb quits (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d) (Read error: Connection reset by peer)
15:27:01 coot joins (~coot@213.134.171.3)
15:27:42 Vajb joins (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi)
15:28:00 <geekosaur> in any case, re Guillaum[m]'s question, no, it requires a package database
15:28:23 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd) (Ping timeout: 260 seconds)
15:28:36 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
15:29:16 <geekosaur> or at least you must turn that into a package database and list it as such
15:30:11 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
15:31:58 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:31:59 califax joins (~califax@user/califx)
15:34:03 elevenkb joins (~elevenkb@105.184.125.168)
15:34:16 × Vajb quits (~Vajb@hag-jnsbng11-58c3a5-27.dhcp.inet.fi) (Read error: Connection reset by peer)
15:36:18 Vajb joins (~Vajb@2001:999:504:3ad6:52a4:a3b5:32d8:e74d)
15:37:38 phma_ is now known as phma
15:43:12 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:44:56 vysn joins (~vysn@user/vysn)
15:46:01 × vysn quits (~vysn@user/vysn) (Client Quit)
15:48:11 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
15:50:12 × APic quits (apic@apic.name) (Ping timeout: 248 seconds)
15:55:23 APic joins (apic@apic.name)
15:57:03 × coot quits (~coot@213.134.171.3) (Quit: coot)
15:58:35 × razetime quits (~quassel@117.254.34.180) (Remote host closed the connection)
15:59:15 × freeside quits (~mengwong@103.252.202.193) (Quit: Lost terminal)
16:00:07 × afotgkmnzj7asv3r quits (~afotgkmnz@2001:470:69fc:105::c24b) (Quit: You have been kicked for being idle)
16:08:53 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
16:10:58 × Kaiepi quits (~Kaiepi@108.175.84.104) (Ping timeout: 260 seconds)
16:13:21 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
16:22:24 × Major_Biscuit quits (~MajorBisc@145.94.180.252) (Ping timeout: 265 seconds)
16:22:52 Guest|14 joins (~Guest|14@136.237.3.85.dynamic.wline.res.cust.swisscom.ch)
16:27:34 chomwitt joins (~chomwitt@ppp-94-67-236-76.home.otenet.gr)
16:28:09 merijn joins (~merijn@86.86.29.250)
16:33:18 × Guest|14 quits (~Guest|14@136.237.3.85.dynamic.wline.res.cust.swisscom.ch) (Quit: Connection closed)
16:37:13 × merijn quits (~merijn@86.86.29.250) (Ping timeout: 260 seconds)
16:43:20 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:47:59 × zeenk quits (~zeenk@2a02:2f04:a208:3600::7fe) (Quit: Konversation terminated!)
16:48:47 × cheater quits (~Username@user/cheater) (Quit: (BitchX) Mike Tyson says BitchX BITES! Do you HEAR what I'm saying?!)
16:56:27 ladyfriday is now known as mrmonday
16:56:32 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
16:57:51 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
17:03:06 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
17:09:28 <Guillaum[m]> geekosaur: actually, it was easier than what I expected (ln all the `.conf` files in the same directory, call `ghc-pkg recache`, export GHC_PACKAGE_PATH, done)
17:15:15 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:ac0a:38a2:8562:1b2b) (Quit: WeeChat 2.8)
17:16:36 <stefan-_> when compiling https://github.com/agrafix/grabcite with "stack build" I get:
17:16:38 <stefan-_> ghc: panic! (the 'impossible' happened) -- (GHC version 8.0.2 for x86_64-unknown-linux): -- Prelude.chr: bad argument: 1543503875
17:16:44 <stefan-_> any ideas how to fix this?
17:25:52 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:25:55 cheater joins (~Username@user/cheater)
17:28:37 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 265 seconds)
17:28:51 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
17:30:16 ub joins (~Thunderbi@77.119.213.106.wireless.dyn.drei.com)
17:30:53 × ubert quits (~Thunderbi@178.115.70.87.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
17:30:54 ub is now known as ubert
17:31:02 CiaoSen joins (~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
17:31:39 sawilagar joins (~sawilagar@user/sawilagar)
17:33:13 × teo quits (~teo@user/teo) (Ping timeout: 260 seconds)
17:33:23 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:33:56 heisenberg2 joins (~heisenber@104.28.255.12)
17:34:19 califax joins (~califax@user/califx)
17:37:48 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
17:38:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:42:14 uroboros joins (~ouroboros@user/ouroboros)
17:42:32 × acidsys quits (~crameleon@openSUSE/member/crameleon) (Ping timeout: 246 seconds)
17:42:32 × ouroboros quits (~ouroboros@user/ouroboros) (Ping timeout: 246 seconds)
17:42:32 uroboros is now known as ouroboros
17:42:33 × CiaoSen quits (~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
17:42:53 × Dykam quits (Dykam@dykam.nl) (Ping timeout: 246 seconds)
17:43:16 Dykam joins (Dykam@dykam.nl)
17:45:11 × nschoe quits (~q@141.101.51.197) (Ping timeout: 264 seconds)
17:45:53 acidsys joins (~crameleon@openSUSE/member/crameleon)
17:46:48 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
17:47:33 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
17:48:12 × heisenberg2 quits (~heisenber@104.28.255.12) (Remote host closed the connection)
17:49:25 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
17:50:06 nate4 joins (~nate@98.45.169.16)
17:50:23 × sawilagar quits (~sawilagar@user/sawilagar) (Remote host closed the connection)
17:51:42 sawilagar joins (~sawilagar@user/sawilagar)
17:52:06 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:54:47 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
17:55:12 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds)
17:55:49 × elevenkb quits (~elevenkb@105.184.125.168) (Ping timeout: 268 seconds)
17:58:37 econo joins (uid147250@user/econo)
18:02:35 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 264 seconds)
18:03:46 <money> (;)
18:03:51 <money> 🔥🔥
18:04:56 <[exa]> money: is that -XSemicolonIsNormal ?
18:05:25 <[exa]> (kinda wondering how much that could help with monad tutorials)
18:05:32 [exa] hides
18:07:26 <money> Sorry
18:07:37 <money> I think?
18:07:41 <money> Idk what that means
18:14:35 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
18:15:00 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
18:16:07 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
18:18:56 bgamari[m] joins (~bgamari@2001:470:69fc:105::c7b9)
18:20:34 jakalx joins (~jakalx@base.jakalx.net)
18:28:13 × sawilagar quits (~sawilagar@user/sawilagar) (Read error: Connection reset by peer)
18:29:29 Kaiepi joins (~Kaiepi@108.175.84.104)
18:29:48 sawilagar joins (~sawilagar@user/sawilagar)
18:30:03 × vpan quits (~0@212.117.1.172) (Quit: Leaving.)
18:30:10 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
18:31:17 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
18:34:02 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd)
18:34:07 Tuplanolla joins (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi)
18:38:24 <carbolymer> [exa]: the calming effect of semicolons may balance monadic disturbances
18:42:01 × euandreh quits (~Thunderbi@179.214.113.107) (Quit: euandreh)
18:42:18 euandreh joins (~Thunderbi@179.214.113.107)
18:44:03 × euandreh quits (~Thunderbi@179.214.113.107) (Client Quit)
18:44:20 euandreh joins (~Thunderbi@179.214.113.107)
18:45:47 merijn joins (~merijn@86.86.29.250)
18:46:35 <EvanR> I thought semicolon is already normal, "in haskell you don't have to use layout, you can write it like C!"
18:48:32 × euandreh quits (~Thunderbi@179.214.113.107) (Read error: Connection reset by peer)
18:48:40 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:48:50 euandreh joins (~Thunderbi@179.214.113.107)
18:49:35 <dsal> I'd assume "normal" in this context means I can use it as a normal operator.
18:49:51 <dsal> I'd do something amazing with it that wouldn't be confusing at all.
18:50:48 × merijn quits (~merijn@86.86.29.250) (Ping timeout: 260 seconds)
19:01:52 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:03:38 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
19:04:02 <monochrom> There are papers that use (;) for flip (.)
19:08:18 dgb8 joins (~dgb@astra4961.startdedicated.net)
19:09:28 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
19:09:38 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:09:47 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
19:11:56 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
19:12:54 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:15:12 Guest75 joins (~Guest75@178.141.145.247)
19:18:10 <EvanR> you'd think flip (.) would be (᛫)
19:19:58 × Guest75 quits (~Guest75@178.141.145.247) (Ping timeout: 260 seconds)
19:20:30 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
19:21:36 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
19:25:13 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd) (Remote host closed the connection)
19:27:22 <monochrom> haha
19:27:25 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:29:33 × euandreh quits (~Thunderbi@179.214.113.107) (Read error: Connection reset by peer)
19:29:47 euandreh joins (~Thunderbi@179.214.113.107)
19:34:03 Sgeo joins (~Sgeo@user/sgeo)
19:35:45 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 252 seconds)
19:36:00 TMA joins (tma@twin.jikos.cz)
19:36:59 king_gs joins (~Thunderbi@187.201.139.206)
19:39:48 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 260 seconds)
19:40:59 × zant quits (~zant@62.96.232.178) (Ping timeout: 260 seconds)
19:40:59 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd)
19:41:33 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
19:47:15 merijn joins (~merijn@86.86.29.250)
19:48:02 × euandreh quits (~Thunderbi@179.214.113.107) (Quit: euandreh)
19:48:06 caryhartline joins (~caryhartl@2600:1700:2d0:8d30:ec42:d12f:7ae6:7310)
19:49:55 Major_Biscuit joins (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e)
19:51:36 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
19:52:50 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
19:53:48 sawilagar_ joins (~sawilagar@user/sawilagar)
19:54:40 × sawilagar quits (~sawilagar@user/sawilagar) (Read error: Connection reset by peer)
19:54:41 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:54:52 EvanR_ joins (~EvanR@user/evanr)
19:56:06 gmg joins (~user@user/gehmehgeh)
19:56:07 × EvanR quits (~EvanR@user/evanr) (Ping timeout: 260 seconds)
19:56:08 × king_gs quits (~Thunderbi@187.201.139.206) (Read error: Connection reset by peer)
19:57:23 king_gs joins (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924)
19:57:30 euandreh joins (~Thunderbi@179.214.113.107)
19:59:43 chromoblob joins (~user@37.113.164.122)
19:59:59 × euandreh quits (~Thunderbi@179.214.113.107) (Remote host closed the connection)
20:02:14 lortabac joins (~lortabac@2a01:e0a:541:b8f0:5c24:99c3:9644:f918)
20:02:18 euandreh joins (~Thunderbi@179.214.113.107)
20:05:29 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd) (Remote host closed the connection)
20:05:53 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1933:e30c:90a:59fd)
20:06:42 ft joins (~ft@p508dbd59.dip0.t-ipconnect.de)
20:07:40 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:12:11 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
20:13:41 × EvanR_ quits (~EvanR@user/evanr) (Remote host closed the connection)
20:14:34 <stefan-_> when building a project with stack, I get:
20:14:35 <stefan-_> HDBC-odbc > Database/HDBC/ODBC/Statement.hsc:257:3: error:
20:14:35 <stefan-_> HDBC-odbc > parse error on input ‘{’
20:14:44 <stefan-_> this refers to this line: https://github.com/agrafix/hdbc-odbc/blob/master/Database/HDBC/ODBC/Statement.hsc#L257
20:15:04 <stefan-_> any ideas on how to fix this?
20:15:55 <[exa]> that looks like the brace is split off the type declaration by the comment right?
20:18:11 <[exa]> perhaps what's your ghc version?
20:19:01 <stefan-_> it uses lts-9.0 from stackage
20:19:02 <stefan-_> https://github.com/agrafix/grabcite/blob/master/stack.yaml#L1
20:19:15 <stefan-_> which should be ghc-8.0.2
20:20:38 × merijn quits (~merijn@86.86.29.250) (Ping timeout: 260 seconds)
20:21:28 mikoto-chan joins (~mikoto-ch@164.5.249.78)
20:22:09 EvanR joins (~EvanR@user/evanr)
20:22:41 <monochrom> This may or may not be related, but I would expect, for haddock's sake, that "-- | Type of the value in the buffer" should be after "BoundValue {", not in the middle of that.
20:22:54 <monochrom> which may be what [exa] said :)
20:23:24 <monochrom> OK I misread, but then it means:
20:23:49 <[exa]> 9.0.1 changelog seems to mention something quite similar
20:23:52 <monochrom> I would expect that "-- | Type of the value in the buffer" should be before "data BoundValue" even.
20:23:56 shapr joins (~user@68.54.166.125)
20:23:59 × vulpine quits (xfnw@tilde.team) (Quit: Connection reset by purr)
20:24:08 <[exa]> https://downloads.haskell.org/ghc/9.0.1/docs/html/users_guide/9.0.1-notes.html#haddock
20:24:32 <[exa]> stefan-_: does stackage say this version combo is okay?
20:24:33 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
20:25:09 zeenk joins (~zeenk@2a02:2f04:a208:3600::7fe)
20:25:22 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:26:15 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:26:16 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
20:27:23 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
20:27:44 monochrom misreads "Want to join the Stackage team? We’re looking for new victims!" >:)
20:28:38 <monochrom> It's "new curators", but I'm biased and decided to just read the first half and extrapolate the rest. >:)
20:28:47 <monochrom> #thisIsHowAIWorks
20:30:45 <stefan-_> [exa], hm, let me try with the comment removed
20:31:00 vulpine joins (xfnw@tilde.team)
20:36:20 <[exa]> stefan-_: also if you don't explicitly require lts9 it might be very viable to update it now
20:38:31 <stefan-_> [exa], removing the comment makes it compile, thanks
20:39:31 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:5c24:99c3:9644:f918) (Quit: WeeChat 2.8)
20:40:49 pavonia joins (~user@user/siracusa)
20:41:36 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
20:42:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:43:58 × srz quits (~srz@181.228.49.93) (Ping timeout: 260 seconds)
20:44:31 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:45:42 ivan__ joins (~ivan__@2001:818:ea58:9200:c83e:9a28:c46f:bf84)
20:45:47 × ddellacosta quits (~ddellacos@89.46.62.188) (Ping timeout: 264 seconds)
20:48:04 × michalz quits (~michalz@185.246.207.215) (Remote host closed the connection)
20:48:52 Neuromancer joins (~Neuromanc@user/neuromancer)
20:49:41 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 265 seconds)
20:53:02 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Ping timeout: 256 seconds)
20:56:24 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:56:39 CiaoSen joins (~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
20:57:25 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 265 seconds)
21:02:03 × CiaoSen quits (~Jura@p200300c95701f1002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
21:05:20 chromoblob joins (~user@37.113.164.122)
21:06:20 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 255 seconds)
21:07:25 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
21:08:42 gmg joins (~user@user/gehmehgeh)
21:08:46 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
21:09:05 jmdaemon joins (~jmdaemon@user/jmdaemon)
21:09:55 × king_gs quits (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Remote host closed the connection)
21:10:14 king_gs joins (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924)
21:12:16 elevenkb joins (~elevenkb@105.184.125.168)
21:16:08 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
21:17:38 Me-me joins (~Me-me@146.102.215.218.dyn.iprimus.net.au)
21:17:56 gmg joins (~user@user/gehmehgeh)
21:20:09 × Me-me quits (~Me-me@146.102.215.218.dyn.iprimus.net.au) (Changing host)
21:20:09 Me-me joins (~Me-me@user/me-me)
21:21:14 eldritch joins (~eldritch@user/eldritch)
21:24:29 × ivan__ quits (~ivan__@2001:818:ea58:9200:c83e:9a28:c46f:bf84) (Read error: Connection reset by peer)
21:28:30 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
21:28:35 × mikoto-chan quits (~mikoto-ch@164.5.249.78) (Quit: WeeChat 3.6)
21:36:29 × Major_Biscuit quits (~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Ping timeout: 260 seconds)
21:36:34 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 265 seconds)
21:38:17 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:40:31 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
21:45:40 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
21:51:35 nate4 joins (~nate@98.45.169.16)
21:52:40 × zeenk quits (~zeenk@2a02:2f04:a208:3600::7fe) (Quit: Konversation terminated!)
21:56:22 × elevenkb quits (~elevenkb@105.184.125.168) (Remote host closed the connection)
21:56:53 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
21:57:26 Erutuon joins (~Erutuon@user/erutuon)
22:03:11 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
22:04:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:09:35 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Remote host closed the connection)
22:10:40 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
22:11:27 <darchitect1> q!
22:11:29 <darchitect1> exit
22:11:36 × darchitect1 quits (~darchitec@2a00:23c6:3584:df01:8400:aa62:2730:49fa) (Quit: WeeChat 3.6)
22:12:01 darchitect joins (~darchitec@2a00:23c6:3584:df01:dc79:ce08:25b8:80df)
22:12:29 × darchitect quits (~darchitec@2a00:23c6:3584:df01:dc79:ce08:25b8:80df) (Client Quit)
22:13:01 darchitect joins (~darchitec@2a00:23c6:3584:df01:dc79:ce08:25b8:80df)
22:20:48 Guest75 joins (~Guest75@178.141.145.247)
22:24:59 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
22:26:33 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
22:27:37 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:27:50 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
22:28:58 merijn joins (~merijn@86.86.29.250)
22:28:58 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
22:31:30 × fr33domlover quits (~fr33domlo@towards.vision) (Quit: The Lounge - https://thelounge.chat)
22:33:30 fr33domlover joins (~fr33domlo@towards.vision)
22:40:56 chromoblob joins (~user@37.113.164.122)
22:43:00 dsal never leaves virc
22:45:10 <Rembane> This is good
22:59:36 × Tuplanolla quits (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.)
23:03:23 × merijn quits (~merijn@86.86.29.250) (Ping timeout: 260 seconds)
23:07:55 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
23:20:19 VOID404 joins (~VOID404@89.151.44.90)
23:20:32 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
23:21:19 chexum joins (~quassel@gateway/tor-sasl/chexum)
23:23:46 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
23:26:19 <VOID404> Fellas, I have a question. I wanted to write a class and implement it, but some ways of implementing the functionality has IO in the process, which means that I will get the result with IO, which won't fulfill the class constraints. How can I design the class and implementation to accept both IO result and regular result? Is there a nice solution
23:26:20 <VOID404> for that? Is this a beginner question? :P
23:27:50 <monochrom> Designing your own class is never a beginner question.
23:28:00 <VOID404> damn it :/
23:28:40 <monochrom> Even the very decision "I think a type class makes sense" is not a beginner's decision.
23:28:47 <geekosaur> haskell is not oop, do not try to approach it that way
23:28:54 <monochrom> Namely, a beginner always makes the wrong decision on this.
23:29:03 <monochrom> Yeah, because of that.
23:29:22 <loonycyborg> type class is closer to c++ template than to c++ class
23:29:40 <monochrom> No, to C++ concepts.
23:30:01 <loonycyborg> Yes, basically that
23:30:23 <loonycyborg> without concepts C++ templates have lot less strict "type" checking :P
23:30:43 opticblast joins (~Thunderbi@172.58.87.196)
23:30:48 × Guest75 quits (~Guest75@178.141.145.247) (Ping timeout: 260 seconds)
23:31:18 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
23:32:23 <Axman6> VOID404: can you give us some more information about what you are actually trying to do? Your question is very vague and the specifics will affect the answers a lot
23:32:32 <VOID404> I have a simulation with a bot. I want to generalise a bot with state. I thought I'd make a class, that does the simulated step on the bot state and simulation state, returning bots action. This way I can swap out bots easily and they can be managed by the simulation
23:32:40 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
23:32:50 <VOID404> In simple cases, with bot state and simulation state as input, I can get bot action - easy
23:33:28 <VOID404> But I want to be able to wrap an external implementation and communicate with it through stdin/stdout, which gives me the result wrapped in IO
23:33:28 <Axman6> sounds very much like a monadic type class, but more details would be helpful
23:34:18 × acidjnk quits (~acidjnk@p200300d6e7137a67f01158a637cc3bb0.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
23:36:10 <VOID404> I'd be happy to read whatever y'all would recommend me to learn how to design it better, if what I said makes no sense :P
23:37:11 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Client Quit)
23:37:46 <VOID404> I also didn't know how to handle initialization data, but that's a separate problem. I did "builder class" which is probably a terrible way of doing it, but at least it works until I figure out what the haskelish way of doing it is
23:39:08 <VOID404> class BotBuilder a b where
23:39:09 <VOID404>   init :: (Bot b) => a -> InitInput -> b
23:39:09 <VOID404> class Bot a where
23:39:10 <VOID404>   run :: a -> TurnInput -> BotOutput
23:39:29 <Axman6> it's not particularly clear to me, not sure about others. my first instinct is to define a type class for a monadic interface: class MonadSim m where getState :: m SimState; doThing :: Arg -> m ThingResult
23:39:58 <VOID404> Ok, but then what about implementations not requiring a monad?
23:40:21 <Axman6> then you can have instances for which ever monads are appropriate, whether they're pure or have IO underneath
23:40:37 <Axman6> just require a monad
23:41:44 <oak-> Also maybe a good starting point would be to start reading about different ways to design a Haskell program?
23:42:00 <Axman6> generally if you're talking about simulating something, you're talking about sequencing events, which is basically what monads are used for
23:42:19 <VOID404> I am not used to declarative structures yet :/
23:42:45 <Axman6> I don't know what "declarative structures" is
23:43:05 <VOID404> I mean Monad, Functors etc
23:43:23 <VOID404> I wrote functional code in multi-paradigm languages, but I've never seen a language with stuff like IO represented like in haskell
23:43:32 <monochrom> I have never read any material on "how to design generalizations". I don't know of any anyway. How I learned to desgin generalizations: I start with not wanting to generalize. Just write out all the examples I want, low-tech, KISS. Then compare them and do refactoring. If I suspect that I am not seeing a good refactoring, I may ask others.
23:43:33 <int-e> Those two classes simplify to type BotBuilder = InitInput -> Bot; type Bot = TurnInput -> BotOutput
23:43:37 <Axman6> Time to start learning then :)
23:45:49 <int-e> Which is okay as long as bots don't have any internal state...
23:46:36 <VOID404> They *might* have, that's why I thought classes are the way to go
23:46:36 <VOID404> And if I wanna wrap external implementations, then handles are the state
23:47:09 <VOID404> Wait, they don't have to be, because they don't change
23:47:13 <VOID404> do they
23:47:13 <monochrom> "type BotBuilder = InitInput -> Bot; type Bot = TurnInput -> BotOutput" on steroid: https://www.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt slide 13
23:49:25 <VOID404> But BotOutput sometimes requires IO. So I guess the way to go is just wrap everything in monads, and use pure when not needed?
23:49:28 <oak-> typeclasses don't actually have anything to do with mutable state, in the object-oriented programming sense
23:49:58 × VOID404 quits (~VOID404@89.151.44.90) (Quit: Client closed)
23:50:15 VOID404 joins (~VOID404@89.151.44.90)
23:50:21 <int-e> You can add in state by letting the step function return a new Bot: data Bot = Bot (TurnInput -> (Bot, BotOutput)) ...the state will be captured by the function, you don't have to make it explicit.
23:50:37 <int-e> (I have not checked whether monochrom's link is doing that or something else)
23:51:16 <monochrom> My link (and if you go to slide 13) just says: functions, functions, functions again, did I say functions? functions.
23:51:17 <VOID404> Is returning function cleaner than state with class?..
23:51:30 <int-e> monochrom: I'll take that as a yes.
23:51:48 <Axman6> Just as a general piece of advice, if tyou are new to Haskell, a type class is almost never going to be the right tool for you
23:52:10 <monochrom> But I guess the whole talk is of value about designs in FP.
23:52:16 <monochrom> or at least in Haskell.
23:52:27 <Axman6> like monochrom said, write the concrete code, keep the implementations separate, then you can think about how you abstract the common parts
23:52:44 × caryhartline quits (~caryhartl@2600:1700:2d0:8d30:ec42:d12f:7ae6:7310) (Quit: caryhartline)
23:53:21 × VOID404 quits (~VOID404@89.151.44.90) (Client Quit)
23:53:42 VOID404 joins (~VOID404@89.151.44.90)
23:53:50 <VOID404> I shall stick to just functions then for now, thx <3
23:54:14 <VOID404> I'll try to read something about functional design I guess
23:54:47 <oak-> If I understood the problem correclty, I'd start by doing simple IO main loop, which will read input from stdin, parse it, process the simulation based on the parsed input, print the result, then read input again ...
23:55:09 <oak-> if the point is to make some kind of "prompt"
23:55:17 × king_gs quits (~Thunderbi@2806:103e:29:bfeb:c988:bbd5:2586:4924) (Ping timeout: 265 seconds)
23:55:29 <VOID404> the thing is that some Bots require IO and some don't
23:56:10 <VOID404> I don't want to needlessly complicate the simpler Bots, but the result from IO bot has a result inside of the IO
23:56:17 <VOID404> that's my main problem
23:56:26 <VOID404> It is the same kind of operation, it's just the damn IO
23:56:36 <VOID404> So I guess I wrap the result from simple in pure
23:56:54 <VOID404> and I have to complicate it like that
23:57:03 × chromoblob quits (~user@37.113.164.122) (Ping timeout: 260 seconds)
23:57:26 <int-e> type IOBot = TurnInput -> IO BotOutput; botToIOBot bot turn = pure (bot turn)
23:57:27 × VOID404 quits (~VOID404@89.151.44.90) (Client Quit)
23:57:45 VOID404 joins (~VOID404@89.151.44.90)
23:57:59 <int-e> :t state
23:58:00 <lambdabot> MonadState s m => (s -> (a, s)) -> m a
23:58:35 <int-e> :t StateT
23:58:36 <lambdabot> (s -> m (a, s)) -> StateT s m a
23:58:50 void_ joins (~void@89.151.44.90)
23:59:21 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:59:32 <int-e> There's a vague connection here, in that `state` lifts the "simple" version of the state monad to the transformer version (and, well, whatever other implementatioins MonadState has...)

All times are in UTC on 2022-11-24.