Home liberachat/#haskell: Logs Calendar

Logs on 2024-03-21 (liberachat/#haskell)

00:07:57 destituion joins (~destituio@2a02:2121:655:c95b:dfe:63c3:c9bc:b707)
00:08:51 × waldo quits (~waldo@user/waldo) (Ping timeout: 252 seconds)
00:10:00 waldo joins (~waldo@user/waldo)
00:18:11 × waldo quits (~waldo@user/waldo) (Quit: waldo)
00:20:51 × oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 260 seconds)
00:27:51 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 260 seconds)
00:28:00 pavonia joins (~user@user/siracusa)
00:28:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
00:37:19 rvalue joins (~rvalue@user/rvalue)
00:39:28 ddellacosta joins (~ddellacos@ool-44c73d16.dyn.optonline.net)
00:54:48 pdw joins (~user@215.156.62.185.bridgefibre.net)
01:01:58 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:04:51 califax joins (~califax@user/califx)
01:08:56 yin_ joins (~yin@user/zero)
01:09:21 × mei quits (~mei@user/mei) (Ping timeout: 252 seconds)
01:10:19 × telser quits (~quassel@user/telser) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
01:11:48 × arthurvl quits (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Ping timeout: 256 seconds)
01:13:12 mei joins (~mei@user/mei)
01:18:15 × xff0x quits (~xff0x@ai082039.d.east.v6connect.net) (Ping timeout: 272 seconds)
01:24:50 arthurvl joins (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net)
01:44:42 shapr` joins (~user@c-24-218-186-89.hsd1.ma.comcast.net)
01:45:18 × yin_ quits (~yin@user/zero) (Ping timeout: 255 seconds)
01:46:05 × shapr quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
01:55:43 yin_ joins (~yin@user/zero)
02:04:38 × yin_ quits (~yin@user/zero) (Ping timeout: 264 seconds)
02:05:14 × rosco quits (~rosco@2001:e68:5411:27c5:d75:19eb:3de6:e4c6) (Ping timeout: 264 seconds)
02:07:10 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:15:55 yin_ joins (~yin@user/zero)
02:19:09 bilegeek joins (~bilegeek@2600:1008:b018:dea:b059:b098:5fdb:bddc)
02:24:26 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
02:26:58 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
02:28:18 <pie_> https://news.ycombinator.com/item?id=30777849 " Agree Bluespec is great. In college we went from 0 to a Bluespec multicore RISC-V processor running Linux on an FPGA in a single undergrad semester, every step along the way felt intuitive. "
02:28:31 <pie_> Id love to see those course materials :/ I can barely get people to write a compiler here...
02:29:09 ec joins (~ec@gateway/tor-sasl/ec)
02:29:23 × otto_s quits (~user@p5de2f64e.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
02:29:59 <pie_> myself included. last semesters compilers elective I sat in on only cared about parsing algorithms, this semester the lecturer brought in ANTLR and I finally wrote a very bad but at least working simple compiler
02:30:16 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
02:30:28 <pie_> (once the parsing was handled; just a simple tree-walking thing that directly emits assembly)
02:30:52 ec joins (~ec@gateway/tor-sasl/ec)
02:30:58 <pie_> (yes, this is tangential; the thread is about hardware)
02:31:07 otto_s joins (~user@p5de2faee.dip0.t-ipconnect.de)
02:35:46 <probie> I had a similar undergrad experience; although we had the choice between lex/yacc and alex/happy (i.e syntax-directed compilation, with back-patching to handle jumps)
02:43:36 <pie_> my compiler is super shitty. I may or may not make time later to do some other things related to it that Ive never done before
02:44:32 <pie_> but yeah, if anyone has any idea what course material this could be referring to, im interested
02:47:07 <monochrom> At my university we have one course going through everything from lexing-parsing to unoptimized code generation. There is another course on just code optimization in terms of LLVM (or SUIF a long time ago).
02:48:17 <monochrom> The former course may target just a stack machine to sidestep all complications about having limited registers. :)
02:50:33 <jackdk> I would have loved to take a course on runtimes and optimised codegen, but the languages course I did get was a great deal of fun and very well taught. (a mix of recursive descent and shift-reduce generators on the parsing front, lambda calculus interpreter, syntax-directed compilation with backpatching to compile a toy turtle-ish language to a stack VM, etc)
02:51:07 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
02:52:29 × shapr` quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Ping timeout: 240 seconds)
02:53:03 <monochrom> Oh, [principles of] languages is a completely different course. (About programming styles (people say "paradigms" but I follow Shriram Krishnamurthi in refusing to say that) and possibly semantics.)
02:54:56 <probie> jackdk: out of curiosity, was Clem the course convener back in your day? I think your iteration of the course was almost identical to mine
02:55:33 <jackdk> probie: yeah but Ben L did the bulk of the teaching. He was finishing up his PhD, IIRC, and working on DDC stuff.
02:55:58 <pie_> (I am not happy with my university)
02:56:29 × dpren quits (uid175126@id-175126.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
03:06:52 Inst joins (~Inst@120.244.192.27)
03:12:26 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 264 seconds)
03:13:30 × yin quits (~yin@user/zero) (Ping timeout: 255 seconds)
03:16:03 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 272 seconds)
03:29:26 × mmhat quits (~mmh@p200300f1c706a29eee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
03:33:15 cheater_ joins (~Username@user/cheater)
03:35:17 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
03:35:22 cheater_ is now known as cheater
03:47:03 × td_ quits (~td@i53870939.versanet.de) (Ping timeout: 268 seconds)
03:48:19 td_ joins (~td@i53870901.versanet.de)
04:10:13 aforemny_ joins (~aforemny@2001:9e8:6cc4:b700:b374:8656:8acd:5fb8)
04:11:31 × aforemny quits (~aforemny@2001:9e8:6ce0:5000:e5b7:1d33:c47c:a7a8) (Ping timeout: 256 seconds)
04:38:09 igemnace joins (~ian@user/igemnace)
04:53:28 michalz joins (~michalz@185.246.207.205)
05:06:43 <Axman6> pie_: There's a pipelin es risc-v core written in Clash too, which IIRC is formally verified (and the implementation is honestly quite beautiful)
05:07:53 <Axman6> pipelined*
05:07:54 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
05:12:14 <Axman6> https://github.com/standardsemiconductor/lion with https://github.com/standardsemiconductor/lion/blob/main/src/Lion/Pipe.hs#L194 being the main implementation of the pipelined core. There's obviously a hell of a lot of other stuff going on, but making it so clear that there are 5 stages in each clock cycle is pretty cute
05:16:00 <Axman6> And then looking at the implementation of each stage and how it updates the appropriate rvfi along with each action makes the execution of everything really clear
05:18:13 rosco joins (~rosco@175.136.155.53)
05:34:14 × germ quits (~quassel@user/mipsel3) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
05:35:25 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:36:33 germ joins (~quassel@50.39.179.7)
05:36:53 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
05:37:49 euleritian joins (~euleritia@dynamic-176-001-001-217.176.1.pool.telefonica.de)
05:39:19 × rosco quits (~rosco@175.136.155.53) (Quit: Lost terminal)
05:40:14 rosco joins (~rosco@175.136.155.53)
05:41:15 × euleritian quits (~euleritia@dynamic-176-001-001-217.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
05:41:32 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
05:42:56 × germ quits (~quassel@50.39.179.7) (Changing host)
05:42:56 germ joins (~quassel@user/mipsel3)
05:45:26 × Square2 quits (~Square4@user/square) (Ping timeout: 264 seconds)
05:48:02 × ell quits (~ellie@user/ellie) (Quit: Ping timeout (120 seconds))
06:07:31 × bilegeek quits (~bilegeek@2600:1008:b018:dea:b059:b098:5fdb:bddc) (Quit: Leaving)
06:14:26 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
06:20:25 × rosco quits (~rosco@175.136.155.53) (Read error: Connection reset by peer)
06:24:58 × echoreply quits (~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
06:25:54 echoreply joins (~echoreply@45.32.163.16)
06:27:27 × tv quits (~tv@user/tv) (Ping timeout: 255 seconds)
06:31:57 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
06:32:43 euleritian joins (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de)
06:35:36 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
06:40:49 tv joins (~tv@user/tv)
06:48:59 × bliminse_ quits (~bliminse@user/bliminse) (Quit: leaving)
06:55:20 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
06:59:04 CiaoSen joins (~Jura@2a05:5800:29e:b00:e6b9:7aff:fe80:3d03)
07:00:37 acidjnk joins (~acidjnk@p200300d6e70d3f0395d202079165b1b5.dip0.t-ipconnect.de)
07:02:27 × mei quits (~mei@user/mei) (Ping timeout: 252 seconds)
07:06:24 zetef joins (~quassel@95.77.17.251)
07:06:26 mei joins (~mei@user/mei)
07:13:25 bliminse joins (~bliminse@user/bliminse)
07:21:24 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Remote host closed the connection)
07:21:47 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
07:27:43 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:34:13 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
07:35:14 chiselfuse joins (~chiselfus@user/chiselfuse)
07:35:59 rosco joins (~rosco@175.136.155.53)
07:37:02 vpan joins (~vpan@212.117.1.172)
07:37:44 × jargon quits (~jargon@154.sub-174-205-226.myvzw.com) (Remote host closed the connection)
07:41:40 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
07:47:07 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:47:13 × euleritian quits (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
07:47:31 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
07:48:39 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:53:22 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
08:01:34 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
08:03:47 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
08:03:53 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
08:04:08 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
08:13:37 jargon joins (~jargon@154.sub-174-205-226.myvzw.com)
08:14:24 × tzh quits (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
08:15:54 × jargon quits (~jargon@154.sub-174-205-226.myvzw.com) (Remote host closed the connection)
08:32:58 × monochrom quits (trebla@216.138.220.146) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
08:35:21 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:36:33 oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
08:37:30 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 268 seconds)
08:37:35 × sayola quits (~sayola@ip-109-42-241-236.web.vodafone.de) (Read error: Connection reset by peer)
08:38:25 monochrom joins (trebla@216.138.220.146)
08:39:41 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds)
08:48:43 gmg joins (~user@user/gehmehgeh)
08:48:53 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
08:49:34 euleritian joins (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de)
09:01:43 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
09:02:59 × euleritian quits (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
09:03:17 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
09:03:18 img joins (~img@user/img)
09:07:34 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving)
09:10:11 × elkcl quits (~elkcl@broadband-178-140-136-65.ip.moscow.rt.ru) (Ping timeout: 268 seconds)
09:10:19 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
09:10:57 euleritian joins (~euleritia@77.22.252.56)
09:14:54 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
09:16:49 elkcl joins (~elkcl@broadband-178-140-136-65.ip.moscow.rt.ru)
09:18:26 L29Ah joins (~L29Ah@wikipedia/L29Ah)
09:19:23 × zetef quits (~quassel@95.77.17.251) (Ping timeout: 260 seconds)
09:23:23 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
09:23:32 <absence> Is there something like sequenceA for a subset of monad transformers, similar to how the mmorph library provides analogies to fmap and join?
09:24:37 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:26:55 chele joins (~chele@user/chele)
09:38:19 <tomsmeding> absence: what would its type signature be?
09:39:19 × igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer)
09:41:10 <absence> tomsmeding: Probably something like "t1 (t2 m) x -> t2 (t1 m) x".
09:42:05 <tomsmeding> https://en.wikipedia.org/wiki/Monad_transformer has the note that "monad transformations are usually not commutative"
09:43:39 <tomsmeding> @unmtl StateT s Maybe a
09:43:40 <lambdabot> s -> Maybe (a, s)
09:43:46 <tomsmeding> @unmtl MaybeT (State s) a
09:43:46 <lambdabot> s -> (Maybe a, s)
09:43:57 <tomsmeding> @djinn (s -> Maybe (a, s)) -> s -> (Maybe a, s)
09:43:57 <lambdabot> f a b =
09:43:58 <lambdabot> case a b of
09:43:58 <lambdabot> Nothing -> (Nothing, b)
09:43:58 <lambdabot> Just (c, d) -> (Just c, d)
09:44:09 <tomsmeding> @djinn (s -> (Maybe a, s)) -> s -> Maybe (a, s)
09:44:10 <lambdabot> f a b =
09:44:10 <lambdabot> case a b of
09:44:10 <lambdabot> (c, d) -> case c of
09:44:10 <lambdabot> Nothing -> Nothing
09:44:10 <lambdabot> Just e -> Just (e, d)
09:44:40 <ncf> you may have lax commutation in certain cases though
09:44:45 <tomsmeding> hm yeah
09:44:58 <absence> tomsmeding: Would it have to be, though? Are things you can sequenceA always commutative?
09:45:01 tomsmeding doesn't know what "lax" means but replaces it with the intuitive notion of "almost" mentally
09:45:06 <tomsmeding> yeah good point
09:45:27 <ncf> lax is when you only have a map instead of an isomorphism
09:45:40 <tomsmeding> I see
09:45:43 <ncf> i.e. something like a distributive law
09:45:45 <absence> I fully expect the "meaning" to change after such a hypotyhetical transformer analogy of sequenceA.
09:46:44 zetef joins (~quassel@95.77.17.251)
09:46:48 × pandeyan quits (~pandeyan@135-180-55-126.fiber.dynamic.sonic.net) (Quit: ZNC 1.8.2 - https://znc.in)
09:47:14 anpad joins (~pandeyan@user/anpad)
09:47:15 <ncf> i guess this isn't quite what you asked for https://hackage.haskell.org/package/MonadCompose-0.8.2.0/docs/Control-Monad-Distributive.html
09:48:46 <absence> ncf: That one did show up in my web search. Note that the entire module has been removed in the current version of the library.
09:50:53 <ncf> do you have a use case in mind?
09:51:41 × anpad quits (~pandeyan@user/anpad) (Ping timeout: 240 seconds)
09:52:58 anpad joins (~pandeyan@user/anpad)
09:55:44 danse-nr3 joins (~danse@fi-19-201-172.service.infuturo.it)
09:56:10 × ft quits (~ft@p508db238.dip0.t-ipconnect.de) (Quit: leaving)
09:57:30 igemnace joins (~ian@user/igemnace)
10:01:02 × danse-nr3 quits (~danse@fi-19-201-172.service.infuturo.it) (Remote host closed the connection)
10:01:26 danse-nr3 joins (~danse@fi-19-201-172.service.infuturo.it)
10:10:58 L29Ah joins (~L29Ah@wikipedia/L29Ah)
10:11:22 <absence> ncf: Nothing specifically, just rearrange transformer stacks so they can be used together.
10:20:23 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
10:21:11 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
10:21:58 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:ab32:1f38:1875:b1fb)
10:25:10 sayola joins (~sayola@ip-109-42-241-236.web.vodafone.de)
10:25:39 × CiaoSen quits (~Jura@2a05:5800:29e:b00:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
10:32:19 JamesMowery8 joins (~JamesMowe@ip98-171-80-211.ph.ph.cox.net)
10:33:34 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
10:34:02 sord937 joins (~sord937@gateway/tor-sasl/sord937)
10:34:11 × JamesMowery quits (~JamesMowe@ip98-171-80-211.ph.ph.cox.net) (Ping timeout: 264 seconds)
10:34:11 JamesMowery8 is now known as JamesMowery
10:36:07 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:41:27 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 268 seconds)
10:42:29 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
10:46:48 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
10:47:00 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 268 seconds)
10:47:10 notzmv joins (~daniel@user/notzmv)
10:47:16 sord937 joins (~sord937@gateway/tor-sasl/sord937)
10:51:58 kuribas joins (~user@2a02:1808:2:45fc:fed1:b8fe:efb5:8951)
10:59:16 × zetef quits (~quassel@95.77.17.251) (Ping timeout: 255 seconds)
11:02:53 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 240 seconds)
11:08:34 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
11:14:53 × mei quits (~mei@user/mei) (Remote host closed the connection)
11:18:16 mmhat joins (~mmh@p200300f1c706a29eee086bfffe095315.dip0.t-ipconnect.de)
11:20:48 mei joins (~mei@user/mei)
11:22:00 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:22:20 × tv quits (~tv@user/tv) (Ping timeout: 260 seconds)
11:32:32 Feuermagier joins (~Feuermagi@user/feuermagier)
11:32:49 __monty__ joins (~toonn@user/toonn)
11:34:29 × destituion quits (~destituio@2a02:2121:655:c95b:dfe:63c3:c9bc:b707) (Ping timeout: 272 seconds)
11:35:32 destituion joins (~destituio@85.221.111.174)
11:35:40 tv joins (~tv@user/tv)
11:36:57 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds)
11:42:24 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
11:43:57 euleritian joins (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de)
11:48:46 × kuribas quits (~user@2a02:1808:2:45fc:fed1:b8fe:efb5:8951) (Ping timeout: 255 seconds)
11:48:58 × rosco quits (~rosco@175.136.155.53) (Quit: Lost terminal)
11:50:45 × euleritian quits (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
11:51:03 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:55:02 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:57:47 zetef joins (~quassel@95.77.17.251)
12:01:05 rosco joins (~rosco@175.136.155.53)
12:03:51 × ddellacosta quits (~ddellacos@ool-44c73d16.dyn.optonline.net) (Ping timeout: 252 seconds)
12:07:47 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 264 seconds)
12:11:34 × zetef quits (~quassel@95.77.17.251) (Remote host closed the connection)
12:13:20 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
12:20:45 xff0x joins (~xff0x@ai082039.d.east.v6connect.net)
12:22:49 × danse-nr3 quits (~danse@fi-19-201-172.service.infuturo.it) (Ping timeout: 256 seconds)
12:30:23 ph88 joins (~ph88@2a02:8109:9e26:c800:c8f0:ad84:e72a:2ac6)
12:33:49 shapr joins (~user@2603:3005:b31:e100:ec5e:5cee:2493:7f78)
12:57:23 CiaoSen joins (~Jura@2a05:5800:29e:b00:e6b9:7aff:fe80:3d03)
12:57:25 danse-nr3 joins (~danse@151.47.194.94)
12:57:43 × danse-nr3 quits (~danse@151.47.194.94) (Remote host closed the connection)
12:58:06 danse-nr3 joins (~danse@151.47.194.94)
12:58:39 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:00:40 mc47 joins (~mc47@xmonad/TheMC47)
13:02:00 × rosco quits (~rosco@175.136.155.53) (Quit: Lost terminal)
13:12:55 × shapr quits (~user@2603:3005:b31:e100:ec5e:5cee:2493:7f78) (Quit: reboot)
13:15:11 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
13:16:45 euleritian joins (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de)
13:22:38 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 264 seconds)
13:30:44 × mmhat quits (~mmh@p200300f1c706a29eee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
13:31:08 mmhat joins (~mmh@p200300f1c706a2c7ee086bfffe095315.dip0.t-ipconnect.de)
13:31:36 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 260 seconds)
13:37:26 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
13:38:00 sord937 joins (~sord937@gateway/tor-sasl/sord937)
13:40:12 × mei quits (~mei@user/mei) (Remote host closed the connection)
13:42:39 mei joins (~mei@user/mei)
13:47:14 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 264 seconds)
13:50:11 mc47 joins (~mc47@xmonad/TheMC47)
13:57:14 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
13:57:38 mc47 joins (~mc47@xmonad/TheMC47)
14:06:09 × euleritian quits (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
14:06:29 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
14:10:39 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
14:10:51 × turlando quits (~turlando@user/turlando) (Remote host closed the connection)
14:12:06 turlando joins (~turlando@user/turlando)
14:12:41 mxs joins (~mxs@user/mxs)
14:16:17 Square2 joins (~Square4@user/square)
14:17:02 × vpan quits (~vpan@212.117.1.172) (Quit: Leaving.)
14:17:14 × destituion quits (~destituio@85.221.111.174) (Ping timeout: 264 seconds)
14:20:23 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
14:23:19 euleritian joins (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de)
14:25:09 destituion joins (~destituio@2a02:2121:655:c95b:4730:b7f0:4100:2e91)
14:38:08 Sgeo joins (~Sgeo@user/sgeo)
14:41:35 × danse-nr3 quits (~danse@151.47.194.94) (Ping timeout: 255 seconds)
14:48:37 danse-nr3 joins (~danse@151.47.194.94)
14:48:45 × acidjnk quits (~acidjnk@p200300d6e70d3f0395d202079165b1b5.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
14:51:58 AlexNoo_ joins (~AlexNoo@178.34.161.9)
14:55:02 × AlexZenon quits (~alzenon@178.34.160.143) (Ping timeout: 264 seconds)
14:55:49 × AlexNoo quits (~AlexNoo@178.34.160.143) (Ping timeout: 256 seconds)
14:57:14 yin joins (~yin@user/zero)
14:57:38 × leungbk quits (~user@104-032-221-175.res.spectrum.com) (Ping timeout: 252 seconds)
14:57:53 zetef joins (~quassel@5.2.182.99)
14:59:00 × mei quits (~mei@user/mei) (Remote host closed the connection)
15:01:35 mei joins (~mei@user/mei)
15:05:04 AlexZenon joins (~alzenon@178.34.161.9)
15:11:14 × CiaoSen quits (~Jura@2a05:5800:29e:b00:e6b9:7aff:fe80:3d03) (Ping timeout: 264 seconds)
15:12:39 × euleritian quits (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
15:12:58 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
15:13:36 × yin quits (~yin@user/zero) (Ping timeout: 252 seconds)
15:30:04 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
15:36:21 leungbk joins (~user@104-032-221-175.res.spectrum.com)
15:37:02 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
15:37:21 justsomeguy joins (~justsomeg@user/justsomeguy)
15:44:50 × leungbk quits (~user@104-032-221-175.res.spectrum.com) (Ping timeout: 264 seconds)
15:51:26 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
15:52:26 euleritian joins (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de)
15:55:27 tzh joins (~tzh@c-73-164-206-160.hsd1.or.comcast.net)
15:59:17 × myme quits (~myme@2a01:799:d5c:5f00:4bbe:1e12:b409:f6da) (Ping timeout: 256 seconds)
15:59:58 myme joins (~myme@2a01:799:d5c:5f00:bb0e:9829:92b0:ed75)
16:01:34 a51 joins (a51@gateway/vpn/protonvpn/a51)
16:05:04 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
16:05:10 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Max SendQ exceeded)
16:06:39 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
16:07:23 × mei quits (~mei@user/mei) (Remote host closed the connection)
16:09:22 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Max SendQ exceeded)
16:09:48 mei joins (~mei@user/mei)
16:10:23 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
16:10:40 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
16:14:06 × yin_ quits (~yin@user/zero) (Ping timeout: 252 seconds)
16:15:04 × igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.2.1)
16:19:23 euphores joins (~SASL_euph@user/euphores)
16:20:51 yin joins (~yin@user/zero)
16:20:55 __monty__ joins (~toonn@user/toonn)
16:22:47 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds)
16:25:45 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
16:28:03 <pounce> i just saw the new release! congrats
16:28:16 <pounce> since there are config changes: i hope it's alright if i propose a feature
16:28:40 <pounce> it would be nice if you could specify password in the config file by a command, instead of by a string. This way secrets won't be stored inside your configuration file, and you can store it publically
16:28:48 <pounce> crap
16:28:57 <pounce> sorry i clicked one buffer down this isn't haskell related
16:34:59 acidjnk joins (~acidjnk@p200300d6e70d3f0395d202079165b1b5.dip0.t-ipconnect.de)
16:41:50 nickhs joins (~nickhs@2602:fb65:0:100:8ea7:48ef:4186:4caa)
16:43:04 <nickhs> hiya, I'm trying to refactor some code into typeclasses. I have my little RPC handler at https://play.haskell.org/saved/zYvAhohq but I can't figure out how to solve the type error at myRoutes - also interested in style advice since this feels like a translation of how i'd do it in java. I tried changing routehandler too to `data RouteHolder =
16:43:05 <nickhs> forall a. Route a => RouteHolder a` but that seemed to create even more problems
16:46:40 × danse-nr3 quits (~danse@151.47.194.94) (Ping timeout: 260 seconds)
16:47:19 × yin quits (~yin@user/zero) (Ping timeout: 256 seconds)
16:47:20 × mc47 quits (~mc47@xmonad/TheMC47) (Read error: Connection reset by peer)
16:49:06 <geekosaur> HList is a thing, but often not worth the complexity
16:49:32 <geekosaur> if you really want to go this route (pun not intended), you might want to look at how Servant does it
16:50:29 <ski> (hm, could you paste that on a paste site that doesn't require Javascript to read the source ?)
16:50:48 <mxs> nickhs: I would just make a data MyRoutes = InitRoute | InitRequest, and specialize based on the route instead of ignoring the argument in instance Route MyRoutes like you're doing it now
16:51:25 <nickhs> servant is a good idea! let me see what they're doing. I managed to get something going like this https://play.haskell.org/saved/c0iDvGJK
16:51:42 <nickhs> ski whats your preferred site? I took play.haskell.org from the topic
16:52:15 <ski> @where paste
16:52:15 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
16:52:19 <ski> should be fine
16:52:51 <nickhs> ski https://paste.tomsmeding.com/qXlomfhi
16:53:52 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
16:53:55 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:54:27 mc47 joins (~mc47@xmonad/TheMC47)
16:54:32 <nickhs> mxs I want to avoid doing that since the list of routes isn't known at compile time, but only at runtime based on configuration of the server
16:54:58 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 260 seconds)
16:55:54 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds)
16:56:54 ChaiTRex joins (~ChaiTRex@user/chaitrex)
16:58:41 <mxs> nickhs: construct a suitable [MyRoutes] then?
17:00:06 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 260 seconds)
17:00:37 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:01:09 <probie> nickhs: Perhaps using a gadt and doing something like https://play.haskell.org/saved/GHGpm6DD ?
17:01:45 chiselfuse joins (~chiselfus@user/chiselfuse)
17:01:58 × vnogueira quits (~vnogueira@user/vnogueira) (Ping timeout: 260 seconds)
17:01:59 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
17:02:52 vnogueira joins (~vnogueira@user/vnogueira)
17:03:23 <nickhs> probie: oh I'm not familiar with GADTs or this syntax but this looks clean - lemme read
17:03:25 danse-nr3 joins (~danse@151.47.135.74)
17:04:11 <mxs> I was trying to understand the relationship between nondeterminism and Alternative -- it seems effect systems (freer-simple, fused-effects) claim that nondet. operations are encapsulated by the Alternative class
17:04:24 <mxs> but in "the essence of MonadPlus and Alternative" Schrijvers et al claim that Alternative is left-biased disjunction semantics rather than non-determinism, and what we really want is MonadPlus
17:04:28 <ski> nickhs : there's no instances for `GetContext' ? `requestKey = requestKey',`requestParse = requestParse',`handle = handle',`responseSerialize = responseSerialize' will loop, perhaps you meant like `requestKey (RouteHolder route) = requestKey route',&c. ? (also you have no instances of `GetRequest',`GetResponse',`GetContext' for `Routeholder')
17:04:28 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:ab32:1f38:1875:b1fb) (Quit: ubert)
17:04:38 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
17:04:39 × vnogueira quits (~vnogueira@user/vnogueira) (Remote host closed the connection)
17:04:40 <mxs> they give Maybe as an example of something that's not a MonadPlus, but I don't understand why Alternative is a wrong model for nondeterminism
17:04:58 vnogueira joins (~vnogueira@user/vnogueira)
17:05:04 <mxs> any ideas? I also came up with this Applicative instance to model nondeterminism:
17:05:12 <mxs> data NonDet a = Certainly a | Possibly [NonDet a]
17:05:17 × danse-nr3 quits (~danse@151.47.135.74) (Remote host closed the connection)
17:05:22 <mxs> turns out this is the "Forest" type from that paper
17:05:41 <mxs> and they say this is isomorphic to the free nondeterminism monad (which is similar to the free alternative from Kmett's free, but apparently a different representation) _on the identitiy functor_
17:05:42 danse-nr3 joins (~danse@151.47.135.74)
17:05:42 <ski> nickhs : "the list of routes isn't known at compile time, but only at runtime based on configuration of the server" -- is the possible form of each route known statically ? perhaps recursively ?
17:05:57 <mxs> what is the significance of the identity functor here? how can I bridge the intuition gap between Alt f a and my NonDet a type?
17:06:11 × danse-nr3 quits (~danse@151.47.135.74) (Remote host closed the connection)
17:06:46 chiselfuse joins (~chiselfus@user/chiselfuse)
17:06:49 <nickhs> ski that is a good point it will loop - I didn't actually run the code but I can see that. GetContext is for me to figure out later thats why its missing
17:07:11 <nickhs> @ski not sure what you mean by form here?
17:07:11 <lambdabot> Maybe you meant: wiki src ask
17:08:21 <ski> nickhs : it's not clear to me why you need *types* `InitRoute',`InitRequest',`InitResponse',`ReadRoute',`ReadRequest',`ReadResponse',&c. .. also it's not clear to me that you want to use type classes
17:11:22 × chele quits (~chele@user/chele) (Remote host closed the connection)
17:11:23 <ski> would something like `data Route = forall request response. MkRoute { requestKey :: String,requestParse :: String -> request,handle :: request -> response,responseSerialize :: response -> String }' work ?
17:11:25 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
17:12:51 × nickhs quits (~nickhs@2602:fb65:0:100:8ea7:48ef:4186:4caa) (Quit: Client closed)
17:13:05 nickhs joins (~nickhs@2602:fb65:0:100:8ea7:48ef:4186:4caa)
17:13:20 <ski> are there going to be other operations which need to interact with `GetRequest',`GetResponse' (and `GetContext'), specifically depending on the particular `type instance's (and not just on the `type family's themselves) ?
17:13:28 <Inst> btw, there is no way to declare implementations within a typeclass, right?
17:13:49 <Inst> i just found the hack with type families that allows you to close a typeclass
17:14:30 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
17:14:34 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Ping timeout: 260 seconds)
17:14:38 <geekosaur> you mean, provide specific instances within a class declaration? no
17:15:06 <nickhs> ski potentially, such as logging, if I lock them in the MkRoute I guess I can't access them since they will be opaque?
17:15:23 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
17:15:24 pastly joins (~pastly@gateway/tor-sasl/pastly)
17:16:46 <ski> "them" being ?
17:17:05 <Inst> actually, you can do it by using superclasses alone
17:17:18 <nickhs>  ski them being the request and response object (ie InitRequest, InitResponse)
17:17:39 <Inst> i think you should be able to do it, i.e, hide the superclass, expose the subclass
17:18:28 <ski> well, `InitRequest',`InitResponse' doesn't contain any information, and ditto for `ReadRequest' and `ReadResponse' .. but perhaps they will later, and you're just mocking them for the time being
17:18:52 ht_ joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
17:20:14 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 264 seconds)
17:20:14 ht_ is now known as _ht
17:20:16 shapr joins (~user@c-24-218-186-89.hsd1.ma.comcast.net)
17:21:21 <ski> but yes, with existential, they would be inaccessible from outside (and hence the `Route' type i suggested would be equivalent to just `data Route = MkRoute { requestKey :: String,requestParseHandleSerialize :: String -> String }', which was why i asked about whether you were going to access those `type instance's ("non-opaquely"))
17:23:11 AlexNoo_ is now known as AlexNoo
17:23:12 × nickhs quits (~nickhs@2602:fb65:0:100:8ea7:48ef:4186:4caa) (Quit: Client closed)
17:23:23 nickhs joins (~nickhs@2602:fb65:0:100:8ea7:48ef:4186:4caa)
17:27:30 <probie> Perhaps my understanding is off, but I assume in the intended use case, the person defining routes may not be the library author
17:29:02 <ski> i would try to go for a "record of methods" approach, probably, unless i needed something else
17:29:36 <ski> (so the kinds of routes would be open, not fixed statically)
17:30:33 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds)
17:30:43 jmdaemon joins (~jmdaemon@user/jmdaemon)
17:39:07 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:39:10 <nickhs> probie your understanding is correct, also I love your answer. It's weird to me that if I try create an `unwrap :: RouteHolder -> r` function that doesn't work but using the destructing in the case statement does (using a `let` or anything else makes the compiler unhappy too)
17:40:07 <nickhs> ski I think that will work let me try refactoring, I do recall trying something similar and hitting a roadblock - it was to do with the relationship between InitRequest and InitResponse which made me reach for type families but I don't exactly recall
17:40:20 × zetef quits (~quassel@5.2.182.99) (Remote host closed the connection)
17:40:52 rvalue joins (~rvalue@user/rvalue)
17:41:35 × nickhs quits (~nickhs@2602:fb65:0:100:8ea7:48ef:4186:4caa) (Quit: Client closed)
17:42:15 <ski> nickhs : i guess you wanted `unwrap :: RouteHolder -> (exists r. Route r *> r)' .. but there's no `exists' (or `*>') in Haskell. `withRoute :: RouteHolder -> (forall r. Route r => r -> o) -> o' would work, though
17:43:19 <ski> @where existential-antipattern
17:43:19 <lambdabot> "Haskell Antipattern: Existential Typeclass" by Luke Palmer at <https://web.archive.org/web/20220121105027/https://lukepalmer.wordpress.com/2010/01/24/haskell-antipattern-existential-typeclass/>
17:43:24 <ski> might apply in your case
17:43:36 <ski> (or, simply, overusing type classes)
17:44:30 <ski> oh .. they left
17:47:50 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 264 seconds)
17:48:07 Joao[3] joins (~Joao003@190.108.99.67)
17:48:38 × ph88 quits (~ph88@2a02:8109:9e26:c800:c8f0:ad84:e72a:2ac6) (Remote host closed the connection)
17:48:44 nickhs joins (~nickhs@2602:fb65:0:100:8ea7:48ef:4186:4caa)
17:50:36 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
17:55:41 briandaed joins (~root@185.234.210.211.r.toneticgroup.pl)
17:56:54 × euleritian quits (~euleritia@dynamic-046-114-088-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
17:58:46 × mei quits (~mei@user/mei) (Remote host closed the connection)
18:01:12 mei joins (~mei@user/mei)
18:01:32 <probie> personally, I think for what they wanted, they'd have been better off with a `Map String (String -> Either ReqParseError (IO String))` (assuming that the router handlers aren't all going to be pure functions)
18:01:46 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:02:09 <probie> but the best way to learn is to make mistakes
18:03:38 mima joins (~mmh@aftr-62-216-211-224.dynamic.mnet-online.de)
18:04:00 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
18:04:43 justsomeguy joins (~justsomeg@user/justsomeguy)
18:06:10 <probie> nickhs: whilst you were gone, ski suggested that you look at
18:06:12 <probie> @where existential-antipattern
18:06:12 <lambdabot> "Haskell Antipattern: Existential Typeclass" by Luke Palmer at <https://web.archive.org/web/20220121105027/https://lukepalmer.wordpress.com/2010/01/24/haskell-antipattern-existential-typeclass/>
18:08:08 <nickhs> ah thank you, and yeah probie that's likely the type I wanted since it's effectively capturing all the failure modes in each "step" of the route pipeline
18:09:43 <ski> nickhs : anyway, you mention "either" in relation to `requestParse', and have a commented out version of `handle' that also threads a context through .. so it's a bit hard to know what the more full-fledged, non-mocked, system, is supposed to look like
18:12:54 <ski> nickhs : in OO, you'll often reach for defining a new class. in Haskell, that wouldn't necessarily correspond to defining a new data type, and probably even less a new type class. and existentials shouldn't really be reached for, unless you actually need them, since they bring complications
18:14:02 <nickhs> I agree, I'm going to refactor using the MkRoute pattern you showed above and see where I get stuck - I like how it's open rather than creating a sum type
18:14:54 <nickhs> but its nice to know that existentials exist, and thank you probie and ski for showing me the moves to unwrap the inner route from the RouteHolder (no let or where clauses, use case destructure or withRoute)
18:17:30 <ski> (btw, i tend to dislike naming a data constructor the same as its associated type constructor. that's why i went with `MkRoute')
18:17:30 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
18:17:52 <ski> (another similar option would be `RouteOf')
18:18:00 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:18:51 <monochrom> @quote monochrom river
18:18:51 <lambdabot> monochrom says: You are to send a boolean, a character, and an integer across the river. The list for transporting across the river can hold 3 items, in fact any number of items you like, but they
18:18:51 <lambdabot> must all be of the same type. On the bright side, after crossing the river, the boolean, the character, and the integer need only be put on show. How many trips do you need? Solution: one trip, [
18:18:51 <lambdabot> show the_boolean, show the_character, show the_integer]
18:22:23 target_i joins (~target_i@user/target-i/x-6023099)
18:23:09 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
18:23:54 × foul_owl quits (~kerry@157.97.134.168) (Ping timeout: 252 seconds)
18:23:54 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:25:31 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds)
18:26:48 × nickhs quits (~nickhs@2602:fb65:0:100:8ea7:48ef:4186:4caa) (Ping timeout: 250 seconds)
18:29:19 mik3d joins (~mik3d@pool-173-61-131-199.cmdnnj.fios.verizon.net)
18:31:57 Achylles joins (~Achylles_@45.182.57.126)
18:33:07 mechap joins (~mechap@user/mechap)
18:33:13 jmdaemon joins (~jmdaemon@user/jmdaemon)
18:34:12 × raym quits (~ray@user/raym) (Ping timeout: 255 seconds)
18:35:27 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
18:37:49 foul_owl joins (~kerry@185.219.141.162)
18:41:07 raym joins (~ray@user/raym)
18:47:14 × Square2 quits (~Square4@user/square) (Ping timeout: 264 seconds)
18:52:14 × Achylles quits (~Achylles_@45.182.57.126) (Remote host closed the connection)
18:52:18 Square joins (~Square@user/square)
18:52:22 × Joao[3] quits (~Joao003@190.108.99.67) (Quit: Bye!)
18:59:25 × raym quits (~ray@user/raym) (Ping timeout: 255 seconds)
18:59:44 <probie> are there any good libraries for generating typescript (or just regular javascript if that's the only option)?
19:00:49 <haskellbridge> <s​m> jsaddle ?
19:00:58 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
19:02:26 <probie> I'm not executing it, it's a compilation target
19:03:28 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
19:05:35 raym joins (~ray@user/raym)
19:07:18 nickhs joins (~nickhs@23.136.216.2)
19:16:56 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
19:21:17 <shapr> @quote haskellbridge
19:21:18 <lambdabot> No quotes match. Just what do you think you're doing Dave?
19:21:19 <shapr> aw
19:21:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:24:51 <tomsmeding> I guess if people want to quote something from across the bridge, they register it using the person's nick directly
19:27:06 <geekosaur> it's kinda silly to attribute quotes to the bridge, and we don't have @grab only @remember
19:30:34 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:38:30 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
19:38:33 Ashkan joins (~Ashkan@147.161.173.72)
19:43:51 <Noinia> is anyone using the hls-eval plugin with eglot in emacs? basic completion using hls+eglot is working fine here, but if I add some -- >>> someCodeToEvaluate here and ask for code actions eglot does not give me a way to evaluate the function.
19:43:51 × Ashkan quits (~Ashkan@147.161.173.72) (Quit: Client closed)
19:44:08 <Noinia> and the documentation on how to configure hls plugins with eglot is rather sparse
19:45:22 <Noinia> (and from what I gather from the HLS docs, the eval plugin should be on by default)
19:45:43 <Noinia> so in theory there should not be anything to configure to begin with.
20:11:45 ft joins (~ft@p508db238.dip0.t-ipconnect.de)
20:12:07 × mmhat quits (~mmh@p200300f1c706a2c7ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
20:12:28 × briandaed quits (~root@185.234.210.211.r.toneticgroup.pl) (Remote host closed the connection)
20:13:59 anfelor joins (~anfelor@131.111.5.246)
20:14:32 <jle`> is there any general way to reflect from the type rep in Type.Reflection? ie reflect :: TypeRep (a :: k) -> k ... like reflect (typeRep @'True) = True. based on the name of the module i sort of assumed there would be
20:15:33 × dcoutts_ quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
20:15:56 dcoutts_ joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
20:16:07 <jle`> for any enumerable type you can do something silly like reflectBool :: TypeRep (a :: Bool) -> Bool, reflectBoo x = isJust . eqTypeRep (typeRep @'True)
20:16:29 <jle`> er, reflectBool = isJust . eqTypeRep (typeRep @'True)
20:16:48 <jle`> but i feel like there's an obvious general way that i'm missing
20:17:56 × benjaminl quits (~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
20:18:11 benjaminl joins (~benjaminl@user/benjaminl)
20:18:36 × nickhs quits (~nickhs@23.136.216.2) (Ping timeout: 250 seconds)
20:19:59 <jle`> the reflection library doesn't really help us here either
20:20:47 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:21:53 <jle`> you could use template haskell with the singletons library and use Sing instead but it'd be cool to be able to do it in base only
20:22:29 <jle`> i guess maybe TypeRep just doesn't have all the information in it necessary for this
20:22:44 <jle`> how is everyone doing today
20:24:21 × mik3d quits (~mik3d@pool-173-61-131-199.cmdnnj.fios.verizon.net) (Read error: Connection reset by peer)
20:27:42 <tomsmeding> Noinia: quickly checking, it seems that hls-eval exposes the evaluate functionality via a _code lens_
20:27:53 <tomsmeding> as distinct from e.g. a _code action_
20:28:02 <tomsmeding> eglot seems to not support code lenses yet https://github.com/joaotavora/eglot/pull/71
20:29:50 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
20:31:43 jargon joins (~jargon@70.sub-174-205-226.myvzw.com)
20:43:40 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
20:50:49 zetef joins (~quassel@5.2.182.98)
20:54:33 × Lears quits (~Leary]@user/Leary/x-0910699) (Remote host closed the connection)
20:58:36 <Noinia> hmm that is a bit annoying :(. It seems that this gist allows me to somehow run these lenses https://gist.github.com/Gavinok/fa23bbea7f44725eb633c002a8aa803a but admittedly it does not really work all that smooth :(
21:00:20 <Noinia> I wonder how easy it would be to expose the eval business as a code action rather than a code-lens.
21:05:45 <tomsmeding> https://github.com/haskell/haskell-language-server/blob/master/plugins/hls-eval-plugin/src/Ide/Plugin/Eval.hs :p
21:06:15 <Noinia> yes, I was scanning through that currently :P
21:10:00 pavonia joins (~user@user/siracusa)
21:12:04 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
21:18:00 × Benzi-Junior quits (~BenziJuni@232-148-209-31.dynamic.hringdu.is) (Ping timeout: 255 seconds)
21:19:51 ph88 joins (~ph88@2a02:8109:9e26:c800:d1f0:3a71:f873:943f)
21:23:34 Benzi-Junior joins (~BenziJuni@232-148-209-31.dynamic.hringdu.is)
21:37:39 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
21:45:25 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:49:03 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:49:27 × oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Quit: oo_miguel)
22:01:36 × zetef quits (~quassel@5.2.182.98) (Remote host closed the connection)
22:02:34 mik3d joins (~mik3d@pool-173-61-131-199.cmdnnj.fios.verizon.net)
22:14:08 × mei quits (~mei@user/mei) (Remote host closed the connection)
22:16:33 mei joins (~mei@user/mei)
22:19:32 × mik3d quits (~mik3d@pool-173-61-131-199.cmdnnj.fios.verizon.net) (Read error: Connection reset by peer)
22:20:39 × hueso quits (~root@user/hueso) (Ping timeout: 256 seconds)
22:24:12 hueso joins (~root@user/hueso)
22:29:17 Feuermagier joins (~Feuermagi@user/feuermagier)
22:36:37 × anfelor quits (~anfelor@131.111.5.246) (Quit: Client closed)
22:39:56 anfelor joins (~anfelor@131.111.5.246)
22:39:58 Feuermagier_ joins (~Feuermagi@user/feuermagier)
22:39:58 Feuermagier is now known as Guest6864
22:39:58 Feuermagier_ is now known as Feuermagier
22:40:07 × anfelor quits (~anfelor@131.111.5.246) (Client Quit)
22:42:24 × Guest6864 quits (~Feuermagi@user/feuermagier) (Ping timeout: 252 seconds)
22:54:24 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:59:37 Square2 joins (~Square4@user/square)
23:02:24 × Square quits (~Square@user/square) (Ping timeout: 255 seconds)
23:05:13 × flukiluke quits (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Ping timeout: 246 seconds)
23:09:08 flukiluke joins (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962)
23:12:52 × michalz quits (~michalz@185.246.207.205) (Quit: ZNC 1.8.2 - https://znc.in)
23:16:02 × acidjnk quits (~acidjnk@p200300d6e70d3f0395d202079165b1b5.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
23:16:16 mmhat joins (~mmh@p200300f1c706a2c7ee086bfffe095315.dip0.t-ipconnect.de)
23:17:20 × otto_s quits (~user@p5de2faee.dip0.t-ipconnect.de) (Quit: Lost terminal)
23:17:53 otto_s joins (~user@p5de2faee.dip0.t-ipconnect.de)
23:20:21 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:23:21 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
23:28:30 × xff0x quits (~xff0x@ai082039.d.east.v6connect.net) (Ping timeout: 255 seconds)
23:35:14 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
23:38:14 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 264 seconds)
23:44:38 <pie_> Axman6: thanks!
23:45:23 [Leary] joins (~Leary]@user/Leary/x-0910699)
23:51:21 xff0x joins (~xff0x@2405:6580:b080:900:42bc:ad6f:b5c1:444)
23:51:39 oneeyedalien_ joins (~oneeyedal@user/oneeyedalien)
23:54:26 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Ping timeout: 264 seconds)
23:55:33 pepexan joins (~oscar@153.27.165.83.dynamic.reverse-mundo-r.com)
23:57:57 pepexan parts (~oscar@153.27.165.83.dynamic.reverse-mundo-r.com) ()

All times are in UTC on 2024-03-21.