Home liberachat/#haskell: Logs Calendar

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

00:04:19 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
00:16:57 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
00:26:13 × srz quits (~srz@181.228.49.93) (Ping timeout: 264 seconds)
00:27:30 × califax quits (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
00:27:39 califax_ joins (~califax@user/califx)
00:28:51 califax_ is now known as califax
00:30:48 Inst_ is now known as Inst
00:34:29 × lg188 quits (~lg188@82.18.98.230) (Quit: Ping timeout (120 seconds))
00:35:07 lg188 joins (~lg188@82.18.98.230)
00:37:35 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
00:45:29 Feuermagier is now known as Guest9916
00:45:29 Feuermagier_ joins (~Feuermagi@user/feuermagier)
00:45:29 × Guest9916 quits (~Feuermagi@user/feuermagier) (Killed (zinc.libera.chat (Nickname regained by services)))
00:45:29 Feuermagier_ is now known as Feuermagier
01:01:51 TonyStone joins (~TonyStone@074-076-057-186.res.spectrum.com)
01:02:04 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
01:03:09 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
01:04:42 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 268 seconds)
01:08:11 × benjaminl quits (~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
01:08:26 benjaminl joins (~benjaminl@user/benjaminl)
01:09:49 × oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 256 seconds)
01:15:37 rvalue joins (~rvalue@user/rvalue)
01:20:18 × benjaminl quits (~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
01:20:33 benjaminl joins (~benjaminl@user/benjaminl)
01:27:24 dsrt^ joins (~cd@c-98-242-74-66.hsd1.ga.comcast.net)
01:33:03 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
01:34:11 × amjoseph quits (~amjoseph@static-198-44-128-146.cust.tzulo.com) (Ping timeout: 272 seconds)
01:37:44 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds)
01:39:10 amjoseph joins (~amjoseph@static-198-44-128-146.cust.tzulo.com)
01:45:17 Square joins (~Square@user/square)
01:50:40 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
01:53:24 × xff0x quits (~xff0x@ai082039.d.east.v6connect.net) (Ping timeout: 255 seconds)
01:56:19 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
01:56:59 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 272 seconds)
01:58:02 × Feuermagier quits (~Feuermagi@user/feuermagier) (Quit: Leaving)
02:01:55 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
02:02:19 × ski quits (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 260 seconds)
02:04:22 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
02:22:31 Feuermagier joins (~Feuermagi@user/feuermagier)
02:23:54 cheater_ joins (~Username@user/cheater)
02:24:40 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
02:24:40 cheater_ is now known as cheater
02:26:26 cowboy861 joins (~cowboy@2001-48F8-4002-1DC-4041-DBE2-85D9-A794-dynamic.midco.net)
02:27:17 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
02:27:59 × cowboy861 quits (~cowboy@2001-48F8-4002-1DC-4041-DBE2-85D9-A794-dynamic.midco.net) (Client Quit)
02:36:15 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
02:36:58 emmanuelux joins (~emmanuelu@user/emmanuelux)
02:37:04 × mmhat quits (~mmh@p200300f1c73c2256ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
02:39:30 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:39:55 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
02:40:40 × otto_s quits (~user@93.226.245.124) (Ping timeout: 255 seconds)
02:42:21 otto_s joins (~user@p5b044b17.dip0.t-ipconnect.de)
02:50:27 mmhat joins (~mmh@p200300f1c70d3313ee086bfffe095315.dip0.t-ipconnect.de)
03:02:31 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
03:03:11 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
03:04:06 ski joins (~ski@ext-1-033.eduroam.chalmers.se)
03:12:35 × ski quits (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 264 seconds)
03:15:02 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
03:19:29 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
03:27:54 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 255 seconds)
03:31:02 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
03:37:43 ski joins (~ski@ext-1-033.eduroam.chalmers.se)
03:42:07 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 272 seconds)
03:56:23 × td_ quits (~td@i53870932.versanet.de) (Ping timeout: 264 seconds)
03:57:20 notzmv joins (~daniel@user/notzmv)
03:57:56 td_ joins (~td@i5387092D.versanet.de)
03:58:20 <tri> hi, im looking at eitherT monad transfomer, EitherT e m a = EitherT { runEitherT :: m (Either e a) }
03:58:33 <tri> i don't get why the order of e m a is that way
03:58:58 <tri> why can't i swap them so that it's EitherT m e a?
04:02:56 <monochrom> It is much more usual to fix e, consider "EitherT e" as one single thing Foo, then we are transforming m to Foo m.
04:04:35 <monochrom> Indeed by the time you write "instance MonadTrans (EitherT ???)" then putting m first makes no sense, whereas "instance MonadTrans (EitherT e)" is the only legal choice.
04:05:43 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
04:08:43 <tri> hmm i don't get it. So for a being at the end, i understand it, because for that's the order needed to implement Functor. As in, Functor (EitherT e m)
04:09:53 <monochrom> So try writing MonadTrans and see how many choices you have. (One.)
04:10:51 <monochrom> "Positive" thinking is overrated. Sometimes "negative" thinking is the way to go. There are 6 choices, but 5 of them make no sense. Therefore the remaining one does.
04:11:20 <monochrom> Or more rigorously, s/make no sense/is provably broken/
04:11:34 <tri> hmm i haven't seen monadtrans yet, is that the typeclass that provide the lift function?
04:11:44 <monochrom> Yes.
04:11:47 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
04:11:51 <tri> ah i haven't read to that part yet
04:12:10 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
04:12:12 <tri> im just reading at writing functor, applicative and monad instance for monad transformers
04:12:26 <tri> and because they are so lengthy, i skimmed most of them
04:12:41 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:12:50 <tri> so when i look at EitherT, i wonder why the order of the type arguments are that way
04:13:59 × liskin quits (~liskin@xmonad/liskin) (Remote host closed the connection)
04:14:11 <monochrom> This is why we of the older generation believes (correctly) that the young generation is learning nothing. None. Zilch.
04:14:42 <monochrom> And the most right-wing reactionary of us want to bring back RTFM.
04:15:38 liskin joins (~liskin@xmonad/liskin)
04:18:22 motherfsck joins (~motherfsc@user/motherfsck)
04:19:59 × mulk quits (~mulk@pd951476c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
04:20:32 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
04:21:20 mulk joins (~mulk@p5b2dc406.dip0.t-ipconnect.de)
04:21:29 aforemny joins (~aforemny@2001:9e8:6cf5:5c00:49a:ce0c:787c:65b3)
04:21:51 × aforemny_ quits (~aforemny@i59F516E8.versanet.de) (Ping timeout: 260 seconds)
04:25:12 × mmhat quits (~mmh@p200300f1c70d3313ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
04:28:10 <probie> You mean "ask ChatGPT what the manual says" :p
04:28:22 <monochrom> :(
04:28:26 <monochrom> :D
04:30:30 <int-e> so if ChatGPT makes the contents up on the spot would that be a manual override?
04:31:18 <int-e> (this would work better if ChatGPT actually *knew* stuff)
04:32:53 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
04:33:25 × notzmv quits (~daniel@user/notzmv) (Ping timeout: 272 seconds)
04:38:55 × Inst quits (~Inst@120.244.192.27) (Ping timeout: 256 seconds)
04:43:01 × RedNifre quits (~RedNifre@dslb-002-205-008-195.002.205.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
04:47:25 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
04:48:02 × mulk quits (~mulk@p5b2dc406.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
04:52:21 mulk joins (~mulk@p5b2dc4c2.dip0.t-ipconnect.de)
04:55:17 ania123 joins (~ania123@146.255.226.194)
04:55:23 Guest18 joins (~Guest18@2601:204:f083:6c50:e1e:7d31:f492:223d)
04:57:01 RedNifre joins (~RedNifre@dslb-002-206-121-180.002.206.pools.vodafone-ip.de)
04:58:29 <EvanR> the meaning of actually knowing
04:59:00 <EvanR> after reading anything from chatgpt I question if I know anything or ever did
05:08:06 michalz joins (~michalz@185.246.207.203)
05:17:33 × Guest18 quits (~Guest18@2601:204:f083:6c50:e1e:7d31:f492:223d) (Ping timeout: 250 seconds)
05:20:37 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
05:21:24 × benjaminl quits (~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
05:21:40 benjaminl joins (~benjaminl@user/benjaminl)
05:23:23 × rainbyte quits (~rainbyte@186.22.19.215) (Ping timeout: 264 seconds)
05:28:38 × ania123 quits (~ania123@146.255.226.194) (Quit: Client closed)
05:30:19 × benjaminl quits (~benjaminl@user/benjaminl) (Read error: Connection reset by peer)
05:30:34 benjaminl joins (~benjaminl@user/benjaminl)
05:30:57 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
05:36:38 Square2 joins (~Square4@user/square)
05:37:21 × benjaminl quits (~benjaminl@user/benjaminl) (Remote host closed the connection)
05:39:25 × Square quits (~Square@user/square) (Ping timeout: 264 seconds)
05:41:34 × elkcl quits (~elkcl@broadband-95-84-176-204.ip.moscow.rt.ru) (Ping timeout: 255 seconds)
06:03:14 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Quit: _)
06:03:53 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
06:04:44 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
06:05:06 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 256 seconds)
06:05:46 Maxdamantus joins (~Maxdamant@user/maxdamantus)
06:08:15 audaine joins (~gentoo@2601:5cf:8000:7960:4be0:890f:3fe7:f011)
06:10:30 elkcl joins (~elkcl@broadband-95-84-176-204.ip.moscow.rt.ru)
06:12:15 julie_pilgrim joins (~julie_pil@user/julie-pilgrim/x-1240752)
06:14:18 × koz quits (~koz@121.99.240.58) (Quit: ZNC 1.8.2 - https://znc.in)
06:16:05 koz joins (~koz@121.99.240.58)
06:16:12 tri joins (~tri@ool-18bc2e74.dyn.optonline.net)
06:17:11 igemnace joins (~ian@user/igemnace)
06:17:45 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:20:24 × tri quits (~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 256 seconds)
06:24:15 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:27:11 acidjnk_new3 joins (~acidjnk@p200300d6e737e788d91e6e3566650313.dip0.t-ipconnect.de)
06:33:28 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:35:22 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
06:37:12 euleritian joins (~euleritia@dynamic-176-006-190-100.176.6.pool.telefonica.de)
06:43:59 Inst joins (~Inst@120.244.192.27)
06:52:40 × dtman34 quits (~dtman34@2601:447:d001:ed50:71b1:9fdc:d135:745b) (Ping timeout: 255 seconds)
06:57:15 × elkcl quits (~elkcl@broadband-95-84-176-204.ip.moscow.rt.ru) (Ping timeout: 260 seconds)
06:57:45 zetef joins (~quassel@95.77.17.251)
07:00:38 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
07:15:09 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:16:40 <Inst> hmmm
07:16:46 <Inst> actually, isn't reverse on lists O(1)? ;)
07:17:11 <Inst> All of a sudden saw some slide that reads O(n) reverse
07:17:22 ccapndave joins (~ccapndave@xcpe-62-167-165-159.cgn.res.adslplus.ch)
07:17:41 <Inst> actually, nope, even under laziness you can't get it to avoid being O(n) :(
07:17:49 × ccapndave quits (~ccapndave@xcpe-62-167-165-159.cgn.res.adslplus.ch) (Client Quit)
07:19:22 <Inst> but under laziness, reverse on a vector / array is O(1), right? ;)
07:20:10 dtman34 joins (~dtman34@c-75-72-163-222.hsd1.mn.comcast.net)
07:22:06 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
07:27:15 × julie_pilgrim quits (~julie_pil@user/julie-pilgrim/x-1240752) (Remote host closed the connection)
07:38:19 elkcl joins (~elkcl@broadband-178-140-136-65.ip.moscow.rt.ru)
07:39:45 chele joins (~chele@user/chele)
07:39:58 enyc joins (~enyc@user/enyc)
07:40:24 × bgamari_ quits (~bgamari@64.223.200.57) (Ping timeout: 260 seconds)
07:41:20 wootehfoot joins (~wootehfoo@user/wootehfoot)
07:42:03 bgamari joins (~bgamari@64.223.157.69)
07:44:58 danza joins (~francesco@151.35.230.238)
07:47:37 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
07:59:07 <c_wraith> Inst: not for any standard way I'd measure. but laziness requires you to be a bit more precise. applying reverse to a vector and not demanding evaluation is O(1), sure. But demanding any element of it will require the whole thing to be rebuilt, so the first access is O(n). Then it's evaluated, and subsequent uses will be O(1)
08:01:11 gmg joins (~user@user/gehmehgeh)
08:01:20 <opqdonut> for an suitable indexed structure you _could_ define a synthetic O(1) reverse that just toggles the order of indexing
08:01:46 <opqdonut> c.f. O(1) slices of vectors
08:02:19 <opqdonut> I don't think any data structure ships with that, but for an application that does lots of reversing and rereversing it might make sense to roll one yourself
08:07:09 × euleritian quits (~euleritia@dynamic-176-006-190-100.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
08:07:39 <danza> there is no double-linked list?
08:07:59 <c_wraith> doubly linked lists are really hard in a language with immutable data.
08:08:30 euleritian joins (~euleritia@77.22.252.56)
08:09:12 oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
08:09:41 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
08:10:06 <c_wraith> Not impossible, but it's very implausible to find a use case where they have better performance properties than a vector or something based on them.
08:10:31 misterfish joins (~misterfis@87.215.131.102)
08:10:41 <danza> differently sized elements
08:10:58 × igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.2.1)
08:11:14 igemnace joins (~ian@user/igemnace)
08:11:24 <probie> danza: what _is_ a double-linked list to you? If you actually think you need one, you can probably get away with `([a], [a])`
08:13:24 <danza> i guess usually one would want to be able to find the prev/next element having an element
08:14:05 <c_wraith> doubly-linked lists are *awful* for that
08:14:25 <c_wraith> unless you mean you have a pointer into the list, rather than a value equal to one thing it stores
08:14:40 <c_wraith> If what you have is a pointer into the list, it's basically ([a], a, [a])
08:15:09 CiaoSen joins (~Jura@2a05:5800:2d5:5500:e6b9:7aff:fe80:3d03)
08:15:19 <danza> yeah but without using references i guess an element would have references to the others in its value
08:19:53 <danza> sorry i expressed quite poorly ... ([a], a, [a]) anyways looks odd to me, updates would be a nightmare?
08:21:04 <danza> that is why it seems to make sense only as references or an index to some other data structure
08:21:19 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:21:55 <c_wraith> danza: the whole point of a doubly-linked list is that you have one specific element that is in focus, and the ability to move that focus one spot at a time to the left or right
08:22:13 <c_wraith> ([a], a, [a]) is (the things to the left, the focus, the things to the right)
08:22:39 <c_wraith> Updating at the focus is O(1), just like a linked list. Moving one spot to the left or right is O(1), just like a linked list.
08:23:02 <danza> but updating the list is o(toomuch)
08:23:14 <c_wraith> same with a linked list?
08:24:11 <danza> not sure. Anyways you can get a focus with zippers, i am more curious about a data structure that can just be iterated two ways
08:25:13 <c_wraith> There's always trees
08:25:45 <danza> ought to be doubly-linked as well though
08:26:38 <c_wraith> why?
08:26:43 <c_wraith> (once again, immutable data)
08:27:09 <danza> one can double-link with immutable data
08:27:09 <c_wraith> also, there are finger trees, if you want access to the ends to be O(1) instead of O(log n)
08:27:20 <c_wraith> you can link, but you can't update after having done so
08:27:43 <danza> i will have to deepen better
08:27:56 <c_wraith> if your data structure contains cycles, updating it requires copying the whole thing. And while you're at it, detecting the cycles.
08:32:27 fen87 joins (~fen@90.242.230.226)
08:33:22 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:34:44 ania123 joins (~ania123@146.255.226.194)
08:35:21 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
08:35:34 sord937 joins (~sord937@gateway/tor-sasl/sord937)
08:49:29 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 252 seconds)
08:56:05 × ski quits (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 252 seconds)
09:03:21 × tzh quits (~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
09:04:11 × danza quits (~francesco@151.35.230.238) (Ping timeout: 264 seconds)
09:10:24 × airscape quits (~airscape@176.254.244.83) (Ping timeout: 256 seconds)
09:20:48 × ridcully quits (~ridcully@p508ac420.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
09:20:59 danse-nr3 joins (~danse@151.35.230.238)
09:21:23 ridcully joins (~ridcully@p508ac420.dip0.t-ipconnect.de)
09:21:23 × danse-nr3 quits (~danse@151.35.230.238) (Remote host closed the connection)
09:21:47 danse-nr3 joins (~danse@151.35.230.238)
09:22:02 emmanuelux joins (~emmanuelu@user/emmanuelux)
09:23:55 × fen87 quits (~fen@90.242.230.226) (Quit: Connection closed)
09:26:38 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
09:27:54 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 255 seconds)
09:29:45 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
09:44:21 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 256 seconds)
09:45:15 × danse-nr3 quits (~danse@151.35.230.238) (Ping timeout: 260 seconds)
09:46:12 danse-nr3 joins (~danse@151.35.230.238)
09:56:48 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
09:59:34 × danse-nr3 quits (~danse@151.35.230.238) (Remote host closed the connection)
10:01:15 × ft quits (~ft@p3e9bce6e.dip0.t-ipconnect.de) (Quit: leaving)
10:01:16 danse-nr3 joins (~danse@151.35.230.238)
10:01:47 agrosant joins (~agrosant@77.49.160.162.dsl.dyn.forthnet.gr)
10:06:59 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
10:10:27 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
10:13:45 × danse-nr3 quits (~danse@151.35.230.238) (Read error: Connection reset by peer)
10:14:16 danse-nr3 joins (~danse@151.37.230.196)
10:16:20 TimeLapse joins (~TimeLapse@176.254.244.83)
10:16:37 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds)
10:24:30 × tv quits (~tv@user/tv) (Quit: derp)
10:24:45 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
10:25:03 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Ping timeout: 255 seconds)
10:25:22 tv joins (~tv@user/tv)
10:31:44 __monty__ joins (~toonn@user/toonn)
10:44:59 × agrosant quits (~agrosant@77.49.160.162.dsl.dyn.forthnet.gr) (Ping timeout: 264 seconds)
10:46:31 × ania123 quits (~ania123@146.255.226.194) (Quit: Client closed)
10:46:41 infinity0 joins (~infinity0@pwned.gg)
10:47:45 × igemnace quits (~ian@user/igemnace) (Read error: Connection reset by peer)
10:56:42 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:56:56 × zetef quits (~quassel@95.77.17.251) (Remote host closed the connection)
11:02:02 xff0x joins (~xff0x@2405:6580:b080:900:d512:497a:e4c5:b6e5)
11:04:43 × euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer)
11:05:21 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
11:05:23 igemnace joins (~ian@user/igemnace)
11:05:33 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:09:39 agrosant joins (~agrosant@188.4.1.113.dsl.dyn.forthnet.gr)
11:10:58 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds)
11:12:31 × CiaoSen quits (~Jura@2a05:5800:2d5:5500:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
11:19:21 ania123 joins (~ania123@146.255.226.194)
11:23:01 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:5b0:3f86:90a1:9864)
11:24:12 shryke joins (~shryke@2a00:4b00:13c:cc:b27b:25ff:fe18:efd)
11:25:33 <shryke> Hi guys. I'm looking for a way to get a handle of current terminal on windows, analogous to 'openFile "/dev/tty" ReadMode' on a linux machine.
11:26:30 <danse-nr3> hmm i think you can get handles of standard in, standard out, and everything that appears as a file on an unix filesystem?
11:27:47 <shryke> I tried to get it via 'tHandle <- getConsoleHWND >>= hANDLEtoHandle' using Win32 package, to no avail, it crashes with 'fdType: invalid argument (Bad file descriptor)'
11:27:55 zetef joins (~quassel@95.77.17.251)
11:29:35 <shryke> danse-nr3: that's a valid point, but in my case 'stdin' is a piped ('tail -f file.txt | myApp.exe'), and I want to receive user input (mouse clicks, keypresses, etc)
11:29:59 <danse-nr3> not sure that mouse gets into standard in
11:30:07 <shryke> on windows it does
11:31:01 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:31:06 <danse-nr3> not sure how would that work with pipes, but i do not care much about windows to be honest
11:31:54 × ania123 quits (~ania123@146.255.226.194) (Quit: Client closed)
11:33:33 × jargon quits (~jargon@174.sub-174-205-227.myvzw.com) (Remote host closed the connection)
11:36:09 × puke quits (~puke@user/puke) (Ping timeout: 255 seconds)
11:37:15 puke joins (~puke@user/puke)
11:37:40 jau joins (~user@2a04:4540:7216:6600:554a:6a97:3e4e:760b)
11:38:58 ania123 joins (~ania123@146.255.226.194)
11:39:34 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
11:39:45 × ridcully quits (~ridcully@p508ac420.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
11:50:42 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:55:58 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 255 seconds)
11:58:16 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:5b0:3f86:90a1:9864) (Quit: ubert)
11:58:48 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:5b0:3f86:90a1:9864)
12:08:27 ccapndave joins (~ccapndave@xcpe-62-167-165-159.cgn.res.adslplus.ch)
12:10:37 o-90 joins (~o-90@gateway/tor-sasl/o-90)
12:17:38 ski joins (~ski@ext-1-033.eduroam.chalmers.se)
12:17:39 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
12:19:45 a51 joins (a51@gateway/vpn/protonvpn/a51)
12:31:58 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Ping timeout: 260 seconds)
12:34:19 × ania123 quits (~ania123@146.255.226.194) (Quit: Client closed)
12:39:37 srz joins (~srz@181.228.49.93)
12:48:31 × danse-nr3 quits (~danse@151.37.230.196) (Ping timeout: 256 seconds)
12:48:40 sp1ff joins (~user@c-24-21-45-157.hsd1.wa.comcast.net)
12:50:22 × zetef quits (~quassel@95.77.17.251) (Remote host closed the connection)
12:55:01 × AlexZenon quits (~alzenon@5.139.232.124) (Quit: ;-)
12:55:21 × AlexNoo quits (~AlexNoo@5.139.232.124) (Quit: Leaving)
13:08:41 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
13:09:03 AlexNoo joins (~AlexNoo@5.139.232.124)
13:12:17 AlexZenon joins (~alzenon@5.139.232.124)
13:14:27 CiaoSen joins (~Jura@2a05:5800:2d5:5500:e6b9:7aff:fe80:3d03)
13:21:18 × a51 quits (a51@gateway/vpn/protonvpn/a51) (Quit: WeeChat 4.2.1)
13:23:59 × agrosant quits (~agrosant@188.4.1.113.dsl.dyn.forthnet.gr) (Ping timeout: 264 seconds)
13:31:57 × ccapndave quits (~ccapndave@xcpe-62-167-165-159.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
13:32:54 emmanuelux joins (~emmanuelu@user/emmanuelux)
13:40:16 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
13:45:42 agrosant joins (~agrosant@188.4.25.145.dsl.dyn.forthnet.gr)
13:50:59 × agrosant quits (~agrosant@188.4.25.145.dsl.dyn.forthnet.gr) (Ping timeout: 264 seconds)
13:52:18 jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
13:54:52 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 256 seconds)
13:58:46 mmhat joins (~mmh@p200300f1c70d33d5ee086bfffe095315.dip0.t-ipconnect.de)
14:04:14 tri joins (~tri@ool-18bbef1a.static.optonline.net)
14:07:50 × turlando quits (~turlando@user/turlando) (Quit: No Ping reply in 180 seconds.)
14:09:05 turlando joins (~turlando@user/turlando)
14:09:07 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 272 seconds)
14:13:43 agrosant joins (~agrosant@62.1.251.207.dsl.dyn.forthnet.gr)
14:20:05 danse-nr3 joins (~danse@151.43.238.161)
14:20:23 × danse-nr3 quits (~danse@151.43.238.161) (Remote host closed the connection)
14:20:45 danse-nr3 joins (~danse@151.43.238.161)
14:28:11 × agrosant quits (~agrosant@62.1.251.207.dsl.dyn.forthnet.gr) (Ping timeout: 264 seconds)
14:31:26 tri joins (~tri@ool-18bbef1a.static.optonline.net)
14:38:08 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
14:40:20 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
14:41:06 agrosant joins (~agrosant@188.4.133.100.dsl.dyn.forthnet.gr)
14:44:59 a51 joins (a51@gateway/vpn/protonvpn/a51)
14:45:13 × shapr quits (~user@c-24-218-186-89.hsd1.ma.comcast.net) (Read error: Connection reset by peer)
14:46:47 × agrosant quits (~agrosant@188.4.133.100.dsl.dyn.forthnet.gr) (Ping timeout: 264 seconds)
14:46:54 × srz quits (~srz@181.228.49.93) (Quit: Leaving)
14:47:06 srz joins (~srz@181.228.49.93)
14:48:29 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
14:51:44 AlexNoo_ joins (~AlexNoo@178.34.160.143)
14:54:53 × AlexZenon quits (~alzenon@5.139.232.124) (Ping timeout: 240 seconds)
14:55:30 × AlexNoo quits (~AlexNoo@5.139.232.124) (Ping timeout: 256 seconds)
15:02:45 AlexZenon joins (~alzenon@178.34.160.143)
15:04:00 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
15:06:14 × jespada_ quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 252 seconds)
15:08:33 AlexNoo_ is now known as AlexNoo
15:09:27 shapr joins (~user@c-24-218-186-89.hsd1.ma.comcast.net)
15:09:29 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
15:10:11 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
15:13:27 euphores joins (~SASL_euph@user/euphores)
15:13:41 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:16:31 Lycurgus joins (~georg@user/Lycurgus)
15:16:42 × pastly quits (~pastly@gateway/tor-sasl/pastly) (Ping timeout: 260 seconds)
15:19:25 × ezzieyguywuf quits (~Unknown@user/ezzieyguywuf) (Ping timeout: 272 seconds)
15:21:02 ezzieyguywuf joins (~Unknown@user/ezzieyguywuf)
15:21:03 <tomsmeding> shryke: another windows noob here, but does getConsoleHWND return something sensible? That is to say, not a null pointer or something?
15:22:52 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
15:23:02 <Lycurgus> a window handle
15:23:06 euleritian joins (~euleritia@dynamic-176-006-184-070.176.6.pool.telefonica.de)
15:23:11 <Lycurgus> apparently
15:23:29 pastly joins (~pastly@gateway/tor-sasl/pastly)
15:23:37 <Lycurgus> ala ancient win32 and earlier conventions
15:23:47 <tomsmeding> I meant, does the function return something sensible on their machine
15:24:33 Lycurgus looks at the log
15:24:38 justache is now known as fotastache
15:25:16 <Lycurgus> yeah ok
15:25:49 <Lycurgus> lived this in its day, don't wanna think about it now, but dos users and dosapi are diff level things
15:26:17 <Lycurgus> it aint called windows for nuthin
15:26:54 <Lycurgus> even if the windows system initially was just rebranded presentation manager
15:27:12 <Lycurgus> like sql server was rebranded sybase for MS OS/2
15:27:19 × misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 260 seconds)
15:32:51 × ski quits (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 256 seconds)
15:39:40 ski joins (~ski@ext-1-033.eduroam.chalmers.se)
15:45:04 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
15:52:59 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
15:55:17 × danse-nr3 quits (~danse@151.43.238.161) (Read error: Connection reset by peer)
15:57:01 <Lycurgus> the enwiki article on PM is typical of the kind of latter day distortion you find when you were there
15:57:48 × srz quits (~srz@181.228.49.93) (Remote host closed the connection)
15:58:06 srz joins (~srz@181.228.49.93)
16:04:20 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
16:04:52 tri joins (~tri@ool-18bbef1a.static.optonline.net)
16:07:55 × CiaoSen quits (~Jura@2a05:5800:2d5:5500:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
16:09:37 × ski quits (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 246 seconds)
16:10:58 rosco joins (~rosco@175.136.155.53)
16:11:13 × srz quits (~srz@181.228.49.93) (Ping timeout: 264 seconds)
16:11:35 ski joins (~ski@ext-1-033.eduroam.chalmers.se)
16:13:30 Inst_ joins (~Inst@120.244.192.27)
16:15:09 × rosco quits (~rosco@175.136.155.53) (Client Quit)
16:16:01 × Inst quits (~Inst@120.244.192.27) (Ping timeout: 264 seconds)
16:20:33 × Square2 quits (~Square4@user/square) (Ping timeout: 255 seconds)
16:29:43 Square joins (~Square@user/square)
16:31:42 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:33:27 Educorreia932 joins (~Guest71@193.137.151.132)
16:34:01 × Educorreia932 quits (~Guest71@193.137.151.132) (Client Quit)
16:39:08 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
16:42:14 target_i joins (~target_i@user/target-i/x-6023099)
16:42:29 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 252 seconds)
16:51:37 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:56:43 × igemnace quits (~ian@user/igemnace) (Quit: WeeChat 4.2.1)
17:02:18 × johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
17:05:22 __monty__ joins (~toonn@user/toonn)
17:07:41 tzh joins (~tzh@c-73-164-206-160.hsd1.or.comcast.net)
17:18:11 × mmhat quits (~mmh@p200300f1c70d33d5ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 4.2.1)
17:18:45 × jrm quits (~jrm@user/jrm) (Quit: ciao)
17:20:13 jrm joins (~jrm@user/jrm)
17:21:40 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:22:15 × fotastache quits (~justache@user/justache) (Quit: ZNC 1.8.2 - https://znc.in)
17:22:20 × euleritian quits (~euleritia@dynamic-176-006-184-070.176.6.pool.telefonica.de) (Ping timeout: 260 seconds)
17:23:20 euleritian joins (~euleritia@dynamic-176-006-196-166.176.6.pool.telefonica.de)
17:23:42 johnw joins (~johnw@69.62.242.138)
17:31:06 × euleritian quits (~euleritia@dynamic-176-006-196-166.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
17:31:16 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
17:31:41 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:5b0:3f86:90a1:9864) (Remote host closed the connection)
17:33:33 × rvalue quits (~rvalue@user/rvalue) (Quit: ZNC - https://znc.in)
17:33:47 rvalue joins (~rvalue@user/rvalue)
17:37:26 srz joins (~srz@181.228.49.93)
17:47:09 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
17:49:58 __monty__ joins (~toonn@user/toonn)
17:55:44 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Quit: o/)
18:02:07 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
18:02:20 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
18:02:20 tri joins (~tri@ool-18bbef1a.static.optonline.net)
18:04:08 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:04:15 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:05:52 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
18:06:10 ridcully joins (~ridcully@p508accab.dip0.t-ipconnect.de)
18:08:18 gentauro joins (~gentauro@user/gentauro)
18:10:31 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Client Quit)
18:14:24 oneeyedalien joins (~oneeyedal@user/oneeyedalien)
18:17:39 × Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving)
18:17:39 × srz quits (~srz@181.228.49.93) (Quit: Leaving)
18:25:16 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
18:30:35 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 264 seconds)
18:31:25 × oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving)
18:33:33 Ashkan joins (~Ashkan@147.161.173.72)
18:34:26 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
18:34:58 tri joins (~tri@ool-18bbef1a.static.optonline.net)
18:36:30 × jau quits (~user@2a04:4540:7216:6600:554a:6a97:3e4e:760b) (Remote host closed the connection)
18:38:58 × Square quits (~Square@user/square) (Ping timeout: 264 seconds)
18:39:48 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
18:41:07 euphores joins (~SASL_euph@user/euphores)
18:42:34 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
18:43:31 euleritian joins (~euleritia@dynamic-176-006-196-166.176.6.pool.telefonica.de)
18:44:43 × euleritian quits (~euleritia@dynamic-176-006-196-166.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
18:44:55 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
18:45:00 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:45:08 tri joins (~tri@ool-18bbef1a.static.optonline.net)
18:47:01 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
18:50:41 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
18:52:07 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
18:58:15 × ski quits (~ski@ext-1-033.eduroam.chalmers.se) (Ping timeout: 260 seconds)
18:59:41 ski joins (~ski@ext-1-033.eduroam.chalmers.se)
19:05:31 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
19:06:48 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
19:07:54 misterfish joins (~misterfis@84.53.85.146)
19:07:57 ft joins (~ft@p3e9bce6e.dip0.t-ipconnect.de)
19:14:51 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:15:23 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
19:16:37 × mulk quits (~mulk@p5b2dc4c2.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
19:18:40 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
19:19:16 mulk joins (~mulk@pd95142da.dip0.t-ipconnect.de)
19:21:47 misterfish joins (~misterfis@84.53.85.146)
19:22:15 × _d0t quits (~{-d0t-}@user/-d0t-/x-7915216) (Remote host closed the connection)
19:22:50 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
19:23:05 _d0t joins (~{-d0t-}@user/-d0t-/x-7915216)
19:23:14 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
19:26:18 × mei quits (~mei@user/mei) (Remote host closed the connection)
19:28:44 mei joins (~mei@user/mei)
19:28:50 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Remote host closed the connection)
19:29:07 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
19:38:51 × Ashkan quits (~Ashkan@147.161.173.72) (Quit: Client closed)
19:46:28 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:50:19 notzmv joins (~daniel@user/notzmv)
19:50:35 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
19:52:07 × earthy quits (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Quit: ein reboot macht gut)
19:53:37 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
19:57:47 misterfish joins (~misterfis@84.53.85.146)
19:59:35 arthurvl joins (~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net)
20:06:31 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:14:09 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
20:15:28 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:19:22 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:22:15 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:24:04 PoolloverNathan joins (~u0_a408@108.145.176.193)
20:24:39 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
20:24:47 <PoolloverNathan> kind of Haskell noob here
20:24:48 euleritian joins (~euleritia@dynamic-176-006-196-166.176.6.pool.telefonica.de)
20:25:28 <Hecate> PoolloverNathan: hello kind of Haskell noob
20:25:49 <PoolloverNathan> I'm trying to compile Haskell to Lua; is there a way to have a type that end-users aren't allowed to mess with?
20:26:18 <PoolloverNathan> (representing foreign types exposed to what the Lua is embedded into)
20:28:03 <int-e> Yes. You can export a data type (in this context, probably a newtype) without its constructor, so only the implementing module gets access to the contents.
20:29:05 <PoolloverNathan> and how would I expose Lua operators to user Haskell code?
20:29:30 <int-e> You can still export your own functions that work with the type.
20:29:41 <int-e> Or implement type classes like Num for the type.
20:29:52 <int-e> (if appropriate)
20:30:12 <geekosaur> it's somewhat out of date, but MissingPy is an example of exposing foreign operations to Haskell
20:30:19 <geekosaur> @hackage MissingPy
20:30:19 <lambdabot> https://hackage.haskell.org/package/MissingPy
20:30:31 <PoolloverNathan> Thanks; I'll look into that.
20:30:33 PoolloverNathan parts (~u0_a408@108.145.176.193) ()
20:30:41 <int-e> PoolloverNathan: maybe have a look at https://hackage.haskell.org/package/lua to ...darn
20:30:41 <geekosaur> in that case it's Python
20:30:44 <int-e> too slow
20:30:45 PoolloverNathan joins (~u0_a408@108.145.176.193)
20:30:56 <int-e> PoolloverNathan: maybe have a look at https://hackage.haskell.org/package/lua to see whether that's fit for your purposes
20:30:59 <PoolloverNathan> nope, irssi prints a screenful of content on part
20:31:02 <PoolloverNathan> thanks
20:31:09 <PoolloverNathan> I lost that URL so rejoined
20:31:10 <int-e> (and even if it's not, you can look at the source code)
20:31:57 <PoolloverNathan> That seems to run Lua in Haskell; I want to run Haskell in Lua
20:32:15 <int-e> @hackage MissingPy
20:32:15 <lambdabot> https://hackage.haskell.org/package/MissingPy
20:32:49 <int-e> There may be more lua bindings too, hmm. I don't know, hackage has a lot of packages.
20:35:34 <tomsmeding> it's nice if things are as polymorphic as they'll get
20:35:37 <tomsmeding> foldMapM :: (Applicative f, Monoid m, Foldable t) => (a -> f m) -> t a -> f m
20:35:39 <tomsmeding> foldMapM f = getAp . foldMap (Ap . f)
20:36:20 <tomsmeding> at first I was thinking this would require Monad (of course it doesn't), and I was blocked on whether to name the Monad m or the Monoid m
20:36:26 <PoolloverNathan> I've decided that it'd probably be easiest to compile the STG to Lua (making all the bindings local functions, declaring all the locals at once for letrecs, and reassigning them for fat-arrows); are there any obvious flaws with this?
20:37:14 <tomsmeding> PoolloverNathan: writing an STG backend (that's essentially what you're proposing) is a Project with a capital P
20:37:31 <tomsmeding> there's a ton of primitive operations ('primops') that the STG will use
20:37:33 <int-e> you may be underestimating the effort involved in this... making lazy evaluation work, handling type classes, unboxed types...
20:37:50 <tomsmeding> int-e: there be no type classes on the STG level, and lazy evaluation is built-in
20:37:54 <int-e> try
20:37:54 <tomsmeding> still
20:37:56 <int-e> err
20:37:57 <int-e> true
20:38:27 <tomsmeding> PoolloverNathan: I strongly recommend you look into GHC Haskell's foreign function interface functionality :p
20:38:51 <tomsmeding> you can call C from Haskell and Haskell from C, and Lua is made to interoperate with C so I suspect that should work "relatively smoothly"
20:39:31 <PoolloverNathan> needing to use Lua is already decided by the system; they're using LuaJ (which is Java)
20:39:50 <tomsmeding> can LuaJ interoperate with C?
20:40:08 × euleritian quits (~euleritia@dynamic-176-006-196-166.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
20:40:10 <PoolloverNathan> I don't have any control of the Java side
20:40:25 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
20:40:29 <tomsmeding> will it be possible to have anything that's not Lua code in the system?
20:40:30 <c_wraith> just to pile on a bit: the set of primops isn't even finite. libraries can add their own!
20:40:41 <int-e> The bindings I'm looking at have support for Haskell-implemented Lua functions (perhaps not as abstract as I'd like; they are pretty low-level): https://hackage.haskell.org/package/lua-2.3.2/docs/Lua-Call.html https://hackage.haskell.org/package/lua-2.3.2/docs/Lua-Call.html
20:40:45 <PoolloverNathan> there's Lua and PNGs. that's about it
20:40:55 <int-e> grr, the second link was supposed to be https://hackage.haskell.org/package/hslua-core-2.3.2/docs/HsLua-Core-Closures.html
20:41:07 <tomsmeding> PoolloverNathan: so you cannot have a C library that you use from Lua, for example?
20:41:15 <PoolloverNathan> I cannot
20:41:17 <tomsmeding> (you can make a Haskell program look like a C library)
20:41:19 <tomsmeding> I see
20:41:35 <tomsmeding> then the only thing that's left is indeed an STG backend
20:41:40 <tomsmeding> but expect to be busy for months
20:41:44 <tomsmeding> and I'm not exaggerating there
20:41:45 <PoolloverNathan> unless someone finds another ACE in my target project of course
20:41:56 <int-e> Oh those are essentially the same package... why are there two packages by the same authors but with different names for stuff...
20:41:56 <PoolloverNathan> which is unlikely
20:41:57 <tomsmeding> and I suggest not taking Haskell :p
20:42:20 <tomsmeding> even idris2 might be easier (?)
20:42:30 <tomsmeding> purescript compiles to JS, that might also be easier to adapt
20:42:34 <c_wraith> sounds like the best option for using Haskell is writing something like the atom library targeting lua
20:43:05 <c_wraith> (atom is an embedded DSL that generates C code)
20:43:53 <tomsmeding> (why does _neither_ the 'atom' package description, _nor_ the module header documentation of the root module, mention the word "C")
20:44:07 <tomsmeding> that's the _one_ thing I'm interested in if one says "EDSL"
20:44:23 <c_wraith> it's much easier to design a restricted DSL that uses only features supported in the target language than compile all of Haskell to it.
20:45:16 <tomsmeding> PoolloverNathan: why haskell?
20:49:15 <c_wraith> if you just want a different language that compiles to Lua, how about an existing project like Fennel?
20:49:26 <PoolloverNathan> mainly because I like Haskell's features
20:49:44 <PoolloverNathan> and someone else is doing WASM support
20:50:51 <PoolloverNathan> remembered wrong — they're doing WASM→Java, not WASM→Lua
20:51:08 tomsmeding wonders if this is for minecraft
20:51:14 <tomsmeding> computercraft, specifically
20:51:17 <PoolloverNathan> close
20:51:25 <PoolloverNathan> it is minecraft-related
20:51:40 <PoolloverNathan> https://modrinth.com/mod/figura
20:51:45 <tomsmeding> a prerelease version of ghc has a wasm backend
20:52:21 <tomsmeding> how many weeks do you have for this project
20:52:35 <PoolloverNathan> no time scale in particular
20:52:41 <c_wraith> the fact is, liking Haskell is not always a sufficient reason to use it. I like Haskell more than the language used at my day job for basically every possible *personal* reason, but the company has other concerns.
20:52:51 <EvanR> I would log back in the minecraft if someone made a haskell interpreter in it
20:52:53 zetef joins (~quassel@5.2.182.98)
20:53:10 <EvanR> into*
20:53:18 <tomsmeding> The Minecraft
20:53:27 <cheater> c_wraith: then the company is wrong
20:53:28 <EvanR> unfortunately no one can be told what the minecraft is
20:53:33 <edwardk> they at least use lenses
20:53:37 <terrorjack> pick idris2 or purescript, if you want to build a compiler backend that runs on whatever thing already garbage collected
20:53:38 <EvanR> lol
20:53:39 <cheater> c_wraith: the company needs to be reeducated
20:53:42 <terrorjack> sincere advice from me
20:54:05 <tomsmeding> PoolloverNathan: here, second person saying "pick idris2 or purescript" :p
20:54:23 <terrorjack> you don't want to spend the first many few weeks getting lost in ghc internals and ask questions that not a lot of people will bother to answer
20:54:25 <tomsmeding> even that option will be multiple man-weeks of work
20:54:25 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
20:54:27 <edwardk> if you want to get Haskell running well inside minecraft, you could always pick up my work on cadenza and finish an STG interpreter in that style
20:54:39 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
20:54:50 <edwardk> tricking truffle/graal to run functional languages
20:55:08 <edwardk> but you are looking at more than a couple person-weeks there ;)
20:55:30 <c_wraith> I still say the only reasonable path for the amount of time you have is a heavily restricted DSL
20:55:46 <tomsmeding> c_wraith: they did not specify the amount of time they had
20:56:07 <tomsmeding> (though it's a good assumption that "months" is too much lol)
20:56:17 <c_wraith> I'm assuming it's less than "forever"
20:56:20 <tomsmeding> :p
20:57:01 <PoolloverNathan> my maximum amount of time is likely /finite/
20:59:02 <EvanR> maybe but according to the documentary deep space nine, it's not linear
20:59:29 <c_wraith> like, if this is a thing I wanted to churn out in a month or less, it would be the DSL route where you decide on some nice properties and let the type system ensure that they are enforced.
21:00:19 <int-e> EvanR: surely there's an alternate universe in which time is linear
21:00:29 <PoolloverNathan> also, is there a type of lens that requires IO to read and write?
21:01:43 catties is now known as Catty
21:02:15 <c_wraith> there are some libraries that work towards that, but they sacrifice a lot to work that way.
21:03:09 <c_wraith> not that I'm against that, being the author of a different not-actually-lens-but-compatible-with-them library. but what you can do gets really narrow.
21:03:40 <PoolloverNathan> so providing get/set/upd functions would be the best way?
21:04:05 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds)
21:04:22 <c_wraith> maybe one of the existing libraries does the job you need.
21:05:06 <EvanR> imagine if the Data.Map library only had get, set, update ;_;
21:05:11 <EvanR> instead of a rich api
21:05:13 Maxdamantus joins (~Maxdamant@user/maxdamantus)
21:05:50 <EvanR> a lua table is basically Map Lua Lua
21:07:23 × zetef quits (~quassel@5.2.182.98) (Remote host closed the connection)
21:09:11 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
21:09:27 <c_wraith> hah. mutable-lens actually does something a lot like what I did. take advantage of the functor-polymorphism in the van Laarhoven representation to create things that aren't lenses, but can be composed with them.
21:10:47 <PoolloverNathan> I'll look into that
21:11:03 <PoolloverNathan> !hackage mutable-lens
21:11:10 <PoolloverNathan> +hackage mutable-lens
21:11:14 <tomsmeding> @hackage mutable-lens
21:11:14 <lambdabot> https://hackage.haskell.org/package/mutable-lens
21:11:18 <PoolloverNathan> oh, @
21:16:20 bpalmer joins (~user@user/bpalmer)
21:23:30 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
21:24:03 tri joins (~tri@ool-18bbef1a.static.optonline.net)
21:27:59 rainbyte joins (~rainbyte@186.22.19.215)
21:30:10 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Remote host closed the connection)
21:30:41 × misterfish quits (~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
21:32:52 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
21:33:35 byorgey joins (~byorgey@155.138.238.211)
21:36:15 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
21:38:39 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 268 seconds)
21:43:07 danza joins (~francesco@151.57.252.83)
21:44:59 tri joins (~tri@ool-18bbef1a.static.optonline.net)
21:49:30 × tri quits (~tri@ool-18bbef1a.static.optonline.net) (Ping timeout: 255 seconds)
21:57:51 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:06:31 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:08:56 × michalz quits (~michalz@185.246.207.203) (Quit: ZNC 1.8.2 - https://znc.in)
22:15:15 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:18:40 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
22:23:05 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
22:24:09 × danza quits (~francesco@151.57.252.83) (Ping timeout: 255 seconds)
22:31:22 <shapr> @quote
22:31:22 <lambdabot> BrianWKernighan says: /* lasciate ogne speranza, voi ch'intrate. */
22:31:23 <shapr> > 1
22:31:23 shapr shrugs
22:31:25 <lambdabot> 1
22:33:30 <Rembane> Seems legit
22:36:58 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:41:24 <PoolloverNathan> Have there been any proposals to make join a member of Monad? Some monads I write feel best-defined by having join instead of >>=, and having to write (>>=) a f = myJoin $ fmap f a is mildly annoying.
22:41:30 <c_wraith> yes.
22:41:48 <c_wraith> Last I heard, it ran into an issue with the role system
22:41:57 <c_wraith> and I guess no progress has been made?
22:42:14 <erisco> After learning Kubernetes, I like it for its ability to compose / configure various resource types, and how it can be extended with more resource types. Even on a single node, this universal language is useful. However, it misses on most of the trappings we enjoy in FP. Any Haskellesque solutions out there?
22:43:11 <geekosaur> I think propellor is the closest we get? and that's not very
22:43:38 <c_wraith> PoolloverNathan: https://ryanglscott.github.io/2018/03/04/how-quantifiedconstraints-can-let-us-put-join-back-in-monad/ I think this approach stalled out because QuantifiedConstraints is still underpowered, too.
22:43:44 <erisco> geekosaur, thanks
22:44:30 <erisco> Just considering the problem of persistent storage with backup / replication and restore, this already has a lot of complexity to it. I wouldn't mind more specialised tools for different domains.
22:44:58 danza joins (~francesco@151.57.252.83)
22:47:19 × phma quits (phma@2001:5b0:211c:1d68:52ce:65f2:95a9:903c) (Read error: Connection reset by peer)
22:48:07 phma joins (phma@2001:5b0:2143:a3e8:4abf:4a4a:8deb:49a3)
22:48:21 <erisco> Maybe I need to kickstart functional IoC :P
22:49:20 × danza quits (~francesco@151.57.252.83) (Ping timeout: 252 seconds)
22:49:21 Sgeo joins (~Sgeo@user/sgeo)
22:58:39 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:00:50 jmdaemon joins (~jmdaemon@user/jmdaemon)
23:07:28 × phma quits (phma@2001:5b0:2143:a3e8:4abf:4a4a:8deb:49a3) (Read error: Connection reset by peer)
23:07:55 phma joins (~phma@2001:5b0:2143:a3e8:4abf:4a4a:8deb:49a3)
23:10:06 <haskellbridge> <s​m> yeah, how about a layer above propellor ?
23:10:33 <haskellbridge> <s​m> or would you rather have nix involved
23:11:38 son0p joins (~ff@152.203.102.157)
23:13:01 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
23:16:57 × acidjnk_new3 quits (~acidjnk@p200300d6e737e788d91e6e3566650313.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
23:33:27 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
23:47:24 × germ quits (~quassel@user/mipsel3) (Ping timeout: 255 seconds)
23:49:50 germ joins (~quassel@50.39.179.7)

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