2021-01-12 00:01:31 +0100 | <sm[m]> | ep1ctetus: #haskell-ide-engine is probably the best place |
2021-01-12 00:01:40 +0100 | <sm[m]> | the Haskell extension is supposed to take care of that for you |
2021-01-12 00:01:48 +0100 | <ep1ctetus> | sm[m] thank you |
2021-01-12 00:03:04 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-12 00:03:09 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer) |
2021-01-12 00:03:36 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-01-12 00:05:36 +0100 | Widget | (~widget@213.55.241.60) (Ping timeout: 272 seconds) |
2021-01-12 00:06:32 +0100 | Widget | (~widget@2a04:ee41:6:7207:b1c1:81ec:60ca:398c) |
2021-01-12 00:07:11 +0100 | <ij> | how can a calculation on a record cause allocations? score c = created c + (choices c) * 5 |
2021-01-12 00:07:23 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
2021-01-12 00:08:03 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-12 00:08:17 +0100 | mikevdg | (a30781b2@163.7.129.178) |
2021-01-12 00:08:33 +0100 | LKoen | (~LKoen@152.172.9.109.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.”) |
2021-01-12 00:08:50 +0100 | <mikevdg> | Hi all. How do you debug stuff in Haskell? I'm getting an exception in a library, but I can't work out how to get a stack trace. |
2021-01-12 00:09:02 +0100 | <mikevdg> | Links to a tutorial would be great. I'm not having much luck finding one. |
2021-01-12 00:09:02 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:a978:5a86:791:f563) (Ping timeout: 264 seconds) |
2021-01-12 00:09:24 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-01-12 00:11:33 +0100 | <sm[m]> | mikevdg: it's a bit complicated. It might involve building the profiling version of that library, and rebuilding your app in profiling mode. Often it's quicker to narrow things down with trace (Debug.Trace) |
2021-01-12 00:11:51 +0100 | <sm[m]> | if you want to master it, the GHC User Guide is a good place to start |
2021-01-12 00:11:58 +0100 | <monochrom> | mikevdg: I start with "printf debugging": http://www.vex.net/~trebla/haskell/tracing.html |
2021-01-12 00:13:19 +0100 | <mikevdg> | I've already recompiled for profiling. |
2021-01-12 00:14:21 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-12 00:14:37 +0100 | <monochrom> | My brief experience with "turn on profiling to get a backtrace" is that after code optimization (GHC can rewrite your code to beyond recognition) the backtrace is informationless. |
2021-01-12 00:14:50 +0100 | mikevdg | finds https://downloads.haskell.org/ghc/latest/docs/html/users_guide/debug-info.html#requesting-a-stack-… |
2021-01-12 00:15:17 +0100 | <monochrom> | Not to mention that laziness is extremely jumpy. |
2021-01-12 00:15:45 +0100 | <sm[m]> | well if you have a profiling build, it's no harm to try the backtrace you'll get from running with +RTS -xc (IIRC) |
2021-01-12 00:16:17 +0100 | debclair | (~debclair@host-181-39-120-169.netlife.ec) (Ping timeout: 256 seconds) |
2021-01-12 00:16:26 +0100 | <mikevdg> | +RTC -xc don't seem to be recognised in the GHC options in package.yaml. GHC barfed at them (?!) |
2021-01-12 00:17:03 +0100 | <monochrom> | My most successful debugging sessions have all been: formulate a really informative hypothesis, use "printf debugging" to accept or reject the hypothesis, repeat. |
2021-01-12 00:17:18 +0100 | <sm[m]> | +RTS -xc, and these are run-time options for your program, not build time options for ghc |
2021-01-12 00:18:14 +0100 | <mikevdg> | ahh. |
2021-01-12 00:18:39 +0100 | <sm[m]> | they might require that you built it with the -rtsopts ghc option though |
2021-01-12 00:19:18 +0100 | <monochrom> | Yeah, -rtsopts in build-time ghc-options |
2021-01-12 00:19:48 +0100 | <monochrom> | This is why you have to learn how to use GHC directly, even when normally you use stack or cabal-install. |
2021-01-12 00:20:05 +0100 | <monochrom> | The abstraction leaks. |
2021-01-12 00:20:17 +0100 | <sm[m]> | stack hides that stuff pretty well actually. stack build --profile |
2021-01-12 00:20:49 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2021-01-12 00:20:52 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:e8e1:98ae:f4d8:7ab5) |
2021-01-12 00:21:54 +0100 | <monochrom> | Well, when one day you don't have to know "+RTS -xc" and you don't have to know "oh you mean give it to my exe, not to GHC", only then you can call it well-hidden. |
2021-01-12 00:22:16 +0100 | klardotsh | (~klardotsh@c-71-231-242-112.hsd1.wa.comcast.net) |
2021-01-12 00:22:45 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-12 00:22:49 +0100 | <monochrom> | i.e., some kind of "stack/cabal run --backtrace" and "stack/cabal run --memory-profile" and ... |
2021-01-12 00:23:04 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 00:23:31 +0100 | <monochrom> | I wouldn't hold my breath. |
2021-01-12 00:24:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-12 00:25:49 +0100 | son0p | (~son0p@181.136.122.143) (Quit: leaving) |
2021-01-12 00:25:57 +0100 | plutoniix | (~q@node-ufb.pool-125-24.dynamic.totinternet.net) |
2021-01-12 00:26:50 +0100 | debclair | (~debclair@host-181-39-120-169.netlife.ec) |
2021-01-12 00:27:10 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-12 00:27:46 +0100 | <ij> | is it easy to make a statically linked executable? |
2021-01-12 00:28:12 +0100 | <ij> | for copying onto a fresh, empty server |
2021-01-12 00:28:57 +0100 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Remote host closed the connection) |
2021-01-12 00:30:29 +0100 | <mikevdg> | I've come to the conclusion that Haskell does not have a usable debugger. At all. Screw this. |
2021-01-12 00:31:03 +0100 | <mikevdg> | I'm *trying really hard* to like this language but everything I try is far more difficult than it needs to be. |
2021-01-12 00:32:22 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-12 00:32:45 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 00:32:59 +0100 | conal | (~conal@64.71.133.70) |
2021-01-12 00:34:25 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-01-12 00:35:26 +0100 | heronwr | (~heronwr@198.52.165.210) |
2021-01-12 00:36:12 +0100 | heronwr | (~heronwr@198.52.165.210) (Client Quit) |
2021-01-12 00:36:30 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-12 00:36:46 +0100 | TheCommieDuck | (~mark@host-78-146-136-48.as13285.net) (Quit: WeeChat 3.0) |
2021-01-12 00:36:51 +0100 | conal_ | (~conal@198.8.81.80) |
2021-01-12 00:37:16 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-01-12 00:37:56 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 240 seconds) |
2021-01-12 00:38:54 +0100 | <sm[m]> | mikevdg: it doesn't. Nobody said it did. :) |
2021-01-12 00:39:13 +0100 | <sm[m]> | but there are compensating strengths. Don't give up too soon! |
2021-01-12 00:39:43 +0100 | <sm[m]> | It takes longer than you expect. |
2021-01-12 00:39:52 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 246 seconds) |
2021-01-12 00:39:59 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 00:43:34 +0100 | <mikevdg> | What strengths? Either I'm waiting for a 6-minute compilation to finish, or I'm lost in a maze of monad transformers. |
2021-01-12 00:44:00 +0100 | <mikevdg> | It's all very well that there are no side effects, but I'm having huge trouble even just getting code to run. |
2021-01-12 00:45:02 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2021-01-12 00:45:04 +0100 | <mikevdg> | In the same amount of time it took me to get haskell-language-server running, I had downloaded and learned the entire Smalltalk language. |
2021-01-12 00:45:30 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) (Ping timeout: 272 seconds) |
2021-01-12 00:46:43 +0100 | <mikevdg> | I'm trying to get Haskell to work with webdriver. I've seen bug reports of "Never mind. We switch to python and it works now." |
2021-01-12 00:47:19 +0100 | <ij> | with nix it took me a minute |
2021-01-12 00:47:26 +0100 | AWizzArd | (~code@gehrels.uberspace.de) (Changing host) |
2021-01-12 00:47:27 +0100 | AWizzArd | (~code@unaffiliated/awizzard) |
2021-01-12 00:48:50 +0100 | <mikevdg> | Never mind. It works now. Haskell is amazing. |
2021-01-12 00:49:02 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-12 00:49:16 +0100 | <mikevdg> | It appears that chromedriver is broken. |
2021-01-12 00:49:31 +0100 | loli | (~loli@024-171-017-003.res.spectrum.com) (Read error: Connection reset by peer) |
2021-01-12 00:50:07 +0100 | loli | (~loli@024-171-017-003.res.spectrum.com) |
2021-01-12 00:50:14 +0100 | <sm[m]> | mikevdg: https://www.foxhound.systems/blog/why-haskell-for-production/ is a nice recent description of some strengths. They are more apparent with bigger and longer-lasting projects |
2021-01-12 00:50:50 +0100 | <sm[m]> | it's certainly no Smalltalk. (I'm a Squeaker) |
2021-01-12 00:52:09 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2021-01-12 00:53:20 +0100 | sparsity | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
2021-01-12 00:53:48 +0100 | tama00 | (~tama@unaffiliated/tama00) (Quit: WeeChat 3.0) |
2021-01-12 00:54:02 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-01-12 00:54:47 +0100 | aidecoe | (~aidecoe@unaffiliated/aidecoe) (Remote host closed the connection) |
2021-01-12 00:55:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 00:57:41 +0100 | debclair | (~debclair@host-181-39-120-169.netlife.ec) (Quit: Leaving) |
2021-01-12 00:59:16 +0100 | ep1ctetus | (b8bba2a3@ip184-187-162-163.sb.sd.cox.net) () |
2021-01-12 00:59:51 +0100 | ep1ctetus | (~luke@ip184-187-162-163.sb.sd.cox.net) |
2021-01-12 01:01:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-12 01:01:52 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e7934412496f05d02b0d.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-01-12 01:02:44 +0100 | <dolio> | Maybe the lesson is that smalltalk had nothing significant to teach you. |
2021-01-12 01:05:01 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-01-12 01:05:08 +0100 | ep1ctetus | (~luke@ip184-187-162-163.sb.sd.cox.net) (Quit: Leaving.) |
2021-01-12 01:06:51 +0100 | <koz_> | I've done some profiling and discovered that one function does 24% of my allocations. This is a bit baffling, and I'd like to investigate why. What do? |
2021-01-12 01:07:31 +0100 | <ij> | show the function |
2021-01-12 01:07:44 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2021-01-12 01:08:08 +0100 | <koz_> | ij: It wouldn't make any sense on its own, and then I'd have to show you our entire web framework. :P |
2021-01-12 01:08:21 +0100 | <koz_> | I'd like to investigate what thing that this function is calling that's allocating. |
2021-01-12 01:09:14 +0100 | <dolio> | 24% inherited? |
2021-01-12 01:09:20 +0100 | <dolio> | Or 24% itself? |
2021-01-12 01:09:28 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
2021-01-12 01:09:36 +0100 | <ij> | what does inherited mean? |
2021-01-12 01:09:37 +0100 | <koz_> | I only have a -p profile. Do I need a -h profile for this? |
2021-01-12 01:09:44 +0100 | ep1ctetus | (~marcus_au@ip184-187-162-163.sb.sd.cox.net) |
2021-01-12 01:09:50 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-01-12 01:10:03 +0100 | <koz_> | I'm going by its cost centre entry at the top. |
2021-01-12 01:10:40 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds) |
2021-01-12 01:11:00 +0100 | <mikevdg> | dolio: Smalltalk is all about tooling. The debugger is amazing. |
2021-01-12 01:11:16 +0100 | ep1ctetus | (~marcus_au@ip184-187-162-163.sb.sd.cox.net) (Client Quit) |
2021-01-12 01:11:26 +0100 | ystael | (~ystael@209.6.50.55) |
2021-01-12 01:11:34 +0100 | <dolio> | Inherited means that 24% of allocations occur in any cost center transitively referenced from the given cost center. As opposed to attributable directly to the given cost center. |
2021-01-12 01:11:49 +0100 | <koz_> | dolio: How do I establish which this is? |
2021-01-12 01:12:15 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-gnedumgsvnojinhm) |
2021-01-12 01:12:40 +0100 | ep1ctetus | (~marcus_au@ip184-187-162-163.sb.sd.cox.net) |
2021-01-12 01:13:10 +0100 | tbqdrn[m] | (tbqdrnmatr@gateway/shell/matrix.org/x-uepjwqvijalwxvgx) |
2021-01-12 01:13:24 +0100 | <dolio> | koz_: The profiles I'm familiar with have columns for inherited and direct cost. But I don't remember which profiles that is, because I haven't done it in a long time. |
2021-01-12 01:13:42 +0100 | <koz_> | dolio: I'll try a -h profile and see if that helps. |
2021-01-12 01:13:42 +0100 | <dolio> | If yours doesn't, you need to do something different. |
2021-01-12 01:14:42 +0100 | <sm[m]> | koz_: profiterole makes profiles more readable |
2021-01-12 01:14:58 +0100 | <sm[m]> | ie, more hierarchical |
2021-01-12 01:15:33 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-12 01:15:40 +0100 | <koz_> | sm[m]: profiterole doesn't seem to do allocation - only time. |
2021-01-12 01:17:01 +0100 | <dolio> | koz_: Another thing to consider is that if you don't have libraries built with relevant profiling, I think all costs from those calls will be attributed directly to whatever cost center is calling them. |
2021-01-12 01:17:20 +0100 | <koz_> | dolio: I used 'stack build --profile', which I _guess_ handles this? |
2021-01-12 01:17:28 +0100 | <dolio> | Hopefully. |
2021-01-12 01:17:31 +0100 | <exarkun> | I think it does |
2021-01-12 01:17:38 +0100 | <exarkun> | You may have noticed it spending an hour rebuilding all your deps? |
2021-01-12 01:18:02 +0100 | <dolio> | I guess my point is, check if you actually see cost centers for libraries. |
2021-01-12 01:18:03 +0100 | <koz_> | Lol. |
2021-01-12 01:18:23 +0100 | <koz_> | dolio: My very first cost centre is from Network.Socket.Buffer. |
2021-01-12 01:18:23 +0100 | <dolio> | At least, if they're relevant. |
2021-01-12 01:19:02 +0100 | tbqdrn[m] | (tbqdrnmatr@gateway/shell/matrix.org/x-uepjwqvijalwxvgx) ("User left") |
2021-01-12 01:19:58 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
2021-01-12 01:20:18 +0100 | <dolio> | But like, if you look at your expensive function, and you don't see any cost centers under it for potentially expensive library calls, that's suspicious. |
2021-01-12 01:21:15 +0100 | <sm[m]> | koz_: I guess you're right, but the two often correlate |
2021-01-12 01:21:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-12 01:22:01 +0100 | <sm[m]> | I usually flip between the original and profiterole's |
2021-01-12 01:22:04 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-12 01:22:45 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-12 01:23:06 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 01:23:12 +0100 | <sm[m]> | but there are fancier graphical heap profiling tools, better for some things |
2021-01-12 01:23:43 +0100 | hiroaki | (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
2021-01-12 01:23:53 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-12 01:24:34 +0100 | <koz_> | sm[m]: profiteur helped. dolio: What is the difference between an entry called 'foo', and one called 'foo (indiv)'? |
2021-01-12 01:24:51 +0100 | tbqdrn[m] | (tbqdrnmatr@gateway/shell/matrix.org/x-uepjwqvijalwxvgx) |
2021-01-12 01:24:57 +0100 | <dolio> | I've never used profiterole. |
2021-01-12 01:25:37 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-12 01:25:40 +0100 | <dolio> | indiv might be the direct cost, and the other one the inherited cost. |
2021-01-12 01:26:03 +0100 | <koz_> | OK, found the guilty parties. |
2021-01-12 01:26:10 +0100 | <koz_> | Still weird, but it's _definitely_ inherited. |
2021-01-12 01:26:11 +0100 | <koz_> | Thanks all! |
2021-01-12 01:26:17 +0100 | <sm[m]> | \o/ |
2021-01-12 01:26:28 +0100 | <sm[m]> | https://mpickering.github.io/eventlog2html looks good too |
2021-01-12 01:26:41 +0100 | <ij> | I wrote this code to put smallest elements in front of the list, but it seems to be slower than sortOn score and then taking the head http://sprunge.us/SIzMWU |
2021-01-12 01:27:28 +0100 | tbqdrn[m] | (tbqdrnmatr@gateway/shell/matrix.org/x-uepjwqvijalwxvgx) ("User left") |
2021-01-12 01:27:28 +0100 | slewis | (~slewis@84.39.117.57) (Remote host closed the connection) |
2021-01-12 01:27:45 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-01-12 01:28:19 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) |
2021-01-12 01:28:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 01:28:44 +0100 | <dolio> | koz_: -h is not the one I was thinking of, although it might have helped. I think maybe -P is the one I was talking about. |
2021-01-12 01:30:04 +0100 | <koz_> | That's the one I had, and it turned out to have what I needed. |
2021-01-12 01:30:25 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Quit: leaving) |
2021-01-12 01:30:27 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 256 seconds) |
2021-01-12 01:33:40 +0100 | <ij> | here's a ghci runnable example http://sprunge.us/kKy7IE |
2021-01-12 01:37:42 +0100 | <ij> | it would make sense if sort is some optimized C |
2021-01-12 01:38:03 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 01:38:16 +0100 | aveltras | (uid364989@gateway/web/irccloud.com/x-xykekrezuzwmeque) (Quit: Connection closed for inactivity) |
2021-01-12 01:39:34 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 256 seconds) |
2021-01-12 01:41:06 +0100 | threestrikes | (~threestri@cpe-24-243-229-2.hot.res.rr.com) |
2021-01-12 01:42:11 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-01-12 01:42:49 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 264 seconds) |
2021-01-12 01:45:10 +0100 | plutoniix | (~q@node-ufb.pool-125-24.dynamic.totinternet.net) (Quit: Leaving) |
2021-01-12 01:45:16 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 01:46:16 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-12 01:46:30 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-01-12 01:46:35 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-12 01:49:31 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 246 seconds) |
2021-01-12 01:54:06 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 01:55:00 +0100 | aerium | (~aerium@51.194.80.91) (Ping timeout: 265 seconds) |
2021-01-12 01:56:26 +0100 | zaquest | (~notzaques@5.128.210.178) (Remote host closed the connection) |
2021-01-12 01:56:54 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-12 01:57:37 +0100 | <glguy> | ij: why "minRest m [] t = (m, [], t)" instead of "minRest m [] t = (m, t)"? |
2021-01-12 01:57:48 +0100 | zaquest | (~notzaques@5.128.210.178) |
2021-01-12 01:58:30 +0100 | <ij> | I (for no reason whatsoever) thought the arguments have to match the return type |
2021-01-12 01:58:35 +0100 | <ij> | let's try it |
2021-01-12 01:59:15 +0100 | <ij> | still slower than sortOn |
2021-01-12 01:59:21 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds) |
2021-01-12 01:59:37 +0100 | <ij> | it looks like it is using less memory, though |
2021-01-12 02:02:07 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 246 seconds) |
2021-01-12 02:02:44 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2021-01-12 02:05:29 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Ping timeout: 260 seconds) |
2021-01-12 02:05:46 +0100 | Ariakenom | (~Ariakenom@2001:9b1:efb:fc00:55e4:e64e:d0d2:62ce) (Read error: Connection reset by peer) |
2021-01-12 02:07:28 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-01-12 02:11:12 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-01-12 02:12:18 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-01-12 02:15:17 +0100 | christo | (~chris@81.96.113.213) |
2021-01-12 02:16:58 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 02:19:25 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-12 02:19:34 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-12 02:19:40 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) |
2021-01-12 02:21:26 +0100 | jmchael | (~jmchael@87.112.235.234) (Ping timeout: 256 seconds) |
2021-01-12 02:21:49 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 264 seconds) |
2021-01-12 02:23:23 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2021-01-12 02:25:19 +0100 | columbarius1 | (~columbari@87.123.198.160) (Ping timeout: 260 seconds) |
2021-01-12 02:26:23 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2021-01-12 02:27:23 +0100 | columbarius1 | (~columbari@muedsl-82-207-236-249.citykom.de) |
2021-01-12 02:28:25 +0100 | Gurkenglas_ | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds) |
2021-01-12 02:29:02 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 256 seconds) |
2021-01-12 02:30:08 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Quit: thc202) |
2021-01-12 02:31:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 02:32:18 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) |
2021-01-12 02:32:24 +0100 | argento | (~argent0@168.227.97.34) |
2021-01-12 02:33:31 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) |
2021-01-12 02:34:25 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
2021-01-12 02:34:48 +0100 | argento | (~argent0@168.227.97.34) (Client Quit) |
2021-01-12 02:36:15 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-12 02:37:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-12 02:39:11 +0100 | <slack1256> | I remember to have read a blogpost on r/haskell called "the greatest refactor technique you have never heard of" which was about defunctionalization on a DFS algorithm for a tree. I've tried the reddit search but I guess the name isn't correct. Does anyone have a link? |
2021-01-12 02:41:31 +0100 | pmxb0t | (~pmxb0t@185.204.1.185) |
2021-01-12 02:43:23 +0100 | <texasmynsted> | I guess I have never heard of it. |
2021-01-12 02:44:01 +0100 | juri_ | (~juri@178.63.35.222) (Ping timeout: 264 seconds) |
2021-01-12 02:46:29 +0100 | <monochrom> | would it be https://www.reddit.com/r/programming/comments/6wt7w/defunctionalized_lists_reifying_continuations/ (view the archived discussion, not the blog) |
2021-01-12 02:51:49 +0100 | <slack1256> | Mmm it is the same idea certainly. But no, this one was published like 2 months ago. |
2021-01-12 02:52:09 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-12 02:54:48 +0100 | <texasmynsted> | hmm. can't find it but darn I am finding all kinds of cool refactoring articles |
2021-01-12 02:57:30 +0100 | epicte7us | (~marcus_au@ip184-187-162-163.sb.sd.cox.net) |
2021-01-12 02:57:40 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) (Remote host closed the connection) |
2021-01-12 02:57:53 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) |
2021-01-12 02:59:03 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
2021-01-12 02:59:10 +0100 | Entertainment | (~entertain@104.246.132.210) (Ping timeout: 246 seconds) |
2021-01-12 02:59:48 +0100 | jlamothe | (~jlamothe@198.251.55.207) (Quit: leaving) |
2021-01-12 03:00:18 +0100 | <DigitalKiwi> | haskells killer app is refactoring |
2021-01-12 03:00:36 +0100 | ep1ctetus | (~marcus_au@ip184-187-162-163.sb.sd.cox.net) (Ping timeout: 256 seconds) |
2021-01-12 03:01:35 +0100 | abhixec_ | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-01-12 03:07:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 03:09:13 +0100 | epicte7us | (~marcus_au@ip184-187-162-163.sb.sd.cox.net) (Quit: Leaving) |
2021-01-12 03:09:17 +0100 | texasmynsted | shrug |
2021-01-12 03:09:36 +0100 | Rudd0 | (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
2021-01-12 03:09:39 +0100 | <texasmynsted> | I have still never seen a more beautiful language than haskell |
2021-01-12 03:10:24 +0100 | thefybe | (~thefybe@249-147-161-N2.customer.vsm.sh) (Ping timeout: 256 seconds) |
2021-01-12 03:10:56 +0100 | SoundLogic_ | (~SoundLogi@075-134-016-017.res.spectrum.com) |
2021-01-12 03:11:18 +0100 | SoundLogic_ | SoundLogic |
2021-01-12 03:12:07 +0100 | SoundLogic | (~SoundLogi@075-134-016-017.res.spectrum.com) (Client Quit) |
2021-01-12 03:14:14 +0100 | Dark_Ethereal | (~Drew@84.93.106.197) (Quit: Leaving.) |
2021-01-12 03:15:09 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Remote host closed the connection) |
2021-01-12 03:18:18 +0100 | sm2n | (~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) |
2021-01-12 03:19:39 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-12 03:20:22 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Client Quit) |
2021-01-12 03:20:27 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-01-12 03:21:27 +0100 | mouseghost | (~draco@wikipedia/desperek) (Quit: mew wew) |
2021-01-12 03:24:59 +0100 | xff0x | (~xff0x@2001:1a81:53ed:d500:fb41:db64:748c:e168) (Ping timeout: 272 seconds) |
2021-01-12 03:25:31 +0100 | xff0x | (~xff0x@2001:1a81:53ed:d500:b20b:19e8:9626:e2df) |
2021-01-12 03:25:49 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) |
2021-01-12 03:26:45 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 240 seconds) |
2021-01-12 03:28:04 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Quit: WeeChat 3.0) |
2021-01-12 03:29:10 +0100 | conal_ | (~conal@198.8.81.80) (Quit: Computer has gone to sleep.) |
2021-01-12 03:29:16 +0100 | jespada | (~jespada@90.254.245.49) |
2021-01-12 03:29:52 +0100 | conal | (~conal@198.8.81.80) |
2021-01-12 03:29:52 +0100 | conal | (~conal@198.8.81.80) (Client Quit) |
2021-01-12 03:30:28 +0100 | conal | (~conal@198.8.81.80) |
2021-01-12 03:34:25 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds) |
2021-01-12 03:35:12 +0100 | justsomeguy | (~Srain@unaffiliated/--/x-3805311) |
2021-01-12 03:35:18 +0100 | xff0x | (~xff0x@2001:1a81:53ed:d500:b20b:19e8:9626:e2df) (Ping timeout: 260 seconds) |
2021-01-12 03:35:37 +0100 | conal | (~conal@198.8.81.80) (Ping timeout: 264 seconds) |
2021-01-12 03:36:50 +0100 | xff0x | (~xff0x@2001:1a81:5220:500:dba:8115:2558:810b) |
2021-01-12 03:39:25 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds) |
2021-01-12 03:41:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-12 03:41:37 +0100 | conal | (~conal@198.8.81.80) |
2021-01-12 03:45:18 +0100 | threestrikes | (~threestri@cpe-24-243-229-2.hot.res.rr.com) (Quit: Leaving) |
2021-01-12 03:45:29 +0100 | plutoniix | (~q@184.82.192.193) |
2021-01-12 03:51:12 +0100 | conal | (~conal@198.8.81.80) (Quit: Computer has gone to sleep.) |
2021-01-12 03:51:43 +0100 | mikevdg | (a30781b2@163.7.129.178) (Quit: Connection closed) |
2021-01-12 03:55:05 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 03:55:31 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-upuqeneqybvqnswn) (Quit: Connection closed for inactivity) |
2021-01-12 03:59:53 +0100 | conal | (~conal@198.8.81.80) |
2021-01-12 04:00:02 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2021-01-12 04:01:50 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-12 04:05:20 +0100 | Sgeo_ | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-12 04:05:39 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2021-01-12 04:06:20 +0100 | Mzg | (Mzg@s1.ct8.pl) (Ping timeout: 256 seconds) |
2021-01-12 04:06:31 +0100 | Mzg | (Mzg@s1.ct8.pl) |
2021-01-12 04:07:11 +0100 | <nshepperd> | slack1256: https://www.joachim-breitner.de/blog/778-Don%E2%80%99t_think%2C_just_defunctionalize ? |
2021-01-12 04:07:24 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) (Ping timeout: 260 seconds) |
2021-01-12 04:08:16 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Ping timeout: 240 seconds) |
2021-01-12 04:08:47 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) |
2021-01-12 04:10:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 04:10:37 +0100 | <nshepperd> | that's basically a blog post version of "the best refactoring you've never heard of" which is a video from a year ago |
2021-01-12 04:13:14 +0100 | DTZUZU_ | (~DTZUZU@207.81.119.43) |
2021-01-12 04:13:34 +0100 | DTZUZU | (~DTZUZU@205.ip-149-56-132.net) (Read error: Connection reset by peer) |
2021-01-12 04:15:13 +0100 | DTZUZU | (~DTZUZU@205.ip-149-56-132.net) |
2021-01-12 04:15:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-12 04:15:49 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-12 04:17:42 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 04:17:46 +0100 | conal | (~conal@198.8.81.80) (Quit: Computer has gone to sleep.) |
2021-01-12 04:17:54 +0100 | DTZUZU_ | (~DTZUZU@207.81.119.43) (Ping timeout: 260 seconds) |
2021-01-12 04:17:57 +0100 | ransom_ | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) |
2021-01-12 04:23:24 +0100 | <ukari> | why this code cannot get the argument in template haskell? https://gist.github.com/ukari/11bc6327ff26fef3db31b4543a87ece6 |
2021-01-12 04:23:50 +0100 | ransom_ | (~c4264035@c-67-176-3-106.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 04:26:20 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
2021-01-12 04:26:59 +0100 | <glguy> | ukari, The name "input" would be match where you splice that in |
2021-01-12 04:27:02 +0100 | <glguy> | matched |
2021-01-12 04:27:09 +0100 | <glguy> | not when you define it |
2021-01-12 04:27:13 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) (Ping timeout: 264 seconds) |
2021-01-12 04:27:23 +0100 | <ephemient> | test = $(id [| 1 |]) |
2021-01-12 04:27:32 +0100 | <ephemient> | that would work, btw |
2021-01-12 04:28:09 +0100 | drbean | (~drbean@TC210-63-209-185.static.apol.com.tw) |
2021-01-12 04:28:24 +0100 | <glguy> | *Help> let input = 5 in $(idTH ()) |
2021-01-12 04:28:25 +0100 | <glguy> | 5 |
2021-01-12 04:28:54 +0100 | <glguy> | <interactive>:6:20-26: Splicing expression |
2021-01-12 04:28:54 +0100 | <glguy> | idTH () ======> (\ x -> x) input |
2021-01-12 04:29:08 +0100 | <glguy> | so you get: let input = 5 in (\ x -> x) input |
2021-01-12 04:32:08 +0100 | <justsomeguy> | What does it mean when someone says a type is "lifted" or "unlifted"? |
2021-01-12 04:32:41 +0100 | <ukari> | is it possible to pass 5 at the positon test = $(idTH **here**)? with idTH signature idTH :: a -> Q Exp |
2021-01-12 04:33:01 +0100 | plateau_ | (~plateau@51.194.80.91) |
2021-01-12 04:33:29 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 04:33:48 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-12 04:34:05 +0100 | sagax | (~sagax_nb@213.138.71.146) |
2021-01-12 04:35:00 +0100 | <glguy> | You could have: $(idTH [| 5 |]) |
2021-01-12 04:35:32 +0100 | <ephemient> | not with forall a. a. if you picked a specific type, you could embed a literal, or you could use quasiquotes which always work |
2021-01-12 04:35:52 +0100 | Welkin | (~Welkin@216.243.35.47) |
2021-01-12 04:36:49 +0100 | <ephemient> | justsomeguy: the specifics depend on what content you're talking about, but in general it means something like unlifted :: a, lifted :: f a |
2021-01-12 04:37:30 +0100 | <glguy> | or, idTH :: Lift a => a -> Q Exp |
2021-01-12 04:37:30 +0100 | <glguy> | idTH input = appE helper [| input |] |
2021-01-12 04:38:32 +0100 | <ukari> | $(idTH [|5|]) makes idTH signature turns to be idTH:: Q Exp -> Q Exp |
2021-01-12 04:40:04 +0100 | <glguy> | Yes, your choices are either: idTH :: Lift a => a -> ExpQ -- or the more useful idTH :: ExpQ -> ExpQ |
2021-01-12 04:41:10 +0100 | <ephemient> | either way (mkName "input") doesn't work; it's just not in scope at the point of the splice |
2021-01-12 04:42:07 +0100 | <ukari> | thanks, i get it why that not works |
2021-01-12 04:42:24 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) |
2021-01-12 04:43:06 +0100 | mirrorbird | (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Remote host closed the connection) |
2021-01-12 04:44:52 +0100 | <glguy> | justsomeguy, "lifted" types can also mean "has bottom" |
2021-01-12 04:45:03 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) |
2021-01-12 04:45:21 +0100 | <glguy> | Haskell ran out of words so lift gets overloaded |
2021-01-12 04:46:25 +0100 | theDon | (~td@94.134.91.199) (Ping timeout: 264 seconds) |
2021-01-12 04:46:34 +0100 | <glguy> | http://hackage.haskell.org/package/base-4.14.1.0/docs/GHC-Exts.html#t:RuntimeRep |
2021-01-12 04:46:44 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-01-12 04:47:18 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 04:47:39 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-12 04:47:48 +0100 | theDon | (~td@muedsl-82-207-238-062.citykom.de) |
2021-01-12 04:49:11 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 04:49:32 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-12 04:50:25 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-12 04:52:18 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 04:52:18 +0100 | Marissa | (Marissa@33.anserq.com) |
2021-01-12 04:52:57 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 04:53:15 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-12 04:53:29 +0100 | conal | (~conal@107.181.166.211) |
2021-01-12 04:54:46 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
2021-01-12 04:57:59 +0100 | xirhtogal | (~lagothrix@unaffiliated/lagothrix) |
2021-01-12 04:57:59 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) (Killed (rothfuss.freenode.net (Nickname regained by services))) |
2021-01-12 04:57:59 +0100 | xirhtogal | lagothrix |
2021-01-12 04:58:27 +0100 | Raito_Bezarius | (~Raito@unaffiliated/raito-bezarius/x-8764578) (Ping timeout: 260 seconds) |
2021-01-12 04:58:34 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 04:58:53 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-12 04:59:05 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Remote host closed the connection) |
2021-01-12 04:59:08 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-12 04:59:28 +0100 | ystael | (~ystael@209.6.50.55) (Ping timeout: 272 seconds) |
2021-01-12 05:00:42 +0100 | Raito_Bezarius | (~Raito@unaffiliated/raito-bezarius/x-8764578) |
2021-01-12 05:01:14 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2021-01-12 05:01:24 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2021-01-12 05:01:36 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 240 seconds) |
2021-01-12 05:02:15 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2021-01-12 05:04:09 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-12 05:07:42 +0100 | justsomeguy | (~Srain@unaffiliated/--/x-3805311) (Remote host closed the connection) |
2021-01-12 05:09:07 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-12 05:09:36 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2021-01-12 05:09:54 +0100 | stree | (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) |
2021-01-12 05:11:39 +0100 | sagax | (~sagax_nb@213.138.71.146) (Quit: Konversation terminated!) |
2021-01-12 05:14:08 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-12 05:16:33 +0100 | cmcma20 | (~cmcma20@l37-192-2-125.novotelecom.ru) (Quit: leaving) |
2021-01-12 05:17:26 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-12 05:20:01 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-01-12 05:20:25 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds) |
2021-01-12 05:20:54 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-12 05:23:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-12 05:23:32 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 05:23:56 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-12 05:26:53 +0100 | sagax | (~sagax_nb@213.138.71.146) |
2021-01-12 05:28:48 +0100 | mosq | (b8b05cbe@ip184-176-92-190.ph.ph.cox.net) |
2021-01-12 05:29:01 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 264 seconds) |
2021-01-12 05:30:28 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
2021-01-12 05:32:27 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
2021-01-12 05:32:31 +0100 | mosq | (b8b05cbe@ip184-176-92-190.ph.ph.cox.net) (Quit: Connection closed) |
2021-01-12 05:36:00 +0100 | conal | (~conal@107.181.166.211) (Quit: Computer has gone to sleep.) |
2021-01-12 05:36:02 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Read error: Connection reset by peer) |
2021-01-12 05:36:16 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2021-01-12 05:37:39 +0100 | conal | (~conal@107.181.166.211) |
2021-01-12 05:41:07 +0100 | conal | (~conal@107.181.166.211) (Client Quit) |
2021-01-12 05:41:48 +0100 | conal | (~conal@107.181.166.211) |
2021-01-12 05:41:50 +0100 | conal | (~conal@107.181.166.211) (Client Quit) |
2021-01-12 05:43:42 +0100 | vicfred | (vicfred@gateway/vpn/mullvad/vicfred) (Quit: Leaving) |
2021-01-12 05:43:51 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-12 05:46:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2021-01-12 05:47:26 +0100 | conal | (~conal@107.181.166.211) |
2021-01-12 05:48:37 +0100 | <slack1256> | nshepperd: This one is! Thank you! |
2021-01-12 05:49:01 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 05:49:42 +0100 | slack1256 | (~slack1256@dvc-186-186-101-190.movil.vtr.net) (Remote host closed the connection) |
2021-01-12 05:51:13 +0100 | xff0x | (~xff0x@2001:1a81:5220:500:dba:8115:2558:810b) (Ping timeout: 260 seconds) |
2021-01-12 05:51:39 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-12 05:52:11 +0100 | xff0x | (~xff0x@2001:1a81:5220:500:b2be:2371:a702:1834) |
2021-01-12 05:52:20 +0100 | christo | (~chris@81.96.113.213) |
2021-01-12 05:54:19 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) |
2021-01-12 05:54:45 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-01-12 05:55:58 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 05:56:46 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
2021-01-12 05:59:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 05:59:59 +0100 | inkbottle | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-12 06:01:09 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2021-01-12 06:04:04 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds) |
2021-01-12 06:05:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2021-01-12 06:05:49 +0100 | glguy | (x@freenode/staff/haskell.developer.glguy) (Quit: Quit) |
2021-01-12 06:06:49 +0100 | glguy | (x@freenode/staff/haskell.developer.glguy) |
2021-01-12 06:10:26 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 06:10:50 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-12 06:10:50 +0100 | <hyiltiz> | Not necessarily directly relevant to haskell, but I think I'd get answers I am looking for here. A tutoring company asked me to write them a website that allows studetns to take GMAT practice exams. They can provide the GMAT question pool but nothing else. How much should they pay (New York)? |
2021-01-12 06:14:25 +0100 | Tario | (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
2021-01-12 06:15:09 +0100 | eacameron | (uid256985@gateway/web/irccloud.com/x-ccigqlpvwahmrvhs) (Quit: Connection closed for inactivity) |
2021-01-12 06:15:17 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-12 06:17:27 +0100 | pmxb0t | (~pmxb0t@185.204.1.185) (Remote host closed the connection) |
2021-01-12 06:19:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-01-12 06:21:29 +0100 | <maerwald> | pay? |
2021-01-12 06:21:48 +0100 | Tops21 | (~Tobias@dyndsl-095-033-022-123.ewe-ip-backbone.de) |
2021-01-12 06:24:13 +0100 | Tops2 | (~Tobias@dyndsl-091-249-083-248.ewe-ip-backbone.de) (Ping timeout: 264 seconds) |
2021-01-12 06:25:40 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007) |
2021-01-12 06:26:10 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2021-01-12 06:26:14 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-12 06:26:16 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-01-12 06:27:32 +0100 | Welkin | (~Welkin@216.243.35.47) (Quit: leaving) |
2021-01-12 06:28:39 +0100 | xff0x | (~xff0x@2001:1a81:5220:500:b2be:2371:a702:1834) (Ping timeout: 272 seconds) |
2021-01-12 06:29:24 +0100 | xff0x | (~xff0x@2001:1a81:5220:500:b1ba:36b1:fd0d:1ab4) |
2021-01-12 06:32:23 +0100 | TheCavalry | (~TheCavalr@139.28.218.148) |
2021-01-12 06:33:51 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 06:39:48 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 06:42:00 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 06:46:19 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-01-12 06:49:59 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-12 06:51:50 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-12 06:52:02 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-12 06:54:26 +0100 | <edwardk> | clearly you are supposed to do it for free, for the exposure. |
2021-01-12 06:54:43 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-01-12 06:56:25 +0100 | <ukari> | https://gist.github.com/ukari/5dbbd51bc4e82317c9e625293f0ed5c8 |
2021-01-12 06:56:26 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-01-12 06:56:47 +0100 | <edwardk> | hyiltiz: anyways, my answer is i'd walk away. they don't know what they need. probably don't have an existing web presence to build on, or way for users to log in and pay for the experience, a realistic quote will cause them to choke or will leave you strung out trying to meet an impossible shifting set of goal-posts. |
2021-01-12 06:57:48 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 06:57:57 +0100 | <edwardk> | ukari: you probably want a ' before the first undefined in nil' |
2021-01-12 06:58:42 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Remote host closed the connection) |
2021-01-12 06:59:01 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) (Ping timeout: 264 seconds) |
2021-01-12 06:59:26 +0100 | <ukari> | I make two functions nil, nil' :: a -> Q Exp, nil is a QuasiQuotes version of nil'. But I run `runQ $ nil 1` it works, run `runQ $ nil' 1` it occurs a runtime error |
2021-01-12 06:59:28 +0100 | <edwardk> | hyiltiz: the only way both parties wind up happy in this arrangement is if you set up a decent set of expectations, get someone to negotiate a contract with an appropriate kill fee to avoid you getting setup to do a ton of effort for no return and do it as time and materials (and have prior experience dealing with clients to manage the relationship) which from the phrasing of your question, i don't think you do. |
2021-01-12 06:59:40 +0100 | <hyiltiz> | maerwald edwardk: they are either trying to use me as cheap labor or don't know what they are doing; they did offer $5k but I don't think building and maintaining a new fullly blown web app is way beyond $5k |
2021-01-12 06:59:53 +0100 | <edwardk> | hyiltiz: run away |
2021-01-12 07:00:24 +0100 | <edwardk> | 5k won't match the kill for for early termination for doing contract work, let alone the cost of doing the actual job. |
2021-01-12 07:00:50 +0100 | <edwardk> | its small enough its not worth the negotiation and large enough to hang you out to dry indefinitely |
2021-01-12 07:01:19 +0100 | <maerwald> | I'd just make a bold counteroffer to see the reaction |
2021-01-12 07:01:47 +0100 | <hyiltiz> | Yeah I told them they can hire a real software developer company or a full-stack web dev freelancer. |
2021-01-12 07:01:50 +0100 | <edwardk> | i wouldn't even do that. the time spent talking to them costs you as well, and if they are floating something that low from the get go there's no respect |
2021-01-12 07:02:09 +0100 | <ukari> | edwardk, I add a ' in nil' but it occurs the new error "SigE (VarE GHC.Err.undefined) (VarT *** Exception: Prelude.undefined" |
2021-01-12 07:02:20 +0100 | <edwardk> | ukari: i meant 'undefined |
2021-01-12 07:02:29 +0100 | <hyiltiz> | If they really want to hire someone like that and is willing to pay me as that someone, maybe I could consider; though not sure how much should I/anyone should even expect though. |
2021-01-12 07:02:34 +0100 | <hyiltiz> | kinda my first gig |
2021-01-12 07:02:34 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
2021-01-12 07:02:41 +0100 | <edwardk> | you also have to fix the varT, but thats step two |
2021-01-12 07:02:43 +0100 | <ukari> | nil' _ = sigE (varE 'Err.undefined) (varT (undefined::a)) |
2021-01-12 07:02:49 +0100 | <edwardk> | hyiltiz: this is a bad gig |
2021-01-12 07:03:19 +0100 | <hyiltiz> | yeah as I said not gonna take it unless it is worth it but not sure what is minimum for it to be worth it |
2021-01-12 07:03:38 +0100 | <edwardk> | ukari: sigE (varE 'undefined) (varT (mkName "a")) |
2021-01-12 07:04:10 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2021-01-12 07:04:20 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) |
2021-01-12 07:04:24 +0100 | <edwardk> | hyiltiz: given a typical ask for something that requires basic design is hitting $20k before you hit having some complicated login system, and having the form, and having to figure out how to format a gajillion GMAT questions to fit the web? |
2021-01-12 07:05:32 +0100 | <hyiltiz> | yeah I thought they'd pay a freelancer or a dev company at the cheapest least $20k just to throw a early prototype out |
2021-01-12 07:05:35 +0100 | <ukari> | edwardk, why this works? does mkName could capture a type variable 'a' in the signature? |
2021-01-12 07:05:37 +0100 | <edwardk> | and then dealing with them because it won't be a toss it over the fence affair? A "realistic" model would be to price it at 6months work in time and materials, but because they don't have a realistic model of how pricing works, the whole thing is toxic |
2021-01-12 07:05:51 +0100 | <hyiltiz> | I dont think they'd want to go up from $5k to $20k tho |
2021-01-12 07:06:03 +0100 | <edwardk> | ukari: 'undefined makes the name undefined that references whatever undefined is currently in scope |
2021-01-12 07:06:12 +0100 | <hyiltiz> | and yes u r right; there is either no respect or they don't know what they are asking |
2021-01-12 07:06:18 +0100 | <edwardk> | hyiltiz: 20k doesn't get you a form, let alone a big GMAT test site |
2021-01-12 07:06:33 +0100 | <ukari> | thank you, edwardk |
2021-01-12 07:06:33 +0100 | <edwardk> | they are off over an order of magnitude from day 1. its a bad sign |
2021-01-12 07:07:22 +0100 | <hyiltiz> | Yeah; this gig was from a friend of a friend who knew I was working on a prototype like this based on python but the web |
2021-01-12 07:07:43 +0100 | <edwardk> | sigE foo bar expands to something like (foo :: bar) varE here is the variable expression. which we want to expand to reference the undefined that is in scope. on the other hand we want the bar to expand to just "some name that is syntactically 'a' that has no special significance" hence why i used mkName there. |
2021-01-12 07:08:02 +0100 | <edwardk> | this is a recipe for losing a friend of a friend and probably a friend ;) |
2021-01-12 07:08:09 +0100 | nikozas | (uid482085@gateway/web/irccloud.com/x-imtxkdrjsszxrrgt) |
2021-01-12 07:08:11 +0100 | <hyiltiz> | yeah i should just avoid thx |
2021-01-12 07:08:14 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-12 07:09:19 +0100 | <edwardk> | my realistic estimate would be something like $60k for a thing where the developer might even be able to walk out of this with their shirt intact. if i had to do it without time and materials i'd pad that out more, and i'd honestly dig up a lawyer because shit is going to go wrong with that kind of deal. |
2021-01-12 07:09:49 +0100 | <edwardk> | the only real way to fix it is to get paid by the hour as an actual employee, then they can see what is being done as its being done and any moving goalposts just costs them more hours |
2021-01-12 07:10:06 +0100 | <edwardk> | they don't get the insulation of having you contracted to do a fixed task, but you aren't hung out to dry either. |
2021-01-12 07:10:38 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-12 07:10:47 +0100 | <edwardk> | and all of that is ignoring the fact that you said "New York" so everything probably realistically balloons even further in. just a bad bet |
2021-01-12 07:10:47 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 07:11:18 +0100 | <edwardk> | should definitely move this off channel though |
2021-01-12 07:13:58 +0100 | ransom | (~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 07:15:48 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 260 seconds) |
2021-01-12 07:16:45 +0100 | TheCavalry | (~TheCavalr@139.28.218.148) (Remote host closed the connection) |
2021-01-12 07:20:39 +0100 | <hyiltiz> | yeah thx for the valuable advice; I get you. If you have more tips, we can go haskell-offtopic |
2021-01-12 07:23:38 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 07:28:09 +0100 | <Squarism> | theres no trick to declare that type A will get an instance of C up the compiler dependency tree =D |
2021-01-12 07:28:14 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-12 07:36:22 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 246 seconds) |
2021-01-12 07:39:36 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 240 seconds) |
2021-01-12 07:39:55 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) |
2021-01-12 07:41:48 +0100 | jespada | (~jespada@90.254.245.49) |
2021-01-12 07:42:03 +0100 | Grim4d | (42879b5a@66.135.155.90) |
2021-01-12 07:42:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 07:46:12 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
2021-01-12 07:47:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-01-12 07:48:25 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 07:50:25 +0100 | Grim4d | (42879b5a@66.135.155.90) (Quit: Connection closed) |
2021-01-12 07:52:25 +0100 | phasespace | (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 264 seconds) |
2021-01-12 07:53:08 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 260 seconds) |
2021-01-12 07:55:47 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) (Ping timeout: 256 seconds) |
2021-01-12 07:56:52 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 07:57:21 +0100 | adwin | (~adwin@os3-384-25380.vs.sakura.ne.jp) |
2021-01-12 07:58:11 +0100 | adwin | (~adwin@os3-384-25380.vs.sakura.ne.jp) (Client Quit) |
2021-01-12 07:58:41 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2021-01-12 07:59:48 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) |
2021-01-12 08:01:36 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-01-12 08:06:10 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-12 08:08:36 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0) |
2021-01-12 08:09:11 +0100 | nyaomin | (~naomi@cpe-74-75-6-125.maine.res.rr.com) |
2021-01-12 08:09:40 +0100 | nyaomi | (~naomi@2603-7080-c43e-59ad-c878-29ff-fedf-ce89.res6.spectrum.com) (Ping timeout: 268 seconds) |
2021-01-12 08:12:06 +0100 | knupfer | (~Thunderbi@200116b82c27b7003ce18a741a86a926.dip.versatel-1u1.de) |
2021-01-12 08:13:11 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 08:13:55 +0100 | phasespace | (~sar@80-89-47-117.inet.signal.no) |
2021-01-12 08:16:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 08:17:18 +0100 | christo | (~chris@81.96.113.213) |
2021-01-12 08:17:36 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-01-12 08:17:56 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2021-01-12 08:18:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-12 08:19:43 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
2021-01-12 08:25:14 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:18d1:c1a9:13be:6f9e) (Ping timeout: 264 seconds) |
2021-01-12 08:27:15 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) |
2021-01-12 08:32:06 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 08:32:24 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-12 08:34:34 +0100 | haritz | (~hrtz@unaffiliated/haritz) (Ping timeout: 260 seconds) |
2021-01-12 08:36:02 +0100 | haritz | (~hrtz@62.3.70.206) |
2021-01-12 08:36:02 +0100 | haritz | (~hrtz@62.3.70.206) (Changing host) |
2021-01-12 08:36:02 +0100 | haritz | (~hrtz@unaffiliated/haritz) |
2021-01-12 08:37:39 +0100 | <Squarism> | oh, you could add constraint to instances to accomplish "pre declared instances" |
2021-01-12 08:48:47 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-yjigqeaqwzhgddjd) (Quit: Connection closed for inactivity) |
2021-01-12 08:50:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-12 08:51:48 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) |
2021-01-12 08:54:55 +0100 | nineonine | (~nineonine@50.216.62.2) (Remote host closed the connection) |
2021-01-12 08:55:36 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-01-12 08:58:34 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 09:00:42 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) |
2021-01-12 09:01:13 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-12 09:02:49 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
2021-01-12 09:05:16 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 240 seconds) |
2021-01-12 09:05:33 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-01-12 09:07:33 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:d43a:b21:28bf:441a) |
2021-01-12 09:07:33 +0100 | guest111` | (~user@49.5.6.87) (Read error: Connection reset by peer) |
2021-01-12 09:07:44 +0100 | guest111` | (~user@49.5.6.87) |
2021-01-12 09:09:15 +0100 | <dminuoso> | Mmm, is there something like monad-logger but polymorphic over logstrings? I'd really like something where I can feed prettyprinter `Doc T` as logstrings |
2021-01-12 09:12:03 +0100 | <dminuoso> | (Such that I can move layouting/rendering to one or multiple logger backends) |
2021-01-12 09:17:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 09:21:08 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Quit: WeeChat 3.0) |
2021-01-12 09:21:08 +0100 | knupfer | (~Thunderbi@200116b82c27b7003ce18a741a86a926.dip.versatel-1u1.de) (Quit: knupfer) |
2021-01-12 09:21:17 +0100 | knupfer | (~Thunderbi@200116b82c27b7001413b21f98fb9610.dip.versatel-1u1.de) |
2021-01-12 09:21:40 +0100 | knupfer | (~Thunderbi@200116b82c27b7001413b21f98fb9610.dip.versatel-1u1.de) (Client Quit) |
2021-01-12 09:21:48 +0100 | knupfer | (~Thunderbi@200116b82c27b70054a7594c04f8dbe7.dip.versatel-1u1.de) |
2021-01-12 09:21:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-01-12 09:27:03 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:e8e1:98ae:f4d8:7ab5) (Ping timeout: 260 seconds) |
2021-01-12 09:27:53 +0100 | nineonin_ | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-12 09:30:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 09:31:10 +0100 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 272 seconds) |
2021-01-12 09:33:49 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) (Ping timeout: 256 seconds) |
2021-01-12 09:34:31 +0100 | Sgeo_ | (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
2021-01-12 09:35:29 +0100 | wqsz7xn | (~wqsz7xn@125-237-49-103-fibre.sparkbb.co.nz) |
2021-01-12 09:37:26 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
2021-01-12 09:38:29 +0100 | <wqsz7xn> | Hi, just wondering on this "Inside IO" article if there is a mistake here? http://wiki.haskell.org/IO_inside . Particularly for the first definition of bind in the article. They define bine to use `k` but it seems to be using `f` |
2021-01-12 09:38:44 +0100 | <wqsz7xn> | *bind |
2021-01-12 09:38:50 +0100 | cgfbee | (~bot@oc1.itim-cj.ro) |
2021-01-12 09:39:22 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:831f:8b96:1f06:89e1) |
2021-01-12 09:41:04 +0100 | <opqdonut> | wqsz7xn: yes f should be k |
2021-01-12 09:41:14 +0100 | <wqsz7xn> | sweet, thanks |
2021-01-12 09:41:39 +0100 | <wqsz7xn> | I never know how 'official' any of these resources are. I think I'll try stick to books |
2021-01-12 09:41:51 +0100 | <opqdonut> | yeah that doesn't look like a particularly good monad tutorial |
2021-01-12 09:41:56 +0100 | <wqsz7xn> | but there seem to be some gems like this one |
2021-01-12 09:42:15 +0100 | <wqsz7xn> | I'm trying to understand IO properly |
2021-01-12 09:42:27 +0100 | <wqsz7xn> | Or rather what makes it tick |
2021-01-12 09:50:45 +0100 | bitmagie | (~Thunderbi@200116b806a1c10055a47f026e696a4a.dip.versatel-1u1.de) |
2021-01-12 09:54:29 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 09:55:28 +0100 | juri_ | (~juri@79.140.122.154) |
2021-01-12 09:56:58 +0100 | m4lvin | (~m4lvin@w4eg.de) (Quit: m4lvin) |
2021-01-12 09:57:15 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-12 09:57:21 +0100 | m4lvin | (~m4lvin@w4eg.de) |
2021-01-12 09:57:44 +0100 | turion | (~turion@2a02:810d:8abf:c4a8:d43a:b21:28bf:441a) (Quit: Leaving.) |
2021-01-12 09:57:58 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 09:58:19 +0100 | tabemann | (~travisb@2600:1700:7990:24e0:d38d:9905:5d15:b54) (Remote host closed the connection) |
2021-01-12 09:59:11 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:ad29:eab5:ee86:fb58) (Remote host closed the connection) |
2021-01-12 10:01:43 +0100 | fendor | (~fendor@77.119.128.187.wireless.dyn.drei.com) |
2021-01-12 10:05:33 +0100 | nrh^ | (~hph@ip98-184-89-2.mc.at.cox.net) () |
2021-01-12 10:07:09 +0100 | xff0x | (~xff0x@2001:1a81:5220:500:b1ba:36b1:fd0d:1ab4) (Ping timeout: 272 seconds) |
2021-01-12 10:07:38 +0100 | xff0x | (~xff0x@2001:1a81:5220:500:fff1:399c:a2f4:dff6) |
2021-01-12 10:08:13 +0100 | banner | (~banner@116-255-17-174.ip4.superloop.com) |
2021-01-12 10:08:13 +0100 | banner | (~banner@116-255-17-174.ip4.superloop.com) (Client Quit) |
2021-01-12 10:09:56 +0100 | juri__ | (~juri@178.63.35.222) |
2021-01-12 10:11:25 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 10:12:56 +0100 | juri_ | (~juri@79.140.122.154) (Ping timeout: 240 seconds) |
2021-01-12 10:17:13 +0100 | <merijn> | wqsz7xn: "understanding" (as in using effectively) and "how it *actually* works" are two fairly orthogonal goals |
2021-01-12 10:17:49 +0100 | <merijn> | And I'd highly recommend doing the first one *first* and *then* moving onto the implementation later (optionally *much* later) |
2021-01-12 10:19:56 +0100 | bitmagie | (~Thunderbi@200116b806a1c10055a47f026e696a4a.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-01-12 10:20:31 +0100 | <wqsz7xn> | thanks. book I'm going though goes into enough depth and covers some exercises so I should be set |
2021-01-12 10:20:35 +0100 | tsrt^ | (~hph@ip98-184-89-2.mc.at.cox.net) |
2021-01-12 10:21:13 +0100 | <ski> | you've already covered monads ? |
2021-01-12 10:22:23 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds) |
2021-01-12 10:22:32 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) |
2021-01-12 10:22:32 +0100 | juri__ | (~juri@178.63.35.222) (Ping timeout: 256 seconds) |
2021-01-12 10:22:46 +0100 | <merijn> | wqsz7xn: Two relevant (and good) blog posts about IO are: https://blog.jle.im/entry/the-compromiseless-reconciliation-of-i-o-and-purity.html and https://blog.jle.im/entry/io-monad-considered-harmful.html |
2021-01-12 10:23:04 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds) |
2021-01-12 10:23:24 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2021-01-12 10:23:24 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
2021-01-12 10:23:37 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-01-12 10:23:43 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds) |
2021-01-12 10:23:48 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-12 10:26:16 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 10:29:51 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2021-01-12 10:31:13 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 260 seconds) |
2021-01-12 10:34:41 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-12 10:39:34 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 272 seconds) |
2021-01-12 10:41:13 +0100 | <Profpatsch> | I have a record constructor Foo { a, b, c, … } and a bunch of functions that create Foo, but always set a and b to the same value. |
2021-01-12 10:41:54 +0100 | <Profpatsch> | What’s the best way to have some ad-hoc record polymorphism? I tried defaultFoo = Foo { a = …, b = … } but of course then you get a warning that the record isn’t fully initialized |
2021-01-12 10:42:12 +0100 | <Profpatsch> | Maybe turn off the warning for the one function? |
2021-01-12 10:43:01 +0100 | <Profpatsch> | I mean I guess I could have an ad-hoc extra data that has all fields but the ones I default to. |
2021-01-12 10:49:22 +0100 | <ephemient> | fooWithDefaults c ... = Foo { a = defaultA, b = defaultB, c = c, ... } -- maybe, depending on your usage |
2021-01-12 10:49:24 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Read error: Connection reset by peer) |
2021-01-12 10:49:25 +0100 | juri_ | (~juri@178.63.35.222) |
2021-01-12 10:49:35 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-12 10:49:51 +0100 | <ephemient> | I don't know if there's a great solution to this, though |
2021-01-12 10:51:08 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 10:51:15 +0100 | kuribas | (~user@ptr-25vy0iaexs88rik0imq.18120a2.ip6.access.telenet.be) |
2021-01-12 10:53:21 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-12 10:54:46 +0100 | <Profpatsch> | ephemient: yeah, I don’t think there is |
2021-01-12 10:55:00 +0100 | <Profpatsch> | Now I’m running into DuplicateRecordLabel ambiguity issues … |
2021-01-12 10:55:50 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-12 10:56:03 +0100 | locrian9 | (~mike@99-153-255-194.lightspeed.irvnca.sbcglobal.net) |
2021-01-12 10:57:24 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds) |
2021-01-12 10:57:30 +0100 | Wuzzy | (~Wuzzy@p5790e691.dip0.t-ipconnect.de) |
2021-01-12 10:59:19 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 10:59:33 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) |
2021-01-12 11:00:29 +0100 | borne | (~fritjof@200116b86411c700aa0a83b5acfe977f.dip.versatel-1u1.de) |
2021-01-12 11:01:52 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2021-01-12 11:03:34 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
2021-01-12 11:03:50 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
2021-01-12 11:04:14 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) (Ping timeout: 264 seconds) |
2021-01-12 11:04:25 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 11:05:13 +0100 | bitmagie | (~Thunderbi@200116b806a1c10055a47f026e696a4a.dip.versatel-1u1.de) |
2021-01-12 11:05:16 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Ping timeout: 256 seconds) |
2021-01-12 11:06:49 +0100 | ddere | (uid110888@gateway/web/irccloud.com/x-qihpsouqwjjvfzge) (Quit: Connection closed for inactivity) |
2021-01-12 11:06:49 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Excess Flood) |
2021-01-12 11:07:41 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-01-12 11:08:22 +0100 | <dminuoso> | Profpatsch: Is moving a and b into a sum type an option perhaps? |
2021-01-12 11:08:31 +0100 | <dminuoso> | Oh, product type of course. |
2021-01-12 11:09:01 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 256 seconds) |
2021-01-12 11:10:27 +0100 | xsperry | (~as@unaffiliated/xsperry) |
2021-01-12 11:10:29 +0100 | wqsz7xn | (~wqsz7xn@125-237-49-103-fibre.sparkbb.co.nz) (Remote host closed the connection) |
2021-01-12 11:10:38 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-12 11:13:38 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-01-12 11:14:45 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-12 11:14:58 +0100 | <kuribas> | Profpatsch: when I have DuplicateRecordLabels on, I usually use NamedFieldPuns or RecordWildCards to get and set the fields. |
2021-01-12 11:15:52 +0100 | <kuribas> | lenses are also possible of course |
2021-01-12 11:16:03 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 11:16:28 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-12 11:16:35 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-lyrlgqqxxqbznztz) (Quit: Connection closed for inactivity) |
2021-01-12 11:17:28 +0100 | <Profpatsch> | kuribas: yes, I did that in the end |
2021-01-12 11:17:46 +0100 | <Profpatsch> | mostly works, apart from some places where the field selectors need type annotations |
2021-01-12 11:18:12 +0100 | <kuribas> | why do you need type annotations with NamedFieldPuns? |
2021-01-12 11:19:28 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Ping timeout: 272 seconds) |
2021-01-12 11:19:54 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) |
2021-01-12 11:21:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-12 11:23:32 +0100 | knupfer | (~Thunderbi@200116b82c27b70054a7594c04f8dbe7.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-01-12 11:23:40 +0100 | knupfer | (~Thunderbi@200116b82c27b70061a216d5084abddd.dip.versatel-1u1.de) |
2021-01-12 11:23:53 +0100 | ArsenArsen | (~Arsen@fsf/member/ArsenArsen) (Ping timeout: 265 seconds) |
2021-01-12 11:23:58 +0100 | <ephemient> | it's because of DuplicateRecordLabel, not NamedFieldPuns |
2021-01-12 11:24:03 +0100 | <kuribas> | Brrr, it's cold... Must be the FP winter approaching! |
2021-01-12 11:24:21 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-12 11:25:13 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e7426836b2ca9660f737.dip0.t-ipconnect.de) |
2021-01-12 11:25:29 +0100 | jmchael | (~jmchael@87.112.235.234) |
2021-01-12 11:26:36 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Remote host closed the connection) |
2021-01-12 11:27:41 +0100 | Gurkenglas_ | (~Gurkengla@unaffiliated/gurkenglas) |
2021-01-12 11:28:23 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2021-01-12 11:28:51 +0100 | bitmagie | (~Thunderbi@200116b806a1c10055a47f026e696a4a.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-01-12 11:30:35 +0100 | thc202 | (~thc202@unaffiliated/thc202) |
2021-01-12 11:31:55 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-01-12 11:32:34 +0100 | ulidtko|kk | (~ulidtko@194.54.80.38) |
2021-01-12 11:33:01 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-12 11:33:27 +0100 | sigmacool[m] | (sigmacoolm@gateway/shell/matrix.org/x-fywwkproowrcadql) |
2021-01-12 11:35:18 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Ping timeout: 272 seconds) |
2021-01-12 11:36:28 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2021-01-12 11:37:49 +0100 | <wz1000> | Profpatsch: I once hacked up a very "interesting" "solution" to something like this based on Generics and unsafeCoerce |
2021-01-12 11:38:34 +0100 | <wz1000> | In my case, there was a massive record type which took a type paramater, and depending on the type parameter, most of the fields would be a default value |
2021-01-12 11:38:47 +0100 | <wz1000> | s/default value/unit type |
2021-01-12 11:39:02 +0100 | <sigmacool[m]> | Hi is this the right place to ask beginner question about haskell |
2021-01-12 11:39:05 +0100 | <sigmacool[m]> | * Hi is this the right place to ask beginner question about haskell? |
2021-01-12 11:39:33 +0100 | <wz1000> | So I wrote a function that would take the record constructor, and supply default arguments for each of the unit fields |
2021-01-12 11:39:40 +0100 | <ski> | sigmacool[m] : yes, here is fine |
2021-01-12 11:40:36 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 240 seconds) |
2021-01-12 11:41:04 +0100 | sigmacool[m] | sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/jyqritNMDynBOZYnoQTHennU/message.txt > |
2021-01-12 11:43:38 +0100 | <kuribas> | sigmacool[m]: you can write a loop using tail recursion |
2021-01-12 11:43:40 +0100 | <ski> | i think usually you're not supposed to be comparing floating-point values for equality |
2021-01-12 11:44:42 +0100 | <ski> | is `Dir' an `enum' type having two values ? |
2021-01-12 11:44:56 +0100 | <sigmacool[m]> | data Dir = R | L |
2021-01-12 11:44:57 +0100 | <ski> | why're you dividing `cursor' by ten ? |
2021-01-12 11:45:17 +0100 | <ski> | wouldn't the idea be to get closer to `l', rather than closer to zero ? |
2021-01-12 11:45:18 +0100 | <sigmacool[m]> | I'm abusing the rounding logic of float to figure the limit |
2021-01-12 11:45:59 +0100 | <ski> | i think it's quite possible that you'll never terminate, if you check for exact equality |
2021-01-12 11:46:07 +0100 | sigmacool[m] | sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/toeIlZwAmVCBDQPNDKqPGoNC/message.txt > |
2021-01-12 11:46:26 +0100 | <sigmacool[m]> | obviously I'm not sure if this is sound, it just what I came up with |
2021-01-12 11:46:29 +0100 | <ski> | what if `f(x)' is `y', and `f(y)' is `x', where `x' and `y' are almost exactly equal ? |
2021-01-12 11:46:54 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) () |
2021-01-12 11:47:13 +0100 | <ski> | ok, so you tested it with `l' being zero, and didn't notice the bug therefore |
2021-01-12 11:48:28 +0100 | <ski> | anyway, it would be pretty easy to translate your code to Haskell (e.g. like kuribas said) .. |
2021-01-12 11:48:59 +0100 | <sigmacool[m]> | Thats where I'm stuck xD |
2021-01-12 11:49:01 +0100 | <ski> | .. however, i'm not so sure it's a generally good idea to try to learn a language, by attempting to translate code from another language into it |
2021-01-12 11:49:27 +0100 | <ski> | how about starting by learning the basics of the language, without thinking of translation ? |
2021-01-12 11:49:28 +0100 | <ephemient> | somebody wrote a `converge` function in this room a couple days ago IIRC. but it's pretty easy to write by hand |
2021-01-12 11:49:37 +0100 | <kuribas> | it's also a good idea to implement something that you know works. |
2021-01-12 11:49:53 +0100 | <ephemient> | that being said, doing this on floating point is somewhat questionable |
2021-01-12 11:50:31 +0100 | <ephemient> | it may be more interesting to try implementing https://en.wikipedia.org/wiki/Automatic_differentiation in Haskell, if you're up for it |
2021-01-12 11:50:51 +0100 | <sigmacool[m]> | I read a couple of haskell book years earlier, I just want to remember some basics |
2021-01-12 11:51:22 +0100 | <sigmacool[m]> | like is the a haskell by example book (like rust one if you know of it) |
2021-01-12 11:51:44 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds) |
2021-01-12 11:51:56 +0100 | <ski> | @type until |
2021-01-12 11:51:58 +0100 | <lambdabot> | (a -> Bool) -> (a -> a) -> a -> a |
2021-01-12 11:52:02 +0100 | <sigmacool[m]> | I like the syntax a lot thats what I'm intereted in currently, y x = 2x is really nice |
2021-01-12 11:52:13 +0100 | <ski> | is also a looping combinator that could probably be used |
2021-01-12 11:53:07 +0100 | plutoniix | (~q@184.82.192.193) (Quit: Leaving) |
2021-01-12 11:53:39 +0100 | <ski> | well, Haskell doesn't use that syntax, quite |
2021-01-12 11:53:51 +0100 | <kuribas> | sigmacool[m]: except that doesn't work :-P |
2021-01-12 11:53:52 +0100 | <ski> | it uses an explicit multiplication sign |
2021-01-12 11:54:09 +0100 | <sigmacool[m]> | ah yes xD I get the error each time |
2021-01-12 11:54:10 +0100 | <sigmacool[m]> | then rembere |
2021-01-12 11:54:13 +0100 | <sigmacool[m]> | * then rember |
2021-01-12 11:54:18 +0100 | <sigmacool[m]> | * then remeber |
2021-01-12 11:54:27 +0100 | <kuribas> | one more |
2021-01-12 11:54:28 +0100 | <ski> | > let y x = 2x in y 2 |
2021-01-12 11:54:30 +0100 | <lambdabot> | 2 |
2021-01-12 11:54:57 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-12 11:55:01 +0100 | <sigmacool[m]> | what is this magic |
2021-01-12 11:55:06 +0100 | <sigmacool[m]> | doesnt work in ghci |
2021-01-12 11:55:23 +0100 | <ski> | > 2 3 4 |
2021-01-12 11:55:25 +0100 | <lambdabot> | 2 |
2021-01-12 11:55:43 +0100 | <sigmacool[m]> | > let y x = 2x in y |
2021-01-12 11:55:45 +0100 | <lambdabot> | error: |
2021-01-12 11:55:45 +0100 | <lambdabot> | • No instance for (Typeable t0) |
2021-01-12 11:55:45 +0100 | <lambdabot> | arising from a use of ‘show_M39766163928361039658’ |
2021-01-12 11:55:47 +0100 | <ephemient> | I suppose you could define `instance Num a => Num (a -> a) where fromInteger = (*) . fromInteger` and then `2 x` would work |
2021-01-12 11:55:51 +0100 | <ephemient> | that would be pretty evil though |
2021-01-12 11:55:51 +0100 | <ski> | "magic" numeric instance for functions |
2021-01-12 11:56:12 +0100 | <sigmacool[m]> | How do I write multiline function in ghci btw |
2021-01-12 11:56:33 +0100 | <sigmacool[m]> | limit f l dir = |multiline here |
2021-01-12 11:56:47 +0100 | <ephemient> | start multiline mode with :{ alone, end multiline with :} |
2021-01-12 11:56:48 +0100 | <ski> | (a) put the defining equations (with type signature, if you include it), in a single command, separated by `;'s |
2021-01-12 11:56:54 +0100 | <ski> | or (b), what ephemient said |
2021-01-12 11:57:15 +0100 | <ski> | but usually best is to define them in your source file |
2021-01-12 11:57:37 +0100 | <sigmacool[m]> | this repl programming is really nice though |
2021-01-12 11:57:43 +0100 | nly | (~user@unaffiliated/nly) |
2021-01-12 11:57:51 +0100 | <ski> | not really that nice |
2021-01-12 11:57:54 +0100 | <ephemient> | semicolons work, but if you end up with nested let/where etc. you need to understand the syntactic rules |
2021-01-12 11:58:05 +0100 | <nly> | once you get IO somthing are you stuck with IO ... ? |
2021-01-12 11:58:11 +0100 | <ski> | yes |
2021-01-12 11:58:14 +0100 | <nly> | ah ok |
2021-01-12 11:58:42 +0100 | <ephemient> | it is also easy to write a *.hs file and use `:load file.hs` to get it into ghci, and `:reload` to ... reload |
2021-01-12 11:58:53 +0100 | <ephemient> | `:l` and `:r` shorthand also available |
2021-01-12 11:59:22 +0100 | TMA | (tma@twin.jikos.cz) (Ping timeout: 272 seconds) |
2021-01-12 12:00:00 +0100 | <sigmacool[m]> | ok thanks anyway I guess I'm a level under beginner currently xD I need to fix that first I geuss |
2021-01-12 12:00:14 +0100 | <sigmacool[m]> | Is there an equivalant to the rust book? |
2021-01-12 12:00:15 +0100 | <ski> | sigmacool[m] : anyway, if i wanted to translate that `limit' to Haskell, i'd define a helper function (e.g. called `loop'), taking `cursor' and `f_val' as parameters |
2021-01-12 12:00:29 +0100 | <ski> | there are several Haskell books |
2021-01-12 12:01:11 +0100 | ski | doesn't know about "the rust book", doesn't know what it covers, what its style is, &c. |
2021-01-12 12:01:26 +0100 | bitmagie | (~Thunderbi@200116b806a1c10055a47f026e696a4a.dip.versatel-1u1.de) |
2021-01-12 12:01:34 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) |
2021-01-12 12:01:41 +0100 | <sigmacool[m]> | ah what I mean if a beignner comes to rust there is unified answer, read the rust book |
2021-01-12 12:01:49 +0100 | <sigmacool[m]> | * ah what I mean if a beginner comes to rust there is unified answer, read the rust book |
2021-01-12 12:02:16 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 12:02:22 +0100 | <ephemient> | the Haskell report is canonical (but probably not good for beginners) |
2021-01-12 12:02:23 +0100 | <ski> | (why do you repeat the same message, with ` * ' placed in front of it ? you already did this, once before) |
2021-01-12 12:02:26 +0100 | <ephemient> | Rust doesn't have an equivalent |
2021-01-12 12:02:35 +0100 | <ephemient> | Matrix / IRC interaction is bad |
2021-01-12 12:02:56 +0100 | <ski> | @where PIH |
2021-01-12 12:02:57 +0100 | <lambdabot> | "Programming in Haskell" by Graham Hutton in 2007-01-15,2016-09-01 at <http://www.cs.nott.ac.uk/~pszgmh/pih.html> |
2021-01-12 12:03:06 +0100 | <ski> | is liked/suggested by some |
2021-01-12 12:03:22 +0100 | <sigmacool[m]> | thanks I'll check it out |
2021-01-12 12:03:27 +0100 | <ski> | i learned from "Haskell: The Craft of Functional Programming" by Simon Thompson |
2021-01-12 12:03:46 +0100 | <ski> | @where HPFFP |
2021-01-12 12:03:46 +0100 | <lambdabot> | "Haskell Programming: from first principles - Pure functional programming without fear or frustration" by Chistopher Allen (bitemyapp),Julie Moronuki at <http://haskellbook.com/>,#haskell-beginners |
2021-01-12 12:04:30 +0100 | <ski> | is often suggested it seems. it's quite long, wordy, tries to start from very basics (doesn't assume you know anything about programming). some people like it, some not so much |
2021-01-12 12:04:38 +0100 | <ski> | @where HTAC |
2021-01-12 12:04:38 +0100 | <lambdabot> | "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook> |
2021-01-12 12:04:41 +0100 | <ski> | @where wikibook |
2021-01-12 12:04:41 +0100 | <lambdabot> | http://en.wikibooks.org/wiki/Haskell |
2021-01-12 12:05:06 +0100 | <ephemient> | I learned from the Haskell report and wiki. not the easiest route, maybe only worked due to prior experience with ML, but it worked |
2021-01-12 12:05:44 +0100 | <ski> | yea, if you've already seen one of the MLs (or Miranda or Clean, say), then the report would probably work ok |
2021-01-12 12:06:09 +0100 | <ski> | (same for the "gentle" introduction) |
2021-01-12 12:06:13 +0100 | cstrahan | (sid36118@gateway/web/irccloud.com/x-zgbgvkugvrztuagh) (Ping timeout: 244 seconds) |
2021-01-12 12:06:30 +0100 | darthThorik | (sid39589@gateway/web/irccloud.com/x-tegdxlrjfjitucof) (Ping timeout: 246 seconds) |
2021-01-12 12:06:51 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 272 seconds) |
2021-01-12 12:06:52 +0100 | <sigmacool[m]> | thanks for all the recommendations!, it should be a good starting point so I'll work it out |
2021-01-12 12:06:58 +0100 | darthThorik | (sid39589@gateway/web/irccloud.com/x-dlhuozqdfhpxyasn) |
2021-01-12 12:07:02 +0100 | cstrahan | (sid36118@gateway/web/irccloud.com/x-eoawfxwbhlcltxpm) |
2021-01-12 12:07:12 +0100 | <ski> | oh, and this link has exercises you could try : |
2021-01-12 12:07:16 +0100 | <ski> | @where CIS194 |
2021-01-12 12:07:16 +0100 | <lambdabot> | https://www.seas.upenn.edu/~cis194/spring13/lectures.html |
2021-01-12 12:07:36 +0100 | <ski> | (i think it also has some explanatory material you could check out) |
2021-01-12 12:07:44 +0100 | <ski> | sometimes |
2021-01-12 12:07:48 +0100 | <ski> | @where LYAH |
2021-01-12 12:07:48 +0100 | <lambdabot> | http://www.learnyouahaskell.com/ |
2021-01-12 12:07:51 +0100 | <ski> | is suggested |
2021-01-12 12:08:26 +0100 | <ski> | however, while it does have pretty pictures, it doesn't go that in-depth (has sometimes been likened to a four-hour long trailer), and suffers from the lack of exercises |
2021-01-12 12:08:31 +0100 | <sigmacool[m]> | thats what I read before |
2021-01-12 12:08:40 +0100 | <ski> | you could try looking at it, if you want to, but i'd suggest not using only that |
2021-01-12 12:08:48 +0100 | <sigmacool[m]> | I liked it actually , it was a nice intro to functional world |
2021-01-12 12:09:25 +0100 | <ephemient> | I don't think it's a very good intro |
2021-01-12 12:09:41 +0100 | bitmagie | (~Thunderbi@200116b806a1c10055a47f026e696a4a.dip.versatel-1u1.de) (Quit: bitmagie) |
2021-01-12 12:10:59 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 12:11:05 +0100 | <ephemient> | https://haskellbook.com/ is much longer, but is both deeper and broader than LYAH |
2021-01-12 12:11:15 +0100 | michalz | (~user@185.246.204.78) |
2021-01-12 12:12:02 +0100 | daGrevis | (~daGrevis@unaffiliated/dagrevis) (Remote host closed the connection) |
2021-01-12 12:13:29 +0100 | <sigmacool[m]> | ok appreciated! |
2021-01-12 12:13:30 +0100 | daGrevis | (~daGrevis@unaffiliated/dagrevis) |
2021-01-12 12:15:36 +0100 | nly | (~user@unaffiliated/nly) ("ERC (IRC client for Emacs 27.1)") |
2021-01-12 12:15:53 +0100 | sigmacool[m] | sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/BzhlPlNyiEWAHgMudBUSZKTp/message.txt > |
2021-01-12 12:16:32 +0100 | sigmacool[m] | sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/eULBHdxKcAazjVxTCTfMOKDL/message.txt > |
2021-01-12 12:16:40 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 256 seconds) |
2021-01-12 12:17:01 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 12:17:30 +0100 | <ski> | y dir = if dir == R then True else False -- assuming you put `deriving Eq' after `data Dir = L | R' |
2021-01-12 12:17:37 +0100 | <ski> | of course, that could be simplified to just |
2021-01-12 12:17:45 +0100 | <ski> | y dir = dir == R |
2021-01-12 12:17:53 +0100 | <ephemient> | Matrix lets you, but IRC doesn't support multi-line messages and doesn't support correcting messages so the interop is ugly. could you try not to? |
2021-01-12 12:17:58 +0100 | <ski> | another way to do it, without equality comparision is |
2021-01-12 12:18:05 +0100 | <ski> | y dir = case dir of |
2021-01-12 12:18:10 +0100 | <ski> | R -> True |
2021-01-12 12:18:15 +0100 | <ski> | L -> False |
2021-01-12 12:18:19 +0100 | <ski> | or simply |
2021-01-12 12:18:23 +0100 | <ski> | y R = True |
2021-01-12 12:18:26 +0100 | <ski> | r L = False |
2021-01-12 12:18:36 +0100 | <ski> | (er, should be `y', not `r') |
2021-01-12 12:18:37 +0100 | <sigmacool[m]> | ok I see thanks! |
2021-01-12 12:19:26 +0100 | <ski> | (btw, apparently Matrix again decided to send the same (in this case, long) message again, with ` * ' added in front of it the second time) |
2021-01-12 12:20:07 +0100 | <ephemient> | because sigmacool[m] corrected their message, which means Matrix re-sends the entire thing to IRC |
2021-01-12 12:20:08 +0100 | <ski> | (.. ooh, i see. i think it does that, when you go back and correct some mistake in a previous message) |
2021-01-12 12:20:13 +0100 | <ski> | right |
2021-01-12 12:20:23 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds) |
2021-01-12 12:20:43 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
2021-01-12 12:21:35 +0100 | <sigmacool[m]> | is there some guideline on how to use this chat? (not correct message) or there is no technical issues? |
2021-01-12 12:21:58 +0100 | <ski> | not quite sure what you're asking for |
2021-01-12 12:22:03 +0100 | jb55 | (~jb55@gateway/tor-sasl/jb55) |
2021-01-12 12:22:20 +0100 | <alp> | respectful communications, "don't ask to ask, just ask", things like this, nothing out of the ordinary I suspect |
2021-01-12 12:22:22 +0100 | <ephemient> | https://wiki.haskell.org/IRC_channel + general IRC etiquette |
2021-01-12 12:22:28 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-12 12:22:36 +0100 | <ski> | the general rule in here has been "Be nice, or else.", for many years |
2021-01-12 12:23:32 +0100 | <sigmacool[m]> | yeah not those rules (obviously those are important) but I think that my messages causes issue with irc? |
2021-01-12 12:24:00 +0100 | <ski> | "Don't ask to ask." (and be patient), and "Try to be at least somewhat on-topic, especially if there's on-topic conversation, or if you're asked to." is also good things to keep in mind |
2021-01-12 12:24:37 +0100 | <ephemient> | IRC does not support amending messages. IRC does not support multi-line messages. IRC does not support code formatting. hence, doing any of those things in Matrix looks ugly on the IRC side. it's readable, but ideally avoided |
2021-01-12 12:25:05 +0100 | <sigmacool[m]> | Ok makes sense |
2021-01-12 12:25:45 +0100 | <dminuoso> | sigmacool[m] connects via matrix though |
2021-01-12 12:25:45 +0100 | <ski> | it's quite likely that some people won't bother to check the link that Matrix sends when you do a long message |
2021-01-12 12:27:04 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 12:28:03 +0100 | philopsos | (~caecilius@45.133.192.108) |
2021-01-12 12:29:09 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2021-01-12 12:29:24 +0100 | <ski> | (hm, also i don't completely agree with the description of the principles on the Wiki page. in particular, i'd prefer if people did not award karma points (including to me, of course)) |
2021-01-12 12:30:10 +0100 | nineonin_ | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-12 12:30:19 +0100 | <sigmacool[m]> | I would appreciate if someone tells me how close I am |
2021-01-12 12:30:19 +0100 | <sigmacool[m]> | limit f l dir = let c = if dir == R then l +1 else l -1; let n_v = Nothing; in until x == n_v let x = Maybe(f(c)); return x |
2021-01-12 12:30:37 +0100 | <ephemient> | if you use a paste service or github gist for sharing multi-line code, at least that gives you space to write a message so that people can have some idea of what it is without clicking through. if you use matrix to send it, it hides the entire thing behind a link |
2021-01-12 12:30:47 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-12 12:31:18 +0100 | <ski> | remove middle `let', or put an `in' before it |
2021-01-12 12:31:50 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-12 12:31:51 +0100 | <ski> | `until' takes two functions as arguments |
2021-01-12 12:32:09 +0100 | <ephemient> | function application binds more tightly than you seem to expect there, too |
2021-01-12 12:32:23 +0100 | <ski> | you don't want to use `return' (`return' is not a general keyword for specifying the output value of a function call. `return' is a function) |
2021-01-12 12:32:41 +0100 | <ephemient> | f x + y (for any operator +) always means (f x) + y, not f (x + y) |
2021-01-12 12:32:51 +0100 | <ephemient> | (e.g. == in your code) |
2021-01-12 12:33:20 +0100 | <ski> | you haven't declared the `x' variable |
2021-01-12 12:33:40 +0100 | <ski> | (or rather, not before the `x == n_v' part) |
2021-01-12 12:34:21 +0100 | <ski> | sigmacool[m] : are you familiar with function abstractions / anonymous functions / lambda expressions ? |
2021-01-12 12:34:33 +0100 | <sigmacool[m]> | yes |
2021-01-12 12:34:42 +0100 | <ephemient> | honestly `return` should probably be removed, if not for legacy reasons. it confuses beginners and is supplanted by `pure` |
2021-01-12 12:34:51 +0100 | <ephemient> | *removed from the language |
2021-01-12 12:34:59 +0100 | <sigmacool[m]> | yeah I remembered now |
2021-01-12 12:35:34 +0100 | <ski> | perhaps you want to pass something like `\x -> x == n_v' as first parameter to `until' ? |
2021-01-12 12:35:37 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds) |
2021-01-12 12:36:17 +0100 | ski | thinks the confusion it causes beginners might actually be a plus |
2021-01-12 12:36:32 +0100 | <ephemient> | or declare functions separately, e.g. let isDone x = ...; step x = ...; in until isDone step initial |
2021-01-12 12:36:33 +0100 | <ski> | (encouraging them to let go of comparisions with other languages they might've seen) |
2021-01-12 12:36:53 +0100 | <ski> | yes |
2021-01-12 12:43:57 +0100 | andi- | (~andi-@NixOS/user/andi-) (Ping timeout: 260 seconds) |
2021-01-12 12:44:18 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-12 12:46:25 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-01-12 12:47:21 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) |
2021-01-12 12:48:00 +0100 | <ephemient> | hmm. https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return hasn't been updated in a while |
2021-01-12 12:51:53 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 12:52:45 +0100 | <sigmacool[m]> | map (\x -> 2) x |
2021-01-12 12:52:57 +0100 | <sigmacool[m]> | a fucntion that ignore its argument and assign a value |
2021-01-12 12:53:05 +0100 | <sigmacool[m]> | is that how it looks? |
2021-01-12 12:54:33 +0100 | <lortabac> | sigmacool[m]: there is no assignment in Haskell, maybe you mean "returns a value"? |
2021-01-12 12:55:50 +0100 | <sigmacool[m]> | yes I think |
2021-01-12 12:55:54 +0100 | <sigmacool[m]> | limit f l dir = let c = if dir == R then l +1 else l -1; n_v = Nothing; x = Just 5145641; in until (x == n_v) (Just $ f l) x |
2021-01-12 12:56:13 +0100 | <ski> | > let xs = [2,3,5,7] in map (\x -> 2) xs |
2021-01-12 12:56:15 +0100 | <lambdabot> | [2,2,2,2] |
2021-01-12 12:56:51 +0100 | <sigmacool[m]> | I think I'm getting closer, that x = Just randomnum is incorrect, also I know until aplies the second argument to the third but I'm not sure how to use that to assing x to the second argument |
2021-01-12 12:56:56 +0100 | <ski> | you're still not passing two functions to `until' |
2021-01-12 12:57:02 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-12 12:57:32 +0100 | <sigmacool[m]> | yeah I'm thinking about the second function |
2021-01-12 12:57:38 +0100 | <sigmacool[m]> | the first is the cond is easy x == n_v |
2021-01-12 12:57:47 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 12:57:54 +0100 | <ski> | `x == n_v' is a `Bool', not a function |
2021-01-12 12:57:55 +0100 | <sigmacool[m]> | but I want the second to somehow change x value |
2021-01-12 12:58:02 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 12:58:25 +0100 | <ski> | the first function should be a function that, given a state, tells whether to stop looping or not |
2021-01-12 12:58:57 +0100 | <ski> | the second function should also take a state, and compute as result the next state (in case we're continuing looping, as determined by the first function) |
2021-01-12 12:59:33 +0100 | <ski> | > until (\x -> x >= 1000) (\x -> 2 * x) 1 |
2021-01-12 12:59:35 +0100 | <lambdabot> | 1024 |
2021-01-12 13:00:03 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 13:00:09 +0100 | <ski> | that doubles the state, starting from the initial state `1', until it reaches at least a thousand |
2021-01-12 13:01:05 +0100 | <ski> | the `\x ->' part declares the variable `x' |
2021-01-12 13:01:26 +0100 | <ski> | (declares it as being the parameter of the function) |
2021-01-12 13:02:55 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
2021-01-12 13:03:50 +0100 | andi- | (~andi-@NixOS/user/andi-) |
2021-01-12 13:04:19 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
2021-01-12 13:05:48 +0100 | drbean_ | (~drbean@TC210-63-209-150.static.apol.com.tw) |
2021-01-12 13:06:02 +0100 | lep-delete | (~lep@94.31.81.93) (Ping timeout: 264 seconds) |
2021-01-12 13:08:58 +0100 | ph88 | (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-01-12 13:09:24 +0100 | ph88 | (~ph88@95.90.247.26) |
2021-01-12 13:11:16 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-12 13:11:26 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-12 13:14:34 +0100 | <ij> | are all space leaks just because of data accidentally left as used somewhere in the 'live' structures from gc perspective? |
2021-01-12 13:15:45 +0100 | <opqdonut> | yeah, but that's a bit simplistic |
2021-01-12 13:16:16 +0100 | <ij> | I don't know, I haven't debugged any, but I know they're around, so I want to know more |
2021-01-12 13:16:18 +0100 | <opqdonut> | but the difference between a memory leak and a space leak is indeed that a memory leak is about not freeing unused memory, while a space leak is about inadvertently using too much memory |
2021-01-12 13:16:19 +0100 | <dminuoso> | I think it doesn't properly describe it |
2021-01-12 13:16:51 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 13:17:18 +0100 | <opqdonut> | there are many differen types space leaks: unevaluated thunks in a fold, unevaluated thunks in Data.Map values, hanging on to the head of a lazy sequence |
2021-01-12 13:17:26 +0100 | <opqdonut> | I don't think there's one definition that can capture all of these |
2021-01-12 13:17:32 +0100 | <dminuoso> | A space leak could be transient too |
2021-01-12 13:17:42 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 256 seconds) |
2021-01-12 13:17:54 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 272 seconds) |
2021-01-12 13:17:56 +0100 | <dminuoso> | (introducing unnecessary thunks, which costs heap space) |
2021-01-12 13:18:09 +0100 | <dminuoso> | even if they are collected shortly after, it does create pressure |
2021-01-12 13:18:22 +0100 | <ij> | meaning you have to spend time collecting it? |
2021-01-12 13:18:29 +0100 | <dminuoso> | It depends on how you define the term, and afaik it's not well defined |
2021-01-12 13:18:41 +0100 | <dminuoso> | ij: collecting is essentially for free in GHC GCs. |
2021-01-12 13:18:48 +0100 | <merijn> | opqdonut: Have you heard the glorious news? |
2021-01-12 13:18:57 +0100 | <opqdonut> | merijn: probably not |
2021-01-12 13:19:01 +0100 | <merijn> | opqdonut: How the heavens opened up and shined their glorious light on us! |
2021-01-12 13:19:13 +0100 | <ij> | dminuoso, probably beacuse of copy, but garbage will still cost becasuse of marking |
2021-01-12 13:19:24 +0100 | <merijn> | opqdonut: minimum/maximum/sum/product are being made strict ;) |
2021-01-12 13:19:24 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 13:19:31 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 13:19:56 +0100 | <dminuoso> | ij: We dont have marking exactly |
2021-01-12 13:20:06 +0100 | <dminuoso> | ij: In the old GC, we just copy live objects. |
2021-01-12 13:20:10 +0100 | <merijn> | "And god looked upon it and said: 'Fucking finally...'" |
2021-01-12 13:20:12 +0100 | <opqdonut> | merijn: right, I had actually heard about this. IME strictness analysis has made them strict for me when needed |
2021-01-12 13:20:14 +0100 | <dminuoso> | Anything not copied gets lost |
2021-01-12 13:20:29 +0100 | <merijn> | ij: There is no marking |
2021-01-12 13:20:30 +0100 | <dminuoso> | But yeah, it adds gc pressure this way |
2021-01-12 13:20:42 +0100 | <merijn> | ij: GHC doesn't use mark&sweep |
2021-01-12 13:20:59 +0100 | <ij> | merijn, dminuoso, I know it's copying, I just didn't know a better word |
2021-01-12 13:21:03 +0100 | <merijn> | (Well, I guess the new GC does do a form of mark&sweep, but very few people use that) |
2021-01-12 13:21:29 +0100 | <merijn> | ij: Garbage isn't copied so garbage is free in GHC's collector |
2021-01-12 13:21:32 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 258 seconds) |
2021-01-12 13:21:38 +0100 | <merijn> | ij: In fact, that's one of the reasons behind its design |
2021-01-12 13:21:44 +0100 | <dminuoso> | merijn: You misunderstand |
2021-01-12 13:21:53 +0100 | <merijn> | lazy evaluation produces *lots* of garbage |
2021-01-12 13:21:55 +0100 | Entertainment | (~entertain@104.246.132.210) |
2021-01-12 13:22:08 +0100 | <dminuoso> | merijn: Im confident by "garbage" they meant "it's not needed, but something keeps it alive" |
2021-01-12 13:22:11 +0100 | <ij> | ah, of course! |
2021-01-12 13:22:37 +0100 | ggole | (~ggole@2001:8003:8119:7200:541f:f655:3fda:a8bb) |
2021-01-12 13:22:41 +0100 | <ij> | only live data spends time, I didn't understand it right the first time |
2021-01-12 13:23:01 +0100 | lep-delete | (~lep@94.31.81.93) |
2021-01-12 13:23:39 +0100 | <dminuoso> | But producing garbage is still not free, since you still pay for allocations |
2021-01-12 13:23:51 +0100 | <merijn> | dminuoso: barely :p |
2021-01-12 13:23:56 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
2021-01-12 13:24:28 +0100 | Stanley00 | (~stanley00@unaffiliated/stanley00) () |
2021-01-12 13:25:03 +0100 | <merijn> | ij: The simplest explanation of a space leak is: Suppose we wanna sum 5 billion numbers. Do we *first* wanna allocate 5 billion additions worth of thunks (huge amounts of memory) and then when they get forced evaluate them to a single Int |
2021-01-12 13:25:03 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 13:25:21 +0100 | <merijn> | ij: Or do we just wanna force it immediately, never allocating any thunks and only ever having 1 Int? |
2021-01-12 13:25:34 +0100 | <ij> | makes sense |
2021-01-12 13:25:39 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-12 13:25:50 +0100 | <merijn> | ij: And generally the answer is never "we want 5 billion thunks" when it comes to stuff like sum/product :p |
2021-01-12 13:26:04 +0100 | <merijn> | ij: That's what people generally refer to with "space leak" |
2021-01-12 13:26:10 +0100 | <opqdonut> | that's merely one (but fairly common) class of space leak |
2021-01-12 13:26:43 +0100 | <ij> | opqdonut, but it's just a simple explanation that might serve as good analogy to all others |
2021-01-12 13:27:04 +0100 | <opqdonut> | another one is doing something like `sum longLazySequence / length longLazySequence`. Even if sum and length don't allocate excess thunks, the problem is that longLazySequence stays in memory |
2021-01-12 13:27:39 +0100 | <ij> | couldn't this specific one be optimized? |
2021-01-12 13:27:50 +0100 | <opqdonut> | this latter one is a hard problem in general |
2021-01-12 13:28:29 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 13:28:29 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-12 13:28:36 +0100 | <merijn> | ij: Well, how would you detect it? |
2021-01-12 13:28:53 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-12 13:31:19 +0100 | <ij> | merijn, well they both traverse lLS forward at the same time |
2021-01-12 13:31:46 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit) |
2021-01-12 13:31:53 +0100 | <merijn> | ij: Ok, so we "just" need a way for the compiler to recognise any traversal and anything that resembles a sequence? |
2021-01-12 13:32:04 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-12 13:32:25 +0100 | <opqdonut> | and sometimes it might be the wanted behaviour. say longLazyList is some set of data and you do lots of different statistics over it |
2021-01-12 13:32:30 +0100 | <opqdonut> | keeping it in memory might be what you want |
2021-01-12 13:33:37 +0100 | <ij> | merijn, well, ghc knows already that sum and length separately don't need to hold on to the whole list, so they could just be traversed at the same time |
2021-01-12 13:33:48 +0100 | <merijn> | ij: How does it know that? |
2021-01-12 13:34:00 +0100 | <ij> | I'm not sure, but it is true, right? |
2021-01-12 13:34:05 +0100 | <merijn> | No? |
2021-01-12 13:34:26 +0100 | <merijn> | At least, not in any way I can see |
2021-01-12 13:35:08 +0100 | <opqdonut> | I think you could define sum, length and / such that multiple traversals automatically get fused |
2021-01-12 13:35:09 +0100 | <merijn> | It's a compiler, it doesn't "know" anything. It just follows patterns "we" have defined/programmed. So you need to be able to define *exactly* what it is that it should do. |
2021-01-12 13:35:38 +0100 | <opqdonut> | but that would only help with this case, another case would be computing length and sum in very different parts of the code, without any direct link between them |
2021-01-12 13:35:44 +0100 | <ij> | merijn, it's a two way street – what we know we can figure out if we can make computers know |
2021-01-12 13:35:57 +0100 | <ij> | but alright sum [0..] is consuming memory |
2021-01-12 13:36:02 +0100 | sheaf | (~sheaf@2a01:cb19:80cc:7e00:c198:142c:b408:800e) |
2021-01-12 13:36:04 +0100 | <merijn> | ij: That part turns out to be *surprisingly* hard :p |
2021-01-12 13:36:08 +0100 | mirrorbird | (~psutcliff@2a00:801:446:b70b:607:9995:9930:4d27) |
2021-01-12 13:36:20 +0100 | <opqdonut> | patterns like iteratees/pipes are aimed at guaranteeing constant memory usage, i.e. not keeping the whole data in memory |
2021-01-12 13:36:25 +0100 | <merijn> | ij: There are many things *I* know that I don't know how to implement in a compiler |
2021-01-12 13:36:34 +0100 | <ij> | I believe that! |
2021-01-12 13:37:05 +0100 | <ij> | I thought sum [0..] would only keep a single (but probably increasingly bigger) integer |
2021-01-12 13:38:08 +0100 | mputz | (~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) |
2021-01-12 13:38:20 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-zfmzrhpcnpxmksjd) |
2021-01-12 13:38:39 +0100 | <__monty__> | Wasn't this fixed by using strict folds instead? |
2021-01-12 13:38:55 +0100 | <merijn> | __monty__: It will be |
2021-01-12 13:38:56 +0100 | geekosaur | (ac3a547a@172.58.84.122) |
2021-01-12 13:39:12 +0100 | <merijn> | __monty__: But the question wasn't "why can't GHC just optimise that?" |
2021-01-12 13:39:22 +0100 | <dminuoso> | ij: GHC does have a strictness analyzer, that determines whether it can add strictness (when it knows some value will definitely be used) |
2021-01-12 13:39:25 +0100 | <merijn> | Which is, of course, because we don't know how to define "that" |
2021-01-12 13:39:28 +0100 | <dminuoso> | ij: It's just... very poor and lackluster. |
2021-01-12 13:40:18 +0100 | <ij> | merijn, :) I understand (it's not that I expect it to be easy) |
2021-01-12 13:40:35 +0100 | shf | (~sheaf@2a01:cb19:80cc:7e00:ed22:5b3a:3fa:a0b7) (Ping timeout: 272 seconds) |
2021-01-12 13:43:28 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 13:44:51 +0100 | <ij> | in fact, I don't know anything about compilers |
2021-01-12 13:47:42 +0100 | Bergle_1 | (~Bergle_4@101.165.90.119) (Read error: Connection reset by peer) |
2021-01-12 13:48:01 +0100 | <dminuoso> | In principle they aren't complicated. |
2021-01-12 13:49:23 +0100 | <dminuoso> | The main principle by which GHC's simplifier gains performance, is just inlining. |
2021-01-12 13:49:32 +0100 | <dminuoso> | So a lot of the transformation GHC does, is to facilitate more inlining. |
2021-01-12 13:49:39 +0100 | Bergle_1 | (~Bergle_4@101.165.90.119) |
2021-01-12 13:49:47 +0100 | <dminuoso> | (It does plenty of other things, but the main concern is just that) |
2021-01-12 13:50:01 +0100 | <kuribas> | and inlining is done to facilitate more optimizations |
2021-01-12 13:56:08 +0100 | <kuribas> | like deforestation |
2021-01-12 13:57:23 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 13:57:43 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-uvziyudvcbiadite) |
2021-01-12 14:01:19 +0100 | Tario | (~Tario@201.192.165.173) |
2021-01-12 14:02:43 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2021-01-12 14:02:44 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-01-12 14:03:09 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-12 14:04:25 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds) |
2021-01-12 14:10:13 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 14:11:01 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core) |
2021-01-12 14:11:22 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-12 14:11:52 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 14:13:35 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
2021-01-12 14:13:59 +0100 | sheaf | (~sheaf@2a01:cb19:80cc:7e00:c198:142c:b408:800e) (Read error: Connection reset by peer) |
2021-01-12 14:14:17 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) |
2021-01-12 14:15:30 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-12 14:17:56 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-01-12 14:21:34 +0100 | mastarija | (~mastarija@188.252.197.30) |
2021-01-12 14:25:37 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-12 14:25:51 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2021-01-12 14:26:16 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) (Remote host closed the connection) |
2021-01-12 14:26:41 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 14:27:02 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-01-12 14:27:31 +0100 | jedws | (~jedws@121.209.139.157) (Client Quit) |
2021-01-12 14:29:23 +0100 | kritzefitz | (~kritzefit@212.86.56.80) |
2021-01-12 14:29:36 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) |
2021-01-12 14:29:36 +0100 | neiluj | (~jco@91-167-203-101.subs.proxad.net) (Changing host) |
2021-01-12 14:29:36 +0100 | neiluj | (~jco@unaffiliated/neiluj) |
2021-01-12 14:31:11 +0100 | cmcma20 | (~cmcma20@l37-192-2-125.novotelecom.ru) |
2021-01-12 14:31:32 +0100 | <cmcma20> | singletons ux is infuriating |
2021-01-12 14:31:36 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 14:31:54 +0100 | <merijn> | cmcma20: Well yes, there's a reason why the original paper was called Hasochism |
2021-01-12 14:31:57 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-12 14:32:14 +0100 | jedws | (~jedws@121.209.139.157) |
2021-01-12 14:32:14 +0100 | son0p | (~son0p@181.136.122.143) |
2021-01-12 14:32:18 +0100 | <merijn> | Fortunately, I have one simple trick for dealing with this! |
2021-01-12 14:32:22 +0100 | <cmcma20> | I've tried to buy into it only because it has some TH stuff |
2021-01-12 14:32:31 +0100 | <cmcma20> | and it doesn't even work in my case |
2021-01-12 14:32:43 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) |
2021-01-12 14:32:43 +0100 | <cmcma20> | merijn: what trick? |
2021-01-12 14:32:50 +0100 | <merijn> | cmcma20: I don't use singletons ;) |
2021-01-12 14:33:55 +0100 | <cmcma20> | merijn: do you feel the void breathing into your neck when your types have values that don't represent anything meaningful in your semantics? |
2021-01-12 14:33:58 +0100 | <merijn> | The gospel of Merijn: Dependent Haskell is probably a kinda bad idea and the sooner you accept this, the happier you will be writing Haskell :) |
2021-01-12 14:34:28 +0100 | <cmcma20> | fix: The Void |
2021-01-12 14:35:34 +0100 | <merijn> | cmcma20: No, because I try to avoid types that do not represent meaningful values :p |
2021-01-12 14:35:34 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer) |
2021-01-12 14:35:38 +0100 | niekvand_ | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 14:36:16 +0100 | <cmcma20> | ah can I borrow some of your wisdom because my is clearly lacking |
2021-01-12 14:36:45 +0100 | <merijn> | Dependent Types are cool. If you have language designed having them from the beginning. I fear that many people who think -XDependentHaskell will magically make dependent types/singletons "not suck" are overly optimistic |
2021-01-12 14:36:46 +0100 | olligobber1 | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-01-12 14:37:08 +0100 | <merijn> | cmcma20: I mean, there's nothing wrong with fucking around with dependent types and what not, but just, like, download Idris or Agda then :p |
2021-01-12 14:37:25 +0100 | <merijn> | You'll be infinitely happier! |
2021-01-12 14:37:37 +0100 | <cmcma20> | merijn: I had been! But this project is in Haskell. |
2021-01-12 14:37:58 +0100 | <merijn> | cmcma20: Ah...someone else succumbed to Dependent Haskell... |
2021-01-12 14:38:07 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 246 seconds) |
2021-01-12 14:38:31 +0100 | <cmcma20> | Agda and Idris are young but irrelevant in indstry |
2021-01-12 14:38:36 +0100 | <merijn> | In that case I recommend "rolling up a newspaper, thwapping them on the nose and putting them in timeout until they come to their senses" :) |
2021-01-12 14:38:48 +0100 | <__monty__> | Agda's not irrelevant. |
2021-01-12 14:39:02 +0100 | <merijn> | Hear ye, the second Gospel of Merijn: Dependent Haskell is also irrelevant in industry ;) |
2021-01-12 14:39:07 +0100 | <__monty__> | It's just used as a proof assistant rather than an implementation language. |
2021-01-12 14:39:37 +0100 | <kuribas> | stronger = more specific? |
2021-01-12 14:39:48 +0100 | <cmcma20> | I mean industry like "medium sized corpos tryna' get some money", not "tech gargantuas devouring the world" or "sipping tea in the ivory tower" stuff |
2021-01-12 14:41:05 +0100 | <__monty__> | kuribas: I don't know the context but I think there's kind of a variant/contravariant parallel. A statement is stronger if it either tells you more or if it tells you the same property applies to more objects. |
2021-01-12 14:41:25 +0100 | <merijn> | cmcma20: Dependent Haskell is *very much* sipping tea in the ivory tower stuff :p |
2021-01-12 14:41:29 +0100 | <__monty__> | cmcma20: I think IOHK is still firmly in the former category : ) |
2021-01-12 14:41:35 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer) |
2021-01-12 14:41:46 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-01-12 14:41:48 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th) |
2021-01-12 14:41:57 +0100 | <kuribas> | __monty__: is Monad stronger than Applicative? |
2021-01-12 14:42:16 +0100 | <cmcma20> | merijn: and what about Galois? They've done a ton of singletons for something defense related I guess |
2021-01-12 14:42:22 +0100 | <__monty__> | Yes, because Monad implies Applicative. |
2021-01-12 14:42:53 +0100 | <kuribas> | right |
2021-01-12 14:42:53 +0100 | <__monty__> | Galois is more in that too big to fail category afaict. |
2021-01-12 14:43:22 +0100 | <__monty__> | kuribas: It's stronger in the former sense, it tells you more about an object. |
2021-01-12 14:43:26 +0100 | <merijn> | I feel like imitating Galois is like imitating Facebook/Google |
2021-01-12 14:43:39 +0100 | <merijn> | What works for them is far from guaranteed to work for you |
2021-01-12 14:44:00 +0100 | <cmcma20> | merijn: most definitely |
2021-01-12 14:45:25 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer) |
2021-01-12 14:45:28 +0100 | <ski> | kuribas : stronger statements imply weaker ones |
2021-01-12 14:45:40 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-01-12 14:46:00 +0100 | <kuribas> | ok, that makes sense |
2021-01-12 14:46:09 +0100 | <merijn> | As much as I dislike both the name and rhetoric around "boring Haskell" I do very much feel that the influx of new Haskell programmers in the past decade have been overly obsessed with type level stuff. Type level stuff is like spices. A little goes a long way and you gotta make sure the cost is worth the benefit |
2021-01-12 14:46:30 +0100 | <merijn> | Many of these type level death machines can be replaced by "just writing a bit of code" |
2021-01-12 14:46:33 +0100 | <ski> | e.g. `forall a. P a -> Q a' implies `(forall a. P a) -> (forall a. Q a)' |
2021-01-12 14:46:50 +0100 | <ski> | therefore the former is stronger, and the latter weaker |
2021-01-12 14:49:33 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 14:49:59 +0100 | silvers- | (~silvers-@178.162.209.171) |
2021-01-12 14:50:14 +0100 | drbean_ | (~drbean@TC210-63-209-150.static.apol.com.tw) (Ping timeout: 260 seconds) |
2021-01-12 14:50:46 +0100 | <kuribas> | merijn: word |
2021-01-12 14:51:01 +0100 | <kuribas> | merijn: I feel there's a lot of XY in it. |
2021-01-12 14:51:14 +0100 | <merijn> | kuribas: Well also just naive enthusiasm |
2021-01-12 14:51:20 +0100 | <cmcma20> | merijn: Mostly agree with you. Yet there are some things that are impossible to do without type trickery. |
2021-01-12 14:51:25 +0100 | <merijn> | "Types are great, therefore *more* types must be better!" |
2021-01-12 14:52:02 +0100 | ski | . o O ( "A little knowledge is dangerous." ? ) |
2021-01-12 14:53:37 +0100 | silvers- | (~silvers-@178.162.209.171) (Remote host closed the connection) |
2021-01-12 14:54:40 +0100 | <kuribas> | cmcma20: some things also don't need to be done often... |
2021-01-12 14:54:43 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-12 14:54:46 +0100 | <kuribas> | like getting 100% type safety |
2021-01-12 14:55:00 +0100 | <kuribas> | or coding business logic into types. |
2021-01-12 14:55:11 +0100 | <__monty__> | I like people experimenting/pushing the envelope on what a type system can do and haskell seems like a great playground for this. I see boring haskell more as a way to indicate what is practical and what may be interesting but comes at considerable cost. |
2021-01-12 14:55:29 +0100 | <kuribas> | exactly |
2021-01-12 14:55:36 +0100 | <merijn> | __monty__: I dislike boring Haskell, because a lot of extensions do have a lot of use |
2021-01-12 14:55:43 +0100 | <__monty__> | I don't want boring haskell to be a "movement" of people trying to discourage such experimentation. |
2021-01-12 14:55:45 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
2021-01-12 14:55:50 +0100 | <merijn> | But you gotta think hard on whether the cost is worth the benefit |
2021-01-12 14:56:16 +0100 | <merijn> | Like, are GADTs *extremely* useful? Yes! Should you use them everywhere? Probably not! |
2021-01-12 14:56:25 +0100 | <cmcma20> | merijn: And spice must flow. Once you've had a taste of deptypes you sometimes get stuck not being able to bite the bullet and write code in a simple way. |
2021-01-12 14:57:10 +0100 | jedws | (~jedws@121.209.139.157) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 14:57:32 +0100 | <cmcma20> | Then you find yourself in a sea of pain because there's no language with a linear dependent homotopy type theory... |
2021-01-12 14:57:49 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 260 seconds) |
2021-01-12 14:59:00 +0100 | <kuribas> | merijn: yeah, especially many of the little syntax improvement extensions. |
2021-01-12 14:59:08 +0100 | ADG1089__ | (~aditya@122.163.165.143) (Remote host closed the connection) |
2021-01-12 14:59:16 +0100 | <kuribas> | merijn: they take 10 seconds to understand. |
2021-01-12 14:59:17 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 258 seconds) |
2021-01-12 15:00:51 +0100 | <kuribas> | merijn: and it still doesn't come close to the synactic complexity of C++ |
2021-01-12 15:01:09 +0100 | <cmcma20> | kuribas: Understanding haskell extensions is not always composable though. When you have 20 extensions in your project, you know that understanding it won't take 200 extr seconds. |
2021-01-12 15:01:10 +0100 | <merijn> | kuribas: Because that's impossible :p |
2021-01-12 15:01:21 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
2021-01-12 15:01:55 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
2021-01-12 15:01:56 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-12 15:03:18 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-12 15:04:20 +0100 | <kuribas> | cmcma20: point them to here: http://dev.stephendiehl.com/hask/#language-extensions |
2021-01-12 15:04:45 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2021-01-12 15:04:59 +0100 | <kuribas> | cmcma20: I just have a hard time to believe that a project will fail because of enabling one of these. |
2021-01-12 15:05:31 +0100 | <kuribas> | rather than using them when there is no need or improvement. |
2021-01-12 15:06:24 +0100 | <kuribas> | I still wonder what this guy means with "FP winter" |
2021-01-12 15:06:42 +0100 | <kuribas> | https://twitter.com/smdiehl/status/1348349511706554368 |
2021-01-12 15:07:05 +0100 | <cmcma20> | it's a reference to AI winter, i.e. end of the hype cycle |
2021-01-12 15:07:12 +0100 | <merijn> | He already wrote a huge thread about that |
2021-01-12 15:07:17 +0100 | <merijn> | but yeah, AI Winter reference |
2021-01-12 15:07:39 +0100 | ClaudiusMaximus | (~claude@196.67.6.51.dyn.plus.net) |
2021-01-12 15:07:44 +0100 | ClaudiusMaximus | (~claude@196.67.6.51.dyn.plus.net) (Changing host) |
2021-01-12 15:07:44 +0100 | ClaudiusMaximus | (~claude@unaffiliated/claudiusmaximus) |
2021-01-12 15:07:56 +0100 | ystael | (~ystael@209.6.50.55) |
2021-01-12 15:08:09 +0100 | <cmcma20> | winters are beneficial in any area because the unfits perish |
2021-01-12 15:09:06 +0100 | <cmcma20> | I still hope for a generl programming winter |
2021-01-12 15:09:17 +0100 | hyperisco | (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!) |
2021-01-12 15:09:56 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-01-12 15:10:02 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:831f:8b96:1f06:89e1) (Ping timeout: 260 seconds) |
2021-01-12 15:12:23 +0100 | <kuribas> | right. In that case I hope for FP winter as well :) |
2021-01-12 15:12:46 +0100 | mastarija | (~mastarija@188.252.197.30) (Quit: Leaving) |
2021-01-12 15:13:46 +0100 | <cmcma20> | wasn't there a suggestion to make a metaextension that enables a bunch of them? |
2021-01-12 15:14:14 +0100 | <cmcma20> | so you can just -XFancyHaskell -XWizardHaskell and be fine |
2021-01-12 15:14:47 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-12 15:15:28 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) |
2021-01-12 15:15:50 +0100 | knupfer | (~Thunderbi@200116b82c27b70061a216d5084abddd.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
2021-01-12 15:18:58 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-12 15:19:20 +0100 | <ski> | would people agree on which extensions to put into those ? |
2021-01-12 15:19:21 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 15:20:38 +0100 | <cmcma20> | ski: most probably, Haskell's no tower of Babel |
2021-01-12 15:21:24 +0100 | m0rphism | (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
2021-01-12 15:21:25 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) (Remote host closed the connection) |
2021-01-12 15:21:41 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 265 seconds) |
2021-01-12 15:22:20 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:7525:3d36:8cf7:15dd) |
2021-01-12 15:23:28 +0100 | zariuq | (~zar@fw1.ciirc.cvut.cz) (Remote host closed the connection) |
2021-01-12 15:23:39 +0100 | zariuq | (~zar@fw1.ciirc.cvut.cz) |
2021-01-12 15:24:04 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
2021-01-12 15:24:06 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 15:26:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 15:28:35 +0100 | RedNifre | (~michael@dslb-002-203-247-083.002.203.pools.vodafone-ip.de) |
2021-01-12 15:29:13 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 15:30:03 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Quit: ZNC 1.7.5 - https://znc.in) |
2021-01-12 15:30:12 +0100 | <RedNifre> | Heya. What's the Haskell way of doing some sort of stream that emits values, like Rx reactive coroutine flow channel stuff? |
2021-01-12 15:30:26 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-12 15:32:03 +0100 | <dminuoso> | RedNifre: Depends on the exact usage case. |
2021-01-12 15:32:09 +0100 | <dminuoso> | We have a plethora of libraries in that domain |
2021-01-12 15:32:19 +0100 | berberman | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-01-12 15:32:30 +0100 | ArsenArsen | (~Arsen@fsf/member/ArsenArsen) |
2021-01-12 15:32:49 +0100 | alx741 | (~alx741@186.178.110.185) (Quit: alx741) |
2021-01-12 15:32:55 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-12 15:33:44 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 15:33:46 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds) |
2021-01-12 15:34:15 +0100 | lep-delete | Guest18945 |
2021-01-12 15:34:31 +0100 | alx741 | (~alx741@186.178.110.185) |
2021-01-12 15:35:28 +0100 | zariuq | (~zar@fw1.ciirc.cvut.cz) (Read error: Connection reset by peer) |
2021-01-12 15:35:37 +0100 | piezoid | (~piezoid@82-64-150-32.subs.proxad.net) |
2021-01-12 15:35:40 +0100 | zariuq | (~zar@fw1.ciirc.cvut.cz) |
2021-01-12 15:36:00 +0100 | Guest18945 | lep-delete |
2021-01-12 15:37:04 +0100 | <kuribas> | RedNifre: conduit, streamly, pipes, etc... |
2021-01-12 15:37:08 +0100 | berberman | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-01-12 15:37:44 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0) |
2021-01-12 15:37:56 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-01-12 15:38:49 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-12 15:39:01 +0100 | darjeeling_ | (~darjeelin@115.215.40.96) (Ping timeout: 246 seconds) |
2021-01-12 15:39:13 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 264 seconds) |
2021-01-12 15:39:56 +0100 | berberman | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-01-12 15:40:48 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-12 15:41:26 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-12 15:43:27 +0100 | berberman | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-01-12 15:44:44 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 15:44:55 +0100 | zariuq | (~zar@fw1.ciirc.cvut.cz) (Read error: Connection reset by peer) |
2021-01-12 15:45:09 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-12 15:45:26 +0100 | geekosaur | (ac3a547a@172.58.84.122) (Quit: Connection closed) |
2021-01-12 15:45:39 +0100 | LKoen | (~LKoen@152.172.9.109.rev.sfr.net) |
2021-01-12 15:45:49 +0100 | zariuq | (~zar@fw1.ciirc.cvut.cz) |
2021-01-12 15:46:24 +0100 | berberman | (~berberman@unaffiliated/berberman) (Max SendQ exceeded) |
2021-01-12 15:46:55 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2021-01-12 15:47:51 +0100 | niko | (~niko@freenode/staff/ubuntu.member.niko) (Ping timeout: 633 seconds) |
2021-01-12 15:51:55 +0100 | darjeeling_ | (~darjeelin@122.245.120.137) |
2021-01-12 15:52:23 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2021-01-12 15:52:33 +0100 | sigmacool[m] | sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/kHwSqgEQYYLfxSLBNjoCeBDt/message.txt > |
2021-01-12 15:52:40 +0100 | is_null | (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 246 seconds) |
2021-01-12 15:53:26 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:21b8:123b:aba8:7844) (Ping timeout: 264 seconds) |
2021-01-12 15:53:52 +0100 | Vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) |
2021-01-12 15:54:30 +0100 | <ski> | would seem to do the same as the previous code |
2021-01-12 15:54:37 +0100 | <cmcma20> | RedNifre: what is your usecase? |
2021-01-12 15:54:46 +0100 | <ski> | (there is no need to name `nv' in `limit') |
2021-01-12 15:55:05 +0100 | <ski> | cmcma20 : translate <https://matrix.org/_matrix/media/r0/download/matrix.org/jyqritNMDynBOZYnoQTHennU/message.txt> to Haskell |
2021-01-12 15:55:52 +0100 | <ski> | oh actually, sorry. i didn't notice you were responding to another message/person |
2021-01-12 15:56:38 +0100 | <ski> | sigmacool[m] : if you declare `r' as a function local to `limit' (e.g. using `where'), then you don't need to pass around the `f' parameter to `r' |
2021-01-12 15:57:28 +0100 | <sigmacool[m]> | I thought about it but I didnt know where |
2021-01-12 15:57:45 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 15:57:50 +0100 | <ski> | (i'd probably define `c' in the `where' as well) |
2021-01-12 15:58:02 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-12 15:58:07 +0100 | <sigmacool[m]> | how would that look |
2021-01-12 15:58:14 +0100 | <RedNifre> | cmcma20: well, my usecase just evaporated in the last meeting, but it was this: Imagine you have a GUI that has an Editor that is fixed to a month. You now want to switch the month in the GUI, which requires a new Editor, which must be created asynchronously. The GUI also has a "do something with the Editor of this month" button. If you update the GUI instantly, the button must not be able to get the old |
2021-01-12 15:58:15 +0100 | <ski> | oh, also .. |
2021-01-12 15:58:16 +0100 | <RedNifre> | editor, if the new one hasn't arrived yet, it would have to wait. |
2021-01-12 15:58:17 +0100 | poljar1 | (~poljar@93-139-24-194.adsl.net.t-com.hr) (Remote host closed the connection) |
2021-01-12 15:58:22 +0100 | <ski> | .. don't use `do' like that |
2021-01-12 15:58:42 +0100 | <dminuoso> | Mmm, wow the OOM killer just rampaged through my system... |
2021-01-12 15:58:43 +0100 | <sigmacool[m]> | I'm using do just to use multiline I think? |
2021-01-12 15:58:47 +0100 | <dminuoso> | And I think HLS was the cause... |
2021-01-12 15:58:48 +0100 | poljar1 | (~poljar@93-139-24-194.adsl.net.t-com.hr) |
2021-01-12 15:58:55 +0100 | <RedNifre> | I was looking into solutions in Kotlin, but I thought it might help me understanding it in Haskell first, because it's a much clearer language to me. |
2021-01-12 15:58:56 +0100 | <dminuoso> | interestingly, it took down my X server.. |
2021-01-12 15:59:41 +0100 | dyeplexer | (~lol@unaffiliated/terpin) |
2021-01-12 15:59:58 +0100 | <ski> | sigmacool[m] : you're not actually using any monad here, so it's arguably confusing to use `do' |
2021-01-12 16:00:23 +0100 | <sigmacool[m]> | without do It complains when I split it into multiple lines |
2021-01-12 16:00:39 +0100 | <ski> | just add `in', after the `let' binding |
2021-01-12 16:00:46 +0100 | <ski> | (or use `where') |
2021-01-12 16:02:03 +0100 | <RedNifre> | So I guess the way to do it with pipes/conduits would be that when you update the Editor, you push a Nothing into the conduit/pipe and asynchronously create the new Editor, then push it as a Just editor into the pipe/conduit and the consuming code would... start listening to the pipe... and wait for the first Just to get the Editor? Or what? |
2021-01-12 16:02:09 +0100 | <ski> | limit f l d = r c Nothing |
2021-01-12 16:02:12 +0100 | <ski> | where |
2021-01-12 16:02:21 +0100 | <ski> | c = ..d..l.. |
2021-01-12 16:02:32 +0100 | <ski> | r c nv f |
2021-01-12 16:02:35 +0100 | <sigmacool[m]> | ah that looks nice |
2021-01-12 16:02:42 +0100 | <ski> | | Just x == nv = x |
2021-01-12 16:03:02 +0100 | <ski> | | otherwise = r (c / 10) (Just x) |
2021-01-12 16:03:09 +0100 | <ski> | where |
2021-01-12 16:03:16 +0100 | <ski> | x = f c |
2021-01-12 16:03:39 +0100 | <ski> | (er, should be `r c nv', not `r c nv f') |
2021-01-12 16:04:24 +0100 | <ski> | (i might also rename the first `c' to `c0', to make it clearer that it's the initial value for the later `c') |
2021-01-12 16:05:03 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-12 16:05:09 +0100 | <ski> | (an alternative could be to fold/inline it ..) |
2021-01-12 16:05:24 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 16:05:29 +0100 | phasespace | (~sar@80-89-47-117.inet.signal.no) (Ping timeout: 260 seconds) |
2021-01-12 16:05:31 +0100 | <sigmacool[m]> | the problem is that the initial assignment of c should be outside of the recursion |
2021-01-12 16:06:05 +0100 | <ski> | it's a binding, not an assignment. and it already is outside of the recursion |
2021-01-12 16:06:24 +0100 | <ski> | (also, you reproduced the bug in the Haskell version) |
2021-01-12 16:06:30 +0100 | <merijn> | ski: You shadowed 'c'? |
2021-01-12 16:06:39 +0100 | <ski> | yes |
2021-01-12 16:06:54 +0100 | <ski> | (hence why i suggested a rename to `c0') |
2021-01-12 16:07:42 +0100 | <ski> | (there already were two distinct `c' in the original source. me making the definition of `r' local to `limit' introduced the shadowing) |
2021-01-12 16:09:07 +0100 | darjeeling_ | (~darjeelin@122.245.120.137) (Ping timeout: 246 seconds) |
2021-01-12 16:10:00 +0100 | <sigmacool[m]> | thanks @ski that looks better! |
2021-01-12 16:10:27 +0100 | <ski> | fwiw, `Just x == nv' could be replaced by `all (x ==) nv' or `maybe False (x ==) nv' .. not sure whether you think any of those are clearer |
2021-01-12 16:10:47 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
2021-01-12 16:10:57 +0100 | <ski> | (er, actually, that would be `any', not `all' ..) |
2021-01-12 16:11:04 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 16:11:19 +0100 | <sigmacool[m]> | nope I can't parse those xD |
2021-01-12 16:11:43 +0100 | <ski> | > all (> 3) [5,7] |
2021-01-12 16:11:45 +0100 | <lambdabot> | True |
2021-01-12 16:11:48 +0100 | <ski> | > all (> 3) [5,2,7] |
2021-01-12 16:11:50 +0100 | <lambdabot> | False |
2021-01-12 16:11:51 +0100 | <ski> | > all (> 3) [] |
2021-01-12 16:11:54 +0100 | <lambdabot> | True |
2021-01-12 16:11:58 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2021-01-12 16:12:02 +0100 | <ski> | > all (> 3) (Just 5) |
2021-01-12 16:12:05 +0100 | <lambdabot> | True |
2021-01-12 16:12:07 +0100 | <ski> | > all (> 3) Nothing |
2021-01-12 16:12:10 +0100 | <lambdabot> | True |
2021-01-12 16:12:15 +0100 | <ski> | > any (> 3) (Just 5) |
2021-01-12 16:12:17 +0100 | <lambdabot> | True |
2021-01-12 16:12:18 +0100 | <ski> | > any (> 3) Nothing |
2021-01-12 16:12:20 +0100 | <lambdabot> | False |
2021-01-12 16:12:39 +0100 | <sigmacool[m]> | ah so you can iterate over Maybe |
2021-01-12 16:12:44 +0100 | <sigmacool[m]> | same with option in rust |
2021-01-12 16:12:55 +0100 | <sigmacool[m]> | it always seems weird but its useful |
2021-01-12 16:13:20 +0100 | <ski> | `all' checks that all elements of a collection satisfy a predicate. `any' checks that there exists at least one element that does. a `Maybe T' can be thought of as a collection that contains at most one `T' |
2021-01-12 16:14:34 +0100 | <ski> | it's occasionally useful to use e.g. `for_ mx print', which is `print x', if `mx = Just x', and which does nothing in case `mx = Nothing' |
2021-01-12 16:14:59 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2021-01-12 16:15:06 +0100 | Vulfe | (~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Remote host closed the connection) |
2021-01-12 16:15:22 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:1875:e83f:3e95:4d35) |
2021-01-12 16:15:36 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-12 16:15:47 +0100 | <sigmacool[m]> | whats this trick maybe False (x ==) |
2021-01-12 16:15:54 +0100 | <sigmacool[m]> | I replaced with True and it still works |
2021-01-12 16:16:00 +0100 | <ski> | `for_' in this case would have type `Maybe T -> (T -> IO ()) -> IO ()', where `T' is the type of `x' (so `mx' has type `Maybe T') |
2021-01-12 16:16:35 +0100 | <ski> | `maybe' is just a quick way to do something with `x', in case you get `Just x', and to specify a default result, in case you get `Nothing' |
2021-01-12 16:17:19 +0100 | <ski> | so `maybe False (x ==) nv' says to answer `False' if `nv = Nothing', and to check `x == v', in case `nv = Just v' |
2021-01-12 16:18:08 +0100 | <ski> | in your code you had `Just x == nv' .. in case `nv = Nothing', that check will be `False', which was why i used `False' with `maybe' above |
2021-01-12 16:18:33 +0100 | <sigmacool[m]> | I see thanks |
2021-01-12 16:18:38 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
2021-01-12 16:19:29 +0100 | <ski> | (so, replacing it with `True' in place of `False' will mean that your recursion will terminate immediately, since the initial value of `nv' is `Nothing' ..) |
2021-01-12 16:19:32 +0100 | dfreedm | (~dfreedm@137.63.71.51) |
2021-01-12 16:19:48 +0100 | <cmcma20> | RedNifre: Doesn't look like a something to discuss without delving into details. Have you modeled your system? Like not in Haskell but any other language etc? |
2021-01-12 16:20:25 +0100 | Sgeo | (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
2021-01-12 16:21:56 +0100 | is_null | (~jpic@pdpc/supporter/professional/is-null) |
2021-01-12 16:22:48 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-12 16:23:08 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 16:23:16 +0100 | phasespace | (~sar@89-162-33-21.fiber.signal.no) |
2021-01-12 16:23:21 +0100 | fendor_ | (~fendor@178.115.130.17.wireless.dyn.drei.com) |
2021-01-12 16:23:56 +0100 | Jd007 | (~Jd007@d154-5-83-24.bchsia.telus.net) |
2021-01-12 16:25:47 +0100 | fendor | (~fendor@77.119.128.187.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
2021-01-12 16:26:08 +0100 | darjeeling_ | (~darjeelin@122.245.120.137) |
2021-01-12 16:29:55 +0100 | cr3 | (~cr3@192-222-143-195.qc.cable.ebox.net) |
2021-01-12 16:31:45 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
2021-01-12 16:32:20 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2021-01-12 16:35:55 +0100 | <RedNifre> | cmcma20: not yet, I'm still in the figuring it out phase. |
2021-01-12 16:36:00 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2021-01-12 16:43:15 +0100 | cfricke | (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
2021-01-12 16:43:25 +0100 | jespada | (~jespada@90.254.245.49) (Ping timeout: 264 seconds) |
2021-01-12 16:45:17 +0100 | jespada | (~jespada@90.254.245.49) |
2021-01-12 16:45:21 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-12 16:46:13 +0100 | <cmcma20> | Considering what you have said, I'd say reflex can be useful but it's not a developer friendly library. |
2021-01-12 16:46:30 +0100 | faustind | (0e0843e1@M014008067225.v4.enabler.ne.jp) |
2021-01-12 16:48:53 +0100 | <xerox_> | ski: what's the rationale behind all working differently on [] and Nothing |
2021-01-12 16:50:44 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
2021-01-12 16:50:56 +0100 | <merijn> | xerox_: It doesn't? |
2021-01-12 16:51:01 +0100 | <merijn> | :t all |
2021-01-12 16:51:03 +0100 | <lambdabot> | Foldable t => (a -> Bool) -> t a -> Bool |
2021-01-12 16:51:07 +0100 | <merijn> | > all even Nothing |
2021-01-12 16:51:09 +0100 | <lambdabot> | True |
2021-01-12 16:51:13 +0100 | <merijn> | > all even [] |
2021-01-12 16:51:15 +0100 | <lambdabot> | True |
2021-01-12 16:52:06 +0100 | <xerox_> | oh I misread, that one was "any", scratch that :D |
2021-01-12 16:53:12 +0100 | justsomeguy | (~Srain@unaffiliated/--/x-3805311) |
2021-01-12 16:55:05 +0100 | conal | (~conal@107.181.166.211) (Ping timeout: 240 seconds) |
2021-01-12 16:58:25 +0100 | conal | (~conal@107.181.166.211) |
2021-01-12 17:02:42 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-12 17:04:35 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) |
2021-01-12 17:06:13 +0100 | dfreedm | (~dfreedm@137.63.71.51) (Ping timeout: 264 seconds) |
2021-01-12 17:07:51 +0100 | Guest_96 | (5bbbc13b@91.187.193.59) |
2021-01-12 17:08:04 +0100 | Guest_96 | (5bbbc13b@91.187.193.59) (Client Quit) |
2021-01-12 17:09:04 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) (Ping timeout: 240 seconds) |
2021-01-12 17:10:40 +0100 | <dminuoso> | RedNifre: So for something like an editor, it's quite possible that, if you want to explore the functional paradigms, something like reflex might be better suited |
2021-01-12 17:10:44 +0100 | ubert | (~Thunderbi@p200300ecdf1ee08ce6b318fffe838f33.dip0.t-ipconnect.de) |
2021-01-12 17:11:01 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-01-12 17:11:06 +0100 | <dminuoso> | But that's quite a deep rabbit hole.. |
2021-01-12 17:11:51 +0100 | <dminuoso> | Libraries like conduit/pipes are not for building interactive systems, they are just streaming solutions (like working on a list, but with constant space and arbitrary effects interleaved) |
2021-01-12 17:13:06 +0100 | <dminuoso> | But for an interactive system like you described, FRP is how we'd describe it - and reflex is one of the more prominent libraries for that. |
2021-01-12 17:16:03 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 260 seconds) |
2021-01-12 17:16:42 +0100 | FrontSevens | (~FrontSeve@185.204.1.185) |
2021-01-12 17:21:10 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-12 17:21:10 +0100 | carlomagno | (~cararell@148.87.23.13) (Remote host closed the connection) |
2021-01-12 17:21:19 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds) |
2021-01-12 17:21:41 +0100 | carlomagno | (~cararell@148.87.23.6) |
2021-01-12 17:23:00 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 272 seconds) |
2021-01-12 17:23:01 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-01-12 17:23:10 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) |
2021-01-12 17:25:12 +0100 | <RedNifre> | Thanks for the info. I'll postpone it for now, the current solution in the project is one big fat state thing that gets filled with all the stuff you need (e.g. the Editor) and only when it's complete it gets send to the GUI to trigger an update. This means that the GUI is slow (because when you click something it has to wait for the big fat state thing to arrive before updating), but oh well. |
2021-01-12 17:25:18 +0100 | Natch | (~natch@85.226.113.180) (Remote host closed the connection) |
2021-01-12 17:26:28 +0100 | is_null | (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 246 seconds) |
2021-01-12 17:27:24 +0100 | ubert | (~Thunderbi@p200300ecdf1ee08ce6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-01-12 17:27:54 +0100 | ubert | (~Thunderbi@p200300ecdf1ee031e6b318fffe838f33.dip0.t-ipconnect.de) |
2021-01-12 17:28:08 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2021-01-12 17:28:37 +0100 | tv | (~tv@unaffiliated/tv) (Ping timeout: 260 seconds) |
2021-01-12 17:31:43 +0100 | Gurkenglas_ | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds) |
2021-01-12 17:31:52 +0100 | <dminuoso> | RedNifre: Yeah, this is sort of what reflex is good for. |
2021-01-12 17:32:20 +0100 | <dminuoso> | It let's you avoid gigantic single state you need to feed to everything in a sensible way |
2021-01-12 17:32:42 +0100 | <dminuoso> | But it's not just something you can "add-on", you need to write the entire thing around it. |
2021-01-12 17:37:17 +0100 | plutoniix | (~q@node-ulo.pool-125-24.dynamic.totinternet.net) |
2021-01-12 17:37:25 +0100 | son0p | (~son0p@181.136.122.143) (Ping timeout: 264 seconds) |
2021-01-12 17:37:31 +0100 | <cmcma20> | btw I've managed to do my lambdas with singletons |
2021-01-12 17:37:39 +0100 | <cmcma20> | https://github.com/cmcmA20/plzoo-hs/blob/feature/lang_lambda/src/lambda/Syntax.hs |
2021-01-12 17:37:51 +0100 | hiroaki | (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) |
2021-01-12 17:38:12 +0100 | jlamothe | (~jlamothe@198.251.55.207) |
2021-01-12 17:39:23 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 260 seconds) |
2021-01-12 17:40:06 +0100 | p8m | (p8m@gateway/vpn/protonvpn/p8m) |
2021-01-12 17:40:08 +0100 | Natch | (~natch@c-b471e255.014-297-73746f25.bbcust.telenor.se) |
2021-01-12 17:40:09 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) |
2021-01-12 17:40:47 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-12 17:41:01 +0100 | mmmattyx | (uid17782@gateway/web/irccloud.com/x-lkskfelenbjwxgkl) |
2021-01-12 17:41:05 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-12 17:41:09 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 17:42:34 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-12 17:46:14 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2021-01-12 17:47:13 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e7426836b2ca9660f737.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2021-01-12 17:48:31 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
2021-01-12 17:49:34 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-01-12 17:50:50 +0100 | olligobber1 | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 256 seconds) |
2021-01-12 17:51:38 +0100 | ubert | (~Thunderbi@p200300ecdf1ee031e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-01-12 17:53:00 +0100 | ADG1089__ | (~aditya@122.163.165.143) |
2021-01-12 17:53:22 +0100 | geekosaur | (42d52137@66.213.33.55) |
2021-01-12 17:53:31 +0100 | <ski> | cmcma20 : `Show' instance is incorrect. did you try `deriving Show (Fin n)' ? |
2021-01-12 17:53:41 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@mx-ll-171.5.28-247.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 17:53:57 +0100 | Rudd0^ | (~Rudd0@185.189.115.108) |
2021-01-12 17:54:10 +0100 | <cmcma20> | ski: why do you think it's incorrect? |
2021-01-12 17:54:27 +0100 | <dminuoso> | It's only morally incorrect. |
2021-01-12 17:54:47 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:8c1d:42fb:24ab:a8e9) |
2021-01-12 17:54:48 +0100 | <ski> | show (FS (FS FZ)) = "FS FS FZ" |
2021-01-12 17:54:53 +0100 | <cmcma20> | do you think unary numbers need parentheses? |
2021-01-12 17:55:04 +0100 | abhixec_ | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-01-12 17:55:10 +0100 | <ski> | they do, in Haskell |
2021-01-12 17:55:33 +0100 | <ski> | `Show' is intended to produce a valid `String' representation of a Haskell expression |
2021-01-12 17:55:42 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-12 17:55:47 +0100 | <dminuoso> | To be fair, that characterization is an interpretation. |
2021-01-12 17:55:56 +0100 | <dminuoso> | The Haskell report only demands this of deriving generated instances |
2021-01-12 17:56:04 +0100 | landonf | (landonf@mac68k.info) (Quit: ZNC - http://znc.sourceforge.net) |
2021-01-12 17:56:07 +0100 | <dminuoso> | It does not hint that manually written instances should adhere to this |
2021-01-12 17:56:28 +0100 | <dminuoso> | The fact that half of hackage breaks this anyway, means the battle is already lost |
2021-01-12 17:56:30 +0100 | <ski> | true, but i think it's pretty reasonable to expect to not get nonsensical instances automatically generated for you (which *will* happen if you allow this) |
2021-01-12 17:56:52 +0100 | <cmcma20> | ski: this instance's result is actually isomorphic to the _truly_ correct one so I don't bother |
2021-01-12 17:57:19 +0100 | <dminuoso> | cmcma20: isomorphic in what sense? `FS FS FZ` is not well typed. |
2021-01-12 17:57:52 +0100 | <dolio> | show (Just (FS (FS FZ))) = "Just FS FS FZ" no? |
2021-01-12 17:58:02 +0100 | <ski> | yes |
2021-01-12 17:58:28 +0100 | Rudd0 | (~Rudd0@185.189.115.108) (Ping timeout: 272 seconds) |
2021-01-12 17:59:00 +0100 | <cmcma20> | I guess there is a unique function that can be composed with this particular instance show function to produce correct results |
2021-01-12 17:59:18 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-kaqotuxjmriehlgf) |
2021-01-12 17:59:20 +0100 | <cmcma20> | And this function is invertible |
2021-01-12 17:59:31 +0100 | <cmcma20> | So it's not an interesting exercise |
2021-01-12 17:59:31 +0100 | <ski> | it's only rarely that making a `Show' instance by defining `show' is correct. usually you want to define `showsPrec' |
2021-01-12 17:59:39 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:255c:8c1d:42fb:24ab:a8e9) (Ping timeout: 246 seconds) |
2021-01-12 17:59:57 +0100 | ep1ctetus | (~marcus_au@ip184-187-162-163.sb.sd.cox.net) |
2021-01-12 18:00:40 +0100 | <cmcma20> | Anyway thanks for pointing out the deficiency in this instance |
2021-01-12 18:01:09 +0100 | <ski> | what is the intended meaning of `substOut' ? |
2021-01-12 18:01:14 +0100 | <c_wraith> | fun fact about defining your own showsPrec - Prelude has a bunch of helper functions for exactly that. |
2021-01-12 18:01:26 +0100 | justsomeguy | (~Srain@unaffiliated/--/x-3805311) (Remote host closed the connection) |
2021-01-12 18:01:41 +0100 | <ski> | (`showParen',`showChar',`showString',`shows',..) |
2021-01-12 18:02:06 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) (Quit: WeeChat 3.0) |
2021-01-12 18:02:12 +0100 | <cmcma20> | ski: it's a useful primitive for different reduction strategies |
2021-01-12 18:06:04 +0100 | <cmcma20> | I like locally nameless because alpha-equivalence and de Brujin shifts are an absolute artificil bullshit |
2021-01-12 18:06:31 +0100 | <cmcma20> | this way equality is syntactical |
2021-01-12 18:07:20 +0100 | <cmcma20> | hmm, structural's a better word, sorry |
2021-01-12 18:08:13 +0100 | landonf | (landonf@mac68k.info) |
2021-01-12 18:08:41 +0100 | hexo | (~hexo@gateway/tor-sasl/hexo) |
2021-01-12 18:08:46 +0100 | srk | (~sorki@gateway/tor-sasl/sorki) |
2021-01-12 18:08:58 +0100 | Gurkenglas_ | (~Gurkengla@unaffiliated/gurkenglas) |
2021-01-12 18:09:15 +0100 | denisse_ | (~spaceCat@gateway/tor-sasl/alephzer0) |
2021-01-12 18:10:46 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0) |
2021-01-12 18:12:02 +0100 | <ski> | so `substOut rep t' substitutes `rep' for all the `TBound idx's with the highest `idx's (relative to the current level) ? |
2021-01-12 18:12:17 +0100 | halbGefressen | (~halbGefre@2a02:810d:f40:2a9c:40b2:2308:84bd:8b9b) |
2021-01-12 18:12:23 +0100 | nineonine | (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
2021-01-12 18:12:28 +0100 | ransom | (~c4264035@138.67.97.198) |
2021-01-12 18:12:32 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 244 seconds) |
2021-01-12 18:13:01 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2021-01-12 18:13:06 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-01-12 18:13:47 +0100 | gxt | (~gxt@gateway/tor-sasl/gxt) |
2021-01-12 18:14:31 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 18:15:02 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 18:16:58 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) (Remote host closed the connection) |
2021-01-12 18:17:36 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-01-12 18:17:43 +0100 | <cmcma20> | ski: with the lowest |
2021-01-12 18:18:58 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 246 seconds) |
2021-01-12 18:19:14 +0100 | <cmcma20> | Consider all the terms of type Term 0. They are actually closed so you can never substitute into them. |
2021-01-12 18:20:24 +0100 | <cmcma20> | But every lambda bumps a level for it's body. |
2021-01-12 18:20:57 +0100 | niekvand_ | (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
2021-01-12 18:21:31 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 18:21:37 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
2021-01-12 18:21:51 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 18:21:57 +0100 | <ski> | it looks to me like `decOut' will transform say `FZ',`FS FZ',`FS (FS FZ)' of type Fin ('S ('S ('S 'Z))) to, respectively, `Just FZ',`Just (FS FZ)',`Nothing' of type Maybe (Fin ('S ('S 'Z))) |
2021-01-12 18:22:23 +0100 | vappend | (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection) |
2021-01-12 18:22:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-12 18:22:51 +0100 | christo | (~chris@81.96.113.213) |
2021-01-12 18:23:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 18:24:10 +0100 | <cmcma20> | btw "closed" is again a wrong word here, hmm |
2021-01-12 18:24:49 +0100 | knupfer | (~Thunderbi@200116b82c27b700501e28fffefae5b3.dip.versatel-1u1.de) |
2021-01-12 18:25:48 +0100 | knupfer | (~Thunderbi@200116b82c27b700501e28fffefae5b3.dip.versatel-1u1.de) (Remote host closed the connection) |
2021-01-12 18:25:57 +0100 | <cmcma20> | ski: Yes, you're right. Basically it gives Nothing if your index is last in your Fin. |
2021-01-12 18:26:00 +0100 | knupfer | (~Thunderbi@200116b82c27b7006458ac017ad1180f.dip.versatel-1u1.de) |
2021-01-12 18:26:05 +0100 | <ski> | so, highest |
2021-01-12 18:27:07 +0100 | <cmcma20> | OK, it's highest. I have a hard time distinguishing dual things, sorry. |
2021-01-12 18:27:17 +0100 | <ski> | so, in `TApp (TBound FZ) (TLam (TBound (FS FZ)))' of type Term ('S 'Z) both `TBound (..)'s will be substituted for |
2021-01-12 18:27:43 +0100 | <ski> | (despite having differing indices .. not sure whether this was by design or not) |
2021-01-12 18:28:56 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:1875:e83f:3e95:4d35) (Remote host closed the connection) |
2021-01-12 18:29:04 +0100 | <cmcma20> | Term ('S 'Z) means that this expression is under one lambda. So both will be substituted as they both point to the same lambda. |
2021-01-12 18:29:19 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-12 18:29:34 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:1875:e83f:3e95:4d35) |
2021-01-12 18:30:00 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:1875:e83f:3e95:4d35) (Remote host closed the connection) |
2021-01-12 18:30:06 +0100 | Vulfe | (~vulfe@2600:1702:31b0:34e0:1875:e83f:3e95:4d35) |
2021-01-12 18:30:10 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 246 seconds) |
2021-01-12 18:30:23 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-01-12 18:30:24 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) (Remote host closed the connection) |
2021-01-12 18:30:41 +0100 | <cmcma20> | It's much better if you draw them. Term n is a box with n input wires. |
2021-01-12 18:31:25 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving) |
2021-01-12 18:33:10 +0100 | <ski> | i was thinking that you wanted instances of the same bound variable to be represented in the same way (structurally equal, as you said). if so, then `substOut' will (e.g. in the above case) substitute for multiple different variables |
2021-01-12 18:33:27 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) |
2021-01-12 18:34:51 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
2021-01-12 18:35:32 +0100 | Wuzzy | (~Wuzzy@p5790e691.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
2021-01-12 18:36:14 +0100 | geekosaur | (42d52137@66.213.33.55) (Quit: Connection closed) |
2021-01-12 18:37:11 +0100 | geekosaur | (42d52137@66.213.33.55) |
2021-01-12 18:37:15 +0100 | locrian9 | (~mike@99-153-255-194.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-01-12 18:37:15 +0100 | DavidEichmann | (~david@98.27.93.209.dyn.plus.net) (Ping timeout: 256 seconds) |
2021-01-12 18:37:48 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 256 seconds) |
2021-01-12 18:41:12 +0100 | <ukari> | I need to add a " $( return [] )" manully to prevent template haskell error like‘Foo’ is not in the type environment at a reify in code `foz=$(foo ''Foo)` with foo::Name -> Q Exp |
2021-01-12 18:42:57 +0100 | geekosaur | (42d52137@66.213.33.55) (Ping timeout: 248 seconds) |
2021-01-12 18:43:12 +0100 | <ukari> | but when I import package Lens and write `makeLenses ''Bar` in the same file of `foo` and `Foo`, the "not in the type environment " error auto disappear and there is no need to add `$( return [] )` any more |
2021-01-12 18:43:32 +0100 | <ukari> | why? |
2021-01-12 18:44:03 +0100 | <glguy> | ukari: because one is a declaration splice and the other is an expression splice |
2021-01-12 18:44:11 +0100 | <merijn> | ukari: oooh, did you put "makeLenses" somewhere in the middle? |
2021-01-12 18:44:24 +0100 | <glguy> | also you can shorten $(return []) to pure [] |
2021-01-12 18:44:28 +0100 | tito_04 | (~taurux@net-109-115-33-214.cust.vodafonedsl.it) |
2021-01-12 18:44:42 +0100 | <glguy> | you don't need $() for declaration splices |
2021-01-12 18:44:56 +0100 | <ukari> | and how could lens `makeLenses::Name -> DecsQ` a pure function do something like a $() |
2021-01-12 18:44:58 +0100 | <merijn> | anymore :p |
2021-01-12 18:45:04 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2021-01-12 18:45:16 +0100 | <glguy> | all functions are pure |
2021-01-12 18:45:27 +0100 | <merijn> | ukari: You don't need $() at the top level anymore as glguy says |
2021-01-12 18:45:58 +0100 | taurux | (~taurux@net-109-115-33-214.cust.vodafonedsl.it) (Ping timeout: 272 seconds) |
2021-01-12 18:46:48 +0100 | Kaiepi | (~Kaiepi@47.54.252.148) |
2021-01-12 18:47:20 +0100 | tv | (~tv@unaffiliated/tv) |
2021-01-12 18:47:31 +0100 | howdoi | (uid224@gateway/web/irccloud.com/x-hhcvifznrcarwudg) |
2021-01-12 18:47:32 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-12 18:47:43 +0100 | <dminuoso> | Some consider it good style to always use $() for splices though. |
2021-01-12 18:47:45 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-12 18:47:54 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 18:48:30 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-12 18:48:40 +0100 | <ukari> | I try pure [] and it works as well as $( return [] ) |
2021-01-12 18:48:54 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2021-01-12 18:49:38 +0100 | <ukari> | but how could do things like `makeLenses`? It seems don't need add a `pure []` |
2021-01-12 18:50:00 +0100 | nitrix | (~nitrix@haskell/developer/nitrix) (Remote host closed the connection) |
2021-01-12 18:50:01 +0100 | rajivr | (uid269651@gateway/web/irccloud.com/x-gnedumgsvnojinhm) (Quit: Connection closed for inactivity) |
2021-01-12 18:50:06 +0100 | <glguy> | ukari: a top level makeLenses is a *declaration splice*. these behave differently from *expression splices* |
2021-01-12 18:50:12 +0100 | <glguy> | this why you're seeing different behaviors |
2021-01-12 18:50:57 +0100 | <glguy> | A declaration splice can only see declarations above it, and it generates declarations that will be in scope below it |
2021-01-12 18:52:04 +0100 | DavidEichmann | (~david@82-132-217-213.dab.02.net) |
2021-01-12 18:53:49 +0100 | <dminuoso> | Side-note, this only applies to TH declaration splices, not to QQ declaration splices. |
2021-01-12 18:54:15 +0100 | david__ | (~david@234.109.45.217.dyn.plus.net) |
2021-01-12 18:54:19 +0100 | <dminuoso> | I think? |
2021-01-12 18:54:20 +0100 | nitrix | (~nitrix@haskell/developer/nitrix) |
2021-01-12 18:54:28 +0100 | <dminuoso> | My head spins when I read the manual; |
2021-01-12 18:54:32 +0100 | <cmcma20> | ski: nah I meant that for example identity combinator is uniquely represented by (λ.0) or (TLam (TBound FZ) :: Term 'Z) here |
2021-01-12 18:55:08 +0100 | <ski> | oic |
2021-01-12 18:55:22 +0100 | usr25 | (~usr25@unaffiliated/usr25) (Quit: Leaving) |
2021-01-12 18:55:34 +0100 | <ski> | (also for `forall n. Term n' ?) |
2021-01-12 18:55:55 +0100 | DavidEichmann | (~david@82-132-217-213.dab.02.net) (Read error: Connection reset by peer) |
2021-01-12 18:56:23 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-12 18:57:46 +0100 | pera | (pera@gateway/vpn/mullvad/pera) |
2021-01-12 18:57:48 +0100 | <Feuermagier> | how do i deconstruct a data x = String String String in a Lambda? |
2021-01-12 18:58:55 +0100 | <cmcma20> | ski: I don't think so. Term n potentially has access to n inputs. |
2021-01-12 18:58:58 +0100 | dyeplexer | (~lol@unaffiliated/terpin) (Remote host closed the connection) |
2021-01-12 18:59:13 +0100 | <cmcma20> | Feuermagier: data X = MkX String String String |
2021-01-12 18:59:17 +0100 | <ukari> | thank you, glguy, it helps a lot. both of `pure []` and `makeLenses` has a signature with Q [Dec], and write in top level could omit $(...), and they will be treated as declaration splice |
2021-01-12 18:59:27 +0100 | <cmcma20> | Feuermagier: \(MkX a b c) -> _ |
2021-01-12 18:59:53 +0100 | <Feuermagier> | thx! |
2021-01-12 19:00:47 +0100 | ransom | (~c4264035@138.67.97.198) (Quit: Textual IRC Client: www.textualapp.com) |
2021-01-12 19:01:14 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-01-12 19:01:37 +0100 | <ski> | cmcma20 : so you can't uniquely identify weakened identity combinators, inside lambdas ? |
2021-01-12 19:02:44 +0100 | <cmcma20> | ski: you can but user will be spared of dealing with anything besides Term 'Z |
2021-01-12 19:03:22 +0100 | <ski> | ok |
2021-01-12 19:03:36 +0100 | <cmcma20> | ski: This type family just encodes correct lambda scoping so you can never construct a bound variable pointing into nothingness. |
2021-01-12 19:04:15 +0100 | locrian9 | (~mike@99-153-255-194.lightspeed.irvnca.sbcglobal.net) |
2021-01-12 19:04:50 +0100 | <cmcma20> | ski: The whole point of using singletons was to get not just any encoding of lambda terms inside Haskell, but a _tight_ one. |
2021-01-12 19:05:16 +0100 | ski | nods |
2021-01-12 19:05:26 +0100 | <Feuermagier> | cmcma20, what is Mkx in your example? |
2021-01-12 19:05:44 +0100 | <cmcma20> | Feuermagier: it's a constructor for the type X |
2021-01-12 19:05:54 +0100 | geekosaur | (42d52137@66.213.33.55) |
2021-01-12 19:07:00 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:4908:2cb1:4b68:c89e) |
2021-01-12 19:08:15 +0100 | <cmcma20> | Feuermagier: MkX :: String -> String -> String -> X |
2021-01-12 19:09:25 +0100 | <Feuermagier> | thx. i got it now :) |
2021-01-12 19:09:56 +0100 | <Feuermagier> | I forgot that the last one is the return type and not a variable |
2021-01-12 19:10:09 +0100 | <Feuermagier> | mixed up number of arguments |
2021-01-12 19:10:45 +0100 | tv | (~tv@unaffiliated/tv) (Ping timeout: 256 seconds) |
2021-01-12 19:12:26 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) |
2021-01-12 19:13:59 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:99fa:b935:779b:e172) |
2021-01-12 19:14:17 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-12 19:17:42 +0100 | reyu | (~reyu@znc.reyuzenfold.com) (Quit: Fox Out!) |
2021-01-12 19:21:49 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
2021-01-12 19:22:45 +0100 | debclair | (~debclair@host-181-39-120-169.netlife.ec) |
2021-01-12 19:22:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-12 19:23:08 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 19:23:34 +0100 | dandels | (~dandels@unaffiliated/dandels) |
2021-01-12 19:23:42 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-12 19:26:07 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Ping timeout: 260 seconds) |
2021-01-12 19:27:11 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-12 19:27:28 +0100 | alexcleac | (~alex@213.111.86.105) |
2021-01-12 19:27:52 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Client Quit) |
2021-01-12 19:28:21 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-12 19:28:25 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds) |
2021-01-12 19:29:27 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-01-12 19:34:25 +0100 | dandels | (~dandels@unaffiliated/dandels) (Ping timeout: 264 seconds) |
2021-01-12 19:35:19 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) (Remote host closed the connection) |
2021-01-12 19:37:54 +0100 | faustind | (0e0843e1@M014008067225.v4.enabler.ne.jp) (Quit: Connection closed) |
2021-01-12 19:39:58 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) |
2021-01-12 19:40:00 +0100 | cmcma20 | (~cmcma20@l37-192-2-125.novotelecom.ru) (Quit: leaving) |
2021-01-12 19:40:19 +0100 | geekosaur | (42d52137@66.213.33.55) (Quit: Connection closed) |
2021-01-12 19:40:42 +0100 | is_null | (~jpic@pdpc/supporter/professional/is-null) |
2021-01-12 19:41:35 +0100 | geekosaur | (42d52137@66.213.33.55) |
2021-01-12 19:45:24 +0100 | knupfer | (~Thunderbi@200116b82c27b7006458ac017ad1180f.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
2021-01-12 19:51:12 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) (Remote host closed the connection) |
2021-01-12 19:55:34 +0100 | maxsu | (~maxsu@ip-64-72-99-232.lasvegas.net) (Ping timeout: 246 seconds) |
2021-01-12 19:55:40 +0100 | pera | (pera@gateway/vpn/mullvad/pera) (Ping timeout: 256 seconds) |
2021-01-12 19:55:57 +0100 | matryoshka | (~matryoshk@184.75.223.227) (Read error: Connection reset by peer) |
2021-01-12 19:56:13 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
2021-01-12 19:57:22 +0100 | pera | (~pera@unaffiliated/pera) |
2021-01-12 19:57:53 +0100 | matryoshka | (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer) |
2021-01-12 19:58:02 +0100 | matryoshka` | (~matryoshk@184.75.223.227) |
2021-01-12 19:58:04 +0100 | borne | (~fritjof@200116b86411c700aa0a83b5acfe977f.dip.versatel-1u1.de) (Ping timeout: 240 seconds) |
2021-01-12 19:58:54 +0100 | rmk236 | (~lcampos@2a02:908:3616:b100:99fa:b935:779b:e172) (Quit: Leaving.) |
2021-01-12 19:59:29 +0100 | Lord_of_Life_ | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2021-01-12 20:00:13 +0100 | debclair | (~debclair@host-181-39-120-169.netlife.ec) (Ping timeout: 264 seconds) |
2021-01-12 20:02:37 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds) |
2021-01-12 20:02:41 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-01-12 20:02:43 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:4908:2cb1:4b68:c89e) (Max SendQ exceeded) |
2021-01-12 20:02:50 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-01-12 20:03:12 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:4908:2cb1:4b68:c89e) |
2021-01-12 20:03:30 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2021-01-12 20:04:31 +0100 | ggole | (~ggole@2001:8003:8119:7200:541f:f655:3fda:a8bb) (Quit: Leaving) |
2021-01-12 20:04:38 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
2021-01-12 20:04:40 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-01-12 20:06:52 +0100 | chele | (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
2021-01-12 20:07:43 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
2021-01-12 20:08:13 +0100 | manmachineman | (~manmachin@93-172-48-98.bb.netvision.net.il) |
2021-01-12 20:11:53 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2021-01-12 20:12:02 +0100 | tv | (~tv@unaffiliated/tv) |
2021-01-12 20:14:55 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) |
2021-01-12 20:15:15 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 20:15:32 +0100 | ukari | (~ukari@unaffiliated/ukari) (Remote host closed the connection) |
2021-01-12 20:16:28 +0100 | ukari | (~ukari@unaffiliated/ukari) |
2021-01-12 20:17:47 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-zfmzrhpcnpxmksjd) (Quit: Connection closed for inactivity) |
2021-01-12 20:18:04 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) (Quit: dandart) |
2021-01-12 20:18:10 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-12 20:18:19 +0100 | ph88 | (~ph88@95.90.247.26) (Ping timeout: 246 seconds) |
2021-01-12 20:18:46 +0100 | christo | (~chris@81.96.113.213) |
2021-01-12 20:19:52 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 256 seconds) |
2021-01-12 20:21:56 +0100 | b4er | (~b4er@193.27.14.141) |
2021-01-12 20:22:47 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-12 20:23:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 20:23:37 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
2021-01-12 20:25:24 +0100 | cheater | (~user@unaffiliated/cheater) (Ping timeout: 272 seconds) |
2021-01-12 20:27:16 +0100 | christo | (~chris@81.96.113.213) |
2021-01-12 20:29:39 +0100 | matryoshka` | (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-01-12 20:29:58 +0100 | matryoshka | (~matryoshk@184.75.223.227) |
2021-01-12 20:32:31 +0100 | Wuzzy | (~Wuzzy@p5790e10f.dip0.t-ipconnect.de) |
2021-01-12 20:32:57 +0100 | manmachineman | (~manmachin@93-172-48-98.bb.netvision.net.il) () |
2021-01-12 20:33:03 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2021-01-12 20:33:24 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2021-01-12 20:35:56 +0100 | kuribas | (~user@ptr-25vy0iaexs88rik0imq.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2021-01-12 20:36:08 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2021-01-12 20:36:37 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-12 20:38:14 +0100 | alexcleac | (~alex@213.111.86.105) (Quit: leaving) |
2021-01-12 20:38:52 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving) |
2021-01-12 20:38:57 +0100 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
2021-01-12 20:40:12 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2021-01-12 20:43:51 +0100 | danso | (~dan@23-233-104-25.cpe.pppoe.ca) |
2021-01-12 20:44:33 +0100 | geekosaur | (42d52137@66.213.33.55) (Ping timeout: 248 seconds) |
2021-01-12 20:45:49 +0100 | mmfood | (~mmfood@45.91.21.48) |
2021-01-12 20:46:40 +0100 | locrian9 | (~mike@99-153-255-194.lightspeed.irvnca.sbcglobal.net) (Read error: Connection reset by peer) |
2021-01-12 20:46:40 +0100 | jonathanx | (~jonathan@h-176-109.A357.priv.bahnhof.se) (Ping timeout: 246 seconds) |
2021-01-12 20:47:01 +0100 | shatriff | (~vitaliish@176-52-216-242.irishtelecom.com) |
2021-01-12 20:50:09 +0100 | nineonine | (~nineonine@50.216.62.2) (Ping timeout: 260 seconds) |
2021-01-12 20:50:28 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:6525:380:35f5:9d2f) |
2021-01-12 20:51:12 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Read error: Connection reset by peer) |
2021-01-12 20:51:17 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-12 20:51:35 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) |
2021-01-12 20:51:36 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 20:51:38 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 20:54:02 +0100 | lambda-11235 | (~lambda-11@2600:1700:7c70:4600:4908:2cb1:4b68:c89e) (Ping timeout: 264 seconds) |
2021-01-12 20:54:05 +0100 | Deide | (~Deide@217.155.19.23) |
2021-01-12 20:56:26 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) (Ping timeout: 264 seconds) |
2021-01-12 20:57:04 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
2021-01-12 20:57:47 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-12 21:02:08 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 272 seconds) |
2021-01-12 21:02:22 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2021-01-12 21:03:07 +0100 | evanjs | (~evanjs@075-129-098-007.res.spectrum.com) |
2021-01-12 21:04:06 +0100 | <idnar> | @type (maybe retry pure =<<) |
2021-01-12 21:04:08 +0100 | <lambdabot> | error: Variable not in scope: retry :: m b |
2021-01-12 21:05:36 +0100 | <idnar> | @type (maybe Control.Concurrent.STM.retry pure =<<) |
2021-01-12 21:05:38 +0100 | <lambdabot> | GHC.Conc.Sync.STM (Maybe b) -> GHC.Conc.Sync.STM b |
2021-01-12 21:06:22 +0100 | <idnar> | @hoogle STM (Maybe b) -> STM b |
2021-01-12 21:06:23 +0100 | <lambdabot> | Control.Monad.Extra untilJustM :: Monad m => m (Maybe a) -> m a |
2021-01-12 21:06:23 +0100 | <lambdabot> | Extra untilJustM :: Monad m => m (Maybe a) -> m a |
2021-01-12 21:06:23 +0100 | <lambdabot> | Control.Monad.Loops untilJust :: Monad m => m (Maybe a) -> m a |
2021-01-12 21:06:37 +0100 | <idnar> | hmm actually |
2021-01-12 21:06:55 +0100 | <idnar> | @type (maybe empty pure =<<) |
2021-01-12 21:06:56 +0100 | <lambdabot> | (Monad m, Alternative m) => m (Maybe b) -> m b |
2021-01-12 21:07:36 +0100 | <idnar> | @type (maybe mzero pure =<<) |
2021-01-12 21:07:37 +0100 | <lambdabot> | MonadPlus m => m (Maybe b) -> m b |
2021-01-12 21:07:58 +0100 | <idnar> | @hoogle MonadPlus m => m (Maybe b) -> m b |
2021-01-12 21:07:59 +0100 | <lambdabot> | Control.Monad.Extra untilJustM :: Monad m => m (Maybe a) -> m a |
2021-01-12 21:07:59 +0100 | <lambdabot> | Extra untilJustM :: Monad m => m (Maybe a) -> m a |
2021-01-12 21:07:59 +0100 | <lambdabot> | Control.Monad.Loops untilJust :: Monad m => m (Maybe a) -> m a |
2021-01-12 21:08:00 +0100 | fresheyeball | (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-01-12 21:08:14 +0100 | <idnar> | bah |
2021-01-12 21:10:31 +0100 | acidjnk_new | (~acidjnk@p200300d0c704e7426836b2ca9660f737.dip0.t-ipconnect.de) |
2021-01-12 21:10:49 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2021-01-12 21:12:57 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-01-12 21:13:18 +0100 | <idnar> | is there a nicer way to write that (=<<) section? |
2021-01-12 21:18:09 +0100 | geekosaur | (42d52137@66.213.33.55) |
2021-01-12 21:18:09 +0100 | lambda-11235 | (~lambda-11@108-237-120-58.lightspeed.frokca.sbcglobal.net) |
2021-01-12 21:22:50 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Read error: Connection reset by peer) |
2021-01-12 21:23:07 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 21:24:05 +0100 | <tomsmeding> | :t (>>= fromMaybe empty) |
2021-01-12 21:24:07 +0100 | <lambdabot> | (Monad m, Alternative m) => m (Maybe (m b)) -> m b |
2021-01-12 21:24:32 +0100 | <tomsmeding> | scratch that |
2021-01-12 21:25:59 +0100 | <tomsmeding> | @hoogle Control.Monad.Extra.liftMaybe |
2021-01-12 21:25:59 +0100 | <lambdabot> | Control.Monad.Extra liftMaybe :: MonadPlus m => Maybe a -> m a |
2021-01-12 21:26:37 +0100 | <tomsmeding> | idnar: (>>= liftMaybe) |
2021-01-12 21:26:44 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 21:28:06 +0100 | esph | (~weechat@unaffiliated/esph) (Ping timeout: 272 seconds) |
2021-01-12 21:28:30 +0100 | esph | (~weechat@unaffiliated/esph) |
2021-01-12 21:28:35 +0100 | <idnar> | tomsmeding: ooh; I might just use that inline |
2021-01-12 21:28:35 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) |
2021-01-12 21:29:09 +0100 | <tomsmeding> | to all who care to look: do these line numbers line up nicely? https://paste.tomsmeding.com/nzAlJVxG |
2021-01-12 21:29:42 +0100 | <tomsmeding> | they do for me, but I didn't try on weird browsers :p |
2021-01-12 21:30:28 +0100 | <__monty__> | They do for me in firefox. |
2021-01-12 21:30:56 +0100 | <tomsmeding> | because then the paste thing now has line numbers :) |
2021-01-12 21:31:48 +0100 | <idnar> | @type either fail pure -- what about this? |
2021-01-12 21:31:50 +0100 | <lambdabot> | MonadFail m => Either String a -> m a |
2021-01-12 21:31:58 +0100 | thc202 | (~thc202@unaffiliated/thc202) (Quit: thc202) |
2021-01-12 21:32:25 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
2021-01-12 21:32:57 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 21:33:13 +0100 | <tomsmeding> | that MonadFail usage is far less likely to have a nice generic function in some common library I think |
2021-01-12 21:33:46 +0100 | <tomsmeding> | I mean, you could write liftEither = either fail pure :p |
2021-01-12 21:33:47 +0100 | <sm[m]> | alignment looks good in IOS safari & brave, tomsmeding |
2021-01-12 21:33:59 +0100 | <tomsmeding> | good to hear sm[m], thanks |
2021-01-12 21:34:13 +0100 | <tomsmeding> | those are two browsers I didn't test :) |
2021-01-12 21:34:14 +0100 | <Rembane> | tomsmeding: Looking good in Firefox. What are weird browsers to you? :) |
2021-01-12 21:34:24 +0100 | <tomsmeding> | I tried pc firefox, android firefox+chrome :p |
2021-01-12 21:34:36 +0100 | <tomsmeding> | I don't care much about IE |
2021-01-12 21:34:55 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2021-01-12 21:35:18 +0100 | <tomsmeding> | apparently in CSS, 'line-height: normal' means something different than an actual fixed line-height |
2021-01-12 21:35:32 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2021-01-12 21:36:37 +0100 | <Rembane> | tomsmeding: That's interesting. In my experience, nothing in CSS means what I think it means. :) |
2021-01-12 21:37:05 +0100 | <tomsmeding> | while 'nothing' is perhaps an overstatement, I agree with the sentiment |
2021-01-12 21:37:20 +0100 | <ski> | @type either throwError return |
2021-01-12 21:37:21 +0100 | <lambdabot> | MonadError e m => Either e a -> m a |
2021-01-12 21:37:35 +0100 | <Rembane> | For big values of nothing... |
2021-01-12 21:37:36 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Ping timeout: 272 seconds) |
2021-01-12 21:37:43 +0100 | <tomsmeding> | font-weight: bold |
2021-01-12 21:40:01 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:6525:380:35f5:9d2f) (Ping timeout: 272 seconds) |
2021-01-12 21:40:21 +0100 | jfe | (~user@pool-71-184-149-134.bstnma.fios.verizon.net) |
2021-01-12 21:42:45 +0100 | TMA | (tma@twin.jikos.cz) |
2021-01-12 21:46:54 +0100 | <carbolymer> | can I use stack script with HLS/hie-bios? |
2021-01-12 21:46:59 +0100 | <carbolymer> | how should I define it in yaml? |
2021-01-12 21:47:05 +0100 | <carbolymer> | hie.yaml |
2021-01-12 21:49:43 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
2021-01-12 21:50:05 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 21:51:36 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 21:52:25 +0100 | jfe | (~user@pool-71-184-149-134.bstnma.fios.verizon.net) (Ping timeout: 264 seconds) |
2021-01-12 21:52:29 +0100 | <sm[m]> | I'm not sure that's possible yet carbolymer |
2021-01-12 21:52:36 +0100 | <sm[m]> | I'd like that too |
2021-01-12 21:52:41 +0100 | <carbolymer> | :/ |
2021-01-12 21:53:24 +0100 | <sm[m]> | ask #haskell-ide-engine |
2021-01-12 21:54:19 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds) |
2021-01-12 21:55:14 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
2021-01-12 21:57:51 +0100 | juri_ | (~juri@178.63.35.222) (Ping timeout: 256 seconds) |
2021-01-12 22:00:02 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
2021-01-12 22:00:56 +0100 | LiamD | (43aae10c@c-67-170-225-12.hsd1.ca.comcast.net) |
2021-01-12 22:03:14 +0100 | elliott_ | (~elliott_@pool-108-51-101-42.washdc.fios.verizon.net) |
2021-01-12 22:03:51 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2021-01-12 22:04:21 +0100 | son0p | (~son0p@181.136.122.143) |
2021-01-12 22:04:28 +0100 | iteratee | (~kyle@162.211.154.4) (Remote host closed the connection) |
2021-01-12 22:04:44 +0100 | Tops21 | (~Tobias@dyndsl-095-033-022-123.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
2021-01-12 22:05:00 +0100 | Bergle_1 | (~Bergle_4@101.165.90.119) (Quit: Leaving) |
2021-01-12 22:08:56 +0100 | <adamCS> | should I need to do anything but specify "ghc-options: -eventlog -rtsopts" in my executable cabal stanza to then be able to run with "+RTS -l" ? I tried that and I am getting a long error message which begins "the flag -l requires the program to be built with -eventlog or -debug". And I verified with "cabal -v" that "-eventlog" is present at compile and link. |
2021-01-12 22:09:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-01-12 22:09:47 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection) |
2021-01-12 22:10:05 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-12 22:13:28 +0100 | dandart | (~Thunderbi@home.dandart.co.uk) |
2021-01-12 22:14:58 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-01-12 22:15:45 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 22:16:00 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) |
2021-01-12 22:16:41 +0100 | <Uniaika> | bi_functor: heya :) |
2021-01-12 22:18:25 +0100 | euler | (49f187de@c-73-241-135-222.hsd1.ca.comcast.net) |
2021-01-12 22:19:35 +0100 | euler | (49f187de@c-73-241-135-222.hsd1.ca.comcast.net) (Client Quit) |
2021-01-12 22:19:55 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
2021-01-12 22:20:40 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds) |
2021-01-12 22:20:44 +0100 | bi_functor | (~bi_functo@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 265 seconds) |
2021-01-12 22:21:09 +0100 | star_cloud | (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
2021-01-12 22:22:46 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!) |
2021-01-12 22:23:08 +0100 | zebrag | (~inkbottle@aaubervilliers-654-1-109-134.w86-212.abo.wanadoo.fr) |
2021-01-12 22:23:54 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
2021-01-12 22:24:41 +0100 | juri_ | (~juri@79.140.122.154) |
2021-01-12 22:24:54 +0100 | knupfer | (~Thunderbi@87.123.206.120) |
2021-01-12 22:25:49 +0100 | borne | (~fritjof@200116b86411c700aa0a83b5acfe977f.dip.versatel-1u1.de) |
2021-01-12 22:26:43 +0100 | juri_ | (~juri@79.140.122.154) (Read error: Connection reset by peer) |
2021-01-12 22:27:02 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2021-01-12 22:29:28 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-12 22:30:26 +0100 | mmmattyx | (uid17782@gateway/web/irccloud.com/x-lkskfelenbjwxgkl) (Quit: Connection closed for inactivity) |
2021-01-12 22:33:25 +0100 | debclair | (~debclair@host-181-39-120-169.netlife.ec) |
2021-01-12 22:34:36 +0100 | juri_ | (~juri@178.63.35.222) |
2021-01-12 22:35:22 +0100 | abrar | (~abrar@static-108-30-103-121.nycmny.fios.verizon.net) (Quit: WeeChat 2.9) |
2021-01-12 22:36:21 +0100 | neiluj | (~jco@unaffiliated/neiluj) (Quit: leaving) |
2021-01-12 22:36:34 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Ping timeout: 246 seconds) |
2021-01-12 22:36:38 +0100 | cheater | (~user@unaffiliated/cheater) |
2021-01-12 22:36:48 +0100 | mmmattyx | (uid17782@gateway/web/irccloud.com/x-tzsvjcfzpzlemwdx) |
2021-01-12 22:36:55 +0100 | ransom | (~c4264035@8.48.134.54) |
2021-01-12 22:37:12 +0100 | abrar | (~abrar@static-108-30-103-121.nycmny.fios.verizon.net) |
2021-01-12 22:41:53 +0100 | eliteyawuy | (~eliteyawu@130.70.130.244) |
2021-01-12 22:44:01 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com) |
2021-01-12 22:45:45 +0100 | eliteyawuy | (~eliteyawu@130.70.130.244) (Read error: Connection reset by peer) |
2021-01-12 22:47:18 +0100 | dhouthoo | (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 3.0) |
2021-01-12 22:47:56 +0100 | debclair | (~debclair@host-181-39-120-169.netlife.ec) (Quit: Leaving) |
2021-01-12 22:48:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 22:50:16 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) |
2021-01-12 22:50:41 +0100 | ubert | (~Thunderbi@p200300ecdf1ee031e6b318fffe838f33.dip0.t-ipconnect.de) |
2021-01-12 22:50:47 +0100 | geekosaur | (42d52137@66.213.33.55) (Quit: Connection closed) |
2021-01-12 22:53:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-01-12 22:54:31 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Remote host closed the connection) |
2021-01-12 22:58:25 +0100 | conal | (~conal@107.181.166.211) (Quit: Computer has gone to sleep.) |
2021-01-12 22:58:33 +0100 | sakirious | (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
2021-01-12 22:58:44 +0100 | jamm | (~jamm@unaffiliated/jamm) |
2021-01-12 22:59:00 +0100 | conal | (~conal@107.181.166.211) |
2021-01-12 22:59:06 +0100 | conal | (~conal@107.181.166.211) (Client Quit) |
2021-01-12 22:59:39 +0100 | conal | (~conal@107.181.166.211) |
2021-01-12 23:00:14 +0100 | Guest94505 | (~textual@mskresolve-a.mskcc.org) (Ping timeout: 256 seconds) |
2021-01-12 23:01:23 +0100 | LKoen | (~LKoen@152.172.9.109.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.”) |
2021-01-12 23:01:43 +0100 | royal_screwup21 | (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
2021-01-12 23:01:52 +0100 | mmfood | (~mmfood@45.91.21.48) (Quit: Leaving) |
2021-01-12 23:02:56 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) |
2021-01-12 23:02:56 +0100 | mouseghost | (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
2021-01-12 23:02:56 +0100 | mouseghost | (~draco@wikipedia/desperek) |
2021-01-12 23:03:38 +0100 | jamm | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2021-01-12 23:04:09 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-01-12 23:04:29 +0100 | pfurla | (~pfurla@ool-182ed2e2.dyn.optonline.net) |
2021-01-12 23:05:12 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) (Remote host closed the connection) |
2021-01-12 23:05:29 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) |
2021-01-12 23:05:31 +0100 | nineonine | (~nineonine@50.216.62.2) |
2021-01-12 23:06:04 +0100 | Elliott | (~textual@ip68-12-87-70.ok.ok.cox.net) |
2021-01-12 23:06:15 +0100 | Elliott | (~textual@ip68-12-87-70.ok.ok.cox.net) () |
2021-01-12 23:08:47 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-01-12 23:09:03 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-01-12 23:10:01 +0100 | usr25 | (~usr25@unaffiliated/usr25) |
2021-01-12 23:10:04 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:7525:3d36:8cf7:15dd) (Ping timeout: 240 seconds) |
2021-01-12 23:12:21 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
2021-01-12 23:12:31 +0100 | ransom | (~c4264035@8.48.134.54) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-01-12 23:12:48 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-01-12 23:13:13 +0100 | jfe | (~user@pool-71-184-149-134.bstnma.fios.verizon.net) |
2021-01-12 23:13:16 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) |
2021-01-12 23:14:46 +0100 | <jfe> | hi all |
2021-01-12 23:15:16 +0100 | knupfer | (~Thunderbi@87.123.206.120) (Ping timeout: 240 seconds) |
2021-01-12 23:16:57 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:6525:380:35f5:9d2f) |
2021-01-12 23:17:44 +0100 | noob_on_rails | (~kvirc@ppp-2-86-127-175.home.otenet.gr) |
2021-01-12 23:17:45 +0100 | fendor_ | (~fendor@178.115.130.17.wireless.dyn.drei.com) (Ping timeout: 240 seconds) |
2021-01-12 23:18:19 +0100 | <noob_on_rails> | hey all, is there a channel dedicated to TidalCycles? |
2021-01-12 23:20:16 +0100 | cgadski | (~cgadski@a95-95-106-208.cpe.netcabo.pt) |
2021-01-12 23:20:22 +0100 | michalz | (~user@185.246.204.78) (Remote host closed the connection) |
2021-01-12 23:20:42 +0100 | ransom | (~c4264035@2a09:bac0:98::830:8636) |
2021-01-12 23:22:53 +0100 | ericsagnes | (~ericsagne@2405:6580:0:5100:15:4fbd:9a97:4e33) |
2021-01-12 23:25:04 +0100 | __monty__ | (~toonn@unaffiliated/toonn) (Quit: leaving) |
2021-01-12 23:26:06 +0100 | faustind | (0e0843e1@M014008067225.v4.enabler.ne.jp) |
2021-01-12 23:26:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-01-12 23:28:20 +0100 | faustind | (0e0843e1@M014008067225.v4.enabler.ne.jp) (Client Quit) |
2021-01-12 23:29:03 +0100 | dcoutts | (~dcoutts@unaffiliated/dcoutts) (Remote host closed the connection) |
2021-01-12 23:31:17 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
2021-01-12 23:31:30 +0100 | dcoutts | (~dcoutts@unaffiliated/dcoutts) |
2021-01-12 23:31:54 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 23:32:30 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
2021-01-12 23:32:42 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 23:34:37 +0100 | RedNifre | (~michael@dslb-002-203-247-083.002.203.pools.vodafone-ip.de) ("WeeChat 1.9.1") |
2021-01-12 23:36:34 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-01-12 23:38:08 +0100 | coot | (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2021-01-12 23:43:22 +0100 | conal | (~conal@107.181.166.211) (Quit: Computer has gone to sleep.) |
2021-01-12 23:43:58 +0100 | <ski> | apparently there's a #tidal channel .. dunno whether it's related |
2021-01-12 23:44:50 +0100 | <ski> | in the second link, there seems to be more noise in the MP3 spectrogram |
2021-01-12 23:45:16 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2021-01-12 23:45:16 +0100 | conal | (~conal@107.181.166.211) |
2021-01-12 23:45:31 +0100 | conal | (~conal@107.181.166.211) (Client Quit) |
2021-01-12 23:47:01 +0100 | heatsink | (~heatsink@2600:1700:bef1:5e10:45f3:1cb8:c634:bead) (Remote host closed the connection) |
2021-01-12 23:47:51 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) (Ping timeout: 256 seconds) |
2021-01-12 23:48:14 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) (Remote host closed the connection) |
2021-01-12 23:48:39 +0100 | niekvandepas | (~niekvande@dhcp-077-249-088-250.chello.nl) |
2021-01-12 23:50:49 +0100 | <noob_on_rails> | ski: hmm thanks, it has only one guy init :D |
2021-01-12 23:51:16 +0100 | <noob_on_rails> | so prolly no channel for it :( |
2021-01-12 23:51:45 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) |
2021-01-12 23:51:53 +0100 | Franciman | (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Remote host closed the connection) |
2021-01-12 23:52:43 +0100 | cyphase | (~cyphase@unaffiliated/cyphase) |
2021-01-12 23:56:32 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2021-01-12 23:59:27 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |