Home freenode/#haskell: Logs Calendar

Logs on 2020-12-31 (freenode/#haskell)

00:00:22 <monochrom> But I always remind that you are not a modem, you are not supposed to convert code to voice.
00:04:40 <monochrom> Because by the time you get to the complexity of "(x * sqrt (y + z)) / (2 * e**(sin (x * pi / t)))" it becomes counterproductive to "try to understand it by reading out loud". No, reading it out loud is more confusing.
00:06:11 <monochrom> The productive thing to do is to visualize that as an expression tree, and focus on a subtree or focus on the big picture (it's just "foo / bar" FSVO foo and bar) as needed.
00:09:21 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
00:10:17 × crblmr quits (~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds)
00:11:01 × mputz quits (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
00:11:41 crblmr joins (~carbolyme@matrix.dropacid.net)
00:16:48 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
00:19:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:20:14 bitmapper joins (uid464869@gateway/web/irccloud.com/x-zdvypcqrxauhxxjm)
00:23:32 <arahael> monochrom: Not "one and two"? ;)
00:23:44 arahael never pronounces either.
00:24:47 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 272 seconds)
00:25:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
00:28:46 × Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 265 seconds)
00:32:26 sgibber2018 joins (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
00:34:25 × crblmr quits (~carbolyme@matrix.dropacid.net) (Ping timeout: 264 seconds)
00:36:10 crblmr joins (~carbolyme@matrix.dropacid.net)
00:38:28 × acidjnk_new quits (~acidjnk@p200300d0c704e799613ed27d32309497.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
00:38:31 <monochrom> You can always put two and two together to get four, and this is robust wrt how you interpret "and" as addition, multiplication, or exponentiation :)
00:38:52 × alx741 quits (~alx741@181.196.68.142) (Ping timeout: 260 seconds)
00:40:54 arahael thus concludes that 2 <> 2 == 4
00:43:24 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
00:43:41 <MarcelineVQ> good job everyone
00:44:05 <dolio> Works for every hyper operation, too.
00:45:18 <monochrom> "Freedom is the freedom to write 2 <> 2 == 4, and with a fountain pen while we're at it."
00:47:03 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Remote host closed the connection)
00:47:47 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
00:47:51 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
00:48:23 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
00:49:04 Varis joins (~Tadas@unaffiliated/varis)
00:49:10 urek joins (~urek@2804:7f1:e10b:8573:bc13:7848:44d2:2b7e)
00:49:13 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
00:49:21 × urek quits (~urek@2804:7f1:e10b:8573:bc13:7848:44d2:2b7e) (Remote host closed the connection)
00:49:41 olligobber joins (~olligobbe@unaffiliated/olligobber)
00:50:26 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
00:51:44 Varis joins (~Tadas@unaffiliated/varis)
00:51:46 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
00:52:02 <boxscape> % (+ x) = (+++ x)
00:52:02 <yahb> boxscape: ; <interactive>:124:2: error: Parse error in pattern: +x
00:52:13 <boxscape> hm you can't use sections to define an operator?
00:52:16 <boxscape> on the lhs
00:52:46 dfeuer joins (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net)
00:52:54 alx741 joins (~alx741@186.178.110.198)
00:53:24 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 272 seconds)
00:53:46 <monochrom> No.
00:53:49 <boxscape> sad :(
00:53:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:55:08 × chipc quits (~chipc@217.146.82.202) (Remote host closed the connection)
00:57:00 × Feuermagier quits (~Feuermagi@213.178.26.41) (Remote host closed the connection)
00:59:28 × aveltras quits (uid364989@gateway/web/irccloud.com/x-twzhylkueocqmpyy) (Quit: Connection closed for inactivity)
00:59:39 polyrain joins (~polyrain@2001:8003:e501:6901:7854:1650:194e:4c2f)
01:01:19 <seventhousand> hello
01:01:35 <seventhousand> Why can I not scroll up to see chat history
01:01:35 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9)
01:02:06 <rom1504> seventhousand: no chat history feature in irc
01:02:12 <seventhousand> Interesting
01:02:16 <seventhousand> never used one before
01:02:20 natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
01:02:22 nbloomf joins (~nbloomf@2600:1700:ad14:3020:2994:ee4e:2fd6:b5cb)
01:02:38 <rom1504> irc servers just relays messages to users, that's it
01:02:56 <boxscape> seventhousand you can see logs here though https://ircbrowse.tomsmeding.com/browse/haskell?events_page=2276
01:03:19 × polyrain quits (~polyrain@2001:8003:e501:6901:7854:1650:194e:4c2f) (Client Quit)
01:04:41 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:2994:ee4e:2fd6:b5cb) (Client Quit)
01:06:13 paintcan` joins (~user@cpe-69-206-241-99.nyc.res.rr.com)
01:06:44 × paintcan quits (~user@cpe-69-206-241-99.nyc.res.rr.com) (Remote host closed the connection)
01:07:10 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
01:10:14 da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th)
01:10:26 threestrikes joins (~threestri@ec2-3-236-237-32.compute-1.amazonaws.com)
01:11:03 × threestrikes quits (~threestri@ec2-3-236-237-32.compute-1.amazonaws.com) (Client Quit)
01:11:36 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 240 seconds)
01:12:54 × vicfred quits (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving)
01:14:34 × seventhousand quits (~sevenk@64.85.149.202) (Quit: Lost terminal)
01:18:17 myname_ joins (~sevenk@64.85.149.202)
01:21:08 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:25:18 × da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:26:07 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
01:28:25 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
01:30:20 Fischmiep joins (~Fischmiep@46.59.132.43)
01:32:32 christo joins (~chris@81.96.113.213)
01:33:38 × Fischmie1 quits (~Fischmiep@149.224.197.30) (Ping timeout: 256 seconds)
01:34:12 gzj joins (~gzj@unaffiliated/gzj)
01:35:12 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
01:35:36 × Tops22 quits (~Tobias@dyndsl-095-033-027-207.ewe-ip-backbone.de) (Read error: Connection reset by peer)
01:36:16 da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.28.247)
01:37:30 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
01:38:51 × columbarius quits (~columbari@i5E86B34F.versanet.de) (Ping timeout: 265 seconds)
01:39:34 gzj joins (~gzj@unaffiliated/gzj)
01:40:49 columbarius joins (~columbari@mue-88-130-54-032.dsl.tropolys.de)
01:42:14 × ransom quits (~c4264035@8.47.12.52) (Read error: Connection reset by peer)
01:42:38 ransom joins (~c4264035@8.47.12.52)
01:42:38 × ransom quits (~c4264035@8.47.12.52) (Client Quit)
01:45:31 suriro joins (~suriro@178.239.168.171)
01:52:57 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
01:57:19 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
02:03:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:08:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
02:08:42 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
02:09:09 × carthia quits (~carthia@gateway/tor-sasl/carthia) (Quit: carthia)
02:09:31 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:13:00 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
02:14:01 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
02:15:25 × crblmr quits (~carbolyme@matrix.dropacid.net) (Ping timeout: 256 seconds)
02:16:23 crblmr joins (~carbolyme@matrix.dropacid.net)
02:20:19 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:20:50 nbloomf joins (~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315)
02:21:38 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
02:22:45 × frankdmartinez quits (~user@c-69-249-137-255.hsd1.pa.comcast.net) (Ping timeout: 240 seconds)
02:26:01 × dfeuer quits (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
02:26:39 frankdmartinez joins (~user@5.181.234.188)
02:27:53 × myname_ quits (~sevenk@64.85.149.202) (Quit: Lost terminal)
02:29:00 dfeuer joins (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net)
02:30:51 xiinotulp joins (~q@node-us0.pool-125-24.dynamic.totinternet.net)
02:31:26 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
02:33:12 × sgibber2018 quits (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Ping timeout: 260 seconds)
02:33:16 × fryguybob quits (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 240 seconds)
02:33:50 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
02:33:55 argento joins (~argent0@168.227.97.23)
02:34:09 × argento quits (~argent0@168.227.97.23) (Remote host closed the connection)
02:35:00 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
02:35:01 × plutoniix quits (~q@node-uil.pool-125-24.dynamic.totinternet.net) (Ping timeout: 264 seconds)
02:39:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:40:22 Iceland_jack joins (~user@31.124.48.169)
02:47:18 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 256 seconds)
02:49:22 ransom joins (~c4264035@2a09:bac0:72::82f:c34)
02:50:26 × xff0x_ quits (~fox@2001:1a81:5361:7200:b495:b5df:7e6c:e9db) (Ping timeout: 268 seconds)
02:51:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
02:51:26 gzj joins (~gzj@unaffiliated/gzj)
02:51:44 xff0x_ joins (~fox@2001:1a81:5398:2d00:1f27:11b6:17e5:8c13)
02:52:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
02:52:26 gzj joins (~gzj@unaffiliated/gzj)
02:57:59 drbean joins (~drbean@TC210-63-209-60.static.apol.com.tw)
03:03:39 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:07:45 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
03:11:41 xirhtogal joins (~lagothrix@unaffiliated/lagothrix)
03:11:41 lagothrix is now known as Guest74714
03:11:41 × Guest74714 quits (~lagothrix@unaffiliated/lagothrix) (Killed (kornbluth.freenode.net (Nickname regained by services)))
03:11:41 xirhtogal is now known as lagothrix
03:14:00 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 272 seconds)
03:14:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
03:14:31 Kronic joins (~Kronic___@84.203.96.46)
03:17:43 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
03:20:11 Stanley00 joins (~stanley00@unaffiliated/stanley00)
03:21:45 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
03:24:29 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
03:27:01 jedws joins (~jedws@121.209.189.201)
03:27:33 Varis joins (~Tadas@unaffiliated/varis)
03:27:33 matryoshka` joins (~matryoshk@184.75.223.227)
03:28:34 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer)
03:30:40 × frankdmartinez quits (~user@5.181.234.188) (Remote host closed the connection)
03:30:56 frankdmartinez joins (~user@5.181.234.188)
03:31:45 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 268 seconds)
03:35:27 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
03:44:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:46:28 justsomeguy joins (~justsomeg@216.186.218.241)
03:46:28 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
03:46:28 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
03:47:05 × eacameron quits (uid256985@gateway/web/irccloud.com/x-galbhouawynbrsup) (Quit: Connection closed for inactivity)
03:48:00 jacks2 joins (~bc815220@217.29.117.252)
03:48:05 <jacks2> hi
03:48:08 <jacks2> :t 1e6
03:48:10 <lambdabot> Fractional p => p
03:48:12 christo joins (~chris@81.96.113.213)
03:48:19 <boxscape> hi
03:48:26 <koz_> Yo.
03:48:26 <jacks2> why is it a Fractional and not Num?
03:48:36 <boxscape> % :seti -XNumDecimals
03:48:36 <yahb> boxscape:
03:48:41 <boxscape> % :t 1e6
03:48:41 <yahb> boxscape: Num p => p
03:48:53 <boxscape> it can be Num with an extension
03:49:06 <jacks2> ah ok, good
03:49:12 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:49:15 <boxscape> when the language was designed I guess people didn't consider that you might want to write integers in scientific notation
03:49:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
03:49:45 <dsal> I pretty much only write integers in scientific notation.
03:49:59 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
03:50:11 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
03:51:16 <boxscape> % :t 1.6666e2
03:51:16 <yahb> boxscape: Fractional p => p
03:51:39 <boxscape> jacks2 note that it will still be Fractional if there are more decimal places than would make sense for an integer
03:52:40 <jacks2> % :t 1.66e6
03:52:40 <yahb> jacks2: Num p => p
03:52:47 <jacks2> yeah, that's what I'd expect
03:55:37 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
03:56:19 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
03:57:43 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
04:00:11 × benjamingr__ quits (uid23465@gateway/web/irccloud.com/x-hcdctxhyzchiutea) (Quit: Connection closed for inactivity)
04:00:16 × dfeuer quits (~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
04:01:16 × theDon quits (~td@94.134.91.51) (Ping timeout: 240 seconds)
04:02:06 × ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
04:02:37 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 264 seconds)
04:03:07 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
04:03:12 × drbean quits (~drbean@TC210-63-209-60.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
04:03:18 theDon joins (~td@94.134.91.182)
04:03:21 sm2n joins (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca)
04:03:27 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
04:03:55 × crblmr quits (~carbolyme@matrix.dropacid.net) (Ping timeout: 246 seconds)
04:05:56 crblmr joins (~carbolyme@matrix.dropacid.net)
04:14:36 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:16:22 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
04:18:45 nbloomf joins (~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315)
04:19:00 × frankdmartinez quits (~user@5.181.234.188) (Quit: switching to a gui client)
04:20:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:20:42 frankdmartinez joins (~frankdmar@5.181.234.188)
04:24:54 × jmchael quits (~jmchael@81.174.205.210) (Ping timeout: 260 seconds)
04:26:51 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
04:30:19 <jacks2> is there a more concise way of writing this? instance (FromJSON a, FromJSON b, FromJSONKey a, FromJSONKey b, Ord a, Ord b) => FromJSON (MyType a b)
04:31:39 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-lomouarpoiwiahvm) ()
04:35:15 <boxscape> if that's a patter you encounter often you could write something like `type FromJSON' = (FromJSON a, FromJSONKey a, Ord a)` and then `instance (FromJSON' a, FromJSON' b) => FromJSON (MyType a b)`
04:35:24 <boxscape> jacks2 ^
04:35:29 <boxscape> s/patter/pattern
04:35:53 <boxscape> (I think that does require -XConstraintKinds though)
04:36:19 <jacks2> I only do this once, probably not worth it
04:36:25 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
04:36:28 <MarcelineVQ> You could but then you have to search for that alias, I think being explicit is clearer here for current and future you
04:38:34 <jacks2> actually I also have to use same signature in the read function, so it might be worth it
04:38:40 <jacks2> and in the write function
04:38:59 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
04:47:22 × crblmr quits (~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds)
04:47:25 × xiinotulp quits (~q@node-us0.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
04:49:08 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
04:49:37 crblmr joins (~carbolyme@matrix.dropacid.net)
04:50:00 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-zdvypcqrxauhxxjm) (Quit: Connection closed for inactivity)
04:50:50 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-xprnzzrqpfxzghyi)
04:51:09 × Anthaas quits (~Anthaas@unaffiliated/anthaas) (Ping timeout: 260 seconds)
04:51:50 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
04:52:15 Anthaas joins (~Anthaas@unaffiliated/anthaas)
04:53:26 × solonarv quits (~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr) (Ping timeout: 264 seconds)
04:54:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
04:56:04 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
05:04:40 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
05:05:11 MOSCOS joins (~MOSCOS@152.32.70.55)
05:07:45 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Read error: Connection reset by peer)
05:08:04 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
05:08:22 × Mikagami quits (~MOSCOS@122.54.107.175) (Ping timeout: 260 seconds)
05:09:25 × MOSCOS quits (~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds)
05:20:03 rayyyy1 joins (~nanoz@gateway/tor-sasl/nanoz)
05:21:50 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:22:10 hoofmaster joins (18740acc@unaffiliated/hoofmaster)
05:22:15 <hoofmaster> clack clop clack clop
05:22:18 <hoofmaster> neiiiiiiiiiiiiiiiigh
05:22:21 hoofmaster huffs
05:22:44 <dsal> This channel is about curry, not furry
05:23:37 hoofmaster gallops
05:24:39 <MarcelineVQ> hoofmaster, tell me your tail
05:24:57 hoofmaster clops over to MarcelineVQ
05:24:58 <boxscape> the furry cow herd correspondence
05:25:01 hoofmaster neighs in ear
05:25:08 hoofmaster gallops away
05:26:27 <MarcelineVQ> Truly a saga for the ages books, the mournful ballad of a high-mountain packer, too powerful to live and too rare to die.
05:26:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
05:27:08 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Read error: Connection reset by peer)
05:27:10 × ransom quits (~c4264035@2a09:bac0:72::82f:c34) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:36:03 × rayyyy1 quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
05:36:04 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
05:36:19 Tario joins (~Tario@201.192.165.173)
05:36:27 × ericsagnes quits (~ericsagne@2405:6580:0:5100:408c:5ab0:3607:c803) (Ping timeout: 258 seconds)
05:45:59 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
05:46:11 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 268 seconds)
05:46:50 dyeplexer joins (~lol@unaffiliated/terpin)
05:47:16 × jluttine quits (~jluttine@87-95-146-110.bb.dnainternet.fi) (Ping timeout: 240 seconds)
05:48:06 rayyyy1 joins (~nanoz@gateway/tor-sasl/nanoz)
05:48:08 jluttine joins (~jluttine@87-95-146-110.bb.dnainternet.fi)
05:48:48 ericsagnes joins (~ericsagne@2405:6580:0:5100:93a5:a77a:27e2:f365)
05:50:01 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
05:50:39 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
05:52:00 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
05:52:58 Tario joins (~Tario@201.192.165.173)
05:53:01 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 264 seconds)
05:54:13 <dyeplexer> Why is the "accumulator" argument and "current element" argument in the updation argument-functions in the fold/scan functions swapped?
05:54:40 ADG1089__ joins (~aditya@223.235.213.117)
05:54:48 <dyeplexer> foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b, foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
05:55:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:55:28 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
05:55:34 <dyeplexer> I am asking fot the rational behind the orders (b -> a -> b) and (a -> b -> b) in the above definitions
05:55:43 <dyeplexer> *for the rationale
05:56:05 <dsal> @hoogle asum
05:56:06 <lambdabot> Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a
05:56:06 <lambdabot> Data.Conduit.Combinators asum :: (Monad m, Alternative f) => ConduitT (f a) o m (f a)
05:56:06 <lambdabot> Protolude asum :: (Foldable t, Alternative f) => t (f a) -> f a
05:56:10 <dsal> I'm never going to remember where asum is.
05:56:27 <jle`> dyeplexer: the a -> b -> b makes sense for foldr, but i don't know about any explanation for foldl
05:57:00 <dyeplexer> Okay
05:57:04 ADG1089__ joins (~aditya@223.235.213.117)
05:57:10 <dsal> Folding right: thing -> accumulator Folding left accumulator <- thing
05:57:26 <jle`> dyeplexer: foldr f z (for lists, at least), it replaces the consturctors of a list
05:57:39 <jle`> dyeplexer: it repaces (:) with f, and [] with z
05:57:55 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:58:07 <boxscape> > foldr (+) [a,b,c,d]
05:58:09 <lambdabot> error:
05:58:09 <lambdabot> • Could not deduce (Num [Expr]) arising from a use of ‘+’
05:58:09 <lambdabot> from the context: Foldable t
05:58:12 <boxscape> > foldr (+) z [a,b,c,d]
05:58:14 <jle`> dyeplexer: so foldr f q (x:y:z:[]) is x `f` y `f` z `f` q
05:58:15 <lambdabot> a + (b + (c + (d + z)))
05:58:20 <boxscape> > foldl (+) z [a,b,c,d]
05:58:22 <lambdabot> z + a + b + c + d
05:58:29 <jle`> so it just goes down (x:y:z:[]) and swaps the :'s for f and [] for z
05:58:46 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.0)
05:59:07 <dyeplexer> ah okay got it. Thanks
06:00:22 <jle`> for foldl it's a bit arbitrary i think, but foldl can be thought of imperatively updating the b with an 'a' input
06:00:30 <jle`> successive a's
06:01:16 <jle`> so maybe b -> a -> b makes sense in that light... here's the b we have, the new a we see, now give the new updated b
06:01:24 <jle`> but really (a -> b -> b) would work the same way, idk
06:02:23 × rayyyy1 quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
06:03:09 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
06:04:20 <boxscape> if you look at (((z - a) - b) - c), you couldn't write it this way if you used (a -> b -> b)
06:05:19 <jle`> ah, that's fair
06:06:11 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
06:06:18 <jle`> the enw inputs are successively added, foldl f q [x,y,z] = (f q x) y) z, updating the accumulator (starting with q) with each item on the right like that
06:08:10 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
06:10:44 Tario joins (~Tario@201.192.165.173)
06:11:18 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 256 seconds)
06:11:28 rmk236 joins (~lcampos@2a02:908:3616:b100:849c:a12b:ff95:e193)
06:15:13 rayyyy1 joins (~nanoz@gateway/tor-sasl/nanoz)
06:17:35 × Tario quits (~Tario@201.192.165.173) (Read error: Connection timed out)
06:17:57 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
06:18:11 <dyeplexer> Okay
06:18:39 Tario joins (~Tario@201.192.165.173)
06:19:03 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
06:20:58 sgibber2018 joins (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
06:23:37 _noblegas joins (uid91066@gateway/web/irccloud.com/x-fnxlplogleuwxwft)
06:24:51 <dyeplexer> Yes. the currying was the problem. Implementing foldl and foldr myself cleared my doubts.
06:24:58 Vanilla[m] joins (danielm_14@gateway/shell/matrix.org/x-dgeqldxyrkfpeufk)
06:29:22 <dyeplexer> (or establishing the recursion)
06:29:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
06:31:13 × hoofmaster quits (18740acc@unaffiliated/hoofmaster) (Quit: "neiiiiiiiiiiiiigh")
06:37:16 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
06:37:19 × eruiucuiviucuiv quits (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Ping timeout: 260 seconds)
06:38:15 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Remote host closed the connection)
06:39:02 Vulfe joins (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
06:40:05 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
06:40:06 × da39a3ee5e6b4b0d quits (~da39a3ee5@171.5.28.247) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:41:47 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
06:43:38 × Vulfe quits (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 272 seconds)
06:44:30 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
06:45:30 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
06:48:03 × rayyyy1 quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
06:48:05 × sgibber2018 quits (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
06:54:14 rayyyy1 joins (~nanoz@gateway/tor-sasl/nanoz)
06:56:18 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:202c:5e45:3f22:4315) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:57:43 × rayyyy1 quits (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection)
06:58:02 × frankdmartinez quits (~frankdmar@5.181.234.188) (Quit: frankdmartinez)
06:58:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:59:22 coot joins (~coot@37.30.60.60.nat.umts.dynamic.t-mobile.pl)
07:03:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
07:04:35 da39a3ee5e6b4b0d joins (~da39a3ee5@183.88.111.61)
07:14:58 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:17:47 Vulfe joins (~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d)
07:20:37 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
07:22:32 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d) (Ping timeout: 260 seconds)
07:22:50 × jacks2 quits (~bc815220@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout))
07:34:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:34:18 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:34:26 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
07:35:49 × guest122` quits (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
07:37:37 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
07:38:36 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 240 seconds)
07:39:54 <boxscape> hm, ironic, I'm testing out the new 9.0rc candidate but found a ghc panic that already existed in 8.10
07:40:23 <boxscape> oh, except, it's a different panic, interesting
07:40:45 <boxscape> oh no never mind it's the same panic
07:46:18 kenran joins (~kenran@87.123.205.142)
07:53:54 × loller_ quits (uid358106@gateway/web/irccloud.com/x-etlpbnyndplofboo) (Quit: Connection closed for inactivity)
07:54:33 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
07:55:03 mp___ joins (~mp@hell.cx)
07:57:07 Vulfe joins (~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d)
08:00:09 sgibber2018 joins (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
08:01:51 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:795a:c9c3:895a:a14d) (Ping timeout: 268 seconds)
08:03:51 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
08:04:36 Vulfe joins (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
08:05:26 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
08:05:48 × coot quits (~coot@37.30.60.60.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
08:08:45 × da39a3ee5e6b4b0d quits (~da39a3ee5@183.88.111.61) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:09:12 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 260 seconds)
08:15:31 da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-183.88.111-61.dynamic.3bb.co.th)
08:18:36 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
08:19:42 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
08:20:21 × Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection)
08:20:37 Kaiepi joins (~Kaiepi@47.54.252.148)
08:24:39 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
08:27:13 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 264 seconds)
08:30:27 × sgibber2018 quits (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
08:31:11 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
08:32:03 × suriro quits (~suriro@178.239.168.171) (Remote host closed the connection)
08:32:56 × _noblegas quits (uid91066@gateway/web/irccloud.com/x-fnxlplogleuwxwft) (Quit: Connection closed for inactivity)
08:33:42 cfricke joins (~cfricke@unaffiliated/cfricke)
08:33:42 <Kronic> I seen linear types went into GHC 9, seems very interesting and I get it, just can't think of many use cases off the top of my head
08:35:44 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 272 seconds)
08:36:51 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
08:37:49 <arahael> Kronic: In a sentence, can you explain what they are?
08:40:08 <Kronic> Restricted to one sentence, I guess it's a type that is evaluated once? In the docs I read I remember that they used the term consumed, but I'm assumming that meant something in the order of evaluated
08:40:23 <Kronic> I guess you can go from a to b, but not b back to a ?
08:42:02 <idnar> `if s == Just "pending" || isNothing s …` I don't like this somehow.
08:42:25 <arahael> Kronic: Hmm, yes... That does seem fairly fringe.
08:42:56 <Kronic> Oh, if you were asking for an explanation of them from me then I'm not the guy to ask, https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0111-linear-types.rst they've a proposal here if you wanna read it
08:45:55 <arahael> It's intriguing... But ultimately beyond me.
08:46:25 <Kronic> They've some good motivational examples there, I'm sure someone here more knowledgeable would explain it if you had a more specific question :)
08:52:22 acidx1 joins (~acidx@185.163.110.125)
08:57:20 <arahael> It seems well written, I'm sure I should put some effort into reading it properly, then I might have some sensible questions. :)
08:57:31 <arahael> But right now I'm thoroughly in holday mode. :(
09:01:50 × mp___ quits (~mp@hell.cx) (Ping timeout: 264 seconds)
09:02:38 Hatsue[m] joins (berbermanm@gateway/shell/matrix.org/x-rvoesmgeaopbcbkh)
09:03:00 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
09:03:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
09:04:54 × crblmr quits (~carbolyme@matrix.dropacid.net) (Ping timeout: 260 seconds)
09:06:28 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
09:07:15 × da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-183.88.111-61.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:07:23 crblmr joins (~carbolyme@matrix.dropacid.net)
09:07:44 ADG1089__ joins (~aditya@223.235.213.117)
09:08:24 son0p joins (~son0p@181.58.39.182)
09:08:35 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
09:11:33 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
09:13:28 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
09:14:44 ADG1089__ joins (~aditya@223.235.213.117)
09:15:56 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
09:17:02 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
09:18:01 × iqubic quits (~user@c-67-171-38-72.hsd1.wa.comcast.net) (Ping timeout: 265 seconds)
09:18:25 b4er joins (~b5er_@91.193.4.138)
09:19:44 ADG1089__ joins (~aditya@223.235.213.117)
09:20:30 × heatsink quits (~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219) (Remote host closed the connection)
09:20:35 × landonf quits (landonf@mac68k.info) (Excess Flood)
09:21:01 landonf joins (landonf@mac68k.info)
09:22:46 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 246 seconds)
09:23:10 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8)
09:24:04 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
09:25:11 ADG1089__ joins (~aditya@223.235.213.117)
09:26:37 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
09:29:34 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
09:31:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
09:32:07 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
09:33:35 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-iakwekdkzgcrclln) (Quit: Connection closed for inactivity)
09:35:52 × crblmr quits (~carbolyme@matrix.dropacid.net) (Ping timeout: 256 seconds)
09:36:03 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
09:37:55 crblmr joins (~carbolyme@matrix.dropacid.net)
09:40:00 ADG1089__ joins (~aditya@223.235.213.117)
09:40:11 iqubic joins (~user@2601:602:9500:4870:b553:c156:aded:724d)
09:48:11 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
09:50:16 ADG1089__ joins (~aditya@223.235.213.117)
09:51:07 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 246 seconds)
09:51:16 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
09:53:29 Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com)
09:53:31 ADG1089__ joins (~aditya@223.235.213.117)
09:55:02 mp___ joins (mp@hell.cx)
09:58:31 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
09:58:52 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
10:02:15 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
10:03:41 berberman_ joins (~berberman@unaffiliated/berberman)
10:04:23 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
10:04:47 × sw1nn quits (~sw1nn@2a00:23c6:2385:3a00:21b2:5ddc:6b14:f7c0) (Ping timeout: 258 seconds)
10:04:58 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
10:05:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
10:07:27 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:09:55 fendor joins (~fendor@77.119.128.173.wireless.dyn.drei.com)
10:10:13 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-xprnzzrqpfxzghyi) (Quit: Connection closed for inactivity)
10:12:07 <idnar> :t \f v -> do x <- readTVar v; x' <- f v; writeTVar v x'
10:12:09 <lambdabot> error:
10:12:09 <lambdabot> Variable not in scope: readTVar :: t -> m a0
10:12:09 <lambdabot> error:
10:13:51 <idnar> :t \f v -> do x <- Control.Concurrent.STM.TVar.readTVar v; x' <- f v; Control.Concurrent.STM.TVar.writeTVar v x'
10:13:53 <lambdabot> (GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM a) -> GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM ()
10:14:19 <idnar> :t \f v -> do x <- Control.Concurrent.STM.TVar.readTVar v; x' <- f x; Control.Concurrent.STM.TVar.writeTVar v x'
10:14:20 <lambdabot> (a -> GHC.Conc.Sync.STM a) -> GHC.Conc.Sync.TVar a -> GHC.Conc.Sync.STM ()
10:16:06 <idnar> @hoogle (a -> STM a) -> TVar a -> STM ()
10:16:07 <lambdabot> Control.Concurrent.Async.Lifted mapConcurrently_ :: (Foldable t, MonadBaseControl IO m) => (a -> m b) -> t a -> m ()
10:16:08 <lambdabot> Control.Concurrent.Async.Lifted.Safe mapConcurrently_ :: (Foldable t, MonadBaseControl IO m, Forall (Pure m)) => (a -> m b) -> t a -> m ()
10:16:08 <lambdabot> Prelude mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
10:16:46 Franciman joins (~francesco@host-95-250-152-231.retail.telecomitalia.it)
10:16:51 __monty__ joins (~toonn@unaffiliated/toonn)
10:17:38 sw1nn joins (~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0)
10:20:51 heatsink joins (~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219)
10:22:40 heatsink_ joins (~heatsink@2600:1700:bef1:5e10:7885:6416:3686:a90b)
10:25:42 × heatsink quits (~heatsink@2600:1700:bef1:5e10:c4d1:58bf:ee47:d219) (Ping timeout: 260 seconds)
10:26:33 Juviee joins (2ebf899a@46.191.137.154)
10:26:48 kuribas joins (~user@ptr-25vy0i7u8xzr2adyh2i.18120a2.ip6.access.telenet.be)
10:27:27 × heatsink_ quits (~heatsink@2600:1700:bef1:5e10:7885:6416:3686:a90b) (Ping timeout: 260 seconds)
10:28:48 jamm joins (~jamm@unaffiliated/jamm)
10:32:18 <Juviee> Hello there! I can't solve one simple task. While using list comprehensions with predicates, I can use as predicate x `mod` 3 == 0 condition, but only if in main body of list comprehension I use integer conversions. When I try to multiply body to floating-point number, It doesnt work, and compiler complains on predicate. So I tried to modify
10:32:19 <Juviee> predicate to ( ( floor x ) mod 3) == 0, but then compiler thinks I try to put in "floor" function three arguments, despite I used brackets. What can I do, instead of bypassing this problem with stepped by three interval or smth?
10:33:10 inkbottle joins (~inkbottle@aaubervilliers-654-1-73-208.w86-212.abo.wanadoo.fr)
10:33:22 <Juviee> Like: [x * 2 | x <- [1 .. 45], x `mod` 3 == 0] -- works, [x * 2 * 2.74 | x <- [1 .. 45], x `mod` 3 == 0]
10:33:28 <Juviee> and second don't work
10:33:43 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:34:31 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Ping timeout: 246 seconds)
10:34:34 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
10:37:15 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
10:37:26 <kuribas> Juviee: you cannot combine float and int operations.
10:37:35 <kuribas> Juviee: you need to cast to float first
10:37:39 <kuribas> :t realToFrac
10:37:41 <lambdabot> (Real a, Fractional b) => a -> b
10:37:49 <kuribas> > realToFrac (1::Int)
10:37:51 <lambdabot> 1.0
10:38:22 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
10:38:35 <kuribas> > [realToFrac x * 2 * 2.74 | x <- [1 .. 45], x `mod` 3 == 0]
10:38:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
10:38:37 <lambdabot> [16.44,32.88,49.32000000000001,65.76,82.2,98.64000000000001,115.080000000000...
10:42:29 <__monty__> Juviee: Also, you're missing the backticks around mod in the second instance, which changes how the expression is parsed.
10:44:05 <Kronic> Btw, you can do [3,6..45] instead of using mod at all
10:47:42 rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-jcdseavtxziunszu)
10:49:42 jamm_ joins (~jamm@unaffiliated/jamm)
10:52:14 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
10:55:11 <pie_> how can I convert a ForeignPtr to a Ptr? I want to pass some things from c code back to c code
10:55:21 <pie_> (also I dont know how to ensure the finalizers dont get run)
10:55:36 ADG1089__ joins (~aditya@223.235.213.117)
10:55:47 <pie_> (I'm using someone else's library)
10:56:43 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
10:56:47 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
11:01:56 × mp___ quits (mp@hell.cx) (Ping timeout: 265 seconds)
11:02:11 <ski> > [all (== "pending") ms | ms <- [Just "pending",Just "done",Nothing]] -- idnar ?
11:02:14 <lambdabot> [True,False,True]
11:02:58 <xerox_> :t all
11:02:59 <lambdabot> Foldable t => (a -> Bool) -> t a -> Bool
11:04:08 michalz joins (~user@185.246.204.93)
11:05:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:05:35 Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi)
11:05:51 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
11:05:53 <pie_> ok i found this https://hackage.haskell.org/package/base-4.14.1.0/docs/Foreign-ForeignPtr-Unsafe.html#v:unsafeForeignPtrToPtr , now the question is I dont quite understand how to make the last occurence safe when leaving the haskell code
11:06:15 <idnar> ski: ended up with `case s of Just x | x /= "pending" -> … ; _ -> …`
11:06:44 <ski> dyeplexer : the rationale is to think of combining the sequence of elements, one at the time, with an accumulator state / rest summary, either coming from the left, or coming from the right
11:07:05 <ski> idnar : sure, if you find it clearer
11:12:51 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
11:12:56 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
11:13:39 kritzefitz joins (~kritzefit@212.86.56.80)
11:16:41 × acidx1 quits (~acidx@185.163.110.125) (Remote host closed the connection)
11:16:41 <pie_> also the code uses https://hackage.haskell.org/package/singletons-2.7/docs/Data-Singletons-TH.html#v:genSingletons , and I have no idea how to fix this:
11:16:49 <dyeplexer> ski: yes. But I think comes with the trade-off of uniformity. I would have to look up the type definition of the functions again an again to get it right each time I forget about this while I'm new to Haskell and haven't "instilled" this thought process in my brain, or forget about Haskell and pick it up again later. That's why I had the question in the first place.
11:17:25 <dyeplexer> *but I think this
11:17:26 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
11:19:21 <dyeplexer> Maybe this is a non-issue in the long run because I might have to look up the type definition anyway. idk at the moment,
11:22:33 <pie_> actually, let me change the question, https://bpa.st/KPTA the type that is in the error is different from the type GHCi gives???
11:22:33 <pie_> > :t translationUnitCursor
11:22:33 <pie_> translationUnitCursor :: TranslationUnit -> Cursor
11:22:35 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’
11:24:55 <pie_> how do i even debug this, im throwing :info :k and :t haphazardly at stuff and its not getting any clearer
11:25:09 <pie_> hell, CursorK doesnt even seem to be in scope
11:25:28 usr25 joins (~usr25@unaffiliated/usr25)
11:29:08 <tomsmeding> pie_: what's Cursor defined as
11:29:44 <pie_> > :t Cursor
11:29:45 <pie_> Cursor :: Leaf TranslationUnit CXCursor -> Cursor
11:29:46 <pie_> tomsmeding: one sec
11:29:47 <lambdabot> <hint>:1:1: error: <hint>:1:1: error: parse error on input ‘:’
11:30:07 <tomsmeding> also ghc doesn't always try to qualify stuff in error messages, so the fact that CursorK isn't in scope in ghci doesn't really say much
11:30:26 <pie_> tomsmeding: newtype Cursor = Cursor (Leaf TranslationUnit CXCursor) deriving (Child, Clang)
11:30:50 <pie_> (I dont think I found cursork in the source either, its probably related to the genSingletons stuff)
11:31:30 <pie_> this is the library btw https://hackage.haskell.org/package/clang-pure
11:31:51 <pie_> i had to move the internal things to exposed in the cabal to poke at it though
11:32:31 <tomsmeding> CursorK is just a newtype wrapper around Cursor, apparently: https://hackage.haskell.org/package/clang-pure-0.2.0.6/docs/src/Language.C.Clang.Cursor.Typed.html#CursorK
11:32:43 knupfer joins (~Thunderbi@200116b82c2ab400883930fffecfb804.dip.versatel-1u1.de)
11:32:44 × knupfer quits (~Thunderbi@200116b82c2ab400883930fffecfb804.dip.versatel-1u1.de) (Client Quit)
11:33:01 knupfer joins (~Thunderbi@87.123.206.212)
11:33:30 <pie_> oh, i was only grepping a subdirectory *facepalm*
11:33:41 <tomsmeding> pie_: there are two translationUnitCursor definitions with different types: https://tomsmeding.com/ss/get/tomsmeding/n72aqp
11:33:45 <tomsmeding> that might be your issue
11:34:00 <tomsmeding> hint: the 's' key on a haddocks page opens a search box ;)
11:34:13 × son0p quits (~son0p@181.58.39.182) (Quit: leaving)
11:34:15 <pie_> yeah, thanks ;_;
11:37:26 spake joins (~spake@178.162.204.214)
11:37:26 <Kronic> Need some cabal help: I have library definition which exports 3 or 4 related modules, All listed under a subfolder in hs-source-dirs: src/Lib, e.g. one is called Lib.A -- I have named them in the module statement Lib.A and the file is called A.hs located inside that Lib folder, but for some reason it cannot find it. Does the name have to be the same or how do achieve this naming scheme like I see other libraries use ?
11:37:50 <pie_> tomsmeding: are you able to help maybe with my finalizer question:?
11:38:20 <pie_> I dont know how this is supposed to help, if I'm returning from haskell permanently https://hackage.haskell.org/package/base-4.14.1.0/docs/Foreign-ForeignPtr-Safe.html#v:touchForeignPtr
11:38:26 <tomsmeding> pie_: is that about ForeignPtr's? I have absolutely no idea how they work :D
11:38:37 <pie_> ok xD
11:39:12 <tomsmeding> Kronic: hs-source-dirs: src
11:39:15 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
11:39:33 <tomsmeding> if you use src/Lib as the source directory, then the file has relative path A.hs, meaning it gets module name A, not Lib.A
11:41:42 <Kronic> Ahh that makes sense, and is easier. Thank you tom
11:43:53 <pie_> i mean, how would i even theoretically solve this
11:44:32 <pie_> i need to somehow tell haskell that a variable will be live even though it will never actually be returned to, because the c++ is calling haskell, not the other way around
11:44:58 <Kronic> What's your use case ?
11:48:45 <pie_> i want to test some cpp that consumes a pointer to something
11:48:57 <pie_> that somehting is a bunch of stuff already implemented on the haskell side
11:49:06 <pie_> so I want my cpp program to get it from haskell
11:49:37 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
11:50:01 <Kronic> Hmm, well if you're considering FFI there is probably good reason, but have you considered just sending it over the wire or something? It'll be a lot less painful I would imagine
11:51:09 <pie_> well its a pointer into clang stuff managed by the haskell code
11:51:18 <pie_> dont think i can serialize that :P
11:51:37 eruiucuiviucuiv joins (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162)
11:52:08 <pie_> actually, bitonic, ping? 'xD
11:53:07 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
11:53:09 <idnar> @hoogle (Void, Void) -> Void
11:53:10 <lambdabot> Sound.Tidal.Utils delta :: Num a => (a, a) -> a
11:53:10 <lambdabot> DSP.Basic norm2sqr :: Num a => (a, a) -> a
11:53:10 <lambdabot> Prelude fst :: (a, b) -> a
11:53:55 <pie_> this sounds like what i want blog.ezyang.com/2010/07/managing-foreign-pointers-effectively/ " you can use a StablePtr to keep your ForeignPtr from ever being garbage collected"
11:54:16 <pie_> kind of makes sense if im interpreting this correctly, i can just wrap the foreignptr in a stableptr?
11:55:04 mp___ joins (mp@hell.cx)
11:55:39 Alleria joins (~textual@mskresolve-a.mskcc.org)
11:56:02 Alleria is now known as Guest21562
11:58:00 <idnar> @hoogle Either Void Void -> Void
11:58:01 <lambdabot> Data.Either.Utils fromEither :: Either a a -> a
11:58:01 <lambdabot> Data.Either.Extra fromEither :: Either a a -> a
11:58:01 <lambdabot> Extra fromEither :: Either a a -> a
11:59:55 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 246 seconds)
12:02:24 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
12:02:52 × Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
12:03:54 Feuermagier joins (~Feuermagi@213.178.26.41)
12:06:16 Vulfe joins (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
12:09:01 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
12:09:28 <pie_> oh cool , i got it to compile, lets see if it crashes
12:09:38 <pie_> cool i got a pointer :D
12:09:53 <ski> dyeplexer : yes, it's not obviously the only sensible way to have it
12:09:57 <ski> SML has it as
12:10:07 <ski> val foldl : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
12:10:13 <ski> val foldr : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
12:10:19 <ski> while O'Caml has
12:10:25 <ski> val fold_left : ('b -> 'a -> 'b) -> ('b -> 'a list -> 'b)
12:10:31 <ski> val fold_right : ('a -> 'b -> 'b) -> ('a list -> 'b -> 'b)
12:10:50 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 264 seconds)
12:12:06 <dyeplexer> I see
12:12:13 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
12:12:37 <ski> so with SML, they've the same signature, so you can just swap one out for the other (one could debate whether that's a good thing). it does give you that `foldl f z (rev xs)' is equal to `foldr f z xs', though
12:13:05 <ski> while the O'Caml ones go with the same parameter ordering for the callback as the Haskell ones
12:13:11 <ski> @type foldl
12:13:12 <lambdabot> Foldable t => (b -> a -> b) -> b -> t a -> b
12:13:15 <ski> @type foldr
12:13:17 <lambdabot> Foldable t => (a -> b -> b) -> b -> t a -> b
12:13:38 heatsink joins (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
12:13:52 × byorgey quits (~byorgey@155.138.238.211) (Quit: Lost terminal)
12:14:18 <ski> while also swapping the order of the list and right-most / initial value, in the `fold_right' case. this means that one can compose them with themselves, like
12:14:40 <ski> val fold_left o fold_left : ('b -> 'a -> 'b) -> ('b -> 'a list list -> 'b)
12:14:58 <ski> val fold_right o fold_right : ('a -> 'b -> 'b) -> ('a list list -> 'b -> 'b)
12:14:58 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:15:01 <pie_> now to figure out how to build this thing...
12:16:10 <ski> for Haskell, to do that, you'd do
12:16:19 <ski> @type foldl . foldl
12:16:20 <lambdabot> (Foldable t1, Foldable t2) => (b -> a -> b) -> b -> t1 (t2 a) -> b
12:16:22 <ski> but
12:16:39 <ski> @type foldr . flip . foldr
12:16:40 <lambdabot> (Foldable t1, Foldable t2) => (a -> b -> b) -> b -> t1 (t2 a) -> b
12:18:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds)
12:20:12 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
12:21:41 <ski> dyeplexer : so there's three different positives here, (a) mnemonic of "injecting" the initial value either from the left, or from the right (Haskell,O'Caml); (b) same callback signature, making it easier to state relation between the two (SML); (c) being able to self-compose the folds (O'Caml. Haskell could have had this, if the initial value and list parameters were swapped)
12:22:12 Torro joins (Torro@gateway/vpn/protonvpn/torro)
12:22:27 <ski> (a) is inconsistent with (b), can't have both. btw, (a) is what causes the following to keep the list element ordering in the expression :
12:22:43 <ski> > foldl f z [a,b,c,d]
12:22:46 <lambdabot> f (f (f (f z a) b) c) d
12:22:47 <ski> > foldr f z [a,b,c,d]
12:22:50 <lambdabot> f a (f b (f c (f d z)))
12:23:09 <ski> > foldl (**) z [a,b,c,d]
12:23:12 <lambdabot> (((z**a)**b)**c)**d
12:23:28 <ski> > foldr (/) z [a,b,c,d]
12:23:31 <lambdabot> a / (b / (c / (d / z)))
12:27:17 Entertainment joins (~entertain@104.246.132.210)
12:28:36 ADG1089__ joins (~aditya@223.235.213.117)
12:30:43 <Squarism> Doesnt micro-lens allow me to auto-create Prism's for my sum types? How do they mean one should create a Traversal involving sum type constructors?
12:33:06 <dyeplexer> Got it. Thanks.
12:33:08 <ski> (i guess SML could also have made their self-composable. but they decided to make the callback tupled, while accepting the initial value and the list curriedly. presumably the former is because an expression like `op +' (corresponding to `(+)' in Haskell), is tupled. generally O'Caml tends to prefer curried style more, while many standard library operations in SML are tupled. i think because tupled were more
12:33:10 × Entertainment quits (~entertain@104.246.132.210) ()
12:33:14 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
12:33:14 <ski> efficient in existing implementations back then in SML, while O'Caml had efficient curried ones from early on at least)
12:34:09 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
12:34:18 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
12:34:33 Entertainment joins (~entertain@104.246.132.210)
12:34:39 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
12:34:57 × ezzieyguywuf quits (~Unknown@unaffiliated/ezzieyguywuf) (Remote host closed the connection)
12:36:00 <int-e> That's the cost of having a spine :)
12:36:30 <ski> (although some common ones, like e.g. `map', and `foldl' and `foldr' themselves (but not the callback parameter) are still curried, probably because it's just so useful to e.g. be able to do `map (map f) xss' or `map (foldl f z) xss', &c.)
12:40:52 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
12:41:35 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
12:43:25 geekosaur joins (ac3a8c6e@172.58.140.110)
12:45:36 × eruiucuiviucuiv quits (dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Quit: Connection closed)
12:47:52 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Quit: andreas303)
12:48:02 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds)
12:51:46 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
12:52:34 ADG1089__ joins (~aditya@223.235.213.117)
12:53:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
12:54:57 Sheilong joins (uid293653@gateway/web/irccloud.com/x-bcyqpaqbievullib)
12:55:00 mirai67 joins (~serijima7@5.76.196.62)
12:55:16 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 240 seconds)
12:59:43 madjest62 joins (~Android@31-161-159-42.mobile.kpn.net)
13:01:27 × mp___ quits (mp@hell.cx) (Ping timeout: 260 seconds)
13:03:42 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8)
13:04:41 mirai67 parts (~serijima7@5.76.196.62) ("Leaving")
13:14:14 × Guest21562 quits (~textual@mskresolve-a.mskcc.org) (Quit: Textual IRC Client: www.textualapp.com)
13:14:27 heatsink joins (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
13:18:55 Alleria joins (~textual@zrcout.mskcc.org)
13:18:57 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 260 seconds)
13:19:18 Alleria is now known as Guest38620
13:20:51 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:23:12 <Juviee> kuribas: Thanks a lot for help! I though I need to mess with predicate, and solution were in a body. That's explains a lot!
13:25:10 × knupfer quits (~Thunderbi@87.123.206.212) (Ping timeout: 272 seconds)
13:25:13 ezzieyguywuf joins (~Unknown@unaffiliated/ezzieyguywuf)
13:25:50 × jneira quits (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Quit: Connection closed)
13:25:52 <Juviee> Kronic: thank you, I already did that, but it was important for me to solve the problem this way, to know types better
13:30:13 × rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-jcdseavtxziunszu) (Quit: Connection closed for inactivity)
13:31:05 <pie_> tomsmeding: thanks again for getting me unstuck :D looks like im makign progress , i have my cpp code executing the haskell now and it gets the pointer succesfully, not sure if the pointer is actually good yet but the information is flowing.
13:31:37 × cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 246 seconds)
13:34:53 Shiranai joins (beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143)
13:35:32 <Shiranai> Hello, silly question, is there some way to tell stack to install a "global", default ghc and ghci? I'm on Windows if that matters
13:35:59 <geekosaur> no, it wants to retain full control
13:36:09 cyphase joins (~cyphase@unaffiliated/cyphase)
13:36:14 son0p joins (~son0p@181.136.122.143)
13:36:33 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
13:37:18 <Shiranai> thanks, I want to use the LSP for haskell in vscode, so there's no way? There doesn't seem to be any way for me to point to the correct binaries inside stack
13:38:15 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
13:38:39 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
13:39:42 <geekosaur> I thought vscode knew about stack. But I don't know details
13:42:26 ADG1089__ joins (~aditya@223.235.213.117)
13:45:00 pavonia joins (~user@unaffiliated/siracusa)
13:45:10 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
13:46:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Reconnecting)
13:46:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
13:49:18 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
13:49:57 christo joins (~chris@81.96.113.213)
13:53:30 × spake quits (~spake@178.162.204.214) (Remote host closed the connection)
13:54:32 × christo quits (~chris@81.96.113.213) (Ping timeout: 260 seconds)
13:55:01 mp___ joins (mp@hell.cx)
14:00:18 frankdmartinez joins (~frankdmar@5.181.234.188)
14:01:07 Vulfe joins (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
14:01:32 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 260 seconds)
14:02:58 worc3131 joins (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20)
14:03:51 jmchael joins (~jmchael@81.174.205.210)
14:04:49 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
14:05:51 <tomsmeding> Shiranai: it might be worth trying to write a hie.yaml
14:06:22 <tomsmeding> see e.g. https://github.com/mpickering/hie-bios#stack
14:06:47 <tomsmeding> (hie-bios is the compiler detection engine underlying ghcide, which underlies HLS, which is used by the vscode plugin :D )
14:06:57 <ph88_> whats the proper key combination to get ghci out of an infinite loop ?
14:07:04 <tomsmeding> ctrl-C?
14:07:11 <Shiranai> ctrl-d would kill the process
14:07:19 <geekosaur> ctrl-c
14:07:29 <tomsmeding> pie_: nice! good luck!
14:07:34 <geekosaur> ctrl-d sends end-of-file which is unlikely to do anything here
14:07:49 <ph88_> hhmm ok .. i use git bash terminal on windows and it responds kind of funky after a ctrl-c
14:07:51 <Shiranai> o mb then
14:08:02 <__monty__> I've had trouble getting GHCi to stop with ^C too.
14:08:19 <tomsmeding> that might be an interaction with windows
14:08:21 <__monty__> Seems to only work if I'm quick enough to notice the looping.
14:08:27 <__monty__> I'm not on windows.
14:08:34 <geekosaur> sadly, ghc/ghci only checks for it during alloction so a loop that doesn't allocate can't be interrupted
14:08:42 <tomsmeding> does it quit if you ^C twice, __monty__ ?
14:08:47 urodna joins (~urodna@unaffiliated/urodna)
14:08:53 <__monty__> tomsmeding: Not even if I hold down ^C.
14:09:12 <__monty__> Probably running into what geekosaur mentions.
14:09:13 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:41e3:583d:215a:64f8)
14:09:20 <ph88^> thats interesting Geekingfrog
14:09:23 <ph88^> geekosaur,
14:09:29 <ph88^> sorry Geekingfrog :/
14:10:08 hexreel joins (~hr@2600:1700:28e2:14d0:cd7:6aae:18aa:4ec7)
14:10:46 × Rudd0^ quits (~Rudd0@185.189.115.103) (Ping timeout: 272 seconds)
14:11:37 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
14:12:19 <Shiranai> tomsmeding: checked the hie-bios stuff but I don't think ghcide can be configured as such sadly http://prntscr.com/wdofbj it seems it it's another alternative somehow, and there's no vscode way to link to the hie.yaml, I think. If I were to write it in the installation folder I'd probably lose it after an LSP update
14:12:45 <merijn> Shiranai: ghcide *definitely* uses hie-bios
14:12:46 <Shiranai> guess I'll just install the haskell platform too then
14:13:02 <tomsmeding> Shiranai: you put that hie.yaml file in your project folder (next to the stack.yaml file); it will be picked up automatically
14:13:14 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:b472:19b8:2fa3:f30b) (Ping timeout: 264 seconds)
14:13:20 <tomsmeding> possibly you need to restart haskell-language-server, which perhaps means restarting vscode (don't know)
14:13:25 <lassulus> hi, my ByteString shows umlauts like this: "f\195\188nfgr\195\182\195\159ten" is there a way to convert them to their correct representation inside a text? I tried decodeUtf8 but that just converted them to "f\252nfgr\246\223ten"
14:13:30 <ph88^> both git bash and powershell have problems with ghci :*(
14:13:31 DavidEichmann joins (~david@98.27.93.209.dyn.plus.net)
14:13:48 <merijn> lassulus: If you decode to Text and see \252 your problem is "applying show to text"
14:14:03 <merijn> > Data.Text.pack "ü"
14:14:05 <lambdabot> error:
14:14:06 <lambdabot> Not in scope: ‘Data.Text.pack’
14:14:06 <lambdabot> No module named ‘Data.Text’ is imported.
14:14:08 <geekosaur> lassulus, that has nothing to do with converion, it's what show does
14:14:08 <merijn> hmm
14:14:15 <merijn> > "ü"
14:14:17 <lambdabot> "\252"
14:14:22 <merijn> > text "ü"
14:14:24 <lambdabot> ü
14:14:30 <merijn> See also in yahb
14:14:34 <merijn> % print "ü"
14:14:35 <yahb> merijn: "\252"
14:14:41 <merijn> % putStrLn "ü"
14:14:41 <yahb> merijn: ü
14:14:46 <Shiranai> I ohhh my bad, I wasn't using the yamls in my project folder, thought they were meant to be in the installation folder, thanks
14:15:02 heatsink joins (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
14:15:07 × thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection)
14:15:29 <Shiranai> ph88^: what problems you having? I'm using the normal cmd and it's fine
14:16:13 thunderrd joins (~thunderrd@183.182.111.131)
14:16:25 × olligobber quits (~olligobbe@unaffiliated/olligobber) (Ping timeout: 246 seconds)
14:17:09 ADG1089__ joins (~aditya@223.235.213.117)
14:19:37 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 260 seconds)
14:20:19 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
14:21:56 christo joins (~chris@81.96.113.213)
14:22:42 Guest20891 joins (~AntiSpamM@195.140.213.38)
14:23:36 ph88_ joins (~ph88@2a02:8109:9e00:7e5c:51f9:13ec:811d:93d3)
14:27:12 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:41e3:583d:215a:64f8) (Ping timeout: 260 seconds)
14:27:13 × madjest62 quits (~Android@31-161-159-42.mobile.kpn.net) (Read error: Connection reset by peer)
14:27:41 × thunderrd quits (~thunderrd@183.182.111.131) (Remote host closed the connection)
14:27:59 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
14:28:48 thunderrd joins (~thunderrd@183.182.111.131)
14:31:25 × Torro quits (Torro@gateway/vpn/protonvpn/torro) (Read error: Connection reset by peer)
14:31:27 christo joins (~chris@81.96.113.213)
14:31:43 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
14:39:23 × darjeeling_ quits (~darjeelin@122.245.217.190) (Ping timeout: 256 seconds)
14:40:05 × usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 240 seconds)
14:40:08 × geekosaur quits (ac3a8c6e@172.58.140.110) (Remote host closed the connection)
14:42:41 usr25 joins (~usr25@unaffiliated/usr25)
14:43:51 × ke4pcx quits (~ke4pcx@024-158-093-129.res.spectrum.com) ()
14:44:59 ke4pcx joins (~ke4pcx@024-158-093-129.res.spectrum.com)
14:45:11 × ke4pcx quits (~ke4pcx@024-158-093-129.res.spectrum.com) (Client Quit)
14:46:19 phasespace_ joins (~sar@89-162-33-21.fiber.signal.no)
14:46:32 ke4pcx joins (~ke4pcx@024-158-093-129.res.spectrum.com)
14:46:56 × phasespace quits (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 240 seconds)
14:47:40 ph88^ joins (~ph88@2a02:8109:9e00:7e5c:61d8:4dbb:1763:5965)
14:47:54 seliopou_ joins (seliopou@entropy.tmok.com)
14:48:10 × ke4pcx quits (~ke4pcx@024-158-093-129.res.spectrum.com) (Client Quit)
14:48:14 × seliopou quits (seliopou@entropy.tmok.com) (Read error: Connection reset by peer)
14:48:30 ke4pcx joins (~ke4pcx@024-158-093-129.res.spectrum.com)
14:48:54 × seliopou_ quits (seliopou@entropy.tmok.com) (Client Quit)
14:49:10 lmk joins (57b15d95@p57b15d95.dip0.t-ipconnect.de)
14:50:01 <kuribas> is there an easy way to get a portable binary? Like a docker image with ghc and alpine linux?
14:50:03 seliopou joins (seliopou@entropy.tmok.com)
14:50:41 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
14:51:24 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
14:51:31 × ph88_ quits (~ph88@2a02:8109:9e00:7e5c:51f9:13ec:811d:93d3) (Ping timeout: 258 seconds)
14:52:07 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
14:52:26 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
14:52:42 darjeeling_ joins (~darjeelin@115.215.41.150)
14:52:55 <merijn> kuribas: full static (so Alpine for musl toolchain) executable should work across any linux distro with a binary compatible kernel (which, given linux' conservative changes in kernel should be "most of them")
14:54:09 <kuribas> merijn: but how do I get a ghc for alpine with musl?
14:55:24 Varis joins (~Tadas@unaffiliated/varis)
14:55:32 <exarkun> is ghc known to work well with alpine/musl? I know some other language runtimes run into problems with divergence between musl and glibc behavior.
14:56:26 coffeeturtle joins (~coffeetur@cpc103420-donc13-2-0-cust24.17-1.cable.virginm.net)
14:56:58 <Rembane> A couple of years ago there were known bugs in the interaction between GHC and Alpine.
14:57:32 × phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
14:57:36 × coffeeturtle quits (~coffeetur@cpc103420-donc13-2-0-cust24.17-1.cable.virginm.net) (Client Quit)
14:58:27 jamm joins (~jamm@unaffiliated/jamm)
14:59:01 × mp___ quits (mp@hell.cx) (Ping timeout: 264 seconds)
14:59:51 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
15:00:40 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
15:01:24 Tops2 joins (~Tobias@dyndsl-095-033-019-027.ewe-ip-backbone.de)
15:01:37 phaul joins (~phaul@ruby/staff/phaul)
15:01:40 × cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 265 seconds)
15:03:22 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
15:03:39 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 268 seconds)
15:04:10 <exarkun> I thought it was allowed to incompletely initialize a record type and then fill in the missing fields later but I get a runtime error "Missing field in record construction ...". Did I misunderstand or does this just mean I tried to use one of the uninitialized fields?
15:04:32 <exarkun> Also is there a better pattern for incrementally constructing a value than this?
15:08:28 <Kronic> Depends on the case I guess
15:10:05 <kuribas> exarkun: probably you used one of the fields
15:10:20 <kuribas> exarkun: but incompletely initialized fields are a code smell.
15:10:31 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
15:10:47 <kuribas> exarkun: you can use Maybe if the field can be empty
15:11:30 <kuribas> exarkun: or break down the record into parts that you assemble later.
15:11:41 <exarkun> All the fields will eventually be required to have a value
15:11:54 <exarkun> And there's an annoyingly large number of them
15:12:27 <kuribas> exarkun: if you need to leave them uninitialized, better to use defaults then.
15:12:36 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Client Quit)
15:12:46 <Kronic> How many fields are there out of interest ?
15:12:55 <exarkun> 11 right now, not sure if I missed any ... although trying to figure out where I accessed this particularly field, I've realized that maybe I have to initialize all of them with some starting value anyway (and then update them over time rather than giving them their value at one point)
15:13:08 <Kronic> why not just use let in syntax?
15:13:38 <kuribas> or with recordWildCards: let PartialStruct1{..} = getPartial1; PartialStruct2{..} = getPartial2 in CompleteStruct{..}
15:13:44 <exarkun> There are 3 in particular that are annoying and have their value computed over the course of reading an arbitrarily large amount of input
15:14:12 <exarkun> computed separately from each other
15:14:34 <exarkun> meanwhile a couple other fields get used ... although I could probably get away from that
15:14:49 nbloomf joins (~nbloomf@2600:1700:ad14:3020:8d66:925f:69c5:e3bc)
15:15:03 <exarkun> that partial idea might be viable though
15:16:00 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 272 seconds)
15:16:03 × obihann quits (~jhann@142.177.168.17) (Quit: Lost terminal)
15:16:25 pera joins (~pera@unaffiliated/pera)
15:17:04 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
15:19:15 Torro joins (Torro@gateway/vpn/protonvpn/torro)
15:19:45 jneira joins (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180)
15:21:22 × ADG1089__ quits (~aditya@223.235.213.117) (Quit: Konversation terminated!)
15:21:41 × DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...)
15:23:06 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
15:23:08 fendor_ joins (~fendor@77.119.130.207.wireless.dyn.drei.com)
15:25:50 × fendor quits (~fendor@77.119.128.173.wireless.dyn.drei.com) (Ping timeout: 256 seconds)
15:26:07 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
15:26:22 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
15:26:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
15:28:44 christo joins (~chris@81.96.113.213)
15:31:31 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
15:35:51 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8)
15:37:03 Saukk joins (~Saukk@83-148-239-3.dynamic.lounea.fi)
15:38:58 kritzefitz joins (~kritzefit@212.86.56.80)
15:41:48 Vulfe joins (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
15:42:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:42:53 × matryoshka` quits (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
15:44:25 codeAlways joins (uid272474@gateway/web/irccloud.com/x-zlylaysqfazhvjvl)
15:45:21 × Kronic quits (~Kronic___@84.203.96.46) (Read error: Connection reset by peer)
15:45:57 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 260 seconds)
15:48:18 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:48:51 <ph88^> Shiranai, the normal command from the 80ties ? :/
15:48:57 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:49:35 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
15:49:48 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
15:49:57 <Shiranai> yes haha, it's old as hell but does it really matter? I just use it for stack commands lol
15:50:17 <ph88^> lol ok i try
15:50:27 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
15:54:25 × rcdilorenzo quits (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Ping timeout: 240 seconds)
15:55:53 machinedgod joins (~machinedg@24.105.81.50)
15:58:09 cheater joins (~user@unaffiliated/cheater)
16:00:30 aenesidemus joins (~aenesidem@c-73-53-247-25.hsd1.fl.comcast.net)
16:04:26 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:04:37 rcdilorenzo joins (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
16:05:31 Rudd0 joins (~Rudd0@185.189.115.103)
16:09:25 <madjestic> hey guys. Do you know if `massiv` supports mixed types for tuples? Like does it support `[(Int, [Float])]` for example? What would the type signature look like?
16:10:24 × worc3131 quits (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Remote host closed the connection)
16:12:47 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
16:13:14 × lep-delete quits (~lep@94.31.81.93) (Read error: Connection reset by peer)
16:13:43 phasespace joins (~sar@89-162-33-21.fiber.signal.no)
16:14:48 × usr25 quits (~usr25@unaffiliated/usr25) (Remote host closed the connection)
16:15:28 <Shiranai> are guards syntactic sugar? If so, what are they compiling too. Same thing for pattern matching.
16:15:46 × phasespace_ quits (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 246 seconds)
16:16:25 heatsink joins (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
16:17:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
16:17:41 × Torro quits (Torro@gateway/vpn/protonvpn/torro) (Quit: bye)
16:17:53 usr25 joins (~usr25@unaffiliated/usr25)
16:20:26 ADG1089__ joins (~aditya@223.235.213.117)
16:21:25 lep-delete joins (~lep@94.31.81.93)
16:21:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds)
16:21:49 × Saukk quits (~Saukk@83-148-239-3.dynamic.lounea.fi) (Remote host closed the connection)
16:21:54 × michalz quits (~user@185.246.204.93) (Remote host closed the connection)
16:28:15 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:143:ed02:88f3:91f8:f3d8) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:28:32 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
16:29:26 coot joins (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl)
16:30:36 solonarv joins (~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr)
16:31:49 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
16:33:55 kritzefitz joins (~kritzefit@212.86.56.80)
16:35:42 DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
16:35:43 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
16:37:44 ADG1089__ joins (~aditya@223.235.213.117)
16:37:44 <nf> Shiranai: write a simple program and compile it with -ddump-simpl to see what it gets desugared into
16:38:18 <Shiranai> nf: nice, didn't know that one thanks
16:39:56 × Iceland_jack quits (~user@31.124.48.169) (Remote host closed the connection)
16:40:53 × lmk quits (57b15d95@p57b15d95.dip0.t-ipconnect.de) (Remote host closed the connection)
16:41:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:41:15 _noblegas joins (uid91066@gateway/web/irccloud.com/x-iowlmahgyhczxsfi)
16:41:27 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
16:46:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
16:47:31 hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
16:48:31 <tomsmeding> madjestic: I don't think you can have an array element type that includes another array
16:49:03 × hekkaidekapus] quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
16:49:26 <tomsmeding> or maybe I'm wrong
16:50:20 <tomsmeding> madjestic: did you try and did it not work?
16:51:25 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds)
16:52:49 × usr25 quits (~usr25@unaffiliated/usr25) (Read error: Connection reset by peer)
16:53:49 × _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
16:54:17 jamm joins (~jamm@unaffiliated/jamm)
16:55:07 _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net)
17:00:56 Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-100.cust.tzulo.com)
17:01:28 geekosaur joins (42d52137@66.213.33.55)
17:02:33 <Shiranai> Any way to run ghc inside stack with compiler options? Been trying it for a while and can't find that in the docs neither
17:02:49 <Shiranai> (without a whole cabal/stack setup, just a single file)
17:04:28 × kuribas quits (~user@ptr-25vy0i7u8xzr2adyh2i.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
17:05:47 <geekosaur> use -- to separate stack options from ghc options, in stack exec -- ghc ...
17:07:28 ransom joins (~c4264035@8.47.12.52)
17:12:28 chenshen joins (~chenshen@2620:10d:c090:400::5:27de)
17:12:32 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:12:38 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Remote host closed the connection)
17:17:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
17:17:55 heatsink joins (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
17:18:14 bitmapper joins (uid464869@gateway/web/irccloud.com/x-emygrcoqztsqoawx)
17:18:30 <Shiranai> geekosaur: thanks, it worked
17:19:48 × _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Remote host closed the connection)
17:21:05 _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net)
17:21:34 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
17:21:50 shatriff joins (~vitaliish@176-52-216-242.irishtelecom.com)
17:22:14 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 264 seconds)
17:23:04 × pera quits (~pera@unaffiliated/pera) (Quit: leaving)
17:23:24 <dexterfoo> I made a FP expanding brain meme. what do you think? https://i.imgur.com/FvaVFZx.jpg
17:26:59 pera joins (~pera@unaffiliated/pera)
17:29:36 aveltras joins (uid364989@gateway/web/irccloud.com/x-qrhrdryutllrlcmf)
17:32:24 ADG1089__ joins (~aditya@223.235.213.117)
17:32:38 × _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Read error: Connection timed out)
17:32:51 × shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection)
17:32:54 kritzefitz joins (~kritzefit@212.86.56.80)
17:33:03 _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net)
17:34:15 <Shiranai> I've been checking the desugared version of some stuff and saw that pattern matching and guards are just case-of expressions. I can't seem to see what let-in becomes though, it seems that the let expressions just get replaced whenever they appear in the in expression? Wouldn't that cause possible double computations?
17:35:09 <Shiranai> i.e. `let a=myExpensiveComputation(x) in a+a`
17:35:31 <Shiranai> if that's just `myExpensiveComputation(x)+myExpensiveComputation(x)` the function could be computed twice?
17:37:20 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
17:40:24 <monochrom> This is why I would oppose to considering -ddump-simpl as desugaring. The output isn't even a subset of Haskell. It doesn't even have Haskell semantics. It's an entirely different language. (If you hear people say "core", that's the name of this language.)
17:40:55 <monochrom> If anything, -ddump-ds-preopt is the closest to what usually people consider desugaring.
17:43:19 <monochrom> And the particular question "are guards syntax sugar", IMO it belongs to the class of it-doesn't-matter.
17:44:25 <ephemient> `let a = expensive in a + a` doesn't say the computation happens only once; neither does `expensive + expensive` say the computation happens twice
17:44:39 × Anthaas quits (~Anthaas@unaffiliated/anthaas) (Ping timeout: 260 seconds)
17:44:43 <Shiranai> I kinda agree it doesn't matter really but I was asking it because of one I hoped it mattered: what are the minimum syntax that allow me to have full semantics?
17:45:15 Anthaas joins (~Anthaas@unaffiliated/anthaas)
17:45:41 <Shiranai> ephemient: so how could I tell? Just accept there's some weird haskell magic or are there some good rules of thumb?
17:46:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
17:46:36 <ephemient> as far as pure code is concerned, there's no observable difference either way
17:47:04 <monochrom> when you don't observe time and memory spent
17:48:13 <ephemient> in practice, if it's a CAF then GHC will probably float it up to be evaluated once, and if it's not then it probably won't, afaik
17:49:13 afreak joins (~wut@ec2-3-122-177-136.eu-central-1.compute.amazonaws.com)
17:49:49 <Shiranai> ok thanks
17:52:14 <afreak> https://kopy.io/e5lMS#rdTNNczDxdOEh5 how could i speed up this Text-building process ? it seems to be very slow, was faster when i did it with String actually
17:53:09 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
17:53:16 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: Textual IRC Client: www.textualapp.com)
17:55:45 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
17:58:03 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
17:58:21 <monochrom> The Haskell 2010 Report can be interpreted as suggesting one answer to a minimum syntax. For example, it explains guards in terms of if-then-else, and it explains if-then-else in terms of "case ... True-> ... False-> ...". But it does not commit itself to that, it just says "your compiler just has to be indistinguishable from this model".
17:58:39 <monochrom> (indistinguishable when as a black box)
17:59:59 justsomeguy joins (~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b)
17:59:59 × justsomeguy quits (~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) (Changing host)
17:59:59 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
18:00:40 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
18:01:18 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
18:03:02 × hexreel quits (~hr@2600:1700:28e2:14d0:cd7:6aae:18aa:4ec7) (Ping timeout: 260 seconds)
18:03:10 <monochrom> I find myself using "this is syntax sugar for that" as a pedagogic tool only, not as a this-is-the-truth tool.
18:04:01 <monochrom> For example, to explain to a student how and why [1,2,3] matches the pattern x:y:zs, I explain that [1,2,3] is syntax sugar for 1:2:3:[].
18:05:16 <monochrom> This is a useful use of "syntax sugar" because a lot of students can't figure this one out on their own, they need me to spell out "it is secretly 1:2:3:[]".
18:06:10 <dolio> Turning definitions with guards into some other form can be quie complex, though.
18:06:28 <Shiranai> thanks, I hadn't seen it that way but I see now that the property of is-sugar-of is relative to the compiler
18:06:50 ccqw joins (~ccqw@pool-98-113-58-13.nycmny.fios.verizon.net)
18:06:52 carsenal joins (484d31da@static-72-77-49-218.pitbpa.fios.verizon.net)
18:08:03 × coot quits (~coot@37.30.55.141.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
18:08:40 <carsenal> does anyone know if there's any way to get a full arm build of ghc, cabal, and stack?
18:08:59 <carsenal> I'm about to bite the bullet and try to compile ghc from source, so I'd hate to hear there are binaries out there
18:09:08 <dolio> E.G. it is not as simple as saying, "guards turn into this," because guards interact with multi-clause pattern matching definitions.
18:09:15 <monochrom> I agree that since case's pattern matching, even the most basic version, is so general, may as well use it to cover if-then-else and guards. Whether you're theorizing semantics or writing a practical compiler.
18:09:49 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds)
18:10:12 <Shiranai> yeah now I am curious if the four are equivalent, if-then-else, guards, pattern matching and case-of
18:10:22 × ccqw quits (~ccqw@pool-98-113-58-13.nycmny.fios.verizon.net) (Changing host)
18:10:22 ccqw joins (~ccqw@unaffiliated/ccqw)
18:10:50 <exarkun> does https://hoogle.haskell.org/ seem particularly slow to anyone else
18:10:53 <monochrom> But in principle, you can always do the awkward, why-would-you-do-this thing of the reverse explaining or compiling pattern matching in terms of if-then-else, isJust isRight isLeft, and fromJust fromRight fromLeft.
18:11:19 <monochrom> Hell, I have seen academic papers doing that when theorizing ADT. (Annoyed me greatly.)
18:12:12 <Shiranai> exarkun: seems fast as always for me
18:12:26 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:12:39 <monochrom> (All the more annoying because the paper is great otherwise.)
18:13:09 <monochrom> (And was written in this the 21st century of our lord.)
18:13:30 <Shiranai> haha yeah I can see how that works, idk I think of this constantly as my main interest is logic and there's a need for the "minimal" axioms. Maybe something like that for them?
18:13:42 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
18:14:12 <monochrom> (I.e., a pre-1990 paper that explains ADT in terms of predicates and selectors would be normal, back then few people have heard of Haskell or even ML.)
18:15:34 carthia joins (~carthia@gateway/tor-sasl/carthia)
18:16:39 <monochrom> My http://www.vex.net/~trebla/haskell/crossroad.xhtml#philosophy explains why if you're from the logic angle, all the more reason to take case-of as fundamental, because it perfectly matches natural deduction.
18:17:37 × carsenal quits (484d31da@static-72-77-49-218.pitbpa.fios.verizon.net) (Remote host closed the connection)
18:18:39 hexreel joins (~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca)
18:19:08 <exarkun> Shiranai: ty
18:20:36 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
18:22:16 knupfer joins (~Thunderbi@200116b82c2ab400dccd36fffea3f260.dip.versatel-1u1.de)
18:22:41 × knupfer quits (~Thunderbi@200116b82c2ab400dccd36fffea3f260.dip.versatel-1u1.de) (Remote host closed the connection)
18:22:54 knupfer joins (~Thunderbi@200116b82c2ab4001105248f2b33b984.dip.versatel-1u1.de)
18:23:47 heatsink joins (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
18:30:23 ccqw parts (~ccqw@unaffiliated/ccqw) ("Just this.")
18:30:25 ccqw joins (~ccqw@unaffiliated/ccqw)
18:31:13 × Shiranai quits (beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143) (Ping timeout: 246 seconds)
18:31:41 × ccqw quits (~ccqw@unaffiliated/ccqw) (Quit: Just this.)
18:35:29 <Squarism> Im lookin at https://github.com/well-typed/optics . Im unfamiliar with the set of cabal.* files in the root. Im guessing this is some new feature in cabal 3 allowing multimodule compilation?
18:38:18 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
18:42:04 sgibber2018 joins (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
18:43:41 p-core joins (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz)
18:48:12 × orion quits (~orion@unaffiliated/orion) (Ping timeout: 256 seconds)
18:49:57 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
18:50:00 <__monty__> Multi-package I believe. Not sure how new it is.
18:50:03 × carthia quits (~carthia@gateway/tor-sasl/carthia) (Ping timeout: 240 seconds)
18:50:06 <sm[m]> Just https://cabal.readthedocs.io/en/3.4/cabal-project.html files I think Squarism
18:50:24 <sm[m]> serving a similar role to stack.yaml (locking down versions & options)
18:50:42 <Squarism> thanks!
18:51:13 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds)
18:51:17 Lord_of_Life_ is now known as Lord_of_Life
18:51:28 <sm[m]> ah, and in this case declaring all of the local packages' cabal
18:51:29 <sm[m]> files
18:52:20 carthia joins (~carthia@gateway/tor-sasl/carthia)
18:53:38 × frankdmartinez quits (~frankdmar@5.181.234.188) (Quit: frankdmartinez)
18:54:56 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
18:56:10 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
18:56:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:57:35 kderme joins (2eb0d7c7@ppp046176215199.access.hol.gr)
19:01:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
19:03:31 berberman joins (~berberman@unaffiliated/berberman)
19:03:32 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Remote host closed the connection)
19:03:43 <__monty__> sm[m]: Aren't version constraints what *.cabal is for?
19:03:59 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
19:04:14 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
19:04:19 <sm[m]> yes, but usually it defines a range of versions
19:04:31 carsenal joins (~carsenal@static-72-77-49-218.pitbpa.fios.verizon.net)
19:04:54 <sm[m]> sometimes you want to remember or enforce a specific set of versions for everything
19:05:09 <sm[m]> possibly across multiple packages
19:05:51 <sm[m]> one .cabal file deals with only one package
19:06:02 <__monty__> Got it.
19:06:50 × carsenal quits (~carsenal@static-72-77-49-218.pitbpa.fios.verizon.net) (Client Quit)
19:09:05 × knupfer quits (~Thunderbi@200116b82c2ab4001105248f2b33b984.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
19:09:36 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 240 seconds)
19:10:05 heatsink joins (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
19:10:08 <tomsmeding> like package.json vs package-lock.json in the NodeJS world, and Cargo.toml vs Cargo.lock in the Rust world
19:10:25 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
19:10:25 <tomsmeding> kind of, because here the lock file is optional
19:11:00 <sm[m]> isn't there an additional "freeze" file, corresponding to lock files ?
19:12:03 <sm[m]> cabal.project.freeze, created by cabal freeze
19:12:47 <tomsmeding> ah right, that's true
19:13:06 <tomsmeding> but then cabal.project doesn't really have "locking down versions" in its role, does it?
19:13:11 <sm[m]> I forget why you need that as well.. I guess it's convenient to use cabal.project for different things
19:14:02 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-bcyqpaqbievullib) (Quit: Connection closed for inactivity)
19:14:11 <tomsmeding> "package.cabal is for everyone, cabal.project is for your local development setup"?
19:14:20 <sm[m]> I think cabal.project is one of the four "project files" which are combined, and probably it's usually not the one where you lock down versions
19:14:46 <__monty__> Yeah, cabal.project.local is for local changes.
19:15:01 <__monty__> cabal.project is still for everyone in a multi-package project I guess.
19:15:05 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
19:15:11 <sm[m]> the manual says cabal.project.freeze (the output of cabal v2-freeze) and cabal.project.local (the output of cabal v2-configure), which could be improved
19:15:16 <__monty__> The freeze file is probably separate because it's generated by cabal?
19:15:49 <__monty__> Didn't remember cabal.project.local is generated too though.
19:17:15 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
19:17:59 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
19:18:10 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-kavyfortterppjsq)
19:21:05 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
19:22:44 × chenshen quits (~chenshen@2620:10d:c090:400::5:27de) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:23:58 foobar2 joins (89537310@137-83-115-16.starry-inc.net)
19:28:00 × geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds)
19:31:53 <monochrom> "cabal configure" generates cabal.project.local. "cabal freeze" generates cabal.project.freeze.
19:32:12 × hexreel quits (~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
19:32:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:33:42 <monochrom> You are still free to edit them or roll your own. Just be aware that the next "configure" or "freeze" can overwrite them. But! In the case of "configure", a backup is made, you can recover.
19:39:42 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
19:43:32 hexreel joins (~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca)
19:44:13 geekosaur joins (42d52137@66.213.33.55)
19:45:12 aplainze1akind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
19:45:32 Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54)
19:46:24 jamm_ joins (~jamm@unaffiliated/jamm)
19:47:27 × johs quits (sid246410@gateway/web/irccloud.com/x-ngyseqelgtwcfjec) (Ping timeout: 260 seconds)
19:47:27 × ReinH__ quits (sid179972@gateway/web/irccloud.com/x-gpfwmlgqwhiukqzi) (Ping timeout: 260 seconds)
19:48:02 × gluegadget quits (sid22336@gateway/web/irccloud.com/x-mzkaypjsiixomsyk) (Ping timeout: 260 seconds)
19:48:02 × elvishjerricco quits (sid237756@NixOS/user/ElvishJerricco) (Ping timeout: 260 seconds)
19:48:06 × kini quits (~kini@unaffiliated/kini) (Read error: Connection reset by peer)
19:48:16 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
19:48:37 × jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
19:48:37 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:25e9:81:81d6:bd54) (Ping timeout: 260 seconds)
19:48:37 × sw1nn quits (~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0) (Ping timeout: 260 seconds)
19:48:37 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Ping timeout: 260 seconds)
19:48:37 × joel135 quits (sid136450@gateway/web/irccloud.com/x-jrkdlopfrcmkshuh) (Ping timeout: 260 seconds)
19:48:37 × d0liver quits (sid363046@gateway/web/irccloud.com/x-jbrqqdcqtnzurjyt) (Ping timeout: 260 seconds)
19:48:38 aplainze1akind is now known as aplainzetakind
19:49:00 elvishjerricco joins (sid237756@NixOS/user/ElvishJerricco)
19:49:00 johs joins (sid246410@gateway/web/irccloud.com/x-tafdqtulgzplanux)
19:49:07 ReinH__ joins (sid179972@gateway/web/irccloud.com/x-ooppghpllredfipz)
19:49:12 × Alleria_ quits (~AllahuAkb@2603-7000-3040-0000-a876-e3dc-1017-f48b.res6.spectrum.com) (Ping timeout: 260 seconds)
19:49:12 × natim87 quits (sid286962@gateway/web/irccloud.com/x-dhthcfdaholuyfwt) (Ping timeout: 260 seconds)
19:49:17 × jess quits (jess@freenode/staff/jess) (Quit: Leaving)
19:49:20 jess joins (jess@freenode/staff/jess)
19:49:24 kini joins (~kini@unaffiliated/kini)
19:49:29 natim87 joins (sid286962@gateway/web/irccloud.com/x-nksbbmqvaevagztw)
19:49:58 sw1nn joins (~sw1nn@2a00:23c6:2385:3a00:535:b5d7:a67c:1f0)
19:50:00 gluegadget joins (sid22336@gateway/web/irccloud.com/x-msgsyimkpfzfdplm)
19:50:18 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
19:50:25 d0liver joins (sid363046@gateway/web/irccloud.com/x-aesspnxmupkvbzzz)
19:50:26 texasmynsted joins (~texasmyns@99.96.221.112)
19:50:33 Alleria_ joins (~AllahuAkb@2603-7000-3040-0000-6148-1689-ef18-302b.res6.spectrum.com)
19:50:33 joel135 joins (sid136450@gateway/web/irccloud.com/x-ejidscycomljbwvk)
19:53:01 <Squarism> im testing out Optics library here. Im missing "preview :: Traversal' s a -> (Maybe a)". Closest thing in Optics seems to be toListOf ?
19:53:15 × hexreel quits (~hr@2600:1700:28e2:14d0:c137:b60f:88b9:8eca) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
19:54:02 × texasmynsted quits (~texasmyns@99.96.221.112) (Remote host closed the connection)
19:54:09 × pera quits (~pera@unaffiliated/pera) (Ping timeout: 260 seconds)
19:54:45 usr25 joins (~usr25@unaffiliated/usr25)
19:57:11 × jneira quits (5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180) (Ping timeout: 268 seconds)
20:01:04 × brettgilio quits (~brettgili@brettgilio.com) (Quit: Long live IRC! <https://brettgilio.com/irc.html>)
20:04:08 <Squarism> Like with lens i could write : preview ( someFld . _Just . ix 0) which would return a Maybe x. How would one do this with Optics?
20:04:11 texasmynsted joins (~texasmyns@99.96.221.112)
20:05:38 frankdmartinez joins (~frankdmar@5.181.234.188)
20:05:44 chenshen joins (~chenshen@2620:10d:c090:400::5:4a42)
20:06:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
20:07:19 × chenshen quits (~chenshen@2620:10d:c090:400::5:4a42) (Client Quit)
20:07:48 × jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
20:08:48 jamm joins (~jamm@unaffiliated/jamm)
20:09:21 × aveltras quits (uid364989@gateway/web/irccloud.com/x-qrhrdryutllrlcmf) (Quit: Connection closed for inactivity)
20:09:36 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
20:11:39 brettgilio joins (~brettgili@brettgilio.com)
20:12:37 × brown121407 quits (~brown1214@fsf/member/brown121407) (Quit: ZNC 1.8.2 - https://znc.in)
20:12:54 brown121407 joins (~brown1214@121407.xyz)
20:12:54 × brown121407 quits (~brown1214@121407.xyz) (Changing host)
20:12:54 brown121407 joins (~brown1214@fsf/member/brown121407)
20:14:18 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
20:14:54 × krisfris quits (uid479465@gateway/web/irccloud.com/x-exroizldsqhfnehu) (Quit: Connection closed for inactivity)
20:15:23 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
20:15:34 <frankdmartinez> Is there a way in GHCI to “call up” the definition of a class/instance?
20:16:11 <monochrom> class yes, ":info Num" for example.
20:17:07 × andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Quit: andreas303)
20:17:12 <monochrom> :info on a class name or type name also tells you who is an instance of whom. But no implementation, just "yes X is an instance of Y".
20:17:22 Lycurgus joins (~niemand@cpe-45-46-139-165.buffalo.res.rr.com)
20:17:26 × brown121407 quits (~brown1214@fsf/member/brown121407) (Client Quit)
20:18:03 andreas303 joins (~andreas@gateway/tor-sasl/andreas303)
20:18:28 × DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 256 seconds)
20:19:29 chenshen joins (~chenshen@2620:10d:c090:400::5:4a42)
20:21:07 × chenshen quits (~chenshen@2620:10d:c090:400::5:4a42) (Client Quit)
20:23:18 Torro joins (Torro@gateway/vpn/protonvpn/torro)
20:24:32 DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
20:30:14 × o1lo01ol_ quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Remote host closed the connection)
20:31:26 orion joins (~orion@c-76-19-238-5.hsd1.ma.comcast.net)
20:31:26 × orion quits (~orion@c-76-19-238-5.hsd1.ma.comcast.net) (Changing host)
20:31:26 orion joins (~orion@unaffiliated/orion)
20:32:59 danish joins (~kvirc@109.58.42.178.mobile.3.dk)
20:33:19 Sheilong joins (uid293653@gateway/web/irccloud.com/x-rgbhauuevaaekwgg)
20:33:39 chenshen joins (~chenshen@2620:10d:c090:400::5:4a42)
20:34:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:35:19 brown121407 joins (~brown1214@121407.xyz)
20:35:19 × brown121407 quits (~brown1214@121407.xyz) (Changing host)
20:35:19 brown121407 joins (~brown1214@fsf/member/brown121407)
20:36:29 <frankdmartinez> monochrom: Thanks; though I think it is a bit off in some spots. For example, `:info Applicative Maybe` gives this text which is not very informative => “instance Applicative Maybe -- Defined in ‘GHC.Base’”
20:37:09 <frankdmartinez> So, I guess that is in keeping with the `But no implementation, just "yes X is an instance of Y”` you mentioned, right?
20:40:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
20:41:56 dandart joins (~Thunderbi@home.dandart.co.uk)
20:43:14 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
20:43:33 <idnar> @hoogle Bifunctor f => (a -> b) -> f a a -> f b b
20:43:34 <lambdabot> Relude.Extra.Bifunctor bimapBoth :: Bifunctor f => (a -> b) -> f a a -> f b b
20:43:58 × chenshen quits (~chenshen@2620:10d:c090:400::5:4a42) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:47:27 × sgibber2018 quits (~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
20:50:05 kupi joins (uid212005@gateway/web/irccloud.com/x-pwwljkdtgciejnte)
20:50:44 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
20:52:39 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
20:54:21 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
20:54:30 × Guest38620 quits (~textual@zrcout.mskcc.org) (Ping timeout: 256 seconds)
20:56:02 notzmv joins (~user@unaffiliated/zmv)
21:01:30 <glguy> Squarism, toListOf :: Is k A_Fold => Optic' k is s a -> s -> [a]
21:01:55 <glguy> Squarism, it was exported by Optics
21:02:01 <glguy> but it was defined in Optics.Fold
21:04:20 <foobar2> I have what's likely a very dumb configuration/setup problem I'd like help debugging. I'm on OSX. I've used the instructions suggested at https://www.haskell.org/ghcup/, and pulled stack down via homebrew. I've added .cabal/bin and .ghcup/bin to my path.
21:05:06 <foobar2> When I run `stack build` I get simply `The Haskell Tool Stack`. No matter what arguments I put after that, I seem to always get only that output.
21:05:32 <monochrom> stack would not be using anything you got by ghcup.
21:05:46 <glguy> foobar2, I don't use stack, but the .cabal ghcup and .ghcup stuff you said won't be related. stack lives in its own world
21:05:53 <Squarism> glguy, i realised the composition is done using "%" instead of "."
21:05:54 <monochrom> And anything you got from ghcup would not be using stack or anything you got from stack, conversely.
21:06:04 <Squarism> But I have one question though
21:06:05 <foobar2> Ah. Okay. Terrific. That cuts out a lot of my problem.
21:06:08 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 2.9)
21:06:12 <foobar2> problem-space.
21:06:34 <monochrom> At this point first you choose which one you want to focus on, ghcup or stack? Then you troubleshoot just one.
21:06:43 <Squarism> by composing i can create AffineTraversal'. But with just a single Lens, how do I convert that to an AffineTraversal?
21:06:47 <foobar2> stack.
21:07:17 <foobar2> monochrom I'm in my directory with my stack.yaml and stack.yaml.lock files. I guess I was expecting `stack build` to visibly *output* something.
21:07:19 <monochrom> OK then you have to wait for another stack user. I don't know stack.
21:07:31 <Squarism> glguy, do you happen to know that?
21:08:11 <zzz> happy new year everyone!
21:08:18 <foobar2> zzz !!!
21:08:23 <glguy> Squarism: I'll have to look; I haven't used this library
21:09:24 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:11:17 o1lo01ol1o joins (~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
21:11:37 × Juviee quits (2ebf899a@46.191.137.154) (Remote host closed the connection)
21:12:00 <zzz> happy new year everyone
21:12:23 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
21:12:55 <koz_> zzz: Same to you!
21:13:07 <glguy> Squarism, what are you trying to do with this AffineTraversal'? I'd have expected you to be able to use a lens somewhere that needed on
21:13:09 <glguy> one*
21:14:02 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:9853:f638:e207:b1cf)
21:14:03 Alleria joins (~textual@2603-7000-3040-0000-f863-b1d6-d130-6615.res6.spectrum.com)
21:14:14 <Squarism> when composint prism and lens (using (%)) you get an AffineTraversal. So thats what i need to throw around as i rely on both
21:14:19 <Squarism> glguy, ^
21:14:26 <glguy> castOptic :: forall destKind srcKind is s t a b. Is srcKind destKind => Optic srcKind is s t a b -> Optic destKind is s t a b
21:14:27 Alleria is now known as Guest40492
21:14:28 <glguy> Does that help?
21:15:05 × hiroaki_ quits (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
21:15:19 <glguy> I'd think you'd only need to do that if you were storing one, though; otherwise you'd rely on the typeclass machinery
21:15:43 <tomsmeding> foobar2: what is the out of 'which stack', 'file $(which stack)', 'stack --version' ?
21:15:56 × o1lo01ol1o quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 240 seconds)
21:16:18 <Squarism> glguy, just found it too. Yeah, that does the trick
21:17:39 <foobar2> tomsmeding those are, respectively `16:16:08$ which stack``/Users/me/Library/Haskell/bin/stack``16:16:13$ file $(which stack)``/Users/me/Library/Haskell/bin/stack: Mach-O 64-bit executable x86_64``16:16:19$ stack --version``The Haskell Tool Stack`
21:18:09 <sm[m]> hehe
21:18:20 <tomsmeding> lol
21:18:28 <sm[m]> maerwald played a trick ?
21:18:58 <tomsmeding> foobar2: ls -sh $(which stack)
21:19:03 <tomsmeding> that is to say, how large is the file :p
21:19:45 <tomsmeding> because that's not the expected --version output
21:19:48 <sm[m]> just kidding. foobar2's stack executable seems very strange
21:20:01 <foobar2> `1984 /Users/jhemann/Library/Haskell/bin/stack`
21:20:26 <foobar2> No, anything I give it as input, it comes back "The Haskell Tool Stack"
21:20:49 hiroaki_ joins (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
21:20:50 <tomsmeding> ... okay I apparently don't know the right flags for BSD ls. Can you look at the file in whatever way you want and tell me how large it is? is that 1.984 MB?
21:20:55 × geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds)
21:21:16 <tomsmeding> because mine is 60MB, and while linux != mac, the difference in file size won't be _that_ large
21:21:22 <sm[m]> the real stack is about 33Mb on mac, foobar2
21:21:27 <__monty__> `du -h $(which stack)`
21:21:51 <sm[m]> (or, 60Mb for the brew-installed one)
21:22:56 <tomsmeding> foobar2: please try reinstalling stack :p
21:22:57 <sm[m]> foobar2: also, brew doesn't usually install stack there. Did you install some cask ?
21:23:01 × theDon quits (~td@94.134.91.182) (Ping timeout: 264 seconds)
21:23:30 <tomsmeding> hm, wait that Library/Haskell path makes me think it's a Haskell Platform install
21:23:33 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
21:23:39 <sm[m]> or, that's an old executable that's shadowing brew's stack
21:23:44 <tomsmeding> from my mac days
21:23:46 <foobar2> it's 992K
21:23:47 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
21:23:50 <boxscape> hm listening to a Chris Allen Haskell talk about how static types aren't bad and can't tell whether he said "Taekwondo" or "Typekwondo"
21:24:34 <dmj`> boxscape: probably a deep fake
21:24:46 <boxscape> could be!
21:24:57 <tomsmeding> foobar2: IIRC brew can show the list of files in a package, perhaps via some flag on 'brew info'? Try to find out that way where brew think it's stored the stack executable
21:25:03 <tomsmeding> it's probably not in Library/Haskell
21:25:03 <foobar2> sm[m] no I got a warning from brew specifically, `Warning: Treating stack as a formula. For the cask, use homebrew/cask/stack`
21:25:25 <sm[m]> it'll be in /usr/local/bin/stack, tomsmeding
21:25:36 <tomsmeding> fair point
21:25:47 <sm[m]> foobar2: what does "type -a stack" show
21:26:01 shinobi joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
21:26:11 tomsmeding TIL type -a, thanks sm[m]
21:26:12 <shinobi> what is <*> called?
21:26:23 <foobar2> stack is /Users/me/Library/Haskell/bin/stackstack is /usr/local/bin/stack
21:26:25 <travv0> tie fighter
21:26:39 <shinobi> +1
21:26:54 <tomsmeding> foobar2: I think the first one is a remnant from a Haskell Platform installation, is that possible?
21:27:10 <sm[m]> foobar2: probably the fix is "rm -rf /Users/me/Library/Haskell". You didn't show the dates on that one I think
21:27:14 <foobar2> tomsmeding yes, that is quite likely. It was in a bad state; I had hoped this would blow it away
21:27:32 <tomsmeding> do sm[m]'s suggestion, but perhaps move it to a backup location first
21:28:12 <foobar2> oh. Well, it's gone now.
21:28:16 <tomsmeding> :D
21:28:23 <sm[m]> it's the end of the year, be bold! >:)
21:28:24 <tomsmeding> ghcup and brew are a better way anyway
21:28:34 <sm[m]> now: "hash stack"
21:28:39 <sm[m]> and all should be well
21:28:45 <foobar2> YOLO.
21:29:16 <tomsmeding> sm[m]: is that 'hash' necessary?
21:29:20 theorbtwo joins (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net)
21:29:24 <foobar2> I don't know what `hash stack` should output, if anything. But `stack --version` now says something useful
21:29:27 <tomsmeding> foobar2: you may want to remove that Library/Haskell/bin folder from your PATH
21:29:29 <foobar2> and `stack build` starts to build
21:29:45 <sm[m]> tomsmeding: I often find it so, after removing something in $PATH. I use bash, though
21:29:58 <sm[m]> it frequently trips up beginners
21:30:06 <tomsmeding> foobar2: 'hash stack' updates your shell's cache of where that executable is located, saving it from searching the PATH each time
21:30:22 <foobar2> that's another worthwhile bit to know.
21:30:29 <tomsmeding> but you should only need to run it if you ran it in the previous configuration already, because otherwise it won't cache it at all AFAIK
21:30:34 <foobar2> thank you all; it seems like I'm in much better shape.
21:30:45 <tomsmeding> just in time for the new year :)
21:30:57 theDon joins (~td@94.134.91.248)
21:30:58 <sm[m]> high fives all round
21:31:53 tomsmeding wonders what even was that other stack executable
21:31:57 geekosaur joins (42d52137@66.213.33.55)
21:32:33 <tomsmeding> int main() { printf("The Haskell Tool Stack\n"); } certainly compiles to something smaller than 1 MB
21:33:02 <sm[m]> foobar2: we're going to have to ask you to restore from backups so we can do forensics
21:33:23 <sm[m]> (not really)
21:33:28 <tomsmeding> hah 'putStrLn "The Haskell Tool Stack"' becomes 2.7 MB here
21:33:41 <foobar2> Yeah, it was definitely the Haskell Tool Stack.
21:33:46 <foobar2> If there's one thing I was able to deduce.
21:33:53 <tomsmeding> X doubt
21:34:05 <sm[m]> it was a hell of a tool, anyway :)
21:34:28 <gentauro> tomsmeding: why so big? It's not a self-contained executable right?
21:34:29 <sm[m]> You always knew what it would do.
21:35:14 sm[m] thinks: a WIP placeholder in old Haskell Platform
21:35:33 <tomsmeding> gentauro: '$ printf 'main :: IO ()\nmain = putStrLn "The Haskell Tool Stack"\n' >a.hs; ghc -O2 a.hs -o a; ls -sh a' gives 2.7M here :p
21:35:57 tomsmeding thinks sm[m] is correct
21:35:59 <sm[m]> gentauro: the runtime system, I guess
21:36:11 <geekosaur> base and rts are linked stattically by default
21:36:47 <geekosaur> plus what those drag in which will include ghc-prim, integer-gmp, etc.
21:37:11 <gentauro> geekosaur: if I write a huge lib, but only point to a few independent `modules` in my .cabal file
21:37:15 <gentauro> will GHC strip the rest?
21:38:09 <monochrom> Yes.
21:38:13 <gentauro> iirc from using `packages.yaml` all are automatically added
21:38:19 <geekosaur> if linked statically the linker will strip the rest, yes, but there are hard references to e.g. integer-gmp in the runtime
21:38:29 <gentauro> but since I moved to `cabal` files, I have to state them myself
21:40:19 <gentauro> geekosaur: I remembered this blog post from Athas https://futhark-lang.org/blog/2020-04-13-statically-linking-the-futhark-compiler.html
21:40:56 <gentauro> tomsmeding: have you tried `ldd` on your executable?
21:41:02 <gentauro> just to see how much stuff is linked?
21:41:24 × p-core quits (~Thunderbi@koleje-wifi-0045.koleje.cuni.cz) (Remote host closed the connection)
21:42:01 <tomsmeding> gentauro: linux-vdso, lib{m, ncursesw, rt, util, dl, pthread, gmp, c}, and the loader
21:42:02 <geekosaur> ldd only shows dynamic stuff, which will all be small
21:42:08 <tomsmeding> but yes what geekosaur says
21:42:45 tomsmeding wonders what even libutil is, that sounds even worse than an exported Util module from a haskell package
21:43:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
21:44:01 × hiroaki_ quits (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
21:44:33 × geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection)
21:46:40 <ephemient> libutil is part of glibc, it contains forkpty & friends
21:47:00 <ephemient> yeah it's a pretty bad name
21:47:57 <tomsmeding> I found that out using objdump indeed, interesting thing
21:49:19 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 246 seconds)
21:49:54 <gentauro> tomsmeding: are you trying to reduce the size of Haskell executables?
21:49:55 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
21:52:07 <tomsmeding> no I'm not, we were wondering about a weird stack-impostor foobar2 had, found out it was 1MB; I saw that a putStrLn-only haskell executable becomes 2.8MB for me, and I was puzzled what that weird executable even was
21:52:14 <monochrom> The RTS is 2.6MB
21:52:39 <tomsmeding> gentauro: conversation starts here: https://ircbrowse.tomsmeding.com/browse/haskell?id=228683&timestamp=1609448660#t1609448660
21:53:05 <tomsmeding> monochrom: well that makes sense then :)
21:53:25 <monochrom> e.g., look for <prefix>/lib/ghc-8.8.4/rts/libHSrts-ghc8.8.4.so
21:54:12 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
21:54:43 <monochrom> I use the *.so file size as my proxy measure because the alternative is libHSrts.a which is 7.7MB which doesn't make empirical sense. :)
21:55:03 mp___ joins (mp@hell.cx)
21:55:09 <tomsmeding> 2.5MB for me, but yes
21:55:18 <monochrom> So I guess the *.a format contains much stuff that doesn't make it to the exe.
21:55:46 <tomsmeding> or perhaps objects that are discarded when linking because they're unused? (guessing)
21:56:40 hiroaki_ joins (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
21:57:24 <monochrom> A basic, very likely premise is that actual code in the *.a and actual code in the *.so should be more or less equivalent.
21:58:03 <monochrom> So if they have more or less equivalent code but vastly different file sizes, I would go with the smaller size just for Shannon information theory sake.
21:59:36 <ephemient> the *.a contains a separate *.o for each compilation unit (e.g. each rts/*.c file) while the *.so merges everything together
22:00:09 <ephemient> in theory a statically linked executable can discard unused sections while a dynamically linked executable can't, but I don't know if that even makes sense in the RTS
22:00:15 <tomsmeding> monochrom: my .a is 7.7M and gzip's to 2.2M, whereas my .so is 2.5M and gzip's to 1.0M
22:02:39 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Remote host closed the connection)
22:03:48 Shiranai joins (beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143)
22:04:39 <gentauro> 22:52 < tomsmeding> no I'm not, we were wondering about a weird stack-impostor foobar2 had, found out it was 1MB;
22:04:44 <gentauro> but he is on a mac right?
22:04:49 <gentauro> so maybe that's the diff?
22:04:50 <foobar2> Yes.
22:04:58 <foobar2> To the mac question.
22:05:27 <gentauro> maybe OSX handles stuff different? I recall the implemenation of POSIX is not the same as the one in Linux
22:05:32 <tomsmeding> I'd be surprised if the RTS is more than twice as small on mac than on linux, but sure that could explain the difference
22:05:34 <gentauro> so maybe other stuff is not the same?
22:05:37 <tomsmeding> oh fair
22:05:58 <tomsmeding> but the real stack is not 1MB ;)
22:06:02 <tomsmeding> on no platfor
22:06:02 <tomsmeding> m
22:06:06 <gentauro> hmmm
22:06:15 <gentauro> foobar2: did you download it from the NSA website? :)
22:06:20 × kderme quits (2eb0d7c7@ppp046176215199.access.hol.gr) (Ping timeout: 245 seconds)
22:06:24 <gentauro> muhahahaa
22:06:35 <Shiranai> Hello, I'm revisiting haskell from the category point of view and I'm having doubts with respect to the `Functor` typesclass. To make a concrete point, is `[]` really a functor? I think I am not understanding correctly the source and target categories. What's the preimage of [1,2] for example?
22:06:49 <tomsmeding> I'd at least expect them to be competent enough to make the executable _work_ under normal usage :P
22:08:20 <gentauro> tomsmeding: I think it's kind of funny that Okasaki teaches at West Point
22:08:35 <koz_> gentauro: Purely functional missiles.
22:08:46 <gentauro> how many (army) cadetes are absolute beasts at Haskell?
22:08:55 <monochrom> [] is really a functor. The source and the target categories are the same, objects are Haskell types, morphisms are Haskell functions.
22:08:56 <gentauro> I wonder how much stuff is coded for the army in Haskell :)
22:09:24 × jathan quits (~jathan@69.61.93.38) (Quit: WeeChat 2.3)
22:09:48 <koz_> monochrom: Something something Functor is an endofunctor on Hask something?
22:09:53 <foobar2> gentauro at least one! https://www.cambridge.org/core/journals/journal-of-functional-programming/article/abs/theoretical-pearls/3E99993FE5464986AD94D292FF5EA275
22:09:54 <monochrom> yes
22:09:58 <koz_> s/Functor/any instance of Functor/ I guess
22:10:01 vicfred joins (~vicfred@unaffiliated/vicfred)
22:10:12 <koz_> I am not smart at the category theory.
22:10:25 <koz_> I can merely ape those which are like GPT-2.
22:10:31 <Shiranai> I see, I was thinking of each type as a category, the whole haskell type as a category makes more sense, thanks
22:10:36 <gentauro> foobar2: that's Okasaki. He is a profesor at West Point :)
22:10:43 <gentauro> that's what I'm saying ;)
22:11:01 <koz_> I now have a theory for the origin of 'launch missiles' as an example of an irreversible IO action. :P
22:11:26 <gentauro> Shiranai: normally ski is really helpfull with these kind of questions ;)
22:11:42 <foobar2> gentauro I meant that the cadet he describes in that paper is also a beast at haskell
22:12:08 <koz_> I actually stumbled across something by Okasaki I genuinely did not know he ever dealt with recently.
22:12:56 <gentauro> foobar2: Cadet K xD
22:13:45 <monochrom> Yes, that's the one in which he showed off how to define "push", "pop" "1", "2", "3", maybe also "begin" and "end" I forgot, such that "begin push 1 push 2 push 3 pop end" gives you 3 intuitively.
22:14:06 <koz_> Also, monochrom, I have a vaguely-relevant CT question: Bartosz states that morphisms in the skeleton F of FinSet correspond to functions between finite sets. He then states that there is a unique morphism from 0 to n (aka the empty set is the initial object). I assume that 0 -> n corresponds to functions from the empty set to a finite set of cardinality n - but how can any such function exist?
22:14:21 <monochrom> and which demonstrates how to get type inference to take exponential time.
22:15:07 <koz_> monochrom: Wait, this was from 'Techniques for Embedding Postfix Languages in Haskell' right?
22:15:19 <tomsmeding> koz_: 'absurd' is such a function, right?
22:15:28 <tomsmeding> (I know no CT, just answering your last sentence :p)
22:15:28 <koz_> tomsmeding: Void -> a, sure.
22:15:36 <koz_> Yeah, now that I think about it, I get it now.
22:15:37 <b4er> Why would such a function not exist?
22:15:50 <monochrom> I think no, because "begin push 1 push 2 pop etc" isn't postfix.
22:15:51 <koz_> If we take the combinatorial view of functions, a function from the empty set to anything would be... the empty set.
22:15:58 <koz_> Never mind, answered my own question, rofl.
22:16:41 <koz_> I'm reading Bartosz's thing on Lawvere theories.
22:16:54 <koz_> https://bartoszmilewski.com/2017/08/26/lawvere-theories/ for anyone who wants to read along.
22:17:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:18:03 × sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
22:18:14 jathan joins (~jathan@69.61.93.38)
22:21:50 <Shiranai> koz_: have you read all the book up to there?
22:22:21 <koz_> Shiranai: What book are you referring to?
22:22:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
22:22:55 <Shiranai> Bartosz made a book out of his blogposts, it's called "Category Theory for Programmers"
22:23:10 <Shiranai> the blogpost you mentioned is the before-last chapter
22:24:04 × hiroaki_ quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
22:24:09 <koz_> Shiranai: I... didn't notice that. I've read some of it a while back, but definitely not the whole thing.
22:24:47 × Tesseraction quits (~Tesseract@unaffiliated/tesseraction) (Read error: Connection reset by peer)
22:25:51 × Lycurgus quits (~niemand@cpe-45-46-139-165.buffalo.res.rr.com) (Quit: Exeunt)
22:26:17 <Shiranai> I see, I've been wanting to read it for a while but I think I don't have enough math knowledge to fully appreciate it
22:26:37 <koz_> Shiranai: The early stuff requires basically no real 'math knowledge' of any sort.
22:26:47 <koz_> That's one of the nice parts of category theory in general.
22:27:10 <koz_> If you write Haskell, a lot of it will feel _very_ familiar.
22:29:44 <monochrom> It is a two-edged sword to require no real knowledge, especially when because it stays so broadly general.
22:30:22 <koz_> Yes, exactly.
22:30:30 <koz_> Category theory is _pedantically_ general.
22:30:37 <Shiranai> I know the basics of cat theory, up to yonneda's lemma from a math perspective, but those other cool stuff like topoi, comonads, etc seem to have some convoluted math meaning
22:30:57 <koz_> At least how Bartosz presents it, it's all 'hey, Set has this cool thing, but it's specific to set, can we generalize away?'.
22:31:06 <koz_> Shiranai: They can be _interpreted_ to have such a meaning.
22:31:18 <koz_> But that's the whole point - category theory is designed to be the ultimate generalization.
22:31:29 <b4er> You kind of need to know set theory and abstract algebra knowledge, otherwise you'll quickly loose track I imagine
22:32:00 <monochrom> I think we haven't used topoi in this community.
22:32:04 <koz_> b4er: At least from what I've read, set theory isn't necessary beyond like, really simple stuff.
22:32:24 <koz_> At least in my view, if you say 'set theory' we're talking at least ultrafilters.
22:32:54 <koz_> Can't speak for abstract algebra because unsurprisingly, I don't know it.
22:33:11 <koz_> (because my maths education can be politely described as 'patchwork', and impolitely described as 'woefully incomplete')
22:34:02 <Shiranai> hmm may I ask how do you know ultrafilters but not abstract algebra? The places I learned ultrafilters always were looking at the algebraic side
22:34:24 <koz_> Shiranai: It's called 'I picked up random concepts in random places because I didn't come to computing from a maths or science pathway'.
22:34:27 <koz_> I'm a historian by training.
22:34:35 <exarkun> "encountered an exception while trying to report an exception." :/
22:34:40 <Shiranai> oh that's really interesting haha
22:34:54 <Shiranai> I'm an economist, so yeah missing a lot of stuff too
22:35:20 × Franciman quits (~francesco@host-95-250-152-231.retail.telecomitalia.it) (Quit: Leaving)
22:35:29 <koz_> It was kinda... survival theory basically. I picked up the parts I needed, only to the extent needed, frequently absent the context I didn't need at that very moment.
22:35:40 <koz_> Basically, if you ask me to deal with _anything_ continuous, my brain explodes.
22:35:54 <koz_> I barely understand _limits_, just to give you some idea of how bad the situation is.
22:36:10 <koz_> (and I basically only got that far when I reframed them into logic)
22:36:16 <boxscape> you just need to have the right definition of "continuous". I.e. the definition where continuous == computable
22:36:27 <monochrom> Here is a bomb for you. The identity function is continuous.
22:36:35 <b4er> Maybe you don't need set theory by your definition then, yeah. But as an example that article you cited mentions things like empty set, power set, isomorphisms etc. in the first few paragraphs. Kind of helps to know math imo
22:37:40 <koz_> b4er: I mean... yeah, in the most literal sense, sure. But empty and power set are just definitions (helped by the fact that set theory is also super general), and isomorphism is actually a category theory notion (or rather, it's given its best treatment there).
22:37:57 <b4er> I don't think I ever read something on category theory that didn't mention Set.
22:38:12 <koz_> b4er: Set is just used as a source of things we wanna generalize.
22:38:23 <boxscape> (hm, actually, while all computable functions are continuous, maybe not all continuous functions are computable)
22:38:42 <koz_> boxscape and monochrom: I meant 'continuous' in the sense of 'not discrete'.
22:38:55 <boxscape> it's really the same thing if you look at it in the right light
22:39:00 <Shiranai> not all continuous functions are computable in the calculus sense, mainly because there an uncountable number of them
22:39:29 <koz_> boxscape: I welcome anyone who can make me understand things involving 'anything beyond limits'. Many folks have tried, and I just lack any mental machinery to go into anything.
22:39:38 <koz_> Heck, differentiation and integration make my head explode.
22:39:49 <koz_> Anything _built_ on those? Zero hope in my case.
22:40:00 <boxscape> Shiranai that makes sense, yeah
22:40:29 <Shiranai> koz_: maybe you just need some non standard analysis
22:40:32 <Shiranai> :)
22:40:40 <koz_> Shiranai: Suggestions very welcome, seriously.
22:40:46 <koz_> I have tried every damn take on calculus there is.
22:40:47 <b4er> You might want to look at the topological definition in terms of neighbourhoods.
22:40:50 <koz_> None of them sit in my head.
22:41:07 <boxscape> koz_ have you read about how the derivative of a regular type is its type of one-hole contexts?
22:41:09 <Shiranai> seriously though then, have you tried non standard analysis?
22:41:10 <koz_> My only attempt to resolve any problem is 'reduce it to logic and hope that works'.
22:41:12 hiroaki_ joins (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
22:41:26 <koz_> Shiranai: Again, suggestions of sources I can learn this from?
22:41:44 <koz_> boxscape: I have heard, yes. I have no intuition for derivatives, so this might as well be gibberish.
22:42:14 <boxscape> hmm
22:42:23 Tesseraction joins (~Tesseract@unaffiliated/tesseraction)
22:42:51 <boxscape> to be fair even for someone who knows a lot about derivatives I think at least the title sounds like gibberish at first
22:42:52 <Shiranai> koz_: it's basically calculus without limits, by using infinitesimals. May be easier to wrap your head around for some people http://www.math.wisc.edu/~keisler/calc.html
22:44:18 <koz_> boxscape: The fact is, I am aware of this construction, and I'm aware that it relates to derivatives... somehow. But it's basically a special snowflake - knowing this gives me nothing.
22:44:27 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
22:44:27 <boxscape> that's fair
22:44:33 <koz_> I'm sure I could make more sense of it, but I've never gotten anywhere.
22:44:38 <koz_> Shiranai: Thank you! Will read.
22:44:42 <Shiranai> in the 50s and 60s, I believe, a group of mathematicians wanted to change the epsilon-delta to this but noone really wanted. There were no proven pedagogical benefits so it was ignored pretty much other than for researchers
22:44:50 <b4er> Shiranai, it looks the same just with different notation?
22:44:53 <Shiranai> you're welcome
22:44:59 <Shiranai> b4er: no!
22:45:05 <Shiranai> the semantics are completely distinct
22:45:27 <Shiranai> for example, in the derivative definition you are actually computing a fraction
22:45:37 <Shiranai> with terms having infinitesimals
22:45:45 <Shiranai> not computing a limit of a fraction
22:45:45 <koz_> Yeah, whereas with limits, you play this fun game of getting rid of h on the bottom.
22:46:00 <koz_> Because we can't divide by actual zero.
22:46:26 <Shiranai> yup, can't divide by zero but can divide by infinitesimals because magic
22:46:36 <koz_> Because infinitesimals are not technically zero!
22:46:47 <koz_> (or rather, are technically not zero)
22:47:04 <ephemient> well, limit h→0 is not zero either
22:47:19 <Shiranai> ^^
22:47:43 <koz_> ephemient: Yeah, indeed, because limits 'don't really exist'.
22:47:57 <koz_> It just says 'we can get as close as we like to it by picking the right argument'.
22:48:05 <koz_> (that's essentially epsilon-delta in a nutshell)
22:48:16 <b4er> But The example with x^3 and the derivation of st(dy/dx) is basically computing the limit?
22:48:18 <Shiranai> Personally I prefer thinking about limits, infinitesimals just seem weird. Values smaller than any real number but not 0 just is too weird
22:48:22 × _ashbreeze_ quits (~mark@64.85.214.234.reverse.socket.net) (Read error: Connection reset by peer)
22:48:24 <b4er> I fail to see the difference :S
22:48:39 <koz_> Shiranai: I have zero problems with weirdness.
22:48:44 <ephemient> as far as I'm concerned, they're equivalent in power
22:48:56 <koz_> If it makes sense in my head and gives me a model I can work with and prove things from, bring on the weirdness I say.
22:48:57 <ephemient> weirdness is ok as long as it's justified and consistent
22:49:05 <Shiranai> b4er: I'd say it's kind of a syntactic difference? It is in fact a theorem that both calculus with limits and with infinitesimals are equivalent
22:49:16 <Shiranai> so yeah some stuff will end looking the same
22:49:33 <Shiranai> but not every stuff (can't give an example of what's not alike of the top of my head)
22:49:51 _ashbreeze_ joins (~mark@64.85.214.234.reverse.socket.net)
22:50:16 × dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds)
22:50:28 <koz_> And frankly, the real line is full of so much weirdness anyway, what's one more thing?
22:50:41 kderme joins (2eb0d7c7@ppp046176215199.access.hol.gr)
22:50:42 <koz_> (any interval of the real line for example, is more infinite than the rationals)
22:50:48 <koz_> (thanks, Cantor's diagonal argument)
22:51:10 <koz_> (ok, any non-empty interval, fine)
22:51:17 <tomsmeding> koz_: what's your working definition of R?
22:51:47 <monochrom> One reason to switch is if it saves work. (But I think this one doesn't.) Another reason to switch is if it is more compatible with your personality, e.g., some people are more happy with "for all e>0 there exists d>0", some other are more happy with "just do algebra and use (dx)^2=0, shoot upon sight, shoot to kill".
22:51:51 <koz_> tomsmeding: I... basically don't really have one? If you put a gun to my head, I'd go with Dedekind cuts, but it's not a 'working definition' in the sense that I couldn't prove much from it.
22:51:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:52:05 <tomsmeding> (really I shouldn't enter this discussion because my understanding of math is firmly in the conventional framework)
22:52:28 <ephemient> well reals based on dedekind cuts aren't too super useful directly, although it is useful that limits are kind of built in
22:52:46 <ephemient> but you just have to prove that everything real-like is isomorphic and then you're good
22:54:04 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Ping timeout: 246 seconds)
22:54:05 <tomsmeding> I found it fairly enlightening when I got how R can be defined as the limits of Cauchy (""convergent"") sequences of elements of Q
22:54:23 × usr25 quits (~usr25@unaffiliated/usr25) (Quit: Leaving)
22:54:32 <tomsmeding> but then, that's the firmly conventional view which you've probably already discarded :p
22:54:52 <koz_> tomsmeding: Cauchy sequences is something I definitely encountered (curiously enough in a _theory of computation_ class of all places).
22:54:59 <monochrom> Next controversy for you all: The Banach-Tarski Theorem (yes, theorem, not paradox) shows which one of the following two to be the actually weird one? Axiom of choice; continuity of R^3.
22:55:17 <koz_> monochrom: Maybe I'm just weird, but AC doesn't bother me.
22:55:29 <koz_> I excuse it by saying 'infinity is weird and ahuman, just deal'.
22:55:45 <monochrom> Then either the continuity of R^3 bothers you, or Banach-Tarski doesn't bother you :)
22:55:48 usr25 joins (~usr25@unaffiliated/usr25)
22:55:59 <koz_> I don't really consider the reals particularly 'real'.
22:56:05 <monochrom> \∩/
22:56:08 <ephemient> I'm fine with either AC or ¬AC
22:56:20 <koz_> ephemient: Yes, I too agree with ZFC on this. :P
22:56:25 <Shiranai> I don't like AC because it generates a lot of non constructive proofs
22:56:36 <Shiranai> if fact it implies LEM
22:56:46 <monochrom> See? I think the real weirdness is in R, even though continuity is so bloody convenient.
22:56:53 <koz_> Shiranai: I mean, sure? However, mathematics is mostly non-constructive anyway.
22:57:06 <koz_> So the way I see it is this: everyone is LEMming it up with their ZFC, so I just gotta deal.
22:57:21 <koz_> I would _prefer_ if everything were constructive, but I'm a computer person, so of course.
22:57:31 <Shiranai> yup sadly haha, I just prefer the constructive side of it but I agree half of my knowledge disappears if you take away AC
22:57:55 <koz_> monochrom: Yes, R is weird.
22:58:03 <koz_> And I think that's probably where my mental block lies.
22:58:13 <koz_> I simply _can't_ use the same tools I can use for Q, or Z, or N, in it.
22:58:34 <koz_> Basically, the cardinality of my mental universe stops at aleph-null. :P
22:58:47 heatsink joins (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d)
22:59:10 × mp___ quits (mp@hell.cx) (Ping timeout: 256 seconds)
22:59:30 o1lo01ol1o joins (~o1lo01ol1@bl11-140-216.dsl.telepac.pt)
23:00:03 × carthia quits (~carthia@gateway/tor-sasl/carthia) (Read error: Connection reset by peer)
23:00:03 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
23:00:17 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
23:00:24 heatsink_ joins (~heatsink@2600:1700:bef1:5e10:712a:9864:5fb8:33ae)
23:00:38 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
23:00:39 × _noblegas quits (uid91066@gateway/web/irccloud.com/x-iowlmahgyhczxsfi) (Quit: Connection closed for inactivity)
23:00:44 carthia joins (~carthia@gateway/tor-sasl/carthia)
23:01:49 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Remote host closed the connection)
23:02:15 t3xp4t joins (~texinwien@213162073014.public.t-mobile.at)
23:02:59 <ephemient> hmm. maybe ℝ ≠ RealWorld, at least in the sense that I can't think of any real-life objects directly correspond to the reals
23:03:27 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e1b6:3120:de77:a70d) (Ping timeout: 260 seconds)
23:04:04 <koz_> ephemient: Frankly, N /= RealWorld too, at least as far as we can tell.
23:04:25 × o1lo01ol1o quits (~o1lo01ol1@bl11-140-216.dsl.telepac.pt) (Ping timeout: 264 seconds)
23:05:04 <koz_> I meant what I said more in the sense of 'if you give me a problem involving N, Z, or Q, I can beat it into submission with the induction hammer if worst comes to worst'.
23:05:14 <koz_> Not really something I can do with R.
23:06:36 × t3xp4t quits (~texinwien@213162073014.public.t-mobile.at) (Ping timeout: 240 seconds)
23:07:17 <ephemient> AC is induction on ℝ, sorta?
23:09:06 dandart joins (~Thunderbi@home.dandart.co.uk)
23:09:20 <monochrom> First turn induction into well-ordering: If you have a non-empty subset, then it has a minimum.
23:09:41 itai33[m] joins (itai33matr@gateway/shell/matrix.org/x-klwkmdlkmfqsikle)
23:09:43 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
23:09:55 <monochrom> Then compare with this version of R completeness: If you have a non-empty, lower-bounded subset, then it has an infinum.
23:10:26 <ephemient> yeah true, ℕ doesn't really exist either… but computers are ℕ/2^n for large values of n, and as long as whatever we're doing is independent of n, our approximation of ℕ is fine
23:10:28 <monochrom> There are some "minor" differences but they are similar in style.
23:10:30 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:10:58 <koz_> ephemient: Yes, to a human, 'very large but finite' and 'infinite' may as well be the same, agreed.
23:11:23 <koz_> 2^64 is such a gigantically ridiculous number that I have trouble even visualizing its decimal expansion.
23:11:31 <koz_> s/expansion/form/
23:12:09 <itai33[m]> depends on how you think about infinity
23:12:10 <dolio> It's not really that big in decimal.
23:12:43 <dolio> > 2^64
23:12:45 <koz_> dolio: Then I clearly lack imagination. :P
23:12:45 <lambdabot> 18446744073709551616
23:12:51 <dolio> Not even a struggle to fit on one line.
23:13:09 <ephemient> 2^64 = (2^10)^6 * 2^4 ≅ (10^3)^6 * 16 = 1.6e19
23:13:15 <itai33[m]> hey what do yall think of the adding `? = flip (.)` as an operator
23:13:25 <ephemient> :t (&)
23:13:27 <lambdabot> a -> (a -> b) -> b
23:13:48 <ephemient> :t flip (.)
23:13:49 <lambdabot> (a -> b) -> (b -> c) -> a -> c
23:13:50 <itai33[m]> yeah like we have the backwards function application operator
23:13:52 <itai33[m]> why don't we have a composition one
23:13:54 <monochrom> 2^64 is gigantic or pfft depending on whether you are tasked with "count from 1 to 2^64".
23:14:12 <dolio> Yes, in unary it's very big.
23:14:19 <b4er> :t (#>)
23:14:20 <lambdabot> error:
23:14:20 <lambdabot> • Variable not in scope: #>
23:14:20 <lambdabot> • Perhaps you meant one of these:
23:14:55 <itai33[m]> also like i feel like it should be one character long if i'm being greedy, cause then it'll align nicely
23:15:04 <itai33[m]> and `?` is basically the only thing that isn't really taken
23:15:14 × heatsink_ quits (~heatsink@2600:1700:bef1:5e10:712a:9864:5fb8:33ae) (Remote host closed the connection)
23:15:24 smitop joins (uid328768@gateway/web/irccloud.com/x-weceejnpfzqxutrk)
23:15:29 <monochrom> backward composition is called >>>
23:15:36 <itai33[m]> thing is that i feel like it's a bit presumptuous to stroll up to the CLC suggestions github and say hey wussup lads you should add this
23:15:45 <itai33[m]> monochrom: yeah i know but that's really ugly
23:15:54 <koz_> LADS rofl.
23:16:36 <itai33[m]> but i do really think that it would be a good thing to add so i don't really know where to point the suggestion to
23:16:49 <monochrom> Perhaps consider CJK semicolon ;
23:16:54 heatsink joins (~heatsink@2600:1700:bef1:5e10:712a:9864:5fb8:33ae)
23:17:01 <itai33[m]> isn't the weird semicolon the greek one
23:17:08 <itai33[m]> does CJK have a different semicolon?
23:17:08 <koz_> Vaguely relevant: https://youtu.be/9JQ3WsYUjGA?t=626
23:17:10 × kderme quits (2eb0d7c7@ppp046176215199.access.hol.gr) (Ping timeout: 245 seconds)
23:17:12 <monochrom> Yes.
23:17:18 <itai33[m]> huh
23:17:19 <monochrom> I provided it on that line.
23:17:29 <itai33[m]> but like really though
23:17:43 <itai33[m]> do you think that suggesting the `?` operator has any merit
23:17:43 <__monty__> Would that be the same as PAAMAYIM NEKUDOTAYIM?
23:17:52 <dolio> Why, though? (&) grew out of it being very useful with lenses.
23:17:53 <monochrom> Hrm I botched it.
23:18:09 <monochrom>
23:18:33 <monochrom> U+FF1B
23:18:43 <koz_> __monty__: Rofl.
23:18:49 <itai33[m]> dolio: because many times i write functions by chaining a bunch of smaller functions, and when thinking about how i transform the input it's nice to be able read the transformations in order of reading
23:18:57 <koz_> itai33[m]: Just use >>>
23:19:03 <dolio> Well, I wouldn't support that reason.
23:19:04 <itai33[m]> but it looks ugly
23:19:14 <itai33[m]> why? is it bad practice or something?
23:19:17 <koz_> itai33[m]: I mean... that's subjective AF.
23:19:29 <ephemient> let (·) = flip (.) in your own modules?
23:19:39 <koz_> ephemient: LOL
23:19:48 <dolio> Because I just got used to reading pipelines from bottom to top. It's fine.
23:19:49 <koz_> High-dot.
23:19:50 <Rembane> itai33[m]: Could you use ligatures in your fonts to make it prettier?
23:20:01 <__monty__> >>> does have a nice directionality to it that ? does not, at all.
23:20:16 <ephemient> I suppose » is more untaken than ·
23:20:23 × seveg quits (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk) (Ping timeout: 272 seconds)
23:20:33 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
23:21:04 <itai33[m]> ephemient: i mean that is what i do now with `?` but i feel like it would be a useful thing to have around
23:21:04 <ephemient> still easy to type, at least on X11 with a Compose key :D
23:21:06 seveg joins (~gabriel@2a02-ab04-0249-8d00-3603-db93-c217-257c.dynamic.v6.chello.sk)
23:21:15 <itai33[m]> @__mo
23:21:15 <lambdabot> Unknown command, try @list
23:21:15 <itai33[m]> fuck
23:21:16 × danish quits (~kvirc@109.58.42.178.mobile.3.dk) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
23:21:31 × Shiranai quits (beed0d8f@gateway/web/cgi-irc/kiwiirc.com/ip.190.237.13.143) (Quit: Connection closed)
23:21:45 <itai33[m]> __monty__: well `.` doesn't have any directionality to it, and neither do `$` OR `&`
23:22:33 <ephemient> I have done `(?) = bool` in some old code… never did come up with a good precedence level for it though
23:22:47 <__monty__> itai33[m]: . does line up with a sort of product of functions interpretation though.
23:22:54 <__monty__> I agree about $ and &.
23:23:26 <itai33[m]> i haven't really heard about the product of functions interpertation tbh
23:23:59 <itai33[m]> i looked it up and it seems that the main package that uses `?` for something is a haskell html parser or something like that, but none other ones really
23:24:19 <b4er> ephemient, probably 0. So you can write `(condition?) x y`, I kind of like it
23:24:42 <b4er> I mean so the `?` doesn't get in the way of `condition`
23:24:43 <ephemient> if you steal the F# names, (<|) = ($), (<<) = (.), (|>) = (&), (>>) = flip (.)
23:25:10 <ephemient> those symbols are already pretty heavily used in Haskell though
23:25:16 <itai33[m]> yeah i can't really steal those
23:25:26 <itai33[m]> and also i really want it to be one character long
23:25:30 <monochrom> I think >> and << are OK, even in Haskell
23:25:39 <monochrom> Like, this is not C++. :)
23:25:58 <itai33[m]> isn't >> like a monad thing
23:25:59 <ephemient> class Monad m where (>>) :: ...
23:26:04 <monochrom> Oh, oops.
23:26:18 <b4er> (>>) kind of is free with (*>)
23:26:23 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds)
23:26:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
23:26:34 <monochrom> Just hide it away, you don't actually use it do you :)
23:27:49 <ephemient> come to think of it, are there any monads with (>>) /= (*>)? I can't think of any cases where they would have legitimately different behavior, but maybe I'm unimaginative
23:28:35 <monochrom> No.
23:29:04 <monochrom> So don't worry, just use (*>) :)
23:30:21 <monochrom> Sometimes maybe some authors of instances don't make *> as efficient as >>, but this is becoming rarer as authors become more aware.
23:31:33 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-rgbhauuevaaekwgg) (Quit: Connection closed for inactivity)
23:31:56 × dandart quits (~Thunderbi@home.dandart.co.uk) (Ping timeout: 240 seconds)
23:34:21 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:34:25 dandart joins (~Thunderbi@home.dandart.co.uk)
23:35:26 × son0p quits (~son0p@181.136.122.143) (Quit: leaving)
23:36:16 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
23:36:28 chenshen joins (~chenshen@2620:10d:c090:400::5:4a42)
23:40:07 Gorbel joins (~Gorbel@p5790e186.dip0.t-ipconnect.de)
23:43:16 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:8d66:925f:69c5:e3bc) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:43:50 <b4er> Okay this might be the wrong channel, but what is the most expressive arithmetic system that is still decidable?
23:44:22 <b4er> I knew about Presburger arithmetic, but stumbled on Skolem arithmetic which also allows multiplication..
23:44:32 <koz_> b4er: It allows multiplication _instead_.
23:44:34 <koz_> Big difference.
23:44:49 <b4er> Is there something that might allow a restricted form of subtraction?
23:45:09 <koz_> b4er: How do you define subtraction over N?
23:45:19 nbloomf joins (~nbloomf@2600:1700:ad14:3020:8d66:925f:69c5:e3bc)
23:45:44 <b4er> Usually it maps negative numbers to zero, but anything goes for such a question I'd say
23:46:10 <koz_> So basically 'clipping' subtraction? I think Presburger arithmetic is capable of it.
23:46:46 <koz_> I'd say that in order to answer that question, you need to come up with what you mean by 'subtraction'.
23:46:56 <koz_> Presburger arithmetic can actually define quite a lot of surprising things.
23:47:07 <koz_> Which is why its decision procedure is doubly-exponential.
23:47:35 × boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed)
23:49:24 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
23:50:24 × dandart quits (~Thunderbi@home.dandart.co.uk) (Remote host closed the connection)
23:50:44 dandart joins (~Thunderbi@home.dandart.co.uk)
23:50:57 ym555 joins (~ym@102.47.62.107)
23:51:05 mikail_ joins (~mikail@2a02:c7f:bced:2900:73ae:8683:c80c:23b5)
23:52:09 mikail_ parts (~mikail@2a02:c7f:bced:2900:73ae:8683:c80c:23b5) ()
23:52:53 × chenshen quits (~chenshen@2620:10d:c090:400::5:4a42) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
23:54:44 <madnight> happy new year
23:55:04 mp___ joins (mp@hell.cx)
23:55:46 <koz_> madnight: Happy 2021!
23:55:53 <koz_> I'm from the future, so I'm already 13 hours in.
23:56:03 <koz_> Looks good so far - nice summer weather here.
23:57:27 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
23:57:39 kritzefitz joins (~kritzefit@212.86.56.80)
23:59:20 boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)

All times are in UTC on 2020-12-31.