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.