2022/11/24

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