2022/01/30

2022-01-30 00:09:28 +0100random-jellyfish(~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
2022-01-30 00:09:55 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-01-30 00:10:30 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 00:13:45 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
2022-01-30 00:14:36 +0100pretty_d1(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-30 00:14:39 +0100pretty_d1(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2022-01-30 00:15:46 +0100pretty_d1(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-30 00:15:57 +0100pretty_d1(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2022-01-30 00:16:14 +0100pretty_d1(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-30 00:16:26 +0100pretty_d1(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit)
2022-01-30 00:17:02 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 256 seconds)
2022-01-30 00:20:37 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2022-01-30 00:30:41 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-01-30 00:30:44 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2022-01-30 00:33:36 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 250 seconds)
2022-01-30 00:39:09 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 00:40:12 +0100max22-(~maxime@2a01cb088335980091c6fbcd4fea35f7.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-01-30 00:43:40 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2022-01-30 00:44:52 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 250 seconds)
2022-01-30 00:45:05 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2022-01-30 00:47:14 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2022-01-30 00:47:15 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 00:48:38 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 00:49:05 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 00:49:20 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2022-01-30 00:50:48 +0100notzmv(~zmv@user/notzmv)
2022-01-30 00:52:45 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
2022-01-30 00:53:50 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
2022-01-30 00:55:11 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Remote host closed the connection)
2022-01-30 00:59:26 +0100CHUD(~CHUD@host-80-41-89-108.as13285.net)
2022-01-30 01:03:24 +0100lavaman(~lavaman@98.38.249.169)
2022-01-30 01:03:54 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-01-30 01:05:02 +0100jgeerds_(~jgeerds@55d4a547.access.ecotel.net) (Ping timeout: 240 seconds)
2022-01-30 01:06:07 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-30 01:07:37 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2022-01-30 01:10:23 +0100hololeap_(~hololeap@user/hololeap)
2022-01-30 01:10:57 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2022-01-30 01:14:39 +0100hololeap_hololeap
2022-01-30 01:14:59 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
2022-01-30 01:18:37 +0100chenqisu1(~chenqisu1@183.217.200.249)
2022-01-30 01:20:46 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-30 01:20:47 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-30 01:20:47 +0100wroathe(~wroathe@user/wroathe)
2022-01-30 01:25:02 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-01-30 01:26:54 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds)
2022-01-30 01:27:58 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 01:30:16 +0100kimjetwav(~user@2607:fea8:2363:8f00:6d2:eb11:feaf:8a98)
2022-01-30 01:34:01 +0100beaky(~beaky@2a03:b0c0:0:1010::1e:a001) (Ping timeout: 250 seconds)
2022-01-30 01:34:13 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2022-01-30 01:34:56 +0100beaky(~beaky@2a03:b0c0:0:1010::1e:a001)
2022-01-30 01:36:17 +0100ChanServ+o litharge
2022-01-30 01:36:18 +0100litharge-bo *!*@209.6.150.53 litharge
2022-01-30 01:36:22 +0100Gurkenglas(~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2022-01-30 01:38:21 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8)
2022-01-30 01:39:03 +0100Erutuon(~Erutuon@user/erutuon)
2022-01-30 01:48:56 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 01:49:57 +0100nunggu(~q@user/nunggu) (Ping timeout: 276 seconds)
2022-01-30 01:50:51 +0100x_kuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-01-30 01:56:46 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2022-01-30 01:58:38 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Leaving)
2022-01-30 01:58:42 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net)
2022-01-30 01:58:43 +0100 <Inst> leaving
2022-01-30 01:58:52 +0100 <Inst> I love you guys, but tbh i have to stop annoying you guys and actually learn Haskell instead
2022-01-30 01:58:56 +0100Inst(~delicacie@c-98-208-218-119.hsd1.fl.comcast.net) (Leaving)
2022-01-30 02:06:03 +0100Tuplanolla(~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.)
2022-01-30 02:07:24 +0100 <yushyin> a bit weird
2022-01-30 02:09:03 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-01-30 02:11:49 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-01-30 02:14:48 +0100yauhsien_(~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
2022-01-30 02:17:51 +0100ProfSimm(~ProfSimm@87.227.196.109) (Remote host closed the connection)
2022-01-30 02:17:57 +0100albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-01-30 02:19:31 +0100MatthiasG2(~matthias@i6DFA01BB.versanet.de) (Quit: Lost terminal)
2022-01-30 02:19:46 +0100yauhsien_(~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
2022-01-30 02:22:37 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-01-30 02:25:24 +0100Topsi(~Tobias@dyndsl-095-033-090-071.ewe-ip-backbone.de) (Ping timeout: 250 seconds)
2022-01-30 02:27:31 +0100lbseale(~ep1ctetus@user/ep1ctetus)
2022-01-30 02:35:49 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 02:37:16 +0100argento(~argent0@168-227-97-23.ptr.westnet.com.ar)
2022-01-30 02:39:07 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 02:43:20 +0100lbseale(~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer)
2022-01-30 02:43:48 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2022-01-30 02:47:07 +0100ec(~ec@gateway/tor-sasl/ec)
2022-01-30 02:53:42 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-30 03:01:34 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-01-30 03:04:41 +0100tommd(~tommd@67-42-147-226.ptld.qwest.net)
2022-01-30 03:12:52 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 03:14:14 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 03:14:41 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 03:18:26 +0100marquis_1ndras(~marquis_a@124.170.163.166) (Quit: Lost terminal)
2022-01-30 03:19:30 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2022-01-30 03:20:25 +0100jespada(~jespada@87.74.36.188) (Ping timeout: 250 seconds)
2022-01-30 03:24:08 +0100jespada(~jespada@87.74.36.188)
2022-01-30 03:24:46 +0100zebrag(~chris@user/zebrag)
2022-01-30 03:27:12 +0100califax(~califax@user/califx) (Remote host closed the connection)
2022-01-30 03:27:41 +0100lionhairdino(~jacoo@121.131.39.82)
2022-01-30 03:28:58 +0100califax(~califax@user/califx)
2022-01-30 03:29:03 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2022-01-30 03:31:17 +0100xff0x(~xff0x@2001:1a81:52b5:2e00:a456:ec27:982:79c1) (Ping timeout: 240 seconds)
2022-01-30 03:32:42 +0100hololeap(~hololeap@user/hololeap)
2022-01-30 03:33:19 +0100xff0x(~xff0x@2001:1a81:52f3:1d00:feda:8b5a:f28:424c)
2022-01-30 03:36:55 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Quit: Konversation terminated!)
2022-01-30 03:39:26 +0100doyougnu(~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 260 seconds)
2022-01-30 03:53:25 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-01-30 03:58:49 +0100chenqisu1(~chenqisu1@183.217.200.249) (Remote host closed the connection)
2022-01-30 03:59:07 +0100chenqisu1(~chenqisu1@183.217.200.249)
2022-01-30 04:05:37 +0100pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-37-70-24-250-178.dsl.bell.ca) (Ping timeout: 240 seconds)
2022-01-30 04:06:31 +0100Null_A(~null_a@2601:645:8700:2290:8935:4edf:b32:6553)
2022-01-30 04:06:55 +0100georgy(~bc8147f2@83.167.180.121) (Quit: CGI:IRC)
2022-01-30 04:09:07 +0100chenqisu12(~chenqisu1@183.217.200.249)
2022-01-30 04:11:38 +0100chenqisu1(~chenqisu1@183.217.200.249) (Ping timeout: 256 seconds)
2022-01-30 04:13:20 +0100pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-46-67-70-100-72.dsl.bell.ca)
2022-01-30 04:17:34 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 04:19:30 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 04:25:12 +0100CHUD(~CHUD@host-80-41-89-108.as13285.net) (Remote host closed the connection)
2022-01-30 04:32:28 +0100 <EvanR> standalone deriving Read for a proper GADTs seems to be problematic
2022-01-30 04:34:52 +0100 <EvanR> I guess something is lost when using a standalone deriving Show on the same GADT
2022-01-30 04:38:48 +0100Null_A(~null_a@2601:645:8700:2290:8935:4edf:b32:6553) (Remote host closed the connection)
2022-01-30 04:40:39 +0100 <ski> existentials ?
2022-01-30 04:42:17 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat)
2022-01-30 04:43:31 +0100terrorjack(~terrorjac@2a01:4f8:1c1e:509a::1)
2022-01-30 04:43:35 +0100 <EvanR> it complained about this construction I think
2022-01-30 04:43:40 +0100 <ski> readsPrec1 :: Int -> String -> [(exists a. C a *> f a,String)] -- something like this might be useful
2022-01-30 04:43:42 +0100hgolden(~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
2022-01-30 04:43:44 +0100 <EvanR> Colorize :: Color -> Sh Bool -> Sh (Maybe Color)
2022-01-30 04:44:13 +0100 <ski> what was the complaint ?
2022-01-30 04:44:20 +0100 <EvanR> Color doesn't match Maybe Color
2022-01-30 04:45:01 +0100 <ski> not the irregularity or the indexing, then ?
2022-01-30 04:45:44 +0100 <ski> (not sure i see why one'd expect `Color' to match `Maybe Color' there. perhaps there's some other data constructor with result type `Sh Color' ?)
2022-01-30 04:46:05 +0100 <EvanR> https://paste.tomsmeding.com/YyJ9zqFV
2022-01-30 04:46:24 +0100 <EvanR> yeah there is
2022-01-30 04:46:53 +0100 <EvanR> so it's really complaining that not all the results have the same index
2022-01-30 04:47:37 +0100td_(~td@muedsl-82-207-238-224.citykom.de) (Ping timeout: 240 seconds)
2022-01-30 04:47:48 +0100 <ski> try `-ddump-deriv' to see the code ?
2022-01-30 04:48:27 +0100 <ski> i'm guessing it's generating the code as plain recursion, rather than polymorphic recursion or GADT recursion
2022-01-30 04:48:40 +0100Andrewlooks for a haskell macro system that;s as good as that of the Lisps
2022-01-30 04:48:51 +0100 <Andrew> Doesn't seem possible because no S-expressions
2022-01-30 04:48:55 +0100 <ski> (but there also might be an issue related to the polarity of the index, as i hinted at first)
2022-01-30 04:49:17 +0100 <ski> well .. i guess there's TH
2022-01-30 04:49:35 +0100td_(~td@muedsl-82-207-238-178.citykom.de)
2022-01-30 04:50:41 +0100 <EvanR> TH generates haskell code, macros generate lisp code, the concrete syntax doesn't really matter
2022-01-30 04:50:48 +0100 <EvanR> (Template Haskell)
2022-01-30 04:51:12 +0100 <ski> (also, one can use quasi-quotation with TH)
2022-01-30 04:53:05 +0100 <EvanR> well I managed to dump its Read instance and surprisingly, it looks like a Read instance
2022-01-30 04:53:11 +0100 <EvanR> it just doesn't type check
2022-01-30 04:53:34 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-01-30 04:53:39 +0100 <EvanR> I thought it was a long shot to begin with, I'll just write a parser
2022-01-30 04:53:44 +0100 <Andrew> I hate it when I see code like in the first expression of https://termbin.com/ebe7 though, haskell forces better readability
2022-01-30 04:54:38 +0100 <EvanR> code that ends in N ) is a classic though
2022-01-30 04:54:42 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2022-01-30 04:55:00 +0100 <EvanR> you're not supposed to be able to read it anyway, your editor knows if it's right
2022-01-30 04:55:02 +0100 <ski> ick ! .. the lonely parens, won't someone think of them !!
2022-01-30 04:56:09 +0100ski. o O ( "Riastradh's Lisp Style Rules" <https://mumble.net/~campbell/scheme/style.txt> )
2022-01-30 04:56:46 +0100 <ski> "Absolutely do *not* place closing brackets on their own lines.","Rationale: The parentheses grow lonely if their closing brackets are all kept separated and segregated."
2022-01-30 04:57:18 +0100 <EvanR> Do not heed this section unless you know what you are doing.
2022-01-30 04:57:40 +0100 <ski> (followed by "Exceptions to the Above Rule Concerning Line Separation","Do not heed this section unless you know what you are doing. Its title does *not* make the unacceptable example above acceptable.",..)
2022-01-30 05:00:57 +0100foul_owl(~kerry@94.140.8.105) (Read error: Connection reset by peer)
2022-01-30 05:01:43 +0100Yehoshua(~yehoshua@2001:470:69fc:105::1:593f) (K-Lined)
2022-01-30 05:01:43 +0100Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (K-Lined)
2022-01-30 05:01:43 +0100prrxddq[m](~prrxddqma@2001:470:69fc:105::1:4f72) (K-Lined)
2022-01-30 05:01:44 +0100throwaaaa[m](~throwaaaa@2001:470:69fc:105::1:6fe6) (K-Lined)
2022-01-30 05:01:44 +0100zwro[m](~zwromatri@2001:470:69fc:105::1d4) (K-Lined)
2022-01-30 05:01:44 +0100hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4) (K-Lined)
2022-01-30 05:01:44 +0100maralorn(~maralorn@2001:470:69fc:105::251) (K-Lined)
2022-01-30 05:01:44 +0100siraben(~siraben@user/siraben) (K-Lined)
2022-01-30 05:01:44 +0100vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (K-Lined)
2022-01-30 05:01:44 +0100james[m]123(~jamesnina@2001:470:69fc:105::1:4203) (K-Lined)
2022-01-30 05:01:44 +0100craige[m](~craigemcw@2001:470:69fc:105::35f1) (K-Lined)
2022-01-30 05:01:44 +0100 <ski> it's sometimes said that Lisp programmers, with some experience, don't really see the brackets that much (certainly don't keep manually counting them that often). since there's a standard indentation, people to a large extent read the structure off that
2022-01-30 05:01:44 +0100alex[m](~alexchete@2001:470:69fc:105::1:1001) (K-Lined)
2022-01-30 05:01:44 +0100aidy(~aidy@2001:470:69fc:105::c7b4) (K-Lined)
2022-01-30 05:01:44 +0100Topik[m](~topikmatr@2001:470:69fc:105::a082) (K-Lined)
2022-01-30 05:01:44 +0100eoiles[m](~eoilesmat@2001:470:69fc:105::1:6164) (K-Lined)
2022-01-30 05:01:44 +0100carmysilna(~brightly-@2001:470:69fc:105::2190) (K-Lined)
2022-01-30 05:01:44 +0100ac(~aloiscoch@2001:470:69fc:105::65) (K-Lined)
2022-01-30 05:01:44 +0100simmsb(~simmsb@2001:470:69fc:105::1:55c3) (K-Lined)
2022-01-30 05:01:44 +0100Sixto[m](~provornyc@2001:470:69fc:105::1:74df) (K-Lined)
2022-01-30 05:01:44 +0100sekun[m](~hsekmatri@2001:470:69fc:105::d18f) (K-Lined)
2022-01-30 05:01:44 +0100wildsebastian(~wildsebas@2001:470:69fc:105::1:14b1) (K-Lined)
2022-01-30 05:01:44 +0100jmcantrell(~jmcantrel@user/jmcantrell) (K-Lined)
2022-01-30 05:01:44 +0100cstml[m](~cstmlmatr@2001:470:69fc:105::1:5c07) (K-Lined)
2022-01-30 05:01:44 +0100mahene[m](~mahenemat@2001:470:69fc:105::1:6a93) (K-Lined)
2022-01-30 05:01:44 +0100Artem[m](~artemtype@2001:470:69fc:105::75b) (K-Lined)
2022-01-30 05:01:44 +0100afotgkmnzj7asv3r(~afotgkmnz@2001:470:69fc:105::c24b) (K-Lined)
2022-01-30 05:01:44 +0100bb010g(~bb010g@2001:470:69fc:105::9a5) (K-Lined)
2022-01-30 05:01:44 +0100ekai[m](~ekai-zend@2001:470:69fc:105::1:7756) (K-Lined)
2022-01-30 05:01:45 +0100benjamin[m]1234(~benjaminm@2001:470:69fc:105::1:3f2f) (K-Lined)
2022-01-30 05:01:45 +0100sjanssen(~sjanssenm@2001:470:69fc:105::1:61d8) (K-Lined)
2022-01-30 05:01:45 +0100Tisoxin(~ikosit@user/ikosit) (K-Lined)
2022-01-30 05:01:45 +0100thomasjm[m](~thomasjmm@2001:470:69fc:105::c6d9) (K-Lined)
2022-01-30 05:01:45 +0100peddie(~peddie@2001:470:69fc:105::25d) (K-Lined)
2022-01-30 05:01:45 +0100oak-(~oakuniver@2001:470:69fc:105::fcd) (K-Lined)
2022-01-30 05:01:45 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd) (K-Lined)
2022-01-30 05:01:45 +0100schuelermine[m](~schuelerm@user/schuelermine) (K-Lined)
2022-01-30 05:01:45 +0100zfnmxt(~zfnmxtzfn@user/zfnmxt) (K-Lined)
2022-01-30 05:01:45 +0100denbrahe(~denbrahe@2001:470:69fc:105::19c0) (K-Lined)
2022-01-30 05:01:45 +0100mmos[m](~mmosmatri@2001:470:69fc:105::1:8340) (K-Lined)
2022-01-30 05:01:45 +0100nomeata(~nomeata@2001:470:69fc:105::1:5ed4) (K-Lined)
2022-01-30 05:01:45 +0100JoseC[m](~jmcardonm@2001:470:69fc:105::1:7539) (K-Lined)
2022-01-30 05:01:45 +0100marinelli[m](~marinelli@2001:470:69fc:105::2d8) (K-Lined)
2022-01-30 05:01:45 +0100kadoban(~kadoban@user/kadoban) (K-Lined)
2022-01-30 05:01:45 +0100ParsaAlizadeh[m](~lizadehma@2001:470:69fc:105::1:65a4) (K-Lined)
2022-01-30 05:01:45 +0100Arathorn(~arathorn@2001:470:69fc:105::1f) (K-Lined)
2022-01-30 05:01:45 +0100Deide(~deide@user/deide) (K-Lined)
2022-01-30 05:01:45 +0100phuegrvs[m](~phuegrvsm@2001:470:69fc:105::1:65e4) (K-Lined)
2022-01-30 05:01:45 +0100cdsmith(~cdsmithma@2001:470:69fc:105::284) (K-Lined)
2022-01-30 05:01:45 +0100SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2) (K-Lined)
2022-01-30 05:01:45 +0100soft(~soft@2001:470:69fc:105::c75) (K-Lined)
2022-01-30 05:01:45 +0100reza[m](~rezaphone@2001:470:69fc:105::3eda) (K-Lined)
2022-01-30 05:01:45 +0100finalti[m](~finaltima@2001:470:69fc:105::d909) (K-Lined)
2022-01-30 05:01:45 +0100jneira[m](~jneiramat@2001:470:69fc:105::d729) (K-Lined)
2022-01-30 05:01:46 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9) (K-Lined)
2022-01-30 05:01:46 +0100smichel17[m](~smichel17@2001:470:69fc:105::2d32) (K-Lined)
2022-01-30 05:01:46 +0100sm(~sm@plaintextaccounting/sm) (K-Lined)
2022-01-30 05:01:46 +0100ongy[m](~ongymatri@2001:470:69fc:105::5018) (K-Lined)
2022-01-30 05:01:46 +0100jchia[m](~jchiamatr@2001:470:69fc:105::c50b) (K-Lined)
2022-01-30 05:01:46 +0100Michal[m](~oomiguelm@2001:470:69fc:105::1:5ab0) (K-Lined)
2022-01-30 05:01:46 +0100sofviic[m](~sofviicma@2001:470:69fc:105::1:51fd) (K-Lined)
2022-01-30 05:01:46 +0100ormaaj(~ormaaj@user/ormaaj) (K-Lined)
2022-01-30 05:01:46 +0100yehoshuapw(~yehoshuap@2001:470:69fc:105::a5f) (K-Lined)
2022-01-30 05:01:46 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886) (K-Lined)
2022-01-30 05:01:46 +0100litharn[m](~litharnma@2001:470:69fc:105::1:8336) (K-Lined)
2022-01-30 05:01:46 +0100cherryblossom[m](~cherryblo@2001:470:69fc:105::b789) (K-Lined)
2022-01-30 05:01:46 +0100Nate[m]1(~m52957mat@2001:470:69fc:105::1:591a) (K-Lined)
2022-01-30 05:01:46 +0100jesser[m](~jessermat@2001:470:69fc:105::d5ae) (K-Lined)
2022-01-30 05:01:46 +0100thejuan24f[m](~thejuan2m@2001:470:69fc:105::1:6569) (K-Lined)
2022-01-30 05:01:46 +0100octeep[m](~octeepoct@2001:470:69fc:105::1:3dbf) (K-Lined)
2022-01-30 05:01:46 +0100xbreu(~xbreu@2001:470:69fc:105::1:5061) (K-Lined)
2022-01-30 05:01:46 +0100kalxd[m](~kalxdmatr@2001:470:69fc:105::1:576e) (K-Lined)
2022-01-30 05:01:46 +0100quantum(~quantum@user/quantum/x-8556232) (K-Lined)
2022-01-30 05:01:46 +0100SawyerBergeron[m(~sawyerber@2001:470:69fc:105::3036) (K-Lined)
2022-01-30 05:01:46 +0100alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba) (K-Lined)
2022-01-30 05:01:46 +0100ericson2314(~ericson23@2001:470:69fc:105::70c) (K-Lined)
2022-01-30 05:01:46 +0100joaquinmg[m](~joaquinmg@2001:470:69fc:105::1:67d2) (K-Lined)
2022-01-30 05:01:47 +0100jinsun_(~jinsun@user/jinsun) (K-Lined)
2022-01-30 05:01:47 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be) (K-Lined)
2022-01-30 05:01:47 +0100bitonic(~bitonic@2001:470:69fc:105::1812) (K-Lined)
2022-01-30 05:01:47 +0100juhp[m](~juhpmatri@2001:470:69fc:105::6e9) (K-Lined)
2022-01-30 05:01:47 +0100moats(~oats@user/oats) (K-Lined)
2022-01-30 05:01:47 +0100amesgen[m](~amesgenm]@2001:470:69fc:105::82b) (K-Lined)
2022-01-30 05:01:47 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (K-Lined)
2022-01-30 05:01:47 +0100fgaz(~fgaz@2001:470:69fc:105::842) (K-Lined)
2022-01-30 05:01:47 +0100justosophy[m](~justosoph@2001:470:69fc:105::572f) (K-Lined)
2022-01-30 05:01:47 +0100tripa[m](~tripamatr@2001:470:69fc:105::1:4f7e) (K-Lined)
2022-01-30 05:01:47 +0100RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57) (K-Lined)
2022-01-30 05:01:47 +0100wysteriary[m](~wysteriar@2001:470:69fc:105::a42e) (K-Lined)
2022-01-30 05:01:47 +0100pfurla-matrix(~pedrofurl@2001:470:69fc:105::1:51d7) (K-Lined)
2022-01-30 05:01:47 +0100codygman[m](~codygman@2001:470:69fc:105::b4ba) (K-Lined)
2022-01-30 05:01:47 +0100psydroid(~psydroid@user/psydroid) (K-Lined)
2022-01-30 05:01:47 +0100Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8) (K-Lined)
2022-01-30 05:01:47 +0100Orbstheorem(~orbstheor@2001:470:69fc:105::a56) (K-Lined)
2022-01-30 05:01:47 +0100unclechu(~unclechu@2001:470:69fc:105::354) (K-Lined)
2022-01-30 05:01:47 +0100Las[m](~lasmatrix@2001:470:69fc:105::74e) (K-Lined)
2022-01-30 05:01:47 +0100unrooted(~unrooted@2001:470:69fc:105::a4a) (K-Lined)
2022-01-30 05:01:47 +0100Heffalump[m](~hsenagmat@2001:470:69fc:105::e11) (K-Lined)
2022-01-30 05:01:51 +0100 <EvanR> Andrew has inspired me to print out and read back this structure as an S expr
2022-01-30 05:02:09 +0100skistares blankly at the above
2022-01-30 05:02:34 +0100 <EvanR> a mix of matrix users and others got K-lined
2022-01-30 05:02:55 +0100skinods
2022-01-30 05:03:36 +0100 <EvanR> it's like a hundred silent voices suddenly... remained silent
2022-01-30 05:04:09 +0100 <ski> (tbh, there has been a few attempts to actually get rid of the brackets (mostly, at least), and simply use indentation for the tree structure .. however, there are some quirks, like `((...) ...)' and `(... . ...)' that are harder to fit into such a style)
2022-01-30 05:04:49 +0100 <ski> (but, if anyone's curious, i could point to two or three SRFIs (Scheme Requests For Implementation) that's about such surface syntices)
2022-01-30 05:04:49 +0100 <EvanR> reintroduce brackets when you want to "put indentation on one line" ?
2022-01-30 05:04:58 +0100 <ski> yea, they tend to allow that
2022-01-30 05:05:04 +0100lavaman(~lavaman@98.38.249.169)
2022-01-30 05:07:28 +0100 <ephemient> https://shaunlebron.github.io/parinfer/ looks pretty cool but like all alternate lisp syntaxes it seems dead
2022-01-30 05:09:38 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2022-01-30 05:09:53 +0100 <EvanR> would lisp really be lisp anymore
2022-01-30 05:10:17 +0100 <EvanR> like taking jos wheadon out of The Avengers
2022-01-30 05:10:57 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 240 seconds)
2022-01-30 05:11:37 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 240 seconds)
2022-01-30 05:12:54 +0100 <EvanR> wait now I need to scroll back to the existentials comment
2022-01-30 05:14:10 +0100 <EvanR> a parser for a proper GADT would necessarily return an existential right
2022-01-30 05:14:38 +0100 <EvanR> oh, it can do like juicy pixels and return a sum type
2022-01-30 05:17:16 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-01-30 05:18:56 +0100foul_owl(~kerry@174-21-143-101.tukw.qwest.net)
2022-01-30 05:22:36 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 05:25:40 +0100lavaman(~lavaman@98.38.249.169)
2022-01-30 05:26:13 +0100 <ski> well, here's three (more) : "Indentation-sensitive syntax" <https://srfi.schemers.org/srfi-49/>,"wisp: simpler indentation-sensitive scheme" <https://srfi.schemers.org/srfi-119/>,"Sweet-expressions (t-expressions)" <https://srfi.schemers.org/srfi-110/>
2022-01-30 05:26:26 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 256 seconds)
2022-01-30 05:26:38 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 05:27:19 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2022-01-30 05:27:32 +0100 <ski> @where liskell
2022-01-30 05:27:32 +0100 <lambdabot> a SExp syntax for Haskell, by therp : <http://clemens.endorphin.org/liskell> (broken),<https://web.archive.org/web/20081105133119/http://clemens.endorphin.org/liskell>,<http://clemens.endorphin.org/
2022-01-30 05:27:32 +0100 <lambdabot> ILC07-Liskell-draft.pdf>,<https://web.archive.org/web/20120609122549/http://www.liskell.org/>
2022-01-30 05:27:55 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 05:27:57 +0100 <ski> EvanR : "a parser for a proper GADT would necessarily return an existential right" -- no .. it depends on what you want out of the parser
2022-01-30 05:28:32 +0100 <EvanR> the "original" GADT that was stringified
2022-01-30 05:28:33 +0100s4msung(bZt8T9wHxn@user/s4msung)
2022-01-30 05:28:40 +0100 <ski> if you're satisfied with treating the index as input (iow you know beforehand whether you're looking for `Sh Color' or `Sh (Maybe Color)'), then you don't need to muck about existentials
2022-01-30 05:28:52 +0100 <EvanR> right
2022-01-30 05:28:57 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-01-30 05:29:02 +0100 <ski> but if you want it as output (you discover the type as you parse), then you do need existentials
2022-01-30 05:29:16 +0100chenqisu12(~chenqisu1@183.217.200.249) (Ping timeout: 256 seconds)
2022-01-30 05:29:21 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-01-30 05:29:31 +0100 <ski> (granted, usually people will probably want the latter, not just the former)
2022-01-30 05:29:53 +0100 <EvanR> the former could work but I'm not sure how much simpler it would be
2022-01-30 05:30:09 +0100 <ski> but then a question is which constraints do you expect to get, on the existential ?
2022-01-30 05:30:09 +0100Null_A(~null_a@2601:645:8700:2290:6509:ee11:ea28:47c)
2022-01-30 05:30:21 +0100 <EvanR> I don't use any constraints
2022-01-30 05:30:43 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2022-01-30 05:30:46 +0100ksqsf(~user@2001:da8:d800:611:d162:136f:2ecb:b741)
2022-01-30 05:30:58 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 05:31:03 +0100 <ski> it'll probably depend on the GADT .. and possibly, in some cases, also on the particular usage of parsing it (so that we don't necessarily have an FD from the GADT to the constraint)
2022-01-30 05:31:18 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2022-01-30 05:31:48 +0100 <ski> yea, often it'll not be necessary (since you could often simply recover it, by traversing the GADT, to a greater or lesser degree)
2022-01-30 05:32:05 +0100peddie(~peddie@2001:470:69fc:105::25d)
2022-01-30 05:32:05 +0100amesgen[m](~amesgenm]@2001:470:69fc:105::82b)
2022-01-30 05:32:05 +0100thomasjm[m](~thomasjmm@2001:470:69fc:105::c6d9)
2022-01-30 05:32:05 +0100JoseC[m](~jmcardonm@2001:470:69fc:105::1:7539)
2022-01-30 05:32:05 +0100zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32)
2022-01-30 05:32:05 +0100kadoban(~kadoban@user/kadoban)
2022-01-30 05:32:05 +0100unclechu(~unclechu@2001:470:69fc:105::354)
2022-01-30 05:32:06 +0100maralorn(~maralorn@2001:470:69fc:105::251)
2022-01-30 05:32:06 +0100quantum(~quantum@user/quantum/x-8556232)
2022-01-30 05:32:06 +0100Topik[m](~topikmatr@2001:470:69fc:105::a082)
2022-01-30 05:32:06 +0100marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2022-01-30 05:32:06 +0100finalti[m](~finaltima@2001:470:69fc:105::d909)
2022-01-30 05:32:06 +0100schuelermine[m](~schuelerm@user/schuelermine)
2022-01-30 05:32:06 +0100sm(~sm@plaintextaccounting/sm)
2022-01-30 05:32:06 +0100Deide(~deide@user/deide)
2022-01-30 05:32:06 +0100hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4)
2022-01-30 05:32:06 +0100psydroid(~psydroid@user/psydroid)
2022-01-30 05:32:06 +0100Artem[m](~artemtype@2001:470:69fc:105::75b)
2022-01-30 05:32:06 +0100Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8)
2022-01-30 05:32:06 +0100alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba)
2022-01-30 05:32:06 +0100jneira[m](~jneiramat@2001:470:69fc:105::d729)
2022-01-30 05:32:06 +0100smichel17[m](~smichel17@2001:470:69fc:105::2d32)
2022-01-30 05:32:06 +0100SawyerBergeron[m(~sawyerber@2001:470:69fc:105::3036)
2022-01-30 05:32:06 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be)
2022-01-30 05:32:06 +0100Tisoxin(~ikosit@user/ikosit)
2022-01-30 05:32:06 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2022-01-30 05:32:06 +0100aidy(~aidy@2001:470:69fc:105::c7b4)
2022-01-30 05:32:06 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886)
2022-01-30 05:32:06 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2022-01-30 05:32:06 +0100jmcantrell(~jmcantrel@user/jmcantrell)
2022-01-30 05:32:06 +0100vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2022-01-30 05:32:06 +0100carmysilna(~brightly-@2001:470:69fc:105::2190)
2022-01-30 05:32:06 +0100jinsun_(~jinsun@user/jinsun)
2022-01-30 05:32:07 +0100joaquinmg[m](~joaquinmg@2001:470:69fc:105::1:67d2)
2022-01-30 05:32:07 +0100d34df00d(~d34df00d@2600:1700:8c60:3a10::48) (Excess Flood)
2022-01-30 05:32:07 +0100Heffalump[m](~hsenagmat@2001:470:69fc:105::e11)
2022-01-30 05:32:08 +0100prrxddq[m](~prrxddqma@2001:470:69fc:105::1:4f72)
2022-01-30 05:32:08 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9)
2022-01-30 05:32:08 +0100ac(~aloiscoch@2001:470:69fc:105::65)
2022-01-30 05:32:08 +0100bitonic(~bitonic@2001:470:69fc:105::1812)
2022-01-30 05:32:08 +0100xbreu(~xbreu@2001:470:69fc:105::1:5061)
2022-01-30 05:32:08 +0100SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2)
2022-01-30 05:32:08 +0100ormaaj(~ormaaj@user/ormaaj)
2022-01-30 05:32:08 +0100Orbstheorem(~orbstheor@2001:470:69fc:105::a56)
2022-01-30 05:32:08 +0100pfurla-matrix(~pedrofurl@2001:470:69fc:105::1:51d7)
2022-01-30 05:32:08 +0100thejuan24f[m](~thejuan2m@2001:470:69fc:105::1:6569)
2022-01-30 05:32:08 +0100ParsaAlizadeh[m](~lizadehma@2001:470:69fc:105::1:65a4)
2022-01-30 05:32:08 +0100cstml[m](~cstmlmatr@2001:470:69fc:105::1:5c07)
2022-01-30 05:32:09 +0100zwro[m](~zwromatri@2001:470:69fc:105::1d4)
2022-01-30 05:32:13 +0100 <ski> whee
2022-01-30 05:32:14 +0100juhp[m](~juhpmatri@2001:470:69fc:105::6e9)
2022-01-30 05:32:16 +0100mmos[m](~mmosmatri@2001:470:69fc:105::1:8340)
2022-01-30 05:32:17 +0100reza[m](~rezaphone@2001:470:69fc:105::3eda)
2022-01-30 05:32:17 +0100soft(~soft@2001:470:69fc:105::c75)
2022-01-30 05:32:17 +0100sekun[m](~hsekmatri@2001:470:69fc:105::d18f)
2022-01-30 05:32:17 +0100jchia[m](~jchiamatr@2001:470:69fc:105::c50b)
2022-01-30 05:32:18 +0100wysteriary[m](~wysteriar@2001:470:69fc:105::a42e)
2022-01-30 05:32:18 +0100Michal[m](~oomiguelm@2001:470:69fc:105::1:5ab0)
2022-01-30 05:32:18 +0100justosophy[m](~justosoph@2001:470:69fc:105::572f)
2022-01-30 05:32:18 +0100RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57)
2022-01-30 05:32:18 +0100craige[m](~craigemcw@2001:470:69fc:105::35f1)
2022-01-30 05:32:18 +0100Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2022-01-30 05:32:19 +0100Arathorn(~arathorn@2001:470:69fc:105::1f)
2022-01-30 05:32:19 +0100ongy[m](~ongymatri@2001:470:69fc:105::5018)
2022-01-30 05:32:19 +0100sjanssen(~sjanssenm@2001:470:69fc:105::1:61d8)
2022-01-30 05:32:19 +0100EkaiZend[m](~ekai-zend@2001:470:69fc:105::1:7756)
2022-01-30 05:32:19 +0100oak-(~oakuniver@2001:470:69fc:105::fcd)
2022-01-30 05:32:19 +0100ericson2314(~ericson23@2001:470:69fc:105::70c)
2022-01-30 05:32:19 +0100Yehoshua(~yehoshua@2001:470:69fc:105::1:593f)
2022-01-30 05:32:19 +0100fgaz(~fgaz@2001:470:69fc:105::842)
2022-01-30 05:32:19 +0100tripa[m](~tripamatr@2001:470:69fc:105::1:4f7e)
2022-01-30 05:32:19 +0100cdsmith(~cdsmithma@2001:470:69fc:105::284)
2022-01-30 05:32:19 +0100bb010g(~bb010g@2001:470:69fc:105::9a5)
2022-01-30 05:32:19 +0100Las[m](~lasmatrix@2001:470:69fc:105::74e)
2022-01-30 05:32:20 +0100nomeata(~nomeata@2001:470:69fc:105::1:5ed4)
2022-01-30 05:32:20 +0100denbrahe(~denbrahe@2001:470:69fc:105::19c0)
2022-01-30 05:32:20 +0100mahene[m](~mahenemat@2001:470:69fc:105::1:6a93)
2022-01-30 05:32:20 +0100yehoshuapw(~yehoshuap@2001:470:69fc:105::a5f)
2022-01-30 05:32:20 +0100cherryblossom[m](~cherryblo@2001:470:69fc:105::b789)
2022-01-30 05:32:20 +0100octeep[m](~octeepoct@2001:470:69fc:105::1:3dbf)
2022-01-30 05:32:20 +0100jesser[m](~jessermat@2001:470:69fc:105::d5ae)
2022-01-30 05:32:20 +0100throwaaaa[m](~throwaaaa@2001:470:69fc:105::1:6fe6)
2022-01-30 05:32:20 +0100Sixto[m](~provornyc@2001:470:69fc:105::1:74df)
2022-01-30 05:32:20 +0100kalxd[m](~kalxdmatr@2001:470:69fc:105::1:576e)
2022-01-30 05:32:20 +0100unrooted(~unrooted@2001:470:69fc:105::a4a)
2022-01-30 05:32:20 +0100Nate[m](~m52957mat@2001:470:69fc:105::1:591a)
2022-01-30 05:32:20 +0100sofviic[m](~sofviicma@2001:470:69fc:105::1:51fd)
2022-01-30 05:32:20 +0100siraben(~siraben@user/siraben)
2022-01-30 05:32:20 +0100moats(~oats@user/oats)
2022-01-30 05:32:20 +0100eoiles[m](~eoilesmat@2001:470:69fc:105::1:6164)
2022-01-30 05:32:20 +0100litharn[m](~litharnma@2001:470:69fc:105::1:8336)
2022-01-30 05:32:20 +0100wildsebastian(~wildsebas@2001:470:69fc:105::1:14b1)
2022-01-30 05:32:21 +0100benjamin[m]123(~benjaminm@2001:470:69fc:105::1:3f2f)
2022-01-30 05:32:21 +0100phuegrvs[m](~phuegrvsm@2001:470:69fc:105::1:65e4)
2022-01-30 05:32:21 +0100afotgkmnzj7asv3r(~afotgkmnz@2001:470:69fc:105::c24b)
2022-01-30 05:32:22 +0100codygman[m](~codygman@2001:470:69fc:105::b4ba)
2022-01-30 05:32:22 +0100james[m]123(~jamesnina@2001:470:69fc:105::1:4203)
2022-01-30 05:32:22 +0100simmsb(~simmsb@2001:470:69fc:105::1:55c3)
2022-01-30 05:32:23 +0100alex[m]123456(~alexchete@2001:470:69fc:105::1:1001)
2022-01-30 05:32:28 +0100 <EvanR> a functional dependency from the GADT to the constraint?
2022-01-30 05:32:39 +0100 <ski> rather, a lack thereof
2022-01-30 05:32:39 +0100 <ephemient> doesn't Generic give you a way to traverse a GADT?
2022-01-30 05:33:39 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 250 seconds)
2022-01-30 05:34:12 +0100 <EvanR> here is my GADT if you're curious, pretty simple right now https://paste.tomsmeding.com/emd6bFhl
2022-01-30 05:36:13 +0100 <EvanR> not tonight, but I want to see if I can add let bindings, free variables, higher order abstract syntax. All of which I'll need to heavily review
2022-01-30 05:39:35 +0100 <EvanR> in this case the parser can get away with returning data DynamicSh = ShBW (Sh Bool) | ShColor (Sh Color) | ShCutout (Sh (Maybe Color)), I think
2022-01-30 05:39:47 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-30 05:39:47 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-30 05:39:47 +0100wroathe(~wroathe@user/wroathe)
2022-01-30 05:40:35 +0100ksqsf(~user@2001:da8:d800:611:d162:136f:2ecb:b741) (Ping timeout: 250 seconds)
2022-01-30 05:43:12 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 05:43:25 +0100segfaultfizzbuzz(~rustisafu@2602:306:cd3c:9350:59e3:db49:aa0a:46e5) (Ping timeout: 250 seconds)
2022-01-30 05:43:44 +0100burnsidesLlama(~burnsides@client-8-89.eduroam.oxuni.org.uk)
2022-01-30 05:44:30 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2022-01-30 05:47:12 +0100maralorn(~maralorn@2001:470:69fc:105::251) (Quit: Client limit exceeded: 20000)
2022-01-30 05:47:13 +0100vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Client limit exceeded: 20000)
2022-01-30 05:47:20 +0100carmysilna(~brightly-@2001:470:69fc:105::2190) (Quit: Client limit exceeded: 20000)
2022-01-30 05:47:29 +0100zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32) (Quit: Client limit exceeded: 20000)
2022-01-30 05:47:32 +0100quantum(~quantum@user/quantum/x-8556232) (Quit: Client limit exceeded: 20000)
2022-01-30 05:47:47 +0100Deide(~deide@user/deide) (Quit: Client limit exceeded: 20000)
2022-01-30 05:47:51 +0100bitonic(~bitonic@2001:470:69fc:105::1812) (Quit: Client limit exceeded: 20000)
2022-01-30 05:47:51 +0100burnsidesLlama(~burnsides@client-8-89.eduroam.oxuni.org.uk) (Ping timeout: 245 seconds)
2022-01-30 05:48:03 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Quit: Client limit exceeded: 20000)
2022-01-30 05:48:23 +0100Artem[m](~artemtype@2001:470:69fc:105::75b) (Quit: Client limit exceeded: 20000)
2022-01-30 05:48:24 +0100jmcantrell(~jmcantrel@user/jmcantrell) (Quit: Client limit exceeded: 20000)
2022-01-30 05:48:28 +0100jinsun_(~jinsun@user/jinsun) (Quit: Client limit exceeded: 20000)
2022-01-30 05:48:34 +0100jneira[m](~jneiramat@2001:470:69fc:105::d729) (Quit: Client limit exceeded: 20000)
2022-01-30 05:48:44 +0100xbreu(~xbreu@2001:470:69fc:105::1:5061) (Quit: Client limit exceeded: 20000)
2022-01-30 05:48:47 +0100smichel17[m](~smichel17@2001:470:69fc:105::2d32) (Quit: Client limit exceeded: 20000)
2022-01-30 05:48:51 +0100JoseC[m](~jmcardonm@2001:470:69fc:105::1:7539) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:12 +0100Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:32 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:43 +0100ac(~aloiscoch@2001:470:69fc:105::65) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:47 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:47 +0100thejuan24f[m](~thejuan2m@2001:470:69fc:105::1:6569) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:47 +0100ParsaAlizadeh[m](~lizadehma@2001:470:69fc:105::1:65a4) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:48 +0100amesgen[m](~amesgenm]@2001:470:69fc:105::82b) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:48 +0100schuelermine[m](~schuelerm@user/schuelermine) (Quit: Client limit exceeded: 20000)
2022-01-30 05:49:54 +0100ksqsf(~user@2001:da8:d800:611:51cf:77ee:66a1:4f90)
2022-01-30 05:50:00 +0100SawyerBergeron[m(~sawyerber@2001:470:69fc:105::3036) (Quit: Client limit exceeded: 20000)
2022-01-30 05:50:09 +0100pfurla-matrix(~pedrofurl@2001:470:69fc:105::1:51d7) (Quit: Client limit exceeded: 20000)
2022-01-30 05:50:13 +0100 <ski> ok, no existentials there
2022-01-30 05:50:14 +0100doyougnu(~doyougnu@cpe-67-249-83-190.twcny.res.rr.com)
2022-01-30 05:50:16 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd) (Quit: Client limit exceeded: 20000)
2022-01-30 05:50:19 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9) (Quit: Client limit exceeded: 20000)
2022-01-30 05:50:21 +0100marinelli[m](~marinelli@2001:470:69fc:105::2d8) (Quit: Client limit exceeded: 20000)
2022-01-30 05:50:28 +0100amesgen[m](~amesgenm]@2001:470:69fc:105::82b)
2022-01-30 05:50:40 +0100JoseC[m](~jmcardonm@2001:470:69fc:105::1:7539)
2022-01-30 05:50:54 +0100zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32)
2022-01-30 05:51:03 +0100Orbstheorem(~orbstheor@2001:470:69fc:105::a56) (Quit: Client limit exceeded: 20000)
2022-01-30 05:51:07 +0100 <ski> (`let' would presumably bring them, though .. and then you'd possibly need to consider if you'd want to annotate the existentials with constraints)
2022-01-30 05:51:14 +0100maralorn(~maralorn@2001:470:69fc:105::251)
2022-01-30 05:51:14 +0100quantum(~quantum@user/quantum/x-8556232)
2022-01-30 05:51:28 +0100marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2022-01-30 05:51:30 +0100schuelermine[m](~schuelerm@user/schuelermine)
2022-01-30 05:51:45 +0100Deide(~deide@user/deide)
2022-01-30 05:51:46 +0100Artem[m](~artemtype@2001:470:69fc:105::75b)
2022-01-30 05:51:46 +0100Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8)
2022-01-30 05:51:59 +0100jneira[m](~jneiramat@2001:470:69fc:105::d729)
2022-01-30 05:52:01 +0100smichel17[m](~smichel17@2001:470:69fc:105::2d32)
2022-01-30 05:52:05 +0100zwro[m](~zwromatri@2001:470:69fc:105::1d4) (Quit: Client limit exceeded: 20000)
2022-01-30 05:52:13 +0100 <ski> EvanR : yea .. but how do you get to `DynamicSh' ? do you simply try enumerating the alternatives ?
2022-01-30 05:52:18 +0100SawyerBergeron[m(~sawyerber@2001:470:69fc:105::3036)
2022-01-30 05:52:30 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be)
2022-01-30 05:52:34 +0100carmysilna(~brightly-@2001:470:69fc:105::2190)
2022-01-30 05:52:41 +0100SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2) (Quit: Client limit exceeded: 20000)
2022-01-30 05:52:41 +0100alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba) (Quit: Client limit exceeded: 20000)
2022-01-30 05:52:47 +0100aidy(~aidy@2001:470:69fc:105::c7b4) (Quit: Client limit exceeded: 20000)
2022-01-30 05:52:48 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2022-01-30 05:52:49 +0100Heffalump[m](~hsenagmat@2001:470:69fc:105::e11) (Quit: Client limit exceeded: 20000)
2022-01-30 05:52:53 +0100cstml[m](~cstmlmatr@2001:470:69fc:105::1:5c07) (Quit: Client limit exceeded: 20000)
2022-01-30 05:52:53 +0100thomasjm[m](~thomasjmm@2001:470:69fc:105::c6d9) (Quit: Client limit exceeded: 20000)
2022-01-30 05:52:56 +0100prrxddq[m](~prrxddqma@2001:470:69fc:105::1:4f72) (Quit: Client limit exceeded: 20000)
2022-01-30 05:52:57 +0100joaquinmg[m](~joaquinmg@2001:470:69fc:105::1:67d2) (Quit: Client limit exceeded: 20000)
2022-01-30 05:53:00 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886)
2022-01-30 05:53:02 +0100aidy(~aidy@2001:470:69fc:105::c7b4)
2022-01-30 05:53:20 +0100vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2022-01-30 05:53:20 +0100jmcantrell(~jmcantrel@user/jmcantrell)
2022-01-30 05:53:20 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2022-01-30 05:53:20 +0100jinsun_(~jinsun@user/jinsun)
2022-01-30 05:53:23 +0100finalti[m](~finaltima@2001:470:69fc:105::d909) (Quit: Client limit exceeded: 20000)
2022-01-30 05:53:32 +0100joaquinmg[m](~joaquinmg@2001:470:69fc:105::1:67d2)
2022-01-30 05:53:50 +0100Heffalump[m](~hsenagmat@2001:470:69fc:105::e11)
2022-01-30 05:54:04 +0100prrxddq[m](~prrxddqma@2001:470:69fc:105::1:4f72)
2022-01-30 05:54:18 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9)
2022-01-30 05:54:30 +0100xbreu(~xbreu@2001:470:69fc:105::1:5061)
2022-01-30 05:54:30 +0100ac(~aloiscoch@2001:470:69fc:105::65)
2022-01-30 05:54:31 +0100bitonic(~bitonic@2001:470:69fc:105::1812)
2022-01-30 05:54:43 +0100SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2)
2022-01-30 05:54:57 +0100Orbstheorem(~orbstheor@2001:470:69fc:105::a56)
2022-01-30 05:55:53 +0100pfurla-matrix(~pedrofurl@2001:470:69fc:105::1:51d7)
2022-01-30 05:55:57 +0100argento(~argent0@168-227-97-23.ptr.westnet.com.ar) (Quit: leaving)
2022-01-30 05:56:11 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds)
2022-01-30 05:56:21 +0100thejuan24f[m](~thejuan2m@2001:470:69fc:105::1:6569)
2022-01-30 05:56:35 +0100ParsaAlizadeh[m](~lizadehma@2001:470:69fc:105::1:65a4)
2022-01-30 05:56:38 +0100ksqsf(~user@2001:da8:d800:611:51cf:77ee:66a1:4f90) (Ping timeout: 260 seconds)
2022-01-30 05:56:50 +0100cstml[m](~cstmlmatr@2001:470:69fc:105::1:5c07)
2022-01-30 05:57:02 +0100zwro[m](~zwromatri@2001:470:69fc:105::1d4)
2022-01-30 05:58:22 +0100ormaaj(~ormaaj@user/ormaaj) (Quit: Client limit exceeded: 20000)
2022-01-30 05:58:24 +0100 <EvanR> ski, eyeballing each constructor... it seems like sometimes it's straight forward how to parse the payload or die trying, it's expecting something with a particular type, in two cases it's totally polymorphic so whatever comes back from the recursive parser could be used...
2022-01-30 05:58:32 +0100psydroid(~psydroid@user/psydroid) (Quit: Client limit exceeded: 20000)
2022-01-30 05:58:33 +0100hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4) (Quit: Client limit exceeded: 20000)
2022-01-30 05:58:37 +0100thomasjm[m](~thomasjmm@2001:470:69fc:105::c6d9)
2022-01-30 05:58:37 +0100finalti[m](~finaltima@2001:470:69fc:105::d909)
2022-01-30 05:58:52 +0100hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4)
2022-01-30 05:58:53 +0100psydroid(~psydroid@user/psydroid)
2022-01-30 05:58:53 +0100alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba)
2022-01-30 05:58:53 +0100ormaaj(~ormaaj@user/ormaaj)
2022-01-30 05:59:41 +0100 <ski> EvanR : yea, i guess it's more `Layer',`Shift' and `Xform' which are problematic, in that sense
2022-01-30 05:59:50 +0100kadoban(~kadoban@user/kadoban) (Quit: Client limit exceeded: 20000)
2022-01-30 06:01:48 +0100deadmarshal(~deadmarsh@95.38.113.75)
2022-01-30 06:02:22 +0100ksqsf(~user@114.214.178.136)
2022-01-30 06:02:40 +0100 <EvanR> the three possible results each have a monotype, so that would let Layer construct if the two Dyn results matched
2022-01-30 06:02:41 +0100kadoban(~kadoban@user/kadoban)
2022-01-30 06:03:03 +0100 <ksqsf> Is it possible to set multiple implicit parameters by simply calling a function, instead of 'let' them one by one?
2022-01-30 06:03:22 +0100 <ksqsf> like the implicitparams version of defaultXXX
2022-01-30 06:04:42 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2022-01-30 06:07:51 +0100shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-01-30 06:10:01 +0100kimjetwav(~user@2607:fea8:2363:8f00:6d2:eb11:feaf:8a98) (Remote host closed the connection)
2022-01-30 06:10:26 +0100Null_A(~null_a@2601:645:8700:2290:6509:ee11:ea28:47c) (Remote host closed the connection)
2022-01-30 06:10:37 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2022-01-30 06:12:22 +0100ksqsffeels bad for using CPP to do this
2022-01-30 06:13:21 +0100 <EvanR> my running fold over "reasons not to use implicit params" continues xD
2022-01-30 06:14:23 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2022-01-30 06:14:31 +0100 <ski> EvanR : oh, you're thinking about involving `Dyn' ?
2022-01-30 06:14:49 +0100 <EvanR> DynamicSh
2022-01-30 06:14:53 +0100 <ski> oh
2022-01-30 06:15:03 +0100 <ski> hm
2022-01-30 06:15:06 +0100 <EvanR> it seems to give enough info for subparsers to work
2022-01-30 06:15:12 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 06:15:13 +0100 <ski> that being `exists a. Sh a', or ?
2022-01-30 06:15:28 +0100 <EvanR> no you missed it
2022-01-30 06:15:31 +0100 <EvanR> data DynamicSh = ShBW (Sh Bool) | ShColor (Sh Color) | ShCutout (Sh (Maybe Color))
2022-01-30 06:15:57 +0100 <ski> ksqsf : i suppose you could `withContext :: ((?x :: T,...) => a) -> a'
2022-01-30 06:16:29 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2022-01-30 06:16:33 +0100 <ski> oh, right, that one
2022-01-30 06:16:45 +0100 <ski> (sorry, i forgot that was named `DynamicSh')
2022-01-30 06:17:10 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 06:17:16 +0100 <ski> EvanR : hm, so you're saying you're repackaging `DynamicSh' ?
2022-01-30 06:17:28 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2022-01-30 06:18:09 +0100 <EvanR> i introduced this type when wondering what a parser would return, coincidentally (?) it seem like it would let the parser work recursively and satisfy the polymorphism
2022-01-30 06:18:19 +0100zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-01-30 06:19:15 +0100 <EvanR> data SomeSh = forall a . SomeSh (Sh a) seems kind of useless
2022-01-30 06:19:18 +0100 <EvanR> in this case
2022-01-30 06:19:38 +0100zaquest(~notzaques@5.130.79.72)
2022-01-30 06:20:07 +0100 <ksqsf> ski: ah thanks this indeed works
2022-01-30 06:20:11 +0100 <EvanR> or not? you can still unwrap and pattern match...
2022-01-30 06:20:13 +0100 <ksqsf> (though the callback style is less ideal)
2022-01-30 06:21:11 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 245 seconds)
2022-01-30 06:23:45 +0100tommd(~tommd@67-42-147-226.ptld.qwest.net) (Ping timeout: 268 seconds)
2022-01-30 06:25:04 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 06:37:57 +0100 <ski> EvanR : "seems kind of useless" -- yea, especially considering `Union',`Inter',`Minus',`Colorize',`Layer',`BGcolor'
2022-01-30 06:38:56 +0100 <EvanR> how do you mean
2022-01-30 06:39:49 +0100 <ski> those have recursive calls ("argument types") where the argument isn't just a tyvar
2022-01-30 06:40:42 +0100jao(~jao@68.235.43.172) (Remote host closed the connection)
2022-01-30 06:40:47 +0100mbuf(~Shakthi@223.190.212.194)
2022-01-30 06:41:50 +0100 <ski> so, if you're given an `exists a. Sh a' for a parsed sub-part, now you must somehow determine if this `a' matches `Bool' / `Maybe Color' / `Maybe b' .. and that (in general) may require unbounded search (because of `Shift' and `Xform' just forwarding the parameter to the recursive calls)
2022-01-30 06:42:43 +0100 <ski> (when i say "recursive calls", i'm wearing my logic programmer hat, viewing the `data' type, with constructors, as clauses for a predicate)
2022-01-30 06:43:07 +0100 <ski> ksqsf : np :)
2022-01-30 06:44:14 +0100 <EvanR> it's almost midnight but I'd like to know more how a GADT with constructors are clauses for a predicate if you're wearing a logic programmer hat
2022-01-30 06:46:04 +0100 <EvanR> also, I'm sure I see the real possibility of unbounded search, if it came down to that
2022-01-30 06:46:30 +0100 <EvanR> er, not sure
2022-01-30 06:48:14 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2022-01-30 06:48:27 +0100Everything(~Everythin@37.115.210.35)
2022-01-30 06:49:13 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-01-30 06:49:34 +0100 <EvanR> an infinite tree?
2022-01-30 06:50:10 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 06:53:03 +0100marquis_andras(~marquis_a@124.170.163.166)
2022-01-30 06:57:47 +0100 <ski> well, in Twelf syntax (which is a logical framework, and sortof a dependently-typed logic programming language), it'd be
2022-01-30 06:58:03 +0100 <ski> sh : type <- type.
2022-01-30 06:58:11 +0100Jing(~hedgehog@240e:390:7c53:a7e1:b966:c67:7e32:3db8)
2022-01-30 06:58:14 +0100 <ski> ball : sh bool.
2022-01-30 06:58:25 +0100 <ski> axigon : sh bool <- float4.
2022-01-30 06:58:38 +0100 <ski> trigon : sh bool <- float2 <- float2 <- float2.
2022-01-30 06:58:47 +0100 <ski> curve2i : sh bool <- float2 <- float2 <- float2.
2022-01-30 06:58:55 +0100 <ski> union : sh bool <- sh bool <- sh bool.
2022-01-30 06:59:03 +0100 <ski> inter : sh bool <- sh bool <- sh bool.
2022-01-30 06:59:11 +0100 <ski> minus : sh bool <- sh bool <- sh bool.
2022-01-30 06:59:18 +0100 <ski> colorize : sh (maybe color) <- sh bool <- color.
2022-01-30 06:59:26 +0100 <ski> layer : sh (maybe A ) <- sh (maybe A) <- sh (maybe A).
2022-01-30 06:59:34 +0100 <ski> shift : shift : sh A <- sh A <- float2.
2022-01-30 06:59:40 +0100 <ski> xform : sh A <- sh A <- float4.
2022-01-30 06:59:44 +0100 <ski> bgcolor : sh color <- sh (maybe color) <- color.
2022-01-30 07:00:06 +0100 <EvanR> ok I think that all made it through
2022-01-30 07:00:35 +0100jao(~jao@68.235.43.172)
2022-01-30 07:00:55 +0100 <ski> in Prolog syntax (if we ignore the names of the clauses (which are the data constructor names). that's not really a thing in Prolog), it'd be tupled rather than curried, so e.g. `colorize' would be
2022-01-30 07:01:18 +0100 <ski> sh(maybe(A )) :- color,sh(bool).
2022-01-30 07:01:48 +0100 <ski> (oh, and there's no static types, so the signature `sh : type <- type.' corresponds to nothing)
2022-01-30 07:02:15 +0100 <ski> anyway, this is a recursive predicate, sh/1, of one parameter
2022-01-30 07:02:39 +0100 <EvanR> sh(maybe(A space space space space )) ? really?
2022-01-30 07:02:57 +0100 <ski> (to align with `sh(maybe(color))' ..)
2022-01-30 07:03:18 +0100 <EvanR> oh, don't worry, nothing's aligning
2022-01-30 07:03:24 +0100skismiles
2022-01-30 07:03:25 +0100prasad(~user@c-73-170-49-136.hsd1.ca.comcast.net)
2022-01-30 07:03:41 +0100deadmarshal(~deadmarsh@95.38.113.75) (Ping timeout: 245 seconds)
2022-01-30 07:03:43 +0100 <ski> (it's only morning here, now)
2022-01-30 07:03:52 +0100 <EvanR> what is :-
2022-01-30 07:04:02 +0100 <ski> converse implication. same as `<-'
2022-01-30 07:04:57 +0100 <ski> anyway, in this case i guess there isn't *too* much utility in pondering how sh/1 might execute as a predicate (proof-search) ..
2022-01-30 07:05:20 +0100 <ski> but sometimes, considerations from such a view can be helpful, when considering such a data type
2022-01-30 07:05:44 +0100 <ski> e.g. sometimes it can be useful to introduce an accumulator parameter
2022-01-30 07:06:06 +0100 <ski> or to remove unwanted non-determinism, due to associativity e.g.
2022-01-30 07:07:30 +0100 <EvanR> proof-search of sh/1 means find any possible value?
2022-01-30 07:07:44 +0100rusrushal13(~rusrushal@2401:4900:43a9:6cb9:3b78:294d:342e:939a)
2022-01-30 07:07:54 +0100 <ski> e.g. you might want something like `data Path :: Node -> Node -> * where Empty :: Path n n; Append :: Path m n -> Path n o -> Path m o; Single :: Edge m n -> Path m n', for reflexive-transitive closure of `Edge'
2022-01-30 07:07:56 +0100 <EvanR> or all possible values
2022-01-30 07:09:07 +0100fef(~thedawn@user/thedawn)
2022-01-30 07:09:22 +0100 <ski> but you can associate `Append' in multiple ways. so it may be better to use `Cons :: Edge m n -> Path n o -> m o' (or maybe `Snoc :: Path m n -> Edge n o -> Path m o') (right- (/ left-) associating all the `Append's (and removing `Empty' to the left), and then fusing with `Single')
2022-01-30 07:09:51 +0100 <ski> and this corresponds to a common similar refactoring for a predicate in logic programming
2022-01-30 07:11:31 +0100 <ski> "proof-search of sh/1 means find any possible value?","or all possible values" -- well, first off, what do you mean by "value" ? the proofs in LP corresponds to the values of the `data' type in Haskell, while the values (the parameters of the predicates) in LP corresponds to the `data' type parameters (whether they be of kind `*' or something else, like `Node')
2022-01-30 07:12:56 +0100 <ski> proof-search means that we search for proofs (values of the `data' type). but, it also means that we may know some of the parameters beforehand, while we're searching for possible values of the others (we could also partially know a parameter, know some constructors in it, while searching for what to fill the holes in them with. so a parameter can be both input and output)
2022-01-30 07:14:19 +0100 <ski> in your parsing example, if you parse for `Sh (Maybe Color)', then that's calling sh/1 in the sh(+) mode (parameter is input). but if you parse for `Sh a', for an `a' that you hope to discover (if parsing succeeds), then that's output, or mode sh(-)
2022-01-30 07:14:21 +0100 <EvanR> so parameters are the payload
2022-01-30 07:14:40 +0100 <ski> and one could imagine intermediates, like parsing for `Sh (Maybe a)', searching for `a' ..
2022-01-30 07:14:49 +0100 <ski> yea, in LP, they are
2022-01-30 07:15:13 +0100 <ski> but for `data' types, we also care more about the proofs (the values of the `data' type)
2022-01-30 07:15:21 +0100 <ski> but it can still be a useful view
2022-01-30 07:15:35 +0100 <ski> (this is an analogy with LP, in addition to the type class analogy with LP)
2022-01-30 07:16:25 +0100 <EvanR> so a search could produce the parameters, but not the proof
2022-01-30 07:16:55 +0100 <ski> well, if you return a value of type `Sh a', for some (discovered) `a', then that value is "the proof"
2022-01-30 07:17:08 +0100Jing(~hedgehog@240e:390:7c53:a7e1:b966:c67:7e32:3db8) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-30 07:17:21 +0100 <ski> but in (plain) LP, the proof would never get materialized. it'd just appear as an execution trace
2022-01-30 07:17:36 +0100 <ski> (in Twelf, you can reify it, though, so that you can access it like a value)
2022-01-30 07:18:05 +0100 <EvanR> what do you even get if you don't get a value of the type
2022-01-30 07:18:07 +0100 <EvanR> if anything
2022-01-30 07:18:27 +0100 <EvanR> just a listing of parameters
2022-01-30 07:18:40 +0100 <EvanR> the one unknown parameter
2022-01-30 07:18:55 +0100 <ski> (and if it's just an execution trace, then presumably we don't care about different execution traces leading to the same solutions (instantiations for output parameters) .. and so we can use refactorings which don't preserve proofs, but which preserve solutions. while, if we also care about proofs, we need to be more careful with such)
2022-01-30 07:19:05 +0100 <ski> yes
2022-01-30 07:19:20 +0100 <EvanR> interesting
2022-01-30 07:19:43 +0100 <ski> e.g. in Prolog, if you perform the query `?- append([0,1],[2,3,4],L).', you'll get as answer `L = [0,1,2,3,4]'
2022-01-30 07:20:43 +0100 <EvanR> so append if a function
2022-01-30 07:20:49 +0100 <EvanR> so append is a function
2022-01-30 07:20:50 +0100 <ski> while, if you ask `?- append(F,B,[0,1,2]).', you'll get three alternative solutions, `F = [],B = [0,1,2] ; F = [0],B = [1,2] ; F = [0,1],B = [2] ; F = [0,1,2],B = []' (comma is conjunction, semicolon is disjunction)
2022-01-30 07:21:10 +0100 <ski> it's like solving an equation, you get a disjunction of solutions
2022-01-30 07:21:50 +0100 <ski> append/3 is a predicate, a relation. `append(F,B,L)' expresses that the concatentation of the lists `F' and `B' is the list `L'. in Haskell terms, `f ++ b = l'
2022-01-30 07:22:06 +0100 <EvanR> i see
2022-01-30 07:22:21 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 07:22:25 +0100 <EvanR> so that is what the data constructors are
2022-01-30 07:22:32 +0100 <ski> Prolog will enumerate all solutions, via backtracking (depth-first search), eventually (unless you commit to a given overall solution)
2022-01-30 07:22:36 +0100cynomys(~cynomys@user/cynomys)
2022-01-30 07:22:41 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 07:22:53 +0100tabemann(~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
2022-01-30 07:23:13 +0100 <ski> Prolog doesn't have functions, except in the trivial sense of data constructors
2022-01-30 07:23:32 +0100 <ski> (they package data, but they don't compute)
2022-01-30 07:23:44 +0100 <ski> only predicates express general computation
2022-01-30 07:23:53 +0100tabemann(~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2022-01-30 07:24:18 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-01-30 07:25:11 +0100 <ski> (in Mercury, which is logic/functional (with a static type system borrowing quite a bit from Haskell, including type classes, existentials, ..), there are real computational functions .. but, just like predicates, we can also run them "backwards" and "sideways". this is like we'd automatically get views (when possible) for undoing functions)
2022-01-30 07:25:22 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2022-01-30 07:25:22 +0100HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
2022-01-30 07:25:37 +0100HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-01-30 07:25:45 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2022-01-30 07:25:49 +0100 <ski> (s/three/four/)
2022-01-30 07:26:06 +0100 <EvanR> run a function sideways, what
2022-01-30 07:26:15 +0100 <ski> well, imagine you could write
2022-01-30 07:26:17 +0100 <EvanR> this I gotta see
2022-01-30 07:26:31 +0100 <ski> foo ([0,1,0] ++ xs) = ..xs..
2022-01-30 07:26:55 +0100 <ski> here, we're calling `(++)' with left operand as input, right operand as output, and result as input
2022-01-30 07:27:02 +0100 <ski> or say
2022-01-30 07:27:13 +0100 <ski> bar xs (xs ++ ys) = ..xs..ys..
2022-01-30 07:27:35 +0100 <ski> (same thing, except that this time, the left operand isn't a literal constant, but involves a (previously bound) variable)
2022-01-30 07:28:21 +0100 <ski> (Erlang has a special-case for `++', for this. but in Mercury, this is a general mechanism that you can have for any functions where it makes sense)
2022-01-30 07:28:56 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 07:29:32 +0100Everything(~Everythin@37.115.210.35) (Quit: leaving)
2022-01-30 07:30:42 +0100 <EvanR> foo is pattern matching using a function?
2022-01-30 07:30:43 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 07:30:51 +0100 <ski> in Haskell, you could make `pattern Prepend010 :: (Num a,Eq a) => () => [a] -> [a]; pattern Prepend010 xs = 0 : 1 : 0 : xs', and then you could say `foo (Prepend010 xs) = ..x..'
2022-01-30 07:30:54 +0100 <ski> yes
2022-01-30 07:31:16 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 07:31:21 +0100 <ski> but, afaik, `ViewPattern's doesn't allow you to parameterize with expressions, so you couldn't do `bar' like this
2022-01-30 07:31:45 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 07:33:00 +0100 <EvanR> and bar xs (xs ++ ys) = is using the same variable twice
2022-01-30 07:33:31 +0100 <ski> yes. the first `xs' is a pattern (so, output. we're getting the value of `xs' from matching this pattern)
2022-01-30 07:33:56 +0100jespada(~jespada@87.74.36.188) (Ping timeout: 250 seconds)
2022-01-30 07:34:01 +0100 <ski> the second `xs' is an expression (input. we're using the previously bound value of `xs', passing it as input to `(++)', in its left operand)
2022-01-30 07:34:29 +0100 <EvanR> then first occurrence of a pattern variable is "an output"
2022-01-30 07:34:40 +0100 <EvanR> after that it is referring to that output
2022-01-30 07:35:16 +0100 <ski> and the `ys' (pattern) is output from the pattern-match on the pattern `xs ++ ys' (whose result will be an *input*, matched against this pattern, and which comes from the caller of `bar' (passing second parameter as input))
2022-01-30 07:35:22 +0100 <ski> yes
2022-01-30 07:36:04 +0100 <EvanR> what does xs ++ ys even match
2022-01-30 07:36:05 +0100 <ski> Mercury is quite interesting :)
2022-01-30 07:36:16 +0100 <ski> (and logic programming in general is fun :)
2022-01-30 07:36:26 +0100jespada(~jespada@87.74.36.188)
2022-01-30 07:36:35 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 07:36:38 +0100 <ski> it matches the input list against the concatenation of the two lists `xs' and `ys'
2022-01-30 07:36:48 +0100 <EvanR> ah
2022-01-30 07:37:00 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 07:37:10 +0100 <EvanR> is there a "SICP" of logic programming somewhere
2022-01-30 07:37:16 +0100 <ski> if both `xs' and `ys' were to be output (like in my `?- append(F,B,[0,1,2]).' example above), then the match would be non-deterministic, there'd (in general) be multiple ways of matching
2022-01-30 07:37:24 +0100 <EvanR> I feel like jumping into mercury would be skipping a few things
2022-01-30 07:37:50 +0100 <ski> but, since, in this case, `xs' is already bound/instantiated, it is input, not output, and therefore the match is semi-deterministic (at most one solution, either match success, or failure to match)
2022-01-30 07:39:05 +0100 <ski> yea .. it would probably be easier (and in some ways more instructive, especially all the pain you can encounter, and which Mercury protects you from, but if you jump into Mercury, skipping Prolog, it's harder to understand what it's fussing about) to start with basic Prolog
2022-01-30 07:39:17 +0100Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
2022-01-30 07:39:55 +0100 <ski> "Re: Mercury in academic teaching?" <https://www.mercurylang.org/list-archives/users/2006-October/004000.html>
2022-01-30 07:40:17 +0100 <ski> <https://www.mercurylang.org/list-archives/users/2006-October/004011.html>, both by Richard A. O'Keefe
2022-01-30 07:40:31 +0100 <ski> are two intersting posts that mention this
2022-01-30 07:44:20 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 07:45:26 +0100 <ski> (some of the points he's making are really important)
2022-01-30 07:46:04 +0100 <EvanR> the discussion about compiler error messages is interesting
2022-01-30 07:46:24 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 07:46:33 +0100 <EvanR> it's really an alien language
2022-01-30 07:47:22 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 07:48:55 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 07:49:08 +0100 <ski> yea, but so's Haskell :)
2022-01-30 07:49:18 +0100 <ski> (oh, and i'm still sad about Aditi)
2022-01-30 07:50:24 +0100 <EvanR> yeah I mean in any compiler I've ever used
2022-01-30 07:50:55 +0100 <EvanR> Aditi?
2022-01-30 07:51:59 +0100 <ski> Deductive database (using predicate logic (Datalog- / Prolog- like) syntax, rather than something baroque like SQL ..) that integrated nicely with Mercury)
2022-01-30 07:52:40 +0100 <ski> (and Mercury mostly uses the (Edinburgh standard) Prolog syntax)
2022-01-30 07:53:54 +0100random-jellyfish(~random-je@user/random-jellyfish)
2022-01-30 07:54:02 +0100 <ski> (oh, and there's ##prolog and #mercury channels, here, in case you wonder)
2022-01-30 07:54:24 +0100 <EvanR> right
2022-01-30 07:54:49 +0100deadmarshal(~deadmarsh@95.38.112.42)
2022-01-30 07:56:54 +0100 <ski> "is there a \"SICP\" of logic programming somewhere" -- well, hmm .. the closest, imho, would probably be
2022-01-30 07:56:57 +0100 <ski> @where CTM
2022-01-30 07:56:57 +0100 <lambdabot> "Concepts, Techniques, and Models of Computer Programming", by Peter Van Roy,Seif Haridi, at <http://www.info.ucl.ac.be/~pvr/book.html>
2022-01-30 07:57:56 +0100 <ski> it is multiparadigm, but it showcases stuff using Oz, which at its base is a logic programming language, with functional, stateful, object-oriented, and concurrent layers
2022-01-30 07:59:37 +0100 <ski> one of the particularly interesting things about it is its declarative (deterministic) concurrency, where you can use "logic variables" (a la Prolog, which effect bi-directional communication) (called "dataflow variables" in the context of concurrency. one can also artificially make them onesided, to prevent information from flowing in one direction) to communicate inbetween threads
2022-01-30 08:01:08 +0100 <ski> there are also other nice books, like "The Art of Prolog" by Leon Sterling,Ehud Shapiro,"Prolog: Programming for Artificial Intelligence" by Ivan Bratko,"The Craft of Prolog" (this one is more practical, with lots of useful advice) by Richard A. O'Keefe
2022-01-30 08:01:24 +0100 <sm2n> I liked art of prolog
2022-01-30 08:02:13 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 08:02:24 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2022-01-30 08:02:32 +0100deadmarshal_(~deadmarsh@95.38.113.93)
2022-01-30 08:03:37 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 08:03:39 +0100 <ski> fwiw, "Programming in Prolog" by Clocksin,Mellish is the classic starter book on Prolog
2022-01-30 08:04:02 +0100deadmarshal(~deadmarsh@95.38.112.42) (Ping timeout: 260 seconds)
2022-01-30 08:04:31 +0100 <ski> there's also a nice tutorial, "Learn Prolog Now!", online, by Patrick Blackburn,et al.
2022-01-30 08:04:37 +0100Gurkenglas(~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de)
2022-01-30 08:04:53 +0100 <ski> and, iirc, Amzi! Prolog has a tutorial about how to make a text adventure in Prolog
2022-01-30 08:04:55 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 08:06:35 +0100 <ski> (oh, Oz also has support for Constraint Programming (CP), specifically Constraint Logic Programming (CLP). many Prolog systems also do, to varying degrees (simplex solvers, boolean solvers, finite domains, ..). ECLiPSe is one such system that seems particularly specialized/focused on this)
2022-01-30 08:07:16 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 08:07:16 +0100Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
2022-01-30 08:10:32 +0100zmt01(~zmt00@user/zmt00) (Ping timeout: 240 seconds)
2022-01-30 08:12:22 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2022-01-30 08:15:30 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 08:16:27 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 08:17:05 +0100img(~img@user/img)
2022-01-30 08:18:24 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 08:19:01 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 08:19:38 +0100yauhsien(~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
2022-01-30 08:21:17 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep)
2022-01-30 08:25:30 +0100vglfr(~vglfr@88.155.52.56) (Read error: Connection reset by peer)
2022-01-30 08:26:33 +0100vglfr(~vglfr@88.155.52.56)
2022-01-30 08:26:35 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 08:26:57 +0100yauhsien(~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-01-30 08:27:27 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 08:28:48 +0100whatif(~user@123.180.74.74)
2022-01-30 08:29:59 +0100 <whatif> inside a cabal project, runghc a.hs, it shows could not load module `Web.Scotty' it is a member of the hidden package `scotty-0.12'...' how I can solve this?
2022-01-30 08:30:12 +0100 <whatif> without :set -package scotty?
2022-01-30 08:30:39 +0100 <whatif> and no ghc to compile, I'd like to run it with runghc
2022-01-30 08:31:55 +0100gehmehgeh(~user@user/gehmehgeh)
2022-01-30 08:32:02 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 08:32:50 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 08:38:04 +0100jao(~jao@68.235.43.172) (Remote host closed the connection)
2022-01-30 08:42:05 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2022-01-30 08:47:53 +0100jao(~jao@68.235.43.172)
2022-01-30 08:48:44 +0100ksqsf(~user@114.214.178.136) (Ping timeout: 256 seconds)
2022-01-30 08:53:03 +0100rusrushal13(~rusrushal@2401:4900:43a9:6cb9:3b78:294d:342e:939a) (Ping timeout: 256 seconds)
2022-01-30 08:54:20 +0100chenqisu12(~chenqisu1@183.217.200.249)
2022-01-30 08:54:26 +0100 <Andrew> Prolog, nice
2022-01-30 08:56:31 +0100phma(phma@2001:5b0:2172:8d38:d8c9:6275:aa70:e454) (Read error: Connection reset by peer)
2022-01-30 08:56:49 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 08:57:32 +0100superbil(~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 240 seconds)
2022-01-30 08:57:39 +0100phma(~phma@host-67-44-208-219.hnremote.net)
2022-01-30 08:57:49 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 08:58:53 +0100jao(~jao@68.235.43.172) (Remote host closed the connection)
2022-01-30 09:00:09 +0100jao(~jao@68.235.43.172)
2022-01-30 09:04:05 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 268 seconds)
2022-01-30 09:05:39 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:06:09 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:07:32 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:09:06 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:10:40 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:12:09 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:13:03 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:14:06 +0100jao(~jao@68.235.43.172) (Ping timeout: 245 seconds)
2022-01-30 09:14:38 +0100ksqsf(~user@2001:da8:d800:611:d4c4:3076:5e68:23e0)
2022-01-30 09:15:09 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 09:16:37 +0100cheater(~Username@user/cheater) (Ping timeout: 240 seconds)
2022-01-30 09:17:04 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 256 seconds)
2022-01-30 09:17:58 +0100tomboy64(~tomboy64@user/tomboy64)
2022-01-30 09:18:52 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-01-30 09:19:14 +0100ksqsf(~user@2001:da8:d800:611:d4c4:3076:5e68:23e0) (Ping timeout: 250 seconds)
2022-01-30 09:19:24 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 09:20:49 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 09:21:50 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 250 seconds)
2022-01-30 09:21:58 +0100sm(~sm@plaintextaccounting/sm) (Quit: Client limit exceeded: 20000)
2022-01-30 09:23:32 +0100whatif(~user@123.180.74.74) (Quit: ERC (IRC client for Emacs 26.3))
2022-01-30 09:27:05 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:27:22 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 09:28:46 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:29:06 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
2022-01-30 09:29:24 +0100cheater(~Username@user/cheater)
2022-01-30 09:30:05 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:31:10 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-01-30 09:33:58 +0100tomboy64(~tomboy64@user/tomboy64) (Ping timeout: 250 seconds)
2022-01-30 09:36:40 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:37:45 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:37:57 +0100wyrd(~wyrd@gateway/tor-sasl/wyrd) (Ping timeout: 276 seconds)
2022-01-30 09:38:31 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:42:08 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:43:05 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:43:26 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 09:44:30 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:45:08 +0100Tuplanolla(~Tuplanoll@91-159-68-166.elisa-laajakaista.fi)
2022-01-30 09:45:24 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2022-01-30 09:45:46 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2022-01-30 09:47:08 +0100 <polyphem> there is https://hackage.haskell.org/package/csp-1.4.0/docs/Control-Monad-CSP.html for ConstrainedSatisfactionProblems which is "constrained logic programming" in haskell
2022-01-30 09:47:08 +0100sm(~sm@plaintextaccounting/sm)
2022-01-30 09:47:15 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 09:47:40 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 256 seconds)
2022-01-30 09:48:48 +0100vglfr(~vglfr@88.155.52.56) (Ping timeout: 256 seconds)
2022-01-30 09:49:49 +0100Tisoxin(~ikosit@user/ikosit) (Quit: Client limit exceeded: 20000)
2022-01-30 09:50:41 +0100vglfr(~vglfr@46.96.161.0)
2022-01-30 09:52:05 +0100tomboy64(~tomboy64@user/tomboy64)
2022-01-30 09:52:22 +0100juhp(~juhp@bb121-6-118-149.singnet.com.sg)
2022-01-30 09:53:43 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:54:11 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 09:54:46 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
2022-01-30 09:55:22 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 09:56:00 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 09:56:10 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 256 seconds)
2022-01-30 09:56:43 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 10:00:50 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 10:00:58 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-01-30 10:03:25 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 10:05:02 +0100random-jellyfish(~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
2022-01-30 10:06:09 +0100 <Andrew> If somebody takes your code and makes it imperative, do you think that's trolling?
2022-01-30 10:06:17 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Remote host closed the connection)
2022-01-30 10:06:20 +0100 <Andrew> i.e. no functions, everything are IO etches
2022-01-30 10:06:23 +0100Tisoxin(~ikosit@user/ikosit)
2022-01-30 10:06:36 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 245 seconds)
2022-01-30 10:07:46 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 250 seconds)
2022-01-30 10:08:00 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 10:08:39 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 10:10:07 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-01-30 10:12:03 +0100mc47(~mc47@xmonad/TheMC47)
2022-01-30 10:16:55 +0100random-jellyfish(~random-je@user/random-jellyfish)
2022-01-30 10:17:24 +0100superbil(~superbil@1-34-176-171.hinet-ip.hinet.net)
2022-01-30 10:17:38 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2022-01-30 10:17:38 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2022-01-30 10:17:41 +0100allbery_bgeekosaur
2022-01-30 10:20:49 +0100gehmehgeh(~user@user/gehmehgeh) (Remote host closed the connection)
2022-01-30 10:21:31 +0100gehmehgeh(~user@user/gehmehgeh)
2022-01-30 10:22:04 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 10:22:36 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 10:23:22 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 10:23:45 +0100max22-(~maxime@2a01cb08833598002bb1283111308265.ipv6.abo.wanadoo.fr)
2022-01-30 10:24:32 +0100yauhsien_(~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
2022-01-30 10:26:49 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
2022-01-30 10:29:36 +0100yauhsien_(~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-01-30 10:30:42 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 10:31:24 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 10:32:31 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 10:34:25 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 10:36:08 +0100Feuermagier(~Feuermagi@user/feuermagier) (Read error: Connection reset by peer)
2022-01-30 10:36:59 +0100Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2022-01-30 10:37:05 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 10:46:02 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 10:46:53 +0100 <Andrew> I originally think that partially applied functions are silly when I did Python
2022-01-30 10:48:06 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 10:49:31 +0100Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 245 seconds)
2022-01-30 10:55:35 +0100 <[exa]> you were not wrong, they are literally silly in python.
2022-01-30 10:58:18 +0100_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-01-30 10:59:51 +0100whatif(~user@123.180.74.74)
2022-01-30 11:01:07 +0100 <whatif> in scotty, when user visit '/test', then `get '/test'` will run, but I'd like to save the msg within `get '/test'' to out of it, how to do that?
2022-01-30 11:01:50 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 260 seconds)
2022-01-30 11:01:53 +0100 <whatif> it's like every function f run, save f's inner variable to outside, so that f can read previous result
2022-01-30 11:02:00 +0100 <whatif> how to archive that?
2022-01-30 11:02:41 +0100 <whatif> with global variable it's easy, just variable reassignment
2022-01-30 11:02:59 +0100 <polyphem> pass f an STM TQueue , then in f write to the queue
2022-01-30 11:03:47 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-01-30 11:03:50 +0100 <polyphem> another thread can read the q and process further
2022-01-30 11:04:02 +0100random-8(~kvirc@82.76.54.109)
2022-01-30 11:05:40 +0100random-jellyfish(~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
2022-01-30 11:05:57 +0100random-8(~kvirc@82.76.54.109) ()
2022-01-30 11:06:35 +0100random-jellyfish(~kvirc@user/random-jellyfish)
2022-01-30 11:06:40 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8)
2022-01-30 11:09:14 +0100 <polyphem> if you only need previos call result you can also use a TMVar with swapTMVar
2022-01-30 11:10:34 +0100 <polyphem> outside of f you have to first create your TMVar (Maybe StoredResult)
2022-01-30 11:10:47 +0100zer0bitz(~zer0bitz@2001:2003:f74d:b800:8c0e:5374:183d:34e2)
2022-01-30 11:11:01 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Ping timeout: 250 seconds)
2022-01-30 11:12:48 +0100MatthiasG2(~matthias@i6DFA01BB.versanet.de)
2022-01-30 11:13:13 +0100xkuru(~xkuru@user/xkuru)
2022-01-30 11:18:26 +0100little_mac(~little_ma@2601:410:4300:3ce0:b1c1:7d23:9565:94df) (Remote host closed the connection)
2022-01-30 11:29:17 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
2022-01-30 11:31:37 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-01-30 11:31:50 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-30 11:35:21 +0100cynomys(~cynomys@user/cynomys) (Ping timeout: 245 seconds)
2022-01-30 11:47:13 +0100cynomys(~cynomys@user/cynomys)
2022-01-30 11:47:48 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 256 seconds)
2022-01-30 11:49:19 +0100 <MatthiasG2> hi, my book/tutorial says that I have to use the let keyword to define a name in ghci. however, i can define names without the let keyword. is my literature outdated? do i miss something?
2022-01-30 11:49:54 +0100 <geekosaur> it's a little outdated, yes
2022-01-30 11:50:19 +0100 <geekosaur> ghci has been getting easier to use over the past few years
2022-01-30 11:50:42 +0100 <geekosaur> it used to act like the inside of a "do" but it's acting more like a file toplevel these days
2022-01-30 11:50:57 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-01-30 11:51:12 +0100 <geekosaur> so you can define without "let", you can use "import" instead of ":m", etc.
2022-01-30 11:51:46 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 250 seconds)
2022-01-30 11:52:16 +0100Lord_of_Life_Lord_of_Life
2022-01-30 11:53:20 +0100 <MatthiasG2> ok, thank you :)
2022-01-30 12:12:10 +0100ph88(~ph88@2a02:8109:9e00:71d0:48e1:be0c:b23c:dea9) (Quit: Leaving)
2022-01-30 12:31:18 +0100CiaoSen(~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-30 12:38:31 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2022-01-30 12:39:22 +0100chenqisu12(~chenqisu1@183.217.200.249) (Ping timeout: 256 seconds)
2022-01-30 12:40:46 +0100hololeap(~hololeap@user/hololeap)
2022-01-30 12:47:17 +0100Codaraxis(~Codaraxis@user/codaraxis)
2022-01-30 12:48:06 +0100deadmarshal_(~deadmarsh@95.38.113.93) (Quit: ZNC 1.8.2 - https://znc.in)
2022-01-30 12:49:17 +0100deadmarshal(~deadmarsh@95.38.113.93)
2022-01-30 12:52:52 +0100cynomys(~cynomys@user/cynomys) (Ping timeout: 250 seconds)
2022-01-30 12:53:34 +0100tomboy64(~tomboy64@user/tomboy64) (Remote host closed the connection)
2022-01-30 12:53:37 +0100deadmarshal(~deadmarsh@95.38.113.93) (Ping timeout: 240 seconds)
2022-01-30 12:54:19 +0100tomboy64(~tomboy64@user/tomboy64)
2022-01-30 12:56:05 +0100alp(~alp@user/alp)
2022-01-30 13:01:02 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-30 13:04:35 +0100ph88(~ph88@2a02:8109:9e00:71d0:bc3f:ae22:7b02:63e)
2022-01-30 13:07:04 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com)
2022-01-30 13:08:05 +0100deadmarshal(~deadmarsh@95.38.113.93)
2022-01-30 13:08:28 +0100alp(~alp@user/alp) (Ping timeout: 250 seconds)
2022-01-30 13:21:09 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-30 13:25:07 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-30 13:25:48 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Quit: WeeChat 3.4)
2022-01-30 13:26:26 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 13:27:28 +0100chenqisu12(~chenqisu1@183.217.200.249)
2022-01-30 13:27:46 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-01-30 13:28:50 +0100deadmarshal(~deadmarsh@95.38.113.93) (Ping timeout: 260 seconds)
2022-01-30 13:29:15 +0100random-jellyfish(~kvirc@user/random-jellyfish) (Ping timeout: 250 seconds)
2022-01-30 13:30:39 +0100Jing(~hedgehog@240e:390:7c53:a7e1:ed4d:fe0e:25ef:ac1f)
2022-01-30 13:31:51 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds)
2022-01-30 13:33:41 +0100__monty__(~toonn@user/toonn)
2022-01-30 13:34:04 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475)
2022-01-30 13:38:54 +0100alp(~alp@user/alp)
2022-01-30 13:40:22 +0100zincy(~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection)
2022-01-30 13:42:48 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2022-01-30 13:46:36 +0100mon_aaraj(~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 250 seconds)
2022-01-30 13:49:42 +0100shailangsa(~shailangs@host86-185-98-37.range86-185.btcentralplus.com) (Remote host closed the connection)
2022-01-30 13:50:59 +0100coot(~coot@213.134.190.95)
2022-01-30 13:57:34 +0100Erutuon(~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
2022-01-30 13:57:48 +0100deadmarshal(~deadmarsh@95.38.113.93)
2022-01-30 13:59:17 +0100RFV(~Thunderbi@170.red-88-13-189.dynamicip.rima-tde.net)
2022-01-30 13:59:43 +0100RFV(~Thunderbi@170.red-88-13-189.dynamicip.rima-tde.net) (Client Quit)
2022-01-30 14:00:04 +0100lionhairdino(~jacoo@121.131.39.82) (Quit: WeeChat 3.4)
2022-01-30 14:00:24 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-01-30 14:00:57 +0100alp(~alp@user/alp) (Ping timeout: 240 seconds)
2022-01-30 14:02:34 +0100rusrushal13(~rusrushal@2409:4056:e12:6583:dc44:f6d4:b489:36b1)
2022-01-30 14:03:55 +0100DavidMilestone(~DavidMile@122.179.213.129)
2022-01-30 14:06:57 +0100max22-(~maxime@2a01cb08833598002bb1283111308265.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds)
2022-01-30 14:08:36 +0100Midjak(~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
2022-01-30 14:13:27 +0100CiaoSen(~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2022-01-30 14:19:41 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:20:00 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:23:43 +0100chenqisu12(~chenqisu1@183.217.200.249) (Quit: Leaving)
2022-01-30 14:25:01 +0100deadmarshal(~deadmarsh@95.38.113.93) (Read error: Connection reset by peer)
2022-01-30 14:27:06 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:27:13 +0100deadmarshal(~deadmarsh@95.38.113.93)
2022-01-30 14:27:45 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:28:54 +0100Andrewneeds to write something practical
2022-01-30 14:30:43 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:31:49 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:33:30 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:33:47 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:33:59 +0100ProfSimm(~ProfSimm@87.227.196.109)
2022-01-30 14:36:37 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:36:56 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:39:25 +0100phma(~phma@host-67-44-208-219.hnremote.net) (Read error: Connection reset by peer)
2022-01-30 14:39:49 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2022-01-30 14:40:17 +0100phma(phma@2001:5b0:211f:83e8:ceab:d757:d3e2:cd8f)
2022-01-30 14:42:12 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:42:29 +0100deadmarshal(~deadmarsh@95.38.113.93) (Ping timeout: 250 seconds)
2022-01-30 14:42:35 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:44:53 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:45:18 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:46:42 +0100random-jellyfish(~kvirc@82.76.54.109)
2022-01-30 14:46:57 +0100yaroot(~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (Ping timeout: 240 seconds)
2022-01-30 14:47:06 +0100random-jellyfish(~kvirc@82.76.54.109) (Changing host)
2022-01-30 14:47:06 +0100random-jellyfish(~kvirc@user/random-jellyfish)
2022-01-30 14:47:18 +0100yaroot(~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953)
2022-01-30 14:48:04 +0100CiaoSen(~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-30 14:49:20 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:49:37 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:49:51 +0100deadmarshal(~deadmarsh@95.38.113.93)
2022-01-30 14:50:47 +0100random-jellyfish(~kvirc@user/random-jellyfish) (Client Quit)
2022-01-30 14:51:36 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 14:51:38 +0100coot(~coot@213.134.190.95) (Quit: coot)
2022-01-30 14:51:50 +0100fluxit(~fluxit@techsmix.net) (Quit: Bye!)
2022-01-30 14:51:54 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 14:54:14 +0100deadmarshal(~deadmarsh@95.38.113.93) (Ping timeout: 260 seconds)
2022-01-30 14:55:57 +0100Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 240 seconds)
2022-01-30 14:59:26 +0100deadmarshal(~deadmarsh@95.38.113.93)
2022-01-30 15:01:37 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 15:02:37 +0100briandaed(~root@185.234.208.208.r.toneticgroup.pl)
2022-01-30 15:03:46 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 15:04:06 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 15:06:45 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-30 15:06:56 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 15:07:25 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 15:12:05 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 15:12:32 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 15:13:35 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 15:13:52 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 15:14:26 +0100segfaultfizzbuzz(~rustisafu@2602:306:cd3c:9350:59e3:db49:aa0a:46e5)
2022-01-30 15:16:18 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 15:16:35 +0100Feuermagier(~Feuermagi@user/feuermagier)
2022-01-30 15:16:37 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2022-01-30 15:17:49 +0100mmhat(~mmh@55d4f42c.access.ecotel.net)
2022-01-30 15:23:25 +0100oldsk00l(~znc@ec2-18-134-147-152.eu-west-2.compute.amazonaws.com)
2022-01-30 15:24:03 +0100zer0bitz(~zer0bitz@2001:2003:f74d:b800:8c0e:5374:183d:34e2) (Read error: Connection reset by peer)
2022-01-30 15:24:48 +0100coot(~coot@213.134.190.95)
2022-01-30 15:24:59 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-30 15:26:28 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-30 15:26:32 +0100deadmarshal(~deadmarsh@95.38.113.93) (Ping timeout: 256 seconds)
2022-01-30 15:28:01 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2022-01-30 15:31:57 +0100whatif(~user@123.180.74.74) (Ping timeout: 240 seconds)
2022-01-30 15:33:20 +0100DNH(~DNH@2a02:8108:1100:16d8:685d:59ed:4faf:3de1)
2022-01-30 15:34:00 +0100hololeap(~hololeap@user/hololeap) (Remote host closed the connection)
2022-01-30 15:35:03 +0100deadmarshal(~deadmarsh@95.38.113.93)
2022-01-30 15:35:27 +0100hololeap(~hololeap@user/hololeap)
2022-01-30 15:39:13 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-30 15:50:00 +0100 <Andrew> why is readFile strict?
2022-01-30 15:51:01 +0100 <hpc> in what way?
2022-01-30 15:51:07 +0100 <Andrew> Not lazy
2022-01-30 15:51:32 +0100 <hpc> it opens the file, but then the contents of the file are lazy IO
2022-01-30 15:51:47 +0100 <hpc> and then when you evaluate [] the file is closed
2022-01-30 15:51:52 +0100Andrewstudies IO more
2022-01-30 15:52:17 +0100 <hpc> you probably don't want to deal with lazy IO if you're just starting out
2022-01-30 15:52:21 +0100 <geekosaur> which readFile are you talking about?
2022-01-30 15:53:17 +0100 <Andrew> Prelude System.IO
2022-01-30 15:53:21 +0100 <geekosaur> System.IO.readFile is lazy. the readFile operations on strict ByteString and strict Text are strict because they don't have a choice. the ones on lazy ByteString and lazy Text should again be lazy, but in chunks rather than characters
2022-01-30 15:53:34 +0100 <geekosaur> "The file is read lazily, on demand, as with getContents."
2022-01-30 15:53:42 +0100whatif(~user@123.180.40.237)
2022-01-30 15:53:57 +0100 <whatif> https://hackage.haskell.org/package/scotty-login-session-0.1.0.0/candidate/docs/src/Web-Scotty-Log…
2022-01-30 15:54:03 +0100 <hpc> i recommend you use openFile, and the various operations on Handle values
2022-01-30 15:54:06 +0100 <whatif> defaultSessionConfig :: SessionConfig
2022-01-30 15:54:08 +0100 <Andrew> Yay, thanks
2022-01-30 15:54:12 +0100 <hpc> in System.IO
2022-01-30 15:54:14 +0100 <whatif> defaultSessionConfig = SessionConfig "sessions.sqlite3" 1200 120
2022-01-30 15:54:29 +0100 <Andrew> I actually just wanted one that returns a string... I'm not sure what IO () strings are
2022-01-30 15:54:45 +0100 <whatif> Couldn't match expected type `SessionConfig' with actual type `Bool -> SessionConfig' * Probable cause: `SessionConfig' is applied to too few arguments In the expression: SessionConfig "sessions.sqlite3" 1200 86400
2022-01-30 15:55:07 +0100 <whatif> why this say applied too few arguments?
2022-01-30 15:55:19 +0100 <whatif> mySessionConfig = SessionConfig "sessions.sqlite3" 1200 86400
2022-01-30 15:55:44 +0100 <geekosaur> whatif, are you actually using the same version as that documentation?
2022-01-30 15:55:58 +0100 <geekosaur> "scotty-login-session-0.1.0.0"
2022-01-30 15:55:59 +0100 <hpc> (IO String) is the type of values that do stuff to produce a String
2022-01-30 15:56:26 +0100 <hpc> ("abc" ++ "def") IS a string, in a way that "open a file and give me its contents" isn't
2022-01-30 15:56:41 +0100 <whatif> geekosaur: 0.1.2.0 I'm using
2022-01-30 15:56:53 +0100 <hpc> like how the ls command is a formula for the files in a directory, but not a list of files in and of itself
2022-01-30 15:57:07 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 15:57:17 +0100oldsk00l(~znc@ec2-18-134-147-152.eu-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2022-01-30 15:57:51 +0100 <geekosaur> then you will need to consult the documentation for that version
2022-01-30 15:57:52 +0100 <whatif> found it https://github.com/asg0451/scotty-login-session/blob/master/src/Web/Scotty/Login/Session.hs
2022-01-30 15:58:12 +0100 <Andrew> hpc: So... what's the type of e.g. `readFile "/etc/passwd"`?
2022-01-30 15:58:33 +0100 <Andrew> I got confused with: `The readFile function reads a file and returns the contents of the file as a string. The file is read lazily, on demand, as with getContents.`
2022-01-30 15:58:43 +0100 <Andrew> Can I just treat it as a string?
2022-01-30 15:59:12 +0100 <geekosaur> whatif, it now takes an extra Bool indicating if the session is in debug mode or not https://github.com/asg0451/scotty-login-session/blob/master/src/Web/Scotty/Login/Session.hs#L104
2022-01-30 16:00:43 +0100 <whatif> yes
2022-01-30 16:01:08 +0100 <geekosaur> Andrew, an IO String is not a String. however if you use do notation you can get a String out of it, as long as you put it back in IO when you're done
2022-01-30 16:01:19 +0100 <geekosaur> (you use ``pure` for that)
2022-01-30 16:01:24 +0100coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
2022-01-30 16:01:25 +0100Andrewkinda gets the point
2022-01-30 16:01:45 +0100 <hpc> Andrew: you bring the function to the IO action, in order to use the contents of the file
2022-01-30 16:01:50 +0100 <Andrew> Ill just scower the internet for an example and I'd match it with the nameless theories in my head
2022-01-30 16:01:52 +0100alp(~alp@user/alp)
2022-01-30 16:02:06 +0100 <hpc> say you have some isValidPassword :: (String -> Bool)
2022-01-30 16:02:11 +0100 <hpc> then you can use this:
2022-01-30 16:02:13 +0100 <hpc> :t fmap
2022-01-30 16:02:14 +0100 <lambdabot> Functor f => (a -> b) -> f a -> f b
2022-01-30 16:02:26 +0100 <hpc> a = String, b = Bool, f = IO
2022-01-30 16:02:41 +0100 <hpc> and fmap isValidPassword (readFile "/etc/passwd") :: IO Bool
2022-01-30 16:02:43 +0100 <Andrew> Oh, I get you
2022-01-30 16:02:52 +0100 <Andrew> Thanks!
2022-01-30 16:02:54 +0100 <hpc> there's lots of functions similar to fmap
2022-01-30 16:02:56 +0100 <hpc> :t (>>=)
2022-01-30 16:02:57 +0100 <lambdabot> Monad m => m a -> (a -> m b) -> m b
2022-01-30 16:03:01 +0100 <hpc> ^ is the big one
2022-01-30 16:03:23 +0100 <hpc> so for instance, there's no actual passwords in /etc/passwd anymore
2022-01-30 16:03:55 +0100 <Andrew> I'm just using /etc/password as a random filename example, but I get you, thanks :D
2022-01-30 16:03:58 +0100coot(~coot@213.134.190.95) (Ping timeout: 250 seconds)
2022-01-30 16:03:59 +0100 <hpc> but you can do readFile "/etc/passwd" >>= \passwd -> readFile "/etc/shadow" >>= \shadow -> checkPassword passwd shadow
2022-01-30 16:04:13 +0100 <hpc> and sequence things that way
2022-01-30 16:04:33 +0100Andrewtries to recall what the backslash means
2022-01-30 16:04:37 +0100 <hpc> lambda
2022-01-30 16:05:16 +0100 <Andrew> ()
2022-01-30 16:05:21 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-01-30 16:05:56 +0100 <Andrew> Thanks :)
2022-01-30 16:07:11 +0100mmhat(~mmh@55d4f42c.access.ecotel.net) (Ping timeout: 250 seconds)
2022-01-30 16:07:17 +0100xff0x(~xff0x@2001:1a81:52f3:1d00:feda:8b5a:f28:424c) (Ping timeout: 240 seconds)
2022-01-30 16:08:31 +0100xff0x(~xff0x@2001:1a81:52f3:1d00:e2c8:a45c:f0af:d33)
2022-01-30 16:11:21 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8)
2022-01-30 16:13:17 +0100zer0bitz(~zer0bitz@2001:2003:f74d:b800:7d8e:cf48:737f:ec3)
2022-01-30 16:15:17 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2541:beac:9acd:61a8) (Ping timeout: 240 seconds)
2022-01-30 16:15:18 +0100schuelermine(~anselmsch@user/schuelermine)
2022-01-30 16:20:36 +0100geranim0(~geranim0@d-132-204-221-88.res.umontreal.ca)
2022-01-30 16:22:39 +0100geranim0(~geranim0@d-132-204-221-88.res.umontreal.ca) (Client Quit)
2022-01-30 16:24:59 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2022-01-30 16:25:14 +0100lavaman(~lavaman@98.38.249.169)
2022-01-30 16:25:20 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2022-01-30 16:27:07 +0100whatif(~user@123.180.40.237) (Quit: ERC (IRC client for Emacs 26.3))
2022-01-30 16:27:28 +0100jkaye(~jkaye@2601:281:8300:7530:780b:5ea4:97fa:3c7e)
2022-01-30 16:28:03 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 16:30:37 +0100mvk(~mvk@2607:fea8:5cdc:bf00::a2bf) (Ping timeout: 240 seconds)
2022-01-30 16:30:50 +0100kaph(~kaph@net-2-47-208-144.cust.vodafonedsl.it) (Ping timeout: 250 seconds)
2022-01-30 16:31:08 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
2022-01-30 16:32:50 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2022-01-30 16:33:09 +0100DavidMilestone(~DavidMile@122.179.213.129) (Quit: Client closed)
2022-01-30 16:36:17 +0100emf_(~emf@2620:10d:c090:400::5:29d7) (Ping timeout: 240 seconds)
2022-01-30 16:36:33 +0100fef(~thedawn@user/thedawn) (Ping timeout: 276 seconds)
2022-01-30 16:38:53 +0100mvk(~mvk@2607:fea8:5cdc:bf00::a2bf)
2022-01-30 16:39:08 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 16:42:13 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-30 16:42:14 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-30 16:42:14 +0100wroathe(~wroathe@user/wroathe)
2022-01-30 16:42:17 +0100CiaoSen(~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-01-30 16:42:26 +0100schuelermine(~anselmsch@user/schuelermine) (Quit: WeeChat 3.3)
2022-01-30 16:42:52 +0100schuelermine(~anselmsch@user/schuelermine)
2022-01-30 16:43:24 +0100rusrushal13(~rusrushal@2409:4056:e12:6583:dc44:f6d4:b489:36b1) (Ping timeout: 256 seconds)
2022-01-30 16:43:42 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 276 seconds)
2022-01-30 16:43:54 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 260 seconds)
2022-01-30 16:50:09 +0100alMalsamo(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-01-30 16:51:43 +0100ProfSimm(~ProfSimm@87.227.196.109) (Remote host closed the connection)
2022-01-30 16:51:57 +0100notzmv(~zmv@user/notzmv)
2022-01-30 16:51:59 +0100ralu5(~ralu@static.211.245.203.116.clients.your-server.de)
2022-01-30 16:53:02 +0100max22-(~maxime@2a01cb0883359800a797759c8651134a.ipv6.abo.wanadoo.fr)
2022-01-30 16:53:26 +0100ralu(~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer)
2022-01-30 16:53:26 +0100ralu5ralu
2022-01-30 16:53:37 +0100red-snail(~snail@static.151.210.203.116.clients.your-server.de) (Ping timeout: 240 seconds)
2022-01-30 16:53:47 +0100bcoppens(~bartcopp@vpn2.bartcoppens.be) (Ping timeout: 250 seconds)
2022-01-30 16:53:54 +0100bcoppens(~bartcopp@vpn2.bartcoppens.be)
2022-01-30 16:53:59 +0100wz1000(~zubin@static.11.113.47.78.clients.your-server.de) (Ping timeout: 268 seconds)
2022-01-30 16:54:07 +0100red-snail(~snail@static.151.210.203.116.clients.your-server.de)
2022-01-30 16:54:34 +0100wz1000(~zubin@static.11.113.47.78.clients.your-server.de)
2022-01-30 16:54:36 +0100hexagoxel(~hexagoxel@hexagoxel.de) (Ping timeout: 268 seconds)
2022-01-30 16:54:53 +0100hexagoxel(~hexagoxel@hexagoxel.de)
2022-01-30 16:55:59 +0100lavaman(~lavaman@98.38.249.169)
2022-01-30 16:56:56 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
2022-01-30 16:59:16 +0100a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
2022-01-30 17:00:17 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2022-01-30 17:01:17 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Ping timeout: 240 seconds)
2022-01-30 17:02:28 +0100CiaoSen(~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-30 17:15:01 +0100polyphem(~rod@2a02:810d:840:8754:cd07:81a6:97c4:d71f) (Ping timeout: 240 seconds)
2022-01-30 17:15:45 +0100polyphem(~rod@2a02:810d:840:8754:a057:eb16:35f3:4c79)
2022-01-30 17:18:08 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2022-01-30 17:19:47 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds)
2022-01-30 17:21:25 +0100EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-01-30 17:21:44 +0100EvanR(~EvanR@user/evanr)
2022-01-30 17:23:50 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 256 seconds)
2022-01-30 17:29:39 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 17:29:58 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41)
2022-01-30 17:30:06 +0100yauhsien(~yauhsien@61-231-37-18.dynamic-ip.hinet.net)
2022-01-30 17:31:13 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
2022-01-30 17:32:53 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
2022-01-30 17:34:05 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 250 seconds)
2022-01-30 17:34:56 +0100yauhsien(~yauhsien@61-231-37-18.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-01-30 17:35:30 +0100mbuf(~Shakthi@223.190.212.194) (Quit: Leaving)
2022-01-30 17:35:49 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Ping timeout: 250 seconds)
2022-01-30 17:36:04 +0100mmhat(~mmh@55d4f2c4.access.ecotel.net)
2022-01-30 17:37:29 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 17:40:21 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 17:40:53 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 17:41:49 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-01-30 17:42:59 +0100SwarmCollective(~joseph@2603-6011-bc02-b600-b30f-c0b6-681c-4c69.res6.spectrum.com) (Remote host closed the connection)
2022-01-30 17:43:22 +0100SwarmCollective(~joseph@2603-6011-bc02-b600-9258-c9a6-2983-1208.res6.spectrum.com)
2022-01-30 17:45:02 +0100zmt01(~zmt00@user/zmt00)
2022-01-30 17:45:22 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2022-01-30 17:47:49 +0100Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com)
2022-01-30 17:53:23 +0100thyriaen(~thyriaen@dynamic-077-013-197-086.77.13.pool.telefonica.de)
2022-01-30 17:55:54 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-01-30 17:56:19 +0100 <thyriaen> i have written a little tool : https://paste.tomsmeding.com/4oDIQ4ud i would like to filter out some a specific subset of my powerset given a given sum, but the way i wrote it it just gives me the sum, but i want to display the subset and not the sum
2022-01-30 17:57:37 +0100schuelermine(~anselmsch@user/schuelermine) (Quit: WeeChat 3.3)
2022-01-30 17:58:24 +0100DNH(~DNH@2a02:8108:1100:16d8:685d:59ed:4faf:3de1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2022-01-30 18:02:54 +0100jao(~jao@68.235.43.84)
2022-01-30 18:04:25 +0100DNH(~DNH@2a02:8108:1100:16d8:685d:59ed:4faf:3de1)
2022-01-30 18:05:09 +0100a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection)
2022-01-30 18:05:29 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
2022-01-30 18:09:49 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Ping timeout: 250 seconds)
2022-01-30 18:10:10 +0100 <RMSBach> thyriaen: you mean you want result of `run` to be the set of subsets of the powerset of `dat` that satisfy your predicate from `filli` on their sum?
2022-01-30 18:10:52 +0100 <RMSBach> thyriaen: Just get rid of mapper, and stuff that work into the predicate in `filli`
2022-01-30 18:11:57 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-01-30 18:13:00 +0100 <dminuoso> thyriaen: Hi, you probably want to use `sum` rather than your own `summer
2022-01-30 18:13:08 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-30 18:13:08 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-30 18:13:08 +0100wroathe(~wroathe@user/wroathe)
2022-01-30 18:13:12 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-01-30 18:13:28 +0100 <dminuoso> Or alternatively, use `foldl'` rather than `fold`
2022-01-30 18:14:21 +0100 <dminuoso> foldl on lists of non-trivial size will rapidly consume stack space
2022-01-30 18:14:46 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 18:16:39 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 276 seconds)
2022-01-30 18:18:03 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2022-01-30 18:18:37 +0100lavaman(~lavaman@98.38.249.169)
2022-01-30 18:18:43 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480::41) (Ping timeout: 250 seconds)
2022-01-30 18:19:04 +0100 <RMSBach> thyriaen: https://bpa.st/IQOQ
2022-01-30 18:19:22 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2022-01-30 18:20:03 +0100 <RMSBach> Sorry I replaced `run` with an effectful `main`, so I could run it with runhaskell
2022-01-30 18:23:04 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
2022-01-30 18:23:08 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-30 18:23:39 +0100coot_(~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot_)
2022-01-30 18:24:35 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2022-01-30 18:27:44 +0100CiaoSen(~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-01-30 18:27:47 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 18:28:30 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2022-01-30 18:30:30 +0100n3rdy1(~n3rdy1@2600:1700:4570:3480:1b88:50f:dae0:9293)
2022-01-30 18:32:54 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-30 18:32:54 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-30 18:32:54 +0100wroathe(~wroathe@user/wroathe)
2022-01-30 18:33:24 +0100fef(~thedawn@user/thedawn)
2022-01-30 18:34:42 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 18:34:48 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 18:34:54 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 18:40:33 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-01-30 18:40:54 +0100MajorBiscuit(~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e)
2022-01-30 18:42:37 +0100 <thyriaen> RMSBach, i will look at it and have a little think
2022-01-30 18:44:09 +0100 <thyriaen> RMSBach, yes it does what i want, thank you
2022-01-30 18:44:31 +0100 <RMSBach> thyriaen: no problem
2022-01-30 18:44:39 +0100 <thyriaen> let me try if i understand
2022-01-30 18:45:01 +0100 <thyriaen> ((== 271.36) . sumer) is a new function which first sums and then compares the values
2022-01-30 18:45:20 +0100 <RMSBach> Yep
2022-01-30 18:45:29 +0100 <thyriaen> so it is [double] -> Boolean
2022-01-30 18:45:49 +0100 <RMSBach> Yes
2022-01-30 18:45:49 +0100 <thyriaen> ah and then it filters
2022-01-30 18:45:53 +0100 <thyriaen> yeath that makes sense
2022-01-30 18:46:21 +0100 <thyriaen> if i would first define that function as a standalone one
2022-01-30 18:46:28 +0100alp(~alp@user/alp) (Ping timeout: 250 seconds)
2022-01-30 18:46:30 +0100 <thyriaen> it would be
2022-01-30 18:47:42 +0100lavaman(~lavaman@98.38.249.169)
2022-01-30 18:47:48 +0100 <segfaultfizzbuzz> so i found this paragraph recently, which i know more than something about:
2022-01-30 18:48:18 +0100 <segfaultfizzbuzz> https://github.com/conal/talk-2014-bayhac-denotational-design#why-continuous-time-matters in this link, the paragraph beginning, "Continuous time allows integration and differentiation to be expressed directly and meaningfully. ..."
2022-01-30 18:48:32 +0100 <segfaultfizzbuzz> this is part of a defense of laziness, which is something i don't really know about
2022-01-30 18:48:42 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-01-30 18:48:56 +0100 <segfaultfizzbuzz> i feel fairly confident, unless i am missing something, that this paragraph makes a number of false claims about integration
2022-01-30 18:49:23 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-30 18:50:51 +0100 <segfaultfizzbuzz> only perhaps in an introductory undergraduate class or in a situation where accuracy was very unimportant would someone use an euler integration
2022-01-30 18:52:39 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 18:53:01 +0100 <thyriaen> dminuoso, but i use foldl not fold
2022-01-30 18:53:30 +0100 <RMSBach> segfaultfizzbuzz: I think they just included that as the simplest example. "The easiest path for an implementor is to use Euler integration..."
2022-01-30 18:54:53 +0100 <segfaultfizzbuzz> i don't think the author means like arbitrary precision arithmetic here, he's talking about doubles
2022-01-30 18:55:41 +0100kspalaiologos(~kspalaiol@user/kspalaiologos)
2022-01-30 18:55:54 +0100 <segfaultfizzbuzz> and using laziness doesn't mean that you are using runge-kutta, so i really don't understand the point here
2022-01-30 18:56:07 +0100 <dminuoso> thyriaen: Sorry. I meant foldl' vs foldl
2022-01-30 18:56:15 +0100 <dminuoso> thyriaen: `foldl` is almost always wrong.
2022-01-30 18:56:28 +0100 <dminuoso> It's a strange accident that the one you likely want has a backtick attached to it.
2022-01-30 18:56:48 +0100 <dminuoso> And the one without is almost certainly always wrong. :p
2022-01-30 18:56:54 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
2022-01-30 18:57:08 +0100 <dminuoso> Its particularly confusing because in foldr its slightly different
2022-01-30 18:57:38 +0100 <dminuoso> (i.e. foldlr' is almost certainly wrong, foldr is what you likely want)
2022-01-30 18:58:13 +0100justsomeguy(~justsomeg@user/justsomeguy)
2022-01-30 18:59:10 +0100thyriaen_(~thyriaen@dynamic-077-191-211-108.77.191.pool.telefonica.de)
2022-01-30 18:59:11 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-01-30 18:59:36 +0100 <thyriaen_> dminuoso, i don't understand :p
2022-01-30 18:59:55 +0100 <dminuoso> thyriaen_: Simply said: dont use foldl, use foldl'
2022-01-30 19:00:03 +0100 <thyriaen_> what is the difference ?
2022-01-30 19:00:09 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
2022-01-30 19:00:30 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
2022-01-30 19:00:39 +0100 <dminuoso> % foldl (+) 0 [0..1000000000]
2022-01-30 19:00:40 +0100 <yahb> dminuoso: *** Exception: heap overflow
2022-01-30 19:00:41 +0100 <dminuoso> % foldl' (+) 0 [0..1000000000]
2022-01-30 19:00:46 +0100 <yahb> dminuoso: [Timed out]
2022-01-30 19:00:50 +0100 <dminuoso> % foldl' (+) 0 [0..1000000000]
2022-01-30 19:00:56 +0100 <yahb> dminuoso: [Timed out]
2022-01-30 19:01:01 +0100 <thyriaen_> my ghci does not know foldl'
2022-01-30 19:01:03 +0100 <dminuoso> Okay, this is probably a slightly race considition
2022-01-30 19:01:09 +0100 <dminuoso> thyriaen_: Import it from Data.Foldable
2022-01-30 19:01:12 +0100econo(uid147250@user/econo)
2022-01-30 19:01:18 +0100 <dminuoso> % foldl' (+) 0 [0..100000000]
2022-01-30 19:01:21 +0100 <yahb> dminuoso: 5000000050000000
2022-01-30 19:01:22 +0100 <dminuoso> % foldl (+) 0 [0..100000000]
2022-01-30 19:01:23 +0100 <yahb> dminuoso: *** Exception: heap overflow
2022-01-30 19:01:25 +0100 <dminuoso> thyriaen_: ^- there.
2022-01-30 19:01:34 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Ping timeout: 260 seconds)
2022-01-30 19:01:36 +0100thyriaen(~thyriaen@dynamic-077-013-197-086.77.13.pool.telefonica.de) (Ping timeout: 245 seconds)
2022-01-30 19:01:37 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 250 seconds)
2022-01-30 19:01:51 +0100 <thyriaen_> can i just use foldr because i use + in my example ?
2022-01-30 19:02:20 +0100 <dminuoso> thyriaen_: foldr in this usage can overflow your stack.
2022-01-30 19:02:23 +0100 <xerox> thyriaen_: import Data.List
2022-01-30 19:02:35 +0100 <dminuoso> thyriaen_: (or your heap)
2022-01-30 19:02:46 +0100 <dminuoso> Depends a bit on settings I guess?
2022-01-30 19:03:16 +0100 <dminuoso> thyriaen_: Broadly the problem is, with foldr you turn this list into something like this: (1 + (2 + (3 + (4 + ...)))
2022-01-30 19:03:38 +0100 <dsal> But why not `sum`?
2022-01-30 19:03:53 +0100 <dminuoso> But that's particularly bad, because under the bood the STG machine will have to maintain a stack of these arguments 1, 2, 3, 4, ... until it sees the final sum
2022-01-30 19:04:00 +0100 <dminuoso> And similarly, with foldl:
2022-01-30 19:04:37 +0100 <thyriaen_> dsal, good idea :p
2022-01-30 19:04:43 +0100 <dminuoso> You get ....(((n + n-1) + n-2) + n-3) + n-4 ...
2022-01-30 19:04:50 +0100 <dminuoso> Which means you need all these things represented on the heap
2022-01-30 19:04:53 +0100 <dminuoso> At the same time.
2022-01-30 19:05:04 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds)
2022-01-30 19:05:28 +0100 <dsal> It's good to know `foldr` vs. `foldl` (and maybe `fold`) and when strictness is important, but also nice to know when you don't need to write something because it's common.
2022-01-30 19:05:29 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Remote host closed the connection)
2022-01-30 19:05:29 +0100 <dminuoso> thyriaen_: foldl' behaves like a proper loop that is *strict*, so it instantly calcualtes the result and doesnt keep the thunk around for later.
2022-01-30 19:06:01 +0100 <thyriaen_> does that mean foldl is less lazy ?
2022-01-30 19:06:05 +0100 <dminuoso> No, foldl is more lazy.
2022-01-30 19:06:11 +0100 <thyriaen_> yea
2022-01-30 19:06:11 +0100 <dminuoso> foldl' is strict in the accumulator
2022-01-30 19:06:13 +0100 <thyriaen_> thats what i ment
2022-01-30 19:06:18 +0100 <thyriaen_> foldl' being less lazy
2022-01-30 19:06:26 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
2022-01-30 19:06:28 +0100 <dminuoso> well, lets not say "less lazy" and say what it is exactly
2022-01-30 19:06:31 +0100 <dminuoso> its strict in the accumulator.
2022-01-30 19:06:38 +0100 <thyriaen_> what does that mean ?
2022-01-30 19:06:48 +0100 <dminuoso> % :t foldl
2022-01-30 19:06:49 +0100 <yahb> dminuoso: Foldable t => (b -> a -> b) -> b -> t a -> b
2022-01-30 19:06:58 +0100 <thyriaen_> what does it mean to be strict ?
2022-01-30 19:07:18 +0100 <dminuoso> it means not-lazy
2022-01-30 19:07:25 +0100 <thyriaen_> ok
2022-01-30 19:07:33 +0100 <dsal> Do you understand what a thunk is?
2022-01-30 19:07:35 +0100 <dminuoso> operationally it means, it doesnt create a thunk to represent it.
2022-01-30 19:07:37 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2022-01-30 19:07:43 +0100 <dminuoso> it rather immediately calculates the result instead
2022-01-30 19:07:46 +0100 <thyriaen_> dsal, no
2022-01-30 19:07:51 +0100 <thyriaen_> dminuoso, i see, thanks
2022-01-30 19:07:55 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67)
2022-01-30 19:07:57 +0100 <dminuoso> thyriaen_: Are you familiar with traditional programming langauges?
2022-01-30 19:07:59 +0100 <dminuoso> say javascript?
2022-01-30 19:08:03 +0100 <thyriaen_> dminuoso, yes
2022-01-30 19:08:25 +0100 <dminuoso> Okay, so you can imagine a thunk to be something like `() => some_computation`, a kind of computation you can compute at will later.
2022-01-30 19:08:42 +0100 <thyriaen_> yes, i understand
2022-01-30 19:08:44 +0100 <dminuoso> But its deferred in the sense that you have to explicitly demand the result of its computation
2022-01-30 19:08:52 +0100 <dminuoso> We call this a thunk
2022-01-30 19:08:57 +0100 <thyriaen_> okay
2022-01-30 19:09:10 +0100 <dsal> Think `f (1 + 2)` in a strict language, that calls `f` with `3`. In a lazy language, that calls `f` with a thunk of `1 + 2` which may eventually resolve to `3`. But it also may not.
2022-01-30 19:09:26 +0100jkaye(~jkaye@2601:281:8300:7530:780b:5ea4:97fa:3c7e) (Ping timeout: 250 seconds)
2022-01-30 19:09:40 +0100 <thyriaen_> so when i lay in the bed all day and don't work at all but i know what i could do to work i am basically a thunk
2022-01-30 19:09:57 +0100 <dminuoso> One could say that, yes.
2022-01-30 19:09:58 +0100 <dsal> Well, no. The thunk is your plan of what to do.
2022-01-30 19:10:10 +0100 <thyriaen_> okay :p thanks
2022-01-30 19:10:14 +0100 <dsal> Laziness means you don't do the thing until someone calls you and asks you for it.
2022-01-30 19:10:26 +0100 <thyriaen_> dsal, sounds like me
2022-01-30 19:10:26 +0100zincy(~zincy@2a00:23c8:970c:4801:f0bc:c4cb:1665:1c67) (Remote host closed the connection)
2022-01-30 19:10:38 +0100 <dminuoso> thyriaen_: We have no direct way of specifying thunks, but operationall you can imagine that most expressions you write become a thunk
2022-01-30 19:10:49 +0100 <thyriaen_> yes i understand now
2022-01-30 19:10:50 +0100 <thyriaen_> thank you
2022-01-30 19:10:52 +0100 <dminuoso> and we say a thunk is *forced* is you demand its result
2022-01-30 19:10:59 +0100 <dminuoso> if you demand its result
2022-01-30 19:11:11 +0100 <thyriaen_> i love haskell so much
2022-01-30 19:11:15 +0100 <dminuoso> So these thunks represent "lazy computations", by demand their result, it starts computing them
2022-01-30 19:11:22 +0100 <dminuoso> And even more:
2022-01-30 19:12:00 +0100 <dminuoso> once a thunk is computed, the thunk is sort of replaced with the resulting value (this is strictly speaking a lie, but if you want to learn the exact details there's a great paper to read)
2022-01-30 19:12:05 +0100 <dsal> A typical value might be in a box that either a value of type `T` or a plan to resolve to a value of type `T` and you don't necessarily know the difference because it doesn't matter. You can demand that it's not a thunk in particular locations. That's what `foldl'` does.
2022-01-30 19:12:09 +0100 <dsal> @src foldl'
2022-01-30 19:12:09 +0100 <lambdabot> foldl' f a [] = a
2022-01-30 19:12:09 +0100 <lambdabot> foldl' f a (x:xs) = let a' = f a x in a' `seq` foldl' f a' xs
2022-01-30 19:13:00 +0100 <dminuoso> This lets you *share* the result across two references. Say you write `let a = <expensive expression> in (a, a)`, and you *force* the entire tuple, then `a` first becomes a thunk, and its referenced twice. If you access the first element of the tuple, the thunk of a is forced, and if you then access the second element, it will reference the already computed result
2022-01-30 19:13:05 +0100 <dminuoso> thyriaen_: ^- does this make any sense to you?
2022-01-30 19:13:19 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 19:13:44 +0100 <thyriaen_> yes
2022-01-30 19:13:45 +0100 <dminuoso> Ah wait. a slight miswording: `a` is already created as a thunk by means of the compiler, it doesnt happen on the spot.
2022-01-30 19:14:06 +0100 <thyriaen_> h0ly shit
2022-01-30 19:14:08 +0100 <thyriaen_> it is genious
2022-01-30 19:14:24 +0100 <dminuoso> Now this would all be in the way, because sometimes representing something as a thunk is not helpful
2022-01-30 19:14:42 +0100 <dminuoso> because that thunk needs a representation, it means we need to allocate that representation of the thunk (and its entire computation) on memory
2022-01-30 19:14:55 +0100 <dminuoso> So if we have:
2022-01-30 19:15:08 +0100little_mac(~little_ma@2601:410:4300:3ce0:9145:1668:6954:3d71)
2022-01-30 19:15:12 +0100 <dminuoso> (((10 + 9) + 8) + 7) + ...
2022-01-30 19:15:13 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-30 19:15:13 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-30 19:15:13 +0100wroathe(~wroathe@user/wroathe)
2022-01-30 19:15:30 +0100 <dminuoso> Then we this creates a lot of thunks, beacuse each sub-expression is kept lazy
2022-01-30 19:16:06 +0100cosimone`(~user@93-34-132-136.ip49.fastwebnet.it)
2022-01-30 19:16:40 +0100 <thyriaen_> yes
2022-01-30 19:16:45 +0100 <thyriaen_> i understand
2022-01-30 19:16:51 +0100 <dminuoso> So here comes the trick
2022-01-30 19:16:53 +0100 <dminuoso> say we write a function
2022-01-30 19:17:03 +0100 <dminuoso> f x = (x, x)
2022-01-30 19:17:26 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 260 seconds)
2022-01-30 19:17:28 +0100 <dminuoso> We can give an additional annotation to that function that says, when you enter this function, automatically *force* (evaluate its thunk) an argument
2022-01-30 19:17:31 +0100 <dminuoso> This looks like this:
2022-01-30 19:17:36 +0100 <dminuoso> f (!x) = (x, x)
2022-01-30 19:17:43 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
2022-01-30 19:17:46 +0100 <dminuoso> We say `f is strict in its argument`
2022-01-30 19:18:04 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
2022-01-30 19:18:11 +0100 <dminuoso> Which means, upon entering this function, at the same time, the argument will *first* be forced.
2022-01-30 19:18:25 +0100Hanicef(~gustaf@81-229-9-108-no92.tbcn.telia.com) (Quit: leaving)
2022-01-30 19:19:14 +0100 <dminuoso> This is particularly helpful for some recursive functions, as it prevents an accumulation of thunks, as every time you'd enter the recursive step (and pass along some expression into itself), it could immediately force that argument
2022-01-30 19:20:15 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2022-01-30 19:22:13 +0100 <dminuoso> % myFoldl' f a [] = a; myFoldl' f !a (x:xs) = myFoldl' f (f a x) x
2022-01-30 19:22:14 +0100 <yahb> dminuoso: ; <interactive>:5:1: error:; * Couldn't match type `t1' with `[t1]'; Expected: (t -> t1 -> t) -> t -> t1 -> t; Actual: (t -> t1 -> t) -> t -> [t1] -> t; * Relevant bindings include myFoldl' :: (t -> t1 -> t) -> t -> t1 -> t (bound at <interactive>:5:1)
2022-01-30 19:22:17 +0100 <dminuoso> % myFoldl' f a [] = a; myFoldl' f !a (x:xs) = myFoldl' f (f a x) xs
2022-01-30 19:22:17 +0100 <yahb> dminuoso:
2022-01-30 19:22:37 +0100 <dminuoso> % myFoldl' (+) 0 [0..100000000]
2022-01-30 19:22:38 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds)
2022-01-30 19:22:43 +0100 <yahb> dminuoso: [Timed out]
2022-01-30 19:22:57 +0100 <dminuoso> Ah well, this is a bit racy. You can try this out in your GHCi if you like
2022-01-30 19:23:14 +0100 <dminuoso> thyriaen_: ^- does this make sense now?
2022-01-30 19:23:31 +0100segfaultfizzbuzz(~rustisafu@2602:306:cd3c:9350:59e3:db49:aa0a:46e5) (Quit: Leaving)
2022-01-30 19:24:06 +0100cosimone`(~user@93-34-132-136.ip49.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1))
2022-01-30 19:24:27 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
2022-01-30 19:24:52 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-30 19:25:14 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Remote host closed the connection)
2022-01-30 19:25:17 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Remote host closed the connection)
2022-01-30 19:25:26 +0100 <dminuoso> Interesting to note, that if you have a function that pattern matches on its argument, its automatically strict in that argument as well (since to do the pattern matching, you have to evaluate the argument enough to see the constructor)
2022-01-30 19:25:34 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg)
2022-01-30 19:25:52 +0100 <dminuoso> i.e. `f True = ...; f False = ...` is also strict in its argument. Therefore a ! (pronounced bang) would do nothing here.
2022-01-30 19:26:04 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2022-01-30 19:26:09 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-01-30 19:28:30 +0100doyougnu(~doyougnu@cpe-67-249-83-190.twcny.res.rr.com) (Ping timeout: 256 seconds)
2022-01-30 19:29:31 +0100 <energizer> i see there are some packages for functions with keyword arguments. how popular are those?
2022-01-30 19:29:52 +0100 <dsal> energizer: What do you mean?
2022-01-30 19:30:00 +0100ProfSimm(~ProfSimm@176-12-60-137.pon.spectrumnet.bg) (Ping timeout: 256 seconds)
2022-01-30 19:30:07 +0100 <monochrom> I've never used one. I didn't even know someone made one.
2022-01-30 19:30:43 +0100 <energizer> https://hackage.haskell.org/package/named
2022-01-30 19:31:14 +0100 <monochrom> I didn't even know I would need a whole bloody library if I wanted keyword arguments. I thought I could just define a record-syntax type and THE END.
2022-01-30 19:31:37 +0100 <dsal> Oh neat. This is someone who really liked smalltalk, but wanted to write haskell.
2022-01-30 19:33:13 +0100 <energizer> clojure and elisp support named parameters
2022-01-30 19:35:41 +0100 <dminuoso> I like that it doesnt introduce the kmettiverse to dependencies.
2022-01-30 19:35:47 +0100 <dminuoso> It's just base and nothing else.
2022-01-30 19:38:20 +0100_xor(~xor@dsl-50-5-233-169.fuse.net) (Read error: Connection reset by peer)
2022-01-30 19:38:36 +0100 <monochrom> I think now I can speak freely about my objections to the recent lazy evaluation conversation.
2022-01-30 19:39:01 +0100zebrag(~chris@user/zebrag)
2022-01-30 19:39:19 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 19:39:39 +0100 <monochrom> "less lazy" is actually truer than "not lazy" by the time you consider foldl' (\(x,y) -> (undefined, undefined)) which is less lazy than foldl but still retains some laziness because foldl' is only to the point of WHNF.
2022-01-30 19:40:35 +0100MajorBiscuit(~MajorBisc@2a02:a461:129d:1:193d:75d8:745d:e91e) (Quit: WeeChat 3.3)
2022-01-30 19:40:35 +0100_xor(~xor@dsl-50-5-233-169.fuse.net)
2022-01-30 19:40:40 +0100alp(~alp@user/alp)
2022-01-30 19:41:09 +0100 <monochrom> I don't think we always need to introduce the word "thunk". If people already knows "expression", we can re-use it safely. Add "unevaluated" if the emphasis makes you feel better.
2022-01-30 19:41:42 +0100 <monochrom> A thunk is a specific data structure that represents an expression. We don't always have to bring up the actual data structure.
2022-01-30 19:41:48 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.4)
2022-01-30 19:42:33 +0100argento(~argent0@168-227-97-34.ptr.westnet.com.ar)
2022-01-30 19:42:39 +0100 <monochrom> Behind this is the widespread false dichotomy between talking at the STG level just so as to talk about lazy evaluation and not talking about lazy evaluation at all. NO.
2022-01-30 19:43:20 +0100 <monochrom> See for example John Launchbury's A Natural Semantics for Lazy Evaluation for how to talk about lazy evaluation at a less lower level.
2022-01-30 19:44:34 +0100 <monochrom> And I will leave how "not lazy" and "strict" are still different for another day. (Yes Hughes, Wadler, SPJ speak like that. Yes that's right I'm saying they were wrong.)
2022-01-30 19:48:06 +0100peddie(~peddie@2001:470:69fc:105::25d) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100unclechu(~unclechu@2001:470:69fc:105::354) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100oak-(~oakuniver@2001:470:69fc:105::fcd) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100ericson2314(~ericson23@2001:470:69fc:105::70c) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100Arathorn(~arathorn@2001:470:69fc:105::1f) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100soft(~soft@2001:470:69fc:105::c75) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100moats(~oats@user/oats) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100juhp[m](~juhpmatri@2001:470:69fc:105::6e9) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100mmos[m](~mmosmatri@2001:470:69fc:105::1:8340) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100cdsmith(~cdsmithma@2001:470:69fc:105::284) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100bb010g(~bb010g@2001:470:69fc:105::9a5) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100phuegrvs[m](~phuegrvsm@2001:470:69fc:105::1:65e4) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100tripa[m](~tripamatr@2001:470:69fc:105::1:4f7e) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100eoiles[m](~eoilesmat@2001:470:69fc:105::1:6164) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100craige[m](~craigemcw@2001:470:69fc:105::35f1) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100yehoshuapw(~yehoshuap@2001:470:69fc:105::a5f) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100Topik[m](~topikmatr@2001:470:69fc:105::a082) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100nomeata(~nomeata@2001:470:69fc:105::1:5ed4) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100jesser[m](~jessermat@2001:470:69fc:105::d5ae) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100justosophy[m](~justosoph@2001:470:69fc:105::572f) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100Sixto[m](~provornyc@2001:470:69fc:105::1:74df) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100throwaaaa[m](~throwaaaa@2001:470:69fc:105::1:6fe6) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100sekun[m](~hsekmatri@2001:470:69fc:105::d18f) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100jchia[m](~jchiamatr@2001:470:69fc:105::c50b) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100Las[m](~lasmatrix@2001:470:69fc:105::74e) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100wildsebastian(~wildsebas@2001:470:69fc:105::1:14b1) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100simmsb(~simmsb@2001:470:69fc:105::1:55c3) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100kalxd[m](~kalxdmatr@2001:470:69fc:105::1:576e) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100sjanssen(~sjanssenm@2001:470:69fc:105::1:61d8) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100benjamin[m]123(~benjaminm@2001:470:69fc:105::1:3f2f) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100mahene[m](~mahenemat@2001:470:69fc:105::1:6a93) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100james[m]123(~jamesnina@2001:470:69fc:105::1:4203) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100sofviic[m](~sofviicma@2001:470:69fc:105::1:51fd) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100siraben(~siraben@user/siraben) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100litharn[m](~litharnma@2001:470:69fc:105::1:8336) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100unrooted(~unrooted@2001:470:69fc:105::a4a) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100EkaiZend[m](~ekai-zend@2001:470:69fc:105::1:7756) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100Michal[m](~oomiguelm@2001:470:69fc:105::1:5ab0) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100fgaz(~fgaz@2001:470:69fc:105::842) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:07 +0100afotgkmnzj7asv3r(~afotgkmnz@2001:470:69fc:105::c24b) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100codygman[m](~codygman@2001:470:69fc:105::b4ba) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100ongy[m](~ongymatri@2001:470:69fc:105::5018) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100denbrahe(~denbrahe@2001:470:69fc:105::19c0) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100Morrow[m](~morrowmma@2001:470:69fc:105::1d0) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100alex[m]123456(~alexchete@2001:470:69fc:105::1:1001) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100octeep[m](~octeepoct@2001:470:69fc:105::1:3dbf) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100cherryblossom[m](~cherryblo@2001:470:69fc:105::b789) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100wysteriary[m](~wysteriar@2001:470:69fc:105::a42e) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:08 +0100reza[m](~rezaphone@2001:470:69fc:105::3eda) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100carmysilna(~brightly-@2001:470:69fc:105::2190) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100jmcantrell(~jmcantrel@user/jmcantrell) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100Nate[m](~m52957mat@2001:470:69fc:105::1:591a) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100bitonic(~bitonic@2001:470:69fc:105::1812) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100quantum(~quantum@user/quantum/x-8556232) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100Artem[m](~artemtype@2001:470:69fc:105::75b) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100smichel17[m](~smichel17@2001:470:69fc:105::2d32) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100jinsun_(~jinsun@user/jinsun) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100ac(~aloiscoch@2001:470:69fc:105::65) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100marinelli[m](~marinelli@2001:470:69fc:105::2d8) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100JoseC[m](~jmcardonm@2001:470:69fc:105::1:7539) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100maralorn(~maralorn@2001:470:69fc:105::251) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100amesgen[m](~amesgenm]@2001:470:69fc:105::82b) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:11 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100SawyerBergeron[m(~sawyerber@2001:470:69fc:105::3036) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100joaquinmg[m](~joaquinmg@2001:470:69fc:105::1:67d2) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100Heffalump[m](~hsenagmat@2001:470:69fc:105::e11) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100aidy(~aidy@2001:470:69fc:105::c7b4) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100xbreu(~xbreu@2001:470:69fc:105::1:5061) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100Orbstheorem(~orbstheor@2001:470:69fc:105::a56) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100thejuan24f[m](~thejuan2m@2001:470:69fc:105::1:6569) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100pfurla-matrix(~pedrofurl@2001:470:69fc:105::1:51d7) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100cstml[m](~cstmlmatr@2001:470:69fc:105::1:5c07) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100zwro[m](~zwromatri@2001:470:69fc:105::1d4) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100finalti[m](~finaltima@2001:470:69fc:105::d909) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100prrxddq[m](~prrxddqma@2001:470:69fc:105::1:4f72) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100ormaaj(~ormaaj@user/ormaaj) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100psydroid(~psydroid@user/psydroid) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100kadoban(~kadoban@user/kadoban) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100sm(~sm@plaintextaccounting/sm) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100Deide(~deide@user/deide) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:12 +0100ParsaAlizadeh[m](~lizadehma@2001:470:69fc:105::1:65a4) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:13 +0100thomasjm[m](~thomasjmm@2001:470:69fc:105::c6d9) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:14 +0100Yehoshua(~yehoshua@2001:470:69fc:105::1:593f) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:16 +0100schuelermine[m](~schuelerm@user/schuelermine) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:16 +0100zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:16 +0100jneira[m](~jneiramat@2001:470:69fc:105::d729) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:16 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:16 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:17 +0100Tisoxin(~ikosit@user/ikosit) (Quit: Bridge terminating on SIGTERM)
2022-01-30 19:48:43 +0100Morrow(~user@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 19:48:54 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2022-01-30 19:49:19 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Remote host closed the connection)
2022-01-30 19:50:51 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 19:50:55 +0100juhp[m](~juhpmatri@2001:470:69fc:105::6e9)
2022-01-30 19:51:25 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
2022-01-30 19:51:55 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Remote host closed the connection)
2022-01-30 19:52:31 +0100Jing(~hedgehog@240e:390:7c53:a7e1:ed4d:fe0e:25ef:ac1f) (Ping timeout: 250 seconds)
2022-01-30 19:55:08 +0100briandaed(~root@185.234.208.208.r.toneticgroup.pl) (Ping timeout: 256 seconds)
2022-01-30 19:57:40 +0100Sgeo(~Sgeo@user/sgeo)
2022-01-30 19:59:26 +0100fgaz(~fgaz@2001:470:69fc:105::842)
2022-01-30 19:59:26 +0100peddie(~peddie@2001:470:69fc:105::25d)
2022-01-30 19:59:26 +0100cdsmith(~cdsmithma@2001:470:69fc:105::284)
2022-01-30 19:59:26 +0100thomasjm[m](~thomasjmm@2001:470:69fc:105::c6d9)
2022-01-30 19:59:26 +0100JoseC[m](~jmcardonm@2001:470:69fc:105::1:7539)
2022-01-30 19:59:26 +0100zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32)
2022-01-30 19:59:26 +0100kadoban(~kadoban@user/kadoban)
2022-01-30 19:59:26 +0100ericson2314(~ericson23@2001:470:69fc:105::70c)
2022-01-30 19:59:26 +0100moats(~oats@user/oats)
2022-01-30 19:59:26 +0100Arathorn(~arathorn@2001:470:69fc:105::1f)
2022-01-30 19:59:26 +0100amesgen[m](~amesgenm]@2001:470:69fc:105::82b)
2022-01-30 19:59:26 +0100Topik[m](~topikmatr@2001:470:69fc:105::a082)
2022-01-30 19:59:26 +0100unclechu(~unclechu@2001:470:69fc:105::354)
2022-01-30 19:59:26 +0100maralorn(~maralorn@2001:470:69fc:105::251)
2022-01-30 19:59:26 +0100reza[m](~rezaphone@2001:470:69fc:105::3eda)
2022-01-30 19:59:26 +0100quantum(~quantum@user/quantum/x-8556232)
2022-01-30 19:59:26 +0100marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2022-01-30 19:59:27 +0100finalti[m](~finaltima@2001:470:69fc:105::d909)
2022-01-30 19:59:27 +0100denbrahe(~denbrahe@2001:470:69fc:105::19c0)
2022-01-30 19:59:27 +0100Las[m](~lasmatrix@2001:470:69fc:105::74e)
2022-01-30 19:59:27 +0100sm(~sm@plaintextaccounting/sm)
2022-01-30 19:59:27 +0100mahene[m](~mahenemat@2001:470:69fc:105::1:6a93)
2022-01-30 19:59:27 +0100hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4)
2022-01-30 19:59:27 +0100schuelermine[m](~schuelerm@user/schuelermine)
2022-01-30 19:59:27 +0100Deide(~deide@user/deide)
2022-01-30 19:59:27 +0100Artem[m](~artemtype@2001:470:69fc:105::75b)
2022-01-30 19:59:27 +0100psydroid(~psydroid@user/psydroid)
2022-01-30 19:59:27 +0100Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8)
2022-01-30 19:59:27 +0100alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba)
2022-01-30 19:59:27 +0100jneira[m](~jneiramat@2001:470:69fc:105::d729)
2022-01-30 19:59:27 +0100ongy[m](~ongymatri@2001:470:69fc:105::5018)
2022-01-30 19:59:27 +0100siraben(~siraben@user/siraben)
2022-01-30 19:59:27 +0100SawyerBergeron[m(~sawyerber@2001:470:69fc:105::3036)
2022-01-30 19:59:27 +0100smichel17[m](~smichel17@2001:470:69fc:105::2d32)
2022-01-30 19:59:27 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be)
2022-01-30 19:59:27 +0100Tisoxin(~ikosit@user/ikosit)
2022-01-30 19:59:27 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2022-01-30 19:59:27 +0100carmysilna(~brightly-@2001:470:69fc:105::2190)
2022-01-30 19:59:27 +0100aidy(~aidy@2001:470:69fc:105::c7b4)
2022-01-30 19:59:27 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886)
2022-01-30 19:59:27 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2022-01-30 19:59:27 +0100jmcantrell(~jmcantrel@user/jmcantrell)
2022-01-30 19:59:27 +0100vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2022-01-30 19:59:27 +0100wildsebastian(~wildsebas@2001:470:69fc:105::1:14b1)
2022-01-30 19:59:28 +0100jinsun_(~jinsun@user/jinsun)
2022-01-30 19:59:28 +0100prrxddq[m](~prrxddqma@2001:470:69fc:105::1:4f72)
2022-01-30 19:59:28 +0100Heffalump[m](~hsenagmat@2001:470:69fc:105::e11)
2022-01-30 19:59:28 +0100joaquinmg[m](~joaquinmg@2001:470:69fc:105::1:67d2)
2022-01-30 19:59:28 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9)
2022-01-30 19:59:28 +0100ormaaj(~ormaaj@user/ormaaj)
2022-01-30 19:59:28 +0100ac(~aloiscoch@2001:470:69fc:105::65)
2022-01-30 19:59:28 +0100SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2)
2022-01-30 19:59:28 +0100unrooted(~unrooted@2001:470:69fc:105::a4a)
2022-01-30 19:59:28 +0100bitonic(~bitonic@2001:470:69fc:105::1812)
2022-01-30 19:59:28 +0100xbreu(~xbreu@2001:470:69fc:105::1:5061)
2022-01-30 19:59:28 +0100Orbstheorem(~orbstheor@2001:470:69fc:105::a56)
2022-01-30 19:59:28 +0100pfurla-matrix(~pedrofurl@2001:470:69fc:105::1:51d7)
2022-01-30 19:59:28 +0100thejuan24f[m](~thejuan2m@2001:470:69fc:105::1:6569)
2022-01-30 19:59:28 +0100cstml[m](~cstmlmatr@2001:470:69fc:105::1:5c07)
2022-01-30 19:59:28 +0100ParsaAlizadeh[m](~lizadehma@2001:470:69fc:105::1:65a4)
2022-01-30 19:59:28 +0100zwro[m](~zwromatri@2001:470:69fc:105::1d4)
2022-01-30 19:59:29 +0100mmos[m](~mmosmatri@2001:470:69fc:105::1:8340)
2022-01-30 19:59:35 +0100alex[m]1234567(~alexchete@2001:470:69fc:105::1:1001)
2022-01-30 19:59:38 +0100jchia[m](~jchiamatr@2001:470:69fc:105::c50b)
2022-01-30 19:59:38 +0100sekun[m](~hsekmatri@2001:470:69fc:105::d18f)
2022-01-30 19:59:38 +0100Michal[m](~oomiguelm@2001:470:69fc:105::1:5ab0)
2022-01-30 19:59:38 +0100sjanssen(~sjanssenm@2001:470:69fc:105::1:61d8)
2022-01-30 19:59:38 +0100craige[m](~craigemcw@2001:470:69fc:105::35f1)
2022-01-30 19:59:38 +0100soft(~soft@2001:470:69fc:105::c75)
2022-01-30 19:59:39 +0100justosophy[m](~justosoph@2001:470:69fc:105::572f)
2022-01-30 19:59:39 +0100RosarioPulella[m(~rosariopu@2001:470:69fc:105::a57)
2022-01-30 19:59:39 +0100EkaiZend[m](~ekai-zend@2001:470:69fc:105::1:7756)
2022-01-30 19:59:39 +0100wysteriary[m](~wysteriar@2001:470:69fc:105::a42e)
2022-01-30 19:59:39 +0100tripa[m](~tripamatr@2001:470:69fc:105::1:4f7e)
2022-01-30 19:59:39 +0100Morrow[m](~morrowmma@2001:470:69fc:105::1d0)
2022-01-30 19:59:40 +0100Yehoshua(~yehoshua@2001:470:69fc:105::1:593f)
2022-01-30 19:59:40 +0100litharn[m](~litharnma@2001:470:69fc:105::1:8336)
2022-01-30 19:59:40 +0100eoiles[m](~eoilesmat@2001:470:69fc:105::1:6164)
2022-01-30 19:59:40 +0100cherryblossom[m](~cherryblo@2001:470:69fc:105::b789)
2022-01-30 19:59:40 +0100bb010g(~bb010g@2001:470:69fc:105::9a5)
2022-01-30 19:59:40 +0100afotgkmnzj7asv3r(~afotgkmnz@2001:470:69fc:105::c24b)
2022-01-30 19:59:40 +0100yehoshuapw(~yehoshuap@2001:470:69fc:105::a5f)
2022-01-30 19:59:40 +0100Nate[m](~m52957mat@2001:470:69fc:105::1:591a)
2022-01-30 19:59:40 +0100benjamin[m]123(~benjaminm@2001:470:69fc:105::1:3f2f)
2022-01-30 19:59:40 +0100phuegrvs[m](~phuegrvsm@2001:470:69fc:105::1:65e4)
2022-01-30 19:59:40 +0100octeep[m](~octeepoct@2001:470:69fc:105::1:3dbf)
2022-01-30 19:59:41 +0100oak-(~oakuniver@2001:470:69fc:105::fcd)
2022-01-30 19:59:41 +0100nomeata(~nomeata@2001:470:69fc:105::1:5ed4)
2022-01-30 19:59:42 +0100throwaaaa[m](~throwaaaa@2001:470:69fc:105::1:6fe6)
2022-01-30 19:59:42 +0100Sixto[m](~provornyc@2001:470:69fc:105::1:74df)
2022-01-30 19:59:42 +0100sofviic[m](~sofviicma@2001:470:69fc:105::1:51fd)
2022-01-30 19:59:42 +0100kalxd[m](~kalxdmatr@2001:470:69fc:105::1:576e)
2022-01-30 19:59:42 +0100jesser[m](~jessermat@2001:470:69fc:105::d5ae)
2022-01-30 19:59:42 +0100codygman[m](~codygman@2001:470:69fc:105::b4ba)
2022-01-30 19:59:42 +0100simmsb(~simmsb@2001:470:69fc:105::1:55c3)
2022-01-30 19:59:43 +0100james[m]123(~jamesnina@2001:470:69fc:105::1:4203)
2022-01-30 20:00:39 +0100zer0bitz(~zer0bitz@2001:2003:f74d:b800:7d8e:cf48:737f:ec3) (Read error: Connection reset by peer)
2022-01-30 20:01:12 +0100ProfSimm(~ProfSimm@87.227.196.109)
2022-01-30 20:01:23 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-01-30 20:02:44 +0100zer0bitz(~zer0bitz@2001:2003:f74d:b800:50b5:b57f:7251:ce23)
2022-01-30 20:04:18 +0100argento(~argent0@168-227-97-34.ptr.westnet.com.ar) (Quit: leaving)
2022-01-30 20:05:16 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2022-01-30 20:05:51 +0100fef(~thedawn@user/thedawn) (Ping timeout: 276 seconds)
2022-01-30 20:06:12 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
2022-01-30 20:09:22 +0100kspalaiologos(~kspalaiol@user/kspalaiologos) (Quit: Leaving)
2022-01-30 20:10:26 +0100deadmarshal(~deadmarsh@95.38.113.93) (Ping timeout: 256 seconds)
2022-01-30 20:10:55 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:11:28 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Read error: Connection reset by peer)
2022-01-30 20:12:49 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:14:08 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Remote host closed the connection)
2022-01-30 20:14:41 +0100Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
2022-01-30 20:15:57 +0100Topik[m](~topikmatr@2001:470:69fc:105::a082) (Quit: Client limit exceeded: 20000)
2022-01-30 20:16:38 +0100siraben(~siraben@user/siraben) (Quit: Client limit exceeded: 20000)
2022-01-30 20:16:38 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-01-30 20:16:41 +0100ormaaj(~ormaaj@user/ormaaj) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:03 +0100kadoban(~kadoban@user/kadoban) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:04 +0100peddie(~peddie@2001:470:69fc:105::25d) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:04 +0100fgaz(~fgaz@2001:470:69fc:105::842) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:05 +0100denbrahe(~denbrahe@2001:470:69fc:105::19c0) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:06 +0100mahene[m](~mahenemat@2001:470:69fc:105::1:6a93) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:12 +0100Arathorn(~arathorn@2001:470:69fc:105::1f) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:15 +0100juhp[m](~juhpmatri@2001:470:69fc:105::6e9) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:15 +0100psydroid(~psydroid@user/psydroid) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:17 +0100wildsebastian(~wildsebas@2001:470:69fc:105::1:14b1) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:18 +0100sm(~sm@plaintextaccounting/sm) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:18 +0100Las[m](~lasmatrix@2001:470:69fc:105::74e) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:21 +0100cdsmith(~cdsmithma@2001:470:69fc:105::284) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:35 +0100hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4) (Quit: Client limit exceeded: 20000)
2022-01-30 20:17:48 +0100Tisoxin(~ikosit@user/ikosit) (Quit: Client limit exceeded: 20000)
2022-01-30 20:18:06 +0100Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection)
2022-01-30 20:18:10 +0100ongy[m](~ongymatri@2001:470:69fc:105::5018) (Quit: Client limit exceeded: 20000)
2022-01-30 20:18:11 +0100klf(~klf@66.220.205.98)
2022-01-30 20:18:12 +0100vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Quit: Client limit exceeded: 20000)
2022-01-30 20:18:16 +0100amesgen[m](~amesgenm]@2001:470:69fc:105::82b) (Quit: Client limit exceeded: 20000)
2022-01-30 20:18:16 +0100unclechu(~unclechu@2001:470:69fc:105::354) (Quit: Client limit exceeded: 20000)
2022-01-30 20:18:23 +0100ericson2314(~ericson23@2001:470:69fc:105::70c) (Quit: Client limit exceeded: 20000)
2022-01-30 20:18:58 +0100unrooted(~unrooted@2001:470:69fc:105::a4a) (Quit: Client limit exceeded: 20000)
2022-01-30 20:19:11 +0100maralorn(~maralorn@2001:470:69fc:105::251) (Quit: Client limit exceeded: 20000)
2022-01-30 20:19:38 +0100carmysilna(~brightly-@2001:470:69fc:105::2190) (Quit: Client limit exceeded: 20000)
2022-01-30 20:19:44 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Quit: free())
2022-01-30 20:19:45 +0100zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32) (Quit: Client limit exceeded: 20000)
2022-01-30 20:19:52 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:19:57 +0100quantum(~quantum@user/quantum/x-8556232) (Quit: Client limit exceeded: 20000)
2022-01-30 20:20:02 +0100Deide(~deide@user/deide) (Quit: Client limit exceeded: 20000)
2022-01-30 20:20:17 +0100bitonic(~bitonic@2001:470:69fc:105::1812) (Quit: Client limit exceeded: 20000)
2022-01-30 20:20:31 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Quit: Client limit exceeded: 20000)
2022-01-30 20:21:06 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Remote host closed the connection)
2022-01-30 20:23:09 +0100Artem[m](~artemtype@2001:470:69fc:105::75b) (Quit: Client limit exceeded: 20000)
2022-01-30 20:23:11 +0100jmcantrell(~jmcantrel@user/jmcantrell) (Quit: Client limit exceeded: 20000)
2022-01-30 20:23:15 +0100jinsun_(~jinsun@user/jinsun) (Quit: Client limit exceeded: 20000)
2022-01-30 20:23:16 +0100jneira[m](~jneiramat@2001:470:69fc:105::d729) (Quit: Client limit exceeded: 20000)
2022-01-30 20:23:20 +0100xbreu(~xbreu@2001:470:69fc:105::1:5061) (Quit: Client limit exceeded: 20000)
2022-01-30 20:23:32 +0100smichel17[m](~smichel17@2001:470:69fc:105::2d32) (Quit: Client limit exceeded: 20000)
2022-01-30 20:23:33 +0100JoseC[m](~jmcardonm@2001:470:69fc:105::1:7539) (Quit: Client limit exceeded: 20000)
2022-01-30 20:24:27 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:25:11 +0100Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8) (Quit: Client limit exceeded: 20000)
2022-01-30 20:25:16 +0100AkechiShiro(~licht@user/akechishiro) (Ping timeout: 250 seconds)
2022-01-30 20:25:17 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886) (Quit: Client limit exceeded: 20000)
2022-01-30 20:25:34 +0100ac(~aloiscoch@2001:470:69fc:105::65) (Quit: Client limit exceeded: 20000)
2022-01-30 20:25:39 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be) (Quit: Client limit exceeded: 20000)
2022-01-30 20:25:40 +0100thejuan24f[m](~thejuan2m@2001:470:69fc:105::1:6569) (Quit: Client limit exceeded: 20000)
2022-01-30 20:25:44 +0100SawyerBergeron[m(~sawyerber@2001:470:69fc:105::3036) (Quit: Client limit exceeded: 20000)
2022-01-30 20:25:50 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Read error: Connection reset by peer)
2022-01-30 20:26:01 +0100ParsaAlizadeh[m](~lizadehma@2001:470:69fc:105::1:65a4) (Quit: Client limit exceeded: 20000)
2022-01-30 20:26:02 +0100pfurla-matrix(~pedrofurl@2001:470:69fc:105::1:51d7) (Quit: Client limit exceeded: 20000)
2022-01-30 20:26:04 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd) (Quit: Client limit exceeded: 20000)
2022-01-30 20:26:05 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9) (Quit: Client limit exceeded: 20000)
2022-01-30 20:26:06 +0100marinelli[m](~marinelli@2001:470:69fc:105::2d8) (Quit: Client limit exceeded: 20000)
2022-01-30 20:27:41 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:28:42 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Remote host closed the connection)
2022-01-30 20:28:56 +0100finalti[m](~finaltima@2001:470:69fc:105::d909) (Quit: Client limit exceeded: 20000)
2022-01-30 20:29:03 +0100zwro[m](~zwromatri@2001:470:69fc:105::1d4) (Quit: Client limit exceeded: 20000)
2022-01-30 20:29:46 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:30:33 +0100sm(~sm@plaintextaccounting/sm)
2022-01-30 20:30:33 +0100 <sm> whatif: try cabal repl
2022-01-30 20:31:06 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Read error: Connection reset by peer)
2022-01-30 20:31:17 +0100 <sm> or cabal exec -- runghc a.hs
2022-01-30 20:31:54 +0100reza[m](~rezaphone@2001:470:69fc:105::3eda) (Quit: Client limit exceeded: 20000)
2022-01-30 20:32:56 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:33:06 +0100flipchan(~filip@188-169-255-31.dsl.utg.ge) (Ping timeout: 256 seconds)
2022-01-30 20:34:05 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Remote host closed the connection)
2022-01-30 20:37:08 +0100Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac)
2022-01-30 20:37:14 +0100 <Guillaum[m]> Is there a way to tell cabal to build a plan will minimizing download/build. e.g. if all the needed packages are already available in my package database, use them.
2022-01-30 20:42:07 +0100 <maerwald> hmm, I don't think so
2022-01-30 20:42:12 +0100juhp[m](~juhpmatri@2001:470:69fc:105::6e9)
2022-01-30 20:42:12 +0100fgaz(~fgaz@2001:470:69fc:105::842)
2022-01-30 20:42:13 +0100peddie(~peddie@2001:470:69fc:105::25d)
2022-01-30 20:42:13 +0100cdsmith(~cdsmithma@2001:470:69fc:105::284)
2022-01-30 20:42:27 +0100amesgen[m](~amesgenm]@2001:470:69fc:105::82b)
2022-01-30 20:42:41 +0100JoseC[m](~jmcardonm@2001:470:69fc:105::1:7539)
2022-01-30 20:42:41 +0100zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32)
2022-01-30 20:42:41 +0100kadoban(~kadoban@user/kadoban)
2022-01-30 20:42:41 +0100ericson2314(~ericson23@2001:470:69fc:105::70c)
2022-01-30 20:42:41 +0100Arathorn(~arathorn@2001:470:69fc:105::1f)
2022-01-30 20:42:41 +0100Topik[m](~topikmatr@2001:470:69fc:105::a082)
2022-01-30 20:42:42 +0100unclechu(~unclechu@2001:470:69fc:105::354)
2022-01-30 20:42:42 +0100maralorn(~maralorn@2001:470:69fc:105::251)
2022-01-30 20:42:42 +0100reza[m](~rezaphone@2001:470:69fc:105::3eda)
2022-01-30 20:42:42 +0100quantum(~quantum@user/quantum/x-8556232)
2022-01-30 20:42:42 +0100marinelli[m](~marinelli@2001:470:69fc:105::2d8)
2022-01-30 20:42:42 +0100finalti[m](~finaltima@2001:470:69fc:105::d909)
2022-01-30 20:42:56 +0100denbrahe(~denbrahe@2001:470:69fc:105::19c0)
2022-01-30 20:42:56 +0100Las[m](~lasmatrix@2001:470:69fc:105::74e)
2022-01-30 20:43:08 +0100mahene[m](~mahenemat@2001:470:69fc:105::1:6a93)
2022-01-30 20:43:08 +0100hsiktas[m](~hsiktasm]@2001:470:69fc:105::30d4)
2022-01-30 20:43:08 +0100Deide(~deide@user/deide)
2022-01-30 20:43:08 +0100Artem[m](~artemtype@2001:470:69fc:105::75b)
2022-01-30 20:43:08 +0100psydroid(~psydroid@user/psydroid)
2022-01-30 20:43:08 +0100Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8)
2022-01-30 20:43:22 +0100ongy[m](~ongymatri@2001:470:69fc:105::5018)
2022-01-30 20:43:22 +0100jneira[m](~jneiramat@2001:470:69fc:105::d729)
2022-01-30 20:43:22 +0100siraben(~siraben@user/siraben)
2022-01-30 20:43:23 +0100smichel17[m](~smichel17@2001:470:69fc:105::2d32)
2022-01-30 20:43:23 +0100SawyerBergeron[m(~sawyerber@2001:470:69fc:105::3036)
2022-01-30 20:43:23 +0100Tisoxin(~ikosit@user/ikosit)
2022-01-30 20:43:23 +0100ManofLetters[m](~manoflett@2001:470:69fc:105::3be)
2022-01-30 20:43:23 +0100carmysilna(~brightly-@2001:470:69fc:105::2190)
2022-01-30 20:43:23 +0100fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2022-01-30 20:43:23 +0100DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886)
2022-01-30 20:43:23 +0100vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2022-01-30 20:43:23 +0100jmcantrell(~jmcantrel@user/jmcantrell)
2022-01-30 20:43:24 +0100maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2022-01-30 20:43:24 +0100wildsebastian(~wildsebas@2001:470:69fc:105::1:14b1)
2022-01-30 20:43:24 +0100jinsun_(~jinsun@user/jinsun)
2022-01-30 20:43:24 +0100fcortesi(~fcortesi@2001:470:69fc:105::f3a9)
2022-01-30 20:43:25 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:43:37 +0100xbreu(~xbreu@2001:470:69fc:105::1:5061)
2022-01-30 20:43:38 +0100ormaaj(~ormaaj@user/ormaaj)
2022-01-30 20:43:56 +0100ac(~aloiscoch@2001:470:69fc:105::65)
2022-01-30 20:43:56 +0100bitonic(~bitonic@2001:470:69fc:105::1812)
2022-01-30 20:43:56 +0100unrooted(~unrooted@2001:470:69fc:105::a4a)
2022-01-30 20:44:08 +0100pfurla-matrix(~pedrofurl@2001:470:69fc:105::1:51d7)
2022-01-30 20:44:08 +0100thejuan24f[m](~thejuan2m@2001:470:69fc:105::1:6569)
2022-01-30 20:44:22 +0100ParsaAlizadeh[m](~lizadehma@2001:470:69fc:105::1:65a4)
2022-01-30 20:44:35 +0100zwro[m](~zwromatri@2001:470:69fc:105::1d4)
2022-01-30 20:45:05 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Read error: Connection reset by peer)
2022-01-30 20:45:13 +0100CiaoSen(~Jura@p200300c95737a2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-01-30 20:46:02 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:46:18 +0100 <maerwald> that would require the solver to know about what you have downloaded etc... I don't think it has that information sclv?
2022-01-30 20:47:09 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Read error: Connection reset by peer)
2022-01-30 20:48:07 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-01-30 20:51:19 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210)
2022-01-30 20:51:28 +0100 <sm> For reporting program-terminating error messages in IO, I'd like to switch from fail to error, because fail prints "user error" and extra parentheses. Do you see any downside ? Are they equivalent ?
2022-01-30 20:51:29 +0100 <sm> g'day all
2022-01-30 20:51:34 +0100 <sm> (I dug through the source but couldn't quite tell)
2022-01-30 20:51:38 +0100 <sm> maybe they're different kinds of exceptions, and fail's is easier to catch. But that sounds ok.
2022-01-30 20:52:14 +0100shriekingnoise(~shrieking@201.231.16.156)
2022-01-30 20:52:33 +0100Null_A(~null_a@2601:645:8700:2290:3470:fb13:1e9a:e210) (Read error: Connection reset by peer)
2022-01-30 20:53:31 +0100FreedomConvoy(~FreedomCo@bras-base-lchtpq0202w-grc-14-174-91-187-149.dsl.bell.ca)
2022-01-30 20:53:47 +0100 <c_wraith> error is a bottom, but fail is different. That can affect the way GHC treats the error condition.
2022-01-30 20:54:22 +0100 <c_wraith> If you wanted control over the error type as well as its timing, you should use throwIO along with creating an exception of your desired type
2022-01-30 20:54:33 +0100 <hololeap> Warning: -rtsopts and -with-rtsopts have no effect with -shared. -- why is this?
2022-01-30 20:55:08 +0100 <hololeap> is it because the RTS is no longer bundled with the executable when you use -shared ?
2022-01-30 20:57:44 +0100Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
2022-01-30 20:57:45 +0100Gurkenglas(~Gurkengla@dslb-090-186-104-244.090.186.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
2022-01-30 20:58:30 +0100Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net) (Remote host closed the connection)
2022-01-30 21:02:26 +0100 <hololeap> I think I found the right section of the GHC docs
2022-01-30 21:02:49 +0100Null_A(~null_a@2601:645:8700:2290:c416:44d3:5d02:2aca)
2022-01-30 21:03:02 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Quit: free())
2022-01-30 21:03:11 +0100 <sm> c_wraith: thanks. I'm not crystal clear but I think in my situation they are effectively equivalent
2022-01-30 21:03:12 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 21:03:59 +0100 <sm> throwIO for better control, that makes sense.
2022-01-30 21:04:21 +0100Null_A(~null_a@2601:645:8700:2290:c416:44d3:5d02:2aca) (Remote host closed the connection)
2022-01-30 21:04:42 +0100retroid_(~retro@2e40edd9.skybroadband.com) (Ping timeout: 250 seconds)
2022-01-30 21:06:37 +0100Null_A(~null_a@2601:645:8700:2290:c416:44d3:5d02:2aca)
2022-01-30 21:07:59 +0100 <hololeap> I'm not finding this in the cabal docs so far. when I run `cabal configure --ghc-options="..."`, it adds `ghc-options:` inside two stanzas: `package *` and `program-options`
2022-01-30 21:08:14 +0100 <c_wraith> sm: throwIO creates an IO action that throws the exception when it's executed. error creates an expression that throws the exception when it's evaluated. The former is less up to the whims of the optimizer, for instance. IO actions are executed serially
2022-01-30 21:08:22 +0100 <hololeap> what is this program-options stanza and how does it differ from the other one?
2022-01-30 21:08:57 +0100coot(~coot@213.134.190.95)
2022-01-30 21:09:29 +0100cynomys(~cynomys@user/cynomys)
2022-01-30 21:10:45 +0100Null_A(~null_a@2601:645:8700:2290:c416:44d3:5d02:2aca) (Ping timeout: 250 seconds)
2022-01-30 21:13:37 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-01-30 21:14:24 +0100 <sm> nod
2022-01-30 21:15:37 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-01-30 21:17:16 +0100FreedomConvoy(~FreedomCo@bras-base-lchtpq0202w-grc-14-174-91-187-149.dsl.bell.ca) (K-Lined)
2022-01-30 21:19:37 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 240 seconds)
2022-01-30 21:23:05 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
2022-01-30 21:29:16 +0100vysn(~vysn@user/vysn)
2022-01-30 21:32:18 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
2022-01-30 21:32:34 +0100briandeaed(~root@185.234.208.208.r.toneticgroup.pl)
2022-01-30 21:35:48 +0100son0p(~ff@2800:484:1d81:b700:d40b:900:b387:320) (Ping timeout: 268 seconds)
2022-01-30 21:36:39 +0100neurocyte0917090(~neurocyte@user/neurocyte)
2022-01-30 21:37:04 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-01-30 21:39:47 +0100Erutuon(~Erutuon@user/erutuon)
2022-01-30 21:42:53 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-01-30 21:44:23 +0100mc47(~mc47@xmonad/TheMC47)
2022-01-30 21:47:36 +0100xff0x(~xff0x@2001:1a81:52f3:1d00:e2c8:a45c:f0af:d33) (Ping timeout: 250 seconds)
2022-01-30 21:47:54 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 256 seconds)
2022-01-30 21:50:20 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net)
2022-01-30 21:51:34 +0100 <dminuoso> monochrom: Thank you for your objections. As for the "thunk vs expression" terminology, it's an interesting choice - can people accept with just arbitrary semantics without envisioning some arbitrary specific model of implementation?
2022-01-30 21:52:16 +0100 <dminuoso> I actively delibered whether to just denominate these as lazy (let's for the sake of discussion also equate lazy and non-strict here) expressions
2022-01-30 21:53:28 +0100 <dminuoso> Perhaps I should engage more in just talking about semantics, but at the same time giving simplified models of explanation (i.e. equating a specific implementation with the semantics) can be a simpler way to learn something.
2022-01-30 21:53:38 +0100pavonia(~user@user/siracusa)
2022-01-30 21:54:04 +0100 <dminuoso> It's how we teach electrons as balls flying around an atom, something that is provably false.
2022-01-30 21:54:29 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-01-30 21:55:18 +0100 <dminuoso> (Which too is precluded by a false dichotomy)
2022-01-30 21:55:35 +0100Hash(~Hash@hashsecurity.org) (K-Lined)
2022-01-30 21:56:04 +0100Null_A(~null_a@2601:645:8700:2290:c416:44d3:5d02:2aca)
2022-01-30 21:56:24 +0100Morrow(~user@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 256 seconds)
2022-01-30 21:57:27 +0100 <dminuoso> As for the "less lazy", that intentionally was a pedagogic simplification. Also, in case you didnt catch it, my version of foldl' is strictly (the pun!) speaking is slightly different in strictness from the original, something I did intentional as explaining a function with a bang pattern is far simpler than `seq` - and the implementation was easy enough to get the gist of it across.
2022-01-30 21:57:29 +0100Null_A(~null_a@2601:645:8700:2290:c416:44d3:5d02:2aca) (Remote host closed the connection)
2022-01-30 21:58:12 +0100Morrow(~user@bzq-110-168-31-106.red.bezeqint.net)
2022-01-30 21:59:20 +0100 <dminuoso> I recently started having a lot of discussions with other people as well as my girlfriend, who works as a teacher, about how to properly simplify models in explanations. When do I annotate "this is just a simplification, but", when do I intentionally hide details "planet orbits are circles", or when do I tell blatant lies for simpler world models "electrons fly like balls around atoms"
2022-01-30 21:59:52 +0100 <dminuoso> Perhaps I should look up on some literature on this, there ought to be a lot of opinions and experiences
2022-01-30 22:00:14 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-01-30 22:00:31 +0100Null_A(~null_a@2601:645:8700:2290:5c09:f5f1:57b7:d1d5)
2022-01-30 22:00:34 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 22:01:03 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 22:01:07 +0100Tuplanolla(~Tuplanoll@91-159-68-166.elisa-laajakaista.fi) (Quit: Leaving.)
2022-01-30 22:01:09 +0100Null_A(~null_a@2601:645:8700:2290:5c09:f5f1:57b7:d1d5) (Read error: Connection reset by peer)
2022-01-30 22:02:19 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2022-01-30 22:02:26 +0100alp(~alp@user/alp) (Ping timeout: 245 seconds)
2022-01-30 22:02:48 +0100hololeap(~hololeap@user/hololeap) (Excess Flood)
2022-01-30 22:03:25 +0100Null_A(~null_a@2601:645:8700:2290:5c09:f5f1:57b7:d1d5)
2022-01-30 22:03:41 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2022-01-30 22:03:41 +0100zer0bitz(~zer0bitz@2001:2003:f74d:b800:50b5:b57f:7251:ce23) (Ping timeout: 245 seconds)
2022-01-30 22:03:56 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-01-30 22:04:10 +0100hololeap(~hololeap@user/hololeap)
2022-01-30 22:04:34 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-30 22:05:28 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2022-01-30 22:10:02 +0100xff0x(~xff0x@2001:1a81:52f3:1d00:e2c8:a45c:f0af:d33)
2022-01-30 22:13:36 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 250 seconds)
2022-01-30 22:15:13 +0100nineonine(~nineonine@S0106a0ff7073d5d5.vf.shawcable.net)
2022-01-30 22:17:25 +0100hololeap_(~hololeap@user/hololeap)
2022-01-30 22:17:27 +0100hololeap(~hololeap@user/hololeap) (Read error: Connection reset by peer)
2022-01-30 22:17:54 +0100max22-(~maxime@2a01cb0883359800a797759c8651134a.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2022-01-30 22:18:21 +0100jgeerds_(~jgeerds@55d4a547.access.ecotel.net)
2022-01-30 22:18:44 +0100 <jackdk> my school chemistry class basically told us we were going to be told a series of less lying lies, but also gave us a guided tour of the major experiments which invalidated each model. I though that was cool
2022-01-30 22:18:52 +0100max22-(~maxime@2a01cb0883359800da3732762d8e896f.ipv6.abo.wanadoo.fr)
2022-01-30 22:21:10 +0100epolanski(uid312403@id-312403.helmsley.irccloud.com)
2022-01-30 22:21:40 +0100briandeaed(~root@185.234.208.208.r.toneticgroup.pl) (Quit: leaving)
2022-01-30 22:23:00 +0100 <ephemient> there's no right answer for everyone. some are going to get stuck on the wrong model, but you're not going to get through to many students without simplifications
2022-01-30 22:23:52 +0100cynomys(~cynomys@user/cynomys) (Quit: Lost terminal)
2022-01-30 22:24:11 +0100 <dminuoso> Sure, I dont think simple models are the point of discussion here.
2022-01-30 22:24:26 +0100davros(~davros@host86-185-61-1.range86-185.btcentralplus.com) (Ping timeout: 250 seconds)
2022-01-30 22:24:36 +0100lep(~lep@94.31.89.203)
2022-01-30 22:24:52 +0100 <dminuoso> Like a QM professor once put it "a model serves just to make predictions. If these predictions turn out to be true, the model is good - if not the model is not good.
2022-01-30 22:25:07 +0100 <dminuoso> So you can measure the quality in the number of false predictions.
2022-01-30 22:25:28 +0100 <lep> is there a way to have cabal tell me the path to an exe it just build?
2022-01-30 22:25:41 +0100 <monochrom> My first simplification is to commit to lazy evaluation even though the Haskell Report doesn't. My second simplification is I don't need the vocab "thunk". Hell I don't need "closure" either.
2022-01-30 22:25:42 +0100 <dminuoso> lep: Yes, `cabal list-bin <component-descr>`
2022-01-30 22:25:52 +0100 <lep> thanks!
2022-01-30 22:26:22 +0100 <monochrom> http://www.cs.utoronto.ca/~trebla/CSCC24-2021-Summer/03-haskell-evaluation.html is how I teach this stuff.
2022-01-30 22:26:42 +0100 <dminuoso> monochrom: I think its much simpler in the context of a course, where you can establish terminology and frame the students as you see fit.
2022-01-30 22:26:51 +0100 <dminuoso> The benefit of being a professor I suppose
2022-01-30 22:27:33 +0100hololeap_(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2022-01-30 22:28:50 +0100xsperry(~xs@user/xsperry) (Ping timeout: 268 seconds)
2022-01-30 22:29:02 +0100 <lep> also can i tell cabal to not create a backup file of cabal.project.local when i change a configuration?
2022-01-30 22:29:22 +0100 <dminuoso> Else a discussion would have to begin by establishing a particular choice of terminology and some context. Then, under the assumption the discussion partner is able to blindly relinquish themselves of their knowledge and beliefs, adopt yours, you can explain it in that sense.
2022-01-30 22:29:31 +0100 <lep> i guess i can remove it before calling configure
2022-01-30 22:29:47 +0100Null_A(~null_a@2601:645:8700:2290:5c09:f5f1:57b7:d1d5) (Remote host closed the connection)
2022-01-30 22:29:51 +0100cjb(~cjb@user/cjb)
2022-01-30 22:29:54 +0100 <dminuoso> lep: Mmm, calling configure is an odd thing to do in 2022
2022-01-30 22:30:17 +0100 <lep> ok
2022-01-30 22:30:22 +0100 <lep> i have no idea of cabal
2022-01-30 22:30:35 +0100 <lep> i just have a flag which changes the build
2022-01-30 22:30:41 +0100 <lep> and i want to build both versions
2022-01-30 22:31:02 +0100 <dminuoso> lep: So I would keep two cabal.project.local files, containing the separate flags
2022-01-30 22:31:35 +0100 <dminuoso> And then invoke cabal twice with `cabal build --project-file cabal.project.local.flavorA && cabal build --project file cabal.project.local.flavorB`
2022-01-30 22:31:54 +0100 <dminuoso> If memory serves right, all `cabal configure` does in v2- mode is put out those flags into a cabal.project.local anyway
2022-01-30 22:32:07 +0100 <lep> nice, thanks agains
2022-01-30 22:32:09 +0100 <lep> -s
2022-01-30 22:34:22 +0100son0p(~ff@2800:484:1d81:b700:d40b:900:b387:320)
2022-01-30 22:36:12 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-01-30 22:36:22 +0100 <lep> so it replaces my project.cabal file? if i just do cabal build --project-file cabal.project.local.flavourA <target> i get an error
2022-01-30 22:36:24 +0100waleee(~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
2022-01-30 22:36:32 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 22:38:42 +0100megaTherion(~therion@unix.io)
2022-01-30 22:42:18 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Ping timeout: 260 seconds)
2022-01-30 22:45:46 +0100_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-01-30 22:49:12 +0100ix(~ix@2a02:8010:674f:0:d65d:64ff:fe52:5efe)
2022-01-30 22:49:56 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk)
2022-01-30 22:50:00 +0100doxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net)
2022-01-30 22:50:44 +0100alp(~alp@user/alp)
2022-01-30 22:51:12 +0100thyriaen_(~thyriaen@dynamic-077-191-211-108.77.191.pool.telefonica.de) (Quit: Leaving)
2022-01-30 22:52:08 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection)
2022-01-30 22:52:35 +0100soxen(~bbrahms@pool-173-54-217-168.nwrknj.fios.verizon.net) (Ping timeout: 250 seconds)
2022-01-30 22:52:57 +0100gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-01-30 22:53:02 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
2022-01-30 22:54:31 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 245 seconds)
2022-01-30 22:55:13 +0100a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
2022-01-30 23:03:49 +0100 <dminuoso> It rather emits to your cabal.project.local
2022-01-30 23:03:58 +0100 <dminuoso> Presumably it will backup whatever there is before
2022-01-30 23:04:20 +0100 <dminuoso> Your cabal.project and cabal.project.local represent the (stateful) build configuration for your project
2022-01-30 23:08:17 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-01-30 23:09:19 +0100Null_A(~null_a@c-98-210-133-39.hsd1.ca.comcast.net)
2022-01-30 23:10:12 +0100machinedgod(~machinedg@24.105.81.50)
2022-01-30 23:11:54 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com)
2022-01-30 23:11:55 +0100wroathe(~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
2022-01-30 23:11:55 +0100wroathe(~wroathe@user/wroathe)
2022-01-30 23:15:44 +0100alx741(~alx741@157.100.197.240)
2022-01-30 23:19:27 +0100vysn(~vysn@user/vysn) (Ping timeout: 250 seconds)
2022-01-30 23:23:00 +0100a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Remote host closed the connection)
2022-01-30 23:23:10 +0100Codaraxis_(~Codaraxis@user/codaraxis)
2022-01-30 23:24:35 +0100CHUD(~CHUD@host-80-41-89-108.as13285.net)
2022-01-30 23:25:58 +0100klf(~klf@66.220.205.98) (Quit: Leaving)
2022-01-30 23:26:12 +0100MatthiasG2(~matthias@i6DFA01BB.versanet.de) (Quit: leaving)
2022-01-30 23:26:25 +0100CHUD(~CHUD@host-80-41-89-108.as13285.net) ()
2022-01-30 23:26:57 +0100Codaraxis(~Codaraxis@user/codaraxis) (Ping timeout: 240 seconds)
2022-01-30 23:28:53 +0100merijn(~merijn@c-001-001-018.client.esciencecenter.eduvpn.nl)
2022-01-30 23:30:05 +0100cosimone(~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Quit: ERC (IRC client for Emacs 27.1))
2022-01-30 23:33:02 +0100mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-01-30 23:33:22 +0100jkaye(~jkaye@2601:281:8300:7530:d551:c5d6:10bb:b867)
2022-01-30 23:39:18 +0100max22-(~maxime@2a01cb0883359800da3732762d8e896f.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2022-01-30 23:45:24 +0100Codaraxis_(~Codaraxis@user/codaraxis) (Read error: Connection reset by peer)
2022-01-30 23:45:27 +0100Codaraxis__(~Codaraxis@user/codaraxis)
2022-01-30 23:46:05 +0100tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-01-30 23:46:33 +0100lavaman(~lavaman@98.38.249.169)
2022-01-30 23:50:51 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2022-01-30 23:50:52 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2022-01-30 23:52:19 +0100charukiewicz(~charukiew@2600:1702:a90:2750:724d:7bff:fe2b:f560)
2022-01-30 23:53:41 +0100madjestic(~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 250 seconds)
2022-01-30 23:54:18 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-01-30 23:55:04 +0100 <charukiewicz> I'm trying to use pandocCompiler in my Hakyll site and have been fighting it for like an hour just to get it to preserve a target="_blank" tag when compiling <a> tags in an .html file. I've tried using pandocCompilerWith to enable custom readerExtensions/writerExtensions such as Ext_link_attributes which the docs seem to suggest should support passing through all the attributes, but I can't get it to change its behavior of
2022-01-30 23:55:04 +0100 <charukiewicz> omitting everything other than href, id, and class. Has anyone dealt with this?
2022-01-30 23:56:48 +0100 <charukiewicz> I'm at a point where I want to use TagSoup to traverse the parsed document and convert a class named "target--_blank" into the target="_blank" attribute, which I know will work, but is a terrible approach.
2022-01-30 23:56:56 +0100azimut_(~azimut@gateway/tor-sasl/azimut)
2022-01-30 23:59:44 +0100burnsidesLlama(~burnsides@dhcp168-016.wadham.ox.ac.uk) (Remote host closed the connection)
2022-01-30 23:59:51 +0100azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)