Home liberachat/#haskell: Logs Calendar

Logs on 2023-04-25 (liberachat/#haskell)

00:02:40 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
00:03:19 Goodbye_Vincent joins (cyvahl@freakshells.net)
00:03:40 milia joins (~milia@user/milia)
00:04:57 rf_ joins (~rf@2605:59c8:1604:2210:5de6:62f6:20ef:34c8)
00:06:10 slac22722 joins (~slack1256@186.11.7.168)
00:06:42 heraldo joins (~heraldo@user/heraldo)
00:08:05 × slack1256 quits (~slack1256@181.42.40.106) (Ping timeout: 240 seconds)
00:09:21 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
00:10:10 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
00:10:24 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
00:10:39 Lord_of_Life_ is now known as Lord_of_Life
00:10:59 gmg joins (~user@user/gehmehgeh)
00:12:34 × elevenkb quits (~user@105.225.53.253) (Ping timeout: 276 seconds)
00:14:24 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
00:16:11 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
00:19:28 × accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
00:23:07 × perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 248 seconds)
00:23:54 × yurideabreu_ quits (~yurideabr@189.6.27.58) (Ping timeout: 255 seconds)
00:26:09 × Square quits (~Square4@user/square) (Ping timeout: 255 seconds)
00:27:23 × rf quits (~rf@2605:59c8:1604:2210:5de6:62f6:20ef:34c8) (Ping timeout: 248 seconds)
00:27:44 × rf_ quits (~rf@2605:59c8:1604:2210:5de6:62f6:20ef:34c8) (Ping timeout: 248 seconds)
00:27:55 polykernel[m] joins (~polykerne@user/polykernel)
00:27:57 × slac22722 quits (~slack1256@186.11.7.168) (Ping timeout: 255 seconds)
00:28:16 × jero98772 quits (~jero98772@2800:484:1d84:9000::3) (Ping timeout: 248 seconds)
00:34:08 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Remote host closed the connection)
00:34:51 polykernel[m] parts (~polykerne@user/polykernel) ()
00:37:25 rf joins (~rf@2605:59c8:1604:2210:7628:6b37:4071:a695)
00:37:41 rf_ joins (~rf@2605:59c8:1604:2210:7628:6b37:4071:a695)
00:39:13 polykernel[m] joins (~polykerne@user/polykernel)
00:39:47 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:39:47 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:39:47 wroathe joins (~wroathe@user/wroathe)
00:40:12 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
00:40:54 Goodbye_Vincent joins (cyvahl@freakshells.net)
00:41:38 jero98772 joins (~jero98772@2800:484:1d84:9000::3)
00:47:28 slack1256 joins (~slack1256@186.11.0.40)
00:52:14 × ix quits (~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe) (Remote host closed the connection)
00:59:35 ix joins (~ix@2a02:8012:281f:0:d65d:64ff:fe52:5efe)
00:59:46 × rf_ quits (~rf@2605:59c8:1604:2210:7628:6b37:4071:a695) (Quit: Leaving)
01:00:57 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
01:06:33 gehmehgeh joins (~user@user/gehmehgeh)
01:07:48 robobub joins (uid248673@2a03:5180:f:5::3:cb61)
01:09:20 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 255 seconds)
01:10:10 slac15895 joins (~slack1256@191.126.227.87)
01:10:49 mestre joins (~mestre@191.177.175.117)
01:10:56 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:12:31 × slack1256 quits (~slack1256@186.11.0.40) (Ping timeout: 255 seconds)
01:13:36 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 248 seconds)
01:15:44 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
01:17:03 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:17:43 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
01:18:31 Goodbye_Vincent joins (cyvahl@freakshells.net)
01:22:19 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 248 seconds)
01:26:17 × jwiegley quits (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Remote host closed the connection)
01:27:09 jwiegley joins (~jwiegley@76-234-69-149.lightspeed.frokca.sbcglobal.net)
01:37:28 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
01:38:07 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds)
01:39:25 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
01:44:13 slac15895 is now known as slack1256
01:46:04 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
01:51:48 × xff0x quits (~xff0x@2405:6580:b080:900:9b3e:353e:43c8:742e) (Ping timeout: 265 seconds)
01:53:27 × heraldo quits (~heraldo@user/heraldo) (Ping timeout: 255 seconds)
01:53:38 waleee joins (~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
01:55:14 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
01:55:56 Goodbye_Vincent joins (cyvahl@freakshells.net)
02:02:31 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
02:07:16 bratwurst joins (~dfadsva@2604:3d09:207f:f650::708a)
02:10:39 × mestre quits (~mestre@191.177.175.117) (Ping timeout: 265 seconds)
02:13:24 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
02:19:01 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
02:21:38 JScript joins (~JScript@cpe-172-193-181-254.qld.foxtel.net.au)
02:26:46 × rf quits (~rf@2605:59c8:1604:2210:7628:6b37:4071:a695) (Remote host closed the connection)
02:32:49 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
02:32:58 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:33:31 Goodbye_Vincent joins (cyvahl@freakshells.net)
02:42:03 bliminse joins (~bliminse@user/bliminse)
02:57:16 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
02:58:43 × td_ quits (~td@i53870912.versanet.de) (Ping timeout: 255 seconds)
02:59:48 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:00:39 td_ joins (~td@i53870921.versanet.de)
03:05:27 dh97 joins (~tanmoydas@2405:201:d02b:48f3:b4d9:7afc:ebd0:3f47)
03:06:33 × jero98772 quits (~jero98772@2800:484:1d84:9000::3) (Remote host closed the connection)
03:06:50 × JScript quits (~JScript@cpe-172-193-181-254.qld.foxtel.net.au) (Ping timeout: 255 seconds)
03:09:43 × dh97 quits (~tanmoydas@2405:201:d02b:48f3:b4d9:7afc:ebd0:3f47) (Client Quit)
03:10:20 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
03:10:40 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::708a) (Ping timeout: 260 seconds)
03:11:02 Goodbye_Vincent joins (cyvahl@freakshells.net)
03:12:29 JScript joins (~JScript@cpe-172-193-181-254.qld.foxtel.net.au)
03:12:31 × JScript quits (~JScript@cpe-172-193-181-254.qld.foxtel.net.au) (Max SendQ exceeded)
03:13:53 JScript joins (~JScript@cpe-172-193-181-254.qld.foxtel.net.au)
03:20:01 vglfr joins (~vglfr@46.96.188.24)
03:20:18 × hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 255 seconds)
03:23:15 hugo joins (znc@verdigris.lysator.liu.se)
03:47:56 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
03:49:06 Goodbye_Vincent joins (cyvahl@198.244.205.143)
03:49:33 × gurkengl1s quits (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
03:56:35 nate1 joins (~nate@98.45.169.16)
04:01:15 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
04:09:58 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
04:09:58 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
04:09:58 wroathe joins (~wroathe@user/wroathe)
04:10:03 notzmv joins (~zmv@user/notzmv)
04:10:20 aeroplane joins (~user@user/aeroplane)
04:11:56 slac19118 joins (~slack1256@191.126.227.64)
04:13:20 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 248 seconds)
04:14:18 × slack1256 quits (~slack1256@191.126.227.87) (Ping timeout: 255 seconds)
04:14:28 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
04:25:32 × Goodbye_Vincent quits (cyvahl@198.244.205.143) (Remote host closed the connection)
04:26:13 Goodbye_Vincent joins (cyvahl@freakshells.net)
04:26:36 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Client Quit)
04:32:46 gurkenglas joins (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de)
04:39:03 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
04:39:18 Goodbye_Vincent joins (cyvahl@freakshells.net)
04:39:20 × notzmv quits (~zmv@user/notzmv) (Read error: Connection reset by peer)
04:47:52 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:48:33 notzmv joins (~zmv@user/notzmv)
04:59:45 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
04:59:47 × slac19118 quits (~slack1256@191.126.227.64) (Read error: Connection reset by peer)
05:01:48 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
05:02:31 falafel joins (~falafel@2603-8000-d700-115c-edf5-9a9b-d729-cf34.res6.spectrum.com)
05:03:02 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Remote host closed the connection)
05:03:44 Goodbye_Vincent joins (cyvahl@freakshells.net)
05:08:07 × riatre quits (~quassel@2001:310:6000:f::5198:1) (Quit: No Ping reply in 180 seconds.)
05:08:17 riatre joins (~quassel@2001:310:6000:f::5198:1)
05:09:48 × Goodbye_Vincent quits (cyvahl@freakshells.net) (Quit: )
05:16:38 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-d11e-aa70-1ef3-2bb0.rev.sfr.net) (Remote host closed the connection)
05:16:58 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-d11e-aa70-1ef3-2bb0.rev.sfr.net)
05:20:00 <jwiegley> why is logBase 0 1 = -0.0 rather than NaN?
05:23:57 smallville7123_ joins (~JScript@103.137.12.165)
05:24:00 × smallville7123_ quits (~JScript@103.137.12.165) (Max SendQ exceeded)
05:25:37 × JScript quits (~JScript@cpe-172-193-181-254.qld.foxtel.net.au) (Ping timeout: 250 seconds)
05:27:10 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds)
05:27:59 trev joins (~trev@user/trev)
05:32:00 michalz joins (~michalz@185.246.207.200)
05:40:10 × tosyl quits (~user@103.206.114.114) (Ping timeout: 276 seconds)
05:42:45 JScript joins (~JScript@103.137.12.165)
05:43:04 <mikko> jwiegley: because it's definition is "logBase x y = log y / log x" (not that it makes it correct but it seems most software makes the same "mistake")
05:54:31 × falafel quits (~falafel@2603-8000-d700-115c-edf5-9a9b-d729-cf34.res6.spectrum.com) (Ping timeout: 240 seconds)
05:55:04 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
05:55:47 euandreh joins (~Thunderbi@189.6.18.7)
06:08:06 <mikko> jwiegley: https://bpa.st/YN5IY looks like it's not NaN in any language, and in all languages where it's not a runtime error it's 0
06:09:07 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 255 seconds)
06:31:18 luffy[m]1 joins (~luffyinte@2001:470:69fc:105::3:4cd5)
06:36:12 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:46:41 mmhat joins (~mmh@p200300f1c701f195ee086bfffe095315.dip0.t-ipconnect.de)
06:47:07 kenran joins (~user@user/kenran)
06:48:28 MajorBiscuit joins (~MajorBisc@2001:1c00:2408:a400:7f99:b6d8:c8b8:dc05)
06:50:25 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
06:52:28 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
06:57:15 tok joins (~user@user/tok)
06:59:30 × MajorBiscuit quits (~MajorBisc@2001:1c00:2408:a400:7f99:b6d8:c8b8:dc05) (Quit: WeeChat 3.6)
07:00:54 lortabac joins (~lortabac@2a01:e0a:541:b8f0:3fc0:9f49:a9fd:db74)
07:03:07 chele joins (~chele@user/chele)
07:03:32 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
07:11:30 <jwiegley> well, log 0 = -Infinity, so I wouldn't expect that definition of logBase to yield -0.0
07:12:02 <jwiegley> the spec I'm looking at is https://speleotrove.com/decimal/, which disagrees with Haskell for both ^ and logBase on a few inputs; just wondering
07:13:48 <mikko> 0.0 / -Infinity is -0.0, that's where it comes from
07:14:37 <jwiegley> oh, sorry, I flipped the arguments in my head again
07:15:48 MajorBiscuit joins (~MajorBisc@c-001-025-011.client.tudelft.eduvpn.nl)
07:17:11 acidjnk joins (~acidjnk@p200300d6e715c48334884ea8abdf0cea.dip0.t-ipconnect.de)
07:18:45 Goodbye_Vincent joins (cyvahl@freakshells.net)
07:23:19 × vglfr quits (~vglfr@46.96.188.24) (Ping timeout: 255 seconds)
07:23:23 titibandit joins (~titibandi@user/titibandit)
07:24:16 × titibandit quits (~titibandi@user/titibandit) (Quit: leaving)
07:28:00 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 248 seconds)
07:29:59 mc47 joins (~mc47@xmonad/TheMC47)
07:33:45 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
07:39:03 _ht joins (~Thunderbi@82.174.52.28)
07:39:57 × gurkenglas quits (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de) (Ping timeout: 250 seconds)
07:40:27 <dminuoso> geekosaur: I wish () would cancel `` out.
07:40:43 <dminuoso> (`foo`) ought to be syntactically equivalent to foo.
07:40:51 <dminuoso> syntax isomorphism.
07:41:06 <geekosaur> if you can come up with a syntactic replacement for the closing ` then it'd be possible
07:42:06 <dminuoso> How do you mean?
07:42:25 <dminuoso> And similarly, I would want `(+)` to work as in infix position.
07:43:20 <[exa]> dminuoso: if you don't use some kind of reverse ` for "closing", it doesn't have unique parses
07:43:29 <[exa]> say e.g. `+`+`+`
07:43:37 <geekosaur> if opening and closing chars are the same then you need some kind of escape syntax to handle the case of multiple nestings (compare strings, and for that matter why shells switched from `` to $())
07:44:11 <geekosaur> because once you allow (`foo`) you have the possibility of further nestings
07:44:49 <geekosaur> well, thta's not entirely true because (`foo`) is almost valid as is because of sections
07:47:42 azimut joins (~azimut@gateway/tor-sasl/azimut)
07:47:53 vglfr joins (~vglfr@88.155.107.22)
07:50:22 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds)
07:52:06 × vglfr quits (~vglfr@88.155.107.22) (Ping timeout: 255 seconds)
07:54:20 tomsmeding . o O ( `(`foo`)` )
07:55:37 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:57:07 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:58:00 <dminuoso> tomsmeding: Interesting idea, for better visual readability, line comments should start with . o O
07:58:05 nate1 joins (~nate@98.45.169.16)
07:58:05 <dminuoso> And be enclosed in parens.
07:59:00 <geekosaur> probably exists somewhere. isn't there a "cat macro" (eso)language?
07:59:12 zeenk joins (~zeenk@2a02:2f04:a20f:5200::fba)
08:02:08 × ubert quits (~Thunderbi@p548c9793.dip0.t-ipconnect.de) (Quit: ubert)
08:03:00 × JScript quits (~JScript@103.137.12.165) (Ping timeout: 265 seconds)
08:03:10 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds)
08:03:54 <probie> The J language has comments start with `NB.` which I enjoy
08:03:59 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
08:05:41 gurkenglas joins (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de)
08:07:43 <dminuoso> probie: that dot would trigger me heavily.
08:07:48 <geekosaur> I kinda liked APL's "lamp" (raised small circle overprinted with cap)
08:07:56 <dminuoso> Either it should be NB or N.B.
08:09:07 <jade[m]> geekosaur: yesh that one's fun
08:09:12 <jade[m]> * yeah that one's fun
08:10:40 tomboy64 joins (~tomboy64@user/tomboy64)
08:11:52 <dminuoso> Is there any value of using a `TVar (M.Map K V)` when there is no other STM references in any STM transaction over using an MVar () as a mutex around an `IORef (Map K V)`?
08:14:08 <geekosaur> I'm gonna let someone else answer that one, I've had exactly three hours of sleep and don't quite trust my reasoning to that level
08:15:27 <mikko> [exa]: mhm, i kinda like the look of Ì+Í+Ì+Í...
08:16:18 JScript joins (~JScript@103.137.12.165)
08:16:18 <mikko> plus we could call them ìnfíx i's
08:16:21 <jade[m]> that looks like a gate
08:16:28 × JScript quits (~JScript@103.137.12.165) (Max SendQ exceeded)
08:17:00 JScript joins (~JScript@103.137.12.165)
08:17:17 <jade[m]> Í=Î=Î=Ì
08:18:44 remexre_ joins (~remexre@mail.sift.net)
08:19:02 × remexre quits (~remexre@user/remexre) (Read error: Connection reset by peer)
08:19:19 remexre_ is now known as remexre
08:23:39 <dminuoso> Mmm, in fact it might be even cuter to use `MVar (IORef (Map K V))` as a way to guarantee you cant misuse this.
08:23:43 <dminuoso> That's not too bad indeed.
08:33:30 <merijn> dminuoso: What's the point of that?
08:33:43 <merijn> dminuoso: Isn't that just "MVar (Map K V)" with extra steps?
08:33:59 <dminuoso> I guess it is.
08:35:07 <geekosaur> I was thinking that too, but as I said I don't quite trust myself currently
08:38:57 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
08:50:27 jonathan_ joins (~jonathan@h-176-10-144-60.NA.cust.bahnhof.se)
08:51:58 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
08:52:35 <jonathan_> I remember reading somewhere that it's bad practice to have a sum type with record syntax for the constructors. I can't remember any details, does anyone know the reasoning?
08:53:20 <geekosaur> what's bad practice is data Foo = A { record here} | B { record here }
08:53:53 <geekosaur> because all fields need to be present in all alternatives or the selector functions will be partial
08:54:10 ubert joins (~Thunderbi@2a02:8109:abc0:6434:a400:eee7:e7eb:3518)
08:54:38 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
08:55:05 <geekosaur> @let data Foo = FooA { fName :: String, fInt :: Int } | FooB { fName :: String, fStr :: String }
08:55:06 <lambdabot> Defined.
08:55:42 <geekosaur> @let anA = FooA "bleh" 1
08:55:43 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
08:55:43 <lambdabot> Defined.
08:55:57 <geekosaur> > fStr anA -- boom
08:55:58 <lambdabot> "*Exception: No match in record selector fStr
08:57:17 <merijn> geekosaur: That's fine practice, just enable (disable? :p) -XNoFieldSelectors
08:58:03 <merijn> Hot take: Selector functions were a mistake
09:03:09 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-d11e-aa70-1ef3-2bb0.rev.sfr.net) (*.net *.split)
09:04:23 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
09:04:27 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:04:51 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (*.net *.split)
09:04:51 × gehmehgeh quits (~user@user/gehmehgeh) (*.net *.split)
09:04:51 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (*.net *.split)
09:04:51 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (*.net *.split)
09:04:51 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (*.net *.split)
09:04:51 × jpds quits (~jpds@gateway/tor-sasl/jpds) (*.net *.split)
09:04:51 × chiselfuse quits (~chiselfus@user/chiselfuse) (*.net *.split)
09:04:51 × califax quits (~califax@user/califx) (*.net *.split)
09:04:51 × pharonix71 quits (~pharonix7@user/pharonix71) (*.net *.split)
09:04:52 × chexum quits (~quassel@gateway/tor-sasl/chexum) (*.net *.split)
09:05:23 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
09:16:43 <lyxia> record updates too
09:18:40 <merijn> Record updates are fine
09:19:04 <dminuoso> lens provides a pretty ergonomic way to talk about nested access patterns, even updates.
09:19:04 <merijn> In what way are they a mistake?
09:19:18 <dminuoso> So I think record updates are fine, even though they are fairly useless in a nested scenario
09:19:44 <merijn> lyxia: Selector functions are a mistake because a desirable usecase (multiple constructors with named fields) becomes 'bad' due to generating loads of partial functions
09:19:57 <merijn> lyxia: afaict there's no negative interaction from record updates
09:23:14 <dminuoso> I dont think selector functions are really important anyway, since you can just use pattern matching `f Foo{field = x} = ...`
09:23:33 <dminuoso> Which at the same is fully robust
09:27:10 <nshepperd2> with -XNoFieldSelectors you can also write your own field selectors when they happen to be total, without having to call the fields themselves "getFoo" which is gross
09:27:45 jzerebecki joins (~jzerebeck@2001:470:69fc:105::f90)
09:27:46 × ft quits (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving)
09:33:41 <jzerebecki> trying to file a ghc bug report, login after account creation getting, "Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error. ", any advice how to proceed?
09:34:22 <geekosaur> ask in #ghc, you generally have to be a bit of a squeaky wheel to push the process along
09:35:02 <geekosaur> (approval stuff is because there was a shitload of spam on gitlab before they instituted it)
09:36:17 × zeenk quits (~zeenk@2a02:2f04:a20f:5200::fba) (Remote host closed the connection)
09:37:01 <jzerebecki> thx
09:37:02 zeenk joins (~zeenk@2a02:2f04:a20f:5200::7fe)
09:39:28 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
09:39:46 <merijn> In my experience #ghc or ghc-devs mailing list gets pretty fast response
09:40:06 <merijn> I think you can just authenticate via github too?
09:44:09 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 255 seconds)
09:44:51 <lyxia> merijn: is it not a problem to update a field that doesn't exist?
09:46:17 <merijn> lyxia: Update is disabled for types with no selectors
09:46:28 <lyxia> I see.
09:46:41 <merijn> ah, wait, no I misread these docs, lemme check :p
09:49:06 <merijn> hmm, guess I need a no -XNoUpdates too :p
09:55:10 barcisz joins (~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
09:59:27 × cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 255 seconds)
09:59:40 cods joins (~fred@82-65-232-44.subs.proxad.net)
10:00:58 notzmv joins (~zmv@user/notzmv)
10:01:52 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 252 seconds)
10:05:24 <fbytez> Is `Data.Function.&` the closest thing to the "opposite" of `$`? -- `string & (words >>> unwords)`
10:05:46 vglfr joins (~vglfr@88.155.25.253)
10:06:58 <dminuoso> fbytez: what does "opposite" mean to you?
10:08:36 <fbytez> Like, apply following functions to preceding data instead of apply functions to following data.
10:08:40 <dminuoso> I mean it has flipped arguments, but one notable difference is that (&) is infixl 1, not infixl 0
10:09:19 <fbytez> Sorry, I don't understand the terminology (infixl 1, not infixl 0)
10:09:21 <dminuoso> The core of ($) isnt as much function application, as it is `infixr 0`
10:09:49 <dminuoso> fbytez: So in Haskell we can control whether an operator is left or right associative, and also how strong its associativity is
10:11:10 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds)
10:11:38 <fbytez> What do the "1" and "0" represent?
10:11:41 <mauke> those are infix declarations. they're the reason why a + b * c parses as a + (b * c) and not vice versa
10:11:50 <mauke> the numbers are the operator precedence
10:12:10 crvs joins (~crvs@212.37.18.202)
10:12:11 <mauke> s/vice versa/as (a + b) * c/
10:12:22 <fbytez> Ah... I understand. Thankyou, both.
10:14:08 <dminuoso> fbytez: Anyway. Now I should note that for ($) it doesnt really matter whether its right or left associative (there's general consensus that it would have been better if it was written as left-associative/infixl), whats really important is that `0`
10:14:13 <dminuoso> which means it binds stronger than almost anything.
10:14:19 <fbytez> When it comes to compilation, is there any difference between `string & (words >>> unwords)` and `string & words & unwords`?
10:14:32 <dminuoso> The only other operator that binds even stronger is the empty space (which you can think of a function application operator, semnatically)
10:14:46 <fbytez> Right.
10:15:13 <dminuoso> fbytez: Mmm okay so there might not be a difference. If there is, then (>>>) has the bigger potential to lead to worse code.
10:15:21 <dminuoso> It depends a bit on some factors.
10:15:40 <dminuoso> The reason is that (>>>) is polymorphic over a typeclass, (&) is monomorphic.
10:16:13 <dminuoso> Another is that RULES might not fire depending on inlining, or fire later
10:16:31 <dminuoso> But neither of these things is something I would worry about.
10:16:38 <fbytez> Right.
10:16:39 <dminuoso> If performance issues arise, they can be addressed.
10:17:15 <fbytez> And how about compared to the "usual" ordering, like: `unwords $ words $ string`?
10:17:30 <dminuoso> I dont consider that usual at all.
10:17:36 <fbytez> Oh.
10:17:42 <dminuoso> There's a broad range of Haskellers that consider ($) a bad idea.
10:18:03 <fbytez> I wasn't expecting that.
10:18:11 <dminuoso> Most of the "acceptable uses" have been subsumed by the BlockArguments extension
10:18:31 <dminuoso> But note, this will depend on who you ask. There's obviously people that like ($) in their code a lot.
10:19:26 <fbytez> I tend to view it as a shorthand for `()` on all following functions / data.
10:19:59 <fbytez> How would you expect it to be written?
10:20:11 <fbytez> `unwords (words string)`?
10:20:48 <dminuoso> Yes.
10:21:23 <fbytez> OK. Thanks for all the info.
10:21:28 <dminuoso> Parenthesis make for easier refactoring and generally a better editor experience.
10:21:44 <dminuoso> And if the number of parenthesis become too much, you're probably better off using surrogate bindings in a where clause
10:21:52 <dminuoso> (Or other top level bindings)
10:22:31 <dminuoso> fbytez: But anyway, I want to emphasize that whether or not to use ($) is still very subjective.
10:22:56 <dminuoso> Given how frequently I see what I perceive as "an overuse of ($)", there's clearly a broad audience that enjoys it.
10:24:17 <fbytez> Right. As I say, I viewed like a way to reduce use of '()' in a chain.
10:24:30 <dminuoso> I dont think of parenthesis as being bad in any way.
10:24:46 <dminuoso> You dont really end up saving anything if you replace one grammatical distinguisher with another.
10:24:54 <dminuoso> It changes the style.
10:25:07 <dminuoso> One clear and objective benefit of parenthesis is that you can easily refacftor something
10:26:14 <fbytez> Same, really -- I rather like lisp -- just lazier to write.
10:27:46 <fbytez> Does it potentially compile better as it's just stating precedence rather than applying a function?
10:32:17 <mauke> unwords . words $ string
10:33:49 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:34:17 <fbytez> mauke, that'd probably be my default.
10:41:05 <fbytez> Well, the first method that comes to mind; I'm too new to have a default.
10:41:47 __monty__ joins (~toonn@user/toonn)
10:44:57 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
10:47:15 tlaxkit joins (~hexchat@170.253.47.137)
10:54:46 × pyook quits (~puke@user/puke) (Ping timeout: 276 seconds)
10:56:44 <jackdk> I tend to go with `unwords $ words string` because I like minimising punctuation
10:57:44 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
10:58:49 pyook joins (~puke@user/puke)
10:59:54 <fbytez> Yeah, it does read well, I think.
11:00:22 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
11:03:43 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
11:09:36 <eldritchcookie[m> hello i would like for stackage to use gi-gtk 4.. which packages are the reason to use gi-gtk 3..?
11:12:56 <tomsmeding> merijn: if updates are not a problem if you disable them completely, then the updates _were_ a problem :p
11:12:57 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
11:17:08 × mmhat quits (~mmh@p200300f1c701f195ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
11:17:29 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 250 seconds)
11:26:47 <merijn> tomsmeding: I was just misremembering the details of what NoFieldSelectors did
11:31:45 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:41:31 × JScript quits (~JScript@103.137.12.165) (Ping timeout: 248 seconds)
11:46:39 × anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
11:47:00 anpad joins (~pandeyan@user/anpad)
11:55:15 JScript joins (~JScript@103.137.12.164)
11:58:08 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
11:59:39 nate1 joins (~nate@98.45.169.16)
12:01:29 brprice joins (~brprice@user/brprice)
12:04:33 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
12:06:21 yurideabreu_ joins (~yurideabr@189.6.27.58)
12:09:53 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
12:09:58 × gurkenglas quits (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de) (Ping timeout: 252 seconds)
12:16:51 × drdo quits (~drdo@bl14-14-164.dsl.telepac.pt) (Ping timeout: 250 seconds)
12:17:30 euandreh joins (~Thunderbi@189.6.18.7)
12:26:49 gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
12:29:28 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
12:33:03 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
12:35:44 Square joins (~Square4@user/square)
12:37:45 × phma quits (~phma@67.44.208.196) (Read error: Connection reset by peer)
12:38:09 phma joins (phma@2001:5b0:210b:db18:b6ee:b0c:4d1a:fd0f)
12:38:09 × vglfr quits (~vglfr@88.155.25.253) (Read error: Connection reset by peer)
12:39:07 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
12:41:46 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
12:42:53 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
12:46:11 mc47 joins (~mc47@xmonad/TheMC47)
12:48:31 gurkenglas joins (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de)
12:48:46 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
12:52:57 <eldritchcookie[m> say does cabal always build all libraries in a package?
12:53:46 <eldritchcookie[m> ie say i depend in library:x in package y will cabal build all libraries in that package or will it only build x?
12:55:29 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
12:55:39 CiaoSen joins (~Jura@p200300c5af1d63002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
12:56:53 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Quit: Leaving)
13:06:45 × Me-me quits (~Me-me@user/me-me) (Quit: Something has gone terribly, terribly wrong, that being that I'm not here any more.)
13:09:57 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
13:10:56 × barcisz quits (~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
13:11:09 mmhat joins (~mmh@p200300f1c701f195ee086bfffe095315.dip0.t-ipconnect.de)
13:15:33 justsomeguy joins (~justsomeg@user/justsomeguy)
13:19:16 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
13:21:13 × CiaoSen quits (~Jura@p200300c5af1d63002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Quit: CiaoSen)
13:23:32 <fryguybob> dminuoso: The MVar version imposes fairness, but at a cost. The TVar version does not. Performance would probably depend on both the workload and the hardware.
13:27:37 euandreh joins (~Thunderbi@189.6.18.7)
13:28:15 rf joins (~rf@2605:59c8:1604:2210:b9:854d:c8ac:62d2)
13:29:45 califax joins (~califax@user/califx)
13:30:25 <merijn> eldritchcookie[m: As in when using multi-library packages?
13:30:25 chiselfuse joins (~chiselfus@user/chiselfuse)
13:31:17 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
13:31:17 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
13:31:24 <merijn> eldritchcookie[m: It should only built the necessary ones, but that's also fairly new-ish and untested, since hackage only very recently introduced (experimental) multi-library support, iirc
13:31:42 jpds joins (~jpds@gateway/tor-sasl/jpds)
13:32:06 euandreh joins (~Thunderbi@189.6.18.7)
13:32:23 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
13:32:25 pharonix71 joins (~pharonix7@user/pharonix71)
13:34:35 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
13:37:10 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
13:37:38 gehmehgeh joins (~user@user/gehmehgeh)
13:41:33 mestre joins (~mestre@191.177.175.117)
13:41:38 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:41:52 × mestre quits (~mestre@191.177.175.117) (Client Quit)
13:41:53 califax joins (~califax@user/califx)
13:43:04 × JScript quits (~JScript@103.137.12.164) (Read error: Connection reset by peer)
13:43:25 × gurkenglas quits (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
13:44:10 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:46:23 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
13:46:24 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
13:46:24 wroathe joins (~wroathe@user/wroathe)
13:46:50 × yurideabreu_ quits (~yurideabr@189.6.27.58) (Ping timeout: 246 seconds)
13:47:07 <dminuoso> fryguybob: Right. So very roughly Im just accepting UDP packets and forkIO their processing. It's just that for packets associated with a particular identifier, I want to process them in order.
13:48:40 JScript joins (~JScript@103.137.12.166)
13:48:42 <dminuoso> So part of the idea is to have some kind of `MVar (IntMap [OutstandingRequest])` that has N keys (say 4096 or some such), hash the identifier `mod` N, and use that for some simple and naive scheduling
13:50:37 <dminuoso> Or well, it would have to be a bit more elaborate than that
13:51:07 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds)
13:51:19 <dminuoso> Something `MVar (IntMap Bucket)` with `data Bucket = Running { backlog :: [OutstandingRequest] } | Free` maybe
13:52:09 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
13:54:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
13:55:05 × JScript quits (~JScript@103.137.12.166) (Ping timeout: 240 seconds)
13:58:56 × rf quits (~rf@2605:59c8:1604:2210:b9:854d:c8ac:62d2) (Ping timeout: 248 seconds)
13:59:14 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
13:59:48 rf joins (~rf@2605:59c8:1604:2210:c2e5:3ae3:a4b2:98b0)
14:00:00 <tomsmeding> dminuoso: what's the difference between Runniong [] and Free
14:01:12 <tomsmeding> this sounds like an mvar that's going to be heavily contended
14:01:59 <tomsmeding> dminuoso: are the packets received and put into the map sequentially? If not, it sounds hard to ensure that they're going to be handled in order
14:02:08 <tomsmeding> (also, what does order even mean with UDP)
14:05:21 nschoe joins (~q@2a01:e0a:8e:a190:6a21:885a:4a6b:967e)
14:11:59 <jean-paul[m]> I copied `MainWidget` from reflex-dom (where it is in "other-modules", not exposed) into my project. I copied the .c, .hsc, and .h files for it. I added it to my project's"other-modules" and added an "include-dirs" so the header file can be found. At runtime, I get a link error - Reflex_Dom_Android_MainWidget_runJS is not found. It seems like I got linked against the reflex-dom version of the library instead of mine?
14:13:12 <jean-paul[m]> I'm surprised I'm even allowed to link against a non-exposed module from reflex-dom ...
14:13:13 Guest11 joins (~Guest11@85.21.115.34)
14:13:36 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:13:52 × kenran quits (~user@user/kenran) (Remote host closed the connection)
14:13:55 shriekingnoise joins (~shrieking@186.137.175.87)
14:14:20 × Guest11 quits (~Guest11@85.21.115.34) (Client Quit)
14:18:41 <jean-paul[m]> Oh, dang. That's just a literal string in MainWidget.hsc. Nevermind.
14:22:07 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 276 seconds)
14:22:07 Digitteknohippie joins (~user@user/digit)
14:23:28 × Digit quits (~user@user/digit) (Ping timeout: 248 seconds)
14:28:14 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:3fc0:9f49:a9fd:db74) (Quit: WeeChat 2.8)
14:29:09 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
14:29:48 <jean-paul[m]> I also didn't tell cabal that it needs the hsc2hs build-tool ... but now everything works. I wonder why (or what's broken that I didn't notice).
14:29:54 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
14:29:56 Sgeo joins (~Sgeo@user/sgeo)
14:30:43 <jean-paul[m]> was I supposed to let cabal run hsc2hs on MainWidget.hsc to generate MainWidget.c and MainWidget.h?
14:33:18 <c_wraith> jean-paul[m]: yeah, cabal should handle it.
14:34:20 × ubert quits (~Thunderbi@2a02:8109:abc0:6434:a400:eee7:e7eb:3518) (Remote host closed the connection)
14:34:34 ubert joins (~Thunderbi@2a02:8109:abc0:6434:3d98:d056:c84e:e188)
14:35:50 <c_wraith> jean-paul[m]: also... .hsc feels very weird when compiling to javascript. The whole point of .hsc files is to capture your C compiler's generated definitions and then make a haskell file from them.
14:37:10 <c_wraith> I don't see how that fits into compiling to js
14:39:54 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
14:41:50 lortabac joins (~lortabac@2a01:e0a:541:b8f0:4fdc:365f:53fd:753d)
14:44:38 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
14:45:28 geekosaur joins (~geekosaur@xmonad/geekosaur)
14:47:29 <probie> c_wraith: Doesn't reflex have a non-js mode which uses whatever GTK's webview is?
14:47:47 <jean-paul[m]> I don't think it ever goes to JavaScript. Instead, it goes to C to do stuff with JNI to invoke Java Android SDK stuff. It's in reflex-dom, I guess, because ... what probie said
14:48:31 <c_wraith> oh, I was assuming it was in the JS portion because of your mention of a runJS module. But yeah, it does have native parts.
14:48:32 × dumptruckman quits (~dumptruck@143-42-239-71.ip.linodeusercontent.com) (Ping timeout: 248 seconds)
14:49:16 dumptruckman joins (~dumptruck@143-42-239-71.ip.linodeusercontent.com)
14:50:02 <jean-paul[m]> MainWidget.h and MainWidget.c look pretty hand-crafted though, not generated... 😕
14:50:05 <c_wraith> So when you have an .hsc file, cabal will run the hsc2hs tool automatically, as long as it's installed. (and it should be packaged with ghc in most cases, iirc). Any .c, .h, and .hs files generated in the process are build artifacts and should be ignored unless you need them for debugging.
14:51:16 <c_wraith> Hmm. just a naming coincidence then?
14:54:29 <jean-paul[m]> Seems likely ... I'm not exactly sure how to check. Since it's for Android, I can only build with a cross-compiler, and the cross-compiler setup inserts a bunch of layers between me and any actual hsc2c invocation that's happening.
14:54:41 <jean-paul[m]> er, hsc2hs
14:56:27 <jean-paul[m]> Okay, there's hand-written comments in the files that don't match, gonna take that as conclusive.
14:57:16 <jean-paul[m]> I guess some other part of the cross-compile setup could be bringing hsc2hs along, covering up my mistake in not telling cabal about it ...? I really don't know how all these pieces fit together.
14:59:10 <c_wraith> well, cross-compiling is also a weird thought with hsc2hs
14:59:28 <c_wraith> it needs to run the generated .c file on the target platform to work correctly
15:01:07 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:995:b0a8:9c27:4ecf)
15:01:08 <c_wraith> It's roughly like template haskell, in that sense
15:01:11 <jean-paul[m]> I'm pretty sure there are no arm emulators in this build tool chain.. so I dunno.
15:02:01 <c_wraith> I guess it doesn't need to run on arm, it just needs the C compiler to set constants the way it would on arm.
15:02:11 <c_wraith> It's possible there are build flags for that.
15:02:39 <merijn> jean-paul[m]: Basically, the problem is that hsc2hs is used to generate stuff like "accessors for C structs", but C structs aren't portable
15:02:41 <jean-paul[m]> Okay, that part I could see working. There's a lot of effort put in to getting the C toolchain set up for cross-compilation.
15:03:06 <merijn> jean-paul[m]: So the only "real" way to get the right offsets, etc. is to use a C compiler to compile C code and have it report the correct offsets/padding/etc. for your specific code
15:04:28 <merijn> But hsc2hs doesn't just compile the C code, but also runs the resulting binary, so I think any form of cross-compilation using hsc2hs is just "lol, I'm happy I'm not you" :p
15:05:24 <jean-paul[m]> heh
15:09:23 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
15:10:33 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
15:17:51 justsomeguy joins (~justsomeg@user/justsomeguy)
15:26:02 × mc47 quits (~mc47@xmonad/TheMC47) (Read error: Connection reset by peer)
15:26:13 × MajorBiscuit quits (~MajorBisc@c-001-025-011.client.tudelft.eduvpn.nl) (Ping timeout: 250 seconds)
15:26:26 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:4fdc:365f:53fd:753d) (Quit: WeeChat 2.8)
15:37:56 × gemmaro quits (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection)
15:39:12 × Alex_test quits (~al_test@178.34.150.15) (Ping timeout: 255 seconds)
15:39:28 × AlexZenon quits (~alzenon@178.34.150.15) (Ping timeout: 276 seconds)
15:40:19 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:43:04 AlexZenon joins (~alzenon@178.34.150.15)
15:43:35 Alex_test joins (~al_test@178.34.150.15)
15:47:01 × elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 240 seconds)
15:47:57 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Quit: WeeChat 3.8)
15:48:03 × crvs quits (~crvs@212.37.18.202) (Read error: Connection reset by peer)
15:49:36 elkcl joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
15:59:31 × titiband1t quits (~titibandi@user/titibandit) (Remote host closed the connection)
16:01:07 nate1 joins (~nate@98.45.169.16)
16:04:12 ddellacosta joins (~ddellacos@146.70.168.100)
16:04:23 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
16:05:31 × hueso_ quits (~root@user/hueso) (Quit: No Ping reply in 180 seconds.)
16:05:52 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
16:06:39 × Square quits (~Square4@user/square) (Ping timeout: 255 seconds)
16:06:50 hueso joins (~root@user/hueso)
16:06:58 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
16:13:05 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
16:14:31 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
16:15:43 × mud quits (~mud@user/kadoban) (Remote host closed the connection)
16:16:45 mud joins (~mud@user/kadoban)
16:18:26 × nschoe quits (~q@2a01:e0a:8e:a190:6a21:885a:4a6b:967e) (Ping timeout: 246 seconds)
16:19:09 Digitteknohippie is now known as Digit
16:20:03 werneta joins (~werneta@2600:1700:4819:103f:d664:ab08:b618:a81)
16:20:47 × mud quits (~mud@user/kadoban) (Remote host closed the connection)
16:21:32 mud joins (~mud@user/kadoban)
16:22:58 × mmhat quits (~mmh@p200300f1c701f195ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8)
16:27:58 × werneta quits (~werneta@2600:1700:4819:103f:d664:ab08:b618:a81) (Remote host closed the connection)
16:28:36 × mud quits (~mud@user/kadoban) (Remote host closed the connection)
16:29:01 mud joins (~mud@user/kadoban)
16:30:20 econo joins (uid147250@user/econo)
16:34:21 t0ngub1n joins (~t0ngub1n@85.249.45.137)
16:48:38 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
17:00:10 × trev quits (~trev@user/trev) (Quit: trev)
17:02:20 trev joins (~trev@user/trev)
17:02:53 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
17:04:48 × tok quits (~user@user/tok) (Remote host closed the connection)
17:09:07 ft joins (~ft@p4fc2a88b.dip0.t-ipconnect.de)
17:12:32 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
17:13:20 × zeenk quits (~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!)
17:15:38 <t0ngub1n> hey
17:15:54 <t0ngub1n> does anyone know why this gives a parse error?
17:16:12 <t0ngub1n> (_:t) @ (x:y:_)
17:16:26 <t0ngub1n> error:
17:16:27 <t0ngub1n> [1 of 1] Compiling Main ( main.hs, main.o )
17:16:27 <t0ngub1n> main.hs:17:23: error: parse error on input ‘@’
17:16:27 <t0ngub1n> |
17:16:27 <t0ngub1n> 17 | xorEncodeWorker (_:t) @ (x:y:_) = x `xor` y : xorEncodeWorker t
17:16:27 <t0ngub1n> | ^
17:18:32 <mauke> the thing before @ in a pattern must be an identifier IIRC
17:19:27 <t0ngub1n> so I have to use list @ (x:y:_) and then in function body (tail list) instead of t?
17:22:05 <xerox> > let f (x:xs@(y:_)) = (x + y)*length xs in f [1..3]
17:22:07 <lambdabot> 6
17:25:29 nschoe joins (~q@2a01:e0a:8e:a190:f0e4:3ef9:e1cd:8332)
17:25:43 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
17:26:38 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Client Quit)
17:27:29 <t0ngub1n> > do { let func (_:t @ (x:y:_)) = x+y : t; putStrLn func [1:2:3] }
17:27:30 <lambdabot> <hint>:1:64: error: parse error on input ‘}’
17:28:02 <t0ngub1n> let func (_:t @ (x:y:_)) = x+y : t in func [1,2,3]
17:28:11 <t0ngub1n> >let func (_:t @ (x:y:_)) = x+y : t in func [1,2,3]
17:28:18 <t0ngub1n> > let func (_:t @ (x:y:_)) = x+y : t in func [1,2,3]
17:28:19 <lambdabot> [5,2,3]
17:28:34 <t0ngub1n> > let func ((_:t) @ (x:y:_)) = x+y : t in func [1,2,3]
17:28:35 <lambdabot> <hint>:1:17: error: parse error on input ‘@’
17:30:17 <tomsmeding> t0ngub1n: what about 'func (x : t@(y : _))' ?
17:30:33 <t0ngub1n> maybe
17:31:22 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:31:45 <t0ngub1n> @tomsmeding thank you! it worked
17:31:46 <lambdabot> Unknown command, try @list
17:37:11 joshthewall joins (~manjaro-i@2a00:23c7:9386:7801:7dfc:aab:5abc:5104)
17:38:27 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 255 seconds)
17:40:50 × nschoe quits (~q@2a01:e0a:8e:a190:f0e4:3ef9:e1cd:8332) (Quit: Switching off)
17:46:10 ub joins (~Thunderbi@p200300ecdf1558856f9189bfc4e2c794.dip0.t-ipconnect.de)
17:47:29 pavonia joins (~user@user/siracusa)
17:51:21 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
17:51:56 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
17:51:56 × joshthewall quits (~manjaro-i@2a00:23c7:9386:7801:7dfc:aab:5abc:5104) (Quit: leaving)
17:52:19 ub1 joins (~Thunderbi@p548c9793.dip0.t-ipconnect.de)
17:52:32 × ub quits (~Thunderbi@p200300ecdf1558856f9189bfc4e2c794.dip0.t-ipconnect.de) (Remote host closed the connection)
17:54:36 ub1 is now known as ub
17:57:55 × statusbot quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
17:58:02 statusbot7 joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
17:58:20 hexchat_ joins (~hexchat@170.253.47.137)
18:01:49 × tlaxkit quits (~hexchat@170.253.47.137) (Ping timeout: 276 seconds)
18:07:25 × ddellacosta quits (~ddellacos@146.70.168.100) (Ping timeout: 250 seconds)
18:12:41 × tomsmeding quits (~tomsmedin@static.21.109.88.23.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
18:13:24 tomsmeding joins (~tomsmedin@static.21.109.88.23.clients.your-server.de)
18:13:37 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
18:14:14 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
18:14:40 nick2 joins (~nick@wsip-174-78-110-18.pn.at.cox.net)
18:16:46 <nick2> I'm trying to install the PBKDF2 package in cabal, but it says: (conflict: PBKDF2 => base>=4.3 && <4.9). However, the newest base (according to Hackage) looks like 4.18.0.0. What am I doing wrong here?
18:17:49 <[exa]> nick2: it's deprecated, see the notice here https://hackage.haskell.org/package/PBKDF2
18:18:33 <[exa]> nick2: this one should do the same while being compatible with recent compilers https://hackage.haskell.org/package/pbkdf
18:19:19 <nick2> That's a different package: i.e. Crypto.PBKDF2. I'm looking for Data.Password.PBKDF2 https://hackage.haskell.org/package/password-3.0.2.1
18:20:09 <nick2> Maybe I'm selecting the wrong one from cabal list?
18:21:17 <[exa]> ah that's package `password`, not PBKDF2
18:21:22 <nick2> ah ok
18:21:28 <nick2> I see my issue now
18:21:59 <[exa]> module names vs pkg names get confusing sometimes, best just hoogle it to be sure :]
18:22:24 <[exa]> e.g. https://hoogle.haskell.org/?hoogle=Data.Password.PBKDF2%20is%3Amodule
18:24:35 ircbrowse_tom joins (~ircbrowse@static.162.49.55.162.clients.your-server.de)
18:24:41 Server sets mode +Cnt
18:24:50 <nick2> Hoogle is how I found it, but its a little confusing navigating around the actual package. password still says: base (>=4.9 && <5) for that package, that doesn't make sense to me
18:25:47 <nick2> further cabal says it contains no executables so do I have to just compile this from source?
18:26:15 <sclv> well "install" is designed for executables
18:26:37 <sclv> to use it, you typically just add it as a dependency to the package that needs it and cabal handles using it behind the scenes
18:27:14 <sclv> there _is_ a local install of pckages, via "cabal install --lib" but its UI is still a work in progress -- it manages a "ghc environment file" so you need to know about those to use it sanely
18:28:58 × yahb2 quits (~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection)
18:29:24 yahb2 joins (~yahb2@2a01:4f8:c0c:5c7b::2)
18:39:26 <[exa]> nick2: here hackage clearly says <4.9 right? https://hackage.haskell.org/package/PBKDF2
18:40:04 seeg83 joins (~seeg@212.180.148.196)
18:40:16 <nick2> it does, but it also says >=4.3
18:40:44 <[exa]> yeah that's the other half of the supported interval :D
18:40:48 <nick2> am I wrong in assuming that means any version of base from 4.3 up to but not including 4.9?
18:41:26 <[exa]> yes literally as the inequalities say there
18:41:34 <nick2> what I don't understand is how can the dependency be greater than the current version of base i.e. 4.18.0.0
18:41:39 <[exa]> (version >= 4.3 && version < 4.9)
18:41:58 <[exa]> and 4.18 is bigger than 4.9
18:42:32 <nick2> ah I see I'm dumb. I'm being dyslexic.
18:43:01 slack1256 joins (~slack1256@181.42.41.193)
18:43:08 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-94c2-614a-027a-04b2.rev.sfr.net)
18:46:37 × seeg83 quits (~seeg@212.180.148.196) (Quit: Client closed)
18:51:20 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
18:57:59 × ddellacosta quits (~ddellacos@146.70.166.222) (Ping timeout: 260 seconds)
18:59:23 zincy joins (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
19:00:14 ddellacosta joins (~ddellacos@143.244.47.71)
19:00:22 × pyook quits (~puke@user/puke) (Remote host closed the connection)
19:00:58 pyook joins (~puke@user/puke)
19:03:41 <eldritchcookie[m> hello does anyone have experience designing the overall architecture of an application? i am planning a somewhat big project(for one person) and would really like some advice
19:04:46 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
19:16:44 <[exa]> eldritchcookie[m: well like, what kind of application
19:17:05 <eldritchcookie[m> a Virtual tabletop
19:17:25 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
19:17:33 <[exa]> nick2: I'm having problems with the same tbh, last time something like 0.1.10.1 vs 0.1.9.8 optically muuuuuuuuuch bigger right?
19:18:01 × statusbot7 quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection)
19:18:15 <[exa]> eldritchcookie[m: like e.g. for playing card games?
19:18:42 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
19:19:18 <eldritchcookie[m> kind of, the idea is to use for TTRPG so something similar to maptool
19:19:34 <eldritchcookie[m> https://github.com/RPTools/maptool
19:20:05 <yushyin> so more like foundryvtt
19:20:07 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:20:24 <eldritchcookie[m> yes exactly
19:21:21 <[exa]> well, studying the existing stuff helps a lot
19:21:28 <yushyin> i like foundryvtt :)
19:21:34 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:995:b0a8:9c27:4ecf) (Remote host closed the connection)
19:23:30 vglfr joins (~vglfr@88.155.25.253)
19:24:13 <eldritchcookie[m> most are closed source and the only open source one is the one i sent
19:24:59 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
19:25:13 <eldritchcookie[m> and what i want isn't how to make a VTT and more things like how to persist application state assuming i will have multiple versions
19:25:45 <eldritchcookie[m> or what are the trade offs of using a custom monad versus a DSL
19:27:19 polyphem joins (~polyphem@ip-109-43-48-228.web.vodafone.de)
19:29:15 namiroff joins (~namiroff@31.223.145.73)
19:29:53 × vglfr quits (~vglfr@88.155.25.253) (Ping timeout: 246 seconds)
19:32:45 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
19:32:59 <sm> existing apps you want to mimic at least gives an idea of the functionality and concepts, and from this maybe you can sketch the data model
19:33:27 <sm> I would build a series of progressively more capable prototypes using the simplest haskell that works at each stage
19:34:36 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:37:07 <eldritchcookie[m> i fear local maxima like the bubonic plague and while your suggestion is reasonable and we should take care to not over engineer there is the equally dangerous scenerio of under engineering
19:37:16 <eldritchcookie[m> i do not what to rewrite code
19:37:39 <eldritchcookie[m> *i do not want to rewrite code as much as possible
19:38:01 <sm> yes, you should plan to rewrite at least some code unless you have perfect knowledge of the tools and the domain
19:39:00 <sm> you'll never get stuck; haskell is always refactorable
19:40:09 <sm> but certainly get as clear as you about the spec, data model, architecture, as you can before each coding phase. Usually there's some back and forth
19:41:31 <geekosaur> I used to do this for a living. Turns out people are lousy about specs
19:43:33 <eldritchcookie[m> do you guys think i can get away with something like freeciv's rulesets(only data) or will i need scripting?
19:43:40 L29Ah joins (~L29Ah@wikipedia/L29Ah)
19:44:16 <geekosaur> that depends a lot on what exactly you need to do
19:44:46 <namiroff> What would I need to do in order to build a compiler in Haskell
19:45:41 <sm> study an existing one, do what they did :)
19:45:45 <geekosaur> that's almost as open-ended a question as eldritchcookie[m's
19:46:09 <namiroff> What are the exaples of compilers build in Haskell?
19:46:31 <jade[m]> haskell
19:46:39 <geekosaur> agda
19:47:40 <sm> idris
19:47:42 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
19:47:49 <geekosaur> there's an IRC bot which implements a (somewhat out of date by now, I think) C++ interpreter: https://github.com/Eelis/geordi
19:47:55 <yushyin> purescript?
19:48:11 <sm> yup. elm ? I googled but couldn't tell
19:48:25 <c_wraith> elm was originally. I think they made it self-hosting
19:48:30 <sm> many DSL/compiler-y things in the blockchain space
19:49:21 <sm> @where scheme
19:49:21 <lambdabot> https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours
19:49:22 <c_wraith> The version of Elm on github is still in Haskell
19:49:34 <[exa]> namiroff: you write a datatype representation of the output language and a function that writes it to a file, then you make an IR datatype and a function that converts it to the output representation, and finally a parser that converts strings to the IR. (SW engineering spoiler: do it in this order, for the first compiler it's extremely easy to get carried away on parser and end up with unfinishable
19:49:40 <[exa]> project)
19:49:56 <c_wraith> So I guess Elm is still in Haskell. That looks current
19:51:02 <sm> [exa]++ 👀
19:51:27 MRN joins (~MRN18159@79.161.254.60)
19:51:34 <[exa]> as in, it's actually trivial and the spoiler is hard-learned.
19:51:38 MRN parts (~MRN18159@79.161.254.60) ()
19:52:08 <sm> [exa]: is that a transpiler in general ? and a compiler is a special case of that ?
19:52:35 <geekosaur> a compiler transpiles to assembly language
19:52:47 <sm> right
19:53:09 <[exa]> (now let's discuss if javascript is a good assembly :D )
19:53:19 [exa] hides
19:53:31 <geekosaur> I thought wasm was the practical answer to that question
19:53:37 Hecate falls on the ground, foaming at the mouth
19:53:41 <sm> nowadays that would be llvm or wasm wouldn't it
19:54:39 <[exa]> I can't say if compilers and transpilers are distinguishable, except with transpiler you kinda expect to use another (com/trans)piler after it
19:55:02 <geekosaur> I'm not sure they are any more
19:55:29 <geekosaur> I mean, ghc actually compiles to cmm, then compiles that to asm. is it a compiler or a transpiler?
19:55:57 <jade[m]> it's wrapped up in one thing, so I'd call it a compiler
19:56:01 <geekosaur> clang compiles to llvm IR. is it a compiler or a transpiler?
19:56:11 <jade[m]> if you had to invoke both seperately it'd be a compiler
19:56:15 <[exa]> a compilation of transpilers
19:56:22 <jade[m]> haha
19:57:45 <[exa]> ok now let's try to distinguish a compiler from an interpreter... what if the input language are just complex code-emmiting commands for the compiler?
19:58:30 × rf quits (~rf@2605:59c8:1604:2210:c2e5:3ae3:a4b2:98b0) (Remote host closed the connection)
19:58:55 <geekosaur> java muddied that question years ago
19:59:04 × shriekingnoise quits (~shrieking@186.137.175.87) (Read error: Connection reset by peer)
19:59:29 <sm> interpreter doesn't save its work, it always starts anew. Compilers save (cache) artifacts which can be reused next time
19:59:45 <jade[m]> I think my definitions go as follows:
19:59:45 <jade[m]> - Compiler: one command from input -> machine code
19:59:45 <jade[m]> - Transpiler: one command from input -> other input that can be used by another compiler
19:59:45 <jade[m]> - Interpreter: one command from input -> output
19:59:47 shriekingnoise joins (~shrieking@186.137.175.87)
19:59:58 <jade[m]> (feel free to disagree)
20:00:00 <c_wraith> sm: so cpython is a compiler, leaving all those .pyc files behind?
20:00:18 <sm> a little bit.. c for compiled!
20:00:26 <ncf> topical tweet https://twitter.com/rob_rix/status/1277770572123058176
20:01:35 <ncf> "*whispers* there’s no such thing as marshalling, unmarshalling, encoding, decoding, compilation, transpilation, or optimization, it’s all just interpretation under 0 or more futamura projections"
20:02:38 <geekosaur> if you really want to muddy the waters, remember that x86_64 asm is itself interpreted(? or is it JIT, or ???) into microcode
20:02:40 nate1 joins (~nate@98.45.169.16)
20:02:54 <[exa]> geekosaur++
20:03:05 <geekosaur> we're imo well past the point where "it's what I point at when I say it"
20:04:11 <jade[m]> machine code is also interpreted by the cpu
20:04:12 <jade[m]> so nothing is truly compiled
20:05:06 <geekosaur> and it's not clear that you can even say "compiled means it runs directly on hardware": see the reduceron
20:05:25 <[exa]> in other news, irssi is an interactive message-to-tcp compiler
20:05:37 <geekosaur> or in the other direction, transmeta
20:06:23 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
20:06:50 <sm> of course our perception of input, output and what is even going on here is running in the quantum consciousness field
20:07:22 <jade[m]> right, in the end it's all interpreted by the simulation anyway
20:07:23 <geekosaur> or in the other other direction, rosetta
20:07:24 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds)
20:07:44 × t0ngub1n quits (~t0ngub1n@85.249.45.137) (Ping timeout: 252 seconds)
20:11:59 <[exa]> nice how it rhymes
20:13:02 <sm> indeed.. more rhyming would make our lives a lot more manageable
20:15:01 <sm> rhyming and/or more logical technical vocabulary generally. Maybe a sanskrit for computing
20:16:45 <sm> you learn it, you think in it, you get insight, you become enlightened.. I guess expressive strongly-typed succinct languages like Haskell can work like that in a codebase
20:16:47 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
20:19:38 <[exa]> and it certainly sounds better to go study the vedas than to go try to find that bug again
20:20:00 <sm> heck yes you're right about that
20:20:57 <sm> I'm avoiding a php bug right now, perfect time to evolve consciousness
20:21:32 <[exa]> php is good, if you don't <?php you can just write the vedas as you need and the code will compile
20:21:45 <[exa]> OH I mean interpret
20:22:18 <sm> well something may happen
20:22:31 <[exa]> ok nvm I'm off for today, enjoy here :]
20:22:43 <sm> o/
20:23:05 × pharonix71 quits (~pharonix7@user/pharonix71) (Remote host closed the connection)
20:29:55 × hexchat_ quits (~hexchat@170.253.47.137) (Quit: Saliendo...)
20:30:45 × jonathan_ quits (~jonathan@h-176-10-144-60.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
20:31:39 drdo joins (~drdo@bl14-14-164.dsl.telepac.pt)
20:33:55 zeenk joins (~zeenk@2a02:2f04:a20f:5200::7fe)
20:35:02 gurkenglas joins (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de)
20:35:06 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:995:b0a8:9c27:4ecf)
20:35:13 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
20:39:28 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:995:b0a8:9c27:4ecf) (Ping timeout: 248 seconds)
20:40:12 y04nn joins (~username@2a03:1b20:5:f011::aaae)
20:40:40 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
20:42:17 × c0c0 quits (~coco@212-51-146-137.fiber7.init7.net) (Quit: WeeChat 3.7.1)
20:43:42 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
20:45:45 × _ht quits (~Thunderbi@82.174.52.28) (Quit: _ht)
20:50:54 barzo joins (~hd@31.223.56.27)
20:52:02 Square joins (~Square4@user/square)
20:52:57 zer0bitz_ is now known as zer0bitz
20:53:09 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:06:34 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
21:10:04 × trev quits (~trev@user/trev) (Quit: trev)
21:11:52 mmhat joins (~mmh@2003:f1:c701:f195:ee08:6bff:fe09:5315)
21:26:22 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
21:32:35 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds)
21:35:36 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
21:36:44 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
21:41:00 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
21:47:16 × michalz quits (~michalz@185.246.207.200) (Remote host closed the connection)
21:51:15 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-94c2-614a-027a-04b2.rev.sfr.net) (Remote host closed the connection)
22:01:53 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:02:20 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
22:08:05 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
22:13:37 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
22:17:31 × nick2 quits (~nick@wsip-174-78-110-18.pn.at.cox.net) (Ping timeout: 240 seconds)
22:19:10 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection)
22:21:01 cheater_ joins (~Username@user/cheater)
22:21:09 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
22:23:18 × cheater quits (~Username@user/cheater) (Ping timeout: 255 seconds)
22:23:26 cheater_ is now known as cheater
22:26:00 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 255 seconds)
22:30:23 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:35:55 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 252 seconds)
22:36:53 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:37:01 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:995:b0a8:9c27:4ecf)
22:41:01 shriekingnoise joins (~shrieking@186.137.175.87)
22:41:36 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:995:b0a8:9c27:4ecf) (Ping timeout: 248 seconds)
22:42:00 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 260 seconds)
22:44:27 × gurkenglas quits (~gurkengla@dynamic-046-114-176-254.46.114.pool.telefonica.de) (Ping timeout: 255 seconds)
22:45:53 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
22:46:03 × ddellacosta quits (~ddellacos@143.244.47.71) (Ping timeout: 265 seconds)
22:46:22 gurkenglas joins (~gurkengla@dynamic-046-114-002-228.46.114.pool.telefonica.de)
22:57:02 × acidjnk quits (~acidjnk@p200300d6e715c48334884ea8abdf0cea.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
23:00:51 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
23:01:27 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
23:05:13 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
23:05:34 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 250 seconds)
23:07:28 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
23:11:11 codaraxis joins (~codaraxis@user/codaraxis)
23:11:27 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 255 seconds)
23:24:01 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Ping timeout: 240 seconds)
23:25:41 × mmhat quits (~mmh@2003:f1:c701:f195:ee08:6bff:fe09:5315) (Ping timeout: 265 seconds)
23:26:04 mmhat joins (~mmh@p200300f1c701f1f9ee086bfffe095315.dip0.t-ipconnect.de)
23:35:28 perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
23:42:25 × Ranhir quits (~Ranhir@157.97.53.139) (Ping timeout: 240 seconds)
23:43:39 Ranhir joins (~Ranhir@157.97.53.139)
23:43:53 mauke_ joins (~mauke@user/mauke)
23:45:32 × mauke quits (~mauke@user/mauke) (Ping timeout: 252 seconds)
23:45:32 mauke_ is now known as mauke
23:51:16 × codaraxis quits (~codaraxis@user/codaraxis) (Ping timeout: 252 seconds)
23:53:51 ddellacosta joins (~ddellacos@146.70.166.158)
23:56:10 × Ranhir quits (~Ranhir@157.97.53.139) (Ping timeout: 252 seconds)
23:56:35 Ranhir joins (~Ranhir@157.97.53.139)
23:58:34 gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)

All times are in UTC on 2023-04-25.