Home liberachat/#haskell: Logs Calendar

Logs on 2023-12-27 (liberachat/#haskell)

00:04:48 × TonyStone quits (~TonyStone@074-076-057-186.res.spectrum.com) (Quit: Leaving)
00:09:03 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 260 seconds)
00:11:49 × myclm_ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Ping timeout: 256 seconds)
00:14:00 × arkoinad quits (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
00:14:06 × waldo quits (~waldo@user/waldo) (Ping timeout: 245 seconds)
00:14:46 × acidjnk quits (~acidjnk@p200300d6e72b9309f56e7f62ba59dc38.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
00:18:22 rvalue joins (~rvalue@user/rvalue)
00:22:13 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
00:27:07 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
00:39:53 × sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 252 seconds)
00:55:11 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
01:01:18 Axman6 joins (~Axman6@user/axman6)
01:16:33 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
01:16:47 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 264 seconds)
01:17:12 × ft quits (~ft@mue-88-130-105-195.dsl.tropolys.de) (Ping timeout: 268 seconds)
01:17:53 × Tuplanolla quits (~Tuplanoll@91-159-69-171.elisa-laajakaista.fi) (Quit: Leaving.)
01:17:56 Lord_of_Life_ is now known as Lord_of_Life
01:18:23 × tessier quits (~treed@ip72-197-145-89.sd.sd.cox.net) (Ping timeout: 252 seconds)
01:18:38 ft joins (~ft@mue-88-130-106-233.dsl.tropolys.de)
01:20:10 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
01:20:48 × abrantesasf quits (~abrantesa@179.217.48.72) (Remote host closed the connection)
01:20:59 × chomwitt quits (~chomwitt@ppp-94-67-236-252.home.otenet.gr) (Ping timeout: 264 seconds)
01:25:16 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
01:29:56 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
01:37:26 xdminsy joins (~xdminsy@117.147.71.169)
01:42:20 erina joins (~erina@178.157.56.217.16clouds.com)
01:50:02 × erina quits (~erina@178.157.56.217.16clouds.com) (Remote host closed the connection)
01:50:22 erina joins (~erina@2001:da8:d800:e52b:5332:9a02:5634:a173)
01:50:36 × xdminsy quits (~xdminsy@117.147.71.169) (Read error: Connection reset by peer)
01:51:08 xdminsy joins (~xdminsy@117.147.71.169)
02:02:27 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
02:03:23 × pointlessslippe1 quits (~pointless@212.82.82.3) (Ping timeout: 260 seconds)
02:06:08 pointlessslippe1 joins (~pointless@212.82.82.3)
02:10:47 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
02:33:00 _xor joins (~xor@72.49.195.41)
02:34:54 × xff0x quits (~xff0x@2405:6580:b080:900:f37c:caaf:db27:6fe4) (Ping timeout: 268 seconds)
02:51:19 rosco joins (~rosco@113.166.93.113)
03:03:37 × tv quits (~tv@user/tv) (Ping timeout: 255 seconds)
03:06:48 × rosco quits (~rosco@113.166.93.113) (Quit: Gotta go.)
03:15:26 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
03:17:06 tv joins (~tv@user/tv)
03:23:59 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:30:07 × euleritian quits (~euleritia@dynamic-046-114-204-162.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
03:30:19 euleritian joins (~euleritia@p200300d40f2c2a003992c024416f4d48.dip0.t-ipconnect.de)
03:30:26 Xyloes joins (~wyx@2400:dd01:103a:1012:d681:d7ff:fedb:298d)
03:32:04 × td_ quits (~td@i53870912.versanet.de) (Ping timeout: 276 seconds)
03:33:27 td_ joins (~td@i53870914.versanet.de)
03:34:13 × Xyloes quits (~wyx@2400:dd01:103a:1012:d681:d7ff:fedb:298d) (Read error: Connection reset by peer)
03:34:36 Xyloes joins (~wyx@2400:dd01:103a:1012:d681:d7ff:fedb:298d)
03:36:09 × Xyloes quits (~wyx@2400:dd01:103a:1012:d681:d7ff:fedb:298d) (Client Quit)
03:36:25 Xyloes joins (~wyx@2400:dd01:103a:1012:d681:d7ff:fedb:298d)
03:55:28 × euleritian quits (~euleritia@p200300d40f2c2a003992c024416f4d48.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
03:56:17 euleritian joins (~euleritia@p200300d40f2c2a00f0cf020fce514be2.dip0.t-ipconnect.de)
03:58:01 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:58:01 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:58:01 finn_elija is now known as FinnElija
04:07:33 × rekahsoft quits (~rekahsoft@67.70.201.226) (Ping timeout: 256 seconds)
04:07:57 citrus_maxima joins (~citrus_ma@024-102-111-089.res.spectrum.com)
04:09:53 × citrus_maxima quits (~citrus_ma@024-102-111-089.res.spectrum.com) (Client Quit)
04:11:36 × waleee quits (~waleee@h-176-10-144-38.na.cust.bahnhof.se) (Ping timeout: 245 seconds)
04:18:40 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
04:21:01 aforemny joins (~aforemny@2001:9e8:6cf9:b600:ba7b:aec4:48c0:e281)
04:21:59 × aforemny_ quits (~aforemny@i59F516F3.versanet.de) (Ping timeout: 260 seconds)
04:37:07 trev joins (~trev@user/trev)
05:07:52 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
05:08:11 EvanR joins (~EvanR@user/evanr)
05:22:02 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 252 seconds)
05:23:16 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:25:50 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
05:26:50 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:37:53 × johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
05:44:06 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
05:46:13 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
06:01:59 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
06:05:13 phu joins (~user@76.202.115.164)
06:05:19 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
06:08:09 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:18:02 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
06:19:15 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:27:24 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 256 seconds)
06:28:22 × tv quits (~tv@user/tv) (Ping timeout: 255 seconds)
06:34:02 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
06:41:54 tv joins (~tv@user/tv)
06:52:09 johnw joins (~johnw@69.62.242.138)
07:03:40 michalz joins (~michalz@185.246.207.221)
07:04:35 × michalz quits (~michalz@185.246.207.221) (Client Quit)
07:07:05 azimut joins (~azimut@gateway/tor-sasl/azimut)
07:07:20 michalz joins (~michalz@185.246.207.221)
07:08:35 × not_reserved quits (~not_reser@154.16.157.99) (Quit: Client closed)
07:16:55 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
07:18:05 Guest92 joins (~Guest57@pool-100-7-24-183.rcmdva.fios.verizon.net)
07:21:26 × Guest92 quits (~Guest57@pool-100-7-24-183.rcmdva.fios.verizon.net) (Client Quit)
07:23:55 <albet70> except aeson, is there other lib for json?
07:24:52 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
07:25:41 × euleritian quits (~euleritia@p200300d40f2c2a00f0cf020fce514be2.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
07:25:50 euleritian joins (~euleritia@dynamic-046-114-204-038.46.114.pool.telefonica.de)
07:26:05 azimut joins (~azimut@gateway/tor-sasl/azimut)
07:29:34 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
07:47:29 myclm_ joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
07:49:42 × myclm_ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Remote host closed the connection)
07:49:59 myclm_ joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
08:01:46 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
08:01:54 notzmv joins (~zmv@user/notzmv)
08:02:24 arkoinad joins (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net)
08:03:07 × myclm_ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Remote host closed the connection)
08:03:29 myclm_ joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
08:04:00 × euleritian quits (~euleritia@dynamic-046-114-204-038.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
08:04:19 euleritian joins (~euleritia@p200300d40f2c2a008b4c319d05b882f3.dip0.t-ipconnect.de)
08:04:30 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
08:05:59 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 264 seconds)
08:07:52 takuan joins (~takuan@178-116-218-225.access.telenet.be)
08:13:40 × myclm_ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Ping timeout: 255 seconds)
08:15:29 chomwitt joins (~chomwitt@2a02:587:7a1b:bb00:1ac0:4dff:fedb:a3f1)
08:18:09 × arkoinad quits (~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
08:21:43 × Me-me quits (~me-me@2602:ff16:3:0:1:dc:beef:d00d) (Changing host)
08:21:43 Me-me joins (~me-me@user/me-me)
08:24:56 × euleritian quits (~euleritia@p200300d40f2c2a008b4c319d05b882f3.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
08:25:14 euleritian joins (~euleritia@dynamic-046-114-204-038.46.114.pool.telefonica.de)
08:28:08 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
08:31:45 <Axman6> albet70: yes, quite a few. waargonaut comes to mind, and the haskellworks optimised parsers
08:33:27 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
08:37:17 <Axman6> searching hackage for json returns a lot of results (some of them are elevant but it's a pretty common term)
08:37:44 acidjnk joins (~acidjnk@p200300d6e72b93690592ad695073e43e.dip0.t-ipconnect.de)
08:38:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
08:42:57 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
08:54:15 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
09:01:51 × mikess quits (~sam@user/mikess) (Ping timeout: 268 seconds)
09:11:17 × chomwitt quits (~chomwitt@2a02:587:7a1b:bb00:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds)
09:11:25 × peterbecich quits (~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
09:16:31 × euleritian quits (~euleritia@dynamic-046-114-204-038.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
09:16:51 euleritian joins (~euleritia@p200300d40f2c2a00d0e847f4538e9b72.dip0.t-ipconnect.de)
09:25:50 alexherbo2 joins (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr)
09:31:04 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
09:34:01 <erina> There's parsecs for json too, as far as I know.
09:34:58 × phma quits (~phma@host-67-44-208-117.hnremote.net) (Read error: Connection reset by peer)
09:36:01 phma joins (phma@2001:5b0:210d:e5c8:5b6c:6fdf:a5b6:3ad0)
09:38:29 × tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
09:39:16 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
09:42:44 Tuplanolla joins (~Tuplanoll@91-159-69-171.elisa-laajakaista.fi)
09:43:10 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
09:50:23 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:d8e3:d1d3:e447:ed54) (Remote host closed the connection)
09:56:45 chele joins (~chele@user/chele)
10:03:03 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
10:03:18 mokee joins (~mokee@37.228.215.150)
10:05:31 danse-nr3 joins (~danse@151.57.208.222)
10:07:42 × gawen quits (~gawen@user/gawen) (Quit: cya)
10:09:03 gawen joins (~gawen@user/gawen)
10:11:11 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 245 seconds)
10:15:38 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:19:12 sawilagar joins (~sawilagar@user/sawilagar)
10:23:16 × euleritian quits (~euleritia@p200300d40f2c2a00d0e847f4538e9b72.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
10:23:52 euleritian joins (~euleritia@dynamic-046-114-204-038.46.114.pool.telefonica.de)
10:24:45 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
10:26:11 × euleritian quits (~euleritia@dynamic-046-114-204-038.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
10:26:51 euleritian joins (~euleritia@p200300d40f2c2a0081561e43e466a6d0.dip0.t-ipconnect.de)
10:28:00 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923)
10:28:43 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 276 seconds)
10:39:47 <albet70> what's the differnet between Word16 and Int?
10:42:25 <int-e> this question suggests that you think they are the same... how do you think they are the same?
10:42:34 drdo8 joins (~drdo@bl14-14-49.dsl.telepac.pt)
10:42:45 <danse-nr3> you mean between Word and Int? Word16 is 16 bits, while Word has the same size of Int https://hackage.haskell.org/package/base-4.16.3.0/docs/Data-Word.html#t:Word
10:43:15 × drdo quits (~drdo@bl14-14-49.dsl.telepac.pt) (Ping timeout: 260 seconds)
10:43:15 drdo8 is now known as drdo
10:43:17 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 240 seconds)
10:45:38 <albet70> how I can change Int to Word16?
10:46:10 <danse-nr3> @hoogle Int -> Word16
10:46:10 <lambdabot> Sound.OSC.Coding.Convert int_to_word16 :: Int -> Word16
10:46:10 <lambdabot> HaskellWorks.Data.Bits.Broadword.Word16 h :: Int -> Word16
10:46:10 <lambdabot> HaskellWorks.Data.Bits.Broadword.Word16 l :: Int -> Word16
10:46:21 <int-e> `fromIntegral` with the caveat that it's a lossy function
10:47:03 <danse-nr3> % :t fromInt
10:47:03 <yahb2> <interactive>:1:1: error: Variable not in scope: fromInt
10:47:09 <danse-nr3> % :t fromIntegral
10:47:09 <yahb2> fromIntegral :: (Integral a, Num b) => a -> b
10:47:12 <danse-nr3> % :t fromInteger
10:47:12 <yahb2> fromInteger :: Num a => Integer -> a
10:47:40 <int-e> > let x, y :: Int; x = 10; y = 1000000 in (fromIntegral x :: Word16, fromIntegral y :: Word16)
10:47:41 <lambdabot> (10,16960)
10:51:39 <albet70> @hoogle PortNumber
10:51:39 <lambdabot> Network.Socket data PortNumber
10:51:39 <lambdabot> Database.Redis PortNumber :: PortNumber -> PortID
10:51:39 <lambdabot> Network.BSD data PortNumber
10:52:13 <albet70> how to change Int to PortNumber
10:52:51 <erina> @hoogle Int -> PortNumber
10:52:52 <lambdabot> Test.DejaFu.SCT.Internal toId :: Coercible Id a => Int -> a
10:52:52 <lambdabot> Math.NumberTheory.Recurrences.Linear fibonacci :: Num a => Int -> a
10:52:52 <lambdabot> Math.NumberTheory.Recurrences.Linear lucas :: Num a => Int -> a
10:53:36 <danse-nr3> oh gosh, the doc for this stuff ought to be quite poor. Depends on which PortNumber from which lib i guess
10:54:01 <erina> I guess there exists some kind of trivial data constructor or something
10:54:08 <albet70> danse-nr3 , Network Socket
10:54:16 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
10:54:59 <danse-nr3> it's an instance of Integral https://hackage.haskell.org/package/network-3.1.4.0/docs/Network-Socket.html#t:PortNumber
10:55:30 <erina> You can read 1 :: PortNumber, I guess?
10:55:53 <danse-nr3> are you talking about a literal albet70 ?
10:55:55 <erina> > read 1 :: Network.Socket.PortNumber
10:55:56 <lambdabot> error:
10:55:56 <lambdabot> Not in scope: type constructor or class ‘Network.Socket.PortNumber’
10:55:56 <lambdabot> No module named ‘Network.Socket’ is imported.
10:57:39 <erina> Oh, this doesn't work, probably have to (read . show 1) :: PortNumber ......
10:58:11 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
10:58:54 <albet70> :t read
10:58:54 <lambdabot> Read a => String -> a
10:59:09 <albet70> you see, read String, you can not read Int
10:59:15 <danse-nr3> would you mind answering my question albet70 ?
10:59:40 <int-e> erina: There's a `Num` instance for PortNumber, so fromIntegral will work
10:59:50 <albet70> danse-nr3 , sorry I don't understand what is a "literal"?
11:00:04 <albet70> a literal PortNumber?
11:00:06 <danse-nr3> https://en.wikipedia.org/wiki/Literal_(computer_programming)
11:00:13 <int-e> (and that's probably the only reason for that instance... I doubt anyone will add or multiply port numbers)
11:00:36 <erina> int-r make sense, just add a explicit type notation.
11:03:04 <albet70> danse-nr3 , do you mean a literal PortNumber?
11:03:41 <albet70> Network.Socket should just use Int, why wrapped it ?
11:03:53 <albet70> newtype PortNumber = PortNum Word16
11:04:01 <danse-nr3> as explained in the page above, a literal is something you have in your code such as 1, "string", 'c', etcetera. As opposed to a variable with a type
11:04:48 <albet70> I use aeson to read a json file, in that json file, it's literal number like 3
11:04:54 <albet70> not "3"
11:04:59 <int-e> :t 1
11:05:00 <lambdabot> Num p => p
11:05:17 <int-e> `p` can be any instance of Num, including PortNumber
11:05:44 <albet70> but I use aeson to 'decode' it as PortNumber, it got failed
11:05:45 xff0x joins (~xff0x@2405:6580:b080:900:9305:2152:242d:e2e3)
11:06:26 <int-e> because aeson has its own type classes (FromJSON?)
11:06:50 <albet70> * No instance for (FromJSON PortNumber) arising from a use of `.:
11:06:54 × danse-nr3 quits (~danse@151.57.208.222) (Read error: Connection reset by peer)
11:07:02 danse-nr3 joins (~danse@151.43.217.87)
11:07:17 <danse-nr3> therefore you have a variable, not a literal. What int-e said. Int is an Integral, PortNumber is a Num, therefore you can use:
11:07:20 <danse-nr3> % :t fromIntegral
11:07:20 <yahb2> fromIntegral :: (Integral a, Num b) => a -> b
11:07:29 <int-e> So you have to either decode to another type that is supported by aeson or provide a FromJSON instance for PortNumber yourself. Or maybe there is an instance for that on hackage already?
11:08:12 <albet70> I don't understand, that port is just number from 0~65543, why just use Int?
11:08:21 <albet70> why not
11:09:00 × alexherbo2 quits (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
11:09:02 <danse-nr3> a design choice, makes what you are handling clearer
11:09:30 <int-e> itym 65535
11:10:22 <hololeap> will this be fair for multiple instances of loopWithTMVar working with the same TMVar? https://bpa.st/U4BA
11:10:25 <albet70> I think it's meaningless wrapped
11:10:29 <albet70> more confused
11:11:57 <int-e> it reduces the potential of mixing up parameters
11:12:36 <int-e> it can also abstract from the network/host byte order confusion
11:13:10 <int-e> (I don't know whether network does that, but the byte order conversion could be done by fromInteger)
11:13:13 <hololeap> will multiple loopWithTMVar s each get a turn when running together using the same TMVar, round-robin style, or will there be no way to determine which Async gets control of the TMVar?
11:14:17 <int-e> albet70: It is a valid design choice. It's more fruitful to ask how to deal with it, and `fromIntegral` is, by and large, the answer to that.
11:14:41 <int-e> It's Haskell, people generally *like* types here.
11:15:16 × rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
11:16:00 rembo10 joins (~rembo10@main.remulis.com)
11:17:25 <hololeap> ok, I found this:
11:17:28 <hololeap> > Note that TSem has no concept of fairness, and there is no guarantee that threads blocked in waitTSem will be unblocked in the same order; in fact they will all be unblocked at the same time and will fight over the TSem. Hence TSem is not suitable if you expect there to be a high number of threads contending for the resource. However, like other STM abstractions, TSem is composable.
11:17:29 <lambdabot> <hint>:1:31: error: parse error on input ‘of’
11:18:43 <hololeap> I assume that same idea goes for all STM data types
11:19:52 × Xyloes quits (~wyx@2400:dd01:103a:1012:d681:d7ff:fedb:298d) (Remote host closed the connection)
11:20:03 <erina> Is there a way to map a function over the prefix of a list?
11:20:25 × euleritian quits (~euleritia@p200300d40f2c2a0081561e43e466a6d0.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
11:21:03 <int-e> hmm "the" prefix?
11:21:59 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
11:22:26 <erina> int-e, I mean all prefixes......
11:22:36 euleritian joins (~euleritia@82.113.106.121)
11:22:38 <int-e> :t inits
11:22:39 <lambdabot> [a] -> [[a]]
11:22:55 <erina> oh, that's really nice
11:23:00 × euleritian quits (~euleritia@82.113.106.121) (Read error: Connection reset by peer)
11:23:10 <int-e> (beware that constructing the result is quadratic in the length of the list)
11:23:13 euleritian joins (~euleritia@p200300d40f2c2a00d025ef9bbb5860c3.dip0.t-ipconnect.de)
11:23:18 Xyloes joins (~wyx@2400:dd01:103a:1012:d681:d7ff:fedb:298d)
11:23:35 <int-e> > scanl (flip (:)) [] [1..4]
11:23:36 <lambdabot> [[],[1],[2,1],[3,2,1],[4,3,2,1]]
11:23:47 <int-e> this isn't because it shares a lot, but the prefixes are reversed
11:24:09 <int-e> `scanl` *may* be the answer to your question, depending on what you want to do with the prefixes.
11:24:19 <int-e> scanl (+) 0 computes prefix sums, for example
11:25:12 <erina> hmm, scanl works like foldl but saving all prefix results, including the initializer
11:25:27 <erina> > inits [1,2,3,4]
11:25:29 <lambdabot> [[],[1],[1,2],[1,2,3],[1,2,3,4]]
11:26:19 <erina> In my case, the order of the prefix matter, so I'll probably have to use map and inits.
11:26:24 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
11:28:49 <int-e> Sure, it just happens that `scanl` covers some useful special cases.
11:30:52 <erina> I'll see if I can implement it to avoid inits, since inits is, after all, slow. In my case, I guess it will not be too hard.
11:31:13 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
11:32:29 <danse-nr3> you will have to append something to a list anyways, which is where the slowness comes from i guess
11:35:12 <danse-nr3> unless you mean to process a reversed prefix and use scanl :P
11:35:44 <petrichor> tangentially aoc-related question: i have a Main.hs that looks like this and it feels like there should be a neater way of doing it https://pb.envs.net/?c176346834693d0b#DXD9vHsR9XTuQKBJbCnLetx4Vccdg2YxchtxgYeGRinB
11:35:55 <petrichor> or more idiomatic
11:37:26 <erina> danse-nr3, I'm accumulating a list, so it will be more like foldl. So I believe I can get rid of inits
11:37:31 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 255 seconds)
11:38:16 <erina> petrichor, adventofcode?
11:38:46 <erina> I'm just writing 1.hs 2.hs 3.hs etc. in separate folders.
11:39:00 <erina> * in a folder
11:39:49 <erina> For multiple parts I rename main to main1 and main2
11:41:02 <erina> int-e, Your suggestions made sense. scanl works much better in my case :)
11:42:30 <int-e> petrichor: Other than resorting to template haskell I don't think there's much you can do there. You're not really repeating yourself... you're naming which modules you import, and you're naming the functions that have to be invoked, and you're mapping names to numbers. The repetition is only apparent when you do string processing at the lexical level.
11:42:45 <int-e> (and template Haskell is not idiomatic)
11:42:49 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 276 seconds)
11:43:00 <int-e> erina: cool
11:43:33 int-e used a folder each day, 1.hs for part 1, 2.hs for part 2, saving 1.hs to 2.hs in the middle
11:44:10 <erina> haskell is not like lisp, where you can use (intern) to convert strings to symbols.
11:44:32 <erina> Intepreted languages have much advantage in this part compared to compiled ones.
11:44:56 <erina> Since in the worst case they can just generate a string and run eval on it.
11:45:23 × eguo^ quits (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
11:45:35 × dsrt^ quits (~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
11:45:50 <danse-nr3> haskell is not (not interpreted), since it can be interpreted
11:46:40 <petrichor> fair enough! :)
11:52:05 × euleritian quits (~euleritia@p200300d40f2c2a00d025ef9bbb5860c3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
11:52:43 euleritian joins (~euleritia@82.113.106.121)
11:52:55 <erina> @pl \a b -> map (fun b) a
11:52:55 <lambdabot> flip (map . fun)
11:55:58 <danse-nr3> what does pl stand for, by the way?
11:56:51 <int-e> @help pl
11:56:51 <lambdabot> pointless <expr>. Play with pointfree code.
11:57:06 <danse-nr3> =D
11:57:45 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
12:00:14 rvalue joins (~rvalue@user/rvalue)
12:00:48 misterfish joins (~misterfis@84.53.85.146)
12:02:24 <erina> @pl mtrans t s = let a = mapMaybe (`trans` s) t in if null a then s else head a
12:02:24 <lambdabot> mtrans = ap ((`ap` head) . flip (if' . null)) . flip (mapMaybe . flip trans)
12:02:53 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
12:05:07 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
12:05:49 × danse-nr3 quits (~danse@151.43.217.87) (Ping timeout: 256 seconds)
12:14:14 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:16:43 __monty__ joins (~toonn@user/toonn)
12:18:06 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
12:19:52 × son0p quits (~ff@181.136.122.143) (Ping timeout: 276 seconds)
12:22:04 lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
12:29:50 × euleritian quits (~euleritia@82.113.106.121) (Ping timeout: 260 seconds)
12:31:08 Lycurgus joins (~georg@user/Lycurgus)
12:43:08 danse-nr3 joins (~danse@151.43.217.87)
12:47:33 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:50:25 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
12:54:17 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
12:57:46 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
13:01:01 <haskellbridge> 15<J​ade> I'm having an issue where running `cabal bench` hangs forever when I have any quickcheck tests with `tasty-quickcheck` and even after killing it with `^C` the process is still running and consumes tons of resources. I then have to manually `SIGKILL` it
13:04:10 <haskellbridge> 15<J​ade> one thing that's especially weird is that it doesn't seem to OOM but only consumes 100% of my cpu
13:06:13 <Axman6> have you tried running it with verbose output to see what it'
13:06:19 <Axman6> it's doing?*
13:06:51 <int-e> Hmm does that situation improve if you compile with -fno-omit-yields ?
13:07:33 <int-e> (It does sound like a non-allocating loop and -fno-omit-yields is specifically about making those (more) interruptible.)
13:08:07 <int-e> (But of course this isn't conclusive in any way.)
13:09:17 alexherbo2 joins (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr)
13:13:44 × alexherbo2 quits (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds)
13:24:45 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:26:30 <haskellbridge> 15<J​ade> that changes a little. It still hangs but it neither consumes all my cpu and killing it actually kills it
13:26:38 × danse-nr3 quits (~danse@151.43.217.87) (Remote host closed the connection)
13:27:01 danse-nr3 joins (~danse@151.43.217.87)
13:27:34 <haskellbridge> 15<J​ade> the process seems to be `cabal act-as-setuo --build-type=Simple -- bencg -verbose=1 --builddir=<...>`
13:27:59 <haskellbridge> 15<J​ade> s/setuo/setup
13:27:59 <haskellbridge> 15<J​ade> s/bencg/bench
13:28:16 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds)
13:29:16 <erina> @al \(a,_) (b,_) -> compare a b
13:29:16 <lambdabot> Sorry, look up one word at a time please.
13:29:23 <erina> @pl \(a,_) (b,_) -> compare a b
13:29:23 <lambdabot> (`ap` snd) . (. fst) . (const .) . compare . fst
13:29:48 alexherbo2 joins (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr)
13:30:09 <erina> I'll just use sortOn fst instead
13:30:47 <haskellbridge> 15<J​ade> I have `-with-rtsopts=-A32m` and `-frpoc-alignment=64` as options, could those be relevant? i don't know what they do but I think tasty told me to do those?
13:37:55 × alexherbo2 quits (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
13:39:04 alexherbo2 joins (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr)
13:40:47 × alexherbo2 quits (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
13:41:20 wootehfoot joins (~wootehfoo@user/wootehfoot)
13:41:40 alexherbo2 joins (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr)
13:42:51 × alexherbo2 quits (~alexherbo@2a01cb0084fc5100e42c42cbc84847f6.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
13:46:11 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
13:53:02 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
13:53:18 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
13:53:39 lisbeths joins (~user@c-174-164-24-226.hsd1.wa.comcast.net)
13:54:10 <lisbeths> I think it is possible to take the core of haskell or any purely functional core and compile it to pure lambda calculus
13:58:12 <lortabac> that's more or less the idea of Core
13:59:23 <lortabac> Haskell code is compiled to a simpler language that is closer to lambda calculus
14:02:09 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:02:18 <Franciman> we conjecture that you can take any formalism for computation and compile it to pure lambda calculus
14:02:41 <Franciman> it is called Church-Turing thesis
14:04:18 <lortabac> from practical reasons I don't think you can easily remove ADT's and let's from Core though
14:04:25 <lortabac> *for practical reasons
14:06:52 <sprout> or IO operations
14:07:09 <sprout> or state
14:09:23 <lisbeths> So in theory I should be able to take haskell libraries and use them in lambda calculus
14:11:13 <geekosaur> only the pure parts, I think
14:12:48 <lisbeths> This is good news for me
14:13:15 × erina quits (~erina@2001:da8:d800:e52b:5332:9a02:5634:a173) (Remote host closed the connection)
14:13:36 erina joins (~erina@178.157.56.217.16clouds.com)
14:14:24 <geekosaur> compiling to lambda calculus apparently used to be a thing in the 70s and 80s
14:16:06 <lisbeths> I am interested in using lambda calculus as a computing system.
14:22:39 BEGGARMAN__ joins (sid630121@id-630121.helmsley.irccloud.com)
14:23:07 × BEGGARMAN__ quits (sid630121@id-630121.helmsley.irccloud.com) (Client Quit)
14:25:36 <haskellbridge> 15<J​ade> sprout: but you also don't inherently have IO with turing machines, do you?
14:25:59 <haskellbridge> 15<J​ade> like, IO is something built on top of the computational model
14:27:59 <sprout> well, we did assume 'practical reasons'
14:28:37 son0p joins (~ff@181.136.122.143)
14:33:03 shriekingnoise joins (~shrieking@186.137.175.87)
14:33:15 myclm_ joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
14:46:23 × Xyloes quits (~wyx@2400:dd01:103a:1012:d681:d7ff:fedb:298d) (Remote host closed the connection)
14:48:16 _myclm joins (~myclm_@ip1f12ffbe.dynamic.kabel-deutschland.de)
14:49:17 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:50:43 × myclm_ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Ping timeout: 256 seconds)
14:52:57 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
14:53:16 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 276 seconds)
14:58:12 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
15:01:48 <lisbeths> I am very serious about lambda calculus as a language
15:02:54 × Nixkernal quits (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 260 seconds)
15:08:36 × danse-nr3 quits (~danse@151.43.217.87) (Read error: Connection reset by peer)
15:09:17 danse-nr3 joins (~danse@151.43.141.160)
15:13:00 × drewjose quits (~drewjose@129.154.40.88) (Quit: have a nice day ^_^)
15:14:49 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
15:17:16 drewjose joins (~drewjose@129.154.40.88)
15:18:00 Nixkernal joins (~Nixkernal@115.16.194.178.dynamic.wline.res.cust.swisscom.ch)
15:19:01 × drewjose quits (~drewjose@129.154.40.88) (Remote host closed the connection)
15:19:57 mqlnv joins (~tripod@47.154.25.27)
15:21:03 drewjose joins (~drewjose@129.154.40.88)
15:23:41 Sgeo joins (~Sgeo@user/sgeo)
15:25:47 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
15:30:21 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 245 seconds)
15:34:14 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:37:51 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds)
15:40:14 × erina quits (~erina@178.157.56.217.16clouds.com) (Ping timeout: 252 seconds)
15:42:35 <trev> lisbeths: what does that mean?
15:42:49 <trev> as a programming language?
15:49:08 <TMA> lisbeths: and which flavor? (untyped, typed, which numeral encoding, ...)
15:49:17 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:53:10 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
15:53:31 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.1.1)
15:55:12 × drewjose quits (~drewjose@129.154.40.88) (Quit: have a nice day ^_^)
16:06:16 <lisbeths> untyped
16:06:32 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:06:43 <lisbeths> Lambda calculus is able to be used as a programming language
16:06:59 <lisbeths> all you really need to make it useful is to have the syntactic sugar of let, and perhaps also namespaces
16:07:26 <Rembane> lisbeths: Have you seen the talk by Wadler where he compares Lambda calculus with Turing machines and recursion?
16:12:00 <lisbeths> No I have not. Have you read the 100 year language?
16:12:53 <Rembane> I might've read it many years ago, I don't remember it. Is it this one? https://paulgraham.com/hundred.html
16:18:15 <Rembane> lisbeths: Here's the talk, it has been given in many versions since, but I'm quite fond of this one: https://www.youtube.com/watch?v=IOiZatlZtGU
16:23:29 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
16:24:35 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923) (Remote host closed the connection)
16:24:52 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923)
16:26:36 × _myclm quits (~myclm_@ip1f12ffbe.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
16:29:45 × rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer)
16:30:04 rvalue joins (~rvalue@user/rvalue)
16:32:42 Square joins (~Square@user/square)
16:37:03 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:37:16 euleritian joins (~euleritia@dynamic-046-114-176-104.46.114.pool.telefonica.de)
16:38:43 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
16:39:18 chexum joins (~quassel@gateway/tor-sasl/chexum)
16:44:22 zmt01 joins (~zmt00@user/zmt00)
16:44:44 _myclm joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
16:45:46 × shailangsa quits (~shailangs@host109-152-9-157.range109-152.btcentralplus.com) (Ping timeout: 245 seconds)
16:48:11 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
16:49:25 <haskellbridge> 15<J​ade> A big problem working with gi-gtk is that you keep having to think what C-code you are executing under the hood because the generated bindings might just not do what you think they do
16:49:57 <haskellbridge> 15<J​ade> I'm trying to debug some "Stack smashing" error at the moment because im multithreading some stuff
16:52:39 <c_wraith> uh.. many bindings to C libraries are not multithread-safe because the underlying library isn't. your only option might be to ensure only one thread interacts with it.
16:54:01 <haskellbridge> 15<J​ade> only one thread is interacting, I only have one forkIO which is the very last statement
16:54:16 <haskellbridge> 15<J​ade> but I pass around UI components in a record which are managed by GTK
16:54:24 <haskellbridge> 15<J​ade> so I guess that is another thread managing it
16:54:45 <haskellbridge> 15<J​ade> I'll probably have to use IORef's (?)
17:01:22 × danse-nr3 quits (~danse@151.43.141.160) (Ping timeout: 260 seconds)
17:04:10 danse-nr3 joins (~danse@151.43.141.160)
17:04:17 <haskellbridge> 15<J​ade> You're right btw, widgets are inherently thread unsafe
17:04:32 <haskellbridge> 15<J​ade> so I need to communicate the data up into the original thread
17:04:45 <haskellbridge> 15<J​ade> I think channels work for that, right?
17:07:15 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
17:07:44 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923) (Remote host closed the connection)
17:10:34 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
17:11:03 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
17:11:59 × euleritian quits (~euleritia@dynamic-046-114-176-104.46.114.pool.telefonica.de) (Ping timeout: 260 seconds)
17:15:19 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
17:15:48 × _myclm quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Ping timeout: 268 seconds)
17:22:05 <monochrom> In the case of gi-gtk, gi-gtk-hs's Data.GI.Gtk.Threading can help.
17:25:30 <haskellbridge> 15<J​ade> Oh awesome, thank you
17:26:10 <haskellbridge> 15<J​ade> exactly what I need. I was already building an abstraction which passes down a channel of type `UIComponents -> IO ()`
17:26:21 <haskellbridge> 15<J​ade> (is that a bad idea in general?)
17:27:46 shailangsa_ joins (~shailangs@host109-152-9-157.range109-152.btcentralplus.com)
17:28:09 <monochrom> It is the big-brain move of FP, that you can just pass functions around. :)
17:29:16 tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net)
17:29:30 <monochrom> https://www.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt slide 13
17:30:25 <haskellbridge> 15<J​ade> I'll take that as a "She A Little Confused, But She Got The Spirit"
17:33:25 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923)
17:33:27 <haskellbridge> 15<J​ade> uhh, `Data.GI.Gtk.Threading` seems to be built for gtk3 only and right now I'm using gtk4
17:33:27 <haskellbridge> 15<J​ade> Should I consider using gtk3 instead or just go along with what I had?
17:33:38 <haskellbridge> 15<J​ade> I could also port those functions I suppose
17:34:46 Joao003 joins (~Joao003@190.108.99.11)
17:34:52 <haskellbridge> 15<J​ade> Oh god what is this https://hackage.haskell.org/package/gi-gtk-hs-0.3.16/docs/src/Data.GI.Gtk.Threading.html#guiThread
17:35:00 <monochrom> There is already gtk4?! It's not even 2024...
17:37:06 <haskellbridge> 15<J​ade> and they are already working on gtk5 which likely won't have X11 support haha
17:37:31 <haskellbridge> 15<J​ade> s/likely/maybe
17:39:49 × rvalue quits (~rvalue@user/rvalue) (Ping timeout: 246 seconds)
17:42:43 <Joao003> Jade: doesn't matter; I use windows
17:42:46 × phu quits (~user@76.202.115.164) (Remote host closed the connection)
17:45:24 <haskellbridge> 05<i​rregularsphere> https://aphyr.com/posts/342-typing-the-technical-interview
17:45:41 <haskellbridge> 05<i​rregularsphere> wait so is it possible to turn every single haskell programs into class and instances
17:45:46 <haskellbridge> 05<i​rregularsphere> program*
17:48:11 rvalue joins (~rvalue@user/rvalue)
17:55:23 _myclm joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
17:58:35 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
18:02:33 <trev> that article is funny
18:02:36 <trev> “Let’s do booleans,” you suggest, as if inviting him to lunch.
18:04:34 target_i joins (~target_i@217.175.14.39)
18:05:11 <monochrom> Today you can even "clarify" that with type families and DataKinds. >:)
18:05:22 <haskellbridge> 05<i​rregularsphere> yeah that stuff is logic as computation
18:05:52 justache is now known as justResolute
18:06:07 <haskellbridge> 05<i​rregularsphere> I found out about the Curry-Howard correspondence thanks to this article
18:06:22 justResolute is now known as justIrresolute
18:06:49 <haskellbridge> 05<i​rregularsphere> i mean stuff as in code in the article
18:09:16 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
18:12:29 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
18:15:15 mikess joins (~sam@user/mikess)
18:16:13 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 255 seconds)
18:30:04 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
18:35:26 lerax joins (~user@177-104-241-159.gbsn.com.br)
18:42:05 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
18:46:12 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:48:24 myclm__ joins (~myclm_@ip1f12ffbe.dynamic.kabel-deutschland.de)
18:49:45 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
18:50:52 × _myclm quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Ping timeout: 255 seconds)
18:51:16 waldo joins (~waldo@user/waldo)
18:51:51 ss4 joins (~wootehfoo@user/wootehfoot)
18:52:19 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923) (Remote host closed the connection)
18:52:41 thegman joins (~thegman@184-089-015-126.res.spectrum.com)
18:53:20 <thegman> is there a way to use getArgs without the <- (like head(getArgs))
18:53:51 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
18:54:10 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 268 seconds)
18:54:31 <Rembane> thegman: Nope
18:54:36 <thegman> dang
18:55:02 <Rembane> thegman: The IO type is the culprit here.
18:56:45 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:56:50 <danse-nr3> you can `fmap head getArgs` thegman
18:57:00 <danse-nr3> % :t fmap head getArgs
18:57:00 <yahb2> <interactive>:1:11: error: Variable not in scope: getArgs :: f [b]
18:57:09 <Hecate> thegman: best you can do is take advantage of the fact that IO is a Functor, and write `head <$> getArgs`
18:57:22 <Hecate> or indeed `fmap head getArgs`
18:57:29 <thegman> im too dumb to know what most of this stuff is
18:57:48 <thegman> il try it though
18:59:04 <thegman> when using head <$> getArgs is there a way to turn it into an integer
18:59:06 × ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 268 seconds)
18:59:15 <thegman> before what i had is (code) :: Integer
18:59:27 <haskellbridge> 15<J​ade> `fmap` or `<$>` operate on the value which is wrapped inside the `IO`.
18:59:28 <haskellbridge> 15<J​ade> For `getArgs :: IO [String]` that means that any operation you want to do on the `[String]` you can do within the `fmap`
19:00:20 <haskellbridge> 15<J​ade> `parseInt . head <$> getArgs` and then you have to write `parseInt :: String -> Int`
19:01:00 <haskellbridge> 15<J​ade> if you know your string is an integer you can do `read . head <$> getArgs` which gives you `IO Int`
19:01:45 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 256 seconds)
19:01:51 <thegman> thanks
19:02:42 × danse-nr3 quits (~danse@151.43.141.160) (Read error: Connection reset by peer)
19:03:25 <thegman> darn
19:03:40 <thegman> Ambiguous type variable 'b0' arising from a use of 'read'
19:03:58 <thegman> let n = (read . head <$> getArgs);
19:04:48 <haskellbridge> 15<J​ade> you do need to specify that you're reading an `Int` because `read :: Read a => String -> a` is generic
19:05:14 <haskellbridge> 15<J​ade> `let n = (read . head <$> getArgs) :: IO Int`
19:06:43 <thegman> No instance for (integral (IO Integer)) arising from a use of 'factor'
19:06:49 <thegman> i think i messed up on the type for factor
19:07:33 <haskellbridge> 15<J​ade> It looks like you're trying to pass in `n` into factor
19:07:50 <haskellbridge> 15<J​ade> but remember that `n` has `IO` wrapped around it
19:08:15 <haskellbridge> 15<J​ade> so you need to get the actual value of it, either using `>>=`/`<$>` or `<-` in a do-block
19:09:01 <thegman> ok
19:09:04 <thegman> il try to do that
19:13:36 × myclm__ quits (~myclm_@ip1f12ffbe.dynamic.kabel-deutschland.de) (Remote host closed the connection)
19:13:54 myclm__ joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
19:14:17 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
19:15:29 mestre joins (~mestre@191.177.165.219)
19:15:36 × myclm__ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Remote host closed the connection)
19:15:54 myclm__ joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
19:18:13 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
19:18:15 <mestre> Hello, I wondering if someone could help me with some ghci questions. I trying to hotswap functions, but in a simpler way than ghc-hotswap.
19:19:37 <mestre> The end goal would be having a function been hotswapped in a different thread when I run ":reload".
19:21:38 <lerax> I've not exposed to haskell development anymore for the last 4 years at least, however when I came to install the compiler again on my distro I saw that ghcup is a popular solution. I've been using and it seems great, but I would like to hear opinion of more experienced devs... can someone share your experience with ghcup?
19:21:44 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
19:23:36 × mokee quits (~mokee@37.228.215.150) (Quit: off)
19:24:25 <mestre> ghcup have worked great for me wherever I have used it.
19:27:17 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
19:29:04 <lerax> thx for sharing, mestre
19:29:16 <lerax> Are you using it on Linux?
19:30:36 <mestre> I'm not using it anymore, I'm using Nix now. But I used it on Linux, yes.
19:32:11 <lerax> Development using Python or Common Lisp was a complete confusion on Nix several years ago. Are you doing well with Haskell over Nix?
19:32:23 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
19:32:27 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923)
19:32:31 <thegman> /quit
19:32:34 <thegman> darn
19:32:38 <mestre> :)
19:32:41 <thegman> i messed up the command
19:32:46 × thegman quits (~thegman@184-089-015-126.res.spectrum.com) (Quit: leaving)
19:33:57 <mestre> @lerax It's getting better, It was very hard on the begining. But I have used it on work, so that eased me into it.
19:33:57 <lambdabot> Sorry, look up one word at a time please.
19:34:18 <haskellbridge> 15<J​ade> I think ghcup is pretty much the standard for installing haskell unless you use nix
19:34:42 <haskellbridge> 15<J​ade> I don't know any reasons you would not use it
19:36:45 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923) (Ping timeout: 256 seconds)
19:38:45 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
19:39:13 danse-nr3 joins (~danse@151.57.203.55)
19:39:50 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923)
19:42:43 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
19:44:25 araujo joins (~araujo@216.73.163.54)
19:48:26 × waldo quits (~waldo@user/waldo) (Ping timeout: 268 seconds)
19:49:38 × siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
19:49:59 siers joins (~ij@user/ij)
19:50:37 × duncan quits (~duncan@user/duncan) (Quit: ZNC 1.8.2 - https://znc.in)
19:50:52 duncan joins (~duncan@user/duncan)
19:53:16 × myme quits (~myme@2a01:799:d60:e400:5e72:30ce:3add:bd7c) (Ping timeout: 245 seconds)
19:54:00 waldo joins (~waldo@user/waldo)
19:54:16 myme joins (~myme@2a01:799:d60:e400:c395:9fa:e4aa:e46b)
19:59:46 × michalz quits (~michalz@185.246.207.221) (Quit: ZNC 1.8.2 - https://znc.in)
20:02:06 × myclm__ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Remote host closed the connection)
20:02:23 myclm__ joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
20:07:41 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:14:20 × waldo quits (~waldo@user/waldo) (Ping timeout: 268 seconds)
20:15:14 waldo joins (~waldo@user/waldo)
20:18:23 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
20:18:44 × araujo quits (~araujo@216.73.163.54) (Ping timeout: 256 seconds)
20:22:16 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923) (Remote host closed the connection)
20:24:00 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
20:30:16 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:31:56 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:33:04 euleritian joins (~euleritia@dynamic-046-114-170-054.46.114.pool.telefonica.de)
20:34:17 × ricardo2 quits (~ricardo@84.16.179.218) (Read error: Connection reset by peer)
20:34:56 × raoul quits (~raoul@95.179.203.88) (Quit: Ping timeout (120 seconds))
20:35:00 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer)
20:35:08 × lisbeths quits (~user@c-174-164-24-226.hsd1.wa.comcast.net) (Remote host closed the connection)
20:35:11 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
20:35:20 lisbeths joins (~user@c-174-164-24-226.hsd1.wa.comcast.net)
20:35:26 × steew quits (~steew@user/steew) (Read error: Connection reset by peer)
20:35:27 ricardo1 joins (~ricardo@84.16.179.218)
20:35:41 steew joins (~steew@user/steew)
20:36:00 × srk quits (~sorki@user/srk) (Quit: ZNC 1.8.1 - https://znc.in)
20:36:17 × hueso quits (~root@user/hueso) (Quit: No Ping reply in 180 seconds.)
20:36:19 srk joins (~sorki@user/srk)
20:36:50 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
20:37:32 raoul joins (~raoul@95.179.203.88)
20:37:43 hueso joins (~root@user/hueso)
20:38:16 × mestre quits (~mestre@191.177.165.219) (Ping timeout: 245 seconds)
20:39:12 mestre joins (~mestre@191.177.165.219)
20:40:06 × myclm__ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Remote host closed the connection)
20:40:24 myclm__ joins (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568)
20:42:36 <haskellbridge> 06<s​m> ghcup is great. You don't strictly need it if you use stack, but many stack users use it anyway
20:43:19 L29Ah joins (~L29Ah@wikipedia/L29Ah)
20:43:24 <haskellbridge> 06<s​m> if you're a beginner, and stack's ghc works for you, I'd still recommend that. One less thing to figure out.
20:46:01 × danse-nr3 quits (~danse@151.57.203.55) (Ping timeout: 256 seconds)
20:51:47 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
20:52:06 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
20:57:51 × myclm__ quits (~myclm_@2a02:810d:b83f:fcc0:7766:ea2b:35b7:e568) (Ping timeout: 245 seconds)
21:00:54 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
21:00:58 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:5475:1864:2ce2:3923)
21:02:01 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
21:03:27 × xdminsy quits (~xdminsy@117.147.71.169) (Ping timeout: 256 seconds)
21:05:21 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 245 seconds)
21:05:46 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:05:53 × trev quits (~trev@user/trev) (Quit: trev)
21:06:21 Maxdamantus joins (~Maxdamant@user/maxdamantus)
21:07:09 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:07:52 <remexre> hm, is there any reason why Data.Vector.generateM has a Monad constraint rather than an Applicative one?
21:08:18 × actioninja quits (~actioninj@user/actioninja) (Read error: Connection reset by peer)
21:08:46 actioninja joins (~actioninj@user/actioninja)
21:08:49 jmdaemon joins (~jmdaemon@user/jmdaemon)
21:09:35 <Franciman> is there anyone investing in guix for haskell?
21:09:53 <Franciman> or is nix still the most beloved?
21:10:21 <juri_> guix is still a thing?
21:10:55 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
21:13:08 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Quit: _)
21:13:29 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
21:13:58 × madnight quits (~madnight@static.59.103.201.195.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
21:14:46 madnight joins (~madnight@static.59.103.201.195.clients.your-server.de)
21:14:47 <yushyin> sure is
21:16:12 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
21:20:37 chomwitt joins (~chomwitt@2a02:587:7a1b:bb00:1ac0:4dff:fedb:a3f1)
21:24:17 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
21:24:43 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
21:26:07 × waldo quits (~waldo@user/waldo) (Ping timeout: 255 seconds)
21:27:16 × biberu quits (~biberu@user/biberu) (Ping timeout: 256 seconds)
21:27:20 biberu\ joins (~biberu@user/biberu)
21:27:52 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 256 seconds)
21:28:37 myclm_ joins (~myclm_@ip1f12ffbe.dynamic.kabel-deutschland.de)
21:28:47 biberu\ is now known as biberu
21:29:53 × Joao003 quits (~Joao003@190.108.99.11) (Quit: Bye!)
21:35:38 × son0p quits (~ff@181.136.122.143) (Remote host closed the connection)
21:35:57 <johnw> I've yet to actually run into guix -- anywhere, open source or professional
21:36:19 <johnw> meanwhile I run into Nix pretty much everywhere I look these days
21:36:37 <c_wraith> remexre: I think it has to do with controlling execution order more precisely inside the fusion code
21:37:28 <remexre> hm, ok
21:41:17 <Athas> My experience is that the Haskell infrastructure in Guix is not well maintained.
21:41:59 <Athas> Guix is in many ways nicer than Nix, but Nix has substantially more manpower - and that really makes a difference, as these are "boil the ocean" projects that require a lot of modification to software.
21:42:46 <juri_> ooo. boil the ocean. that's.. fun. :)
21:49:18 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
21:49:45 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
21:53:16 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds)
21:55:25 <johnw> salty steam
21:55:46 × target_i quits (~target_i@217.175.14.39) (Quit: leaving)
21:56:40 <juri_> I've spent the last 4 years working on that kind of problem. ;)
22:04:09 peterbecich joins (~Thunderbi@047-229-123-186.res.spectrum.com)
22:11:23 pavonia joins (~user@user/siracusa)
22:17:41 × myclm_ quits (~myclm_@ip1f12ffbe.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
22:19:31 × telser quits (~quassel@user/telser) (Ping timeout: 256 seconds)
22:20:48 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:24:06 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds)
22:32:16 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 255 seconds)
22:36:08 biberu\ joins (~biberu@user/biberu)
22:36:39 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
22:36:41 zetef joins (~quassel@2a02:2f00:5309:7300:1472:444c:111b:708b)
22:37:01 wootehfoot joins (~wootehfoo@user/wootehfoot)
22:39:06 × biberu quits (~biberu@user/biberu) (Ping timeout: 245 seconds)
22:39:06 biberu\ is now known as biberu
22:45:19 telser joins (~quassel@user/telser)
22:49:40 <haskellbridge> 15<J​ade> what's the most elegant way to handle the pseudocode of `read from channel as long as other threads can write to it`?
22:49:42 <haskellbridge> 15<J​ade> I could let it do that itself and catch `BlockedIndefinitelyOnMVar` but that seems ... bad practice
22:50:11 oo_miguel1 joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
22:50:15 × sprout quits (~quassel@84-80-106-227.fixed.kpn.net) (Read error: Connection reset by peer)
22:50:18 biberu\ joins (~biberu@user/biberu)
22:50:21 sprout joins (~quassel@2a02-a448-3a80-0-2031-a154-e4a7-5e62.fixed6.kpn.net)
22:51:36 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 245 seconds)
22:51:36 oo_miguel1 is now known as oo_miguel
22:53:16 × biberu quits (~biberu@user/biberu) (Ping timeout: 245 seconds)
22:53:16 biberu\ is now known as biberu
22:54:21 not_reserved joins (~not_reser@154.16.157.93)
23:01:21 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 252 seconds)
23:05:33 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:07:11 × mestre quits (~mestre@191.177.165.219) (Ping timeout: 264 seconds)
23:11:00 × euleritian quits (~euleritia@dynamic-046-114-170-054.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
23:12:30 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
23:15:43 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
23:28:47 nate4 joins (~nate@c-98-45-158-125.hsd1.ca.comcast.net)
23:33:47 × nate4 quits (~nate@c-98-45-158-125.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
23:45:31 × chomwitt quits (~chomwitt@2a02:587:7a1b:bb00:1ac0:4dff:fedb:a3f1) (Ping timeout: 256 seconds)
23:47:42 mmhat joins (~mmh@p200300f1c7323ce5ee086bfffe095315.dip0.t-ipconnect.de)
23:51:01 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
23:51:12 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
23:51:48 L29Ah joins (~L29Ah@wikipedia/L29Ah)

All times are in UTC on 2023-12-27.