Logs on 2021-04-27 (freenode/#haskell)
| 00:00:05 | × | xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection) |
| 00:02:54 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:94a4:7355:214:11fd) (Ping timeout: 245 seconds) |
| 00:04:12 | → | xsperry joins (~as@unaffiliated/xsperry) |
| 00:13:21 | × | tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 268 seconds) |
| 00:14:06 | → | ADG1089 joins (~aditya@171.76.29.233) |
| 00:15:08 | → | tmciver joins (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
| 00:15:14 | × | chateau quits (~chateau@71.215.110.96) (Quit: Leaving) |
| 00:16:47 | × | chimera quits (~chimera@168-182-134-95.pool.ukrtel.net) (Quit: Konversation terminated!) |
| 00:24:49 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 00:25:02 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds) |
| 00:25:05 | × | ADG1089 quits (~aditya@171.76.29.233) (Quit: Konversation terminated!) |
| 00:26:38 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 00:26:52 | → | ddellac__ joins (~ddellacos@86.106.143.151) |
| 00:27:11 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds) |
| 00:27:18 | × | philderbeast quits (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:28:29 | → | notzmv joins (~zmv@unaffiliated/zmv) |
| 00:31:28 | × | ddellac__ quits (~ddellacos@86.106.143.151) (Ping timeout: 252 seconds) |
| 00:32:28 | → | Guest6509 joins (~laudiacay@45.162.228.190) |
| 00:34:11 | × | natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 00:37:56 | → | stree joins (~stree@68.36.8.116) |
| 00:38:19 | → | zmijunkie1 joins (~Adium@87.123.60.135) |
| 00:38:37 | × | bennofs_ quits (~quassel@dynamic-089-012-155-245.89.12.pool.telefonica.de) (Ping timeout: 252 seconds) |
| 00:38:53 | → | bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de) |
| 00:40:16 | × | zmijunkie quits (~Adium@87.123.51.242) (Ping timeout: 252 seconds) |
| 00:43:02 | × | bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Read error: Connection reset by peer) |
| 00:43:23 | → | bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de) |
| 00:46:45 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 00:46:45 | → | Sarcarean joins (4582bfd4@h69-130-191-212.bendor.broadband.dynamic.tds.net) |
| 00:47:25 | × | proofofkeags quits (~proofofke@205.209.28.54) (Ping timeout: 252 seconds) |
| 00:47:58 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-hhxgnaqpkeoleenq) (Quit: Connection closed for inactivity) |
| 00:57:48 | × | HannaM quits (~quassel@p54849510.dip0.t-ipconnect.de) (Quit: https://www.oglaf.com/archive/) |
| 00:58:37 | × | Benzi-Junior quits (~BenziJuni@88-149-64-251.du.xdsl.is) (Quit: gone) |
| 00:59:40 | × | hendursa1 quits (~weechat@gateway/tor-sasl/hendursaga) (Quit: hendursa1) |
| 01:00:09 | → | hendursaga joins (~weechat@gateway/tor-sasl/hendursaga) |
| 01:00:27 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:00:30 | → | Benzi-Junior joins (~BenziJuni@dsl-149-64-251.hive.is) |
| 01:03:07 | → | ddellac__ joins (~ddellacos@86.106.143.229) |
| 01:04:26 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 01:07:46 | × | ddellac__ quits (~ddellacos@86.106.143.229) (Ping timeout: 252 seconds) |
| 01:09:42 | → | esp387228 joins (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127) |
| 01:10:24 | × | esp32_prog quits (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127) (Read error: Connection reset by peer) |
| 01:11:06 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:fd3a:4f7b:345d:8677) |
| 01:11:26 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 01:11:27 | × | whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:12:32 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 01:12:35 | → | whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:13:11 | → | jgt joins (~jgt@78.162.43.217) |
| 01:13:41 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 01:14:49 | → | rajivr joins (uid269651@gateway/web/irccloud.com/x-oslfpzkstfgdrfpu) |
| 01:15:54 | × | jacks2 quits (~bc8134e3@217.29.117.252) (Quit: QUIT) |
| 01:16:34 | × | solidus-river quits (~mike@174.127.249.180) (Remote host closed the connection) |
| 01:18:35 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:18:46 | × | jgt quits (~jgt@78.162.43.217) (Ping timeout: 252 seconds) |
| 01:20:55 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 01:22:15 | × | epicte7us quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Quit: Leaving) |
| 01:23:00 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 01:24:30 | → | Q8IoXhexAi joins (~Q8IoXhexA@c-73-88-253-11.hsd1.tn.comcast.net) |
| 01:25:18 | → | vdukhovni joins (64022765@100.2.39.101) |
| 01:28:50 | × | nineonin_ quits (~nineonine@50.216.62.2) (Ping timeout: 265 seconds) |
| 01:28:54 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 01:31:39 | → | drbean_ joins (~drbean@TC210-63-209-69.static.apol.com.tw) |
| 01:34:01 | → | nineonine joins (~nineonine@50.216.62.2) |
| 01:34:29 | × | nicholasbulka quits (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c) (Remote host closed the connection) |
| 01:34:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 01:35:13 | → | nicholasbulka joins (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c) |
| 01:38:12 | → | ddellac__ joins (~ddellacos@86.106.143.112) |
| 01:39:58 | → | slack1256 joins (~slack1256@200-112-79-167.baf.movistar.cl) |
| 01:40:01 | × | vdukhovni quits (64022765@100.2.39.101) (Quit: Connection closed) |
| 01:40:24 | × | nicholasbulka quits (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c) (Ping timeout: 245 seconds) |
| 01:42:24 | <slack1256> | What is the current advice for testing effects on a MTL framework? I currently have a code base paramitriced on monad class, but a method is a call to a graphql server. Mocking that function seems burdersome. |
| 01:42:26 | × | ddellac__ quits (~ddellacos@86.106.143.112) (Ping timeout: 246 seconds) |
| 01:44:47 | × | xff0x quits (~xff0x@2001:1a81:53aa:e600:aedf:66c8:4911:fe15) (Ping timeout: 260 seconds) |
| 01:46:30 | → | xff0x joins (~xff0x@2001:1a81:53e0:9b00:13c7:4d:b9c2:a94a) |
| 01:48:36 | × | Q8IoXhexAi quits (~Q8IoXhexA@c-73-88-253-11.hsd1.tn.comcast.net) (Quit: Terminated!) |
| 01:51:11 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 01:51:57 | → | vdukhovni joins (64022765@100.2.39.101) |
| 01:53:50 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 01:54:32 | → | dastomate joins (~dastomate@0543f40b.skybroadband.com) |
| 01:56:35 | → | slac52336 joins (~slack1256@201-223-250-53.baf.movistar.cl) |
| 01:56:55 | × | hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:8bd4:3e0a:68:465c) (Ping timeout: 260 seconds) |
| 01:57:42 | → | proofofkeags joins (~proofofke@97-118-239-55.hlrn.qwest.net) |
| 01:57:42 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 01:58:46 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:fd3a:4f7b:345d:8677) (Remote host closed the connection) |
| 01:58:55 | × | slack1256 quits (~slack1256@200-112-79-167.baf.movistar.cl) (Ping timeout: 252 seconds) |
| 02:03:40 | <__minoru__shirae> | slack1256: if it's open-source, can you post a link to the project? |
| 02:04:51 | <slac52336> | __minoru__shirae: it is not :-/ |
| 02:06:54 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 02:08:35 | <__minoru__shirae> | slac52336: too bad, wanted to see an example of industrial haskell |
| 02:08:58 | → | hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:bd49:f20f:3581:6a35) |
| 02:10:39 | slac52336 | is now known as slack1256 |
| 02:10:52 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 02:11:04 | <slack1256> | It's the same. You just don't feel for using `lens`. |
| 02:11:18 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-rcsvshxqwuthdgbo) () |
| 02:11:20 | <slack1256> | feel bad |
| 02:12:29 | → | ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 02:13:14 | × | CrazyPyt_ quits (~crazypyth@98.122.164.118) (Read error: Connection reset by peer) |
| 02:14:11 | × | hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:bd49:f20f:3581:6a35) (Ping timeout: 260 seconds) |
| 02:16:31 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 02:17:05 | × | ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds) |
| 02:17:57 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:4145:a684:2dd9:7c27) |
| 02:19:21 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 02:23:44 | × | aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 245 seconds) |
| 02:25:52 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 252 seconds) |
| 02:26:53 | × | stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.1) |
| 02:29:26 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 02:32:29 | × | theDon quits (~td@muedsl-82-207-238-220.citykom.de) (Ping timeout: 246 seconds) |
| 02:34:09 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
| 02:34:20 | → | theDon joins (~td@muedsl-82-207-238-198.citykom.de) |
| 02:39:43 | → | FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 02:39:43 | finn_elija | is now known as Guest21444 |
| 02:39:43 | FinnElija | is now known as finn_elija |
| 02:42:21 | × | Guest21444 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds) |
| 02:45:07 | → | ram19890 joins (~ram@49.205.84.253) |
| 02:46:13 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 252 seconds) |
| 02:48:13 | × | Guest6509 quits (~laudiacay@45.162.228.190) (Ping timeout: 252 seconds) |
| 02:48:34 | × | datajerk quits (~datajerk@sense.net) (Remote host closed the connection) |
| 02:49:02 | → | datajerk joins (~datajerk@sense.net) |
| 02:50:11 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 240 seconds) |
| 02:50:49 | → | ddellac__ joins (~ddellacos@86.106.143.190) |
| 02:55:32 | × | ddellac__ quits (~ddellacos@86.106.143.190) (Ping timeout: 268 seconds) |
| 02:55:41 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 02:57:41 | × | horatiohb quits (~horatiohb@159.65.170.201) (Ping timeout: 246 seconds) |
| 02:58:31 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:4145:a684:2dd9:7c27) (Remote host closed the connection) |
| 02:58:31 | × | hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1) |
| 02:58:47 | → | stree joins (~stree@68.36.8.116) |
| 02:59:55 | → | hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) |
| 03:02:07 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 03:03:39 | → | aVikingTrex joins (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
| 03:06:44 | → | carlomagno joins (~cararell@148.87.23.12) |
| 03:08:04 | → | Guest6509 joins (~laudiacay@45.162.228.190) |
| 03:08:49 | × | MrMobius quits (~MrMobius@208.58.206.154) (Read error: Connection reset by peer) |
| 03:11:42 | × | __minoru__shirae quits (~shiraeesh@109.166.59.124) (Ping timeout: 260 seconds) |
| 03:12:12 | → | MrMobius joins (~MrMobius@208.58.206.154) |
| 03:12:12 | × | Guest6509 quits (~laudiacay@45.162.228.190) (Ping timeout: 240 seconds) |
| 03:17:59 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds) |
| 03:21:25 | × | P_B1 quits (~P_B@139.28.218.148) (Remote host closed the connection) |
| 03:23:38 | <Axman6> | slack1256: so true |
| 03:23:54 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 03:24:26 | × | esp387228 quits (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127) (Ping timeout: 240 seconds) |
| 03:26:39 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 245 seconds) |
| 03:26:57 | <justsomeguy> | What is the Reader monad? |
| 03:27:27 | <Axman6> | it's a way to pass around some data that various parts of your application needs, without needing to explicitly pass it as function arguments |
| 03:28:02 | <justsomeguy> | So, a named closure that shows up in type signatures? |
| 03:28:14 | → | aplainze1akind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 03:29:10 | <shachaf> | Well, a closure closes over some existing value. "Reader" means a thing is parameterized. |
| 03:29:17 | × | carlomagno quits (~cararell@148.87.23.12) (Quit: Leaving.) |
| 03:29:26 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 03:29:26 | aplainze1akind | is now known as aplainzetakind |
| 03:29:28 | <Axman6> | so, it's commonly used to pass around settings your application was passed when it launched, from command line arguments, config files, etc. |
| 03:29:52 | <shachaf> | But "Reader r a" is just a function, "r -> a". |
| 03:31:02 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:31:34 | → | ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 03:32:35 | <justsomeguy> | Thank you, that helps a lot. |
| 03:32:42 | × | _xor quits (~xor@74.215.46.133) (Quit: brb) |
| 03:33:50 | → | nineonine joins (~nineonine@50.216.62.2) |
| 03:34:20 | <Axman6> | You'll often see apps using a monad stack which has ReaderT Config SomeOtherMonad so they can access things like database connection strings/objects, logging level |
| 03:35:46 | × | ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 240 seconds) |
| 03:35:48 | <gnumonic> | It's pretty common to use ReaderT with a mutable variable of some sort (TVar, etc) for concurrency since you can't do concurrency with a state monad. (I think?) |
| 03:36:27 | <Axman6> | sure, that could form part of your config if you wanted it to |
| 03:37:25 | → | kirb joins (~kirb@185.163.110.100) |
| 03:38:25 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 03:39:43 | <wroathe> | Yo dawg, I put a reader in your reader so you can reader while you reader |
| 03:40:10 | → | systemhalted joins (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) |
| 03:40:12 | <Axman6> | :t fix Reader |
| 03:40:14 | <lambdabot> | error: |
| 03:40:14 | <lambdabot> | • Data constructor not in scope: Reader :: a -> a |
| 03:40:14 | <lambdabot> | • Perhaps you meant one of these: |
| 03:40:39 | × | jeet quits (~jeet@183.83.214.10) (Quit: WeeChat 3.1) |
| 03:40:44 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 03:40:58 | <gnumonic> | er yeah I guess my comment didn't really add anything. I'm just so used to writing 'ReaderT (TVar Something)" and thinking "ConcurrentState Something" that I forget that's not the only thing it's for :p |
| 03:42:16 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 03:42:46 | × | systemhalted quits (~aqualogic@71-129-231-253.lightspeed.rcsntx.sbcglobal.net) (Remote host closed the connection) |
| 03:45:23 | × | thc202 quits (~thc202@unaffiliated/thc202) (Read error: Connection reset by peer) |
| 03:45:30 | → | _xor joins (~xor@74.215.46.133) |
| 03:46:16 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1) |
| 03:49:32 | × | slack1256 quits (~slack1256@201-223-250-53.baf.movistar.cl) (Remote host closed the connection) |
| 03:50:37 | <Axman6> | slack1256: At #previousEmployer, we had a pattern of mocking various MTL style effects, which I always wanted to write a TH library for which would could pass in a type class and it'd spit out the record of fields which represented each call for each class method, which would be passed in lists of expected arguments and return values, and IIRC we would make that a ReaderT'd value with an instance for the class we were mocking... it was still |
| 03:50:37 | <Axman6> | burdensome but that would have made it less so |
| 03:50:43 | <Axman6> | oh they left :'( |
| 03:50:51 | <Axman6> | @tell slack1256 At #previousEmployer, we had a pattern of mocking various MTL style effects, which I always wanted to write a TH library for which would could pass in a type class and it'd spit out the record of fields which represented each call for each class method, which would be passed in lists of expected arguments and return values, and IIRC we would make that a ReaderT'd value with an instance for the class we were mocking... it was s |
| 03:50:52 | <lambdabot> | Consider it noted. |
| 03:50:52 | <Axman6> | till burdensome but that would have made it less so |
| 03:50:55 | <Axman6> | <3 |
| 03:53:26 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 03:56:52 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 03:57:00 | → | Tario joins (~Tario@201.192.165.173) |
| 03:57:04 | → | dastomaten joins (~dastomate@0543f40b.skybroadband.com) |
| 03:57:09 | × | ech quits (~user@gateway/tor-sasl/ech) (Ping timeout: 240 seconds) |
| 03:59:15 | <mniip> | is there a cute name for a free category from a quiver? |
| 04:00:54 | × | dastomate quits (~dastomate@0543f40b.skybroadband.com) (Ping timeout: 268 seconds) |
| 04:01:49 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 04:02:51 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 04:03:29 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 04:04:52 | × | zmijunkie1 quits (~Adium@87.123.60.135) (Ping timeout: 240 seconds) |
| 04:04:53 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 04:05:06 | <gnumonic> | would performance be very bad with a sum type that had, uh, i dunno, like ten thousand nullary constructors? |
| 04:05:14 | × | xlei quits (znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in) |
| 04:05:50 | → | ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 04:05:53 | <Axman6> | I thought there were limits to the number you could use |
| 04:06:04 | → | zmijunkie joins (~Adium@87.122.222.91) |
| 04:06:11 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 04:06:23 | <Axman6> | ifit were me I'd newtype Word or something, and then make pattern synonyms, but I'm not sure if that's necessary |
| 04:07:21 | × | dmwit quits (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
| 04:08:15 | → | dmwit joins (~dmwit@pool-173-66-86-32.washdc.fios.verizon.net) |
| 04:08:29 | <gnumonic> | it's for some type level stuff, i'm just looking for something that i can singletonize/generate incrementally/has an eq instance/isn't a peano number |
| 04:08:57 | → | xlei joins (znc@unaffiliated/xlei) |
| 04:09:26 | <Axman6> | that sounds like it will make for some very unhappy compile times, but shouldn't affect runtime since they'll all have gone away |
| 04:10:22 | × | ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds) |
| 04:12:27 | × | bgamari quits (~bgamari@72.65.101.132) (Quit: ZNC 1.8.1 - https://znc.in) |
| 04:12:47 | → | bgamari joins (~bgamari@2001:470:e438::1) |
| 04:13:23 | → | guest7682358928 joins (c9dbea7b@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.234.123) |
| 04:13:33 | × | xkapastel quits (uid17782@gateway/web/irccloud.com/x-sgigdjanpsamlbkh) (Quit: Connection closed for inactivity) |
| 04:14:27 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:9131:c747:1288:d3be) |
| 04:15:10 | <gnumonic> | actually since i don't need to do induction i guess I could do something like: data SWord16 = SSword16 Bool Bool Bool (...) etc |
| 04:16:17 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 04:18:44 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:9131:c747:1288:d3be) (Ping timeout: 245 seconds) |
| 04:19:05 | × | vdukhovni quits (64022765@100.2.39.101) (Quit: Connection closed) |
| 04:21:10 | × | untakenstupidnic quits (~user@5.114.130.12) (Read error: Connection reset by peer) |
| 04:21:42 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 04:22:18 | → | nineonine joins (~nineonine@50.216.62.2) |
| 04:23:41 | → | untakenstupidnic joins (~user@5.114.130.12) |
| 04:31:59 | × | Sgeo quits (~Sgeo@ool-18b9875e.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 04:32:16 | → | Sgeo joins (~Sgeo@ool-18b9875e.dyn.optonline.net) |
| 04:42:49 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 252 seconds) |
| 04:43:27 | → | ddellac__ joins (ddellacost@gateway/vpn/mullvad/ddellacosta) |
| 04:47:01 | <Axman6> | gnumonic: do you know how many you actually need? |
| 04:47:54 | × | ddellac__ quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 245 seconds) |
| 04:49:08 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 04:50:23 | → | nineonine joins (~nineonine@50.216.62.2) |
| 04:52:17 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Remote host closed the connection) |
| 04:52:39 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 04:55:31 | <gnumonic> | I don't know the precise number but not more than a few thousand (and that's including a pretty big safety margin for exceptional situations) |
| 04:55:52 | <gnumonic> | i.e. if i could just singletonize a word16 straightforwardly i'd do that |
| 04:56:15 | <Axman6> | Ah I was assuming it was soe category of known values, and if it were, you could break it down into its prime factors and reduce the overhead of the binary representation somewhat :P |
| 05:02:53 | → | sqrt2_ joins (~ben@unaffiliated/sqrt2) |
| 05:03:07 | × | sqrt2 quits (~ben@unaffiliated/sqrt2) (Ping timeout: 260 seconds) |
| 05:04:43 | × | DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
| 05:06:43 | × | ericsagn1 quits (~ericsagne@2405:6580:0:5100:8cfe:e2c:fb24:3adc) (Ping timeout: 250 seconds) |
| 05:06:50 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 246 seconds) |
| 05:11:52 | <gnumonic> | Nah. It's more or less just a unique identifier for some objects. It doesn't even have to be a number really, but it's not like Symbols are any better than GHC.TypeLits Nats when you need a singleton you can stash inside a data structure... Actually I dunno why I'm doing a binary representation at all. I might as well do 'data IDSym = A | B | (etc)' and 'data ID = IDSym IDSym IDSym (etc)'. |
| 05:13:54 | <gnumonic> | actually i don't even need the last (etc). note to self, think more before starting to code |
| 05:16:01 | → | dastomate joins (~dastomate@0543f40b.skybroadband.com) |
| 05:19:17 | → | ericsagn1 joins (~ericsagne@2405:6580:0:5100:ed88:b772:a9fc:1e72) |
| 05:19:50 | × | dastomaten quits (~dastomate@0543f40b.skybroadband.com) (Ping timeout: 268 seconds) |
| 05:20:04 | → | stree joins (~stree@68.36.8.116) |
| 05:20:26 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 05:23:27 | × | kirb quits (~kirb@185.163.110.100) (Remote host closed the connection) |
| 05:24:11 | × | dastomate quits (~dastomate@0543f40b.skybroadband.com) (Ping timeout: 240 seconds) |
| 05:26:40 | → | michalz joins (~user@185.246.204.123) |
| 05:28:10 | → | Tario joins (~Tario@201.192.165.173) |
| 05:30:05 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:e172:7d45:5cbc:afbd) |
| 05:32:07 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 05:33:09 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 05:33:10 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 05:34:08 | → | LKoen joins (~LKoen@22.249.88.92.rev.sfr.net) |
| 05:34:34 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:e172:7d45:5cbc:afbd) (Ping timeout: 245 seconds) |
| 05:34:41 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 05:35:59 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 05:37:14 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 05:37:41 | → | arturh joins (~arturh@93.176.180.48) |
| 05:38:28 | → | Tario joins (~Tario@201.192.165.173) |
| 05:39:16 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 05:41:39 | → | plutoniix joins (~q@cm-119-76-33-123.revip17.asianet.co.th) |
| 05:49:21 | × | jao quits (~jao@pdpc/supporter/professional/jao) (Ping timeout: 252 seconds) |
| 05:51:34 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 252 seconds) |
| 05:53:52 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 05:59:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:01:32 | × | forell quits (~forell@unaffiliated/forell) (Ping timeout: 240 seconds) |
| 06:01:44 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:04:23 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
| 06:05:10 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 06:09:05 | × | waleee-cl quits (uid373333@gateway/web/irccloud.com/x-rvemkovqaoswbohn) (Quit: Connection closed for inactivity) |
| 06:10:12 | × | mounty quits (~mounty@236.216.214.218.sta.wbroadband.net.au) (Ping timeout: 240 seconds) |
| 06:12:53 | → | coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) |
| 06:22:06 | → | Synthetica joins (uid199651@gateway/web/irccloud.com/x-jzozwncadkywrjny) |
| 06:22:16 | → | zmijunkie1 joins (~Adium@109.90.32.89) |
| 06:22:33 | × | xff0x quits (~xff0x@2001:1a81:53e0:9b00:13c7:4d:b9c2:a94a) (Ping timeout: 250 seconds) |
| 06:23:09 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 06:23:41 | → | xff0x joins (~xff0x@2001:1a81:53e0:9b00:7bc7:e0fa:939f:81c6) |
| 06:23:44 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 245 seconds) |
| 06:24:12 | × | zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 246 seconds) |
| 06:24:47 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:25:19 | → | johannes_ joins (~johannes@b2b-37-24-119-190.unitymedia.biz) |
| 06:29:31 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds) |
| 06:30:58 | → | zmijunkie joins (~Adium@87.122.222.91) |
| 06:31:15 | × | gnumonic quits (~gnumonic@c-73-170-91-210.hsd1.ca.comcast.net) (Quit: Leaving) |
| 06:31:45 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-trxxyompkioojjhk) (Quit: Connection closed for inactivity) |
| 06:31:46 | → | Lowl3v3l joins (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) |
| 06:32:49 | × | zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 252 seconds) |
| 06:35:46 | × | falafel quits (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 06:35:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 06:37:22 | → | wonko7 joins (~wonko7@62.115.229.50) |
| 06:38:04 | → | forell joins (~forell@unaffiliated/forell) |
| 06:40:25 | → | jgt joins (~jgt@78.162.43.217) |
| 06:43:53 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 06:45:53 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:f8f8:39af:49d9:69f2) |
| 06:46:37 | → | othe1 joins (~othe@195.140.213.38) |
| 06:46:51 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 06:48:50 | → | unlink2 joins (~unlink2@p200300ebcf12ad00ad652fa1ddae7806.dip0.t-ipconnect.de) |
| 06:50:43 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:f8f8:39af:49d9:69f2) (Ping timeout: 250 seconds) |
| 06:53:31 | → | whosit joins (~whosit@109-252-94-126.nat.spd-mgts.ru) |
| 07:00:36 | → | v01d4lph4 joins (~v01d4lph4@27.57.103.213) |
| 07:01:15 | → | m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 07:01:35 | → | Lycurgus joins (~niemand@98.4.118.65) |
| 07:02:20 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 07:04:56 | → | dyeplexer joins (~lol@unaffiliated/terpin) |
| 07:05:11 | × | Kaiepi quits (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
| 07:05:14 | → | zmijunkie1 joins (~Adium@109.90.32.89) |
| 07:05:26 | × | v01d4lph4 quits (~v01d4lph4@27.57.103.213) (Ping timeout: 260 seconds) |
| 07:05:30 | → | Kaiepi joins (~Kaiepi@47.54.252.148) |
| 07:05:50 | × | zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 246 seconds) |
| 07:10:21 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 07:10:41 | → | bitmagie joins (~Thunderbi@200116b80690c300997cabc9cf9a1ff7.dip.versatel-1u1.de) |
| 07:10:57 | → | zmijunkie joins (~Adium@87.122.222.91) |
| 07:13:21 | × | zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 260 seconds) |
| 07:13:32 | × | jgt quits (~jgt@78.162.43.217) (Ping timeout: 240 seconds) |
| 07:14:07 | × | sqrt2_ quits (~ben@unaffiliated/sqrt2) (Ping timeout: 250 seconds) |
| 07:14:17 | → | sqrt2 joins (~ben@unaffiliated/sqrt2) |
| 07:15:23 | → | vgtw_ joins (~vgtw@gateway/tor-sasl/vgtw) |
| 07:15:26 | → | Aquazi joins (uid312403@gateway/web/irccloud.com/x-eryhzfeygpvphsjr) |
| 07:15:51 | × | vgtw quits (~vgtw@gateway/tor-sasl/vgtw) (Remote host closed the connection) |
| 07:15:52 | vgtw_ | is now known as vgtw |
| 07:16:04 | → | ddella___ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 07:16:18 | × | bitmagie quits (~Thunderbi@200116b80690c300997cabc9cf9a1ff7.dip.versatel-1u1.de) (Quit: bitmagie) |
| 07:16:35 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:16:37 | × | proofofkeags quits (~proofofke@97-118-239-55.hlrn.qwest.net) (Ping timeout: 252 seconds) |
| 07:17:54 | × | aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 245 seconds) |
| 07:18:27 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 07:18:38 | × | bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Read error: Connection reset by peer) |
| 07:18:55 | → | bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de) |
| 07:21:11 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 07:24:05 | × | danso quits (~dan@modemcable156.91-20-96.mc.videotron.ca) (Ping timeout: 265 seconds) |
| 07:27:08 | × | coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 07:27:21 | → | hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:4afc:980e:3b22:8734) |
| 07:27:37 | → | zmijunkie1 joins (~Adium@109.90.32.89) |
| 07:28:26 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 265 seconds) |
| 07:29:32 | × | zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 240 seconds) |
| 07:30:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:30:37 | → | jgt joins (~jgt@78.162.43.217) |
| 07:34:09 | → | zmijunkie joins (~Adium@87.122.222.91) |
| 07:35:12 | × | tsaka_ quits (~torstein@athedsl-4519432.home.otenet.gr) (Ping timeout: 240 seconds) |
| 07:35:34 | → | nicholasbulka joins (~nicholasb@2601:900:4301:da0:5440:6bb8:f181:7832) |
| 07:36:03 | × | zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 252 seconds) |
| 07:36:53 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 07:38:06 | × | wonko7 quits (~wonko7@62.115.229.50) (Quit: See You Space Cowboy..) |
| 07:39:41 | × | nicholasbulka quits (~nicholasb@2601:900:4301:da0:5440:6bb8:f181:7832) (Ping timeout: 250 seconds) |
| 07:41:26 | → | stree joins (~stree@68.36.8.116) |
| 07:42:53 | → | alexander joins (~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d) |
| 07:43:21 | alexander | is now known as Guest85960 |
| 07:44:40 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 07:45:27 | × | tionos- quits (~tionos@2a0b:b7c4:1:731::1) (Quit: leaving) |
| 07:45:41 | → | tionos joins (~tionos@2a0b:b7c4:1:731::1) |
| 07:46:08 | × | Lycurgus quits (~niemand@98.4.118.65) (Quit: Exeunt) |
| 07:46:35 | → | malumore joins (~malumore@151.62.126.111) |
| 07:47:04 | × | ericsagn1 quits (~ericsagne@2405:6580:0:5100:ed88:b772:a9fc:1e72) (Ping timeout: 245 seconds) |
| 07:47:42 | × | Sgeo quits (~Sgeo@ool-18b9875e.dyn.optonline.net) (Read error: Connection reset by peer) |
| 07:48:31 | → | danso joins (~dan@modemcable156.91-20-96.mc.videotron.ca) |
| 07:48:48 | → | malumore_ joins (~malumore@151.62.126.111) |
| 07:51:41 | × | malumore quits (~malumore@151.62.126.111) (Ping timeout: 260 seconds) |
| 07:55:30 | → | __minoru__shirae joins (~shiraeesh@109.166.59.124) |
| 07:56:05 | → | coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) |
| 07:56:26 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 07:57:34 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 07:59:16 | → | ericsagn1 joins (~ericsagne@2405:6580:0:5100:9b9f:be30:ff0e:2bc) |
| 08:02:23 | → | wonko7 joins (~wonko7@62.115.229.50) |
| 08:03:17 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 08:04:00 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
| 08:10:45 | × | hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds) |
| 08:13:23 | → | zmijunkie1 joins (~Adium@109.90.32.89) |
| 08:14:15 | → | hendursaga joins (~weechat@gateway/tor-sasl/hendursaga) |
| 08:14:34 | × | zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 252 seconds) |
| 08:14:39 | → | sz0 joins (uid110435@gateway/web/irccloud.com/x-bwiuonpskoznguoq) |
| 08:15:27 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 08:20:08 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 08:20:32 | × | danso quits (~dan@modemcable156.91-20-96.mc.videotron.ca) (Quit: WeeChat 3.0) |
| 08:20:52 | × | Arahael quits (~arahael@123-243-38-74.tpgi.com.au) (Ping timeout: 240 seconds) |
| 08:24:13 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds) |
| 08:24:55 | → | kuribas joins (~user@ptr-25vy0i7u5k5fyxhyy6l.18120a2.ip6.access.telenet.be) |
| 08:26:58 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 08:28:14 | → | fendor joins (~fendor@178.115.131.177.wireless.dyn.drei.com) |
| 08:31:01 | → | pbgc joins (~pbgc@a89-152-234-147.cpe.netcabo.pt) |
| 08:31:52 | × | Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 240 seconds) |
| 08:33:42 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 08:36:39 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:38:16 | → | dhil joins (~dhil@80.208.56.181) |
| 08:38:50 | → | acidjnk_new joins (~acidjnk@p200300d0c72b95883ddaf449c9d144e9.dip0.t-ipconnect.de) |
| 08:41:30 | × | drbean_ quits (~drbean@TC210-63-209-69.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
| 08:43:41 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 08:46:44 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:7098:46df:517a:426) |
| 08:48:26 | → | Arahael joins (~arahael@123-243-38-74.tpgi.com.au) |
| 08:51:11 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:7098:46df:517a:426) (Ping timeout: 250 seconds) |
| 08:55:18 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 08:55:26 | × | rdd quits (~rdd@c-407ce255.012-81-73746f39.cust.ownit.se) (Ping timeout: 240 seconds) |
| 08:58:16 | → | jess joins (jess@freenode/staff/jess) |
| 08:59:09 | × | hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 245 seconds) |
| 09:00:48 | → | DavidEichmann joins (~david@147.136.46.217.dyn.plus.net) |
| 09:00:59 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 09:01:17 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 09:03:26 | × | __minoru__shirae quits (~shiraeesh@109.166.59.124) (Ping timeout: 260 seconds) |
| 09:03:38 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:04:22 | → | ech joins (~user@gateway/tor-sasl/ech) |
| 09:04:54 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 09:08:41 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:12:58 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 09:13:32 | → | __minoru__shirae joins (~shiraeesh@109.166.59.124) |
| 09:18:59 | → | dvdp73 joins (59736826@38.104.115.89.rev.vodafone.pt) |
| 09:24:26 | × | plutoniix quits (~q@cm-119-76-33-123.revip17.asianet.co.th) (Quit: Leaving) |
| 09:24:54 | → | plutoniix joins (~q@cm-119-76-33-123.revip17.asianet.co.th) |
| 09:25:18 | → | esp32_prog joins (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127) |
| 09:27:06 | → | idhugo joins (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) |
| 09:28:19 | → | mmfood joins (~mmfood@94.234.53.15) |
| 09:34:57 | → | daboss joins (31c7371a@gateway/web/cgi-irc/kiwiirc.com/ip.49.199.55.26) |
| 09:35:30 | × | Chai-T-Rex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 09:35:57 | → | Chai-T-Rex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 09:36:37 | <daboss> | hi everyone just wondering if something like this is code smell pseudo code classA { string user, classB admin } classB { construction(classA blah) } |
| 09:37:07 | <daboss> | basically classA contains classB and classB refrences classA |
| 09:37:23 | <lortabac> | daboss: what language is this? |
| 09:37:42 | <daboss> | just psuedo code |
| 09:37:53 | <lortabac> | what do you mean by "contains classB"? |
| 09:38:00 | <daboss> | as a variable |
| 09:38:18 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Remote host closed the connection) |
| 09:38:55 | <nitrix> | If you think it's a code smell, then OOP would classify as code smell then. You just described inheritance. |
| 09:39:41 | <daboss> | its not inheritence just classA contains and instance of classB but classB refrences classA |
| 09:39:47 | <daboss> | an* |
| 09:40:11 | <nitrix> | You're doing composition, but then you circle back with a reference, that's literally inheritance. |
| 09:40:24 | <daboss> | thought i'd ask here since haskell programmers are usually pretty good :) |
| 09:40:44 | <daboss> | didn't see it that way |
| 09:40:53 | × | tempate quits (~tempate@unaffiliated/tempate) (Ping timeout: 246 seconds) |
| 09:41:42 | <daboss> | do you think its bad/ |
| 09:42:20 | <daboss> | i think its not good design a good design would be classC that holds class A and classB |
| 09:42:21 | <lortabac> | oh ok so "class" is not in the Haskell sense of "type class"? |
| 09:42:35 | <daboss> | yeah like a class in C# |
| 09:43:25 | <nitrix> | Bad at what/for what? What are we judging and by what metric? |
| 09:44:41 | <daboss> | just a matter of opinion that's why I'm asking if you think its bad to have a circilar refrence |
| 09:45:02 | <daboss> | if it indicates bad design |
| 09:45:35 | <nitrix> | It indicates _a_ design. I don't know whether the design is useful or not. What problem is it solving? |
| 09:46:57 | × | Axman6 quits (~Axman6@pdpc/supporter/student/Axman6) (Remote host closed the connection) |
| 09:46:59 | <daboss> | it's a server and one of the polling for data methods is classB and classA is the server |
| 09:47:13 | → | Axman6 joins (~Axman6@pdpc/supporter/student/Axman6) |
| 09:47:43 | × | esp32_prog quits (esp32_prog@gateway/vpn/mullvad/esp32prog/x-46565127) (Remote host closed the connection) |
| 09:49:02 | <nitrix> | So Server is just the base server, while PollableServer is capable of more (of being polled?) But somehow Server knows that it's within a PollableServer? Why? |
| 09:49:44 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 252 seconds) |
| 09:50:51 | <daboss> | server starts and stops the poll but the poll needs most of the variables in server to complete tasks so server is passed as a variable to poll does that make sense? |
| 09:52:49 | <nitrix> | I'd decouple the twos. Instead of the server starting/stopping the poll, it should emit events/have callbacks that can be registered to run at key moments. |
| 09:53:12 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
| 09:53:35 | <nitrix> | Then your pollable server can have the server as its member, and configure it properly to do specific things at specific times, here, calling on of its own methods. |
| 09:53:57 | <nitrix> | Think higher-order. |
| 09:54:28 | <daboss> | thanks for the idea |
| 09:55:37 | <nitrix> | I think breaking that cycle should be the priority. Seems strange for that server to know about polling. You went through the trouble of splitting the two concepts, but they haven't entirely been made independent yet. |
| 09:55:37 | × | LKoen quits (~LKoen@22.249.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 09:55:50 | → | malumore__ joins (~malumore@151.62.126.111) |
| 09:56:33 | <daboss> | yeah that's what has been bugging me but finding it hard to come up with a better design |
| 09:56:49 | → | LKoen joins (~LKoen@22.249.88.92.rev.sfr.net) |
| 09:56:56 | <nitrix> | daboss, This talk is unrelated, but the beginning goes into a similiar scenario and could help you: https://www.youtube.com/watch?v=49dMGC1hM1o |
| 09:57:17 | <daboss> | I'll check it out thanks |
| 09:57:18 | <nitrix> | daboss, OOP-like code is plagued full of that. Have a look at let me know :P |
| 09:58:29 | × | malumore__ quits (~malumore@151.62.126.111) (Remote host closed the connection) |
| 09:58:51 | × | malumore_ quits (~malumore@151.62.126.111) (Ping timeout: 260 seconds) |
| 09:59:43 | → | malumore joins (~malumore@151.62.126.111) |
| 10:00:32 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 10:01:46 | → | unlink_ joins (~unlink2@p57b85a36.dip0.t-ipconnect.de) |
| 10:02:19 | → | stree joins (~stree@68.36.8.116) |
| 10:02:22 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:4:66e1:4442:741b) |
| 10:02:41 | × | unlink2 quits (~unlink2@p200300ebcf12ad00ad652fa1ddae7806.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 10:04:31 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:05:51 | × | Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Remote host closed the connection) |
| 10:07:01 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 10:07:04 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:4:66e1:4442:741b) (Ping timeout: 245 seconds) |
| 10:07:08 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) () |
| 10:07:44 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 10:07:56 | × | unlink_ quits (~unlink2@p57b85a36.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
| 10:08:58 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 10:09:03 | → | unlink2 joins (~unlink2@p200300ebcf20460060204d274f2fcc0b.dip0.t-ipconnect.de) |
| 10:12:32 | → | unlink_ joins (~unlink2@p200300ebcf20460001326b711b7f17ac.dip0.t-ipconnect.de) |
| 10:12:40 | → | philderbeast joins (~textual@bras-base-vldvpq5901w-grc-06-184-144-244-252.dsl.bell.ca) |
| 10:13:23 | × | unlink2 quits (~unlink2@p200300ebcf20460060204d274f2fcc0b.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 10:13:25 | → | Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
| 10:13:33 | × | mmfood quits (~mmfood@94.234.53.15) (Read error: Connection reset by peer) |
| 10:18:35 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer) |
| 10:20:27 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 10:21:30 | × | thunderrd quits (~thunderrd@183.182.110.191) (Ping timeout: 268 seconds) |
| 10:26:11 | × | daboss quits (31c7371a@gateway/web/cgi-irc/kiwiirc.com/ip.49.199.55.26) (Quit: Connection closed) |
| 10:31:31 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 252 seconds) |
| 10:32:23 | → | ekrion joins (~ffx1@181.58.39.182) |
| 10:33:04 | → | idhugo_ joins (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) |
| 10:34:50 | × | o1lo01ol1o quits (~o1lo01ol1@bl11-109-140.dsl.telepac.pt) (Remote host closed the connection) |
| 10:36:11 | × | idhugo quits (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 268 seconds) |
| 10:38:32 | → | kritzefitz joins (~kritzefit@2003:5b:203b:200::10:49) |
| 10:40:18 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 10:40:45 | × | michalz quits (~user@185.246.204.123) (Ping timeout: 246 seconds) |
| 10:50:21 | → | Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net) |
| 11:00:25 | → | michalz joins (~user@185.246.204.107) |
| 11:00:35 | × | ericsagn1 quits (~ericsagne@2405:6580:0:5100:9b9f:be30:ff0e:2bc) (Ping timeout: 260 seconds) |
| 11:01:33 | × | hendursaga quits (~weechat@gateway/tor-sasl/hendursaga) (Ping timeout: 240 seconds) |
| 11:02:10 | → | aVikingTrex joins (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
| 11:02:57 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds) |
| 11:03:01 | → | sagax joins (~sagax_nb@213.138.71.146) |
| 11:03:56 | → | hendursaga joins (~weechat@gateway/tor-sasl/hendursaga) |
| 11:07:50 | → | tsaka_ joins (~torstein@athedsl-4519432.home.otenet.gr) |
| 11:12:39 | × | unlink_ quits (~unlink2@p200300ebcf20460001326b711b7f17ac.dip0.t-ipconnect.de) (Quit: Leaving) |
| 11:13:36 | → | ericsagn1 joins (~ericsagne@2405:6580:0:5100:d754:fcc4:a1d2:1fa1) |
| 11:18:15 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:d814:7795:cc03:c11e) |
| 11:22:51 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:d814:7795:cc03:c11e) (Ping timeout: 250 seconds) |
| 11:25:24 | × | tsaka_ quits (~torstein@athedsl-4519432.home.otenet.gr) (Quit: Konversation terminated!) |
| 11:28:53 | × | Feuermagier quits (~Feuermagi@213.178.26.41) (Ping timeout: 252 seconds) |
| 11:29:41 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 11:36:24 | × | plutoniix quits (~q@cm-119-76-33-123.revip17.asianet.co.th) (Quit: Leaving) |
| 11:38:15 | × | davl quits (~davl@207.154.228.18) (Quit: ...) |
| 11:38:16 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 11:38:38 | → | davl joins (~davl@207.154.228.18) |
| 11:38:49 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 11:44:57 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: back to writing) |
| 11:49:09 | → | _bin joins (~bin@75-54-107-59.lightspeed.hstntx.sbcglobal.net) |
| 11:49:17 | × | _bin_ quits (~bin@2600:1700:10a1:38d0:219a:3dd:429e:7909) (Ping timeout: 250 seconds) |
| 11:50:48 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds) |
| 11:51:05 | → | knupfer joins (~Thunderbi@mue-88-130-62-083.dsl.tropolys.de) |
| 11:52:02 | → | mmfood joins (~mmfood@94.234.53.15) |
| 11:52:08 | → | idhugo__ joins (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) |
| 11:54:45 | × | idhugo_ quits (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds) |
| 12:00:04 | × | pie_ quits (~pie_bnc]@unaffiliated/pie-/x-0787662) (Quit: pie_) |
| 12:02:31 | → | pie_ joins (~pie_bnc]@unaffiliated/pie-/x-0787662) |
| 12:02:46 | → | drbean_ joins (~drbean@TC210-63-209-217.static.apol.com.tw) |
| 12:04:12 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 12:05:54 | → | malumore_ joins (~malumore@151.62.126.111) |
| 12:06:11 | × | ekrion quits (~ffx1@181.58.39.182) (Remote host closed the connection) |
| 12:08:32 | × | knupfer quits (~Thunderbi@mue-88-130-62-083.dsl.tropolys.de) (Ping timeout: 240 seconds) |
| 12:08:42 | × | malumore quits (~malumore@151.62.126.111) (Ping timeout: 268 seconds) |
| 12:10:06 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
| 12:17:35 | → | bitmagie joins (~Thunderbi@200116b80690c300997cabc9cf9a1ff7.dip.versatel-1u1.de) |
| 12:18:00 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 12:19:11 | × | tmciver quits (~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 268 seconds) |
| 12:21:43 | → | enoq joins (~textual@194-208-146-143.lampert.tv) |
| 12:22:43 | → | stree joins (~stree@68.36.8.116) |
| 12:26:29 | × | johannes_ quits (~johannes@b2b-37-24-119-190.unitymedia.biz) (Quit: leaving) |
| 12:27:01 | → | ulidtko joins (~ulidtko@194.54.80.38) |
| 12:27:23 | → | rdivyanshu joins (uid322626@gateway/web/irccloud.com/x-mteqqlxhxtokcodc) |
| 12:27:37 | → | carlomagno joins (~cararell@148.87.23.13) |
| 12:28:47 | × | simplegauss quits (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Ping timeout: 260 seconds) |
| 12:29:48 | × | pbgc quits (~pbgc@a89-152-234-147.cpe.netcabo.pt) (Quit: Computer has gone to sleep.) |
| 12:30:43 | × | thonkpod quits (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (Ping timeout: 248 seconds) |
| 12:31:06 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 12:33:03 | × | aVikingTrex quits (~aVikingTr@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 250 seconds) |
| 12:38:16 | → | pbgc joins (~pbgc@a89-152-234-147.cpe.netcabo.pt) |
| 12:40:33 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) |
| 12:40:52 | <maerwald> | brave to come in here and ask OOP questions :p |
| 12:44:11 | × | ddella___ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 12:45:01 | → | simplegauss joins (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f) |
| 12:45:10 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 12:45:25 | × | domenkozar[m] quits (domenkozar@gateway/shell/matrix.org/x-rrfutzikoxlnrwmv) (Changing host) |
| 12:45:25 | → | domenkozar[m] joins (domenkozar@NixOS/user/domenkozar) |
| 12:48:08 | → | nicholasbulka joins (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c) |
| 12:48:09 | × | Pickchea quits (~private@unaffiliated/pickchea) (Ping timeout: 268 seconds) |
| 12:48:15 | → | hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) |
| 12:49:11 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 12:51:18 | → | Tario joins (~Tario@201.192.165.173) |
| 12:52:45 | → | tmciver joins (~tmciver@cpe-172-101-46-34.maine.res.rr.com) |
| 12:55:33 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 12:56:08 | → | thonkpod joins (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) |
| 12:56:56 | × | Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Remote host closed the connection) |
| 12:57:14 | → | Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
| 12:58:42 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 12:59:04 | → | knupfer joins (~Thunderbi@dynamic-046-114-150-151.46.114.pool.telefonica.de) |
| 12:59:11 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 12:59:29 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 13:01:27 | × | simplegauss quits (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f) (Ping timeout: 260 seconds) |
| 13:01:37 | × | knupfer quits (~Thunderbi@dynamic-046-114-150-151.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 13:02:23 | × | thonkpod quits (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) (Ping timeout: 260 seconds) |
| 13:06:07 | × | mmfood quits (~mmfood@94.234.53.15) (Ping timeout: 240 seconds) |
| 13:06:23 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 13:10:20 | → | mmfood joins (~mmfood@185.176.246.69) |
| 13:12:15 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 13:12:31 | → | mmfood_1 joins (~mmfood@185.176.246.118) |
| 13:15:29 | × | mmfood quits (~mmfood@185.176.246.69) (Ping timeout: 265 seconds) |
| 13:16:52 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 13:18:55 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:5cb2:e875:5c51:8e43) |
| 13:20:59 | → | simplegauss joins (~simplegau@2001:19f0:ac01:247:5400:ff:fe5c:689f) |
| 13:22:58 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
| 13:23:45 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:5cb2:e875:5c51:8e43) (Ping timeout: 250 seconds) |
| 13:27:06 | → | thonkpod joins (~thonkpod@2001:19f0:ac01:b46:5400:1ff:fec7:d73d) |
| 13:28:30 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 13:33:51 | → | gaff joins (~user@49.207.195.160) |
| 13:34:45 | → | xkapastel joins (uid17782@gateway/web/irccloud.com/x-wfrommuaxtjqnxrn) |
| 13:34:52 | mnrmnaugh | is now known as awk |
| 13:34:57 | <ulidtko> | what's the way to install a package in both .a and .so versions? |
| 13:35:08 | <ulidtko> | I keep forgetting the incantation for that |
| 13:35:23 | <ulidtko> | -static -dynamic-too flag to GHC or what? |
| 13:35:26 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 13:36:20 | <gaff> | i want to call a polymorphic function, say f :: Ord a => [a] -> [a] -> [a] with different type annotations in the same code (like let result :: [Int] = f [1..3] [5..10] in .... is there a way to do it? |
| 13:37:08 | <ulidtko> | gaff, yes, use {-# LANGUAGE ScopedTypeVariables #-} then you use type specialization in any subexpression |
| 13:37:34 | <ulidtko> | let result = f [1..3] [5..10] :: [Int] would work |
| 13:37:47 | <gaff> | ulidtko: what i mean is that i want to call f with [Int], then [Char], etc. |
| 13:37:53 | <ulidtko> | yes understood |
| 13:38:16 | → | Lycurgus joins (~niemand@98.4.118.65) |
| 13:38:54 | <gaff> | the problem i found is that once assign a type annotation, the compiler infers that type. you can change the type in the next call to f. |
| 13:39:16 | <gaff> | you can not change the type anymore |
| 13:39:28 | <ulidtko> | you can |
| 13:39:34 | <ulidtko> | let me show, just a sec |
| 13:39:39 | <gaff> | ok |
| 13:39:44 | × | hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Ping timeout: 260 seconds) |
| 13:39:57 | → | Valion joins (~Valion@api.ivido.nl) |
| 13:41:24 | <ulidtko> | gaff, https://i.imgur.com/QjBQRy1.png |
| 13:41:28 | <gaff> | ok |
| 13:43:52 | <gaff> | ok, thank you. i remember trying the same thing but for some reason the comiler growled. let me try it out again with your idea. |
| 13:44:12 | → | tanuki joins (~quassel@173.168.178.1) |
| 13:44:13 | <gaff> | ulidtko: thanks. i will get back if i see any more issues. |
| 13:44:48 | → | proofofkeags joins (~proofofke@97-118-239-55.hlrn.qwest.net) |
| 13:45:37 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 13:46:17 | → | wavemode joins (~wavemode@097-070-075-143.res.spectrum.com) |
| 13:46:20 | awk | is now known as mnrmnaugh |
| 13:46:24 | × | wavemode quits (~wavemode@097-070-075-143.res.spectrum.com) (Remote host closed the connection) |
| 13:46:39 | → | timCF joins (~i.tkachuk@254-149-20-81.sta.estpak.ee) |
| 13:47:52 | → | Sgeo joins (~Sgeo@ool-18b9875e.dyn.optonline.net) |
| 13:49:20 | × | drbean_ quits (~drbean@TC210-63-209-217.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in) |
| 13:49:26 | <pjb> | Hey I have an idea! Wouldn't it be simplier if the function f could take sequences of any type? (defun f (x y) (concatenate 'list x y)) (list (f '(1 2 3) '(4 5 6)) (f '(1.1 2.2 3.3) '(4.4 5.5 6.6))) #| --> ((1 2 3 4 5 6) (1.1 2.2 3.3 4.4 5.5 6.6)) |# /just asking |
| 13:49:48 | <timCF> | Hello! Does anybody know "eager" equivalent of `ExceptT e m a` which will not stop computation in case of Left, but will continue accumulating errors in some sort of monoid. Basically I want transformer like `Semigroup e => ValidationT e m a` |
| 13:51:04 | <ulidtko> | WriterT?.. |
| 13:51:33 | × | Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 240 seconds) |
| 13:52:24 | × | bitmagie quits (~Thunderbi@200116b80690c300997cabc9cf9a1ff7.dip.versatel-1u1.de) (Quit: bitmagie) |
| 13:53:25 | <geekosaur> | http://hackage.haskell.org/package/monad-chronicle ? |
| 13:54:36 | <maerwald> | yes, chronicle/These |
| 13:54:58 | → | zmijunkie joins (~Adium@87.122.222.91) |
| 13:55:50 | <timCF> | geekosaur: maerwald: thanks a lot guys! This kind of stuff I was not able to learn from "Learn You a Haskell" :) |
| 13:56:12 | × | zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 240 seconds) |
| 13:56:45 | <xsperry> | > let f = (<>) in (f [1, 2, 3] [4, 5, 6], f [1.1, 2.2, 3.3] [4.4, 5.5, 6.6]) -- pjb |
| 13:56:47 | <lambdabot> | ([1,2,3,4,5,6],[1.1,2.2,3.3,4.4,5.5,6.6]) |
| 13:57:14 | <gaff> | ulidtko: can you type annotate the function itself? i mean do something like this: g (f :: [Int] -> [Int]), and then within g, you have g f = q f. likewise, do g (f :: [Char] -> [Char]), g f = q f. here q passes the right type of data to f based on its type. this does not seem possible. |
| 13:57:15 | <pjb> | Ah nice. Then you don't need to specify the type. |
| 13:58:31 | <ulidtko> | gaff, you can't pattern-match on types in haskell. your [Int] -> [Int] or [Char] -> [Char] must go into f's *signature*, not implementation. |
| 13:59:04 | <gaff> | ulidtko: i see. |
| 13:59:33 | <ulidtko> | perhaps if you uncovered what you're trying to achieve, there could be a way |
| 13:59:50 | → | HannaM joins (~quassel@p54849510.dip0.t-ipconnect.de) |
| 14:00:02 | → | thblt joins (~thblt@unaffiliated/thblt) |
| 14:00:43 | <gaff> | basiccally, i am running quickcheck on a sort function, and i want to sort different types that are instances of Ord, like Char, Int, etc |
| 14:01:35 | <ulidtko> | you'd need to list out all the types you want to test on explicitly |
| 14:01:53 | <gaff> | right now i am just sort [Int]. of course i can manually go in there type a different type annotation, but that is pain. i was wondering if there was a way to do it for different types. |
| 14:03:21 | <xsperry> | pjb, it can be also used with Maybe a, where a is a semigroup |
| 14:03:29 | <xsperry> | > Just "foo" <> Just "bar" |
| 14:03:31 | <lambdabot> | Just "foobar" |
| 14:03:37 | <xsperry> | or even with functions that return Semigroup, ie: |
| 14:04:10 | <gaff> | ulidtko: when you say you can't pattern match on type signatures -- is that because types are determined at compile time? |
| 14:04:11 | <xsperry> | > sortBy (comparing length <> comparing id) (words "a aa b bb c cc z") |
| 14:04:13 | <lambdabot> | ["a","b","c","z","aa","bb","cc"] |
| 14:04:41 | → | zardoz2 joins (~bc8134e3@217.29.117.252) |
| 14:05:12 | → | jao joins (~jao@pdpc/supporter/professional/jao) |
| 14:05:36 | <thblt> | I have a (finite) bunch of objects that link to each other (let's say books and their authors). Is it reasonable/idiomatic to store the objects in some sort of indexed container (eg `Map Int Object`) and have those links represented as indexes? Eg newtype ObjectId = Int; data Book = Book { author :: Int, title :: String}? (The actual model is more complex, just wanted to know if it makes sense) |
| 14:06:01 | × | kritzefitz quits (~kritzefit@2003:5b:203b:200::10:49) (Remote host closed the connection) |
| 14:07:44 | <gaff> | ulidtko: i see (on your earlier comment that i need to list out all the types i need to test out explicitly) |
| 14:08:44 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-wmcvcprqxoaligba) |
| 14:08:47 | × | immae quits (immaematri@gateway/shell/matrix.org/x-dzpquvhgzhzvsdfa) (Quit: issued !quit command) |
| 14:09:35 | <ulidtko> | gaff, correct. for the same reason it's not easy (to my knowledge) to have a magic_generator :: Ord a => Gen a which'd spew out generators of various types with Arbitrary and Ord instances. Might be doable, but not easy. Definitely harder than listing those types you care about the most -- and trusting parametric polymorphism to not produce behaviors dependent on specific types. |
| 14:10:48 | <ulidtko> | in other words, if your sorting function under test is parametric in Ord a, than ensuring it works for Ints will ensure it works for any other type |
| 14:11:45 | → | immae joins (~immae@2a01:4f8:141:53e7::) |
| 14:12:03 | <gaff> | ulidtko: coorect, absolutely. so you are saying there is no need to test for other types, if things work well for say Int? |
| 14:12:51 | <gaff> | sort function i am testing is parametric in Ord a, by the way. |
| 14:13:01 | → | acidjnk_new2 joins (~acidjnk@p200300d0c72b9524d9e45372e00f3038.dip0.t-ipconnect.de) |
| 14:13:07 | <ulidtko> | that's a so-called "free theorem" I think. f :: Ord a => [a] -> [a] -> [a] *isn't allowed* to know what a is. |
| 14:13:20 | <gaff> | i see |
| 14:13:24 | <ulidtko> | so if it works on Int, it must work on anything else. yeah |
| 14:13:41 | <gaff> | ulidtko: great. i am relieved. |
| 14:14:20 | <ulidtko> | gaff, nice, glad to help! |
| 14:14:33 | → | hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) |
| 14:14:34 | × | acidjnk_new quits (~acidjnk@p200300d0c72b95883ddaf449c9d144e9.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 14:14:37 | × | proofofkeags quits (~proofofke@97-118-239-55.hlrn.qwest.net) (Ping timeout: 252 seconds) |
| 14:16:36 | → | waleee-cl joins (uid373333@gateway/web/irccloud.com/x-yppqkxzvcrpccgyz) |
| 14:16:58 | <gaff> | also, one clarification: when you say you can't match on types, what exactly are you implying? are you saying that something like this can not be done, for example: Case x of {A -> g (f :: [Int] -> [Int]), B -> g (f :: [Char] -> [Char]) }. this can not be done. |
| 14:17:33 | × | timCF quits (~i.tkachuk@254-149-20-81.sta.estpak.ee) (Ping timeout: 252 seconds) |
| 14:18:09 | <ulidtko> | this usage isn't pattern-matching on f |
| 14:18:46 | <gaff> | ulidtko: but the usage i describe will not compile |
| 14:18:55 | <ulidtko> | yes |
| 14:19:04 | <ulidtko> | oh wait it could |
| 14:19:12 | <ulidtko> | but it inspects x -- which must be the same type in both case arms |
| 14:19:27 | <ulidtko> | I guess what I'm saying is, not a good example |
| 14:20:31 | → | ystael joins (~ystael@209.6.50.55) |
| 14:20:31 | <gaff> | ulidtko: yeah, because it isn't the same type on both arms, it won't compile. and it doesn't. |
| 14:20:53 | × | mmfood_1 quits (~mmfood@185.176.246.118) (Quit: Leaving) |
| 14:21:16 | <gaff> | i can not imagine any other way to do it. |
| 14:21:18 | → | rj joins (~x@gateway/tor-sasl/rj) |
| 14:21:43 | <ulidtko> | you can use type-families to "conceptually" pattern-match on types. that wouldn't look like a case {} expression though |
| 14:22:06 | <gaff> | i see |
| 14:23:36 | <gaff> | so as i understood from what you said earlier, the example i have described is not exactly pattern matching on types? |
| 14:24:14 | × | Lycurgus quits (~niemand@98.4.118.65) (Quit: Exeunt) |
| 14:28:48 | <ulidtko> | that's right. it's pattern-match on variable x, of sum-type with constructors A and B |
| 14:29:14 | <ulidtko> | (not on two functions named f with different signatures) |
| 14:29:55 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 268 seconds) |
| 14:30:32 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
| 14:31:00 | <ulidtko> | (you could as well say, two different specializations of polymorphic f) |
| 14:34:45 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:8cec:67b2:253b:dec) |
| 14:34:46 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 14:35:49 | <gaff> | ulidtko: i see |
| 14:36:18 | → | pengjiz joins (~user@2601:547:902:6d00::2) |
| 14:36:54 | × | rdivyanshu quits (uid322626@gateway/web/irccloud.com/x-mteqqlxhxtokcodc) (Quit: Connection closed for inactivity) |
| 14:37:18 | <dexterfoo> | geekosaur: I tried it and it doesn't work :/ |
| 14:37:24 | <gaff> | ulidtko: and that can be done (the case business) because the types in both arms of the case do not match. |
| 14:37:55 | × | hypercube quits (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) (Quit: WeeChat 3.1) |
| 14:38:19 | <gaff> | sorry, i meant, that can not be done. |
| 14:39:09 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:8cec:67b2:253b:dec) (Ping timeout: 250 seconds) |
| 14:39:43 | → | Berndt joins (~Berndt@dynamic-095-112-089-113.95.112.pool.telefonica.de) |
| 14:39:53 | × | Berndt quits (~Berndt@dynamic-095-112-089-113.95.112.pool.telefonica.de) (Quit: WeeChat 3.1) |
| 14:40:10 | → | Berndt joins (~Berndt@dynamic-095-112-089-113.95.112.pool.telefonica.de) |
| 14:42:25 | ← | Berndt parts (~Berndt@dynamic-095-112-089-113.95.112.pool.telefonica.de) () |
| 14:42:53 | → | slack1256 joins (~slack1256@200-112-79-247.baf.movistar.cl) |
| 14:43:54 | → | hypercube joins (~hypercube@2603-6011-f901-9e5b-0000-0000-0000-08cf.res6.spectrum.com) |
| 14:44:13 | → | stree joins (~stree@68.36.8.116) |
| 14:44:18 | <ulidtko> | gaff, well... not exactly. You _can_ have different types in case arms, e.g. main = case bool_variable of {True -> print 3.14; False -> print ([1..4] :: [Int])}. You cannot have different _return types_ so to say, the expressions in case arms must unify; this won't work: print (case bool_variable of {True -> 3.14; False -> ([1..4] :: [Int])}) |
| 14:44:27 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8) |
| 14:44:41 | <slack1256> | My failing HLS terminates on emacs with the following message: "exited with status exit(check corresponding stderr buffer for details" but I don't see any emacs buffer with info. Does anyone have any idea where to find it? |
| 14:45:05 | <slack1256> | Nevermind, found it. |
| 14:50:00 | <gaff> | ulidtko: correct. what confuses me is in the example i described -- g (f :: [Int] -> [Int]), g (f :: [Char] -> [Char]), g is polymorphic, having the type signature g :: Ord a => ([a] -> [a}) -> IO (), yet the compiler complains, even though both arms of the case statement return IO (). i couldn't understand that. |
| 14:51:03 | <ulidtko> | gaff, can you post a self-contained example? i think that usage should be fine, it's likely you're missing something |
| 14:51:15 | <gaff> | ok |
| 14:52:12 | × | idhugo__ quits (~idhugo@87-49-45-4-mobile.dk.customer.tdc.net) (Ping timeout: 240 seconds) |
| 14:52:46 | <joel135> | I was looking at some purescript docs and saw "setPersonPostcode pc p = p { address { postCode = pc } }". First question: Does haskell have the same syntax feature? Second question: Now imagine that there are more clauses after address and after postCode. Can this be achieved with a haskell lens library? |
| 14:53:39 | <ulidtko> | joel135, yes and yes. see "record update syntax", lens can do it in a different way |
| 14:59:23 | <geekosaur> | dexterfoo, sorry, what is the context of this? I've lost it |
| 15:00:14 | <nicholasbulka> | how might I write a function that requires subtracting 1 on every second iteration? |
| 15:00:17 | <nicholasbulka> | for example |
| 15:00:34 | <nicholasbulka> | next y n = reverse $ transpose (chunks n $ concat $ tail y) |
| 15:01:12 | <nicholasbulka> | next (next (next (next (next (next (next y 4 ) 3 ) 3 ) 2) 2 ) 1) 1 |
| 15:02:03 | <nicholasbulka> | I'm basically flipping rotating a matrix to deconstruct it in a spiral fashion. |
| 15:02:40 | <joel135> | ulidtko: I can't find how the syntax works recursively https://paste.tomsmeding.com/UkviUQv0 |
| 15:03:19 | <joel135> | For the lens approach, could you show me / link to an example like that? |
| 15:05:35 | × | bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Read error: Connection reset by peer) |
| 15:05:56 | → | bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de) |
| 15:06:59 | × | hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:4afc:980e:3b22:8734) (Ping timeout: 260 seconds) |
| 15:08:40 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 15:09:57 | → | zmijunkie1 joins (~Adium@109.90.32.89) |
| 15:11:50 | × | zmijunkie quits (~Adium@87.122.222.91) (Ping timeout: 268 seconds) |
| 15:13:35 | × | jespada quits (~jespada@87.74.37.248) (Quit: Leaving) |
| 15:14:32 | → | ep1ctetus joins (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
| 15:15:09 | <gaff> | ulidtko: see https://pastebin.com/SXSDri7q for an example |
| 15:17:31 | × | enoq quits (~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com) |
| 15:20:47 | × | jgt quits (~jgt@78.162.43.217) (Ping timeout: 240 seconds) |
| 15:21:29 | → | idhugo__ joins (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) |
| 15:21:29 | → | jgt joins (~jgt@78.162.43.217) |
| 15:21:56 | → | aerona joins (~aerona@2600:6c54:4600:f300:79a1:e32c:5e1f:ee48) |
| 15:24:34 | <gaff> | that code i pasted doesn't compile. |
| 15:24:43 | <gaff> | i am not exactly clear why |
| 15:25:36 | <gaff> | also, i there anyother way to rewrite it? |
| 15:25:50 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 15:26:02 | <gaff> | is there any other way to rewrite it? |
| 15:26:49 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 15:28:56 | → | Deide joins (~Deide@217.155.19.23) |
| 15:30:25 | × | Sarcarean quits (4582bfd4@h69-130-191-212.bendor.broadband.dynamic.tds.net) (Quit: Connection closed) |
| 15:31:09 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:31:28 | <gaff> | ulidtko: the stuff i pasted at https://pastebin.com/SXSDri7q pretty much simulates the problem i have described earlier. |
| 15:32:46 | <joel135> | gaff: I may be wrong, but isn't this a Rank-N types issue? |
| 15:33:39 | → | zmijunkie joins (~Adium@87.122.222.91) |
| 15:33:42 | <gaff> | joel135: i am not sure what you are saying. |
| 15:34:11 | <joel135> | let me see if i can solve it with that idea, hold on |
| 15:35:16 | <gaff> | basically, once the type is set in one case branch, the compiler doesn't allow another type annotation in a different branch of the case expression, although both branches return IO (). |
| 15:35:40 | × | zmijunkie1 quits (~Adium@109.90.32.89) (Ping timeout: 252 seconds) |
| 15:36:11 | <ulidtko> | indeed Rank-N types, I can't seem to solve it... "GHC doesn't yet support impredicative polymorphism" |
| 15:36:36 | <gaff> | ulidtko: what does it mean really? |
| 15:37:19 | <ulidtko> | gaff, would should be the type for this value? [(0,f),(1,h)] |
| 15:37:35 | <ulidtko> | it's a heterogeneous list, see |
| 15:38:04 | <gaff> | f and h have same type signatures |
| 15:38:09 | → | nineonine joins (~nineonine@S0106a0ff7073d5d5.vf.shawcable.net) |
| 15:38:38 | <ulidtko> | you're right, but the compiler disagrees... hmmm |
| 15:38:57 | × | nineonine quits (~nineonine@S0106a0ff7073d5d5.vf.shawcable.net) (Remote host closed the connection) |
| 15:39:37 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789) |
| 15:39:40 | <gaff> | strange situation, really |
| 15:39:46 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789) (Remote host closed the connection) |
| 15:40:00 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:8da3:57c2:b9e6:3845) |
| 15:40:02 | <ulidtko> | am indeed puzzled |
| 15:40:36 | <joel135> | Rank-N types here means that while f and h have the same type signatures, the type variable 'a' is instantiated at the point where f and h are used as input. That is, the function which accepts f and h does not get to choose a internally. |
| 15:41:04 | <gaff> | ulidtko: here is why the compiler disagrees. the compiler infers the type from the first branch, and then it says the second branch doesn't match. |
| 15:41:14 | <joel135> | ^ |
| 15:41:30 | <ulidtko> | yea, some appropriately-placed forall's should get this working |
| 15:41:43 | <joel135> | yes i think so too |
| 15:42:35 | <gaff> | forall placed where? i am not sure ... |
| 15:44:02 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 15:44:09 | × | ericsagn1 quits (~ericsagne@2405:6580:0:5100:d754:fcc4:a1d2:1fa1) (Ping timeout: 245 seconds) |
| 15:44:12 | <gaff> | ulidtko: i think it has something to do with this stuff being within mapM_? |
| 15:44:39 | <joel135> | i am getting "GHC doesn't yet support impredicative polymorphism" too now :( |
| 15:45:06 | <ulidtko> | yes the g and h must get packed into a single homogeneous list (implying same types) |
| 15:45:35 | <gaff> | i am using ghc 8.10.4. no such error for me. |
| 15:45:41 | <joel135> | (I tried this way of analysing the problem https://paste.tomsmeding.com/HNa0DhEb) |
| 15:46:44 | × | othe1 quits (~othe@195.140.213.38) (Remote host closed the connection) |
| 15:46:46 | → | nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 15:46:51 | <joel135> | related https://stackoverflow.com/questions/56448814/why-is-impredicative-polymorphism-allowed-only-for-functions-in-haskell |
| 15:47:04 | × | acidjnk_new2 quits (~acidjnk@p200300d0c72b9524d9e45372e00f3038.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 15:48:08 | <ulidtko> | moving those to a top-level binding inputs = [(0, f), (1, h)] + NoMonomorphismRestriction moves to the next error |
| 15:48:09 | <nicholasbulka> | I can't seem to figure out how to get exhaustive patterns for this recursion definition: |
| 15:48:22 | <nicholasbulka> | spiral [] = [] |
| 15:48:22 | <nicholasbulka> | spiral (x:xs) = x ++ spiral(reverse $ Lst.transpose (chunks (length xs) $ concat xs)) |
| 15:48:30 | <nicholasbulka> | takes a [[Int]] -> [Int} |
| 15:48:32 | × | jgt quits (~jgt@78.162.43.217) (Ping timeout: 240 seconds) |
| 15:48:41 | <c_wraith> | joel135: note that the version of GHC currently in pre-release testing makes ImpredicativePolymorphism actually work better |
| 15:49:03 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:8da3:57c2:b9e6:3845) (Remote host closed the connection) |
| 15:49:11 | × | landonf quits (landonf@mac68k.info) (Excess Flood) |
| 15:49:15 | <joel135> | i see, i am only using 8.8.4 |
| 15:49:28 | <gaff> | joel135: i think what you are referrring to is another type of problem, where the forall is not placed outermost in the type signature. |
| 15:49:43 | <joel135> | isn't it the same problem? |
| 15:50:24 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:85b6:a1c5:df8:4090) |
| 15:50:46 | <nut> | Is it feasible to create wrappers of the entire Lapack, Blas, gsl etc. with inline-c ? If so, we can create a Pandas-like lib in Haskell, wouldn't it be nice? |
| 15:50:56 | → | landonf joins (landonf@mac68k.info) |
| 15:51:10 | <gaff> | no, as i understand it, f :: forall a. Ord a => [a] -> [a] is different from f :: [forall a. Ord a => a -> a] |
| 15:51:31 | <ulidtko> | it is different |
| 15:51:31 | <joel135> | yes that's true |
| 15:51:45 | <geekosaur> | nicholasbulka, what pattern does it claim isn't covered? |
| 15:51:50 | <joel135> | the stackoverflow link also says so, i see |
| 15:51:59 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 15:53:09 | <nicholasbulka> | where could I find that in ghci |
| 15:53:21 | <nicholasbulka> | I don't know is the short of it |
| 15:53:48 | <geekosaur> | if you are getting an inexhaustive patterns warning it should also say which patterns it thinks aren't included |
| 15:54:03 | <geekosaur> | oh, ghci |
| 15:54:20 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:54:20 | <geekosaur> | you need to put both definitions on the same line, separated by a semicolon |
| 15:54:34 | <geekosaur> | otherwise ghci doesn't know they go together |
| 15:54:45 | <monochrom> | In the long run you should use an editor, a filename, and :load |
| 15:54:59 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:85b6:a1c5:df8:4090) (Ping timeout: 245 seconds) |
| 15:55:12 | <nicholasbulka> | right |
| 15:55:13 | <nicholasbulka> | ok |
| 15:55:24 | <ulidtko> | or use the :{ :} multiline braces |
| 15:55:30 | <monochrom> | By the time you have 3 lines of code and after entering the 3rd line you realize you need to change the 1st line you've lost. |
| 15:55:46 | <monochrom> | This is why I refuse to bring up the :{ :} feature. |
| 15:56:00 | <monochrom> | It encourages the wrong habits. |
| 15:56:09 | <joel135> | ulidtko gaff: solved it https://paste.tomsmeding.com/qkTRpcFx |
| 15:56:10 | <ulidtko> | fair enough, it's a crappy workaround |
| 15:56:11 | <monochrom> | Entering your 100-line program at the prompt? |
| 15:56:17 | <c_wraith> | yeah, if you use semicolons you are still on the same line and can edit it. :P |
| 15:56:32 | <c_wraith> | and only 100? you're quitting so early! |
| 15:56:33 | <ulidtko> | joel135, ahhh yes. nice! |
| 15:56:48 | <joel135> | the stackoverflow link had the answer |
| 15:56:53 | <monochrom> | Do people enter shell scripts at the shell prompt just because they can? |
| 15:57:06 | <c_wraith> | sometimes, when it's appropriate |
| 15:57:11 | → | ericsagn1 joins (~ericsagne@2405:6580:0:5100:7b81:a13d:7f4a:d3e9) |
| 15:57:20 | <geekosaur> | ^ |
| 15:58:28 | <ulidtko> | joel135, so the trick is to make it clear where the dictionary packing & unpacking happens. instructive, TIL |
| 15:58:42 | → | knupfer joins (~Thunderbi@200116b82b9c4f0069e2a2a836aa8e3f.dip.versatel-1u1.de) |
| 15:58:45 | <nicholasbulka> | that worked; thank you ;) |
| 15:58:58 | <monochrom> | Well, I am using the fuzzy divide that, e.g., when I enter a for-loop and the body is one short command, e.g., "for i in * ; do rm $i.c; done", it doesn't count as a script, it's just a long command. |
| 15:59:07 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 15:59:44 | <gaff> | joel135: it works ... |
| 16:00:10 | → | ChrisMarquardt joins (~ChrisMarq@185.204.1.185) |
| 16:00:12 | <joel135> | You have to modularize your code, it's a feature! :-) |
| 16:00:21 | <gaff> | but i think there might be a cleaner way, though i am not sure |
| 16:00:26 | × | nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection) |
| 16:00:34 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:00:46 | <DigitalKiwi> | surely i'm not the only person who regularly writes 1 line bash scripts that end up being 15 after refactoring |
| 16:00:58 | → | nut joins (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 16:01:14 | <geekosaur> | no, but I also know how to use history to retrieve that line or so into a file to flesh it out |
| 16:01:23 | <gaff> | joel135: thanks much, by the way. |
| 16:01:33 | <joel135> | i learned as well :) |
| 16:01:40 | <DigitalKiwi> | yeah that's what i do |
| 16:01:49 | <gaff> | yeah |
| 16:02:15 | <ulidtko> | monochrom, you could also set EDITOR and use alt-e in fish/zsh, ^Xe in bash, and so edit the multi-line command "on the fly" without touching a file |
| 16:02:22 | <c_wraith> | I tend to write a lot of code specifically to test my answers for questions. A lot of the time I can get away with long single lines in ghci to verify the parts I want to double-check |
| 16:03:08 | <monochrom> | I do that too. |
| 16:03:16 | <ulidtko> | occasionally useful, isn't it |
| 16:03:44 | <c_wraith> | anything I want to *use* I keep in a file. But sometimes that's not what I'm doing. :) |
| 16:03:51 | → | proofofkeags joins (~proofofke@205.209.28.54) |
| 16:05:19 | <ulidtko> | joel135, getting back to your record syntax inquiry. u{b=Baz{c=44}} -- this works, you've missed an '=' |
| 16:05:36 | <joel135> | oh i'll try that, thanks |
| 16:06:34 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 16:06:44 | <ulidtko> | there's lens-tutorial package with plenty examples, also many recorded talks, I don't know any better materials for lens. Too dumb yet for that profunctor stuff :( |
| 16:07:09 | <joel135> | `w = u {b = {c = 44}}' has a parse error |
| 16:07:21 | <joel135> | oh i got it |
| 16:08:47 | <joel135> | now i get this https://paste.tomsmeding.com/rXWA9fs4 |
| 16:09:02 | <joel135> | maybe haskell doesn't support it after all? |
| 16:09:28 | <nicholasbulka> | I'm closer now, with the following function: |
| 16:09:37 | <geekosaur> | it doesn't support the shorthand there |
| 16:09:56 | <nicholasbulka> | spiral [] = [] ; spiral (x:xs) = x ++ spiral(reverse $ transpose (chunks (length (xs !! 0) ) $ concat xs)) |
| 16:10:06 | <nicholasbulka> | but now I am getting this error |
| 16:10:08 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 16:10:21 | <nicholasbulka> | spiral [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] |
| 16:10:21 | <nicholasbulka> | [1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10*** Exception: Prelude.!!: index too large |
| 16:10:50 | <joel135> | i think i'll look into lens-tutorial |
| 16:11:02 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds) |
| 16:11:02 | <ulidtko> | joel135, I'll refer to SO, the accepted answer covers pretty well https://stackoverflow.com/questions/7365425/is-there-a-haskell-idiom-for-updating-a-nested-data-structure |
| 16:11:09 | → | zaquest joins (~notzaques@5.128.210.178) |
| 16:11:23 | <nicholasbulka> | it is seemingly doing the right thing but fails when indexing that xs !! 0 I believe ... I can't seem to get the pattern matching right for the degenerate case |
| 16:11:24 | <ulidtko> | though I'm worried if GADTs play well with lens |
| 16:11:51 | <c_wraith> | in general they don't |
| 16:12:10 | <c_wraith> | in the same way record accessors don't play well with GADTs |
| 16:13:13 | <nicholasbulka> | trying to add ; spiral (x:[]) = [] gives me a pattern redundancy error |
| 16:13:41 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.1) |
| 16:13:50 | <geekosaur> | move that before the spiral x:xs case |
| 16:14:01 | <joel135> | i see |
| 16:14:01 | <nicholasbulka> | ah yes |
| 16:14:11 | <nicholasbulka> | perfect! thanks a lot |
| 16:17:04 | × | gaff quits (~user@49.207.195.160) (Ping timeout: 245 seconds) |
| 16:19:06 | → | dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com) |
| 16:19:06 | × | dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host) |
| 16:19:06 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 16:19:15 | → | jgt joins (~jgt@78.162.43.217) |
| 16:21:03 | → | paravida joins (~mychateau@71.215.110.96) |
| 16:21:58 | → | hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:b8c4:49ae:2ce4:1808) |
| 16:22:00 | × | MidAutumnHotaru quits (~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾) |
| 16:22:34 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:22:40 | → | MidAutumnHotaru joins (~MidAutumn@unaffiliated/midautumnhotaru) |
| 16:25:11 | × | jgt quits (~jgt@78.162.43.217) (Ping timeout: 240 seconds) |
| 16:25:41 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789) |
| 16:28:48 | × | andreas303 quits (~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection) |
| 16:29:28 | → | andreas303 joins (~andreas@gateway/tor-sasl/andreas303) |
| 16:32:15 | × | nineonine quits (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789) (Ping timeout: 250 seconds) |
| 16:33:08 | → | Guest_22 joins (4bb93e3c@cpe-75-185-62-60.columbus.res.rr.com) |
| 16:33:24 | → | gitgood joins (~gitgood@80-44-9-246.dynamic.dsl.as9105.com) |
| 16:34:34 | → | Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net) |
| 16:38:25 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:40:28 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-yrhcwqdqfhhzcxcx) |
| 16:45:01 | → | nineonine joins (~nineonine@2604:3d08:7785:9600:18c3:826f:bcf6:7789) |
| 16:47:46 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:47:55 | → | letmein joins (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1) |
| 16:48:12 | × | guest7682358928 quits (c9dbea7b@gateway/web/cgi-irc/kiwiirc.com/ip.201.219.234.123) (Quit: Ping timeout (120 seconds)) |
| 16:48:43 | <jonathanx> | is it possible to use mixins in stack? I want to use Relude, and would prefer not to switch to cabal |
| 16:49:23 | <carbolymer> | What's mixin? |
| 16:50:06 | <yushyin> | jonathanx: mixins are the reason I switched back to cabal |
| 16:51:04 | <yushyin> | carbolymer: https://cabal.readthedocs.io/en/3.4/cabal-package.html?#pkg-field-mixins |
| 16:51:34 | <monochrom> | aka backpack |
| 16:52:27 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 260 seconds) |
| 16:54:31 | <monochrom> | I learned backpack from the backpack thesis: https://github.com/ezyang/thesis/releases |
| 16:54:49 | <monochrom> | Wait I helped him fix typoes?! |
| 16:55:15 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 16:55:29 | → | jgt joins (~jgt@78.162.43.217) |
| 16:57:46 | <lechner> | Hi, I realize Purescript isn't Haskell but I use both and have a question about Applicative fuctors. Why please can the code in the link not be written as port <- parseInt $ fromMaybe "8080" $ lookupEnv "PORT" ? Is it only because I am already in the Effect monad? Sorry about the newbie question, and thanks! |
| 16:57:48 | <lechner> | https://github.com/purescript-express/purescript-express/blob/master/examples/src/ToDoServer.purs#L179 |
| 16:57:57 | <lechner> | functors |
| 16:58:57 | <Uniaika> | lechner: yes, <$> is fmap |
| 16:59:16 | <Uniaika> | and the value you want to operate on (with fromMaybe, parseInt), is wrapped in a functor |
| 16:59:29 | <monochrom> | <<< is function composition, "." |
| 16:59:35 | <Uniaika> | and do you apply functions to values that are in Functors… ? with fmap :) |
| 17:00:22 | × | bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Ping timeout: 252 seconds) |
| 17:00:22 | × | jgt quits (~jgt@78.162.43.217) (Ping timeout: 268 seconds) |
| 17:00:45 | <monochrom> | Generally you have to respect types as a minimum requirement. |
| 17:01:30 | <monochrom> | If you have f::X->Y and m :: Effect X, then "f m" makes no sense, no matter how intuitive it is to you. |
| 17:01:35 | <int-e> | . o O ( "That is *Sir* Type to you, scumbag!" ) |
| 17:01:43 | × | finn_elija quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Remote host closed the connection) |
| 17:02:04 | → | finn_elija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 17:02:25 | × | Guest_22 quits (4bb93e3c@cpe-75-185-62-60.columbus.res.rr.com) (Quit: Connection closed) |
| 17:02:27 | <monochrom> | "fmap f m" is legal. Still, I would encourage you to ask yourself do you really know that it does what you want. |
| 17:03:35 | → | bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de) |
| 17:03:57 | <monochrom> | In this particular example, I can be talked into not using fmap aka <$>. |
| 17:04:13 | <monochrom> | portString <- lookupEnv "PORT" |
| 17:04:37 | <monochrom> | let port = parseInt (fromMaybe "8080" portString) |
| 17:04:44 | <monochrom> | I can be talked into that. |
| 17:05:02 | <monochrom> | But I will not be talked into $ $ $ $ $ |
| 17:05:27 | → | stree joins (~stree@68.36.8.116) |
| 17:05:30 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: Lost terminal) |
| 17:05:43 | <lechner> | <- lifts the Effect, so we can use the more basic operators, right? |
| 17:06:00 | → | jgt joins (~jgt@78.162.43.217) |
| 17:06:07 | <monochrom> | I don't know what "lift" means for this. Especially for this. |
| 17:06:12 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:d8d7:245f:2a72:5f1b) |
| 17:06:23 | × | kuribas quits (~user@ptr-25vy0i7u5k5fyxhyy6l.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 17:06:45 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 17:06:47 | <monochrom> | But I understand: lookupEnv "PORT" >>= \portString -> ... |
| 17:07:00 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 17:07:22 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Quit: WeeChat 3.0.1) |
| 17:08:17 | <monochrom> | Even for "fmap f m", I wouldn't say "lift". |
| 17:08:51 | <monochrom> | I know lots of people say "lift". I think it's because they're too lazy to really ask themselve what it would mean. |
| 17:09:16 | <lechner> | what does it mean, please? |
| 17:09:49 | <monochrom> | Why is "Effect X" higher than "X", such that fmap is "lifting" from X to "Effect X"? Why isn't it demoting? |
| 17:09:58 | <monochrom> | or lateral side-moving? |
| 17:10:49 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:d8d7:245f:2a72:5f1b) (Ping timeout: 245 seconds) |
| 17:10:51 | <monochrom> | "fmap f m" has the same effectful behaviour as "m", but the answer it gives is transformed by f. |
| 17:10:51 | <lechner> | fwiw, i actually mant "lift off" in the sense that it leaves X |
| 17:11:19 | <lechner> | is there a way I could use an integer port as default (which would require parseString to pass through a Maybe)? |
| 17:15:16 | <monochrom> | Yes but it requires knowing that Maybe is a Functor instance too, that it also has its fmap. |
| 17:15:39 | <monochrom> | So now you have two fmap's, one for Effect, the other for Maybe. I don't know whether it's cute or annoying to you. |
| 17:15:45 | → | vaibhavsagar joins (vaibhavsag@gateway/shell/matrix.org/x-nutshnhfgisxgkne) |
| 17:15:46 | <monochrom> | But it can go like this: |
| 17:17:35 | × | idhugo__ quits (~idhugo@80-62-116-231-mobile.dk.customer.tdc.net) (Ping timeout: 252 seconds) |
| 17:19:15 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 17:19:24 | <lechner> | i still like your first alternative the best. with <<< being function composition, could it also have been written as let port = (parseInt . fromMaybe) "8080" portString ? |
| 17:19:34 | <monochrom> | fmap (fromMaybe 8080 . fmap parseInt) lookupEnv "PORT" |
| 17:19:39 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 17:19:56 | <monochrom> | err |
| 17:20:00 | <monochrom> | fmap (fromMaybe 8080 . fmap parseInt) (lookupEnv "PORT") |
| 17:20:34 | <lechner> | that's getting a bit too complicated for me |
| 17:21:03 | → | obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl) |
| 17:21:11 | → | nickmt joins (5b0624c1@p5b0624c1.dip0.t-ipconnect.de) |
| 17:21:23 | → | ubert joins (~Thunderbi@91.141.3.200.wireless.dyn.drei.com) |
| 17:22:41 | <lechner> | i think i meant to write that instead just now let port = (parseInt . fromMaybe "8080") portString ? |
| 17:23:25 | <monochrom> | What does algebra say which one it is? |
| 17:23:41 | <monochrom> | Not intuition. Algebra. |
| 17:23:45 | → | ADG1089 joins (~aditya@171.76.29.233) |
| 17:23:55 | × | ADG1089 quits (~aditya@171.76.29.233) (Client Quit) |
| 17:24:01 | <nickmt> | If f and g are functors I find it natural to think that `fmap (fmap id) x == id` for some `x :: g (f a)`. I'd like to prove but it seems so obvious that i don't know how start. Any hints? |
| 17:24:19 | <monochrom> | fmap id = id. |
| 17:25:07 | × | bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Ping timeout: 260 seconds) |
| 17:27:02 | × | ubert quits (~Thunderbi@91.141.3.200.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 17:28:16 | <nickmt> | if `x` is a concrete value, it's easy, e.g. `fmap (fmap id) [Just 3]` then I have `[fmap id (Just 3)]` and then [Just (id 3)] and finally [Just 3]. But I don't know how to do it if I don't know anything about the inner structure of `x` . |
| 17:29:20 | <monochrom> | fmap id = id. |
| 17:30:35 | <nut> | my cabal project depends on a c header file inside the cabal folder. How can I add it in the cabal file? |
| 17:31:04 | <monochrom> | Some field along the line of "c-sources"? |
| 17:31:15 | <monochrom> | Do you know the URL to the cabal user's guide? |
| 17:31:16 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 17:31:19 | <nut> | c-sources: can't add header file |
| 17:31:51 | <monochrom> | What is "the cabal folder"? |
| 17:32:18 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 17:32:19 | <nut> | It's the cabal project folder |
| 17:32:30 | <nickmt> | @monochrom I see. Because f is a functor and the first law holds I can reduce `fmap (fmap id)` to `fmap id` and then do the same thing again because g is also a functor so `fmap id = id` . Is that it? |
| 17:32:30 | <lambdabot> | Unknown command, try @list |
| 17:32:35 | <monochrom> | The source code of Cabal itself? |
| 17:32:48 | <monochrom> | Yes nickmt |
| 17:33:01 | <nut> | I am using the inline-c package for my project and i put all c code inside a c header file |
| 17:33:02 | <nickmt> | thank you |
| 17:33:21 | <lechner> | monochrom: thanks here also! |
| 17:33:33 | <sclv> | nut: take a look at the bytestring cabal file for a good example of how to do this stuff |
| 17:33:33 | <sclv> | https://hackage.haskell.org/package/bytestring-0.11.1.0/bytestring.cabal |
| 17:34:03 | <sclv> | note include-dirs, includes, and install-includes |
| 17:34:23 | <nut> | sclv: great! |
| 17:34:28 | <nut> | found it |
| 17:34:38 | <monochrom> | So no one wants to see the user's guidee. |
| 17:34:42 | × | nicholasbulka quits (~nicholasb@2601:900:4301:da0:58e6:3a0a:96a:ca2c) (Remote host closed the connection) |
| 17:35:35 | <sclv> | that would be another way to find this info yes: https://cabal.readthedocs.io/en/3.4/search.html?q=header&check_keywords=yes&area=default# |
| 17:35:49 | <sclv> | i find working by example and then checking docs to ensure i understand things to be more comfortable personally |
| 17:36:06 | <enikar> | monochrom: Indeed. The cabal users guide is the place to look for this question ;) |
| 17:36:11 | × | coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 260 seconds) |
| 17:37:42 | <monochrom> | Most people stop after "by example" before "checking docs". |
| 17:37:50 | <monochrom> | John Searle would be proud. |
| 17:39:28 | <slack1256> | On `wreq` is there any option so that "301 moved permanently" are followed automatically? I am using `head_`. |
| 17:39:49 | <enikar> | monochrom: bad. |
| 17:40:14 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 17:41:26 | <maerwald> | who is responsible for haskell.org? |
| 17:42:12 | <nut> | monochrom: I did checked the doc. I'm a bit confused why cabal don't recompile after I made changes to the header files |
| 17:42:42 | <nut> | That isn't explained in the Cabal docs I think |
| 17:43:08 | <sclv> | maerwald: responsible for what aspect of it? |
| 17:43:24 | <maerwald> | website |
| 17:44:14 | <sclv> | oh right you're still following up on that. sigh. its the committee, which is chaired by tikhon at the moment. |
| 17:44:32 | <sclv> | let me try to work a side channel for you |
| 17:45:33 | → | solidus-river joins (~mike@174.127.249.180) |
| 17:45:48 | → | kalia joins (4c72abd3@c-76-114-171-211.hsd1.md.comcast.net) |
| 17:46:39 | → | pgib joins (textual@lmms/pgib) |
| 17:50:22 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 17:50:27 | → | juuandyy joins (~juuandyy@90.106.228.121) |
| 17:51:42 | × | kalia quits (4c72abd3@c-76-114-171-211.hsd1.md.comcast.net) (Quit: Connection closed) |
| 17:52:30 | <maerwald> | Yes, I sent the committee an email |
| 17:53:42 | × | nickmt quits (5b0624c1@p5b0624c1.dip0.t-ipconnect.de) (Quit: Connection closed) |
| 17:55:28 | → | bor0 joins (~boro@unaffiliated/boro/x-000000001) |
| 17:55:58 | × | conal quits (~conal@192.145.118.178) (Quit: Computer has gone to sleep.) |
| 17:56:15 | → | chimera joins (~chimera@168-182-134-95.pool.ukrtel.net) |
| 17:58:30 | → | M0b10s joins (94478efe@gateway/web/cgi-irc/kiwiirc.com/ip.148.71.142.254) |
| 18:00:53 | <maerwald> | at worst, we'll make another haskell.org fork *chuckle* |
| 18:01:14 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 18:01:49 | <carbolymer> | YES, HAVE MY FORK -----E |
| 18:01:58 | → | danso joins (~dan@modemcable156.91-20-96.mc.videotron.ca) |
| 18:03:15 | <monochrom> | Responsible parents wait after fork. |
| 18:03:32 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 18:03:44 | × | Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Quit: WeeChat 3.0.1) |
| 18:04:14 | <catern> | apropos of nothing, if anyone has any contributions to my cursed PL iceberg let me know http://catern.com/iceberg.html |
| 18:04:43 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 252 seconds) |
| 18:05:16 | <ski> | joel135 : "Does haskell have the same syntax feature?" -- no |
| 18:06:03 | <joel135> | ok |
| 18:09:25 | × | Valion quits (~Valion@api.ivido.nl) (Quit: leaving) |
| 18:09:39 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:13:42 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 18:13:42 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection) |
| 18:14:05 | → | Pickchea joins (~private@unaffiliated/pickchea) |
| 18:19:14 | × | thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202) |
| 18:19:43 | <ggVGc> | I really love <<loop>> |
| 18:19:45 | <ggVGc> | great |
| 18:19:51 | <ggVGc> | it's like practical joke |
| 18:20:08 | → | flx joins (flux@coffee.modeemi.fi) |
| 18:20:22 | → | koankeeper_ joins (sid216950@gateway/web/irccloud.com/x-nzolrgtzcrofgnoi) |
| 18:21:11 | → | skewerr joins (~spoonm@tokyo.spoonm.org) |
| 18:21:46 | × | M0b10s quits (94478efe@gateway/web/cgi-irc/kiwiirc.com/ip.148.71.142.254) (Ping timeout: 240 seconds) |
| 18:21:48 | → | towel_ joins (~towel@unaffiliated/towel) |
| 18:22:01 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:94f:fe7:3fff:f880) |
| 18:23:32 | × | DavidEichmann quits (~david@147.136.46.217.dyn.plus.net) (Remote host closed the connection) |
| 18:23:33 | → | LambdaDuck joins (~anka@ksit.fixme.fi) |
| 18:24:04 | → | sdressel_ joins (~sdressel@pwning.de) |
| 18:24:38 | → | jameekim2 joins (~jameekim@mx.nodaplife.me) |
| 18:26:39 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:94f:fe7:3fff:f880) (Ping timeout: 250 seconds) |
| 18:26:44 | → | blackdog_ joins (~blackdog@198.211.112.85) |
| 18:26:58 | → | sarahzrf_ joins (~sarahzrf_@sarahzrf.com) |
| 18:27:06 | → | rawles_ joins (~r@unaffiliated/rawles) |
| 18:27:18 | → | nemesit|znc_ joins (~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1) |
| 18:27:51 | → | frozenErebus joins (~frozenEre@37.231.244.249) |
| 18:28:10 | × | jonathanx quits (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds) |
| 18:28:25 | × | nemesit|znc quits (~nemesit@2a01:488:66:1000:2ea3:4eeb:0:1) (Ping timeout: 276 seconds) |
| 18:28:25 | × | maralorn quits (maralornma@gateway/shell/matrix.org/x-taapglyfnhcaxlmi) (Ping timeout: 276 seconds) |
| 18:28:26 | × | Hanma[m] quits (hanmamatri@gateway/shell/matrix.org/x-bxrewprkpipuxfei) (Ping timeout: 276 seconds) |
| 18:28:27 | × | Poyo[m] quits (stikynotha@gateway/shell/matrix.org/x-haknbvkyasqevnme) (Ping timeout: 276 seconds) |
| 18:28:27 | × | jchia[m] quits (jchiamatri@gateway/shell/matrix.org/x-fgjdezivvdirebvi) (Ping timeout: 276 seconds) |
| 18:28:27 | × | unclechu quits (unclechuma@gateway/shell/matrix.org/x-jmbbnkztqlxjmyvi) (Ping timeout: 276 seconds) |
| 18:28:28 | × | my_name_is_not_j quits (mynameisno@gateway/shell/matrix.org/x-quxbbosdnjtwvvrg) (Ping timeout: 276 seconds) |
| 18:28:28 | × | johnnyv[m] quits (badwolf256@gateway/shell/matrix.org/x-bcoxopkiysbcffjg) (Ping timeout: 276 seconds) |
| 18:28:28 | × | joe[m] quits (joemonoida@gateway/shell/matrix.org/x-jfvswnrdjcctvmmo) (Ping timeout: 276 seconds) |
| 18:28:28 | × | pnotequalnp[m] quits (pnotequaln@gateway/shell/matrix.org/x-xqilkgqxymngrblq) (Ping timeout: 276 seconds) |
| 18:28:28 | × | srid quits (sridmatrix@gateway/shell/matrix.org/x-lhoqaotzxhrdesxm) (Ping timeout: 276 seconds) |
| 18:28:28 | × | Noughtmare[m] quits (naughtmare@gateway/shell/matrix.org/x-dvljatkbrkzyoabl) (Ping timeout: 276 seconds) |
| 18:28:28 | × | arcontethegreat[ quits (arcontethe@gateway/shell/matrix.org/x-utbxuwqpnhgrncfm) (Ping timeout: 276 seconds) |
| 18:28:29 | × | loyon quits (loyonmatri@gateway/shell/matrix.org/x-dbuybsdaqolfjfvf) (Ping timeout: 276 seconds) |
| 18:28:29 | × | mrus[m] quits (mrusmatrix@gateway/shell/matrix.org/x-bnwtzopjealuvtun) (Ping timeout: 276 seconds) |
| 18:28:29 | × | domenkozar[m] quits (domenkozar@NixOS/user/domenkozar) (Ping timeout: 276 seconds) |
| 18:28:29 | × | tabaqui quits (~tabaqui@2604:a880:800:c1::21b:3001) (Ping timeout: 276 seconds) |
| 18:28:29 | × | mflux quits (flux@coffee.modeemi.fi) (Ping timeout: 276 seconds) |
| 18:28:29 | × | koankeeper quits (sid216950@gateway/web/irccloud.com/x-lympprcqrveoixtt) (Ping timeout: 276 seconds) |
| 18:28:30 | × | Guillaum quits (guiboumatr@gateway/shell/matrix.org/x-kecnvcmuhfwgrytn) (Ping timeout: 276 seconds) |
| 18:28:30 | × | dominicusin[m] quits (dominicusi@gateway/shell/matrix.org/x-aykukrinfrererxn) (Ping timeout: 276 seconds) |
| 18:28:31 | × | spoonm quits (~spoonm@tokyo.spoonm.org) (Ping timeout: 276 seconds) |
| 18:28:31 | × | towel quits (~towel@unaffiliated/towel) (Ping timeout: 276 seconds) |
| 18:28:32 | × | rawles quits (~r@unaffiliated/rawles) (Ping timeout: 276 seconds) |
| 18:28:32 | × | sarahzrf quits (~sarahzrf_@2604:a880:400:d0::b4a:4001) (Ping timeout: 276 seconds) |
| 18:28:32 | × | lemald quits (~eddie@capybara.lemald.org) (Ping timeout: 276 seconds) |
| 18:28:32 | × | blackdog quits (~blackdog@198.211.112.85) (Ping timeout: 276 seconds) |
| 18:28:32 | × | LambdaDu1k quits (~anka@ksit.fixme.fi) (Ping timeout: 276 seconds) |
| 18:28:33 | × | jameekim1 quits (~jameekim@mx.nodaplife.me) (Ping timeout: 276 seconds) |
| 18:28:33 | × | sdressel quits (~sdressel@pwning.de) (Ping timeout: 276 seconds) |
| 18:28:33 | blackdog_ | is now known as blackdog |
| 18:28:33 | koankeeper_ | is now known as koankeeper |
| 18:28:33 | flx | is now known as mflux |
| 18:29:29 | → | tabaqui joins (~tabaqui@2604:a880:800:c1::21b:3001) |
| 18:29:38 | → | lemald joins (~eddie@capybara.lemald.org) |
| 18:30:06 | → | Hanma[m] joins (hanmamatri@gateway/shell/matrix.org/x-wxxbvetrqrsqljor) |
| 18:30:19 | → | jonathanx joins (~jonathan@h-176-109.A357.priv.bahnhof.se) |
| 18:30:48 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:31:02 | → | maralorn joins (maralornma@gateway/shell/matrix.org/x-ivwnbdnfszfjiwdc) |
| 18:31:10 | <int-e> | > fix error -- just a joke |
| 18:31:12 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
| 18:31:12 | <lambdabot> | "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex... |
| 18:31:41 | × | notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 240 seconds) |
| 18:31:55 | → | my_name_is_not_j joins (mynameisno@gateway/shell/matrix.org/x-fwedgmzpwbugciod) |
| 18:31:57 | → | joe[m] joins (joemonoida@gateway/shell/matrix.org/x-txxheijowbbsqnjc) |
| 18:31:58 | → | loyon joins (loyonmatri@gateway/shell/matrix.org/x-icwodrnwhydizuwp) |
| 18:32:02 | → | unclechu joins (unclechuma@gateway/shell/matrix.org/x-lbufgcxgrsflmxsh) |
| 18:32:02 | → | Poyo[m] joins (stikynotha@gateway/shell/matrix.org/x-piujbocybdsttosy) |
| 18:32:03 | → | jchia[m] joins (jchiamatri@gateway/shell/matrix.org/x-gvltsihrvsoaugcv) |
| 18:32:04 | → | Noughtmare[m] joins (naughtmare@gateway/shell/matrix.org/x-ibycjhwgzkgwsirp) |
| 18:32:04 | → | pnotequalnp[m] joins (pnotequaln@gateway/shell/matrix.org/x-dnjftlngoflvunfh) |
| 18:32:05 | → | johnnyv[m] joins (badwolf256@gateway/shell/matrix.org/x-iuvqvpqyjtjrwaqm) |
| 18:32:07 | → | srid joins (sridmatrix@gateway/shell/matrix.org/x-aznuekqvxhshtmnc) |
| 18:32:10 | → | mrus[m] joins (mrusmatrix@gateway/shell/matrix.org/x-wnductunmdfidxwz) |
| 18:32:34 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) |
| 18:32:36 | → | domenkozar[m] joins (domenkozar@NixOS/user/domenkozar) |
| 18:33:15 | → | arcontethegreat[ joins (arcontethe@gateway/shell/matrix.org/x-fjqjpveupdddtlmd) |
| 18:33:37 | → | Guillaum joins (guiboumatr@gateway/shell/matrix.org/x-mcmztbazvtqulzjx) |
| 18:35:04 | → | nicholasbulka joins (~nicholasb@2601:900:4301:da0:b0db:882b:fd7b:c02e) |
| 18:35:27 | → | dominicusin[m] joins (dominicusi@gateway/shell/matrix.org/x-efcppjwqmhnnaznp) |
| 18:37:27 | × | hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:b8c4:49ae:2ce4:1808) (Ping timeout: 260 seconds) |
| 18:38:15 | → | coot joins (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) |
| 18:38:34 | <joel135> | :t error |
| 18:38:36 | <lambdabot> | [Char] -> a |
| 18:38:45 | <solidus-river> | i'm doing an hsetbuffering noBuffering in all my forked threads but still getting interleaved io on the console |
| 18:39:03 | <solidus-river> | do i need to synchronize with an mvar? |
| 18:40:02 | <joel135> | Doesn't buffering increase interleaving? |
| 18:40:18 | <monochrom> | My thought too. |
| 18:40:51 | <joel135> | Actually I meant the opposite. |
| 18:40:51 | <monochrom> | Err did you word it right? |
| 18:40:56 | <monochrom> | Yeah, that. |
| 18:42:21 | <geekosaur> | console has exactly one output position, I'd recommend using a separate thread for output fed by a Chan |
| 18:42:39 | <geekosaur> | LineBuffering might help with interleaving to some extend |
| 18:42:42 | <geekosaur> | *extent |
| 18:42:59 | <solidus-river> | kk, i'll experiment, i misunderstood what noBuffering solved |
| 18:43:07 | <solidus-river> | :X |
| 18:43:48 | <solidus-river> | thanks as always :) |
| 18:43:50 | → | jespada joins (~jespada@87.74.37.248) |
| 18:43:51 | <monochrom> | Also I thought hSetBuffering was a per-Handle setting, not a per-thread setting. |
| 18:44:27 | <solidus-river> | i'm definitely redundantly setting it then |
| 18:44:53 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
| 18:44:54 | <solidus-river> | i think what i wanted out of it was just a call to flush at the end of the program |
| 18:45:21 | <geekosaur> | so just hFlush at the end of the program. but it'll also flush when the output buffer is full |
| 18:45:27 | → | M0b10s joins (94478efe@gateway/web/cgi-irc/kiwiirc.com/ip.148.71.142.254) |
| 18:45:29 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 18:45:40 | <geekosaur> | note that multiple threads outputting to the same Handle will stilll interleave within the buffer |
| 18:45:55 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 18:46:25 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 18:46:28 | <int-e> | String-based I/O is inherently character oriented, since putStr ('a':'b':undefined) is supposed to output a and b before triggering the bottom. |
| 18:46:44 | <int-e> | buffering doesn't really change that |
| 18:46:56 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) |
| 18:47:38 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 18:47:48 | <solidus-river> | i should be sending these all to the same place and printing there, i was doing that but i'm trying to hack in some debug prints to figure out whats going wrong over the wire |
| 18:48:15 | <solidus-river> | maybe trace is a better tool but it seems like it would run into the same buffering issue unless its using some non putStrLn for its messaging under the hood |
| 18:48:31 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.1) |
| 18:49:08 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 18:49:09 | → | faustind joins (~faustin@240b:12:43e1:7b00:e63d:e924:3cc7:4546) |
| 18:49:30 | → | Copperis joins (~Tadas@unaffiliated/varis) |
| 18:49:56 | → | Guest6509 joins (~laudiacay@45.162.228.190) |
| 18:50:00 | → | hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:d72c:c07:3040:2376) |
| 18:50:07 | <int-e> | oh, traceIO does something better, actually |
| 18:50:39 | → | timCF joins (~i.tkachuk@m91-129-104-226.cust.tele2.ee) |
| 18:51:02 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 18:51:06 | × | Copperis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 18:52:11 | <int-e> | Well, better in terms of interleaving or not. It looks far worse in terms of dealing with encodings. |
| 18:52:30 | → | Copperis joins (~Tadas@unaffiliated/varis) |
| 18:52:43 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds) |
| 18:52:57 | → | Mrbuck joins (~Mrbuck@gateway/tor-sasl/mrbuck) |
| 18:53:07 | × | M0b10s quits (94478efe@gateway/web/cgi-irc/kiwiirc.com/ip.148.71.142.254) (Ping timeout: 252 seconds) |
| 18:53:13 | × | Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 268 seconds) |
| 18:53:18 | <int-e> | (it packs the message into a C string, and passes that to the RTS's debugBelch() function which presumably writes it to stderr in one chunk) |
| 18:54:30 | <solidus-river> | nice! switching :) I think i need to finally read that book that you guys recommended a month in a half ago too, gonna crack that open |
| 18:55:58 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 276 seconds) |
| 18:56:21 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 18:56:42 | → | sm joins (~user@li229-222.members.linode.com) |
| 18:57:23 | → | DavidEichmann joins (~david@147.136.46.217.dyn.plus.net) |
| 18:58:23 | <DigitalKiwi> | what book was recommended? |
| 19:00:53 | × | Copperis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 19:02:00 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 19:02:49 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Quit: WeeChat 3.1) |
| 19:03:03 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 19:04:03 | → | notzmv joins (~zmv@unaffiliated/zmv) |
| 19:07:15 | <slack1256> | On the ConstrainsKinds extension, is there a type level function that lets me take the product of two constrains? ie : Read a x Text a = (Read a, Text a) ? |
| 19:09:07 | × | fendor quits (~fendor@178.115.131.177.wireless.dyn.drei.com) (Remote host closed the connection) |
| 19:10:05 | <faustind> | Hello @all. I am looking for examples of the use of GHC rewrite rules. Could you point me to some. |
| 19:10:58 | → | fendor joins (~fendor@178.115.131.177.wireless.dyn.drei.com) |
| 19:11:16 | <slack1256> | Read on Data.List and the `vector` library. |
| 19:11:55 | <monochrom> | I wonder if it's as simple as "type X c1 c2 a = (c1 a, c2 a)" |
| 19:11:57 | Guest70260 | is now known as sm[m] |
| 19:12:24 | <monochrom> | But if you want to use it as "X Read Text" without "a", I don't know. |
| 19:13:12 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
| 19:14:26 | <DigitalKiwi> | .glirclogs/#haskell/2021-03-15.log:[22:47:52] <koz_> solidus-river: https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/pt02.html |
| 19:14:38 | → | Qwerky joins (~qwerky@37.173.171.170) |
| 19:14:50 | <DigitalKiwi> | found the answer to my question ^ |
| 19:15:05 | <koz_> | DigitalKiwi: Happy to be of service rofl? |
| 19:16:32 | × | Mrbuck quits (~Mrbuck@gateway/tor-sasl/mrbuck) (Remote host closed the connection) |
| 19:16:33 | <monochrom> | haha |
| 19:18:12 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Remote host closed the connection) |
| 19:19:40 | → | dmytrish joins (~mitra@2a02:8084:a82:d900:6010:2869:d10:372c) |
| 19:20:20 | <slack1256> | monochrom: Yeah, I thought there was a standard type family already defined |
| 19:20:35 | → | epicte7us joins (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
| 19:23:44 | × | ep1ctetus quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 245 seconds) |
| 19:24:20 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 19:25:37 | × | dmytrish quits (~mitra@2a02:8084:a82:d900:6010:2869:d10:372c) (Quit: Konversation terminated!) |
| 19:25:50 | <mniip> | monochrom, class (c1 a, c2 a) => X c1 c2 a; instance (c1 a, c2 a) => X c1 c2 a |
| 19:25:54 | × | vchlup quits (~vchlup@nat.brnet.cz) (Ping timeout: 268 seconds) |
| 19:27:06 | → | stree joins (~stree@68.36.8.116) |
| 19:27:16 | → | dmytrish joins (~mitra@2a02:8084:a82:d900:6df4:a206:6bd4:dc59) |
| 19:29:08 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) |
| 19:30:26 | × | DTZUZU quits (~DTZUZO@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
| 19:31:56 | → | ntqz joins (ntqz@gateway/vpn/protonvpn/ntqz) |
| 19:32:02 | × | frozenErebus quits (~frozenEre@37.231.244.249) (Ping timeout: 246 seconds) |
| 19:32:16 | × | juuandyy quits (~juuandyy@90.106.228.121) (Quit: Konversation terminated!) |
| 19:33:35 | → | bennofs_ joins (~quassel@x4dbffbc2.dyn.telefonica.de) |
| 19:35:01 | <shapr> | does tommy thorn show up here? |
| 19:35:13 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 19:35:39 | → | minoru_shiraeesh joins (~shiraeesh@109.166.56.250) |
| 19:35:42 | × | __minoru__shirae quits (~shiraeesh@109.166.59.124) (Ping timeout: 240 seconds) |
| 19:35:55 | <shapr> | I vaguely recall reading that the reduceron graph reduction CPU needs more memory bandwidth than the bog standard von neumann CPU, does anyone have references in mind? |
| 19:36:57 | × | supercoven_ quits (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 19:37:39 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:3d14:16a1:a9f1:c29c) |
| 19:38:25 | <slack1256> | What is the extension that makes * be called Type also? |
| 19:39:40 | <monochrom> | No extension needed. But you have to import "Type" from Data.Kind (or GHC.Exts or ...) |
| 19:40:05 | <slack1256> | Ooh, right |
| 19:40:11 | <slack1256> | Thank monochrom. |
| 19:40:19 | <monochrom> | Likewise for "Constraint". |
| 19:42:08 | → | StOnE joins (~StOnE@231.154.61.94.rev.vodafone.pt) |
| 19:42:46 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:3d14:16a1:a9f1:c29c) (Ping timeout: 276 seconds) |
| 19:43:15 | × | knupfer quits (~Thunderbi@200116b82b9c4f0069e2a2a836aa8e3f.dip.versatel-1u1.de) (Remote host closed the connection) |
| 19:43:45 | ← | StOnE parts (~StOnE@231.154.61.94.rev.vodafone.pt) () |
| 19:44:13 | → | knupfer joins (~Thunderbi@200116b82b9c4f00f9c2991c9c527ef0.dip.versatel-1u1.de) |
| 19:46:05 | × | wonko7 quits (~wonko7@62.115.229.50) (Ping timeout: 252 seconds) |
| 19:49:33 | × | ech quits (~user@gateway/tor-sasl/ech) (Remote host closed the connection) |
| 19:49:47 | → | ech joins (~user@gateway/tor-sasl/ech) |
| 19:54:16 | <carbolymer> | in the profiler output there's "entries" and "individual allocation", I'm looking for places with high memory usage, should I multiply entries * individual alloc in order to find which place had the biggest contribution to memory usage? |
| 19:55:14 | <carbolymer> | I have also a heap profile but converting 2G .hp file to .ps file takes a lot of time |
| 19:55:17 | <carbolymer> | ... |
| 19:58:26 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 19:58:54 | × | bennofs_ quits (~quassel@x4dbffbc2.dyn.telefonica.de) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 20:03:45 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 20:03:52 | → | DTZUZU joins (~DTZUZO@205.ip-149-56-132.net) |
| 20:03:54 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Read error: Connection reset by peer) |
| 20:04:08 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 20:04:09 | × | neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
| 20:04:09 | → | neiluj joins (~jco@unaffiliated/neiluj) |
| 20:04:51 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 265 seconds) |
| 20:05:14 | Lord_of_Life_ | is now known as Lord_of_Life |
| 20:05:27 | × | letmein quits (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1) (Ping timeout: 250 seconds) |
| 20:05:59 | × | petersen quits (~petersen@redhat/juhp) (Ping timeout: 268 seconds) |
| 20:06:36 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 20:07:34 | → | letmein joins (~letmein@c-71-59-221-7.hsd1.wa.comcast.net) |
| 20:07:43 | → | petersen joins (~petersen@redhat/juhp) |
| 20:08:36 | × | stree quits (~stree@68.36.8.116) (Quit: Caught exception) |
| 20:08:46 | × | Guest6509 quits (~laudiacay@45.162.228.190) (Ping timeout: 276 seconds) |
| 20:09:01 | → | stree joins (~stree@68.36.8.116) |
| 20:10:52 | → | conal joins (~conal@64.71.133.70) |
| 20:16:41 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 20:17:02 | × | danso quits (~dan@modemcable156.91-20-96.mc.videotron.ca) (Quit: WeeChat 3.0) |
| 20:19:00 | × | Qwerky quits (~qwerky@37.173.171.170) (Remote host closed the connection) |
| 20:19:18 | → | Qwerky joins (~qwerky@37.173.171.170) |
| 20:20:02 | × | Qwerky quits (~qwerky@37.173.171.170) (Remote host closed the connection) |
| 20:22:30 | <lechner> | Hi, does anyone else feel that affinity with SQL? It's been spooking around my head since I discovered Haskell. http://thoughts.davisjeff.com/2011/09/25/sql-the-successful-cousin-of-haskell/ |
| 20:23:53 | × | Pickchea quits (~private@unaffiliated/pickchea) (Quit: Leaving) |
| 20:26:51 | → | Qwerky joins (~qwerky@37.173.171.170) |
| 20:28:42 | <int-e> | cousin?! |
| 20:30:19 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 20:30:27 | <sm[m]> | "the tough problems that haskell would solve are already solved in so many cases" - I don't think so. But it's an interesting post all the same |
| 20:31:09 | <int-e> | I mean, I do see a certain amount of declarativity and/or purity allowing all sorts of crazy optimizations of queries. That's where the analogies stop to my mind. |
| 20:32:19 | <sm[m]> | the tough relational data querying problems.. yes maybe that |
| 20:32:39 | <int-e> | SQL doesn't really shine in the area of abstraction |
| 20:32:55 | → | dinciorip joins (~dincio@5.171.80.13) |
| 20:33:50 | <dinciorip> | This is probably a very stupid question, but is there a shorter alternative to `m | m == foo || m == bar -> foo'`? |
| 20:34:09 | <dinciorip> | That snippet being used as a pattern in pattern matching |
| 20:34:28 | <ski> | m | m `elem` [foo,bar] -> foo' |
| 20:35:23 | <ski> | ((`elem` [foo,bar]) -> True) -> foo' |
| 20:35:53 | → | aa111 joins (3e1d4484@62.29.68.132) |
| 20:35:54 | <ski> | if we had disjunctive / or- patterns, then those could be appropriate here, if `foo' and `bar' were approprate to use as patterns |
| 20:36:58 | <dinciorip> | well those are certainly an improvement, thanks! Don't quite understand the second one though... `foo` and `bar` are usable as patterns in my case |
| 20:37:10 | <aa111> | hello, im trying to construct a binary tree from a list looks like this [0[1,2],[0,4,7,8]], what is the best way to parse this input |
| 20:37:31 | <ski> | the second is using the `ViewPatterns' extension |
| 20:37:37 | × | notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds) |
| 20:37:48 | <ski> | but i'd probably prefer the first one, over the second, here |
| 20:38:10 | <ski> | aa111 : is that first `0' a typo ? |
| 20:38:14 | <dinciorip> | yeah me too tbh. Still will look into that extension when I have time |
| 20:38:26 | <aa111> | Nope it is not |
| 20:38:37 | <dinciorip> | You were saying that there was an easier alternative for when `foo` and `bar` are patterns? |
| 20:38:40 | <aa111> | Yeah it is ... |
| 20:38:40 | × | alx741 quits (~alx741@181.196.69.35) (Ping timeout: 268 seconds) |
| 20:38:40 | <ski> | then that's malformed Haskell |
| 20:38:46 | <aa111> | Let me fix it sorry |
| 20:39:05 | <ski> | dinciorip : *if* "we had disjunctive / or- patterns". we don't, unfortunately |
| 20:39:09 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
| 20:39:13 | <dinciorip> | Oh got it |
| 20:39:15 | × | coot quits (~coot@37.30.50.130.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 20:39:21 | <aa111> | [[0],[1,2,3],[0,5,6]] looks like this actually |
| 20:39:27 | <dinciorip> | Thanks anyway everyone |
| 20:39:50 | <ski> | what information does this list of lists describe ? |
| 20:40:02 | <aa111> | Nodes and leaves |
| 20:40:02 | <ski> | iow, how would it correspond to a binary tree ? |
| 20:40:19 | <ski> | what would be the corresponding binary tree, for this example ? |
| 20:40:44 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 20:40:47 | <aa111> | let me give a full example then |
| 20:40:52 | <aa111> | [[0],[0,0],[0,2,4,5],[1,3,0,0,0,0,0,0]] |
| 20:40:55 | <aa111> | Node 15 (Node 6 (Node 4 (Leaf 1) (Leaf 3)) (Leaf 2)) (Node 9 (Leaf 4) (Leaf 5)) |
| 20:41:48 | <ski> | it seems the `0's have some special meaning, but i can't decipher which |
| 20:42:23 | <aa111> | you sum the leaves of the node to replace 0's |
| 20:42:24 | <ski> | apparently the element at an internal node is to be the sum of all the leaves beneath it |
| 20:42:34 | <int-e> | so, guessing... those are levels of the tree; 0 are internal and absent nodes, and internal nodes gat annotated with the sum of the descendants? |
| 20:42:49 | <int-e> | and the i-th list has 2^i elements |
| 20:42:56 | <int-e> | (starting at i=0) |
| 20:43:01 | <aa111> | yes thats the case |
| 20:43:03 | <ski> | that looks consistent |
| 20:43:36 | → | horatiohb joins (~horatiohb@159.65.163.65) |
| 20:43:48 | <aa111> | i've been struggling for this for two days. Could not parse it any logical way |
| 20:43:59 | <ski> | a function which given a list splits it into the first and second half, could probably be useful |
| 20:44:29 | <ski> | (or two functions, one for each part, if you prefer) |
| 20:44:33 | <int-e> | . o O ( unzip, splitAt, zipWith, iterate ) |
| 20:44:53 | <cheater> | hi |
| 20:46:07 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 20:46:08 | <cheater> | i'm using stack supplied ghc and when i compile something that uses llvm-hs i get "error while loading shared libraries: libffi.so.7: cannot open shared object file: No such file or directory" even though that file is in a subdir of ~/.stack. how do i resolve this issue? |
| 20:46:27 | <int-e> | aa111: More fundamentally, think about how [[0],[0,0],[0,2,4,5],[1,3,0,0,0,0,0,0]] relates to the type of node (internal), and left and right subtree in the same list format. |
| 20:46:47 | <ski> | aa111 : do you want to validate that the input is a proper representation of a tree, or do you just want to assume this ? |
| 20:47:14 | <aa111> | I will assume |
| 20:47:45 | <aa111> | int-e yes im trying to, but still didnt get your point :/ |
| 20:48:08 | <ski> | aa111 : what are the two subtrees of `Node 15 (Node 6 (Node 4 (Leaf 1) (Leaf 3)) (Leaf 2)) (Node 9 (Leaf 4) (Leaf 5))' ? |
| 20:48:24 | <ski> | aa111 : which lists of lists do those subtrees correspond to ? |
| 20:48:41 | <ski> | aa111 : how do those two lists of lists relate to the original list of lists ? |
| 20:49:27 | <ski> | (direct subtrees) |
| 20:49:36 | <aa111> | ski: forgive me if i explained it wrong. There are no subtrees, with the given list i need to crate the following tree |
| 20:49:58 | <ski> | clearly the tree `Node 15 (Node 6 (Node 4 (Leaf 1) (Leaf 3)) (Leaf 2)) (Node 9 (Leaf 4) (Leaf 5))' has subtrees |
| 20:51:40 | <ski> | i'm not talking about what you (directly) should do, at the moment, to process the input. i'm asking you to attempt to survey the whole process (it still being a bit undetermined, in flux so to speak), to some extent. specifically asking you to consider the desired result tree, for the given list of lists, and how it's built up from subtrees |
| 20:51:57 | <int-e> | (we could maybe start with a simpler tree description like [[0],[1,0],[0,0,2,3]]) |
| 20:52:37 | → | alx741 joins (~alx741@181.196.68.118) |
| 20:53:15 | <aa111> | ski: Yes i see your point, |
| 20:53:29 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:51c0:6989:ff0b:33af) |
| 20:56:31 | <aa111> | I got an idea, thank you for pointing me in right perspective |
| 20:58:49 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:51c0:6989:ff0b:33af) (Ping timeout: 276 seconds) |
| 20:59:12 | × | Lowl3v3l quits (~Lowl3v3l@dslb-002-207-103-026.002.207.pools.vodafone-ip.de) (Remote host closed the connection) |
| 21:02:22 | × | michalz quits (~user@185.246.204.107) (Remote host closed the connection) |
| 21:05:39 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 252 seconds) |
| 21:06:11 | × | kav quits (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) (Ping timeout: 240 seconds) |
| 21:07:15 | × | aa111 quits (3e1d4484@62.29.68.132) (Quit: Connection closed) |
| 21:07:53 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:08:13 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 21:08:50 | × | fendor quits (~fendor@178.115.131.177.wireless.dyn.drei.com) (Read error: Connection reset by peer) |
| 21:13:13 | → | fendor joins (~fendor@178.115.131.177.wireless.dyn.drei.com) |
| 21:17:29 | × | knupfer quits (~Thunderbi@200116b82b9c4f00f9c2991c9c527ef0.dip.versatel-1u1.de) (Ping timeout: 245 seconds) |
| 21:21:22 | → | tempate joins (~tempate@7.pool85-60-109.dynamic.orange.es) |
| 21:21:23 | × | tempate quits (~tempate@7.pool85-60-109.dynamic.orange.es) (Changing host) |
| 21:21:23 | → | tempate joins (~tempate@unaffiliated/tempate) |
| 21:22:00 | × | LKoen quits (~LKoen@22.249.88.92.rev.sfr.net) (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:22:50 | <cheater> | any clues on libffi? |
| 21:23:27 | × | bor0 quits (~boro@unaffiliated/boro/x-000000001) (Quit: Leaving) |
| 21:23:30 | → | acidjnk_new2 joins (~acidjnk@p200300d0c72b9524d9e45372e00f3038.dip0.t-ipconnect.de) |
| 21:24:48 | × | ram19890 quits (~ram@49.205.84.253) (Remote host closed the connection) |
| 21:24:55 | × | SquidDev quits (~SquidDev@autoclave.squiddev.cc) (Ping timeout: 268 seconds) |
| 21:25:06 | → | SquidDev joins (~SquidDev@autoclave.squiddev.cc) |
| 21:25:14 | → | ram19890 joins (~ram@49.205.84.253) |
| 21:26:13 | × | Qwerky quits (~qwerky@37.173.171.170) (Remote host closed the connection) |
| 21:27:46 | × | jgt quits (~jgt@78.162.43.217) (Ping timeout: 260 seconds) |
| 21:31:14 | → | mounty joins (~mounty@236.216.214.218.sta.wbroadband.net.au) |
| 21:33:02 | → | kav joins (~kari@dsl-hkibng42-56733f-225.dhcp.inet.fi) |
| 21:33:04 | → | mikoto-chan joins (~anass@213.177.155.250) |
| 21:35:53 | × | DavidEichmann quits (~david@147.136.46.217.dyn.plus.net) (Remote host closed the connection) |
| 21:37:53 | × | Guest8109 quits (~textual@mskresolve-a.mskcc.org) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:42:54 | × | ystael quits (~ystael@209.6.50.55) (Read error: Connection reset by peer) |
| 21:43:18 | → | ystael joins (~ystael@209.6.50.55) |
| 21:44:10 | → | notzmv joins (~zmv@unaffiliated/zmv) |
| 21:45:08 | <cheater> | hmm my system's ghc comes with libffi.so.7 so i just symlinked it into path and i guess that works |
| 21:45:21 | <cheater> | LD_PATH or whatever |
| 21:45:31 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 260 seconds) |
| 21:45:44 | <cheater> | tomsmeding: could you check gitter when you're around :) |
| 21:47:30 | × | mikoto-chan quits (~anass@213.177.155.250) (Quit: mikoto-chan) |
| 21:47:47 | → | mikoto-chan joins (~anass@213.177.155.250) |
| 21:48:55 | × | fendor quits (~fendor@178.115.131.177.wireless.dyn.drei.com) (Remote host closed the connection) |
| 21:49:32 | × | mikoto-chan quits (~anass@213.177.155.250) (Client Quit) |
| 21:50:58 | × | pbgc quits (~pbgc@a89-152-234-147.cpe.netcabo.pt) (Quit: Computer has gone to sleep.) |
| 21:52:43 | <lechner> | Hi, I am a noobie who bit off too much. I would like to rewrite a Node.js website in Purescript but have some serious type confusion. any hinters would be appreciated. line 78 from the error is line 115 in the paste https://dpaste.org/T9bg |
| 21:53:32 | × | zebrag quits (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
| 21:54:19 | <lechner> | send returns HandlerM but the database query just before it messes everything up |
| 21:54:37 | × | slack1256 quits (~slack1256@200-112-79-247.baf.movistar.cl) (Ping timeout: 252 seconds) |
| 21:55:10 | <monochrom> | Is there a purescript channel so you can talk to better matching people? |
| 21:55:45 | <monochrom> | Or is my favourite correlation true again? |
| 21:56:42 | × | geekosaur quits (930099da@rrcs-147-0-153-218.central.biz.rr.com) (Quit: Connection closed) |
| 21:57:04 | → | geekosaur joins (930099da@rrcs-147-0-153-218.central.biz.rr.com) |
| 21:57:27 | <geekosaur> | I see 38 people and a logger in #purescript |
| 21:58:12 | <lechner> | yes I am over there too, but it's a third-party module they do not know, and I have a Haskell problem. plus, it's for a good purpose :) |
| 21:58:29 | <monochrom> | math channel : "I can't find accounting help on IRC" :: haskell channel : "I can't find purescript help on IRC" |
| 21:59:13 | <lechner> | that's the first unfriendly response i have seen here, but thanks! |
| 21:59:48 | <monochrom> | No, I am talking about a negative correlation between channel membership and job opportunities. |
| 22:00:41 | → | Alleria joins (~textual@2603-7000-3040-0000-b547-c3a9-933c-ab1d.res6.spectrum.com) |
| 22:00:54 | <Rembane> | lechner: That's not Haskell, that's Purescript. There is an excellent Purescript channel on the functional programming Slack. I recommend asking your question there instead. |
| 22:01:06 | Alleria | is now known as Guest25703 |
| 22:01:20 | × | zardoz2 quits (~bc8134e3@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 22:02:16 | <lechner> | unfortunately, my browser does not support Slack but I'll ask on IRC |
| 22:02:33 | <lechner> | monochrom: i see, sorry i am a volunteer myself |
| 22:03:45 | <lechner> | to be honest, i was a bit embarrassed to ask elementary questions (if there is such a thing in haskell) over there |
| 22:06:25 | <lechner> | if i were you folks, though, i would adopt PureScript as the ugly duckling. on a node server, which has been called the next PHP, the type safety it provides is a category killer hands down |
| 22:07:20 | <monochrom> | But I don't use a node server. |
| 22:07:21 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 22:08:17 | <lechner> | your clients may but they can't refactor safely on any project with more tha 500 lines |
| 22:09:13 | <c_wraith> | purescript is a different language with different semantics. |
| 22:09:17 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:c1b6:8c92:c92d:e10a) |
| 22:09:21 | <c_wraith> | Using it is more like using javascript than haskell |
| 22:09:48 | <c_wraith> | (because you can never forget it is javascript underneath) |
| 22:09:52 | <monochrom> | For now, I speak for my clients, too. |
| 22:10:12 | <monochrom> | But I am not closed to future possibilities whatsoever. |
| 22:10:16 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-lwoslwzxzqzjzamu) (Quit: Connection closed for inactivity) |
| 22:10:28 | <yushyin> | lechner: https://www.purescript.org/ see 'Community' down below |
| 22:11:07 | × | dinciorip quits (~dincio@5.171.80.13) (Quit: WeeChat 3.1) |
| 22:11:10 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 22:11:24 | <monochrom> | I don't think I can find the line of code that the error message refers to. |
| 22:12:04 | <lechner> | monochrom: it's 115 but i got your message https://dpaste.org/T9bg#L115 |
| 22:12:24 | × | dhil quits (~dhil@80.208.56.181) (Quit: Leaving) |
| 22:12:50 | <monochrom> | The error message mentions "discard". I can't find "discard". |
| 22:13:01 | × | nut quits (~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 268 seconds) |
| 22:13:44 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:c1b6:8c92:c92d:e10a) (Ping timeout: 245 seconds) |
| 22:14:13 | <lechner> | i think that's the query result. it probably is too hard with a module you do not know https://pursuit.purescript.org/packages/purescript-postgresql-client/3.0.2 https://github.com/rightfold/purescript-postgresql-client |
| 22:14:31 | <lechner> | there are too many types you are not familiar with. i get it |
| 22:14:38 | <monochrom> | Well, I don't know how to bridge between HandlerM and ExceptT PGError Aff anyway. |
| 22:14:45 | <lechner> | in fact, i have the same problem |
| 22:15:01 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 260 seconds) |
| 22:15:09 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:16:51 | <lechner> | no, the problem is that i added lines 111-114 that brought in the monad from line 64. without them everything works, except there is no SQL query :( |
| 22:16:52 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
| 22:18:02 | <lechner> | i really should talk to the Purescript folks. i did not mean to impose and would rather preserve my goodwill here |
| 22:18:23 | <monochrom> | Actually, is this simply a matter of doing your "send" outside "withConnection"? |
| 22:18:47 | <lechner> | i think so |
| 22:19:03 | <monochrom> | Or outside "withTransaction", I don't know which. |
| 22:21:02 | <lechner> | i can scrap the transaction for now. the idea came from here (one page down) https://github.com/rightfold/purescript-postgresql-client#usage |
| 22:21:10 | × | malumore_ quits (~malumore@151.62.126.111) (Remote host closed the connection) |
| 22:21:23 | → | malumore_ joins (~malumore@151.62.126.111) |
| 22:21:30 | → | zebrag joins (~inkbottle@aaubervilliers-654-1-79-166.w86-212.abo.wanadoo.fr) |
| 22:21:45 | <lechner> | the other issue with #purescript was that server-side Purescript is officialy not supported, but i think that's the big future for them |
| 22:23:06 | <monochrom> | Indeed I would think that updating or outputting a web page shouldn't happen until after a DB transaction finishes (so you know it is a success and you are not in the middle of possible retries, rollbacks, race conditions. |
| 22:24:05 | → | clathomas joins (ad4839b3@pool-173-72-57-179.cmdnnj.fios.verizon.net) |
| 22:24:29 | <clathomas> | Hello! I have a quick noob-level efficiency question. |
| 22:24:49 | <clathomas> | Why does ` foldl' (+) 0 [1..n] ` not use a constant amount of memory (in ghci) ? Everything I read says that foldl' should evaluate as it goes down the list, so the only space needed should be for the sum. But memory increases (according to `:set +s` in ghci) as n increases. |
| 22:24:52 | × | notzmv quits (~zmv@unaffiliated/zmv) (Ping timeout: 252 seconds) |
| 22:25:06 | <lechner> | monochrom: it's just a simple SELECT, and can put it in later. my issue is i am completely in over my head rewriting my little website lintian.debian.net in haskell and purescript. |
| 22:25:11 | <monochrom> | Note: "after the transaction finishes" ≠ "the last task inside the transaction" |
| 22:25:38 | × | letmein quits (~letmein@c-71-59-221-7.hsd1.wa.comcast.net) (Ping timeout: 246 seconds) |
| 22:26:06 | <lechner> | i just discovered haskell six months ago, and that math major heart jumped |
| 22:26:18 | <int-e> | clathomas: +s reports allocations, not memory residency. |
| 22:26:50 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:27:14 | <int-e> | clathomas: and without optimizations, the list and its elements are allocated... and consumed by foldl' as the sum is computed, so all that stuff becomes garbage immediately. |
| 22:27:21 | <clathomas> | int-e: got it, thanks! What is a good way to see "memory residency" ? (Is that the technical term to google for?) |
| 22:27:42 | <int-e> | clathomas: with optimizations, ghc will (usually) eliminate the allocations as well |
| 22:27:43 | <monochrom> | I run htop to watch memory residency. |
| 22:28:44 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 22:29:17 | × | neiluj quits (~jco@unaffiliated/neiluj) (Quit: leaving) |
| 22:29:22 | <int-e> | clathomas: I don't know of a convenient way for ghci (monochrom's suggestion may well be the best way). there's +RTS -s which reports "maximum residency" for compiled programs but really doesn't work well for ghci. |
| 22:29:35 | → | safinaskar joins (~user@109-252-90-136.nat.spd-mgts.ru) |
| 22:30:02 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 22:30:04 | <monochrom> | Sometimes I compile to exe and use "+RTS -s" too, but it only does sampling, not complete monitoring. OK my htop trick gives even fewer samples. |
| 22:30:26 | → | stree joins (~stree@68.36.8.116) |
| 22:31:05 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 22:31:22 | <int-e> | Right, we may miss a brief spike in residency with +RTS -s. |
| 22:31:46 | <monochrom> | Then again, "+RTS -s" gives its report after normal termination only. For a long-running program I go htop. |
| 22:32:49 | <monochrom> | You can use "+RTS -s" on ghci, which measures ghci itself, which is 1% your own code and 99% ghci's own startup cost, which is still something, but you have to quit before you see the report. |
| 22:33:54 | <int-e> | for giggles you can try `ghc +RTS -S` |
| 22:35:14 | <clathomas> | thanks! Looking into both options. Is there an option for making ghci optimize your files ? `-O2` didn't seem to work (at least with `stack ghci`) |
| 22:35:32 | <monochrom> | No. |
| 22:36:08 | <geekosaur> | ghci is an interpreter, what good would optimization do? |
| 22:36:09 | <monochrom> | Yes but very long story, virtually like no. |
| 22:36:45 | <monochrom> | https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#loading-compiled-code is the long story. |
| 22:37:04 | <geekosaur> | I suppose there is -fobject-code -O2 but then you lose most of the point of ghci |
| 22:37:26 | <clathomas> | geekosaur: I am running monte-carlo type simulations based on (fairly simple) combinations of library functions I've written. |
| 22:38:10 | → | jrm2 joins (~jrm@freebsd/developer/jrm) |
| 22:38:24 | <clathomas> | I suppose I want to package up my library so I can optimize and then import ? |
| 22:38:40 | <geekosaur> | probably |
| 22:39:32 | <solidus-river> | DigitalKiwi: sorry I had to run earlier, thats the book :) |
| 22:39:37 | <monochrom> | Oh and the doc there still has this omission. -c is not enough, you need -dynamic too. |
| 22:42:41 | × | jrm2 quits (~jrm@freebsd/developer/jrm) (Client Quit) |
| 22:43:04 | → | jrm2 joins (~jrm@freebsd/developer/jrm) |
| 22:44:02 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Remote host closed the connection) |
| 22:45:06 | → | ddellaco_ joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 22:45:49 | <monochrom> | There was a time my idea of personal library was -i/home/me/my-cool-haskell-files too :) |
| 22:47:50 | ← | safinaskar parts (~user@109-252-90-136.nat.spd-mgts.ru) () |
| 22:47:53 | → | safinaskar joins (~user@109-252-90-136.nat.spd-mgts.ru) |
| 22:48:32 | <safinaskar> | is there some way to get this datatype transformations automatically: https://paste.debian.net/1195441/ ? |
| 22:48:37 | <clathomas> | monochrom: haha indeed. I am changing / debugging the library a lot, so I do think ghci has advantages! But probably I do need to do something more official |
| 22:49:11 | × | ddellaco_ quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 22:51:58 | × | sdrodge_ quits (~sdrodge@unaffiliated/sdrodge) (Quit: WeeChat 3.1) |
| 22:52:44 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 22:54:50 | jrm2 | is now known as jrm |
| 22:57:21 | → | pbgc joins (~pbgc@a89-152-234-147.cpe.netcabo.pt) |
| 22:57:22 | → | sdrodge joins (~sdrodge@unaffiliated/sdrodge) |
| 22:57:31 | <monochrom> | I may delete "Expr" and "Term" altogether. I have never needed to "remember" user explicit parenthesizing by the time I output an AST. |
| 22:57:55 | × | pbgc quits (~pbgc@a89-152-234-147.cpe.netcabo.pt) (Client Quit) |
| 22:59:15 | × | hiroaki quits (~hiroaki@2a02:8108:8c40:2bb8:d72c:c07:3040:2376) (Ping timeout: 260 seconds) |
| 22:59:32 | <monochrom> | While a parser needs to take input parentheses into account, it can throw away that information very quickly. |
| 22:59:49 | → | falafel joins (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
| 23:01:09 | <safinaskar> | monochrom: yes. but i am writing my own parser, and it always output full parse tree |
| 23:02:07 | <safinaskar> | monochrom: also, i am going to write both parser and printer. and thus i need transformations in both ways between parse tree and ast |
| 23:02:14 | × | clathomas quits (ad4839b3@pool-173-72-57-179.cmdnnj.fios.verizon.net) (Quit: Connection closed) |
| 23:02:40 | <monochrom> | Then delete AST? |
| 23:07:38 | → | ep1ctetus_ joins (~epictetus@ip72-194-54-201.sb.sd.cox.net) |
| 23:08:06 | <DigitalKiwi> | monochrom: what if your parser is used in an text editor |
| 23:08:47 | DigitalKiwi | hands monochrom, monochrom hands a different one back |
| 23:08:56 | geekosaur | tempted to point to ghc-exactprint |
| 23:09:02 | <DigitalKiwi> | ... + words |
| 23:09:25 | × | heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:10:08 | → | apache8080 joins (~rishi@wsip-70-168-153-252.oc.oc.cox.net) |
| 23:10:14 | × | ChrisMarquardt quits (~ChrisMarq@185.204.1.185) (Remote host closed the connection) |
| 23:10:31 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 252 seconds) |
| 23:10:41 | × | epicte7us quits (~epictetus@ip72-194-54-201.sb.sd.cox.net) (Ping timeout: 240 seconds) |
| 23:11:26 | → | Tario joins (~Tario@200.119.186.99) |
| 23:11:28 | → | hiroaki joins (~hiroaki@2a02:8108:8c40:2bb8:97a:c563:cb11:fbc) |
| 23:15:05 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 23:15:44 | × | Chai-T-Rex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 23:17:07 | <safinaskar> | monochrom: well, in fact eventually i want to write prover. ast will be typechecked then |
| 23:19:14 | <safinaskar> | geekosaur: ghc-exactprint - this was to me? |
| 23:19:29 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 23:19:30 | <geekosaur> | yes |
| 23:19:48 | <geekosaur> | it uses information in GHC's AST to regenerate the source that led to the AST |
| 23:20:06 | <geekosaur> | although I guess actually it was to monochrom |
| 23:21:11 | → | letmein joins (~letmein@2601:1c1:4200:938f:f8bf:6a67:4eed:b2c1) |
| 23:24:07 | × | sarahzrf_ quits (~sarahzrf_@sarahzrf.com) (Quit: bye) |
| 23:24:22 | → | sarahzrf joins (~sarahzrf_@sarahzrf.com) |
| 23:25:04 | → | kiweun joins (~kiweun@2607:fea8:2a62:9600:bc5b:4bb6:fff:c736) |
| 23:26:20 | → | xPaw1 joins (~xPaw@185.204.1.185) |
| 23:27:24 | → | heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 23:28:11 | × | Guest85960 quits (~alexander@2a02:587:dc0a:2700:39fb:67a3:1f47:16d) (Ping timeout: 260 seconds) |
| 23:28:31 | <monochrom> | /nick MrSpeaker |
| 23:29:08 | <monochrom> | (refereence to British-style parliaments) |
| 23:30:16 | × | kiweun quits (~kiweun@2607:fea8:2a62:9600:bc5b:4bb6:fff:c736) (Ping timeout: 276 seconds) |
| 23:32:08 | <monochrom> | Data.Data is what I have heard for auto-coding of catamorphisms, but I have never learned it. |
| 23:32:31 | <monochrom> | and the DeriveData extension. |
| 23:33:11 | × | Tario quits (~Tario@200.119.186.99) (Ping timeout: 240 seconds) |
| 23:33:21 | <monochrom> | The conversions between Expr+Term and AST look like catamorphisms respectively. |
| 23:36:56 | × | Synthetica quits (uid199651@gateway/web/irccloud.com/x-jzozwncadkywrjny) (Quit: Connection closed for inactivity) |
| 23:37:21 | <safinaskar> | geekosaur: ghc-exactprint parses and prints haskell. i am writing parser for any cfg-based language |
| 23:40:43 | → | conal joins (~conal@64.71.133.70) |
| 23:45:23 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 23:46:53 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:49:01 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 252 seconds) |
| 23:49:59 | → | ddellacosta joins (~ddellacos@ool-44c73afa.dyn.optonline.net) |
| 23:50:26 | × | chimera quits (~chimera@168-182-134-95.pool.ukrtel.net) (Quit: Konversation terminated!) |
| 23:51:13 | → | Tario joins (~Tario@201.192.165.173) |
| 23:54:12 | × | ddellacosta quits (~ddellacos@ool-44c73afa.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 23:54:33 | → | dcoutts__ joins (~duncan@94.186.125.91.dyn.plus.net) |
| 23:54:43 | <safinaskar> | ok, thanks |
| 23:54:46 | ← | safinaskar parts (~user@109-252-90-136.nat.spd-mgts.ru) () |
| 23:55:56 | × | malumore_ quits (~malumore@151.62.126.111) (Ping timeout: 260 seconds) |
| 23:56:46 | × | dcoutts_ quits (~dcoutts@unaffiliated/dcoutts) (Ping timeout: 240 seconds) |
| 23:57:10 | × | dcoutts quits (~duncan@94.186.125.91.dyn.plus.net) (Ping timeout: 260 seconds) |
| 23:58:00 | → | dcoutts joins (~dcoutts@unaffiliated/dcoutts) |
| 23:58:45 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
All times are in UTC on 2021-04-27.