Home freenode/#haskell: Logs Calendar

Logs on 2020-10-19 (freenode/#haskell)

00:00:02 × eam1 quits (~eam@185.244.214.216) ()
00:00:06 × atk quits (~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
00:00:57 atk joins (~Arch-TK@ircpuzzles/staff/Arch-TK)
00:01:00 <cheater> or use arrow
00:01:01 <cheater> s
00:01:21 wroathe_ joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:01:25 × wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
00:02:56 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
00:03:24 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
00:04:15 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
00:05:35 × LKoen quits (~LKoen@81.255.219.130) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
00:05:51 polyrain joins (~polyrain@2001:8003:e501:6901:fd69:4af9:af31:f884)
00:09:27 christo joins (~chris@81.96.113.213)
00:10:13 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
00:10:24 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
00:14:48 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
00:15:02 × conal quits (~conal@66.115.157.49) (Quit: Computer has gone to sleep.)
00:15:16 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
00:15:40 × lkurusa quits (~lkurusa@fedora/Levex) (Remote host closed the connection)
00:15:59 <texasmynsted> or use arrows?
00:16:19 <koz_> Yeah, from Control.Arrow. However, in this case, I think that's a bit overkill.
00:16:28 conal joins (~conal@66.115.157.49)
00:17:26 <monochrom> Total distraction.
00:17:27 × ensyde quits (~ensyde@2600:1702:2e30:1a40:e4b3:9206:daf1:55c1) (Quit: WeeChat 2.9)
00:17:37 × ystael quits (~ystael@209.6.50.55) (Ping timeout: 264 seconds)
00:17:40 ensyde joins (~ensyde@2600:1702:2e30:1a40:e4b3:9206:daf1:55c1)
00:18:52 christo joins (~chris@81.96.113.213)
00:21:15 tvn joins (~tvn@178.239.168.171)
00:21:42 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
00:21:56 christo joins (~chris@81.96.113.213)
00:24:47 × conal quits (~conal@66.115.157.49) (Quit: Computer has gone to sleep.)
00:29:55 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
00:33:24 conal joins (~conal@64.71.133.70)
00:33:45 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:35:02 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Quit: Leaving)
00:35:32 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
00:36:50 klixto joins (~klixto@130.220.8.132)
00:37:30 × lucasb quits (uid333435@gateway/web/irccloud.com/x-jgpbbuburcbcxbsy) (Quit: Connection closed for inactivity)
00:40:05 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
00:47:26 × seanvert` quits (~user@177.84.244.242) (Remote host closed the connection)
00:47:42 × ericsagnes quits (~ericsagne@2405:6580:0:5100:a53c:4941:44e2:1e75) (Ping timeout: 260 seconds)
00:48:25 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:706d:285c:8b0:9b3d) (Ping timeout: 240 seconds)
00:52:57 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
00:54:48 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
00:58:45 × dcoutts_ quits (~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 240 seconds)
00:59:10 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
01:00:32 × rnat2 quits (uid73555@gateway/web/irccloud.com/x-yzboehgctiytendp) (Quit: Connection closed for inactivity)
01:00:46 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:01:09 ericsagnes joins (~ericsagne@2405:6580:0:5100:a53c:4941:44e2:1e75)
01:01:56 jedws joins (~jedws@121.209.161.98)
01:01:59 × wroathe_ quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
01:03:12 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
01:03:56 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
01:04:40 howdoi joins (uid224@gateway/web/irccloud.com/x-mvchipvwhunlklgp)
01:06:29 isovector1 joins (~isovector@172.103.217.169.cable.tpia.cipherkey.com)
01:07:56 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
01:08:34 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
01:09:46 × hololeap quits (~hololeap@unaffiliated/hololeap) (Ping timeout: 256 seconds)
01:11:24 hololeap joins (~hololeap@unaffiliated/hololeap)
01:11:32 × son0p quits (~son0p@181.136.122.143) (Remote host closed the connection)
01:13:35 et09 joins (~et09@unaffiliated/endolphin)
01:13:40 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
01:16:59 nbloomf joins (~nbloomf@2600:1700:ad14:3020:706d:285c:8b0:9b3d)
01:18:32 nbloomf_ joins (~nbloomf@76.217.43.73)
01:18:35 × Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
01:18:58 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
01:19:09 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
01:19:57 s00pcan joins (~chris@075-133-056-178.res.spectrum.com)
01:21:32 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:706d:285c:8b0:9b3d) (Ping timeout: 260 seconds)
01:24:40 × s00pcan quits (~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 265 seconds)
01:25:40 s00pcan joins (~chris@107.181.165.217)
01:27:26 Whez joins (~textual@2a01:e0a:21f:1060:45e3:a6ce:25be:e68)
01:27:30 conal joins (~conal@64.71.133.70)
01:30:57 × Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
01:33:15 Sgeo_ joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
01:34:21 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
01:34:41 × Whez quits (~textual@2a01:e0a:21f:1060:45e3:a6ce:25be:e68) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
01:36:44 × Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Ping timeout: 260 seconds)
01:38:03 Sgeo__ joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
01:39:11 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
01:39:25 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
01:41:19 × Sgeo_ quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Ping timeout: 260 seconds)
01:41:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:42:56 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
01:43:02 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
01:43:24 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
01:43:24 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
01:43:24 GyroW joins (~GyroW@unaffiliated/gyrow)
01:47:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
01:48:06 wei2912 joins (~wei2912@unaffiliated/wei2912)
01:51:31 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
01:54:18 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
01:57:44 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:00:03 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
02:00:03 × xff0x quits (~fox@2001:1a81:53f8:9f00:7c69:3a05:36cd:a9b4) (Ping timeout: 260 seconds)
02:01:29 lkurusa joins (~lkurusa@fedora/Levex)
02:01:53 xff0x joins (~fox@2001:1a81:522e:d900:5958:18c9:b577:aea)
02:02:28 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 256 seconds)
02:03:54 <gnumonik> Is ((LitP . stringL $ "Foo") : [VarP . mkName $ "xs" ]) the TH Pat the corresponds to ("Foo":xs), or am I doing that wrong?
02:06:37 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
02:06:57 shatriff joins (~vitaliish@176.52.219.10)
02:07:26 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
02:07:41 shatriff joins (~vitaliish@176.52.219.10)
02:07:47 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
02:08:12 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
02:08:30 shatriff joins (~vitaliish@176.52.219.10)
02:09:00 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
02:09:18 shatriff joins (~vitaliish@176.52.219.10)
02:09:49 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
02:12:58 × nbloomf_ quits (~nbloomf@76.217.43.73) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:14:30 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
02:15:36 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:18:05 <koz_> gnumonik: No, because that should type as Q Expr, but what you have types as Q [Expr] I believe.
02:18:10 × s00pcan quits (~chris@107.181.165.217) (Ping timeout: 246 seconds)
02:19:53 × oisdk quits (~oisdk@2001:bb6:3329:d100:5538:baf2:3212:5e91) (Quit: oisdk)
02:20:03 × Tene quits (~tene@poipu/supporter/slacker/tene) (Remote host closed the connection)
02:20:03 × ByronJohnson quits (~bairyn@unaffiliated/bob0) (Remote host closed the connection)
02:20:16 s00pcan joins (~chris@075-133-056-178.res.spectrum.com)
02:20:44 Stanley00 joins (~stanley00@unaffiliated/stanley00)
02:20:59 × theDon quits (~td@muedsl-82-207-238-112.citykom.de) (Ping timeout: 260 seconds)
02:21:24 <gnumonik> er I forgot the ListP at the beginning. But wouldn't it just be a [Pat] as written? If I don't return it, it's not in the Q monad yet right? (Obviously I have to do that eventually to do anything useful with it)
02:21:54 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
02:21:57 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
02:21:57 <koz_> Oh, yeah, good point.
02:21:59 <koz_> But you get the idea.
02:22:11 <koz_> You want an application of the (:) constructor.
02:22:19 JordiGH parts (jordi@octave/developer/JordiGH) ("Leaving")
02:22:41 theDon joins (~td@muedsl-82-207-238-239.citykom.de)
02:23:57 ransom joins (~c4264035@2601:285:201:6720:b13f:d296:8a17:c389)
02:26:11 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:27:01 plutoniix joins (~q@node-uhv.pool-125-24.dynamic.totinternet.net)
02:27:07 × texasmynsted quits (688c3593@104.140.53.147) (Remote host closed the connection)
02:28:32 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
02:29:02 × lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (hitchcock.freenode.net (Nickname regained by services)))
02:29:08 lagothrix joins (~lagothrix@unaffiliated/lagothrix)
02:30:05 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 240 seconds)
02:31:31 × ransom quits (~c4264035@2601:285:201:6720:b13f:d296:8a17:c389) (Quit: Textual IRC Client: www.textualapp.com)
02:31:46 × m0rphism quits (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Ping timeout: 256 seconds)
02:32:19 ephemera_ joins (~E@122.34.1.187)
02:39:34 elliott__ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
02:41:05 drbean joins (~drbean@TC210-63-209-157.static.apol.com.tw)
02:43:56 <proofofme> `print =<< Streams.toList is` After this portion mentioned in mysql-haskell, how can I grab individual columns? So for example, how could I print just some field called 'field', for example?
02:44:24 <koz_> That will dump _everything ever_ to stdout.
02:44:30 <koz_> You most probably do _not_ want that.
02:44:38 <koz_> It will also materialize your entire stream into memory first.
02:44:43 <proofofme> correct, just a couple of fields
02:44:46 <koz_> You most probably _also_ do not want _that_.
02:45:00 <koz_> So I would suggest looking at the type of stream it returns, and at the io-streams docs.
02:45:10 <koz_> If you've dealt with streaming before, it should look familiar.
02:45:25 <Squarism> God, im so stuck. I this should be doable with haskell and all its neat libraries / extensions - but I just dont know how. I tried to formulate my problem here : https://paste.ofcode.org/6TcXd6tnxnpqkEaGYNja2M
02:45:26 <proofofme> It returns an InputStream
02:45:36 <Squarism> I think this.... *
02:46:00 × plutoniix quits (~q@node-uhv.pool-125-24.dynamic.totinternet.net) (Ping timeout: 258 seconds)
02:46:06 <koz_> proofofme: So read the docs around that type in io-streams.
02:46:10 × lortabac quits (~lortabac@51.158.65.124) (Ping timeout: 246 seconds)
02:46:42 <koz_> Squarism: Do you have a list separated by /?
02:47:15 <koz_> Also, proofofme, InputStream is _a_ type, but _not_ the type mysql-haskell gives back. From my memory, it's something like a pair of field headers and a stream of vectors of values.
02:47:25 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
02:47:30 <Squarism> koz_, well that should be the address in the end.
02:47:32 <koz_> And you want something to represent a list separated by /?
02:47:36 Tario joins (~Tario@201.192.165.173)
02:47:37 <proofofme> yeah, it gives a column definition and InputStream tuple
02:48:04 <koz_> proofofme: So basically, this is what you're dealing with. You'd need to use whatever information is in the column defs to determine what you want.
02:48:24 <koz_> Then, for each element in the stream, fish out what you want, and tear apart the MySQLWhateverItIs sum type to get at the actual data.
02:48:41 <Squarism> koz: Basicall i want to achive lens libraries (get + map) in "mapLeaf"
02:49:09 lortabac joins (~lortabac@51.158.65.124)
02:49:17 et09 parts (~et09@unaffiliated/endolphin) ()
02:49:18 <Squarism> but using textual addresses. Wrong address or empty slot returns Nothing
02:49:33 <koz_> Squarism: What's the ultimate goal of this thing?
02:49:58 wroathe parts (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) ()
02:50:22 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
02:51:49 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
02:53:42 × isovector1 quits (~isovector@172.103.217.169.cable.tpia.cipherkey.com) (Ping timeout: 272 seconds)
02:53:44 nbloomf joins (~nbloomf@2600:1700:ad14:3020:e14d:f5f1:4984:f268)
02:56:12 <Squarism> the ultimate goal is : 1. A library user defines a datatype A. 2. All "leafs" in a value of the datatype A will yield "addresses" where data can be added using "setLeaf". 3. All "set" leafs (Any "Step a" value) in the datatype A value. So say A is defined as : data Pr1 = Pr1 { a :: Step Int, b :: Maybe (Step Bool) }. A value could be Pr1 { a = Step 11 "foo", b = Nothing }. "b" is an example of an unset value.
02:56:21 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 258 seconds)
02:56:39 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds)
02:57:09 <koz_> This sounds like something that could be rolled with like, Generic? Or generics-sop maybe?
02:57:53 plutoniix joins (~q@ppp-27-55-70-11.revip3.asianet.co.th)
02:57:57 <Squarism> so in point 2 above, the address "b/just" will be provided as a valid address. User fills in some data sends data + address to server, updates value of Pr1 with setLeaf
02:58:08 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 272 seconds)
02:58:56 <Squarism> koz_, yeah, im trying to play with Generic instance but i feel the level is quite high for me. I just dont see the end solution playing around with it.
02:59:31 <koz_> So you basically want a 'skeleton' of the data type to use as a 'direction' for something to go into an actual value of said data type?
02:59:38 ephemera_ joins (~E@122.34.1.187)
02:59:42 <koz_> This is 100% a job for Generic or generics-sop.
03:00:02 × tvn quits (~tvn@178.239.168.171) ()
03:00:07 × djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 260 seconds)
03:01:09 <Squarism> Do you know of any library that relies heavily on Generic that might be able to give me inspriation?
03:01:31 <koz_> Squarism: generic-lens perhaps?
03:02:34 <Squarism> okey. Ill check it out
03:04:25 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
03:06:15 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
03:11:08 × drbean quits (~drbean@TC210-63-209-157.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
03:11:54 christo joins (~chris@81.96.113.213)
03:12:45 drbean joins (~drbean@TC210-63-209-153.static.apol.com.tw)
03:13:29 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
03:15:12 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Remote host closed the connection)
03:15:19 × polyrain quits (~polyrain@2001:8003:e501:6901:fd69:4af9:af31:f884) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:15:41 thir joins (~thir@pd9e1b01f.dip0.t-ipconnect.de)
03:20:37 × thir quits (~thir@pd9e1b01f.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
03:20:52 × ensyde quits (~ensyde@2600:1702:2e30:1a40:e4b3:9206:daf1:55c1) (Quit: WeeChat 2.9)
03:21:58 Jarsto1 joins (~Jarsto@185.244.214.216)
03:23:48 ensyde joins (~ensyde@2600:1702:2e30:1a40:e4b3:9206:daf1:55c1)
03:24:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:28:06 Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
03:29:52 falafel joins (~falafel@71-34-132-121.clsp.qwest.net)
03:30:03 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
03:30:16 × plutoniix quits (~q@ppp-27-55-70-11.revip3.asianet.co.th) (Ping timeout: 246 seconds)
03:37:12 × codygman quits (~codygman@2600:380:f900:eb14:1646:9538:6f47:89d5) (Read error: Connection reset by peer)
03:37:28 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
03:37:34 codygman joins (~codygman@47-184-107-46.dlls.tx.frontiernet.net)
03:39:48 amir48 joins (3263cbdb@50.99.203.219)
03:40:38 × amir48 quits (3263cbdb@50.99.203.219) (Remote host closed the connection)
03:41:16 former_ocaml_use joins (3263cbdb@50.99.203.219)
03:41:59 <former_ocaml_use> anyone have trouble compiling using "ghc main.hs" on macos catalina? getting this: Undefined symbols for architecture x86_64: "___darwin_check_fd_set_overflow", referenced from: _awaitEvent in libHSrts.a(Select.o)
03:43:54 plutoniix joins (~q@ppp-223-24-94-226.revip6.asianet.co.th)
03:44:52 × abhixec quits (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Quit: leaving)
03:45:59 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
03:46:59 <dsal> former_ocaml_use: Whatever ghc you've got is probably not right. But that's not a thing people do in general, so something led you down a bad path. Starting with cabal or stack or nix will got you a lot further a lot faster. (I use stack and nix, so I don't know much about cabal, but people like it). In any case, running the compiler directly is uncommon.
03:48:42 <former_ocaml_use> same error when using cabal, tried ghc to make it easier to repro for myself
03:50:13 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 246 seconds)
03:50:14 <dsal> Where do you get the compiler? I don't know The Cabal Way™, but with stack or nix, the platform-appropriate compiler is part of the build specification and it does the right thing for you.
03:50:33 petersen joins (~petersen@redhat/juhp)
03:52:13 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
03:53:21 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:53:47 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
03:55:28 dyeplexer joins (~lol@unaffiliated/terpin)
03:57:20 × darjeeli1 quits (~darjeelin@122.245.211.155) (Ping timeout: 256 seconds)
03:57:45 darjeeli1 joins (~darjeelin@122.245.211.155)
03:59:12 × ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 256 seconds)
04:01:38 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
04:01:53 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
04:01:55 isovector1 joins (~isovector@172.103.217.169)
04:02:09 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
04:04:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:04:29 <former_ocaml_use> hmm I think i got it from haskell-mode
04:04:45 <former_ocaml_use> I'll try reinstalling ghc and stuff
04:07:14 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:07:26 Tario joins (~Tario@201.192.165.173)
04:09:43 × elliott__ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
04:09:44 <koz_> Basically on Mac, the correct way is ghcup.
04:09:48 <koz_> Always and forever.
04:10:01 <koz_> This also lets you have multiple GHCs, and manage them individually, as well as update.
04:10:48 <dsal> I use both nix and stack on mac. :p
04:11:09 <dsal> I've never tried ghcup, though. So many factions we have.
04:11:18 <koz_> dsal: I'm trying to get into Nix, but only for three reasons.
04:11:29 <koz_> (basically, I want musl-linked fully static 32-bit applications)
04:11:36 <koz_> I'm so far not having much luck with that.
04:11:48 <koz_> Would you be able to tell me what's up with that dsal?
04:12:32 <dsal> nixos itself makes my life much better. I've not really figured out the whole development mentality yet, though. But I do have the ability to build stuff in various places and deploy it in others, so that's nice.
04:13:26 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
04:13:33 <dsal> I don't know anything about musl. (just had to look it up to see what you were talking about). I'd think creating a derivation with just those parts you care about would be more straightforward in nix than anywhere else, but I've not tried. I'm pretty low end on my haskell.
04:13:36 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
04:13:37 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
04:13:37 GyroW joins (~GyroW@unaffiliated/gyrow)
04:13:47 <koz_> This is 100% a Nix problem.
04:14:04 <koz_> dsal: https://gist.github.com/kozross/73ca7429f23852ba5650a1a67524200a
04:14:13 × wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
04:14:27 <koz_> Key weirdness: https://gist.github.com/kozross/73ca7429f23852ba5650a1a67524200a#file-error-L159
04:16:04 × plutoniix quits (~q@ppp-223-24-94-226.revip6.asianet.co.th) (Read error: Connection reset by peer)
04:16:44 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
04:17:13 Stanley00 joins (~stanley00@unaffiliated/stanley00)
04:17:19 vicfred_ joins (~vicfred@unaffiliated/vicfred)
04:17:22 patrick1 joins (~tarpk@ool-182dc9b3.dyn.optonline.net)
04:18:46 × renzhi quits (~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 258 seconds)
04:20:01 × codygman quits (~codygman@47-184-107-46.dlls.tx.frontiernet.net) (Read error: Connection reset by peer)
04:20:26 <former_ocaml_use> installing with ghcup fixed my problem :O thanks everyone!!
04:20:27 codygman joins (~codygman@47-184-107-46.dlls.tx.frontiernet.net)
04:20:28 × vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 272 seconds)
04:20:39 mpiechotka joins (~mpiechotk@107-203-255-70.lightspeed.sntcca.sbcglobal.net)
04:20:57 <koz_> former_ocaml_use: No worries. 'ghcup list' is one thing that you may find helpful. :D
04:21:38 × Jeanne-Kamikaze quits (~Jeanne-Ka@68.235.43.102) (Ping timeout: 256 seconds)
04:25:02 × isovector1 quits (~isovector@172.103.217.169) (Ping timeout: 256 seconds)
04:26:33 × mpiechotka quits (~mpiechotk@107-203-255-70.lightspeed.sntcca.sbcglobal.net) (Quit: mpiechotka)
04:28:59 × dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection)
04:32:38 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
04:37:54 <dsal> koz_: My computer's really very slow. I started that a long time ago. Between having an incredibly slow computer and a saturated network connection, it's taking me a while to reproduce your error. I'm very much not an expert, though, so I'll probably just be like "yeah, I got that same error and also don't know what I'm doing."
04:38:06 <koz_> OK, don't worry about it then.
04:38:33 <dsal> There are folks in #nixos who know things, though. It's a bit hit or miss. I have really obscure questions that people who don't know the answers to helpfully try to answer.
04:38:39 <koz_> I found this, which may be somewhat enlightening: https://github.com/srid/neuron/blob/master/static.nix
04:38:56 Whez joins (~textual@2a01:e0a:21f:1060:45e3:a6ce:25be:e68)
04:38:56 × Whez quits (~textual@2a01:e0a:21f:1060:45e3:a6ce:25be:e68) (Client Quit)
04:39:01 <koz_> This leans on a fork of nixpkgs, so I might try that and see if it gets me someplace.
04:39:05 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
04:40:05 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
04:40:27 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
04:40:54 × Maxdamantus quits (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 265 seconds)
04:41:04 plutoniix joins (~q@ppp-27-55-70-11.revip3.asianet.co.th)
04:42:26 Maxdamantus joins (~Maxdamant@unaffiliated/maxdamantus)
04:45:02 day_ joins (~Unknown@unaffiliated/day)
04:45:10 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 272 seconds)
04:45:36 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
04:47:15 <former_ocaml_use> anyone here a haskell-mode user? in ocaml you can check the type by cursoring over it and C-c t is there an equivalent?
04:47:47 aimee2 joins (~aimee@2605:a601:a671:4a00:443c:12b3:7e6a:e4a9)
04:47:55 <aimee2> >
04:48:08 aimee2 is now known as damien
04:48:20 × day quits (~Unknown@unaffiliated/day) (Ping timeout: 256 seconds)
04:48:21 day_ is now known as day
04:49:50 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:50:00 Tario joins (~Tario@201.192.165.173)
04:50:47 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
04:52:09 christo joins (~chris@81.96.113.213)
04:53:07 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
04:54:35 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:55:55 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:56:08 christo joins (~chris@81.96.113.213)
04:56:53 mmkarakaya joins (b0584711@gateway/web/cgi-irc/kiwiirc.com/ip.176.88.71.17)
04:57:47 × former_ocaml_use quits (3263cbdb@50.99.203.219) (Remote host closed the connection)
04:58:06 former_ocaml_use joins (3263cbdb@50.99.203.219)
04:58:18 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
04:59:18 <former_ocaml_use> uh this might be a dumb question, but does anyone know where cabal puts the executable? I see a main.o file in the project root, but nothing else
04:59:41 <koz_> former_ocaml_use: You used cabal new-build I assume? Or cabal build on recent cabal?
05:01:09 bartemius joins (~bartemius@109-252-19-142.nat.spd-mgts.ru)
05:01:24 <former_ocaml_use> cabal new-build
05:01:30 <bartemius> Hi, everyone!)
05:01:49 <former_ocaml_use> hi!
05:01:59 <koz_> former_ocaml_use: It'll be someplace in dist-newstyle.
05:02:01 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 264 seconds)
05:02:10 <koz_> Named the same way as the name given in the executable stanza in your cabal file.
05:02:19 <koz_> bartemius: Yo.
05:02:25 damien parts (~aimee@2605:a601:a671:4a00:443c:12b3:7e6a:e4a9) ("WeeChat 2.8")
05:03:14 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Quit: Leaving)
05:03:32 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:06:14 isovector1 joins (~isovector@172.103.216.166)
05:07:00 bartemius is now known as bartemius2
05:07:53 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
05:08:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:08:43 × isovector1 quits (~isovector@172.103.216.166) (Client Quit)
05:09:07 emmanuel_erc joins (~user@cpe-74-71-187-227.nyc.res.rr.com)
05:09:38 bartemius2 is now known as bartemius
05:11:54 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
05:13:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
05:13:44 × bartemius quits (~bartemius@109-252-19-142.nat.spd-mgts.ru) ()
05:14:02 bartemius joins (~bartemius@109.252.19.142)
05:16:36 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
05:21:20 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
05:27:28 × kupi quits (uid212005@gateway/web/irccloud.com/x-gbjfbdizrnfenkgr) (Quit: Connection closed for inactivity)
05:28:27 × klixto quits (~klixto@130.220.8.132) (Quit: WeeChat 2.9)
05:30:37 <sm[m]> cabal exec -- which EXE
05:30:59 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
05:34:15 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
05:34:36 polyrain joins (~polyrain@2001:8003:e501:6901:3dad:26f:cafa:b715)
05:36:06 ensyde_ joins (~ensyde@2600:1702:2e30:1a40:ec42:dd4:da87:efd)
05:37:22 × nschoe quits (~quassel@2a01:e0a:3c4:c7b0:6d74:2078:bb8:b17d) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
05:38:53 × ensyde quits (~ensyde@2600:1702:2e30:1a40:e4b3:9206:daf1:55c1) (Ping timeout: 272 seconds)
05:38:54 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 265 seconds)
05:40:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:40:42 × nados quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: Leaving)
05:41:20 klixto joins (~klixto@130.220.8.132)
05:42:14 <koz_> sm[m]: TIL
05:42:28 jsynacek joins (~jsynacek@ip-185-149-130-112.kmenet.cz)
05:45:39 <gnumonik> So just out of curiosity: I'm pretty sure you can't write a function in general :: Monad m => (a -> m b) -> m (a -> b). But could you write one for maybe, such that :: (a -> Maybe b) -> Maybe (a -> b)?
05:46:00 × xff0x quits (~fox@2001:1a81:522e:d900:5958:18c9:b577:aea) (Ping timeout: 244 seconds)
05:46:10 <koz_> gnumonik: Try writing one.
05:46:22 <koz_> (namely, try to write a function of that second type)
05:46:38 × darjeeli1 quits (~darjeelin@122.245.211.155) (Ping timeout: 256 seconds)
05:47:03 xff0x joins (~fox@2001:1a81:522e:d900:3ca3:6f29:ec50:cd22)
05:47:05 darjeeli1 joins (~darjeelin@122.245.211.155)
05:47:52 xerox_ joins (~xerox@unaffiliated/xerox)
05:53:01 <proofofme> I understand why this works: `maybe (print "Error") (print) =<< Streams.read is` How can I get something like this to work? `maybe (print "Error") (print "Hi") =<< Streams.read is`
05:53:21 <gnumonik> I did, but all the fact that I can't figure it out proves is that I can't figure it out. I managed to do it for... Identity. I guess I'll keep trying.
05:54:05 × ericsagnes quits (~ericsagne@2405:6580:0:5100:a53c:4941:44e2:1e75) (Ping timeout: 272 seconds)
05:54:25 alp joins (~alp@2a01:e0a:58b:4920:3863:dba:5e42:7950)
05:58:15 <Maxdamantus> gnumonik: it is possible, but it's just a case of taking some type with quantified variables and replacing one of the variables with a concrete type.
05:59:46 <Maxdamantus> gnumonik: eg, in `(a -> b) -> (b -> c) -> (a -> c)`, replacing `c` with `Int` to get `(a -> b) -> (b -> Int) -> (a -> Int)`
05:59:53 <Maxdamantus> f x y = 4
05:59:59 <Maxdamantus> er
06:00:02 × Jarsto1 quits (~Jarsto@185.244.214.216) ()
06:00:03 <Maxdamantus> f x y z = 4
06:00:51 bairyn joins (~bairyn@unaffiliated/bob0)
06:00:55 <Maxdamantus> You shouldn't actually be able to do what you wrote for `m = Identity`
06:01:09 <Maxdamantus> but `m = Maybe` is possible.
06:01:48 <Maxdamantus> Wait, nvm, `m = Identity` is also possible.
06:01:56 <gnumonik> f = Identity $ \x -> runIdentity $ f x
06:02:36 <gnumonik> er screwd up, should be "func f = Identity $ \x -> runIdentity $ f x"
06:03:26 <Maxdamantus> The `m = Maybe` solution is a lot simpler.
06:03:43 × former_ocaml_use quits (3263cbdb@50.99.203.219) (Remote host closed the connection)
06:05:38 × vk3wtf quits (~doc@14-202-30-62.static.tpgi.com.au) (Quit: WeeChat 2.7.1)
06:06:06 vk3wtf joins (~doc@14-202-30-62.static.tpgi.com.au)
06:06:17 ericsagnes joins (~ericsagne@2405:6580:0:5100:55fe:9659:6858:494f)
06:08:39 × alp quits (~alp@2a01:e0a:58b:4920:3863:dba:5e42:7950) (Ping timeout: 272 seconds)
06:10:48 shatriff joins (~vitaliish@176.52.219.10)
06:13:05 <edwardk> gnumonik: you can write one that just returns Nothing, nbut it isn't canonical.
06:13:48 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
06:14:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
06:16:01 chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
06:16:30 Ariakenom joins (~Ariakenom@h-82-196-111-189.NA.cust.bahnhof.se)
06:18:55 × polyrain quits (~polyrain@2001:8003:e501:6901:3dad:26f:cafa:b715) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:21:33 elsimio joins (~elsimio@185.204.1.185)
06:22:24 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 265 seconds)
06:24:19 ephemera_ joins (~E@122.34.1.187)
06:28:17 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
06:30:22 × taurux quits (~taurux@net-130-25-87-42.cust.vodafonedsl.it) (Read error: Connection reset by peer)
06:31:09 taurux joins (~taurux@net-93-144-108-52.cust.dsl.teletu.it)
06:33:04 × tromp quits (~tromp@dhcp-077-249-230-040.chello.nl) (Ping timeout: 260 seconds)
06:33:04 cfricke joins (~cfricke@unaffiliated/cfricke)
06:34:48 <koz_> Does anyone know how to inform Nix about where to find -lgmp and -lffi for a statically-linked Haskell executable?
06:34:58 <koz_> I dunno what exact phrase(s) I need in my default.nix for this.
06:38:09 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
06:39:22 <Ariakenom> koz_, dont u just include them as dependencies?
06:39:39 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Read error: Connection reset by peer)
06:39:59 <koz_> Ariakenom: If I pastebin you my default.nix, can you show me how?
06:40:19 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
06:40:32 <Ariakenom> lets try
06:41:01 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 264 seconds)
06:41:04 <koz_> https://gist.github.com/kozross/6f847d3e70e9641551c786b9d8ff18c9
06:42:40 ephemera_ joins (~E@122.34.1.187)
06:47:32 <Ariakenom> add a "buildInputs = [libffi gmp]" in the mkDerivation dict
06:48:11 <koz_> Ariakenom: error: undefined variable 'libffi' at /home/koz/nix-practice/default.nix:17:23
06:48:14 coot joins (~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl)
06:48:24 × falafel quits (~falafel@71-34-132-121.clsp.qwest.net) (Ping timeout: 260 seconds)
06:48:57 <Ariakenom> nixpkgs.libffi nixpkgs.gmp
06:49:16 <Ariakenom> do you have 3 different nixpkgs in that .nix? :)
06:49:34 × coot quits (~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl) (Client Quit)
06:49:49 <koz_> error: anonymous function at /nix/store/77bfgydlx63813nk3d0ac0w2h8rn6da1-source/pkgs/development/haskell-modules/generic-builder.nix:13:1 called with unexpected argument 'buildInputs', at /nix/store/77bfgydlx63813nk3d0ac0w2h8rn6da1-source/lib/customisation.nix:69:16
06:50:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:53:07 <koz_> Ariakenom: This doesn't vom from nix, but still can't find the libraries: https://gist.github.com/kozross/6f847d3e70e9641551c786b9d8ff18c9
06:53:25 × xff0x quits (~fox@2001:1a81:522e:d900:3ca3:6f29:ec50:cd22) (Ping timeout: 240 seconds)
06:54:15 xff0x joins (~fox@2001:1a81:522e:d900:3da7:5719:198:c125)
06:57:11 <Ariakenom> thats too bad. i dont think i can help more
06:57:12 <Ariakenom> "nix shell" is useful for testing.
06:57:16 tromp joins (~tromp@dhcp-077-249-230-040.chello.nl)
06:57:50 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:58:29 × howdoi quits (uid224@gateway/web/irccloud.com/x-mvchipvwhunlklgp) (Quit: Connection closed for inactivity)
06:58:31 <koz_> I'm basing my work on this: https://github.com/srid/neuron/blob/master/static.nix
06:58:46 <koz_> I think those --extra-lib-dirs= are needed, but I have no clue how they're being passed.
07:00:06 × bairyn quits (~bairyn@unaffiliated/bob0) (Remote host closed the connection)
07:03:07 <Uniaika> topos: has the CLC received a copy of my email, btw?
07:04:56 mananamenos joins (~mananamen@84.122.202.215.dyn.user.ono.com)
07:05:18 × gioyik quits (~gioyik@190.67.155.46) (Quit: WeeChat 2.9)
07:05:27 <remexre> is there a reasonably-standard monad for concurrency that allows labelled + manipulable coroutines, with a "parallel" operator (of the same type as sequence)
07:06:12 Psycomic joins (~Phi@2a01:e0a:18:d0a0:a923:9b97:77a2:ce49)
07:07:44 <remexre> I'm building... I guess it's kind of like a structural editor for an AST while it's being eval'd, so filling in a hole might cause reductions to be performed
07:08:01 <remexre> but I'd like to be able to write the actual eval function in reasonably normal-looking haskell
07:10:10 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 256 seconds)
07:10:12 × hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Ping timeout: 272 seconds)
07:11:35 ephemera_ joins (~E@122.34.1.187)
07:14:53 danvet_ joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:14:58 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Remote host closed the connection)
07:15:38 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
07:16:05 × DTZUZU quits (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net) (Ping timeout: 240 seconds)
07:16:15 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection)
07:16:25 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 240 seconds)
07:16:30 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
07:17:01 × Sgeo__ quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
07:17:37 danvet joins (~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453)
07:17:56 ephemera_ joins (~E@122.34.1.187)
07:18:28 DTZUZU joins (~DTZUZU@S0106bcd165662a4d.vs.shawcable.net)
07:18:30 jespada joins (~jespada@90.254.245.15)
07:21:04 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
07:22:40 coot joins (~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl)
07:23:24 × ephemera_ quits (~E@122.34.1.187) (Quit: No Ping reply in 180 seconds.)
07:23:46 ephemera_ joins (~E@122.34.1.187)
07:24:25 <dminuoso> gnumonik: regarding your initial question, consider this counter example. Imagine this function `general` existed, and you applied it to `putStrLn`, what would that even do?
07:25:14 <dminuoso> Remember it can't apply anything to function passed to it to anything, because it's fully polymorphic in `a`
07:25:28 <dminuoso> *It cant apply the function passed to it to anything
07:26:56 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:e14d:f5f1:4984:f268) (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:27:15 <dminuoso> If it cant apply to it, how can it come up with an arbitrary monadic value? Recall, since it's also polymorphic over *any* Monad m, it can't craft concrete effect values other than through pure.
07:27:19 <dminuoso> (Or `return` rather)
07:27:43 <dminuoso> But for pure, it'd need some value of `a -> b` for all choices of a and b, again not possible
07:28:01 rtb joins (~quassel@ip5f5bce51.dynamic.kabel-deutschland.de)
07:28:02 <dminuoso> The most defined implementation possible would be `general _ = pure undefined`
07:28:49 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 244 seconds)
07:29:09 berberman joins (~berberman@unaffiliated/berberman)
07:31:02 × mac10688 quits (~mac10688@c-76-115-116-76.hsd1.or.comcast.net) (Ping timeout: 265 seconds)
07:31:35 × jchia quits (~jchia@58.32.66.236) (Ping timeout: 258 seconds)
07:31:47 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:32:27 <merijn> dminuoso: pffft
07:32:34 <merijn> dminuoso: "pure unsafeCoerce" :p
07:35:43 <dminuoso> Well.
07:35:51 ping is now known as niko
07:35:56 <dminuoso> At that point, why not straight unsafeCoerce?
07:37:29 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
07:37:55 × rtb quits (~quassel@ip5f5bce51.dynamic.kabel-deutschland.de) (Remote host closed the connection)
07:38:52 jchia joins (~jchia@58.32.66.236)
07:39:28 × ensyde_ quits (~ensyde@2600:1702:2e30:1a40:ec42:dd4:da87:efd) (Quit: WeeChat 2.9)
07:39:29 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
07:39:42 lep-delete is now known as Guest88073
07:41:11 alp joins (~alp@2a01:e0a:58b:4920:8c2d:a3c8:958f:8d3d)
07:41:45 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
07:42:33 AceNovo joins (~chris@184.101.162.142)
07:43:23 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
07:43:31 <Ariakenom> koz_, why that one. and not ex https://github.com/nh2/static-haskell-nix
07:44:09 <koz_> Ariakenom: Because I have zero idea how that thing works or how to use it. I wanna get things from first principles ideally, and that's just too magical and has too much going on as far as I can tell.
07:44:10 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
07:44:12 <dminuoso> Ariakenom: the overlay is quite broken and unstable for starters
07:44:37 <koz_> However, your advice helped - I'm closer than I was!
07:44:41 <dminuoso> Every few commits on nixpkgs master the overlay breaks
07:45:01 <dminuoso> I'd rather use plain nix + dockerTools if I wanted a portable deployment
07:45:02 <Ariakenom> ouch
07:45:07 <dminuoso> From experience that works much more reliable
07:45:13 × jchia quits (~jchia@58.32.66.236) (Ping timeout: 264 seconds)
07:45:45 <Ariakenom> koz_, in the default.nix in that repo, the option with those library flags is configureFlags
07:46:12 <dminuoso> koz_: I can give you a quick guide how to use that overlay
07:46:26 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
07:46:30 <dminuoso> (You really want that, as there's many subtleties when building static things in nix)
07:46:46 jchia joins (~jchia@45.32.62.73)
07:46:47 <koz_> dminuoso: You mean static-haskell-nix?
07:46:51 <dminuoso> yes
07:47:09 <koz_> dminuoso: That would be good.
07:48:10 × jchia quits (~jchia@45.32.62.73) (Remote host closed the connection)
07:48:25 <dminuoso> koz_: https://gist.github.com/dminuoso/15222b2cb2a8b791525f902fe5beee4e
07:48:37 Guest88073 is now known as lep-delete
07:48:38 jchia joins (~jchia@45.32.62.73)
07:48:46 <dminuoso> (This is in the middle of my emacs buffer, so there might be some very basic but obvious issues)
07:49:17 <dminuoso> The json file contains just `{"url": "git://github.com/nh2/static-haskell-nix","ref": "master","rev": "dbce18f4808d27f6a51ce31585078b49c86bd2b5"}`
07:49:26 <dminuoso> So you can equivalently use fetchTarball or fetchGitHub
07:49:38 <dminuoso> There's really not much to it.
07:50:35 <koz_> OK. I'm very new to Nix, so I'm not too sure what's going on here. Specifically, what of this is general across any use of this overlay, as opposed to your specific thing you're working on?
07:50:46 <koz_> Like, what's a hello-world default.nix for it?
07:51:24 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
07:51:30 <dminuoso> koz_: It sets up GHC and libraries up appropriately to support static linking
07:51:32 GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
07:51:32 × GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
07:51:32 GyroW_ joins (~GyroW@unaffiliated/gyrow)
07:51:35 × irc_user quits (uid423822@gateway/web/irccloud.com/x-wddvdkxotqakcvrc) (Quit: Connection closed for inactivity)
07:51:42 <dminuoso> At its core, it boils down to two ideas being married here:
07:52:02 <dminuoso> First:
07:52:09 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
07:52:27 <dminuoso> To build a haskell package, I use callCabal2nix to dynamically generate a derivation that is always up-to-date. This is better than calling cabal2nix manually
07:52:38 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
07:52:54 <koz_> OK, that makes sense.
07:52:55 <dminuoso> Then, the derivation gets mixed into haskellPackages using an overlay
07:53:17 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
07:53:20 <dminuoso> At first that might seem silly, but it ties better into several tools, and it makes it easier if you have other packages that depend on it
07:53:33 × plutoniix quits (~q@ppp-27-55-70-11.revip3.asianet.co.th) (Read error: Connection reset by peer)
07:53:34 × jchia quits (~jchia@45.32.62.73) (Ping timeout: 260 seconds)
07:53:41 <dminuoso> So you pretend that your derivation sits inside the regular nixpkgs haskellPackages attribute set
07:54:24 <dminuoso> Im doing that overlay a bit more elaborate, since I want this to work with any compiler. If you're fine with just the canonical GHC compiler, the overlay is much simpler there.
07:54:33 mac10688 joins (~mac10688@c-76-115-116-76.hsd1.or.comcast.net)
07:54:34 borne joins (~fritjof@200116b864f0110043d332954cf9072f.dip.versatel-1u1.de)
07:54:45 <dminuoso> https://gist.github.com/dminuoso/15222b2cb2a8b791525f902fe5beee4e#file-default-nix-L11
07:55:05 <dminuoso> This is where I build up the nixpkgs with my own overlay that mixes freyja in
07:55:20 <dminuoso> Specifically, I overlay staticPkgs
07:55:27 <koz_> OK, so let me see if I understand this correctly.
07:55:44 <koz_> Lines 1-9 I need to get the overlay no matter what I'm building.
07:56:25 <koz_> Lines 12-26 is a list of a) things I wanna build and b) dependencies.
07:56:39 <dminuoso> not dependencies
07:56:42 <dminuoso> I just do overrides there
07:56:43 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
07:56:54 <dminuoso> Because some dependencies are sometimes not buildable out the box for some reasons
07:56:57 <koz_> Oh, I see.
07:57:04 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
07:57:07 <koz_> You have dontChecks and things.
07:57:09 <dminuoso> right
07:57:17 <dminuoso> *and* that's where I mix in my own derivation
07:57:21 <koz_> And callCabal2Nix.
07:57:24 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
07:57:37 <dminuoso> Indeed, that's what generates my derivatoin
07:57:51 <dminuoso> You can still override the cabal or the derivation using standard nix tools if need be
07:58:02 <koz_> Now 11, and 28-34, I don't get.
07:58:03 <dminuoso> (It really beats callCabal2nix and manually fiddling around)
07:58:11 <dminuoso> extendedPkgs = staticPkgs.extend pkgOverlay;
07:58:13 <dminuoso> This?
07:58:20 <koz_> That.
07:58:22 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
07:58:23 jchia joins (~jchia@45.32.62.73)
07:58:35 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 265 seconds)
07:58:38 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
07:58:38 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
07:58:38 GyroW joins (~GyroW@unaffiliated/gyrow)
07:58:56 <dminuoso> koz_: So look at this first https://gist.github.com/dminuoso/15222b2cb2a8b791525f902fe5beee4e#file-default-nix-L27-L33
07:59:02 <dminuoso> The main thing to understand, Im doing something more elaborate
07:59:07 <dminuoso> Than strictly needs be
07:59:29 <koz_> Ah, right that.
07:59:32 <dminuoso> Normally you could just say `haskellPackages.overrides = ...`
07:59:33 <koz_> You just explained.
07:59:37 <koz_> So technically optional?
07:59:51 ephemera_ joins (~E@122.34.1.187)
07:59:58 <dminuoso> Well that's just the version of haskellPackages.overrides that works for a particular GHC version
08:00:12 <dminuoso> You can just straight up copy it, it just does a nested attribute set merge
08:00:18 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
08:00:21 <dminuoso> ${compiler} = super.haskell.packages.${compiler}.override (makeHsOverrides super.haskell.lib);
08:00:22 <koz_> Ah, because you want it to work on any compiler, right?
08:00:31 <dminuoso> Right, or rather a particular compiler
08:00:37 <dminuoso> As opposed to whatever haskellPackages uses
08:00:49 × mac10688 quits (~mac10688@c-76-115-116-76.hsd1.or.comcast.net) (Ping timeout: 246 seconds)
08:01:11 <dminuoso> extendedPkgs = staticPkgs.extend pkgOverlay;
08:01:28 <dminuoso> Then is the entrypoint that uses the overlay to build up a new nixpkgs attrset with my overlay applied
08:01:40 <dminuoso> so inside extendedPkgs you can find:
08:01:54 <dminuoso> extendedPkgs.haskell.packages.${compiler}.freyja
08:01:57 <dminuoso> extendedPkgs.haskell.packages.${compiler}.freyja-api
08:02:06 <dminuoso> https://gist.github.com/dminuoso/15222b2cb2a8b791525f902fe5beee4e#file-default-nix-L35-L39
08:02:10 <dminuoso> This is where I reference that then
08:02:20 <dminuoso> Then from the outside, you can just say `nix-build -A exe`
08:02:25 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:02:39 × AceNovo quits (~chris@184.101.162.142) (Quit: Konversation terminated!)
08:02:51 <koz_> OK, that _mostly_ makes sense.
08:02:59 <koz_> I'll give it a try tomorrow and see if I can get it building.
08:03:03 AceNovo joins (~chris@184.101.162.142)
08:03:08 <koz_> (well, modulo what I need, obviously)
08:03:27 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
08:03:33 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Client Quit)
08:03:35 <dminuoso> koz_: If you get rid of all these dontCheck and overrideCabal things inside makeHsOverrides, then it should be much much more readable and clear :)
08:04:35 × jchia quits (~jchia@45.32.62.73) (Remote host closed the connection)
08:04:37 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
08:04:47 <koz_> OK, that makes worlds more sense. I'll give it a go, thanks.
08:05:07 jchia joins (~jchia@45.32.62.73)
08:06:07 × AceNovo quits (~chris@184.101.162.142) (Client Quit)
08:06:33 <dminuoso> Just know that the static-haskell-nix overlay is relatively unstable. So if you rely on fast moving targets in nixpkgs, building inside alpine might be much preferrable.
08:06:34 AceNovo joins (~chris@184.101.162.142)
08:06:44 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
08:06:51 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds)
08:07:01 × Rudd0^ quits (~Rudd0@185.189.115.98) (Remote host closed the connection)
08:07:43 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
08:08:14 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
08:08:33 <koz_> dminuoso: Using like, Docker or something?
08:08:38 <dminuoso> Yeah
08:09:06 <koz_> Noted, thanks!
08:09:22 <dminuoso> koz_: Btw, I think there's some bug in there. I was in the middle of refactoring it and stopped because I had some issues with a dependencies.
08:10:40 × jchia quits (~jchia@45.32.62.73) (Remote host closed the connection)
08:11:32 jchia joins (~jchia@58.32.66.236)
08:11:45 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
08:12:42 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:12:59 ephemera_ joins (~E@122.34.1.187)
08:12:59 × jedws quits (~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:13:31 kenran joins (~maier@b2b-37-24-119-190.unitymedia.biz)
08:14:21 kritzefitz joins (~kritzefit@p200300ecdf05be00f1ae985ba6d99bb3.dip0.t-ipconnect.de)
08:14:57 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: No route to host)
08:15:32 plutoniix joins (~q@node-uhv.pool-125-24.dynamic.totinternet.net)
08:16:28 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
08:17:13 thc202 joins (~thc202@unaffiliated/thc202)
08:17:26 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
08:18:48 × plutoniix quits (~q@node-uhv.pool-125-24.dynamic.totinternet.net) (Client Quit)
08:22:58 hackage alfred-margaret 1.1.1.0 - Fast Aho-Corasick string searching https://hackage.haskell.org/package/alfred-margaret-1.1.1.0 (rkrzr)
08:26:26 × drbean quits (~drbean@TC210-63-209-153.static.apol.com.tw) (Ping timeout: 256 seconds)
08:27:31 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-bbbnvzthyixtprkj) (Quit: Connection closed for inactivity)
08:27:57 × kritzefitz quits (~kritzefit@p200300ecdf05be00f1ae985ba6d99bb3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
08:28:20 kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49)
08:28:29 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:29:03 plutoniix joins (~q@node-uhv.pool-125-24.dynamic.totinternet.net)
08:31:24 bairyn joins (~bairyn@unaffiliated/bob0)
08:33:14 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
08:34:26 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 272 seconds)
08:34:39 mac10688 joins (~mac10688@c-76-115-116-76.hsd1.or.comcast.net)
08:35:50 ephemera_ joins (~E@122.34.1.187)
08:36:28 hackage ptr-poker 0.1.1.1 - Pointer poking action construction and composition toolkit https://hackage.haskell.org/package/ptr-poker-0.1.1.1 (NikitaVolkov)
08:36:28 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:36:40 ensyde joins (~ensyde@2600:1702:2e30:1a40:ec42:dd4:da87:efd)
08:38:42 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:38:51 phr0m3indh0v3n joins (~Android@84.241.205.21)
08:40:22 coot_ joins (~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl)
08:41:21 × ephemera_ quits (~E@122.34.1.187) (Ping timeout: 258 seconds)
08:41:59 × ensyde quits (~ensyde@2600:1702:2e30:1a40:ec42:dd4:da87:efd) (Quit: WeeChat 2.9)
08:42:45 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
08:43:49 kuribas joins (~user@ptr-25vy0i8tnjeny9qrt7n.18120a2.ip6.access.telenet.be)
08:44:02 × coot quits (~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 258 seconds)
08:44:03 coot_ is now known as coot
08:45:01 ephemera_ joins (~E@122.34.1.187)
08:45:07 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
08:48:23 knupfer joins (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de)
08:48:47 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
08:49:26 delYsid joins (~user@zidpc777.tugraz.at)
08:51:39 <delYsid> -Wname-shadowing drives me crazy. I guess I have been spoiled by Rust. I find myself often rebinding the same name, and finding new names is a waste of time. Adding the umteenth tick doesnt help with readability. Am I alone, or is -Wname-shadowing a pretty pedantic default?
08:53:04 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
08:53:59 Aquazi joins (uid312403@gateway/web/irccloud.com/x-zhrhclsenottifhf)
08:55:24 × plutoniix quits (~q@node-uhv.pool-125-24.dynamic.totinternet.net) (Ping timeout: 260 seconds)
08:55:58 hackage focus 1.0.1.4 - A general abstraction for manipulating elements of container data structures https://hackage.haskell.org/package/focus-1.0.1.4 (NikitaVolkov)
08:56:13 <lortabac> delYsid: I tend to use long names for toplevel definitions and abbreviations for the local ones, so I rarely get that warning
08:56:32 <dminuoso> delYsid: It's a very pedantic default indeed.
08:57:03 × Psycomic quits (~Phi@2a01:e0a:18:d0a0:a923:9b97:77a2:ce49) (Quit: Leaving)
08:57:45 <dminuoso> delYsid: One of the main annoyances is that you can't selectively turn it off for a binding via some pragma.
08:58:31 Whez joins (~textual@2a01:e0a:21f:1060:45e3:a6ce:25be:e68)
08:58:51 <dminuoso> Strangely, there's 2 parts where this would be useful. One is orphan instances, the other is shadowing names, but the GHC maintainers shot down attempts to cook something up for some "overarching universal tool to disable diagnostics selectively" idea, that nobody has followed for many years.
08:59:47 × bartemius quits (~bartemius@109.252.19.142) (Remote host closed the connection)
09:00:02 × elsimio quits (~elsimio@185.204.1.185) ()
09:01:01 × infinity0 quits (~infinity0@freenet/developer/infinity0) (Ping timeout: 246 seconds)
09:01:13 <kuribas> +1 for a pragma to disable it.
09:01:25 × phr0m3indh0v3n quits (~Android@84.241.205.21) (Ping timeout: 240 seconds)
09:01:47 <kuribas> it's occasionally useful
09:01:47 × knupfer quits (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
09:02:05 <Uniaika> sometimes I use expressions to avoid having to produce new variables to store intermediate values
09:02:13 <dminuoso> This diagnostic really is a double-edged sword. It tends to discover infinite recursion errors rather well, at the cost of having to rename your binders all the time.
09:02:14 <Uniaika> that doesn't apply everywhere of course
09:02:27 <Uniaika> but you can replace some do-notation with an applicative
09:02:41 <dminuoso> (though the cases of infinite recursion Im talking about are rather rare)
09:02:48 <dminuoso> Perhaps just disabling the diagnostic is better
09:05:57 hackage stm-containers 1.2 - Containers for STM https://hackage.haskell.org/package/stm-containers-1.2 (NikitaVolkov)
09:06:12 babygnu joins (~robert@111.169.23.93.rev.sfr.net)
09:06:53 plutoniix joins (~q@ppp-223-24-161-236.revip6.asianet.co.th)
09:08:25 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
09:08:41 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
09:08:51 <merijn> I think it's a sane enough default, if it really bothers you you can just turn it off >.>
09:08:57 hackage stm-containers 1.1.0.5 - Containers for STM https://hackage.haskell.org/package/stm-containers-1.1.0.5 (NikitaVolkov)
09:09:08 <merijn> I find -Wunused-do-bind much less useful, tbh
09:09:20 karanlikmadde joins (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192)
09:10:56 × whald quits (~trem@2a02:810a:8100:11a6:6d28:5eff:640c:9eda) (Quit: Leaving)
09:11:25 phr0m3indh0v3n joins (~Android@84.241.205.74)
09:12:01 <kuribas> infinite recursion errors are really hard to debug
09:12:08 × babygnu quits (~robert@111.169.23.93.rev.sfr.net) (Quit: Leaving)
09:13:14 × Whez quits (~textual@2a01:e0a:21f:1060:45e3:a6ce:25be:e68) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
09:13:32 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
09:13:46 <dminuoso> Are they, really?
09:14:00 × MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 260 seconds)
09:14:01 <kuribas> yes
09:14:20 <dminuoso> `+RTS xs -RTS` + sigint works rather well for me
09:15:13 <kuribas> what's xs?
09:15:18 <dminuoso> Err sorry xc
09:15:28 <dminuoso> The muscle memory defeated me. :)
09:15:44 babygnu joins (~robert@111.169.23.93.rev.sfr.net)
09:16:34 × hekkaidekapus} quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus})
09:16:34 <kuribas> good to know
09:17:17 MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone)
09:17:26 <dminuoso> You can also use GHCi with `:set -fbreak-on-error`
09:17:39 <dminuoso> And then run the offending expression with `:trace expr`
09:17:53 <dminuoso> Send sigint via Ctrl+C, then you have :history and :back
09:19:34 × taurux quits (~taurux@net-93-144-108-52.cust.dsl.teletu.it) (Ping timeout: 246 seconds)
09:19:41 × phr0m3indh0v3n quits (~Android@84.241.205.74) (Quit: -a- IRC for Android 2.1.59)
09:19:50 taurux joins (~taurux@net-188-152-1-136.cust.vodafonedsl.it)
09:20:32 hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
09:21:09 <maerwald> how do you figure out what error codes a servant handler might return?
09:21:54 <Taneb> maerwald: there's not currently a way but there's active work ongoing to change this
09:22:53 infinity0 joins (~infinity0@freenet/developer/infinity0)
09:23:23 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
09:25:29 whald joins (~trem@2a02:810a:8100:11a6:2147:d5b1:8d50:8e3)
09:26:19 gxt joins (~gxt@gateway/tor-sasl/gxt)
09:27:45 × AceNovo quits (~chris@184.101.162.142) (Ping timeout: 240 seconds)
09:28:12 <maerwald> Taneb: since 2017 https://github.com/haskell-servant/servant/issues/841
09:28:20 <maerwald> :D
09:28:41 <maerwald> I'm late to the party
09:29:16 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
09:29:52 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-olymsittyvaorogr) (Quit: Connection closed for inactivity)
09:31:25 solonarv joins (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr)
09:31:43 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:33:07 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
09:33:47 fendor joins (~fendor@77.119.130.12.wireless.dyn.drei.com)
09:34:28 hackage chessIO 0.4.0.0 - Basic chess library https://hackage.haskell.org/package/chessIO-0.4.0.0 (mlang)
09:36:49 elosant joins (uid446058@gateway/web/irccloud.com/x-gqcalxxblktojltg)
09:37:10 × mmkarakaya quits (b0584711@gateway/web/cgi-irc/kiwiirc.com/ip.176.88.71.17) (Quit: Connection closed)
09:37:23 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
09:37:56 × m1dnight_ quits (~m1dnight@188.ip-51-91-158.eu) (Quit: WeeChat 2.4)
09:38:48 × Stanley00 quits (~stanley00@unaffiliated/stanley00) ()
09:40:23 Stanley00 joins (~stanley00@unaffiliated/stanley00)
09:42:06 Plantain joins (~mdomin45@cpe-24-211-129-187.nc.res.rr.com)
09:42:13 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
09:42:28 m1dnight_ joins (~m1dnight@188.ip-51-91-158.eu)
09:44:31 zz01 joins (~xyz@210.18.180.63)
09:44:59 <dminuoso> A do-notation statement discarded a result of type ‘Void’
09:45:05 <dminuoso> merijn: You know what, you're right.
09:46:52 × fendor quits (~fendor@77.119.130.12.wireless.dyn.drei.com) (Remote host closed the connection)
09:47:13 × zz01 quits (~xyz@210.18.180.63) (Client Quit)
09:47:53 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
09:48:18 invaser joins (~Thunderbi@31.148.23.125)
09:49:36 × thunderrd quits (~thunderrd@183.182.110.178) (Quit: If it wasn't written down it didn't happen...)
09:50:24 <merijn> There's two warnings for do, one for "you used something with a non-() return in a do block" and one for "you returned an unused 'IO a' in a do block"
09:50:37 <merijn> The latter is somehwat useful, but the first one is just bollocks
09:50:54 <merijn> You end up wrapping everything in your parser with void ot "_ <-"
09:51:08 <dminuoso> unused `IO a`?
09:51:22 <dminuoso> What warning are you referring to?
09:51:48 <merijn> dminuoso: If you have "IO (IO ())"
09:51:56 <dminuoso> There's a warning for that?
09:51:58 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
09:52:07 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
09:52:08 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
09:52:08 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
09:52:08 GyroW joins (~GyroW@unaffiliated/gyrow)
09:52:12 <dminuoso> % pure getLine
09:52:13 <yahb> dminuoso:
09:52:49 <merijn> -Wwrong-do-bind
09:52:59 <merijn> dminuoso: Only in do notation
09:53:35 <dminuoso> Ah.
09:53:40 <dminuoso> % :set -Wall
09:53:40 <yahb> dminuoso:
09:53:48 <dminuoso> % do { pure getLine; pure 1 }
09:53:48 <yahb> dminuoso: ; <interactive>:67:6: warning: [-Wunused-do-bind]; A do-notation statement discarded a result of type `IO String'; Suppress this warning by saying `_ <- pure getLine'; <interactive>:67:25: warning: [-Wtype-defaults]; * Defaulting the following constraints to type `Integer'; (Num a0) arising from the literal `1' at <interactive>:67:25; (Show a0) arising from a use of `print' a
09:54:08 thir joins (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de)
09:54:13 <merijn> % :set -Wall -Wno-unused-do-bind
09:54:13 <yahb> merijn:
09:54:18 <merijn> % do { pure getLine; pure 1 }
09:54:19 <yahb> merijn: ; <interactive>:69:25: warning: [-Wtype-defaults]; * Defaulting the following constraints to type `Integer'; (Num a0) arising from the literal `1' at <interactive>:69:25; (Show a0) arising from a use of `print' at <interactive>:69:1-27; * In the first argument of `pure', namely `1'; In a stmt of a 'do' block: pure 1; In the first argument of `GHC.GHCi.ghciStepIO :: for
09:54:23 <merijn> ugh
09:54:31 <merijn> % do { pure getLine; pure 'c' }
09:54:31 <dminuoso> % do { pure getLine; pure "foo" }
09:54:31 <yahb> merijn: 'c'
09:54:31 <yahb> dminuoso: "foo"
09:54:34 manishearth1 joins (~manishear@195.206.169.184)
09:54:36 <merijn> hmm
09:54:41 <dminuoso> Maybe its not included in Wall?
09:54:42 <merijn> Maybe someone broke the warning :p
09:54:46 <merijn> It used to work
09:54:49 <dminuoso> % :set -Wall -Wno-unused-do-bind -Wwrong-do-bind
09:54:49 <yahb> dminuoso:
09:54:51 <dminuoso> % do { pure getLine; pure "foo" }
09:54:51 <yahb> dminuoso: "foo"
09:54:58 <dminuoso> Never seen it fire..
09:55:05 <merijn> % do { return getLine; pure 'c' }
09:55:05 <yahb> merijn: 'c'
09:55:10 <merijn> I have :p
09:55:18 <merijn> But that was long ago in 7.x
09:55:31 <dminuoso> fair enough, either way, this diagnostic doesnt seem useful ot me
09:55:46 <dminuoso> but, if I had it for free why not
09:56:01 × MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 264 seconds)
09:56:02 <merijn> It's helpful to not lose "free" actions after something like allocate
09:56:15 <dminuoso> but -Wno-unused-do-bind should become my default
09:56:36 <merijn> It already is for me :p
09:56:48 <merijn> dminuoso: Don't forget to enable -Wcompat, I always forget >.>
09:57:08 <dminuoso> I avoid the need by never updating GHC.
09:57:13 <dminuoso> :p
09:57:18 <merijn> ;)
09:57:38 <dminuoso> jokes aside, we're still using 8.6.5 for one project.
09:57:58 <merijn> I just moved my phd codebase from 8.6.5 to 8.10.2 :)
09:58:13 <dminuoso> Willing to bet facebook is still running on 7.*
09:58:31 grimgnr joins (~user@94.19.246.43)
09:58:56 <merijn> Probably not, ApplicativeDo is 8.x, no? :p
09:58:57 <dminuoso> 2 years ago they still were, and Simon kept humming and hawing when asked when they wanted to switch to 8.0..
09:59:10 × darjeeli1 quits (~darjeelin@122.245.211.155) (Ping timeout: 258 seconds)
09:59:11 <dminuoso> Mmm
09:59:14 MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone)
09:59:22 <dminuoso> Then they must be stuck on 8.0 or 8.2 then
09:59:39 × klixto quits (~klixto@130.220.8.132) (Quit: WeeChat 2.9)
09:59:41 × ericsagnes quits (~ericsagne@2405:6580:0:5100:55fe:9659:6858:494f) (Ping timeout: 244 seconds)
10:00:24 thunderrd joins (~thunderrd@183.182.110.178)
10:00:26 oisdk joins (~oisdk@2001:bb6:3329:d100:5538:baf2:3212:5e91)
10:00:27 Rudd0 joins (~Rudd0@185.189.115.103)
10:01:52 × thir quits (~thir@p200300f27f2f0100d058ed1e9e148e98.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
10:08:22 × bliminse quits (~bliminse@host217-42-95-37.range217-42.btcentralplus.com) (Ping timeout: 258 seconds)
10:09:11 bliminse joins (~bliminse@host217-42-95-37.range217-42.btcentralplus.com)
10:09:36 × babygnu quits (~robert@111.169.23.93.rev.sfr.net) (Quit: Leaving)
10:09:45 dcoutts_ joins (~duncan@33.14.75.194.dyn.plus.net)
10:10:40 bartemius joins (~bartemius@109.252.19.142)
10:11:23 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
10:12:08 ericsagnes joins (~ericsagne@2405:6580:0:5100:8ccf:20f3:8f5c:5150)
10:14:43 × m1dnight_ quits (~m1dnight@188.ip-51-91-158.eu) (Read error: Connection reset by peer)
10:15:52 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
10:16:20 m1dnight_ joins (~m1dnight@188.ip-51-91-158.eu)
10:16:42 <kuribas> dminuoso: what's wrong with 6.8.5?
10:16:52 <kuribas> erm 8.6.5
10:17:53 DavidEichmann joins (~david@43.240.198.146.dyn.plus.net)
10:20:15 darjeeli1 joins (~darjeelin@122.245.211.155)
10:20:33 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
10:21:29 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
10:21:48 GyroW_ joins (~GyroW@d54C03E98.access.telenet.be)
10:21:48 × GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
10:21:48 GyroW_ joins (~GyroW@unaffiliated/gyrow)
10:22:09 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection)
10:22:30 hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
10:23:22 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds)
10:25:30 <maerwald> yeah, you can't switch GHC just like that, especially if you rely on certain performance characteristics of your code
10:25:50 <maerwald> new version might be slower or faster or behave different for whatever reason
10:26:00 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
10:29:08 err joins (b9749498@185.116.148.152)
10:29:53 <dminuoso> kuribas: I like staying up to date on GHC for bug fixes and new features.
10:29:55 __monty__ joins (~toonn@unaffiliated/toonn)
10:30:20 <kuribas> dminuoso: are no bug fixes done for 8.6.5?
10:30:23 <dminuoso> I dont want my compiler/base be the reason why I cant get package `xyz` at a desired version.
10:30:51 <dminuoso> kuribas: The GHC team doesn't have the capacity to backport all fixes promptly.
10:31:16 <kuribas> I prefer a stable compiler over a cutting edge one with the latest features.
10:31:45 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
10:33:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:34:27 dhil joins (~dhil@195.213.192.122)
10:35:18 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:35:26 m0rphism joins (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de)
10:36:19 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
10:37:10 polyrain joins (~polyrain@2001:8003:e501:6901:3dad:26f:cafa:b715)
10:37:42 <maerwald> kuribas: 8.6.5 has still massive problems on windows with long paths
10:37:48 <maerwald> but 8.10.2 is also broken
10:38:07 <maerwald> and the windows fixes won't get backported to 8.6.5 afais
10:42:47 <__monty__> How many versions back does active GHC support go?
10:45:06 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
10:46:03 × alp quits (~alp@2a01:e0a:58b:4920:8c2d:a3c8:958f:8d3d) (Ping timeout: 272 seconds)
10:46:24 christo joins (~chris@81.96.113.213)
10:48:54 Neo-- joins (~neo@188-230-154-134.dynamic.t-2.net)
10:49:28 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
10:50:43 ADG1089 joins (uid455466@gateway/web/irccloud.com/x-yowoygznrcfrphli)
10:51:09 delYsid parts (~user@zidpc777.tugraz.at) ("ERC (IRC client for Emacs 27.1.50)")
10:54:06 × karanlikmadde quits (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192) (Quit: karanlikmadde)
10:55:24 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
10:56:35 alp joins (~alp@2a01:e0a:58b:4920:fc13:1084:2958:78e2)
10:56:59 toorevitimirp joins (~tooreviti@117.182.180.0)
10:57:22 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:57:34 × rprije quits (~rprije@110-175-117-18.tpgi.com.au) (Ping timeout: 246 seconds)
10:57:36 fendor joins (~fendor@e237-037.eduroam.tuwien.ac.at)
10:58:29 × phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
10:58:57 phaul joins (~phaul@ruby/staff/phaul)
11:00:06 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
11:00:48 × L29Ah quits (~L29Ah@unaffiliated/l29ah) (Ping timeout: 256 seconds)
11:02:00 <dminuoso> __monty__: Judging from a recent thread on the mailing list, I'd say backporting happens as far as 8.2.3
11:02:20 <dminuoso> Cant find any authoritative list of supported versions though
11:02:44 × MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 260 seconds)
11:02:56 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
11:03:33 × polyrain quits (~polyrain@2001:8003:e501:6901:3dad:26f:cafa:b715) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:03:41 L29Ah joins (~L29Ah@unaffiliated/l29ah)
11:04:03 machinedgod joins (~machinedg@24.105.81.50)
11:05:19 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
11:05:24 <dminuoso> servant-client question. If I want to log the request made for debugging purposes, is there some premade tools for that? Or should I set my own managerModifyRequest in the ManagerSettings of http-client?
11:06:23 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
11:06:24 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
11:06:24 GyroW joins (~GyroW@unaffiliated/gyrow)
11:06:42 <merijn> __monty__: Depends how much anyone cares to do the work
11:07:11 <merijn> __monty__: I don't think there's an official maintenance window for anything but the last release
11:07:14 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
11:07:20 polyrain joins (~polyrain@2001:8003:e501:6901:3dad:26f:cafa:b715)
11:07:42 <dminuoso> That alone should make you wary of using 8.6.5 in the long term.
11:07:53 <dminuoso> There's two different notions of "stable" here.
11:08:07 <merijn> The maintenance window is "you get what you pay for"
11:08:11 karanlikmadde joins (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192)
11:08:26 <dminuoso> There's "stable" meaning it's well tested and supposedly bug free, and there's "stable" meaning it's the supported versions that receives attention and prompt bug fixes.
11:08:27 <merijn> So, unless you pay someone to contribute to GHC and backport stuff for you... :p
11:08:32 <dminuoso> kuribas: ^-
11:09:10 <merijn> Which is fine
11:09:27 hackage splitmix 0.1.0.2 - Fast Splittable PRNG https://hackage.haskell.org/package/splitmix-0.1.0.2 (phadej)
11:09:38 <merijn> If your company relies on Haskell, maybe you *should* contribute to the ecosystem, rather than freeloading on volunteer labour
11:10:00 <kuribas> merijn: maybe you *should* just use java like everyone else.
11:10:01 MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone)
11:10:12 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
11:11:38 <merijn> If a company's opinion is "do all our support for free or we switch to Java", then I say, let them fuck off and switch to Java
11:12:34 <kuribas> I didn't say for free.
11:12:45 <kuribas> Companies are happy to pay good money for good tooling.
11:12:50 <merijn> kuribas: lol
11:13:02 <kuribas> But requiring them to develop or contribute to tooling is a big turn-off.
11:13:04 <dminuoso> Companies are generally not happy to pay good money.
11:13:11 <dminuoso> otoh nobody has ever been fired for buying cisco/ibm.
11:13:14 <merijn> So that's why all our infrastructure runs on free software maintained by unpaid people?
11:14:03 <dminuoso> merijn: Heh, its crazy isnt it. So many companies products rely on just glueing free software together.
11:14:21 <merijn> kuribas: Companies are happy to pay good money for *non-open source* tools
11:14:27 <merijn> Because they have no choice
11:14:48 <kuribas> not all of it :)
11:14:53 <kuribas> we use expensive vmware
11:14:55 × shatriff quits (~vitaliish@176.52.219.10) (Read error: Connection reset by peer)
11:15:04 <merijn> Given the number of companies building stuff in Haskell, I don't see anyone paying phadej or contributing stuff to cabal-install
11:15:12 <merijn> But I do so people whining about them
11:15:21 shatriff joins (~vitaliish@176.52.219.10)
11:15:39 <phadej> merijn: IOHK pays
11:15:48 <phadej> merijn: in fact for all the work in 2020
11:16:05 <merijn> phadej: That's good, but still only one out of probably hundreds :)
11:16:21 <kuribas> we pay for intellij licenses, so I don't see why we wouldn't pay for haskell tooling.
11:16:36 <dminuoso> phadej: Do they pay you directly? Or does the money go to some foundation?
11:16:37 <merijn> kuribas: Because you can't get intellij without paying for the license
11:16:53 <phadej> kuribas: cabal is more like `mvn`, it's not "tooling" per se
11:16:59 <kuribas> we can get eclipse for free... but intellij is just better
11:17:00 <phadej> or very low-level
11:17:07 <merijn> In general IOHK seems to contribute more than many others
11:17:21 <merijn> kuribas: Note how eclipse is open source and intellij isn't?
11:17:31 <phadej> dminuoso: IOHK pays Well-Typed for someone to work on Cabal
11:17:34 <merijn> You're just making my point for me ;)
11:17:57 <phadej> dminuoso: similarish setup how companies X and Y pay Well_Typed for someone to work on GHC
11:18:10 <kuribas> isn't FP complete doing some work on haskell infra?
11:18:12 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds)
11:18:15 <merijn> If we made cabal-install closed source I'm sure we could have a well-funded company in no time and thus much more dedicated work
11:18:22 <phadej> kuribas: not as far as I'm aware
11:18:30 <merijn> Isn't FP complete mostly doing work on fracturing the infrastructure community? :p
11:18:33 <phadej> or well, you can say Stacakge is haskell infra
11:18:46 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:18:47 <phadej> but it's more or less owned by FP complete, so you can say "on their infra" as well (IMO)
11:19:48 <kuribas> merijn: why not a closed source IDE, where the developpers also contribute to tooling and compilers?
11:20:27 <sclv> not enough users
11:20:40 christo joins (~chris@81.96.113.213)
11:20:44 <merijn> Also, then all the beginners, hobbiests, etc. are left out
11:20:44 <sclv> no paid ide would be profitable or even close
11:20:58 <kuribas> and not enough users because not good tooling
11:22:25 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
11:22:35 <kuribas> so how does clojure do it?
11:23:25 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
11:23:30 thir joins (~thir@pd9e1b1d6.dip0.t-ipconnect.de)
11:23:35 <dminuoso> Running on jvm and java interop is probably a big part of it.
11:23:56 <dminuoso> That means interfacing with existing code is reasonably easy, and you get access to a relatively large eco system that way
11:23:57 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
11:25:17 <dminuoso> I'd argue that similarly C++ wouldn't have had nearly as much success as it did, if it wasn't largely C-compatible by syntax, and didn't have seamless linkage into C.
11:25:33 <merijn> kuribas: "we provide escape from Java"
11:25:46 <merijn> kuribas: Also, by Rich Hickey labouring unpaid for ages to bootstrap things
11:26:01 <dminuoso> merijn: And that's probably survival bias right there!
11:26:04 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
11:26:08 <merijn> Yeah
11:27:00 <merijn> It's just baffling how software engineers as a community can see billion/trillion dollar companies exploiting unpaid labour in open source while stressing out maintainers and go "yeah...this is fine!"
11:27:23 christo joins (~chris@81.96.113.213)
11:27:34 <kuribas> merijn: for what it's worth, we are not a billion dollar company, and we are barely profitable.
11:27:37 Franciman joins (~francesco@host-82-48-166-25.retail.telecomitalia.it)
11:27:50 × thir quits (~thir@pd9e1b1d6.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
11:27:53 <kuribas> merijn: actually our current project isn't even profitable yet
11:27:57 <merijn> And instead of going "hey, wait, maybe these people can damn well pay for all this support they want" and instead go "we should bend over backwards to be used"
11:28:14 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
11:28:16 <merijn> kuribas: That sounds like a "your company" problem and not a "open source maintainer" problem
11:28:16 × Franciman quits (~francesco@host-82-48-166-25.retail.telecomitalia.it) (Client Quit)
11:28:34 Franciman joins (~francesco@host-82-48-166-25.retail.telecomitalia.it)
11:30:09 <kuribas> btw clojure tooling isn't that nice IMO
11:30:26 <kuribas> I think haskell is still better, if only because of the type system.
11:31:01 <kuribas> clojure: no dead code detection, no way to see if you are calling functions that don't exist.
11:31:02 <merijn> Frankly, I don't care if companies are billion dollar companies or 2 cents away from bankruptcy. I support what's convenient for me and if you need more I can send you my bank account and an invoice
11:31:15 <opqdonut> well said
11:31:43 <kuribas> merijn: personally I think with the bad tooling etc haskell is still better and more productive than what we have currently.
11:31:50 <kuribas> merijn: but it's hard to convince others
11:31:51 <merijn> And if that causes everyone who wants more from open source to leave, I say "good riddance"
11:32:01 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
11:32:51 <kuribas> it's always the same myth "haskell is not practical because it's made by/for academists"
11:33:21 <merijn> I'm not convinced "better tooling" will have measurable impact on "people who have dumb opinions"
11:35:14 <kuribas> though there is some truth to it.
11:35:33 tersetears[m] joins (tersetears@gateway/shell/matrix.org/x-idycfalifvfectvy)
11:38:08 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:38:33 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
11:39:11 <dminuoso> So... for over a year Ive been using LoggingT and ReaderT. Why exactly have runLoggingT and runReaderT the argument order they have?
11:39:23 <dminuoso> Every time I feel like they should be flipped
11:39:52 <merijn> dminuoso: Because they use record syntax?
11:40:02 <dminuoso> merijn: That's such a poor reason. :(
11:40:06 <merijn> Yes
11:40:29 <kuribas> dminuoso: that annoys me too
11:40:43 <kuribas> runState as well
11:40:48 <kuribas> :t runStateT
11:40:50 <lambdabot> StateT s m a -> s -> m (a, s)
11:41:39 knupfer joins (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de)
11:41:41 <lortabac> has anybody every used run* without flip?
11:41:54 <dminuoso> lortabac: Yes
11:42:01 <dminuoso> I use & (.) and sections
11:42:25 <merijn> I use where bindings :p
11:42:28 <merijn> I dislike flip
11:42:32 <dminuoso> foo & (`runFoo` f) . (`runBar` b)
11:42:42 <dminuoso> (you can align the dots with the (&) nicely
11:42:48 <lortabac> I use where too, it was just a joke
11:43:11 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
11:43:11 × knupfer quits (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
11:44:23 Amras joins (~Amras@unaffiliated/amras0000)
11:44:44 knupfer joins (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de)
11:46:09 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 246 seconds)
11:46:09 × elosant quits (uid446058@gateway/web/irccloud.com/x-gqcalxxblktojltg) (Quit: Connection closed for inactivity)
11:47:45 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
11:48:25 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
11:49:32 christo joins (~chris@81.96.113.213)
11:50:13 unfixpoint joins (550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch)
11:50:30 × kenran quits (~maier@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 256 seconds)
11:50:53 <unfixpoint> It's been a while since I've been using lenses for the last time, here's a thing which I'm stuck on:
11:51:29 <dminuoso> lortabac: I was serious though https://gist.github.com/dminuoso/e28a461bcb324a5d29c125165c0da0e0
11:51:43 <unfixpoint> If I have a `State (Array Int Bool) *` I can change state with `ix 0 .= True` but I cannot read somehow?
11:52:16 <unfixpoint> `use (ix 0)` always tells me: No instance for (Monoid Bool) arising from a use of `ix'
11:52:30 <dminuoso> unfixpoint: You are probably view'ing through a Fold.
11:52:40 <dminuoso> (Or a traversable)
11:52:51 <dminuoso> Consider:
11:52:58 <unfixpoint> Are you saying it's an issue with GHC.Arr.Array?
11:53:12 <dminuoso> oh mm
11:53:26 <unfixpoint> I could move to `IntMap` but not sure whether that'd help
11:53:26 <dminuoso> unfixpoint: ix gives you a traversal back
11:53:29 <dminuoso> That's the problem
11:53:43 <dminuoso> Consider a more simplified example:
11:53:45 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
11:53:56 <dminuoso> [Product 1, Product 2, Product 3] ^. each
11:53:58 <dminuoso> What should that give you?
11:54:03 <dminuoso> What would you expect?
11:54:08 <unfixpoint> [1..3]?
11:54:19 <dminuoso> % [Product 1, Product 2, Product 3] ^. each
11:54:19 <yahb> dminuoso: ; <interactive>:76:1: warning: [-Wtype-defaults]; * Defaulting the following constraints to type `Integer'; (Show a0) arising from a use of `print' at <interactive>:76:1-41; (Num a0) arising from a use of `it' at <interactive>:76:1-41; * In a stmt of an interactive GHCi command: print it; Product {getProduct = 6}
11:54:24 <dminuoso> % [Product 1 :: Product Int, Product 2, Product 3] ^. each
11:54:25 <yahb> dminuoso: Product {getProduct = 6}
11:54:30 <dminuoso> unfixpoint: ^- voila. Maximum surprise.
11:54:52 <dminuoso> When you view through a fold/traversable, it uses the monoid instance on what you're looking at to combine all targets.
11:54:54 <unfixpoint> Oh so it wants to mconcat it?
11:55:01 <dminuoso> and it defaults to mempty if there's nothing to look at
11:55:03 <dminuoso> so
11:55:11 <dminuoso> % [] ^. each :: Product Int
11:55:11 <yahb> dminuoso: Product {getProduct = 1}
11:55:14 invaser joins (~Thunderbi@31.148.23.125)
11:55:15 <merijn> unfixpoint: Incidentally Data.Monoid has two newtypes for Bool to get a monoid
11:55:27 <merijn> unfixpoint: "Any" and "All"
11:55:27 × knupfer quits (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
11:55:29 <unfixpoint> It's not `Bool` there ;)
11:55:44 <merijn> > Any True <> Any False
11:55:46 <lambdabot> Any {getAny = True}
11:55:47 <dminuoso> unfixpoint: Right. Recall, a traversal/foldable has 0-to-many targets.
11:55:55 <dminuoso> unfixpoint: so now:
11:55:55 <merijn> > All True <> All False
11:55:57 <lambdabot> All {getAll = False}
11:55:58 hackage jsonifier 0.1.0.3 - Fast and simple JSON encoding toolkit https://hackage.haskell.org/package/jsonifier-0.1.0.3 (NikitaVolkov)
11:55:58 <dminuoso> ix :: Index m -> Traversal' m (IxValue m)
11:56:12 <unfixpoint> The probably actually occurs with a `data`-type and I'm using `ix 0 . entryBla .= xxx` and `view (ix 0 . entryBla)` etc.
11:56:36 <dminuoso> unfixpoint: ^- now because this produces a Traversal, which could have many targets or none, the view implementation demands a monoid
11:56:51 <unfixpoint> Is there a way, or should I just implement a Monoid instance?
11:57:01 <dminuoso> unfixpoint: you could just use toListOf instead
11:57:06 <merijn> unfixpoint: There already is one as I pointed out :p
11:57:14 <merijn> Well, two, actually
11:57:24 × MindlessDrone quits (~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 260 seconds)
11:58:04 <dminuoso> unfixpoint: So what you could do:
11:58:08 <unfixpoint> For Bool yeah, but not for the actual type. I just used Bool as example
11:58:22 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
11:58:34 geekosaur joins (ac3a8cd5@172.58.140.213)
11:58:52 <dminuoso> % [True, False, True] ^. ix 1
11:58:53 <yahb> dminuoso: ; <interactive>:84:24: error:; * No instance for (Monoid Bool) arising from a use of `ix'; * In the second argument of `(^.)', namely `ix 1'; In the expression: [True, False, True] ^. ix 1; In an equation for `it': it = [True, False, True] ^. ix 1
11:58:55 <dminuoso> % [True, False, True] ^. ix 1 . to Any
11:58:55 <yahb> dminuoso: Any {getAny = False}
11:58:58 <dminuoso> unfixpoint: ^- there
11:59:03 <dminuoso> You can also use `ala` if you like
11:59:37 <dminuoso> unfixpoint: ah. if you want this to work with anything, use toListOf instead.
11:59:43 <dminuoso> And accept the fact that you cant view through a traversa
11:59:53 <dminuoso> (The fact this works at all is surprising and disliked by some)
11:59:59 <merijn> Or use First
12:00:01 × manishearth1 quits (~manishear@195.206.169.184) ()
12:00:05 <merijn> and/or Last
12:00:34 <merijn> > First (Just 1) <> First (Just 2) <> First (Just 3)
12:00:38 <lambdabot> First {getFirst = Just 1}
12:01:05 MindlessDrone joins (~MindlessD@unaffiliated/mindlessdrone)
12:02:40 × lep-delete quits (~lep@94.31.82.44) (Ping timeout: 265 seconds)
12:03:05 × err quits (b9749498@185.116.148.152) (Remote host closed the connection)
12:03:28 <unfixpoint> Yeah, First makes most sense. I don't want to convert it to list as I only care about a certain index
12:03:50 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
12:04:40 <unfixpoint> Maybe I should just use `(!0) <$> get` and not use lens for the array access.
12:06:03 × Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
12:06:27 urodna joins (~urodna@unaffiliated/urodna)
12:07:01 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:07:54 da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com)
12:08:30 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
12:08:56 <unfixpoint> `use (ix i . entryBla)` would be so much nicer than `_entryBla . (!i) <$> get` heh
12:09:12 djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
12:10:08 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
12:11:02 × Maxdamantus quits (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 272 seconds)
12:11:11 Tario joins (~Tario@201.192.165.173)
12:11:20 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
12:12:30 Maxdamantus joins (~Maxdamant@unaffiliated/maxdamantus)
12:12:33 × codygman quits (~codygman@47-184-107-46.dlls.tx.frontiernet.net) (Read error: Connection reset by peer)
12:12:53 codygman joins (~codygman@47-184-107-46.dlls.tx.frontiernet.net)
12:13:31 × Kaivo quits (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) (Ping timeout: 246 seconds)
12:14:59 Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer)
12:15:27 × karanlikmadde quits (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192) (Quit: karanlikmadde)
12:15:43 christo joins (~chris@81.96.113.213)
12:16:05 Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com)
12:17:17 break_point joins (~user@93.177.73.90)
12:18:00 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
12:19:29 × tersetears[m] quits (tersetears@gateway/shell/matrix.org/x-idycfalifvfectvy) (Quit: authenticating)
12:19:38 tersetears[m] joins (tersetears@gateway/shell/matrix.org/x-oyfdvgnkfjkfeqwt)
12:20:14 avn joins (~avn@78-56-108-78.static.zebra.lt)
12:20:53 × tersetears[m] quits (tersetears@gateway/shell/matrix.org/x-oyfdvgnkfjkfeqwt) (Client Quit)
12:21:03 tersetears[m] joins (tersetears@gateway/shell/matrix.org/x-pldppmjclmpzqaog)
12:23:45 × unfixpoint quits (550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch) (Remote host closed the connection)
12:29:32 × toorevitimirp quits (~tooreviti@117.182.180.0) (Ping timeout: 256 seconds)
12:30:56 christo joins (~chris@81.96.113.213)
12:31:20 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:31:33 drbean joins (~drbean@TC210-63-209-68.static.apol.com.tw)
12:36:54 × break_point quits (~user@93.177.73.90) (Remote host closed the connection)
12:41:46 ski joins (~ski@nc-2504-30.studat.chalmers.se)
12:43:49 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
12:45:02 × fendor quits (~fendor@e237-037.eduroam.tuwien.ac.at) (Quit: Leaving)
12:48:57 mmkarakaya joins (b0584711@gateway/web/cgi-irc/kiwiirc.com/ip.176.88.71.17)
12:52:14 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
12:52:36 totallynotnate joins (~nate@110.138.18.157)
12:52:41 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
12:52:43 × Buntspecht quits (~user@unaffiliated/siracusa) (Quit: Bye!)
12:52:56 Whez joins (~textual@2a01:e0a:21f:1060:d47a:6e97:3e60:fddf)
12:54:47 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
12:56:31 × Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
12:57:23 Amras joins (~Amras@unaffiliated/amras0000)
12:57:35 nbloomf joins (~nbloomf@2600:1700:ad14:3020:e14d:f5f1:4984:f268)
12:57:47 × Whez quits (~textual@2a01:e0a:21f:1060:d47a:6e97:3e60:fddf) (Ping timeout: 272 seconds)
12:58:44 <dminuoso> @tell unfixpoint the lens-y way of (!0) is to use unsafeSingular which says "This looks like a traversal, but I do promise it targets one and only one element. Burden of proof is on me. Make it a lens!"
12:58:45 <lambdabot> Consider it noted.
13:00:58 hackage clckwrks-plugin-redirect 0.0.1 - support redirects for CMS/Blogging in clckwrks https://hackage.haskell.org/package/clckwrks-plugin-redirect-0.0.1 (JeremyShaw)
13:02:29 <dminuoso> @tell unfixpoint So you could also just say `use (unsafeSingular (ix 0))` - but then you have to ensure that `ix 0` definitely points at an element, or a bottom with 6 legs will crawl up on you.
13:02:29 <lambdabot> Consider it noted.
13:06:33 × nbloomf quits (~nbloomf@2600:1700:ad14:3020:e14d:f5f1:4984:f268) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:06:39 raichoo joins (~raichoo@dslb-188-100-014-089.188.100.pools.vodafone-ip.de)
13:08:45 karanlikmadde joins (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192)
13:09:41 Ariakenom_ joins (~Ariakenom@h-155-4-221-35.NA.cust.bahnhof.se)
13:10:54 errst joins (~errst@unaffiliated/tirej)
13:11:01 × errst quits (~errst@unaffiliated/tirej) (Client Quit)
13:11:22 tirej joins (~tirej@unaffiliated/tirej)
13:11:23 tirej is now known as errst
13:11:53 × borne quits (~fritjof@200116b864f0110043d332954cf9072f.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
13:12:37 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
13:13:44 × Ariakenom quits (~Ariakenom@h-82-196-111-189.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
13:15:03 × carlomagno1 quits (~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection)
13:15:41 proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net)
13:16:22 fendor joins (~fendor@e237-037.eduroam.tuwien.ac.at)
13:18:39 carlomagno joins (~cararell@inet-hqmc01-o.oracle.com)
13:20:14 × proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Ping timeout: 260 seconds)
13:20:16 <dminuoso> for_ [sigTERM, sigINT, sigKILL] $ \sig -> liftIO (installHandler sig (Catch (io suicide)) Nothing)
13:20:41 <geekosaur> you can't catch sigKILL
13:20:41 <dminuoso> This line of code causes tje line "agnar: sigaction" to be written to stderr once.
13:20:56 <dminuoso> geekosaur: Oh! That was prompt. :>
13:21:04 × mmkarakaya quits (b0584711@gateway/web/cgi-irc/kiwiirc.com/ip.176.88.71.17) (Quit: Connection closed)
13:21:21 <geekosaur> I don't know if it's checking that, but it immediately came to mind
13:21:55 <geekosaur> ("agnar"? "range" backwards?)
13:21:56 × puffnfresh quits (~puffnfres@180-150-38-83.b49626.bne.nbn.aussiebb.net) (Ping timeout: 265 seconds)
13:22:07 <dminuoso> Haha no my process is called agnar
13:22:51 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
13:23:29 puffnfresh joins (~puffnfres@180-150-38-83.b49626.bne.nbn.aussiebb.net)
13:24:18 nbloomf joins (~nbloomf@76.217.43.73)
13:24:29 <tomjaguarpaw> If I am running cabal v2-repl and I :load a file from outside my project then I can no longer import modules from my project. If I :load a file from my project then I can import modules from my project again. Does anyone know why this happens?
13:24:59 <merijn> hmmm, what's the best way to get some absolute paths into my code? I'm leaning towards "build-type: Configure" and having the paths as CPP defines, but that's a bit messy. Any better solutions?
13:26:17 <geekosaur> tomjaguarpaw, :load sets the base from which imports and such work. so you'd be able to import modules related to the :load-ed file afterward
13:26:19 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
13:26:49 <geekosaur> that's how ghci works, not something cabal repl can change
13:27:08 <geekosaur> some ways it's best to think of :load as loading a project, not a file
13:27:23 <tomjaguarpaw> But if I :load a file I can still import modules that are build-depends
13:27:58 <dminuoso> geekosaur: Cheers, that helped. The output on stderr comes from the RTS, but it seems the implementation of installHandler silently ignores the error code returned by the RTS.
13:28:07 <tomjaguarpaw> I assumed that v2-repl would build my project and expose it in exactly the same way as other build-depends packages, but I guess not.
13:28:15 espadrine joins (~espadrine@195.140.213.38)
13:28:19 <geekosaur> right, because they're passed as -package parameters so still there. :load changes what modules are considered part of the current project
13:28:26 <merijn> dminuoso: FYI, I would consider the current signal handling code of the RTS *highly* questionable
13:28:28 × polyrain quits (~polyrain@2001:8003:e501:6901:3dad:26f:cafa:b715) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:28:33 <geekosaur> they're fundamentally different things to ghc / ghci
13:28:34 <tomjaguarpaw> Can I :load two different modules at once?
13:28:40 <geekosaur> nope
13:28:53 <dminuoso> merijn: Well Im just staring at the `unix` package, and the installHandler itself is doing funky things.
13:29:43 <tomjaguarpaw> So if I have a project and I want to :load a file to play around with that project's functionality then I am out of luck? I'm sure I've done that before, I just can't remember how ...
13:29:54 <dminuoso> It ignores the return code of stg_sig_install if the previous handler was the default handler or ignored..
13:29:57 <dminuoso> That seems awfully wrong.
13:30:16 <dminuoso> Oh heh, it always ignores error conditions.
13:30:37 <geekosaur> tomjaguarpaw, more or less unless you can make it part of your project or make it a build-depends lib
13:30:39 <dminuoso> geekosaur: Anyway, thanks. Gave me the answer before I even described the problem. :)
13:30:48 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
13:30:59 <merijn> dminuoso: The entire RTS approach to signals is super questionable and it's somewhere on my list of yaks to look into
13:31:31 <tomjaguarpaw> geekosaur: OK thanks. That's very surpsing.
13:31:43 <geekosaur> ghci's a bit of a hack
13:32:01 <geekosaur> and wht cabal and stack try to make it do is a hack on top of a hack
13:32:43 <dminuoso> merijn: Well Im staring at undocumented and half dead code pathshere.
13:32:59 <merijn> dminuoso: So, maybe I'll get around to looking at it by 2050 :p
13:33:00 × nbloomf quits (~nbloomf@76.217.43.73) (Quit: Textual IRC Client: www.textualapp.com)
13:33:05 ystael joins (~ystael@209.6.50.55)
13:33:28 hackage bugsnag-haskell 0.0.4.0 - Bugsnag error reporter for Haskell https://hackage.haskell.org/package/bugsnag-haskell-0.0.4.0 (PatrickBrisbin)
13:33:34 <dminuoso> This particular bug seems to be easy to fix though.
13:38:58 × fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
13:39:04 × jespada quits (~jespada@90.254.245.15) (Ping timeout: 272 seconds)
13:41:02 jespada joins (~jespada@90.254.245.15)
13:41:14 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
13:42:14 × emmanuel_erc quits (~user@cpe-74-71-187-227.nyc.res.rr.com) (Ping timeout: 272 seconds)
13:44:00 × drbean quits (~drbean@TC210-63-209-68.static.apol.com.tw) (Ping timeout: 256 seconds)
13:45:14 polyrain joins (~polyrain@2001:8003:e501:6901:3dad:26f:cafa:b715)
13:46:41 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
13:46:57 kenran joins (~maier@b2b-37-24-119-190.unitymedia.biz)
13:47:31 ap5 joins (~ap5@85.184.161.18)
13:47:39 × polyrain quits (~polyrain@2001:8003:e501:6901:3dad:26f:cafa:b715) (Client Quit)
13:47:58 hackage hadolint 1.18.2 - Dockerfile Linter JavaScript API https://hackage.haskell.org/package/hadolint-1.18.2 (lorenzo)
13:50:03 × ech quits (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds)
13:50:26 Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
13:51:13 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
13:51:54 hiroaki joins (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de)
13:52:19 × kenran quits (~maier@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 260 seconds)
13:52:28 hackage ghc-events-analyze 0.2.8 - Analyze and visualize event logs https://hackage.haskell.org/package/ghc-events-analyze-0.2.8 (EdskoDeVries)
13:55:11 × geekosaur quits (ac3a8cd5@172.58.140.213) (Remote host closed the connection)
14:00:21 × ADG1089 quits (uid455466@gateway/web/irccloud.com/x-yowoygznrcfrphli) (Quit: Connection closed for inactivity)
14:00:47 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
14:00:47 × xff0x quits (~fox@2001:1a81:522e:d900:3da7:5719:198:c125) (Ping timeout: 244 seconds)
14:01:32 xff0x joins (~fox@2001:1a81:522e:d900:f83c:af94:c3a5:2d3f)
14:03:00 × totallynotnate quits (~nate@110.138.18.157) (Quit: WeeChat 2.9)
14:06:26 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 256 seconds)
14:07:29 ech joins (~user@gateway/tor-sasl/ech)
14:09:24 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
14:10:58 hackage miv 0.4.3 - Vim plugin manager written in Haskell https://hackage.haskell.org/package/miv-0.4.3 (itchyny)
14:11:32 × ericsagnes quits (~ericsagne@2405:6580:0:5100:8ccf:20f3:8f5c:5150) (Ping timeout: 260 seconds)
14:12:17 Stanley|00 joins (~stanley00@unaffiliated/stanley00)
14:13:10 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Ping timeout: 265 seconds)
14:14:21 × Stanley|00 quits (~stanley00@unaffiliated/stanley00) (Disconnected by services)
14:14:25 invaser joins (~Thunderbi@31.148.23.125)
14:15:58 p8m_ joins (p8m@gateway/vpn/protonvpn/p8m)
14:16:12 conal joins (~conal@64.71.133.70)
14:16:59 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
14:17:02 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 265 seconds)
14:17:57 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
14:17:58 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
14:18:25 <hyperisco> how can I get the last modification time of a file for both posix and windows systems?
14:18:58 hackage yesod-core 1.6.18.5 - Creation of type-safe, RESTful web applications. https://hackage.haskell.org/package/yesod-core-1.6.18.5 (MaxGabriel)
14:19:02 <hyperisco> oh derp it is in the directory package
14:19:35 Lord_of_Life joins (~Lord@46.217.196.111)
14:21:49 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
14:22:15 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
14:23:08 conal_ joins (~conal@66.115.176.210)
14:23:51 ericsagnes joins (~ericsagne@2405:6580:0:5100:2827:63d8:269e:cab4)
14:24:03 × puffnfresh quits (~puffnfres@180-150-38-83.b49626.bne.nbn.aussiebb.net) (Ping timeout: 258 seconds)
14:24:40 nados joins (~dan@69-165-210-185.cable.teksavvy.com)
14:24:59 × conal quits (~conal@64.71.133.70) (Ping timeout: 260 seconds)
14:25:35 × kritzefitz quits (~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection)
14:25:53 × Lord_of_Life quits (~Lord@46.217.196.111) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
14:27:08 Saukk joins (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
14:27:13 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
14:28:22 ap5 parts (~ap5@85.184.161.18) ("kthxbye")
14:31:25 × dyeplexer quits (~lol@unaffiliated/terpin) (Ping timeout: 240 seconds)
14:31:48 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
14:31:49 emmanuel_erc joins (~user@2604:2000:1382:ce03:94e9:f71a:61cb:48a4)
14:34:41 mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1)
14:35:57 × alp quits (~alp@2a01:e0a:58b:4920:fc13:1084:2958:78e2) (Ping timeout: 272 seconds)
14:38:24 Lord_of_Life joins (~Lord@46.217.196.111)
14:39:00 irc_user joins (uid423822@gateway/web/irccloud.com/x-eatidcztrwplllyi)
14:39:09 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
14:40:28 × Lord_of_Life quits (~Lord@46.217.196.111) (Client Quit)
14:41:53 Lord_of_Life joins (~Lord@46.217.196.111)
14:41:54 × Lord_of_Life quits (~Lord@46.217.196.111) (Changing host)
14:41:54 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
14:42:08 × karanlikmadde quits (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192) (Quit: karanlikmadde)
14:46:35 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
14:47:23 texasmynsted joins (~texasmyns@104.140.53.131)
14:48:06 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds)
14:48:06 karanlikmadde joins (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192)
14:53:17 christo joins (~chris@81.96.113.213)
14:56:39 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-chlrdvhuygbnoesm)
14:57:21 × conal_ quits (~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
14:57:40 × christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds)
14:57:54 conal joins (~conal@66.115.176.210)
14:58:28 × conal quits (~conal@66.115.176.210) (Client Quit)
15:00:02 × espadrine quits (~espadrine@195.140.213.38) ()
15:00:25 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
15:01:27 hackage pvar 1.0.0.0 - Mutable variable with primitive values https://hackage.haskell.org/package/pvar-1.0.0.0 (lehins)
15:01:54 knupfer joins (~Thunderbi@i59F7FF86.versanet.de)
15:02:12 conal joins (~conal@66.115.176.210)
15:03:27 × coeus quits (~coeus@p200300d02724ef00d20f0ecf5ac74df4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
15:07:16 × da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:08:35 <lightwave> newbie question: is there a generally accepted 'good' style guide for Haskell that most Haskellers agree to be good?
15:08:44 <maerwald> no
15:08:46 <merijn> No
15:08:50 <lightwave> LOL
15:08:59 × karanlikmadde quits (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192) (Quit: karanlikmadde)
15:09:02 <maerwald> good question, next question
15:09:15 <merijn> lightwave: There's tons of guide, but nothing universally agreed upon
15:10:07 <merijn> lightwave: I think the closest to consensus you'll get is: "Curly braces and semicolons bad, layout good" and "spaces, not tabs" and even those aren't universal (but close enough)
15:10:18 × fendor quits (~fendor@e237-037.eduroam.tuwien.ac.at) (Remote host closed the connection)
15:10:35 <merijn> lightwave: Oh, and generally people tend to prefer "where" blocks over "let in"
15:10:50 <{abby}> if you ask 3 haskellers how they format their code you'll get at least 4 different answers
15:10:55 <merijn> :)
15:11:17 <merijn> lightwave: I'd just do "whatever seems most readable" and "try and match surrounding style" (in projects)
15:11:32 <merijn> lightwave: And people will be more than happy to critique your style ;)
15:11:42 <lightwave> LAMO
15:11:48 <lightwave> LMAO
15:11:56 <maerwald> yes, if you wanna waste a lot of your time, ask ppl for advice on formatting
15:12:05 <lightwave> Something never changes in programming languages.
15:12:18 <merijn> maerwald: Well, for beginners it makes sense, they often don't know many Haskell-y idioms
15:12:46 <{abby}> there are, of course, automated formatters---but I suspect the "every project has its own style" culture does not lead itself well to adopting "one true style" tools… I find ormolu's style painfully ugly, for example :p
15:12:50 <merijn> I see many beginners asking for feedback where there code can be cleaned up considerably, just don't expect any universal consensus :)
15:12:53 <maerwald> my advice is: never align, only indent. But that's already quite controversial
15:12:55 × vicfred_ quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving)
15:12:58 <noctux> what, spaces? damn it...
15:13:19 <{abby}> maerwald: oo, them's fighting words
15:13:29 <merijn> noctux: tabs are well defined in GHC, unfortunately they follow unix and not "what people like to pretend they mean"
15:13:38 <lightwave> My keyboard only has 0, 1, space, backspace and enter keys. No tab.
15:14:02 <lightwave> Forgive me for asking the style guide question. LOL
15:14:21 <noctux> merijn: meaning? \t being an ordinary whitespace ascii character?
15:14:24 tzh joins (~tzh@2601:448:c500:5300::e74c)
15:14:39 <lightwave> I'll not ask what editor is the best for Haskell. ;-)
15:15:03 bitmapper joins (uid464869@gateway/web/irccloud.com/x-ccvftmqgiojwtxir)
15:15:07 <merijn> noctux: \t rounds to nearest multiple of 8
15:15:29 <merijn> noctux: That means that the width of a tab is dependent on preceding characters
15:15:30 thir joins (~thir@p200300f27f0b040039cda3b6fce8e5af.dip0.t-ipconnect.de)
15:15:32 <{abby}> lightwave: whichever you're used to using, honestly. except for nano, unless someone's written a nano LSP client...
15:15:40 <merijn> If you have 3 spaces followed by a tab, the tab is 5 wide
15:15:52 <merijn> Which is the standard unix convention
15:16:00 <merijn> but not how people treat tabs in source code :)
15:16:21 <noctux> yeah, and as long as you set tw=8, all is fine :P
15:16:37 <merijn> noctux: No
15:16:37 <hyperisco> if I just want to wait for a process to terminate, do I have to read its stdout char by char until I hit EOF?
15:16:50 <{abby}> noctux: set tw=0 et, you mean? :P
15:16:53 cfricke joins (~cfricke@unaffiliated/cfricke)
15:16:58 <merijn> noctux: because tw says "tabs are 8", which is *different* from "tabs round to nearest multiple of 8"
15:16:59 <{abby}> s/0/8/ even
15:17:19 <lightwave> s/\t/doh!/g
15:17:32 <merijn> hyperisco: Possibly, if the process blocks on blocked writes
15:17:58 <merijn> lightwave: It's basically 1/3rd vim, 1/3rd emacs, 1/3rd rest in here
15:18:17 <maerwald> I had the impression slightly more emacs than vim
15:18:31 <merijn> maerwald: That's because, like nix people, emacs people are loud :p
15:18:33 <{abby}> of the emacs users, how many do you think are vim users in denial? evil, vile and co
15:18:50 <maerwald> 20 vim, 35 emacs, 45 rest
15:18:57 <noctux> {abby}: well, I seem to want ts :p
15:18:59 × grimgnr quits (~user@94.19.246.43) (Read error: Connection reset by peer)
15:19:04 <lightwave> I use Doom Emacs (evil mode) Best of both worlds
15:19:41 <noctux> hihi, vim's helptext on the matter:
15:19:44 <noctux> Note: Setting 'tabstop' to any other value than 8 can make your file
15:19:46 <noctux> appear wrong in many places (e.g., when printing it).
15:20:09 hyiltiz joins (~quassel@82.118.227.47)
15:20:09 × hyiltiz quits (~quassel@82.118.227.47) (Changing host)
15:20:09 hyiltiz joins (~quassel@unaffiliated/hyiltiz)
15:20:17 coeus joins (~coeus@p200300d027141600339fa72fa0100e7e.dip0.t-ipconnect.de)
15:20:22 <maerwald> Last time I printed code was when trolling a prof and he liked it.
15:20:22 × thir quits (~thir@p200300f27f0b040039cda3b6fce8e5af.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
15:20:27 hackage quickjs-hs 0.1.2.3 - Wrapper for the QuickJS Javascript Engine https://hackage.haskell.org/package/quickjs-hs-0.1.2.3 (goodlyrottenapple)
15:21:32 × cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 260 seconds)
15:25:39 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
15:25:43 ddellacosta joins (~dd@86.106.121.168)
15:26:54 × DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Remote host closed the connection)
15:27:02 DavidEichmann joins (~david@43.240.198.146.dyn.plus.net)
15:29:57 xiinotulp joins (~q@ppp-27-55-89-163.revip3.asianet.co.th)
15:33:14 × nyaomi quits (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Ping timeout: 260 seconds)
15:33:22 × plutoniix quits (~q@ppp-223-24-161-236.revip6.asianet.co.th) (Ping timeout: 246 seconds)
15:36:16 alp joins (~alp@2a01:e0a:58b:4920:4588:d58a:a3b6:6aad)
15:38:02 <monochrom> The nuanced real problem is mixing spaces and tabs.
15:39:08 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
15:39:19 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
15:39:19 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
15:39:19 GyroW joins (~GyroW@unaffiliated/gyrow)
15:41:09 × codygman quits (~codygman@47-184-107-46.dlls.tx.frontiernet.net) (Read error: Connection reset by peer)
15:41:53 codygman joins (~codygman@47-184-107-46.dlls.tx.frontiernet.net)
15:47:36 christo joins (~chris@81.96.113.213)
15:47:48 kenran joins (~maier@b2b-37-24-119-190.unitymedia.biz)
15:49:42 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
15:50:50 christo joins (~chris@81.96.113.213)
15:51:29 × conal quits (~conal@66.115.176.210) (Quit: Computer has gone to sleep.)
15:52:59 × kenran quits (~maier@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 258 seconds)
15:53:28 × atraii quits (~atraii@c-98-32-64-84.hsd1.ut.comcast.net) (Ping timeout: 260 seconds)
15:54:19 × danvet quits (~danvet@2a02:168:57f4:0:5f80:650d:c6e6:3453) (Quit: Leaving)
15:55:50 <maerwald> yeah, programmers fight over all sorts of non-sense, but everyone agrees that consistency is holy
15:56:23 avdb joins (~avdb@ip-81-11-153-13.dsl.scarlet.be)
15:57:51 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
15:57:51 head_victim joins (~head_vict@178.162.209.171)
15:58:20 <maerwald> Is there a good alternative to c2hs? The parses seems to not parse all of C correctly
15:58:26 <maerwald> It's quite tiresome
15:58:37 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:58:46 christo joins (~chris@81.96.113.213)
15:58:56 <merijn> maerwald: c2hs isn't intended to be fully automated
15:59:02 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
15:59:05 <maerwald> some issues on 32bit headers, some issues on windows
15:59:18 <merijn> Or am I thinking of c2hsc?
15:59:20 <merijn> I forget
15:59:32 <maerwald> sounds similiar :D
16:00:02 <maerwald> https://github.com/vmchale/libarchive/issues/17 and https://github.com/vmchale/libarchive/issues/12
16:00:03 <tdammers> the proper way is to set :tabstop to something like 3, 5 or 7; now any incorrectly indented file will look bad, and you will fix it
16:00:11 <tdammers> instead of perpetuating the badness
16:00:41 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
16:01:06 <monochrom> People will "fix" it with spaces after the tabs.
16:01:07 <merijn> maerwald: Which headers are you parsing with it?
16:01:17 atraii joins (~atraii@c-98-32-64-84.hsd1.ut.comcast.net)
16:01:31 geekosaur joins (ac3a8c0b@172.58.140.11)
16:02:32 <maerwald> merijn: C:/ProgramData/chocolatey/lib/ghc/tools/ghc-8.10.2/mingw/x86_64-w64-mingw32/include/psdk_inc/intrin-impl.
16:02:53 <maerwald> it's in the bug reports
16:03:16 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
16:03:52 × knupfer quits (~Thunderbi@i59F7FF86.versanet.de) (Quit: knupfer)
16:05:06 × pjb quits (~t@2a01cb04063ec50040327e18e003ea94.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
16:05:09 knupfer joins (~Thunderbi@200116b82c45070020d19eb0cff5f28b.dip.versatel-1u1.de)
16:06:31 × Amras quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
16:06:57 nbloomf joins (~nbloomf@2600:1700:ad14:3020:e458:1703:ce2e:6252)
16:07:42 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
16:08:15 christo joins (~chris@81.96.113.213)
16:08:23 <merijn> maerwald: There error is correct, though
16:08:33 <merijn> It's, in fact, no legal C
16:08:39 <merijn> At least, not C11
16:09:42 <merijn> alignment specifiers aren't valid inside structs, afaict
16:11:06 <merijn> Probably not why c2hs errors out, but still ;)
16:11:20 <merijn> It actually seems double illegal
16:11:29 AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl)
16:11:35 × knupfer quits (~Thunderbi@200116b82c45070020d19eb0cff5f28b.dip.versatel-1u1.de) (Quit: knupfer)
16:11:38 <merijn> Since you can't have _Alignas inside struct definitions and it's not allowed inside typedefs either :p
16:11:43 knupfer joins (~Thunderbi@200116b82c45070020d19eb0cff5f28b.dip.versatel-1u1.de)
16:12:01 × knupfer quits (~Thunderbi@200116b82c45070020d19eb0cff5f28b.dip.versatel-1u1.de) (Client Quit)
16:12:12 knupfer joins (~Thunderbi@200116b82c450700b04e0fad57a920a0.dip.versatel-1u1.de)
16:13:17 Stanley00 joins (~stanley00@unaffiliated/stanley00)
16:16:25 kupi joins (uid212005@gateway/web/irccloud.com/x-goqmfcjbcgptzitc)
16:16:44 GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
16:16:45 × GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
16:16:45 GyroW_ joins (~GyroW@unaffiliated/gyrow)
16:17:05 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds)
16:17:37 fendor joins (~fendor@178.115.131.152.wireless.dyn.drei.com)
16:18:08 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds)
16:18:36 <maerwald> well, like I care :p
16:18:42 <maerwald> I just want it to build
16:18:50 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
16:19:19 <maerwald> not fixing old windows headers
16:19:42 <maerwald> where do you send a PR even...
16:20:59 <maerwald> and then end up on an old gitlab instance where you get a response 2 years later, someone politely asking if that problem still exsits
16:23:08 isovector1 joins (~isovector@172.103.216.166)
16:23:23 karanlikmadde joins (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192)
16:29:05 <maerwald> parser should just be as permissive as possible
16:29:23 <geekosaur> with C that's asking for trouble
16:33:39 × avdb quits (~avdb@ip-81-11-153-13.dsl.scarlet.be) (Quit: WeeChat 2.9)
16:34:12 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
16:34:16 × fryguybob quits (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) (Ping timeout: 246 seconds)
16:34:24 Rudd0^ joins (~Rudd0@185.189.115.103)
16:34:47 fryguybob joins (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com)
16:34:47 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
16:35:28 × knupfer quits (~Thunderbi@200116b82c450700b04e0fad57a920a0.dip.versatel-1u1.de) (Quit: knupfer)
16:35:44 knupfer joins (~Thunderbi@200116b82c4507009cfe51faaedaa54e.dip.versatel-1u1.de)
16:36:52 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
16:37:55 × Saukk quits (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Read error: Connection reset by peer)
16:38:10 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
16:38:15 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:38:26 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
16:38:26 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
16:38:26 GyroW joins (~GyroW@unaffiliated/gyrow)
16:40:52 × unlink2 quits (~unlink2@p200300ebcf3c54001b9e8be0a8d0c9c4.dip0.t-ipconnect.de) (Remote host closed the connection)
16:42:18 unlink2 joins (~unlink2@p200300ebcf3c54001b9e8be0a8d0c9c4.dip0.t-ipconnect.de)
16:42:25 <phadej> alternative to c2hs is hsc2hs and a bit more manual code writing
16:42:26 × vincenz quits (~chris@104-1-91-5.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:43:19 × xiinotulp quits (~q@ppp-27-55-89-163.revip3.asianet.co.th) (Quit: Leaving)
16:44:50 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
16:51:04 conal joins (~conal@64.71.133.70)
16:52:05 pjb joins (~t@2a01cb04063ec50021ccf25e922e3d24.ipv6.abo.wanadoo.fr)
16:52:08 Rudd0 joins (~Rudd0@185.189.115.103)
16:52:23 × nineonin_ quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection)
16:52:44 × Rudd0^ quits (~Rudd0@185.189.115.103) (Read error: Connection reset by peer)
16:54:30 whatisRT joins (~whatisRT@2002:5b41:6a33:0:c110:15ce:86aa:fc12)
16:56:31 kritzefitz joins (~kritzefit@212.86.56.80)
17:03:00 Pitaya joins (~mdomin45@cpe-24-211-129-187.nc.res.rr.com)
17:03:03 <tomjaguarpaw> geekosaur: Turns out ghci does support what I was asking about: https://old.reddit.com/r/haskell/comments/jdhocz/how_to_have_the_executable_main_module_in_cabal/g9cb6yc/
17:03:49 × Plantain quits (~mdomin45@cpe-24-211-129-187.nc.res.rr.com) (Ping timeout: 264 seconds)
17:03:53 nineonine joins (~nineonine@216.81.48.202)
17:03:54 <tomjaguarpaw> I've no idea what those commands are doing, but they do the job.
17:04:54 × raichoo quits (~raichoo@dslb-188-100-014-089.188.100.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
17:04:54 × natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
17:05:03 × texasmynsted quits (~texasmyns@104.140.53.131) ()
17:05:59 × scratchy_beard quits (~doug@cpc110383-king13-2-0-cust408.19-1.cable.virginm.net) (Ping timeout: 260 seconds)
17:06:10 texasmynsted joins (~texasmyns@104.140.53.131)
17:07:54 × DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Remote host closed the connection)
17:08:06 DavidEichmann joins (~david@43.240.198.146.dyn.plus.net)
17:09:17 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:10:07 × hiroaki quits (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
17:14:58 hackage beam-core 0.9.0.0 - Type-safe, feature-complete SQL query and manipulation interface for Haskell https://hackage.haskell.org/package/beam-core-0.9.0.0 (TravisAthougies)
17:18:20 Iwawa joins (~mdomin45@cpe-24-211-129-187.nc.res.rr.com)
17:18:25 × karanlikmadde quits (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192) (Quit: karanlikmadde)
17:20:54 GyroW_ joins (~GyroW@d54c03e98.access.telenet.be)
17:20:54 × GyroW_ quits (~GyroW@d54c03e98.access.telenet.be) (Changing host)
17:20:54 GyroW_ joins (~GyroW@unaffiliated/gyrow)
17:21:10 × Pitaya quits (~mdomin45@cpe-24-211-129-187.nc.res.rr.com) (Ping timeout: 246 seconds)
17:21:15 Deide joins (~Deide@217.155.19.23)
17:21:27 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds)
17:21:53 × knupfer quits (~Thunderbi@200116b82c4507009cfe51faaedaa54e.dip.versatel-1u1.de) (Quit: knupfer)
17:22:06 knupfer joins (~Thunderbi@200116b82c4507004d9c0c1bde03d168.dip.versatel-1u1.de)
17:22:18 × knupfer quits (~Thunderbi@200116b82c4507004d9c0c1bde03d168.dip.versatel-1u1.de) (Client Quit)
17:22:26 knupfer joins (~Thunderbi@200116b82c4507003c929677a4a4f463.dip.versatel-1u1.de)
17:22:30 × knupfer quits (~Thunderbi@200116b82c4507003c929677a4a4f463.dip.versatel-1u1.de) (Client Quit)
17:22:37 knupfer joins (~Thunderbi@200116b82c45070060e9199eb654a3c8.dip.versatel-1u1.de)
17:23:23 knupfer1 joins (~Thunderbi@200116b82c450700700b60411bd6353f.dip.versatel-1u1.de)
17:23:23 × knupfer quits (~Thunderbi@200116b82c45070060e9199eb654a3c8.dip.versatel-1u1.de) (Read error: Connection reset by peer)
17:23:24 knupfer1 is now known as knupfer
17:23:31 hiroaki joins (~hiroaki@ip4d176049.dynamic.kabel-deutschland.de)
17:23:46 × knupfer quits (~Thunderbi@200116b82c450700700b60411bd6353f.dip.versatel-1u1.de) (Client Quit)
17:23:58 knupfer joins (~Thunderbi@200116b82c450700ac8964f2e53badab.dip.versatel-1u1.de)
17:24:06 × knupfer quits (~Thunderbi@200116b82c450700ac8964f2e53badab.dip.versatel-1u1.de) (Read error: Connection reset by peer)
17:24:12 knupfer1 joins (~Thunderbi@200116b82c45070010001c54df702dfc.dip.versatel-1u1.de)
17:24:14 × knupfer1 quits (~Thunderbi@200116b82c45070010001c54df702dfc.dip.versatel-1u1.de) (Read error: Connection reset by peer)
17:24:21 knupfer joins (~Thunderbi@200116b82c45070031c6e168d539c504.dip.versatel-1u1.de)
17:24:26 × knupfer quits (~Thunderbi@200116b82c45070031c6e168d539c504.dip.versatel-1u1.de) (Client Quit)
17:24:35 knupfer joins (~Thunderbi@200116b82c4507007c3743ffaa7fe02c.dip.versatel-1u1.de)
17:25:49 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
17:26:19 × alp quits (~alp@2a01:e0a:58b:4920:4588:d58a:a3b6:6aad) (Ping timeout: 272 seconds)
17:26:31 × bartemius quits (~bartemius@109.252.19.142) (Remote host closed the connection)
17:26:39 mananamenos_ joins (~mananamen@vpn238-7.vpns.upv.es)
17:27:15 × concept2 quits (~concept2@unaffiliated/tubo) (Read error: Connection reset by peer)
17:27:20 nyaomi joins (~naomi@cpe-74-75-6-125.maine.res.rr.com)
17:27:35 × geekosaur quits (ac3a8c0b@172.58.140.11) (Ping timeout: 245 seconds)
17:27:48 concept2 joins (~concept2@unaffiliated/tubo)
17:28:25 karanlikmadde joins (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192)
17:29:58 × mananamenos quits (~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 258 seconds)
17:30:09 christo joins (~chris@81.96.113.213)
17:30:17 invaser joins (~Thunderbi@31.148.23.125)
17:30:54 LKoen joins (~LKoen@81.255.219.130)
17:31:48 conal joins (~conal@64.71.133.70)
17:33:16 × nyaomi quits (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Ping timeout: 256 seconds)
17:33:46 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds)
17:34:28 × christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds)
17:36:04 conal_ joins (~conal@66.115.157.31)
17:36:17 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
17:36:17 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
17:37:25 nyaomi joins (~naomi@cpe-74-75-6-125.maine.res.rr.com)
17:38:28 × conal quits (~conal@64.71.133.70) (Ping timeout: 260 seconds)
17:39:38 conal joins (~conal@64.71.133.70)
17:40:16 sau joins (9d23f592@157.35.245.146)
17:40:48 × conal_ quits (~conal@66.115.157.31) (Ping timeout: 260 seconds)
17:40:59 × sau quits (9d23f592@157.35.245.146) (Remote host closed the connection)
17:42:02 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
17:43:07 conal joins (~conal@64.71.133.70)
17:43:51 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
17:44:27 shatriff joins (~vitaliish@176.52.219.10)
17:45:47 Amras joins (~Amras@unaffiliated/amras0000)
17:48:33 refried_ joins (~textual@209.6.41.245)
17:48:44 kenran joins (~maier@b2b-37-24-119-190.unitymedia.biz)
17:49:37 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
17:53:25 × kenran quits (~maier@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 240 seconds)
17:55:21 × whatisRT quits (~whatisRT@2002:5b41:6a33:0:c110:15ce:86aa:fc12) (Quit: ZNC 1.7.5 - https://znc.in)
17:55:29 Buntspecht joins (~user@unaffiliated/siracusa)
17:58:28 hackage beam-migrate 0.5.0.0 - SQL DDL support and migrations support library for Beam https://hackage.haskell.org/package/beam-migrate-0.5.0.0 (TravisAthougies)
17:58:30 alp joins (~alp@2a01:e0a:58b:4920:dc5e:4bf0:c579:a0f6)
17:59:09 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 244 seconds)
18:00:00 Kaeipi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
18:00:00 × Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection)
18:00:01 × head_victim quits (~head_vict@178.162.209.171) ()
18:01:23 geekosaur joins (ac3a8c8f@172.58.140.143)
18:02:24 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
18:02:24 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
18:02:24 GyroW joins (~GyroW@unaffiliated/gyrow)
18:02:39 × isovector1 quits (~isovector@172.103.216.166) (Remote host closed the connection)
18:02:46 jchia__ joins (~jchia@45.32.62.73)
18:03:05 isovector1 joins (~isovector@172.103.216.166)
18:03:09 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
18:04:09 × jchia__ quits (~jchia@45.32.62.73) (Remote host closed the connection)
18:04:17 gioyik joins (~gioyik@190.67.155.46)
18:05:15 jchia__ joins (~jchia@45.32.62.73)
18:06:29 × jchia__ quits (~jchia@45.32.62.73) (Remote host closed the connection)
18:06:45 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:06:50 × knupfer quits (~Thunderbi@200116b82c4507007c3743ffaa7fe02c.dip.versatel-1u1.de) (Quit: knupfer)
18:06:58 × codygman quits (~codygman@47-184-107-46.dlls.tx.frontiernet.net) (Ping timeout: 272 seconds)
18:06:58 knupfer joins (~Thunderbi@200116b82c45070090f23a587263fd79.dip.versatel-1u1.de)
18:07:30 jchia__ joins (~jchia@45.32.62.73)
18:08:24 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
18:09:19 codygman joins (~codygman@2600:380:f914:a1ca:eb25:85ee:c4a3:cd2e)
18:10:02 × GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie)
18:10:12 GyroW joins (~GyroW@d54C03E98.access.telenet.be)
18:10:13 × GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host)
18:10:13 GyroW joins (~GyroW@unaffiliated/gyrow)
18:10:43 bifunc2 joins (bifunc2@gateway/vpn/protonvpn/bifunc2)
18:10:59 × dwt quits (~dwt@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 258 seconds)
18:11:15 <bifunc2> Is it considered bad practice to put an integration test into an HUnit testCase?
18:11:37 <bifunc2> It works fine, but I'm asking because it's all in the name: HUnit (as in UNIT tests)
18:11:52 chaosmasttter joins (~chaosmast@p200300c4a709420174fc4dcad71adf36.dip0.t-ipconnect.de)
18:12:48 × xerox_ quits (~xerox@unaffiliated/xerox) (Read error: Connection reset by peer)
18:13:34 xerox_ joins (~xerox@unaffiliated/xerox)
18:13:54 crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net)
18:14:14 × codygman quits (~codygman@2600:380:f914:a1ca:eb25:85ee:c4a3:cd2e) (Read error: Connection reset by peer)
18:14:32 Stanley00 joins (~stanley00@unaffiliated/stanley00)
18:15:32 × jchia__ quits (~jchia@45.32.62.73) (Remote host closed the connection)
18:16:01 codygman joins (~codygman@47-184-107-46.dlls.tx.frontiernet.net)
18:16:08 jchia__ joins (~jchia@58.32.37.146)
18:18:00 × geekosaur quits (ac3a8c8f@172.58.140.143) (Ping timeout: 245 seconds)
18:18:21 × Kaeipi quits (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Read error: Connection reset by peer)
18:19:02 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 258 seconds)
18:20:18 × fre quits (~freusque@104.238.190.229) (Quit: fre: znc bye)
18:21:21 <fendor> bifunc2, I would not say so, but I would clearly declare what is an actual unit test and what is an integration test.
18:21:57 <bifunc2> yeah I put it into a seperate "Integration. ..." module
18:22:08 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
18:23:06 <fendor> I think that is good enough
18:23:39 dwt joins (~dwt@c-98-200-58-177.hsd1.tx.comcast.net)
18:23:41 <crestfallen> hi after setting -XTypeApplications I can get the types of pure @[] (*) and pure @[] ((*),(+)) , but I don't know what that is doing or how to use it: http://ix.io/2BhD
18:23:42 fre joins (~freusque@104.238.190.229)
18:24:06 × ericsagnes quits (~ericsagne@2405:6580:0:5100:2827:63d8:269e:cab4) (Ping timeout: 246 seconds)
18:24:29 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
18:24:33 <koz_> crestfallen: Are you asking 'what does TypeApplications do for me'?
18:26:48 <crestfallen> koz_: that and a few things: what is this type doing with (*) and Num a => [a -> a -> a], if that is a single entry list? How would you use that?
18:27:12 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
18:27:35 <crestfallen> and the other entry there, pure @[] ((*),(+))
18:28:34 conal joins (~conal@64.71.133.70)
18:28:57 × bifunc2 quits (bifunc2@gateway/vpn/protonvpn/bifunc2) (Remote host closed the connection)
18:29:27 <crestfallen> yeah I don't get this type either (I assume it is also a single item list) : [(a1 -> a1 -> a1, a2 -> a2 -> a2)]
18:30:16 <koz_> A type doesn't specify how many items the list has.
18:30:19 <koz_> :t (*)
18:30:20 <lambdabot> Num a => a -> a -> a
18:30:25 <koz_> :t (+)
18:30:27 <lambdabot> Num a => a -> a -> a
18:30:46 <koz_> You're applying pure, specialized to produce lists, to a pair of functions of type a -> a -> a.
18:31:01 <koz_> Therefore, you get something of type 'I am a list of pairs of functions of type a -> a -> a.
18:31:03 <koz_> '.
18:31:11 geekosaur joins (ac3a8c68@172.58.140.104)
18:31:18 <koz_> You're mixing type and value level again - don't do that.
18:31:28 hackage beam-sqlite 0.5.0.0 - Beam driver for SQLite https://hackage.haskell.org/package/beam-sqlite-0.5.0.0 (TravisAthougies)
18:32:04 <koz_> All TypeApplications lets you do is fill in yourself what you want a type variable to be.
18:32:09 <koz_> If you look at pure:
18:32:12 <koz_> :t pure
18:32:13 <lambdabot> Applicative f => a -> f a
18:32:23 × kupi quits (uid212005@gateway/web/irccloud.com/x-goqmfcjbcgptzitc) (Quit: Connection closed for inactivity)
18:32:43 <koz_> This says: For _any_ Applicative whatsoever, if you give me a thing of type 'a', I will give you an Applicative full of 'a's.
18:33:06 <koz_> Now, if you just write 'pure 10', you haven't said _what particular_ Applicative you want.
18:33:22 <koz_> That could create [a], Maybe a, Proxy a, whatever.
18:33:41 <koz_> So by saying 'pure @[] 10', you are saying 'I want a list _specifically_'.
18:35:01 <crestfallen> what about with the arithmetic operators koz_ ? could you show me that in action?
18:35:11 <koz_> crestfallen: Arithmetic operators are just functions./
18:35:13 × karanlikmadde quits (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192) (Quit: karanlikmadde)
18:35:16 <koz_> There's nothing special or magical about that.
18:35:29 <koz_> You can have lists full of functions, Maybe functions, Proxies of functions, whatever.
18:35:50 <crestfallen> I don't follow
18:36:18 <crestfallen> the note there says ... :
18:36:22 <koz_> What in particular about 'arithmetic operators' in this particular context throws you?
18:36:31 × knupfer quits (~Thunderbi@200116b82c45070090f23a587263fd79.dip.versatel-1u1.de) (Quit: knupfer)
18:36:38 knupfer joins (~Thunderbi@200116b82c450700d1249839d4a442f4.dip.versatel-1u1.de)
18:36:42 ericsagnes joins (~ericsagne@2405:6580:0:5100:f9eb:6fb3:7fb3:c450)
18:36:48 <crestfallen> it's not obvious just from the types here that @[] is a single item list
18:36:56 <koz_> @[] is not a single-item anything.
18:36:56 <lambdabot> Maybe you meant: wn v rc pl id do bf @ ? .
18:37:12 <koz_> It's a type application, to fix a type variable to a specific type.
18:37:22 <koz_> Stop. Mixing. Type. And. Value. Level.
18:37:35 <koz_> pure for lists produces a single-item list.
18:37:43 <koz_> This has nothing of any kind to do with type applications.
18:37:44 <crestfallen> I'm not mixing anything
18:38:36 <koz_> A statement like '@[] is a single item list' is _precisely_ mixing the type and value level. TypeApplications is about types. Single-item lists is about values.
18:38:41 <crestfallen> I don't know what it means to have the ((*),(+)) ascribed to defining pure to work on a list
18:38:54 <koz_> ((*), (+)) is a value.
18:39:00 <koz_> It is, more specifically, a pair of functions.
18:39:08 bartemius joins (~bartemius@109-252-19-142.nat.spd-mgts.ru)
18:39:11 <koz_> You could do 'pure ((*), (+))' just fine.
18:39:14 <crestfallen> but those aren't my notes. that is from SO or someplace
18:39:30 <koz_> crestfallen: Your reading of said notes is what I take issue with.
18:39:39 <koz_> Let's clearly separate what's going on here.
18:39:41 <monochrom> This is why I don't use SO.
18:39:56 <koz_> Does the concept of ((+), (*)), on its own, make sense to you?
18:39:57 <monochrom> I know first-hand that SO contains wrong answers.
18:40:05 <koz_> Like, a pair of functions?
18:40:26 <monochrom> Granted, the example I know is about C and stdio, not Haskell.
18:40:27 <crestfallen> I'm only certain they are not my notes.
18:40:45 × ystael quits (~ystael@209.6.50.55) (Ping timeout: 240 seconds)
18:40:50 <koz_> monochrom: C has a lot of misconceptions about it everywhere. SO just amplifies this.
18:41:01 <geekosaur> that doesn't necessarily mean (a) they are correct (b) you have understood them
18:41:24 <monochrom> heh
18:41:30 <koz_> And in this case, from where I'm standing, it's an issue of (b).
18:41:51 <monochrom> But this one is more about stdio than C. C is "involved" because stdio is a C library.
18:42:36 <monochrom> So I gave this midterm question "how to detect whether stdin has hit EOF?" I have a lecture slide that has the answer very visiblly.
18:43:01 <monochrom> My students decided to look up SO instead. This being COVID online exam and all.
18:43:04 × knupfer quits (~Thunderbi@200116b82c450700d1249839d4a442f4.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
18:43:29 <monochrom> The SO answer is "fseek to end, ask ftell if the offset is 0"
18:44:10 <geekosaur> "…not even wrong…"
18:45:10 <hyperisco> well I just implemented that as (hGetChar hout $> True) `catchIOError` \_ → pure False so I hope I'm right lol
18:45:34 <monochrom> I think Haskell's hIsEOF does that for you.
18:46:12 <crestfallen> koz_: I'd appreciate some review re: " Does the concept of ((+), (*)), on its own, make sense to you?
18:46:21 <hyperisco> ah I guess slightly different… I also want to discard everything
18:46:31 <hyperisco> I am doing that in a loop until False
18:46:43 <koz_> OK, so, are you OK with, say (1, "foo") as a value?
18:46:57 <crestfallen> sure
18:47:10 <monochrom> But please don't put the catch-and-handler inside the loop. Put that outside.
18:47:49 <hyperisco> I see what you're saying but I've removed exceptions from my control-flow thinking lol
18:48:01 AceNovo joins (~chris@184.101.162.142)
18:50:50 bifunc2 joins (bifunc2@gateway/vpn/protonvpn/bifunc2)
18:50:57 <bifunc2> fendor thanks :)
18:51:01 <koz_> crestfallen: What is the type of (1, "foo")?
18:51:18 × recon_- quits (~quassel@208.87.96.9) (Ping timeout: 272 seconds)
18:51:42 × gioyik quits (~gioyik@190.67.155.46) (Ping timeout: 256 seconds)
18:51:56 × bifunc2 quits (bifunc2@gateway/vpn/protonvpn/bifunc2) (Client Quit)
18:52:09 <hyperisco> forever (hGetChar hout) `catchIOError` mempty -- für monochrom
18:52:21 <monochrom> Yeah
18:52:48 <crestfallen> (1, "foo") :: Num a => (a, [Char])
18:52:49 son0p joins (~son0p@181.136.122.143)
18:53:16 <koz_> OK. Now, what's the type of (+) and the type of (*)?
18:53:28 <hyperisco> in some languages (like JS I think) there is no operational cost to try/catch unless an exception is actually caught
18:53:40 × Franciman quits (~francesco@host-82-48-166-25.retail.telecomitalia.it) (Quit: Leaving)
18:54:07 <hyperisco> so I guess the only other reason is removing the redundancy by accepting exceptional control flow
18:54:29 × s00pcan quits (~chris@075-133-056-178.res.spectrum.com) (Ping timeout: 260 seconds)
18:54:41 <crestfallen> I see where it's going. pure @[] is ascribing List to the type of (a1 -> a1 -> a1, a2 -> a2 -> a2) , giving us ...
18:54:51 <crestfallen> [(a1 -> a1 -> a1, a2 -> a2 -> a2]
18:55:20 <crestfallen> oops
18:55:33 <crestfallen> [(a1 -> a1 -> a1, a2 -> a2 -> a2)]
18:56:19 s00pcan joins (~chris@107.181.165.217)
18:56:22 <monochrom> Err nevermind, you're right, this one doesn't matter.
18:56:43 lep-delete joins (~lep@94.31.83.149)
18:56:54 <monochrom> I wrongly had in mind "p = ... `catch` (\x -> ... p)"
18:57:42 Lord_of_Life_ joins (~Lord@46.217.196.111)
18:57:50 × ephemera_ quits (~E@122.34.1.187) (Remote host closed the connection)
18:58:01 × bartemius quits (~bartemius@109-252-19-142.nat.spd-mgts.ru) (Remote host closed the connection)
18:58:06 <crestfallen> so the exercise is to set that up in ghci. so koz_ could you show me how that would play out in a ghci session? (If I'm correct to this point :))
18:58:16 × kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 272 seconds)
18:58:25 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
18:59:12 ephemera_ joins (~E@122.34.1.187)
18:59:29 <__monty__> crestfallen: Are you really asking for someone to enter something in a repl, which you could easily do yourself?
18:59:37 knupfer joins (~Thunderbi@200116b82c450700441c7c862ee5eb73.dip.versatel-1u1.de)
18:59:55 Lord_of_Life_ is now known as Lord_of_Life
19:01:58 <__monty__> monochrom: I can't actually find an SO question that has that among the answers, they're all "use feof."
19:02:38 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
19:03:23 <monochrom> OK, I worded my question wrong. A more correct wording is "stdin is empty" as in if you try to read in the future you'll get EOF.
19:03:28 berberman joins (~berberman@unaffiliated/berberman)
19:04:11 <monochrom> and I have the SO link my TA found when my TA marked that question, I'm finding the email now
19:04:34 <crestfallen> __monty__: the exercise , wherever it came from, only shows the types, as I have it in the paste. not sure where to go from here.
19:04:53 <geekosaur> :t well, that makes a little more sense then
19:04:55 <lambdabot> error: parse error on input ‘,’
19:05:02 <geekosaur> where did that :t come from
19:05:31 <monochrom> https://stackoverflow.com/questions/36428098/c-how-to-check-if-my-input-bufferstdin-is-empty?rq=1
19:07:51 lep-delete is now known as Guest88073
19:08:01 × mananamenos_ quits (~mananamen@vpn238-7.vpns.upv.es) (Ping timeout: 264 seconds)
19:08:34 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
19:08:51 ystael joins (~ystael@168.sub-174-196-209.myvzw.com)
19:08:58 <crestfallen> I was trying to review pure, what it did, and this was in my notes. I understand what it is doing in this case :
19:09:02 <crestfallen> λ> Just ((:) 4) <*> (pure [])
19:09:02 × invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 256 seconds)
19:09:21 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Client Quit)
19:10:36 <crestfallen> but not the stuff about @[], how it is used
19:11:06 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
19:11:19 gioyik joins (~gioyik@190.67.155.46)
19:12:05 × alp quits (~alp@2a01:e0a:58b:4920:dc5e:4bf0:c579:a0f6) (Ping timeout: 272 seconds)
19:12:13 <hyperisco> SO is like Wikipedia with less sources
19:12:43 × mirrorbird quits (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) (Ping timeout: 272 seconds)
19:12:48 <hyperisco> SO is like if Wikipedia was a concatenation of opinions
19:13:26 <crestfallen> why would you set pure @[] beforehand, if you could use pure like this? :
19:13:27 × ystael quits (~ystael@168.sub-174-196-209.myvzw.com) (Read error: Connection reset by peer)
19:13:29 <crestfallen> λ> Just ((:) 4) <*> (pure [])
19:13:49 <crestfallen> doesn't that do the same lifting?
19:14:35 <geekosaur> because in this case it can infer which Applicative to use
19:15:07 <geekosaur> @[] is for when it otherwise couldn't
19:15:08 <lambdabot> Maybe you meant: wn v rc pl id do bf @ ? .
19:15:10 <hyperisco> crestfallen, did you realise that @[] is not a value and not an empty list?
19:15:17 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
19:16:11 recon_- joins (~quassel@2602:febc:0:b6::6ca2)
19:16:22 <crestfallen> thanks all, yeah hyperisco it is a setting, so ghci knows what f you want pure to indicate
19:16:32 <crestfallen> indicate? word choice
19:17:49 <hyperisco> if you like, all types are passed as parameters, but normally they are passed implicitly by the compiler
19:18:06 conal joins (~conal@64.71.133.70)
19:18:22 <hyperisco> if you want to pass a type explicitly, you can use TypeApplications to do so
19:18:34 ystael joins (~ystael@168.sub-174-196-209.myvzw.com)
19:19:02 <crestfallen> ok yeah so if you set it, and wanted to write a full expression, what would the (shortened) expression look like?
19:19:24 <crestfallen> I'm assuming it is a more terse expression
19:19:26 <hyperisco> I am not sure what you are asking for
19:20:18 Lycurgus joins (~niemand@98.4.96.235)
19:20:29 <crestfallen> Like instead of using Just ((:) 2) <*> (pure [])
19:21:02 × knupfer quits (~Thunderbi@200116b82c450700441c7c862ee5eb73.dip.versatel-1u1.de) (Quit: knupfer)
19:21:07 <crestfallen> if it were to be already set, could you have a shorter expression?
19:21:20 knupfer joins (~Thunderbi@200116b82c45070071699ce90995afec.dip.versatel-1u1.de)
19:21:26 × knupfer quits (~Thunderbi@200116b82c45070071699ce90995afec.dip.versatel-1u1.de) (Client Quit)
19:21:39 knupfer joins (~Thunderbi@200116b82c4507006c8b8e4546ef723c.dip.versatel-1u1.de)
19:21:39 × knupfer quits (~Thunderbi@200116b82c4507006c8b8e4546ef723c.dip.versatel-1u1.de) (Client Quit)
19:21:58 <geekosaur> if you had one where it could be inferred
19:22:21 <geekosaur> have you tried asking ghci the type of the expression with and without the @[] ?
19:22:24 <hyperisco> types can be inferred, values cannot be (if we ignore ImplicitParams)
19:22:27 knupfer joins (~Thunderbi@200116b82c450700f42c1c1a4887d4fe.dip.versatel-1u1.de)
19:22:27 × knupfer quits (~Thunderbi@200116b82c450700f42c1c1a4887d4fe.dip.versatel-1u1.de) (Client Quit)
19:22:43 × recon_- quits (~quassel@2602:febc:0:b6::6ca2) (Remote host closed the connection)
19:23:17 knupfer joins (~Thunderbi@200116b82c450700018f4d4b438b9de8.dip.versatel-1u1.de)
19:23:17 × knupfer quits (~Thunderbi@200116b82c450700018f4d4b438b9de8.dip.versatel-1u1.de) (Client Quit)
19:23:28 knupfer joins (~Thunderbi@200116b82c450700a035f643f76eb1ae.dip.versatel-1u1.de)
19:23:32 <crestfallen> let me try that thanks geekosaur
19:23:33 × knupfer quits (~Thunderbi@200116b82c450700a035f643f76eb1ae.dip.versatel-1u1.de) (Read error: Connection reset by peer)
19:23:33 <hyperisco> you can golf your code there but it isn't going to be helped by a type application
19:23:38 coot_ joins (~coot@37.30.52.239.nat.umts.dynamic.t-mobile.pl)
19:23:43 knupfer joins (~Thunderbi@200116b82c4507005d2376b981a68d64.dip.versatel-1u1.de)
19:23:51 recon_- joins (~quassel@2602:febc:0:b6::6ca2)
19:23:52 <crestfallen> thanks one moment
19:24:45 × coot quits (~coot@37.30.52.68.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 240 seconds)
19:24:45 coot_ is now known as coot
19:25:37 ggainey joins (~ggainey@185.204.1.185)
19:25:50 <hyperisco> going on a tangent… you need more sophisticated types than Haskell has (conveniently) on offer to have useful value inference
19:26:36 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds)
19:26:37 × tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
19:26:48 <monochrom> You know how people prefer following tangents than following direct relevant productive answers.
19:27:17 sfvm joins (~sfvm@37.228.215.148)
19:27:25 × AceNovo quits (~chris@184.101.162.142) (Remote host closed the connection)
19:28:04 <monochrom> The excitement of maximizing mysterious, uncertainty, adventures, and procrastinating actually solving the problem at hand.
19:28:09 <hyperisco> well I am not sure what the thinking is, but if it is wondering why we have to still state values when the type is already known, it is a relevant point
19:28:41 <monochrom> No, the question is why or when to state types.
19:28:51 <hyperisco> there is no reason to assume Haskell's asymmetry of values and types if you have a fresh perspective
19:29:39 <monochrom> phrased very unclearly, but it is still asking about when to omit types
19:29:59 <monochrom> or when to legally omit types
19:30:32 × ystael quits (~ystael@168.sub-174-196-209.myvzw.com) (Read error: Connection reset by peer)
19:30:47 thir joins (~thir@p200300f27f0b040039cda3b6fce8e5af.dip0.t-ipconnect.de)
19:32:07 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
19:33:43 tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64)
19:33:54 conal joins (~conal@64.71.133.70)
19:35:54 Pitaya joins (~mdomin45@cpe-24-211-129-187.nc.res.rr.com)
19:36:22 × nineonine quits (~nineonine@216.81.48.202) (Remote host closed the connection)
19:36:44 <crestfallen> very sorry, I don't know how to set @[] so the inference is known by ghci if pure is used
19:37:30 <hyperisco> :t pure @[] -- what does ghci tell you when you do this?
19:37:31 <lambdabot> error:
19:37:32 <lambdabot> Pattern syntax in expression context: pure@[]
19:37:32 <lambdabot> Did you mean to enable TypeApplications?
19:37:46 <hyperisco> if it says that then you need to :set -XTypeApplications
19:38:38 <crestfallen> that I get: it's a -> [a], which is a -> f a
19:39:06 <hyperisco> those are not the same type
19:39:06 <koz_> Do Vectors have something like itraverse?
19:39:09 × Iwawa quits (~mdomin45@cpe-24-211-129-187.nc.res.rr.com) (Ping timeout: 258 seconds)
19:39:24 <koz_> Like, something of type (Applicative f) => (Int -> a -> f b) -> Vector a -> f (Vector b)
19:39:42 <crestfallen> sorry I meant pure :: Applicative f => a -> f a
19:39:55 <crestfallen> the f is []
19:40:18 <hyperisco> what is the problem?
19:40:40 <hyperisco> are we having a confusion of variable scope
19:41:06 <crestfallen> well I also read where ghci defaults to the f being IO or something
19:41:09 <hyperisco> every use of pure has its own f
19:41:21 p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
19:41:34 <hyperisco> in Haskell source you're used to seeing type variables not explicitly bound
19:41:40 <hyperisco> pure :: Applicative f => a -> f a
19:41:49 <hyperisco> what this means though is pure :: forall f a. Applicative f => a -> f a
19:42:02 <hyperisco> every use of pure has its own f and a variables, they are bound by it
19:42:19 <solonarv> koz_: if nothing else, lens has a typeclass for that indexed traversal and Vector is certainly an instance of it
19:42:31 <hyperisco> :t (pure @[], pure @Maybe) -- for example
19:42:32 <lambdabot> error:
19:42:32 <lambdabot> Pattern syntax in expression context: pure@[]
19:42:32 <lambdabot> Did you mean to enable TypeApplications?
19:42:44 × kuribas quits (~user@ptr-25vy0i8tnjeny9qrt7n.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
19:42:55 <crestfallen> very sorry hyperisco but what about where we have the ((*),(+)). that is also part of what is being ascribed?
19:43:06 <solonarv> koz_: oh! there is Data.Vector.imapM if you're okay with a Monad constraint rather than Applicativ
19:43:16 <hyperisco> I don't know the discussion about that
19:43:18 nineonine joins (~nineonine@216-19-190-182.dyn.novuscom.net)
19:43:31 × nineonine quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Read error: Connection reset by peer)
19:43:43 nineonine joins (~nineonine@216-19-190-182.dyn.novuscom.net)
19:44:04 <crestfallen> hyperisco: it's here, thanks http://ix.io/2BhD
19:44:15 <koz_> solo
19:44:21 <koz_> solonarv: That's fine.
19:44:22 <hyperisco> saying pure @[] is like saying subtract 3 … you wouldn't expect that because you use subtract 3 once that everywhere then on that the first argument to subtract is set to 3
19:44:46 <hyperisco> so is the same for pure @[] it isn't the case that f is set to [] then on for every use of pure, it only applies to the one use of pure
19:46:36 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:47:04 × nineonine quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection)
19:47:41 nineonine joins (~nineonine@50.216.62.2)
19:49:16 <hyperisco> I am not aware of ghci making special inferences for IO. I am only aware of ghci executing an IO value if you give it one and Show the result, rather than trying to Show the IO value
19:49:32 kenran joins (~maier@b2b-37-24-119-190.unitymedia.biz)
19:50:19 <crestfallen> hyperisco: how is that different from : λ> Just ((:) 4) <*> (pure [])
19:50:31 <hyperisco> what am I comparing to?
19:50:34 <geekosaur> the rule IIRC is that if it's given an expression of type (Monad m, Show a) => m a, it instantiates m as IO
19:50:52 <hyperisco> is that ghci particularly or is that a default?
19:51:00 <geekosaur> ghci specifically
19:51:13 <hyperisco> okay
19:51:21 gattytto joins (b33e397e@179.62.57.126)
19:51:29 <hyperisco> > pure 3
19:51:31 <lambdabot> error:
19:51:31 <lambdabot> • Ambiguous type variable ‘f0’ arising from a use of ‘show_M791473534142...
19:51:31 <lambdabot> prevents the constraint ‘(Show (f0 Integer))’ from being solved.
19:51:46 <hyperisco> maybe not lambdabot, though I thought it was based on ghci
19:51:53 scratchy_beard joins (~doug@cpc110383-king13-2-0-cust408.19-1.cable.virginm.net)
19:52:05 <geekosaur> > return 3
19:52:08 <lambdabot> error:
19:52:08 <lambdabot> • Ambiguous type variable ‘m0’ arising from a use of ‘show_M686074374140...
19:52:08 <lambdabot> prevents the constraint ‘(Show (m0 Integer))’ from being solved.
19:52:14 <hyperisco> works from the CLI though
19:52:14 <monochrom> Try yahb, real ghci
19:52:19 <gattytto> hello!
19:52:27 <geekosaur> yeh, llambdabot is not ghci
19:52:32 <monochrom> lambdabot is more like hint
19:52:42 <geekosaur> % return 3
19:52:42 <yahb> geekosaur: ; <interactive>:86:8: warning: [-Wtype-defaults]; * Defaulting the following constraints to type `Integer'; (Num a0) arising from the literal `3' at <interactive>:86:8; (Show a0) arising from a use of `print' at <interactive>:86:1-8; * In the first argument of `return', namely `3'; In the first argument of `GHC.GHCi.ghciStepIO :: forall a. IO a -> IO a', namely `(return 3)'
19:52:44 <monochrom> err no, not hint, mueval
19:52:46 DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
19:53:06 <gattytto> I came to tell you all that Haskell is now officially part of Eclipse Che cloud-native WEB IDE :D in 3 versions: 8.8.4, 8.10.1 and 8.10.2
19:53:24 <hyperisco> \o/
19:53:49 <gattytto> I'm also here to ask for demo projects for all those 3 versions that can be useful for newbies to the haskell
19:53:52 <monochrom> I like Eclipse but I don't want the inefficiency implied by "cloud" and "web".
19:54:02 <gattytto> because my search got me quite outdated ones
19:54:34 × kenran quits (~maier@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 260 seconds)
19:54:38 <crestfallen> hyperisco: seriously should I delete this "lesson" that I got somewhere online? http://ix.io/2BhD
19:54:47 <hyperisco> I am speculating it is based on wasm
19:54:56 <geekosaur> anyway it works in yahb, and specifically requires Monad not Applicative
19:55:03 <gattytto> monochrom cloud means that all the haskell stuff resides in a docker sidecar with about 3GB's of mem and web means all the "ide" related stuff is rendered (not executed) within the browser's scope
19:55:40 <monochrom> You are confirming said inefficiency.
19:55:51 Varis joins (~Tadas@unaffiliated/varis)
19:56:03 <geekosaur> monochrom, may I remind you of the dancing bear?
19:56:10 <crestfallen> should I forget about @[] and just be happy that it is explicit rather than inferred by ghci?
19:56:12 <hyperisco> crestfallen, I don't read anything wrong with it, though it is a bit threadbare for a beginner
19:56:20 <monochrom> What is dancing bear?
19:56:33 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
19:56:44 <gattytto> it runs quite nice in a 1GB ram tablet monochrom
19:56:49 <geekosaur> "the amazing thing about a dancing bear is not how gracefully it dances, but that it dances at all"
19:56:57 <monochrom> haha
19:57:19 <crestfallen> yeah thanks hyperisco I made the notes from something online I didn't understand initially. so it turned out threadbare :)
19:57:23 <hyperisco> crestfallen, what are you trying to learn from it?
19:57:34 <gattytto> now I'm looking for nice and noob ready examples to include in the ide, could you give me some ideas / links?
19:58:11 <hyperisco> oh these are your notes? well I don't read anything wrong with your notes… not sure what the issue is
19:58:18 <monochrom> I suppose I do support programmers limiting themselves to tablets.
19:58:28 × Varis quits (~Tadas@unaffiliated/varis) (Client Quit)
19:58:33 <hyperisco> possibly we're getting hung up on terminology
19:58:47 <crestfallen> hyperisco: every step .. beginning with > :set -XTypeApplications in ghci,
19:58:56 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:59:13 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
19:59:15 Tene joins (~tene@poipu/supporter/slacker/tene)
19:59:47 <hyperisco> can you ask the question again because I think I'm lost
19:59:48 takuan joins (~takuan@178-116-218-225.access.telenet.be)
19:59:53 Varis joins (~Tadas@unaffiliated/varis)
19:59:57 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
20:00:09 shatriff joins (~vitaliish@176.52.219.10)
20:00:13 × kish quits (~oracle@unaffiliated/oracle) (Remote host closed the connection)
20:00:39 × Varis quits (~Tadas@unaffiliated/varis) (Client Quit)
20:01:19 <monochrom> You know, question asking is a monadic art. Your next question depends heavily on the answer you get for the previous question.
20:01:33 × fre quits (~freusque@104.238.190.229) (Quit: fre: znc bye)
20:01:41 <geekosaur> monochrom, a tablet would be a step up from what I'm currently running on. Except this has a real keyboard fsvo.
20:01:44 <crestfallen> hyperisco: if you could show it to me in a yahb session, like loading the thing and writing and expression after you've set (and please show me how) pure @[] ((*),(+)) or similar
20:01:52 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
20:01:58 <crestfallen> writing *an expression
20:02:05 <monochrom> adding a keyboard is OK
20:02:08 <gattytto> geekosaur my POC is a tablet insterted in a bluetooth keyboard that includes a mousemad
20:02:14 <gattytto> mousepad*
20:02:25 <hyperisco> crestfallen, do you have the Haskell Platform installed? or can you otherwise run ghci?
20:02:27 fre joins (~freusque@104.238.190.229)
20:02:37 <crestfallen> yeah
20:02:37 <monochrom> I'm going for the 5-inch screen so programmers don't just assume "users have 40-inch 4K screens"
20:02:44 Varis joins (~Tadas@unaffiliated/varis)
20:02:54 <hyperisco> crestfallen, okay, then first you run the command ghci to start it
20:03:03 <crestfallen> thanks!
20:03:17 <crestfallen> :)
20:03:21 <hyperisco> that will bring you to a prompt, and there you can type in whatever expression you want
20:04:02 <hyperisco> also ghci commands like :t, :set, :help, etc, and statements like import Data.List
20:04:07 <monochrom> Wait what are you running on such that it is a step down from even a tablet? VT100?
20:04:21 <crestfallen> the only thing I know how to do is to check the types , as in that paste
20:04:22 <monochrom> 300 baud modem? :)
20:04:26 <crestfallen> hyperisco: ^
20:04:35 <hyperisco> as you import things the prompt will become longer, but you can set it to whatever you want with :set prompt "λ> " for example
20:05:12 <hyperisco> if you want to evaluate an expression you just put in the expression
20:05:14 <hyperisco> > 1 + 2
20:05:16 <lambdabot> 3
20:05:38 <crestfallen> hyperisco: sorry we are not communicating. very sorry. I can use ghci
20:05:44 <gattytto> or sum([1..10]) ?
20:06:32 <hyperisco> okay, well, I am struggling to understand what question you are asking
20:07:08 rprije joins (~rprije@110-175-117-18.tpgi.com.au)
20:07:19 skami joins (~user@24.225.186.176)
20:07:22 × knupfer quits (~Thunderbi@200116b82c4507005d2376b981a68d64.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
20:07:54 <crestfallen> ..> :t pure @[] ((*), (+)) what would you do with with this setting? hyperisco
20:08:18 <hyperisco> that is a ghci command that asks what the type of pure @[] ((*), (+)) is
20:08:58 mirrorbird joins (~psutcliff@m83-187-163-53.cust.tele2.se)
20:09:24 <crestfallen> yes, but that's all I have from that "lesson" online. I don't know how you would go about using something of that type.
20:09:27 <hyperisco> do you know the difference between ghci and ghc? have you written a Haskell program in a file and compiled it?
20:10:13 <crestfallen> many times to varying effect
20:10:52 <crestfallen> could you show me some examples where that type is used in some way?
20:11:02 <hyperisco> I am not sure how to answer that sort of question… if you do not see a use for it, then don't use it :)
20:11:33 <hyperisco> I do not have any reason to use that type either
20:12:33 <crestfallen> I'm learning haskell from textbooks and online. I don't need haskell for anything except pure learning
20:12:36 <geekosaur> there are uses but they can usually be avoided
20:12:40 <hyperisco> but if we wanted to make something up… lets say I had two lists of numbers and a list of operations
20:13:05 <crestfallen> ok..
20:13:10 <hyperisco> > [x `op` y | x <- [0..2], y <- [0..2], z <- [(+),(*)]]
20:13:12 <lambdabot> error:
20:13:12 <lambdabot> • Couldn't match type ‘Unwrapped s0’ with ‘Unwrapped s’
20:13:12 <lambdabot> Expected type: [Unwrapped s]
20:13:43 <hyperisco> > [x `op` y | x <- [0..2], y <- [0..2], op <- [(+),(*)]] -- should always talk to lambdabot first...
20:13:43 karanlikmadde joins (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192)
20:13:45 <lambdabot> [0,0,1,0,2,0,1,0,2,1,3,2,2,0,3,2,4,4]
20:14:06 <hyperisco> well that is not using a tuple of operations I guess
20:14:11 <hyperisco> exercise for you :P
20:14:59 <gattytto> this is what I like about haskell, makes me feel like my first dev class, every time xD
20:15:42 GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
20:15:43 × GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
20:15:43 GyroW_ joins (~GyroW@unaffiliated/gyrow)
20:16:40 × GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 260 seconds)
20:19:02 Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net)
20:20:20 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
20:20:47 <crestfallen> so a pretty basic list comprehension hyperisco .. that much I get
20:20:49 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds)
20:21:25 <hyperisco> if you just want to study and not actually do anything with a computer language, why not try Agda?
20:21:52 conal joins (~conal@64.71.133.70)
20:21:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
20:22:24 <dminuoso> hyperisco: Haha.
20:22:57 × conal quits (~conal@64.71.133.70) (Client Quit)
20:23:26 conal joins (~conal@64.71.133.70)
20:28:25 <hyperisco> crestfallen, I reckon whatever you were reading was just picking arbitrary examples, they probably were not claiming they were important
20:28:27 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
20:30:50 × Amras quits (~Amras@unaffiliated/amras0000) (Remote host closed the connection)
20:32:03 <crestfallen> hyperisco: not a programmer, just an older person trying to keep intellectually active. I find haskell very interesting. I don't have a STEM background. just teaching myself. thanks kindly for your patient help.
20:33:00 × Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 260 seconds)
20:33:25 × geekosaur quits (ac3a8c68@172.58.140.104) (Remote host closed the connection)
20:33:47 <hyperisco> you can get a more distilled presentation of these ideas if you study the mathematical roots, if that is more so what you are interested in
20:34:30 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
20:34:40 <hyperisco> being a pragmatic programming language, Haskell has a lot of features that make it convenient for creating real computer programs, but sometimes at the cost of clarity
20:34:41 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
20:35:10 × p8m_ quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds)
20:35:28 Kaivo joins (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com)
20:35:46 <hyperisco> you might like "lambda calculus" or "term rewriting" or "proof theory" for instance
20:38:18 <crestfallen> hyperisco: I've gone through a bunch of GADT, some proving , types as propositions - programs as proofs stuff. type unification (which I love). the little things, like @[] can be toughest for me. don't know why. like that was just incomplete notes of mine. sorry
20:39:21 Amras joins (~Amras@unaffiliated/amras0000)
20:39:50 <hyperisco> well see that is one of those Haskell blemishes (imo) … the intention of Haskell is to infer all types, but as Haskell programmers started pushing the boundaries, types became ambiguous or not inferrable
20:40:49 <hyperisco> TypeApplications walks back a bit from the intention of inferring all types… what you could do before was pass type proxies, or sometimes you could annotate
20:40:56 × s00pcan quits (~chris@107.181.165.217) (Ping timeout: 260 seconds)
20:41:17 × StoneToad quits (~StoneToad@199-167-119-214.ppp.storm.ca) (Ping timeout: 265 seconds)
20:41:39 p8m_ joins (p8m@gateway/vpn/protonvpn/p8m)
20:41:41 StoneToad_ joins (~StoneToad@199-167-119-214.ppp.storm.ca)
20:41:50 <crestfallen> still not sure how your example of the list comprehension applies to using pure @[]. like how that relates in Applicative hyperisco
20:42:04 <dolio> Haskell has never been able to infer all types, I think.
20:42:08 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds)
20:42:17 <hyperisco> pure @[] (*) = [(*)] so I just wrote [(*)]
20:42:49 s00pcan joins (~chris@075-133-056-178.res.spectrum.com)
20:42:53 <hyperisco> if you meant to ask why you would ever use pure @[] and not just pure then it would probably only be because the type could not be inferred
20:43:29 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
20:43:37 <hyperisco> dolio, maybe but I think it fair to say that you are meant to lean on inference as much as possible. It is seen as a good thing, mrore is bertter
20:43:50 <dolio> Yeah, that's definitely true.
20:43:51 <hyperisco> more is better
20:45:43 <dolio> TypeApplications do seem like an odd design in light of a lot of other stuff. I think they could have been a nicer syntax for things people were already doing.
20:45:49 <hyperisco> crestfallen, but you can also say (:[]) which is shorter and also the same thing
20:46:40 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
20:46:42 <dolio> Like `@[] :: Proxy# []` or something.
20:48:10 <hyperisco> I think it is fairly clear if you view it from Core, you're just explicitly passing type arguments as is done in Core
20:48:55 <dolio> Yeah, but importing core notions directly into the surface syntax isn't necessarily a consistent design.
20:49:30 <hyperisco> true, but I think proxies themselves are inconsistent
20:50:28 hackage tzdata 0.2.20201016.0 - Time zone database (as files and as a module) https://hackage.haskell.org/package/tzdata-0.2.20201016.0 (MihalyBarasz)
20:50:33 × sfvm quits (~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
20:50:36 <hyperisco> well at least with a hardline view that types should be inferred… we're accepting more and more explicit type arguments as time goes on
20:51:28 hackage phonetic-languages-rhythmicity 0.1.1.0 - Allows to estimate the rhythmicity metrices for the text (usually, the Ukrainian poetic one) https://hackage.haskell.org/package/phonetic-languages-rhythmicity-0.1.1.0 (OleksandrZhabenko)
20:51:35 <dolio> You can't do anything about that except remove certain features.
20:52:00 danso joins (~dan@69-165-210-185.cable.teksavvy.com)
20:52:01 × stree quits (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
20:52:08 <hyperisco> if/when dependent Haskell lands that will fly in the face of everything before
20:52:17 stree joins (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
20:54:37 × isovector1 quits (~isovector@172.103.216.166) (Remote host closed the connection)
20:54:49 <hyperisco> my personal bet is that McBride wins and the future is just types
20:55:00 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
20:56:04 <maerwald> I think the future is lax strong structural typing with immutable functional architectures and strict by default semantics
20:56:46 <hyperisco> well I am going out a ways when I say "future", not saying what the immediate next thing is
20:56:52 <hyperisco> what is lax strong structural typing?
20:57:01 <maerwald> I just made that up
20:57:12 <maerwald> But something in between purescript and typescript
20:58:40 bartemius joins (~bartemius@109-252-19-142.nat.spd-mgts.ru)
20:59:07 × danvet_ quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
20:59:44 <crestfallen> maerwald: whatever you do don't drop it on your foot.
20:59:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
20:59:46 <hyperisco> my prediction is based on the assumption that we will progress from more to less work for the human programmer, and the way to do that is for the programmer to say what they want rather than how to get what they want
20:59:49 conal joins (~conal@64.71.133.70)
21:00:01 × ggainey quits (~ggainey@185.204.1.185) ()
21:00:30 <maerwald> I think more expressive language go backwards to the goal
21:00:52 <maerwald> we think more expressive is always good, because it gives more ways to say what you want
21:00:57 <crestfallen> what do you mean the future is just types?
21:01:02 <hyperisco> assuming that, I think we're going to cross from computational expressions to declarative expressions
21:01:05 <maerwald> but you should have less ways to say what you want
21:01:41 <gattytto> hyperisco yeah like protobuf .proto files that aren't actually code but just a declarative syntax to generate code in diff languages (made and used by google for a long)
21:01:45 acowley joins (~acowley@c-68-83-22-43.hsd1.nj.comcast.net)
21:02:06 <hyperisco> maybe not the best terminology… I mean, when we use a programming language, what makes it so is that it has a semantics of computational steps
21:02:39 <hyperisco> and I don't see why that is necessary to concern a person with, ultimately
21:03:13 × bartemius quits (~bartemius@109-252-19-142.nat.spd-mgts.ru) (Ping timeout: 264 seconds)
21:03:40 <crestfallen> how does that relate to say, handwriting recursive steps?
21:03:52 <monochrom> Does not.
21:04:17 <crestfallen> ok thanks all
21:05:10 p8m joins (p8m@gateway/vpn/protonvpn/p8m)
21:05:23 × crestfallen quits (~jvw@135-180-15-188.fiber.dynamic.sonic.net) (Quit: Lost terminal)
21:06:10 × chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
21:06:19 <hyperisco> you can say that foldr removes you from concern of how to recurse on a list, I don't think that is an invalid observation, but the meaning of both (foldr or writing it yourself) is the same
21:06:20 × p8m_ quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 256 seconds)
21:06:45 <hyperisco> so the question would be, if foldr removes you from the concern of how to recurse on a list, where exactly does your thinking lie? obviously not in the language semantics
21:06:48 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
21:07:05 <hyperisco> and so we want to get to that place in our programming languages
21:07:45 <monochrom> foldMap has a better chance to the claim of distancing from that concern.
21:07:59 isovector1 joins (~isovector@172.103.216.166)
21:08:05 <monochrom> foldr? the "r" already talks about that concern.
21:08:29 hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
21:10:38 <hyperisco> at least we're not programming register machines anymore (sorry embedded devs)
21:11:03 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
21:11:33 × skami quits (~user@24.225.186.176) (Read error: Connection reset by peer)
21:11:35 davean looks at some haskell he did recently and quietly slides it to the side out of hyperisco's view.
21:12:59 <hyperisco> hey its fun, like a board game is fun… would make a good video game
21:13:52 <davean> Hey sometimes a bump pointer is too expensive
21:13:56 × ericsagnes quits (~ericsagne@2405:6580:0:5100:f9eb:6fb3:7fb3:c450) (Ping timeout: 244 seconds)
21:14:27 <hyperisco> I just don't see why I'd want to use it pragmatically, anymore than I'd want to use Mouse Trap to actually catch rats
21:15:11 <hyperisco> (I mean idealistically… I cope with obnoxious hardware too)
21:16:36 <hyperisco> anyways monochrom is worried that I am taking everyone on a distracting mysterious adventure, so I'll call it a night. later!
21:17:05 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!)
21:17:28 <monochrom> That was for another context.
21:20:20 × karanlikmadde quits (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192) (Quit: karanlikmadde)
21:24:24 × coot quits (~coot@37.30.52.239.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 260 seconds)
21:27:21 ericsagnes joins (~ericsagne@2405:6580:0:5100:8da6:35f3:7a65:db08)
21:27:46 × Lord_of_Life quits (~Lord@46.217.196.111) (Read error: Connection reset by peer)
21:29:06 ph88 joins (~ph88@ip5f5af0cc.dynamic.kabel-deutschland.de)
21:29:28 <ph88> This might be a stupid question .. but is this module really just called "Prettyprinter" without any dots in the name ? https://hackage.haskell.org/package/prettyprinter-1.7.0/docs/Prettyprinter.html
21:29:49 Lord_of_Life joins (~Lord@46.217.196.111)
21:29:49 × Lord_of_Life quits (~Lord@46.217.196.111) (Changing host)
21:29:49 Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362)
21:31:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:31:40 <ddellacosta> ph88: yeah that looks right to me
21:31:46 <monochrom> You can click "source" to find out. But yes.
21:31:54 × solonarv quits (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Ping timeout: 256 seconds)
21:32:05 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
21:32:40 <ph88> i have dependencies prettyprinter and import Prettyprinter on lts-16.19 but can't find it
21:32:47 <ph88> wait let me check if its in lts
21:33:04 <ph88> ye it's there ..
21:33:07 <monochrom> Then you should look in stackage, not hackage.
21:33:23 <ph88> ok
21:33:35 <ph88> i see stackage has old version .. i think that is the problem then
21:33:45 karanlikmadde joins (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192)
21:34:37 <dolio> Man, ApplicativeDo is really picky.
21:35:10 shadowdao is now known as GoatyMcGoatface
21:35:24 <ph88> what about it ?
21:35:25 conal joins (~conal@64.71.133.70)
21:35:43 <ddellacosta> what is a better way to create a timing loop than e.g. calling threadDelay at the level of granularity that I want to trigger timing events? I'm not sure how to approach this
21:36:00 <dolio> `pure $ f . g $ x` works, but not `pure . f . g $ x`
21:36:21 × son0p quits (~son0p@181.136.122.143) (Quit: leaving)
21:36:35 <int-e> dolio: I like it ;)
21:36:37 <dolio> Also you can't use functorial stuff.
21:36:51 ebsen joins (~ebsene@64-33-113-59-dynamic.midco.net)
21:37:20 <int-e> (No, not really. But I do tend to write pure $ f . g $ x by default.)
21:37:34 <monochrom> @type (<$)
21:37:35 <lambdabot> Functor f => a -> f b -> f a
21:38:06 <gattytto> >@type (<$)
21:38:10 × ebsen quits (~ebsene@64-33-113-59-dynamic.midco.net) (Client Quit)
21:38:19 <gattytto> oh I thought the bot was gonna parse it
21:38:36 × p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection)
21:39:04 <phadej> dolio: yes, the `pure` becomes "syntax" with ApplicativeDo
21:39:36 <phadej> IIRC in first version you had to write pure (f . g $ x), i.e. pure $ ... form was added afterwards
21:39:58 <dolio> Also `let` in a do messes it up.
21:40:11 <monochrom> In all likelihood it is better to invent a flipped <$> than to invent ApplicativeDo.
21:41:32 borne joins (~fritjof@200116b864f0110043d332954cf9072f.dip.versatel-1u1.de)
21:41:33 <dolio> There's already a flipped (<$>), but that's not all you need.
21:41:59 <monochrom> getChar <*> getLine <*> putStrLn "thank you" <&> (\c s _ -> c : s) = what ApplicativeDo dreams of
21:42:06 × LKoen quits (~LKoen@81.255.219.130) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
21:42:17 <dolio> You need a complete set of opposite applicative operations that run in a different order, and to write your code in the opposite order.
21:42:28 × chaosmasttter quits (~chaosmast@p200300c4a709420174fc4dcad71adf36.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
21:43:07 × GyroW_ quits (~GyroW@unaffiliated/gyrow) (Remote host closed the connection)
21:43:28 GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be)
21:43:28 × GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host)
21:43:28 GyroW joins (~GyroW@unaffiliated/gyrow)
21:44:23 Plantain joins (~mdomin45@cpe-24-211-129-187.nc.res.rr.com)
21:45:02 acidjnk_new joins (~acidjnk@p200300d0c723787960581240d4a66b7e.dip0.t-ipconnect.de)
21:45:03 <monochrom> I think my example is in ApplicativeDo order, down to the point the "return value" is specified last, no?
21:45:24 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
21:45:25 × Pitaya quits (~mdomin45@cpe-24-211-129-187.nc.res.rr.com) (Ping timeout: 246 seconds)
21:45:30 <dolio> Well, your example doesn't make sense, really.
21:45:34 <monochrom> Ah nevermind.
21:45:43 <monochrom> Right, that.
21:46:08 <dolio> Maybe it would work with (<**>), but I'm not very confident that associates correctly.
21:46:48 × Ariakenom_ quits (~Ariakenom@h-155-4-221-35.NA.cust.bahnhof.se) (Read error: Connection reset by peer)
21:46:55 <dolio> Because it probably wasn't designed for that sort of thing.
21:48:49 <monochrom> Could you be talked into ApplicativeComprehension instead? :)
21:48:59 <dolio> (It's designed for the sequencing to occur in the opposite direction of the 'data flow'.
21:49:15 <dolio> Yeah, I'd use comprehensions if they could actually do applicative.
21:49:37 <dolio> I though they should be comprehensions from the get-go, really.
21:49:48 <dolio> Because that automatically implies a 'pure' at the end.
21:50:23 kenran joins (~maier@b2b-37-24-119-190.unitymedia.biz)
21:50:34 × nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection)
21:50:38 <monochrom> :)
21:51:34 × gattytto quits (b33e397e@179.62.57.126) (Remote host closed the connection)
21:51:45 × Deide quits (~Deide@217.155.19.23) (Read error: Connection reset by peer)
21:51:45 <monochrom> $ is the root of all special compiler support
21:55:14 Wolfy87 joins (~Wolfy87@89.47.234.28)
21:55:36 × kenran quits (~maier@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 272 seconds)
21:55:57 Deide joins (~Deide@217.155.19.23)
22:00:27 nineonine joins (~nineonine@50.216.62.2)
22:00:43 × thir quits (~thir@p200300f27f0b040039cda3b6fce8e5af.dip0.t-ipconnect.de) (Remote host closed the connection)
22:01:37 thir joins (~thir@pd9e1b1d6.dip0.t-ipconnect.de)
22:02:05 × stree quits (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
22:02:22 stree joins (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
22:02:40 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
22:03:08 <phadej> https://hackage.haskell.org/package/overloaded-0.2.1/docs/Overloaded-Plugin.html Idiom brackets from TemplateHaskellQuotes
22:03:12 <phadej> (at the bottom)
22:03:13 × jsynacek quits (~jsynacek@ip-185-149-130-112.kmenet.cz) (Ping timeout: 264 seconds)
22:03:21 polyrain joins (~polyrain@2001:8003:e501:6901:ec5c:488a:e80a:142b)
22:03:23 <phadej> Use at your own risk!
22:04:11 <dolio> Nah, I'm not going to do that. :)
22:04:38 <phadej> wise choice!
22:05:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
22:05:28 <dolio> I'm just surprised at how fragile the desugaring is. I saw Marlow suggesting that it needed to be beefed up, but now I see why.
22:06:07 alp joins (~alp@2a01:e0a:58b:4920:1551:e4d4:fd40:f1a2)
22:06:11 <dminuoso> I've heard Simon say a few times that ApplicativeDo has many corner cases where it fails to desugar into Applicative.
22:06:20 × thir quits (~thir@pd9e1b1d6.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
22:06:47 <dolio> Like, not allowing `let (x, y) = ...` where something in the `...` was bound earlier is a bit much.
22:06:55 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:06:58 hackage churros 0.1.4.1 - Channel/Arrow based streaming computation library. https://hackage.haskell.org/package/churros-0.1.4.1 (LyndonMaydwell)
22:08:07 <dolio> Actually, the match doesn't even matter, I guess. Just no lets.
22:08:17 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds)
22:09:10 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
22:11:12 conal joins (~conal@64.71.133.70)
22:11:56 × conal quits (~conal@64.71.133.70) (Client Quit)
22:13:07 <phadej> will (x,y) <- pure ... work?
22:13:43 × karanlikmadde quits (~karanlikm@2a01:c22:a46a:b400:3c0d:995b:be0c:192) (Quit: karanlikmadde)
22:13:55 <dolio> Oh, maybe.
22:14:11 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
22:15:41 <dolio> Oh, no, it doesn't, because that's not applicative if it's using something in a previous bind.
22:15:59 conal joins (~conal@64.71.133.70)
22:16:50 <dolio> I'd have to inline the expression into the original binding.
22:16:52 <phadej> then `let` wouldn't work either. Would it?
22:17:14 <phadej> I see. If it's used once, then it's safe
22:17:26 <dolio> It should. Let just defines some expressions. It could be moved into the final expression.
22:17:29 <phadej> but I guess ApplicativeDo wouldn't want to reason on that level
22:18:06 <phadej> or hmm, the pure (\.... -> let (x,y) in ...) could still work
22:18:06 <dolio> Yeah, it might be a little complicated to keep track of.
22:18:20 <phadej> but specifyingthat might be tricky
22:19:00 <phadej> IIRC when the result isn't forced to be Applicative, the rewriting is somewhat ad-hoc
22:19:26 <phadej> (i.e. where binds happen)
22:20:15 <dolio> The desugaring doesn't seem to be type-directed. The reason I noticed this is that it's failing to work.
22:22:40 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
22:23:21 shatriff joins (~vitaliish@176.52.219.10)
22:23:33 ixlun joins (~matthew@213.205.241.94)
22:24:14 <ixlun> Hi all, I've got a template Haskell question. Is there a way I can splice a name within a [d| .. |]?
22:24:54 <ixlun> for example [d| $(name) (Just x) = x |]
22:25:01 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
22:25:15 <ixlun> I get a syntax error when I do
22:25:52 systemhalted joins (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net)
22:27:49 <phadej> I don't think you can splice Names. That would be handy indeed
22:27:55 MaC83 joins (557f5ce5@85-127-92-229.dsl.dynamic.surfer.at)
22:28:03 <ixlun> :-(
22:29:14 <phadej> I think you can use `syb` to replace your dummy name, but I'm not sure if the cure is worse than a problem
22:29:35 × fendor quits (~fendor@178.115.131.152.wireless.dyn.drei.com) (Remote host closed the connection)
22:30:32 × systemhalted quits (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection)
22:31:15 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
22:31:23 <ixlun> :t syb
22:31:24 <lambdabot> error: Variable not in scope: syb
22:31:38 <phadej> https://hackage.haskell.org/package/syb
22:31:51 reppertj joins (~textual@pool-96-246-209-59.nycmny.fios.verizon.net)
22:31:57 <phadej> a package which allows you to traverse types which has `Data` instance
22:32:02 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
22:32:54 <phadej> e.g. https://hackage.haskell.org/package/syb-0.7.1/docs/Data-Generics-Schemes.html#v:everywhere would allow you transform all `Name`s inside `Dec`
22:36:30 × Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
22:36:48 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:38:22 thir joins (~thir@p200300f27f0b040039cda3b6fce8e5af.dip0.t-ipconnect.de)
22:40:26 Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net)
22:42:26 <dminuoso> Mmm, Lift only provides `lift :: t -> Q Exp` and that's the only typeclass in TH I think?
22:42:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
22:42:36 × mirrorbird quits (~psutcliff@m83-187-163-53.cust.tele2.se) (Ping timeout: 265 seconds)
22:43:49 <dminuoso> At that point the question is, why doesn't lift also let you `liftPat :: Lift t => t -> Q Pat` and `liftType :: Lift t => t -> Q Type` as well
22:45:17 × MaC83 quits (557f5ce5@85-127-92-229.dsl.dynamic.surfer.at) (Remote host closed the connection)
22:45:26 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
22:45:37 <ixlun> Actually, it looks like even replacing all the names won't work...
22:46:01 <ixlun> I'm trying to do multiple pattern matches in a top-level fn decl
22:46:02 × thir quits (~thir@p200300f27f0b040039cda3b6fce8e5af.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
22:46:04 × mrchampion quits (~mrchampio@216-211-57-41.dynamic.tbaytel.net) (Ping timeout: 260 seconds)
22:46:16 × polyrain quits (~polyrain@2001:8003:e501:6901:ec5c:488a:e80a:142b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:46:32 <ixlun> I think I need just one FunD with multiple claues
22:46:47 <ixlun> since the error I'm getting is: Multiple declarations of ‘psqt’
22:46:49 <dminuoso> ixlun: You can also use Language.Haskell.TH.Lib
22:46:53 <dminuoso> That could be a middleground
22:47:22 <dminuoso> Since that's filled with FooQ things instead of Foo, so you can lift/splice in between more liberally
22:47:54 <dminuoso> So rather than splicing inside a quoter, you could do the opposide and lift inside a splice.
22:48:49 polyrain joins (~polyrain@2001:8003:e501:6901:ec5c:488a:e80a:142b)
22:51:11 × shatriff quits (~vitaliish@176.52.219.10) (Remote host closed the connection)
22:51:24 shatriff joins (~vitaliish@176.52.219.10)
22:51:55 <koz_> OK, am I patently insane? I'm getting an error message which says 'Expected a type, but 'a' has kind 'Type''. This is in something like 'newtype Foo (a :: Type) = Foo (State (HashMap Bar Baz) a)'.
22:54:32 <koz_> Apparently removing the :: Type part makes it OK?
22:55:01 falafel joins (~falafel@71-34-132-121.clsp.qwest.net)
22:55:19 <koz_> What am I missing here?
22:56:47 <MarcelineVQ> is that extra ' in 'Type'' intentional?
22:57:06 <koz_> MarcelineVQ: That's me quoting the error message.
22:57:13 <koz_> I shoudl really use double-quotes when quoting.
22:57:38 christo joins (~chris@81.96.113.213)
22:58:11 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
22:59:16 <MarcelineVQ> Where are you importing Type from?
23:00:06 <koz_> OH FFS
23:00:11 <MarcelineVQ> :>>
23:00:11 <koz_> That was it, thanks!
23:00:23 <koz_> Shows how much TH I've written.
23:00:30 <koz_> Both currently and up-to-now.
23:00:47 × dcoutts_ quits (~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 258 seconds)
23:00:50 <koz_> import qualified Data.Kind as Actual
23:01:02 <koz_> newtype Foo (a :: Actual.Type) = ...
23:01:04 <MarcelineVQ> When you see a ' it means promotion of a value constructor is occuring, afaik
23:02:06 × polyrain quits (~polyrain@2001:8003:e501:6901:ec5c:488a:e80a:142b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:02:07 × ixlun quits (~matthew@213.205.241.94) (Read error: Connection reset by peer)
23:02:11 <MarcelineVQ> It might occur for type constructors too, I'm not sure, but it's your hint that a datatype is being promoted and Data.Kind.Type isn't a datatype, I think
23:02:43 <gnumonik> ixlun, Why do you wanna splice a name? I thought I wanted to do that when figuring out TH but it wasn't really what I needed every time I thought it was
23:04:15 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
23:04:35 dcoutts_ joins (~duncan@33.14.75.194.dyn.plus.net)
23:05:39 ensyde joins (~ensyde@2600:1702:2e30:1a40:c919:4da8:ba88:82fd)
23:05:49 <hpc> there's a weird sort of humor to it being Data.Kind.Type and not Data.Type.Kind
23:06:14 christo joins (~chris@81.96.113.213)
23:06:18 polyrain joins (~polyrain@2001:8003:e501:6901:ec5c:488a:e80a:142b)
23:06:31 <koz_> hpc: Lol.
23:06:36 <MarcelineVQ> Type.Type.Kind.Type.Kind
23:06:44 <koz_> If we're going for humour, we shoudl have Data.Type.Type.
23:06:48 mrchampion joins (~mrchampio@216-211-57-41.dynamic.tbaytel.net)
23:06:49 × refried_ quits (~textual@209.6.41.245) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
23:07:51 p8m_ joins (p8m@gateway/vpn/protonvpn/p8m)
23:07:51 <hpc> ("sort of humor" was an unintentional bonus pun)
23:08:02 <MarcelineVQ> You've gone too far.
23:08:15 <koz_> hpc: That was worthy of the 80s.
23:08:22 <MarcelineVQ> Rewease the secwet weapon!
23:08:24 × DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 256 seconds)
23:08:55 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
23:09:04 × p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds)
23:10:41 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:10:45 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
23:12:02 <nshepperd> The Haskell type system is a kind sort
23:15:17 × Lycurgus quits (~niemand@98.4.96.235) (Quit: Exeunt)
23:17:44 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
23:18:11 jedws joins (~jedws@121.209.161.98)
23:18:43 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
23:21:58 hackage churros 0.1.5.0 - Channel/Arrow based streaming computation library. https://hackage.haskell.org/package/churros-0.1.5.0 (LyndonMaydwell)
23:24:31 × ph88 quits (~ph88@ip5f5af0cc.dynamic.kabel-deutschland.de) (Quit: Leaving)
23:25:01 perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
23:25:23 × rdivacky quits (~rdivacky@212.96.173.4) (Ping timeout: 240 seconds)
23:25:40 rdivacky joins (~rdivacky@212.96.173.4)
23:25:40 × taurux quits (~taurux@net-188-152-1-136.cust.vodafonedsl.it) (Ping timeout: 260 seconds)
23:25:41 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
23:27:40 taurux joins (~taurux@net-188-152-143-32.cust.dsl.teletu.it)
23:28:02 × dhil quits (~dhil@195.213.192.122) (Ping timeout: 265 seconds)
23:29:13 bairyn is now known as ByronJohnson
23:29:56 conal joins (~conal@64.71.133.70)
23:35:07 <monochrom> I love puns. Keep them coming!
23:36:35 klixto joins (~klixto@130.220.8.137)
23:38:30 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:39:07 × codygman quits (~codygman@47-184-107-46.dlls.tx.frontiernet.net) (Ping timeout: 258 seconds)
23:40:32 × acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
23:41:34 sfvm joins (~sfvm@37.228.215.148)
23:41:36 × xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
23:41:40 Stanley00 joins (~stanley00@unaffiliated/stanley00)
23:43:18 × StoneToad_ quits (~StoneToad@199-167-119-214.ppp.storm.ca) (Ping timeout: 256 seconds)
23:43:25 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
23:44:24 avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz)
23:44:48 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
23:44:59 codygman joins (~codygman@2600:380:f914:a1ca:eb25:85ee:c4a3:cd2e)
23:46:24 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 265 seconds)
23:47:58 StoneToad joins (~StoneToad@199-167-119-239.ppp.storm.ca)
23:51:15 kenran joins (~maier@b2b-37-24-119-190.unitymedia.biz)
23:56:28 × kenran quits (~maier@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 260 seconds)
23:57:37 × avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:59:01 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)

All times are in UTC on 2020-10-19.