Logs on 2021-09-19 (liberachat/#haskell)
| 00:01:12 | → | Phantastes joins (~Phantaste@c-67-173-229-120.hsd1.co.comcast.net) |
| 00:01:53 | × | Phantastes quits (~Phantaste@c-67-173-229-120.hsd1.co.comcast.net) (Client Quit) |
| 00:03:19 | × | proofofkeags_ quits (~proofofke@97-118-134-2.hlrn.qwest.net) (Quit: Leaving) |
| 00:04:50 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 00:10:27 | × | funsafe quits (~funsafe@2601:1c1:4200:e53:2875:5507:42e4:4e14) (Read error: Connection reset by peer) |
| 00:14:13 | → | funsafe joins (~funsafe@2601:1c1:4200:e53:2875:5507:42e4:4e14) |
| 00:14:52 | × | cuz quits (~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7) (Ping timeout: 268 seconds) |
| 00:19:05 | <Cajun> | i would imagine its more of a visionary thing, where the agda programmer is the visionary and the haskell programmer is the still-a-visionary-but-less-so |
| 00:19:33 | <Cajun> | i wonder whatll happen to agda once (hopefully) DH gets completed |
| 00:20:11 | <geekosaur> | I suspect Agda will still do dependent programming better |
| 00:20:23 | <Cajun> | why do you say that? |
| 00:20:34 | <geekosaur> | Haskell may get support for it but it'll probably never be a great fit |
| 00:21:11 | <geekosaur> | unless the language changes so much in the process that it's more like Agda than Haskell anyway |
| 00:21:42 | <Cajun> | it would be a hefty language extension thats for sure |
| 00:21:59 | <geekosaur> | probably multiple extensions |
| 00:22:16 | <geekosaur> | the first of which is scheduled to land in 9.2, I think |
| 00:22:58 | <Cajun> | thats exciting! i also read in the changelog that ghc2021 is getting added as well :) |
| 00:31:02 | → | cuz joins (~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7) |
| 00:38:24 | → | vicfred joins (~vicfred@user/vicfred) |
| 00:39:34 | × | lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 252 seconds) |
| 00:41:49 | × | funsafe quits (~funsafe@2601:1c1:4200:e53:2875:5507:42e4:4e14) (Read error: Connection reset by peer) |
| 00:44:53 | → | kayprish joins (~kayprish@46.240.130.158) |
| 00:45:16 | × | kayprish quits (~kayprish@46.240.130.158) (Remote host closed the connection) |
| 00:46:30 | → | funsafe joins (~funsafe@2601:1c1:4200:e53:2875:5507:42e4:4e14) |
| 00:56:21 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 01:06:24 | → | sneedsfeed joins (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) |
| 01:08:20 | <sneedsfeed> | is there a built in to traverse an infinite list evaluating a condition on each element and return the element when that condition is satisfied? |
| 01:09:08 | <pavonia> | > find (== 10) [1..] |
| 01:09:10 | <lambdabot> | Just 10 |
| 01:10:11 | <sneedsfeed> | ah okay I was thinking find wouldnt work but if I just expand the test condition to include the element not existing that should stop it from hanging |
| 01:11:54 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:13:02 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:13:48 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 01:13:56 | <dsal> | @src find |
| 01:13:56 | <lambdabot> | find p = listToMaybe . filter p |
| 01:14:05 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 01:14:40 | <dsal> | (usual disclaimer: @src is a way to think about a thing, not necessarily the way to write a thing) |
| 01:14:54 | × | xff0x quits (~xff0x@2001:1a81:52ed:4100:e126:e3d0:8698:438) (Ping timeout: 268 seconds) |
| 01:15:04 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 01:15:19 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 01:15:24 | × | mousey quits (~sky@gateway/tor-sasl/mousey) (Ping timeout: 276 seconds) |
| 01:15:33 | <geekosaur> | also, haskell is not magic: it doesn't know, for example, that 10 will occur exactly once in [1..] :: Integer |
| 01:16:07 | → | xff0x joins (~xff0x@2001:1a81:5327:1a00:7ba6:6c4f:f759:2f72) |
| 01:16:10 | <geekosaur> | or that (-1) won't occur at all |
| 01:19:59 | → | lavaman joins (~lavaman@98.38.249.169) |
| 01:21:03 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 01:21:28 | → | mousey joins (~sky@gateway/tor-sasl/mousey) |
| 01:23:40 | × | paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds) |
| 01:24:27 | <sneedsfeed> | is there anything else similar to find but more general? So like I can return an arbitrary result instead of just the element? |
| 01:24:53 | → | Guest45 joins (~Guest45@pool-96-252-123-136.bstnma.fios.verizon.net) |
| 01:24:59 | × | Guest45 quits (~Guest45@pool-96-252-123-136.bstnma.fios.verizon.net) (Client Quit) |
| 01:25:19 | <Cajun> | sounds like a lens traversal |
| 01:25:44 | → | lerax joins (~user@177-104-241-177.gbsn.com.br) |
| 01:25:50 | <Cajun> | though im not entirely sure what you mean specifically by "arbitrary result" |
| 01:26:04 | → | chris joins (~chris@81.96.113.213) |
| 01:26:08 | chris | is now known as Guest6939 |
| 01:26:31 | <sneedsfeed> | Well I'll explain my situation precisely then. I have an infinite list of perfect powers. I need to return the perfect power if its in there, but if its not I need to return Nothing. |
| 01:26:42 | → | neurocyte013 joins (~neurocyte@94.46.67.47) |
| 01:26:43 | × | neurocyte013 quits (~neurocyte@94.46.67.47) (Changing host) |
| 01:26:43 | → | neurocyte013 joins (~neurocyte@user/neurocyte) |
| 01:26:57 | → | paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
| 01:27:05 | <sneedsfeed> | The way I can figure that it isnt in there is if I go far enough into the list without finding it eventually it becomes obvious it isnt there. |
| 01:27:20 | <Cajun> | you can do that if its ordered. exponential search may be useful here but a simple linear search would be fine |
| 01:27:29 | <awpr> | `find _ . takeWhile _` |
| 01:27:52 | <sneedsfeed> | its not fully ordered unfortunately |
| 01:28:04 | <sneedsfeed> | allPP = [(x^k,(x,k)) | x <- [2..], k <- [2..x]] |
| 01:29:05 | × | neurocyte01 quits (~neurocyte@user/neurocyte) (Ping timeout: 268 seconds) |
| 01:29:05 | neurocyte013 | is now known as neurocyte01 |
| 01:29:21 | <awpr> | if you can tell from the present element alone whether you've passed where the one you're looking for would be, then the `takeWhile` approach would work |
| 01:31:08 | <dsal> | sneedsfeed: Why don't you just not emit things you don't want? |
| 01:31:31 | <sneedsfeed> | dsal probably because I'm not very smart. |
| 01:31:38 | <dsal> | It's not actually any different. |
| 01:31:57 | ← | lerax parts (~user@177-104-241-177.gbsn.com.br) (IO()) |
| 01:32:00 | <dsal> | sneedsfeed: You just add a `, myPredicate` in that list comprehension. |
| 01:32:05 | <dsal> | But it's the same problem. |
| 01:32:50 | <sneedsfeed> | Yea I had something like that before but it wasnt efficient enough, the tests on the problem were recomputing things over and over and timing out the system |
| 01:32:51 | <dsal> | If it's an infinite list, your find mechanism needs to know when it's not going to find what it's looking for. |
| 01:33:43 | <sneedsfeed> | I mean I do actually have a solution here. I just don't like it. |
| 01:34:01 | × | cuz quits (~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7) (Ping timeout: 268 seconds) |
| 01:34:13 | <dsal> | I don't even understand your problem. I'm not very mathletic. |
| 01:35:26 | <sneedsfeed> | https://www.codewars.com/kata/54d4c8b08776e4ad92000835 |
| 01:35:28 | <Axman6> | I'm doing something dumb, how do I specify I want to enable rtsopts in a cabal file? I have ghc-options: -rtsopts=all -O2 in the executable section but it keeps using O1 and not using the rtsopts flag |
| 01:38:50 | <awpr> | the algorithm you described trying to implement was to have some way of knowing when to stop looking, and return Nothing when that happens. that's what the combination of find and takeWhile gives you -- possibly adding in a `mapAccumL` if the stop condition needs information from past elements |
| 01:40:05 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 01:41:49 | × | waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 268 seconds) |
| 01:45:07 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 01:45:32 | × | alx741 quits (~alx741@186.178.108.187) (Quit: alx741) |
| 01:46:15 | <Axman6> | ANyone know what the most space efficient map from ByteString to Int would be? Both HashMap and Map seem to use a heap of RAM (no pun intended) and I'd love to have something which unpacked those values into the structure |
| 01:46:20 | <sneedsfeed> | awpr I just understood what you meant by `find _ . takeWhile _` thats really smart I think its exactly what I need. |
| 01:48:13 | × | mikoto-chan quits (~mikoto-ch@83.137.2.250) (Ping timeout: 265 seconds) |
| 01:48:32 | <awpr> | Axman6: https://hackage.haskell.org/package/bytestring-trie might be worth a ...trie |
| 01:48:44 | <Axman6> | top notch pun, thanks |
| 01:49:00 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:49:05 | <awpr> | not sure if it'll be more space-efficient, but it's at least something different from the other two |
| 01:50:30 | <Axman6> | wouldn't surprise me if it is, when I wrote ternary-trees it was quite good and being space efficient if you had lots of commmon prefixes |
| 01:54:07 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
| 01:54:07 | → | allbery_b joins (~geekosaur@xmonad/geekosaur) |
| 01:54:10 | allbery_b | is now known as geekosaur |
| 01:58:20 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:00:25 | <Axman6> | seems my program consistently uses just under 23GB of RAM no matter which map I use :( |
| 02:00:42 | <Axman6> | HashMap has been the fastest though |
| 02:05:09 | × | machinedgod quits (~machinedg@24.105.81.50) (Quit: Lost terminal) |
| 02:07:54 | → | cuz joins (~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7) |
| 02:11:40 | × | juhp quits (~juhp@bb220-255-143-175.singnet.com.sg) (Ping timeout: 240 seconds) |
| 02:12:58 | × | cuz quits (~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7) (Ping timeout: 260 seconds) |
| 02:15:21 | → | juhp joins (~juhp@bb42-60-204-249.singnet.com.sg) |
| 02:16:40 | × | juhp quits (~juhp@bb42-60-204-249.singnet.com.sg) (Client Quit) |
| 02:16:54 | → | juhp joins (~juhp@bb42-60-204-249.singnet.com.sg) |
| 02:18:20 | × | yinghua quits (~yinghua@2800:2121:1400:1db:b16d:d359:384:92aa) (Quit: Leaving) |
| 02:19:26 | × | td_ quits (~td@94.134.91.211) (Ping timeout: 268 seconds) |
| 02:21:07 | → | td_ joins (~td@muedsl-82-207-238-223.citykom.de) |
| 02:22:52 | → | eruditass joins (uid248673@id-248673.uxbridge.irccloud.com) |
| 02:23:21 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 02:27:49 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:27:49 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 02:27:49 | → | wroathe joins (~wroathe@user/wroathe) |
| 02:28:17 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
| 02:30:08 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:35:33 | <awpr> | apparently Stack needs to install GHC in order to answer what GHC it wants to install |
| 02:36:18 | <awpr> | `stack query compiler wanted` downloads and installs GHC |
| 02:43:47 | <Axman6> | lovely |
| 02:55:53 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 265 seconds) |
| 02:57:20 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:57:33 | × | slack1256 quits (~slack1256@191.126.227.79) (Remote host closed the connection) |
| 03:00:09 | <janus> | Axman6: how do you query memory usage? |
| 03:06:55 | × | vysn quits (~vysn@user/vysn) (Ping timeout: 268 seconds) |
| 03:11:53 | → | slack1256 joins (~slack1256@181.203.34.71) |
| 03:13:33 | → | slac76507 joins (~slack1256@191.126.227.79) |
| 03:13:40 | → | Null_A joins (~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) |
| 03:16:47 | × | slack1256 quits (~slack1256@181.203.34.71) (Ping timeout: 268 seconds) |
| 03:21:31 | × | fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 03:25:26 | → | fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
| 03:27:56 | <Axman6> | I have been using /usr/bin/time -l |
| 03:32:36 | <janus> | Axman6: i thought conventional tools like that could not be used because the RTS will overcommit: https://gitlab.haskell.org/ghc/ghc/-/issues/14193 |
| 03:33:38 | <janus> | Axman6: would that not explain why you always see the same figure? it wouldn't be the actual usage, it would just be the upper bound on how much the RTS thought it could eventually need |
| 03:34:31 | <awpr> | at least in `top`, the virtual memory stat is garbage, but RSS tends to act like it's responding to actual changes in usage |
| 03:35:18 | → | roboguy_ joins (~roboguy_@2605:a601:afe7:9f00:b84a:ec0a:d36e:74f2) |
| 03:37:27 | <clever> | https://github.com/ghc/ghc/blob/master/rts/posix/OSMem.c |
| 03:37:40 | <clever> | it happens somewhere in here, but i cant find it anymore... |
| 03:39:46 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds) |
| 03:40:01 | → | meinside joins (uid24933@id-24933.helmsley.irccloud.com) |
| 03:40:26 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 03:41:36 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 03:42:07 | → | benin036932301 joins (~benin@183.82.205.89) |
| 03:45:16 | <janus> | Axman6: looks like you can get more accurate RSS stats with this flag https://github.com/ghc/ghc/blob/master/rts/posix/OSMem.c#L670 |
| 03:45:36 | <Axman6> | janus: probably, but I'm mostly worried about the amount of memory the system sees it using |
| 03:45:48 | <Axman6> | I am also using +RTS -s |
| 03:46:01 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 03:46:05 | <Axman6> | (Productivity for this app is not very good =) |
| 03:46:28 | <Axman6> | the non-moving GC seems to help runtime qute a bit though~! |
| 03:46:29 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 03:47:10 | <awpr> | any chance the bytes-to-int mapping is constant throughout large chunks of the program? |
| 03:48:38 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 03:57:30 | × | cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 04:00:19 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds) |
| 04:00:45 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 04:00:45 | → | cheater joins (~Username@user/cheater) |
| 04:01:10 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 04:05:26 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 04:16:46 | → | Lycurgus joins (~juan@98.4.112.204) |
| 04:19:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:21:02 | → | solomon joins (~solomon@cpe-76-168-7-139.socal.res.rr.com) |
| 04:22:55 | × | hammock quits (~Hammock@2600:1700:19a1:3330:a2d6:386:8cfd:4ac5) (Ping timeout: 252 seconds) |
| 04:27:08 | → | wei2912 joins (~wei2912@112.199.250.21) |
| 04:27:15 | → | lavaman joins (~lavaman@98.38.249.169) |
| 04:41:10 | × | paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds) |
| 04:43:02 | → | paddymahoney joins (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
| 04:54:18 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 04:57:18 | × | arahael quits (~arahael@118.211.178.62) (Ping timeout: 268 seconds) |
| 04:57:58 | → | arahael joins (~arahael@118.211.178.62) |
| 04:59:24 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 05:00:24 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
| 05:03:25 | → | xsarnik7 joins (xsarnik@lounge.fi.muni.cz) |
| 05:03:25 | × | xsarnik quits (xsarnik@lounge.fi.muni.cz) (Read error: Connection reset by peer) |
| 05:03:25 | xsarnik7 | is now known as xsarnik |
| 05:04:40 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 05:05:14 | × | Guest6939 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 05:05:51 | → | chris joins (~chris@81.96.113.213) |
| 05:05:55 | chris | is now known as Guest1406 |
| 05:05:56 | × | keltono quits (~kelton@x-160-94-179-178.acm.umn.edu) (Ping timeout: 268 seconds) |
| 05:05:57 | × | int-e quits (~noone@int-e.eu) (Ping timeout: 245 seconds) |
| 05:06:06 | → | int-e joins (~noone@int-e.eu) |
| 05:06:13 | → | keltono joins (~kelton@x-160-94-179-178.acm.umn.edu) |
| 05:09:03 | → | azimut_ joins (~azimut@gateway/tor-sasl/azimut) |
| 05:10:19 | × | Guest1406 quits (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
| 05:10:42 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds) |
| 05:13:50 | → | syntactic_sugar joins (~amoljha@2601:644:8601:2e30::822c) |
| 05:15:18 | → | max22- joins (~maxime@2a01cb0883359800da5887c8e8eac50d.ipv6.abo.wanadoo.fr) |
| 05:17:10 | → | System123 joins (~System123@net-37-179-171-3.cust.vodafonedsl.it) |
| 05:19:35 | → | neo1 joins (~neo3@cpe-292712.ip.primehome.com) |
| 05:21:05 | <Boarders> | What are the good default command line options with criterion to get the most robust numbers? |
| 05:21:09 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:21:09 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 05:21:09 | → | wroathe joins (~wroathe@user/wroathe) |
| 05:21:30 | <Boarders> | can you even configure that from the command line or do you need to change the benchmark options |
| 05:21:34 | × | System123 quits (~System123@net-37-179-171-3.cust.vodafonedsl.it) (Ping timeout: 268 seconds) |
| 05:23:03 | × | nitrix_ quits (~nitrix@ns569831.ip-51-79-81.net) (Changing host) |
| 05:23:03 | → | nitrix_ joins (~nitrix@user/nitrix) |
| 05:23:08 | nitrix_ | is now known as nitrix |
| 05:25:40 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 05:29:12 | <Guest372> | :t withFile |
| 05:29:13 | <lambdabot> | error: |
| 05:29:13 | <lambdabot> | • Variable not in scope: withFile |
| 05:29:13 | <lambdabot> | • Perhaps you meant one of these: |
| 05:30:06 | <Guest372> | in System.IO, withFile has a type Handle, how we can use it? |
| 05:32:03 | <Guest372> | https://hackage.haskell.org/package/managed-1.0.8/docs/Control-Monad-Managed.html |
| 05:32:33 | <Boarders> | what do you want to do with the file? |
| 05:32:38 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 05:34:00 | <Guest372> | -- A hypothetical function that copies data from one handle to another copy :: Handle -> Handle -> IO () |
| 05:34:40 | <Guest372> | this `copy' is not implemented? |
| 05:35:38 | <Boarders> | copy h1 h2 = do |
| 05:35:38 | <Boarders> | str <- hGetContents' h1 |
| 05:35:38 | <Boarders> | hPutStr h2 str |
| 05:35:42 | → | zaquest joins (~notzaques@5.128.210.178) |
| 05:35:46 | <Boarders> | maybe something like that? |
| 05:37:26 | <Boarders> | also with String this might be a bit inefficient in which case use the corresponding functions from Data.ByteString (but I don't know your use case) |
| 05:37:58 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:37:58 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 05:37:58 | → | wroathe joins (~wroathe@user/wroathe) |
| 05:39:04 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 05:39:29 | <Guest372> | this `copy' doing is very like C copy file, I like to know its definition |
| 05:40:11 | <Boarders> | I just wrote a definition |
| 05:40:21 | <Guest372> | ok i will try it |
| 05:40:28 | <Boarders> | Read from the first handle and write to the second |
| 05:40:50 | <Boarders> | If you want the more performance version then use Bytestrings to do it |
| 05:42:37 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 05:49:38 | × | meinside quits (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 05:51:28 | → | qbt joins (~edun@user/edun) |
| 05:52:42 | <Guest372> | https://paste.tomsmeding.com/spOOZyZs |
| 05:53:14 | × | qbt quits (~edun@user/edun) (Remote host closed the connection) |
| 05:54:04 | <Guest372> | this type doesnt fit, expect type ContT r IO Handle, actual ContT r IO () |
| 05:54:47 | <Guest372> | in that lift (copy inHandle outHandle), how I can change it? |
| 05:55:44 | → | Gurkenglas joins (~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) |
| 05:58:56 | <Boarders> | Did you try changing Handle to ()? |
| 05:59:58 | <Guest372> | aha, it worked, but why? |
| 06:00:31 | <Guest372> | inHandle :: Handle, not () |
| 06:00:39 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 06:02:14 | <Guest372> | copyFile :: ContT r IO (), but inHandle inside the do notation has Handle not (), that is ok? |
| 06:06:35 | <Boarders> | I think you should look into how monadic notation works in Haskell and it will answer your question |
| 06:09:43 | → | qbt joins (~edun@user/edun) |
| 06:12:30 | × | Null_A quits (~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) (Remote host closed the connection) |
| 06:12:59 | <Guest372> | oh i see, the type is just result type, |
| 06:13:34 | × | bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 06:15:24 | <dsal> | Guest372: you don't need a `do` block for just `hPutStr dest =<< hGetContents src` |
| 06:15:50 | <dsal> | Or the other way around if you prefer. |
| 06:16:14 | <Guest372> | ok |
| 06:16:17 | <dsal> | Or a better type. Heh. I've seen a package somewhere with helpers like that. |
| 06:19:39 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 06:24:25 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 06:26:55 | → | reyaboj joins (~reyaboj@103.69.150.85) |
| 06:27:19 | <reyaboj> | hi guys |
| 06:27:46 | × | harveypwca quits (~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26) (Quit: Leaving) |
| 06:28:34 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:28:58 | → | Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
| 06:31:00 | <reyaboj> | If I had to summarize: foldr is right associative because it reduces to an expression of the form "<op> <value> <rest-of-fold>" and such an expression produces nesting on <rest-of-fold>, which is to the right, rather than <value>. |
| 06:31:07 | <reyaboj> | Is my understanding correct there? ^ |
| 06:35:50 | <hololeap> | reyaboj: yeah, foldr f x [1,2,3] = x `f` (1 `f` (2 `f` 3)) |
| 06:37:11 | <awpr> | hmm, it occurs to me to wonder what you'd call a function that's `foldr . flip` |
| 06:37:33 | <awpr> | the resulting tree of applications of the reducing function associates to the left, but it associates the list elements to the right :) |
| 06:48:00 | <reyaboj> | wow lol you just broke my brain...let me try to write that down and play with it |
| 06:50:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:50:35 | <c_wraith> | it's still foldr, the combining function just takes its args in the opposite order. There's nothing special about that ordering |
| 06:51:16 | <awpr> | yeah, I'm just prodding at the idea that foldr's associativity is named after how the call tree of the reducer is associated |
| 06:51:37 | <awpr> | seems like how it associates the list elements is more fundamental |
| 06:52:25 | <c_wraith> | look at foldr as an example of converting a data structure to its church encoding. (have to move the arguments around a bit, but whatever) |
| 06:52:53 | <c_wraith> | Then you see that the swapping the argument order in the reduction function is equivalent to changing the argument order to the (:) constructor |
| 06:53:03 | <c_wraith> | doesn't actually change anything about the type behavior. |
| 06:53:12 | <c_wraith> | Just how convention says to write it on paper |
| 06:59:09 | × | rembo10 quits (~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:00:05 | → | rembo10 joins (~rembo10@wally.codeshy.com) |
| 07:01:34 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 07:03:23 | × | roboguy_ quits (~roboguy_@2605:a601:afe7:9f00:b84a:ec0a:d36e:74f2) () |
| 07:06:57 | <reyaboj> | Ahhhh |
| 07:07:11 | <reyaboj> | Thanks guys! I think I understand why I got confused now. |
| 07:09:15 | → | ubert joins (~Thunderbi@91.141.68.10.wireless.dyn.drei.com) |
| 07:11:42 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:14:29 | → | ArctVaulMarsHMPJ joins (~pjetcetal@2.95.253.167) |
| 07:14:53 | × | ArctVaulMarsHMPJ quits (~pjetcetal@2.95.253.167) (Remote host closed the connection) |
| 07:24:54 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 07:26:31 | → | Topsi joins (~Tobias@dyndsl-095-033-025-122.ewe-ip-backbone.de) |
| 07:31:38 | → | chomwitt joins (~chomwitt@2a02:587:dc15:500:12c3:7bff:fe6d:d374) |
| 07:32:34 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 07:34:05 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 07:36:26 | → | acidjnk joins (~acidjnk@p200300d0c703cb63dd8ae578d0e30132.dip0.t-ipconnect.de) |
| 07:40:31 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 07:47:02 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:44da:bf98:4cf1:2d8d) (Remote host closed the connection) |
| 07:47:26 | → | euandreh joins (~euandreh@2804:14c:33:9fe5:3ad2:6f9d:50ec:2663) |
| 07:55:48 | → | pfurla_ joins (~pfurla@53.15.195.173.client.static.strong-in52.as13926.net) |
| 07:58:12 | → | burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
| 07:58:28 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 07:58:47 | <ixlun> | Hi all, quick question. I've got this code https://pastebin.com/GjYZ6QcT and It's annoying me that I'm having to write the same boilerplate over and over. Is there a way I can abstract out the error handling here for each oepration? |
| 07:59:42 | <ixlun> | the only way I can think is to create a new typeclass `CurrencyOp`, say and then a function `runCurrencyOp` that does the checking there. However, it seems a little cumbersome for the users as they will have to use `runCurrencyOp` every time they want to perform an operation. |
| 08:01:06 | → | oxide joins (~lambda@user/oxide) |
| 08:02:47 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:04:08 | → | vysn joins (~vysn@user/vysn) |
| 08:04:32 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22) (Remote host closed the connection) |
| 08:05:59 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:07:05 | → | sheddow joins (~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) |
| 08:07:12 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 08:07:34 | <mc47> | ixlun you might find it interesting to let the type-system worry about that if you're ready to play around with some dependent types |
| 08:08:04 | <mc47> | Maybe check the safe-money package |
| 08:09:08 | <mc47> | I have a question: I want to lift (&&) to act on predicates that take three arguments, but I was curious if there's an elegant way to write it |
| 08:09:24 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:09:27 | <opqdonut> | ixlun: you could use phantom types: `data Currency cur = Currency Int; add :: Currency a -> Currency a -> Currency a` |
| 08:09:27 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds) |
| 08:09:39 | <mc47> | i.e. something more compact than andPQ p q a b c = p a b c && q a b c |
| 08:09:49 | <opqdonut> | ixlun: of course then all your errors would be at compile-time, which might not be what you want |
| 08:10:43 | → | dsrt^ joins (~dsrt@68.101.54.227) |
| 08:12:10 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 268 seconds) |
| 08:13:16 | <mc47> | nvm my question, chaining liftM2 is good enough |
| 08:14:00 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:14:24 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 08:17:30 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 08:20:00 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 08:21:37 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 08:26:18 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 08:26:30 | → | Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr) |
| 08:27:36 | <ixlun> | opqdonut: Yeah, it would have to be runtime checking since I'm reading from various data sources at runtime |
| 08:28:43 | <ixlun> | mc47: Would going down the dependent types route restrict errors being caught at compile-time? |
| 08:30:49 | <tomsmeding> | ixlun: do you parse currency values from data first, then get them into some uniform kind (usb/gbp/...), then operate on them? |
| 08:31:16 | <ixlun> | Yep, that' pretty much exactly what I'm doing |
| 08:31:19 | <tomsmeding> | i.e. does it make sense to first do a validation pass that your currency kinds are consistent, and then afterwards be able to compute with them without checking kinds? |
| 08:31:34 | <mc47> | ixlun you'd have a computation block that is protected by the type system and you'd only need to check before going into it |
| 08:32:02 | <tomsmeding> | data CurrencyType a where GBP :: CurrencyType "GBP" ; USD :: CurrencyType "USD" ; EUR :: CurrencyType "EUR" |
| 08:32:16 | <tomsmeding> | data Currency a = Currency (CurrencyType a) Int |
| 08:32:39 | <tomsmeding> | data Some f = forall a. Some (f a) -- from the 'some' package if you don't want to define it yourself |
| 08:33:19 | <tomsmeding> | then you can have: check :: CurrencyType a -> Some Currency -> Maybe (Currency a) |
| 08:33:44 | <tomsmeding> | and add :: Currency a -> Currency a -> Currency a which doesn't have to care about unequal currencies |
| 08:34:46 | → | lavaman joins (~lavaman@98.38.249.169) |
| 08:34:59 | <tomsmeding> | perhaps also: data CurrencyList a = CurrencyList [Currency a] ; checkUniform :: [SomeCurrency] -> Maybe (Some CurrencyList) |
| 08:35:23 | <tomsmeding> | if you want a list of equal currency kinds but don't care what they actually are |
| 08:35:25 | <hololeap> | tomsmeding: couldn't you just have `newtype Currency a = Currency Int` and then derive Num, etc with GNTD? |
| 08:35:58 | <tomsmeding> | hololeap: you could write a Num instance for my type too :p |
| 08:36:19 | <tomsmeding> | in my experience having a value-level witness of the phantom type is useful |
| 08:36:34 | <tomsmeding> | but if you don't need it, then yes that's a more light-weight alternative :p |
| 08:36:46 | <Cajun> | wouldnt a Num instance give you a whole bunch of functions that you dont really want/need? :P |
| 08:37:04 | <Cajun> | its nice for the (+) and (*) but the other ones are weird for many types |
| 08:37:23 | <ixlun> | There's defiantly some stuff to digest there, I'll take a look. I've also been looking at the `money` package too which looks pretty nice so I'll see what I can do. Thanks all! |
| 08:37:24 | <tomsmeding> | I suspect that if you go with the witness-less approach, you'd end up sprinkling 'class KnownCurrency a where knownCurrency :: CurrencyType a' everywhere |
| 08:37:51 | <tomsmeding> | ixlun: hope I didn't scare you away :p |
| 08:38:22 | <hololeap> | @where singletons |
| 08:38:22 | <lambdabot> | I know nothing about singletons. |
| 08:38:33 | <mc47> | I play around with a wtiness-less approach and it gets very cumbersome very fast, which was really intimidating while just learning about these type trickeries |
| 08:38:42 | <mc47> | s/play/played/ |
| 08:38:56 | <tomsmeding> | yeah you can define my CurrencyType GADT from your plain ADT using singletons, but I find a direct GADT clearer -- if only for the lack of TH :p |
| 08:39:29 | <hololeap> | tomsmeding: I agree, I was just thinking of plugging that intro to singletons blog because it's a helpful tutorial |
| 08:39:32 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
| 08:39:41 | <tomsmeding> | mc47: if you core happens to not need the witnesses anywhere, the code can get very clean and neat |
| 08:39:48 | <tomsmeding> | until the moment you want a witness :p |
| 08:40:06 | <hololeap> | https://blog.jle.im/entry/introduction-to-singletons-1.html |
| 08:40:10 | × | acidjnk quits (~acidjnk@p200300d0c703cb63dd8ae578d0e30132.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 08:40:18 | <tomsmeding> | (never read that, actually never worked with the actual singletons library before tbh) |
| 08:40:47 | <hololeap> | it basically builds up a strong motivation for the libarary, but shows you how to do it all by hand as well |
| 08:41:27 | <mc47> | tomsmeding that's probably true, I really just skimmed the surface |
| 08:46:55 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 08:52:37 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 09:00:07 | × | deuslambda[m] quits (~deuslambd@2001:470:69fc:105::c749) (Quit: You have been kicked for being idle) |
| 09:00:07 | × | Cesionaut[m] quits (~cesionaut@2001:470:69fc:105::dd3b) (Quit: You have been kicked for being idle) |
| 09:01:42 | × | syntactic_sugar quits (~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1) |
| 09:04:34 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
| 09:05:02 | × | burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
| 09:14:40 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 09:14:50 | <tomsmeding> | s/you core/your code/ how did that typo even happen |
| 09:16:34 | → | TranquilEcho joins (~grom@user/tranquilecho) |
| 09:18:22 | × | ubert quits (~Thunderbi@91.141.68.10.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 09:22:04 | → | azeem joins (~azeem@2a00:801:3c5:e7ed:96db:1881:5af8:10cd) |
| 09:23:45 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 09:24:01 | → | lavaman joins (~lavaman@98.38.249.169) |
| 09:28:16 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 09:30:42 | × | hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:32:05 | → | Null_A joins (~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) |
| 09:41:36 | → | burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
| 09:41:51 | × | Null_A quits (~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) (Remote host closed the connection) |
| 09:42:42 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 09:43:24 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 09:44:19 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 09:46:06 | × | cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 09:47:20 | → | Null_A joins (~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) |
| 09:48:04 | × | burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
| 09:48:26 | × | Null_A quits (~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) (Client Quit) |
| 09:54:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 10:00:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:10:01 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 10:10:52 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 10:11:50 | → | hexfive joins (~eric@50.35.83.177) |
| 10:13:38 | × | pfurla_ quits (~pfurla@53.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 260 seconds) |
| 10:13:43 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 10:14:02 | → | Vajb joins (~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) |
| 10:14:34 | × | hexfive quits (~eric@50.35.83.177) (Client Quit) |
| 10:14:35 | × | Vajb quits (~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 10:15:10 | → | Vajb joins (~Vajb@85-76-8-105-nat.elisa-mobile.fi) |
| 10:19:50 | × | Vajb quits (~Vajb@85-76-8-105-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 10:20:33 | × | benin036932301 quits (~benin@183.82.205.89) (Ping timeout: 265 seconds) |
| 10:20:43 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 10:20:49 | → | burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
| 10:20:56 | → | benin036932301 joins (~benin@183.82.205.89) |
| 10:23:14 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 10:25:58 | × | kimjetwav quits (~user@2607:fea8:235f:9730:162d:fa69:3f15:a6a5) (Quit: logout) |
| 10:26:26 | → | kimjetwav joins (~user@2607:fea8:235f:9730:eed:cf2e:848e:62b5) |
| 10:27:19 | → | spruit11 joins (~quassel@2a02:a467:ccd6:1:6:b8f5:e5f3:4cce) |
| 10:27:50 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 10:31:08 | × | spruit11_ quits (~quassel@2a02:a467:ccd6:1:563:f225:f6bf:7d85) (Ping timeout: 268 seconds) |
| 10:39:53 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 265 seconds) |
| 10:40:21 | → | oxide joins (~lambda@user/oxide) |
| 10:44:05 | × | Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 268 seconds) |
| 10:49:00 | × | max22- quits (~maxime@2a01cb0883359800da5887c8e8eac50d.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 10:49:05 | → | Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr) |
| 10:50:02 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 10:51:39 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 10:51:41 | → | max22- joins (~maxime@2a01cb08833598008de6b9bad07273d0.ipv6.abo.wanadoo.fr) |
| 11:00:19 | × | kimjetwav quits (~user@2607:fea8:235f:9730:eed:cf2e:848e:62b5) (Remote host closed the connection) |
| 11:00:45 | → | alx741 joins (~alx741@186.178.108.187) |
| 11:05:10 | × | hpc quits (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 240 seconds) |
| 11:07:00 | → | hpc joins (~juzz@ip98-169-35-13.dc.dc.cox.net) |
| 11:09:25 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 11:13:40 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 240 seconds) |
| 11:15:25 | × | sm2n_ quits (~sm2n@user/sm2n) (Ping timeout: 252 seconds) |
| 11:15:48 | → | sm2n joins (~sm2n@user/sm2n) |
| 11:26:20 | × | max22- quits (~maxime@2a01cb08833598008de6b9bad07273d0.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 11:27:16 | → | x28girl joins (~x28girl@181.46.32.25) |
| 11:28:21 | → | Sose joins (~Sose@mobile-access-6df047-213.dhcp.inet.fi) |
| 11:30:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 11:34:13 | <Sose> | I haven't used Haskell or GHC in a while and I'm a bit confused what version I should use. If I type `ghcup list` (https://gist.github.com/Sose/434044f83f51a091939277dc39c7a20d), I see that 8.10.7 doesn't have the "hls powered" note, but here (https://discourse.haskell.org/t/haskell-language-server-1-4-0-release/3237) it says that for example |
| 11:34:13 | <Sose> | 8.10.4 is not supported by the newest hls anymore |
| 11:34:48 | <maerwald> | Sose: 8.10.7 is supported by HLS 1.4.0 |
| 11:34:54 | <maerwald> | you probably have 1.3.0 installed |
| 11:35:16 | <Sose> | oh okay, so I should just go for ghc 8.10.7 and hls 1.4.0 |
| 11:35:35 | <Sose> | wanted to make sure because on my potato it takes forever to update |
| 11:36:52 | × | Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 252 seconds) |
| 11:37:13 | <maerwald> | "hls-powered" is only wrt the currently installed and *set* version |
| 11:37:16 | × | haykam2 quits (~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection) |
| 11:37:25 | <Sose> | I see, that makes sense. Thanks |
| 11:37:29 | → | haykam1 joins (~haykam@static.100.2.21.65.clients.your-server.de) |
| 11:41:36 | → | jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) |
| 11:44:40 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:45:21 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 11:46:22 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 11:47:05 | → | Vajb joins (~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) |
| 11:48:23 | × | burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection) |
| 11:49:43 | × | jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 11:50:06 | → | jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) |
| 11:53:56 | × | Vajb quits (~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 11:54:59 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 12:00:13 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 12:01:26 | → | lavaman joins (~lavaman@98.38.249.169) |
| 12:06:53 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
| 12:07:56 | <sshine> | I learned something. |
| 12:14:08 | × | neo1 quits (~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 265 seconds) |
| 12:18:48 | × | x28girl quits (~x28girl@181.46.32.25) (Quit: Leaving) |
| 12:19:49 | → | x28girl joins (~x28girl@181.46.32.25) |
| 12:19:55 | → | burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
| 12:21:04 | × | x28girl quits (~x28girl@181.46.32.25) (Changing host) |
| 12:21:04 | → | x28girl joins (~x28girl@user/x28girl) |
| 12:21:37 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:21:58 | → | Vajb joins (~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) |
| 12:23:45 | → | x28_girl joins (~x28girl@user/x28girl) |
| 12:24:10 | × | burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds) |
| 12:24:51 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 12:25:24 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 12:26:17 | × | Vajb quits (~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) (Ping timeout: 245 seconds) |
| 12:27:10 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 12:27:14 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 12:29:10 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 12:34:59 | → | Lycurgus joins (~juan@98.4.112.204) |
| 12:36:37 | → | cheater joins (~Username@user/cheater) |
| 12:49:36 | → | max22- joins (~maxime@2a01cb08833598004251d0191641dba9.ipv6.abo.wanadoo.fr) |
| 12:53:03 | → | burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
| 12:53:45 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 12:56:36 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:56:51 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer) |
| 12:57:18 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 12:57:40 | × | burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
| 13:00:27 | × | spruit11 quits (~quassel@2a02:a467:ccd6:1:6:b8f5:e5f3:4cce) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 13:03:41 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 13:05:33 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:10:53 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 13:11:46 | × | jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2) |
| 13:15:24 | → | Brumaire joins (~quassel@81-64-14-121.rev.numericable.fr) |
| 13:15:38 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 260 seconds) |
| 13:16:18 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 13:19:34 | → | yinghua joins (~yinghua@2800:2121:1400:1db:8865:3e5b:fd2e:180) |
| 13:20:47 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer) |
| 13:21:15 | × | max22- quits (~maxime@2a01cb08833598004251d0191641dba9.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
| 13:21:28 | × | _xor quits (~xor@74.215.232.67) (Quit: WeeChat 3.2) |
| 13:25:36 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 13:26:27 | → | _xor joins (~xor@74.215.232.67) |
| 13:26:36 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 13:27:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:30:30 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 265 seconds) |
| 13:31:27 | → | fendor joins (~fendor@178.165.185.65.wireless.dyn.drei.com) |
| 13:33:38 | → | max22- joins (~maxime@2a01cb08833598007f19dd049ca78c46.ipv6.abo.wanadoo.fr) |
| 13:45:44 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 13:47:01 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 13:47:27 | → | hendursaga joins (~weechat@user/hendursaga) |
| 13:47:32 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:48:01 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:49:05 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:49:35 | → | Vajb joins (~Vajb@85-76-32-93-nat.elisa-mobile.fi) |
| 13:50:42 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 13:54:11 | × | Vajb quits (~Vajb@85-76-32-93-nat.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 13:54:38 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:56:18 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 13:57:56 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 13:58:12 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 13:59:21 | × | slac76507 quits (~slack1256@191.126.227.79) (Ping timeout: 268 seconds) |
| 14:00:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 14:03:18 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:03:54 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 14:05:03 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 14:05:55 | × | alx741 quits (~alx741@186.178.108.187) (Ping timeout: 252 seconds) |
| 14:08:50 | × | cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds) |
| 14:08:53 | → | cheater1__ joins (~Username@user/cheater) |
| 14:08:56 | cheater1__ | is now known as cheater |
| 14:17:09 | × | cawfee quits (~root@2406:3003:2077:2758::babe) (Quit: macos update) |
| 14:18:47 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 14:20:14 | → | alx741 joins (~alx741@186.178.109.159) |
| 14:26:35 | × | chomwitt quits (~chomwitt@2a02:587:dc15:500:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds) |
| 14:28:51 | × | sheddow quits (~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) (Ping timeout: 256 seconds) |
| 14:30:03 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 14:30:59 | × | x28_girl quits (~x28girl@user/x28girl) (Quit: Leaving) |
| 14:40:38 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 14:48:13 | → | Guest|51 joins (~Guest|51@177.221.250.155) |
| 14:52:50 | → | cawfee joins (~root@2406:3003:2077:2758::babe) |
| 14:53:18 | → | Brumaire_ joins (~quassel@81-64-14-121.rev.numericable.fr) |
| 14:54:14 | × | Brumaire quits (~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 268 seconds) |
| 14:54:35 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
| 14:55:17 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 14:55:17 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 14:55:17 | → | wroathe joins (~wroathe@user/wroathe) |
| 14:55:52 | × | rond_ quits (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed) |
| 14:58:14 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:58:33 | → | Heffalump joins (~ganesh@urchin.earth.li) |
| 14:58:42 | × | Guest|51 quits (~Guest|51@177.221.250.155) (Quit: Connection closed) |
| 14:59:20 | → | lavaman joins (~lavaman@98.38.249.169) |
| 14:59:30 | → | Vajb joins (~Vajb@2001:999:63:cb56:7735:f6b9:cd89:d4c7) |
| 15:01:39 | <Heffalump> | Is there a current state of the art when it comes to dynamically loading Haskell? I've looked around a bit, there's plugins (quite old but appears to still build with recent GHCs), ghc-hotswap (doesn't support GHC > 8.4 out of the box) and hint (perhaps the most plausible but appears to have some significant gotchas?) |
| 15:03:18 | → | chris joins (~chris@81.96.113.213) |
| 15:03:21 | chris | is now known as Guest6996 |
| 15:03:36 | → | zer0bitz joins (~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi) |
| 15:04:19 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds) |
| 15:04:20 | × | Vajb quits (~Vajb@2001:999:63:cb56:7735:f6b9:cd89:d4c7) (Read error: Connection reset by peer) |
| 15:05:22 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 15:05:44 | → | sheddow joins (~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) |
| 15:06:12 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 15:12:39 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 15:16:53 | → | haask joins (~harry@92.234.0.237) |
| 15:17:20 | × | haask quits (~harry@92.234.0.237) (Remote host closed the connection) |
| 15:17:40 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 268 seconds) |
| 15:17:54 | <geekosaur> | I think all dynamic loading with Haskell has significant gotchas |
| 15:19:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:23:38 | → | haask joins (~harry@92.234.0.237) |
| 15:23:57 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 15:25:10 | × | haritz quits (~hrtz@user/haritz) (Ping timeout: 240 seconds) |
| 15:26:40 | × | Raito_Bezarius quits (~Raito@2a01:e0a:5f9:9681:58c:8b9f:30df:bb6b) (Ping timeout: 260 seconds) |
| 15:27:21 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 15:31:43 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 15:32:23 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 15:37:59 | × | wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal) |
| 15:38:54 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 15:39:28 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection) |
| 15:46:30 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 260 seconds) |
| 15:48:40 | → | zebrag joins (~chris@user/zebrag) |
| 15:53:30 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 15:54:42 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 15:54:53 | × | xff0x quits (~xff0x@2001:1a81:5327:1a00:7ba6:6c4f:f759:2f72) (Ping timeout: 268 seconds) |
| 15:56:44 | × | cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds) |
| 16:02:40 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:08:14 | × | haask quits (~harry@92.234.0.237) (Remote host closed the connection) |
| 16:10:05 | × | fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Ping timeout: 268 seconds) |
| 16:10:37 | → | brettgilio joins (~brettgili@x-node.gq) |
| 16:13:00 | → | fresheyeball joins (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) |
| 16:13:31 | → | __monty__ joins (~toonn@user/toonn) |
| 16:16:39 | → | xff0x joins (~xff0x@2001:1a81:5327:1a00:7ba6:6c4f:f759:2f72) |
| 16:17:22 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
| 16:20:23 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 16:21:41 | → | Null_A joins (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
| 16:22:48 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 16:23:42 | × | fresheyeball quits (~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 16:23:53 | × | reyaboj quits (~reyaboj@103.69.150.85) (Ping timeout: 256 seconds) |
| 16:24:30 | → | Guest70 joins (~Guest70@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) |
| 16:26:14 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Remote host closed the connection) |
| 16:26:38 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 16:26:42 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 16:27:08 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 16:27:46 | → | hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com) |
| 16:28:46 | × | jespada quits (~jespada@2803:9800:9842:7a62:e945:15a6:5467:94f6) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:29:39 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 16:40:47 | × | Guest6996 quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 16:43:02 | → | econo joins (uid147250@user/econo) |
| 16:48:35 | → | alzgh joins (~alzgh@user/alzgh) |
| 16:49:13 | × | psilospore quits (uid517704@id-517704.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 16:49:19 | <alzgh> | hello, which channel is more suited if one has question about making PRs to the GHC repo? |
| 16:49:59 | <monochrom> | Perhaps #ghc |
| 16:50:19 | <alzgh> | OK, thanks monochrom |
| 16:52:18 | → | jonatan_ joins (~nate@h85-8-60-194.cust.a3fiber.se) |
| 16:52:18 | × | jonatan_ quits (~nate@h85-8-60-194.cust.a3fiber.se) (Client Quit) |
| 17:01:02 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 260 seconds) |
| 17:05:42 | <sm> | Heffalump: clckwrks uses https://hackage.haskell.org/package/web-plugins |
| 17:05:48 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 17:09:10 | × | qbt quits (~edun@user/edun) (Ping timeout: 252 seconds) |
| 17:10:31 | × | OscarZ quits (~oscarz@95.175.104.70) (Quit: Leaving) |
| 17:12:07 | → | kimjetwav joins (~user@2607:fea8:235f:9730:7169:b08e:8733:ef08) |
| 17:16:30 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 17:21:24 | → | Lewky joins (~Lewky@146.70.50.74) |
| 17:29:37 | × | sneedsfeed quits (~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) (Ping timeout: 256 seconds) |
| 17:32:32 | → | qbt joins (~edun@user/edun) |
| 17:37:12 | × | Guest70 quits (~Guest70@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) (Quit: Client closed) |
| 17:39:48 | → | jespada joins (~jespada@2803:9800:9842:7a62:edd5:5e74:3ec2:1b19) |
| 17:43:32 | → | Izem joins (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
| 17:44:07 | <Izem> | In haskell, you don't need the notion of a pipe because you can curry functions right? |
| 17:44:36 | <Rembane> | Izem: assume that that is true, why is it true? |
| 17:47:17 | <Izem> | I dunno, sorry |
| 17:47:40 | <Rembane> | Okay, what's a pipe in this context? |
| 17:47:58 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:50:00 | → | euandreh_ joins (~euandreh@2804:14c:33:9fe5:b7ad:e92:1630:34c7) |
| 17:50:20 | <Izem> | similar to a unix pipe, so you can compose functions like so [1 2 3 4 5] | odd | sum would result in 1 + 3 + 5 = 9 |
| 17:50:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:51:54 | × | euandreh quits (~euandreh@2804:14c:33:9fe5:3ad2:6f9d:50ec:2663) (Ping timeout: 260 seconds) |
| 17:54:42 | <Sose> | I think in Haskell people tend to use function composition more rather than piping. So they'd write something like `(sum . filter odd) [1,2,3,4,5]` instead of `[1,2,3,4,5] & filter odd & sum` |
| 17:55:37 | <Sose> | but there is a pipe operator like that (&) in Data.Function |
| 17:56:08 | <Izem> | oh ok, that's cool |
| 17:56:47 | <Izem> | I suspected that was the case but I wasn't sure |
| 17:56:59 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 17:57:21 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Client Quit) |
| 17:58:37 | <awpr> | note it's not specific to lists or sequences, though: it's just applying each function in order. the streaming behavior comes from the list type along with the particular functions being used |
| 17:58:55 | <awpr> | > 5 & subtract 2 & show |
| 17:58:56 | <lambdabot> | "3" |
| 18:00:30 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:02:22 | <Sose> | to be honest the idea of piping and going in order from left-to-right or top-to-bottom feels a bit more natural to me. I also write Clojure sometimes and there the threading macros (->, ->>) are used a lot |
| 18:04:00 | <awpr> | Haskell needs backwards lambda syntax to go with the reverse bind operator: `Just (x + 1) <- x/ =<< Nothing` |
| 18:05:20 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
| 18:05:39 | <hpc> | just start your file with the unicode RTL override character |
| 18:05:49 | × | neurocyte01 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds) |
| 18:06:07 | <awpr> | ... now I'm curious to see what that would do |
| 18:06:53 | <awpr> | lol, it corrupts the page describing it https://unicode-table.com/en/202E/ |
| 18:09:10 | <Sose> | that's funny :D |
| 18:09:17 | <awpr> | https://paste.tomsmeding.com/Rif2xq25 |
| 18:09:57 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:11:41 | × | Null_A quits (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection) |
| 18:12:14 | → | Null_A joins (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) |
| 18:13:01 | <awpr> | https://paste.tomsmeding.com/wpEt1pg6 even better |
| 18:18:28 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:21:05 | → | cheater joins (~Username@user/cheater) |
| 18:22:45 | <Cajun> | piping gets great when you start using conduits for data processing, which is constant space and quite fast (it also fuses very well iirc) |
| 18:24:12 | × | max22- quits (~maxime@2a01cb08833598007f19dd049ca78c46.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds) |
| 18:24:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 18:25:59 | → | Guest1 joins (~Guest1@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) |
| 18:29:18 | → | Everything joins (~Everythin@37.115.210.35) |
| 18:31:57 | × | solomon quits (~solomon@cpe-76-168-7-139.socal.res.rr.com) (Ping timeout: 256 seconds) |
| 18:32:51 | × | kimjetwav quits (~user@2607:fea8:235f:9730:7169:b08e:8733:ef08) (Remote host closed the connection) |
| 18:33:08 | → | kimjetwav joins (~user@2607:fea8:235f:9730:b7cd:5acf:16a8:ebad) |
| 18:33:18 | × | Null_A quits (~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection) |
| 18:35:37 | × | kimjetwav quits (~user@2607:fea8:235f:9730:b7cd:5acf:16a8:ebad) (Remote host closed the connection) |
| 18:35:54 | → | kimjetwav joins (~user@2607:fea8:235f:9730:8e90:f10c:b724:9a0a) |
| 18:40:36 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection) |
| 18:40:41 | × | Sose quits (~Sose@mobile-access-6df047-213.dhcp.inet.fi) (Quit: Client closed) |
| 18:41:26 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 18:42:24 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 18:44:23 | × | Brumaire_ quits (~quassel@81-64-14-121.rev.numericable.fr) (Quit: ran away) |
| 18:50:53 | × | kimjetwav quits (~user@2607:fea8:235f:9730:8e90:f10c:b724:9a0a) (Remote host closed the connection) |
| 18:51:10 | → | kimjetwav joins (~user@2607:fea8:235f:9730:89c:c105:9071:1b0f) |
| 18:53:31 | ← | adamse parts (sid72084@user/adamse) () |
| 18:55:38 | × | Guest1 quits (~Guest1@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) (Quit: Client closed) |
| 18:55:58 | × | x28girl quits (~x28girl@user/x28girl) (Ping timeout: 268 seconds) |
| 18:57:14 | × | jumper149 quits (~jumper149@80.240.31.34) (Ping timeout: 260 seconds) |
| 18:58:34 | → | max22- joins (~maxime@2a01cb088335980099348db52b55749a.ipv6.abo.wanadoo.fr) |
| 19:00:17 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 19:00:40 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 252 seconds) |
| 19:03:10 | → | tommd joins (~tommd@75-164-130-101.ptld.qwest.net) |
| 19:03:38 | → | tfeb joins (~tfb@88.98.95.237) |
| 19:04:14 | → | __monty__ joins (~toonn@user/toonn) |
| 19:05:53 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 19:06:03 | → | x28girl joins (~x28girl@user/x28girl) |
| 19:08:29 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer) |
| 19:08:35 | → | mikoto-c1 joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 19:09:45 | <maerwald> | how do you parse the version of a cabal file? |
| 19:09:46 | → | kuribas joins (~user@ptr-25vy0i7z6miqkyi8626.18120a2.ip6.access.telenet.be) |
| 19:11:33 | <sclv> | maerwald: here's a script that as of a few years ago worked fine, as a simple example |
| 19:11:33 | <sclv> | https://github.com/haskell/cabal/issues/2460#issuecomment-373895722 |
| 19:11:53 | <sclv> | anyway the main point is parsePackageDescrition is the entry point iirc |
| 19:11:56 | <maerwald> | excellent |
| 19:16:17 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 19:16:27 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 19:18:58 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 19:19:09 | × | mikoto-c1 quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-c1) |
| 19:19:21 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 19:20:37 | × | Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt) |
| 19:22:54 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 19:23:11 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit) |
| 19:27:53 | × | dsrt^ quits (~dsrt@68.101.54.227) (Remote host closed the connection) |
| 19:31:04 | × | fendor quits (~fendor@178.165.185.65.wireless.dyn.drei.com) (Remote host closed the connection) |
| 19:31:54 | × | tfeb quits (~tfb@88.98.95.237) (Remote host closed the connection) |
| 19:32:20 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 19:33:42 | × | Everything quits (~Everythin@37.115.210.35) (Quit: leaving) |
| 19:36:35 | → | gioyik joins (~gioyik@gateway/tor-sasl/gioyik) |
| 19:38:14 | → | Pickchea joins (~private@user/pickchea) |
| 19:41:29 | → | solomon joins (~solomon@cpe-76-168-7-139.socal.res.rr.com) |
| 19:41:55 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 19:42:35 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Remote host closed the connection) |
| 19:42:58 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 19:48:35 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 260 seconds) |
| 19:49:56 | → | jstolarek joins (~jstolarek@ers4.neoplus.adsl.tpnet.pl) |
| 19:51:48 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 19:51:59 | × | _xor quits (~xor@74.215.232.67) (Quit: brb) |
| 19:52:57 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 19:56:50 | → | Guest29 joins (~Guest29@93-172-101-61.bb.netvision.net.il) |
| 19:56:58 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 260 seconds) |
| 20:00:40 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds) |
| 20:02:38 | → | mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) |
| 20:03:00 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija) |
| 20:05:16 | × | mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Client Quit) |
| 20:07:56 | → | burnsidesLlama joins (~burnsides@dhcp168-013.wadham.ox.ac.uk) |
| 20:09:07 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 20:09:59 | → | mikoto-chan joins (~mikoto-ch@83.137.2.246) |
| 20:10:34 | × | Izem quits (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 252 seconds) |
| 20:12:16 | × | Topsi quits (~Tobias@dyndsl-095-033-025-122.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 20:12:19 | × | burnsidesLlama quits (~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 252 seconds) |
| 20:12:52 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 20:13:01 | × | mikoto-chan quits (~mikoto-ch@83.137.2.246) (Client Quit) |
| 20:13:42 | → | Izem joins (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
| 20:13:57 | × | Guest29 quits (~Guest29@93-172-101-61.bb.netvision.net.il) (Ping timeout: 256 seconds) |
| 20:17:11 | → | chomwitt joins (~chomwitt@ppp-94-67-1-143.home.otenet.gr) |
| 20:17:32 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 20:20:31 | × | oxide quits (~lambda@user/oxide) (Quit: oxide) |
| 20:20:34 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:23:07 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:25:12 | → | Guest1 joins (~Guest1@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) |
| 20:25:59 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 20:28:42 | × | qbt quits (~edun@user/edun) (Ping timeout: 260 seconds) |
| 20:32:25 | × | zer0bitz quits (~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 20:34:16 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection) |
| 20:34:36 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:36:38 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 20:37:16 | × | x28girl quits (~x28girl@user/x28girl) (Remote host closed the connection) |
| 20:37:53 | → | x28girl joins (~x28girl@user/x28girl) |
| 20:39:14 | <Heffalump> | sm: thanks |
| 20:40:53 | → | pavonia joins (~user@user/siracusa) |
| 20:41:32 | → | MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com) |
| 20:43:07 | × | solomon quits (~solomon@cpe-76-168-7-139.socal.res.rr.com) (Quit: Client closed) |
| 20:43:34 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 252 seconds) |
| 20:44:59 | <Heffalump> | sm: hmm, I don't see anything to dynamically load the actual Haskell code though |
| 20:45:35 | → | mikoto-chan joins (~mikoto-ch@83.137.2.246) |
| 20:49:53 | × | mikoto-chan quits (~mikoto-ch@83.137.2.246) (Client Quit) |
| 20:50:54 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 20:54:40 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 20:56:38 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:00:11 | → | wroathe joins (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) |
| 21:00:11 | × | wroathe quits (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Changing host) |
| 21:00:11 | → | wroathe joins (~wroathe@user/wroathe) |
| 21:01:16 | × | Guest1 quits (~Guest1@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) (Quit: Client closed) |
| 21:01:47 | × | jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2.1) |
| 21:02:06 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Remote host closed the connection) |
| 21:02:25 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 21:02:40 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 21:03:55 | <Izem> | It seems like a data constructor can only appear on the rhs of an equation, is that true? |
| 21:04:41 | <geekosaur> | > let Just x = Just 5 in x |
| 21:04:42 | <lambdabot> | 5 |
| 21:06:17 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 21:06:48 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 21:07:09 | <Cajun> | thats just a lhs pattern match though right? |
| 21:07:30 | <Cajun> | > let Just x = (Nothing :: Maybe Int) in x |
| 21:07:32 | <lambdabot> | *Exception: <interactive>:3:5-35: Non-exhaustive patterns in Just x |
| 21:07:41 | <geekosaur> | yes. I'm not exactly sure what Izem is asking about though |
| 21:07:50 | <geekosaur> | perhaps an example of what you mean? |
| 21:08:48 | <Izem> | I don't know, I'm just reading the introduction to haskell |
| 21:09:25 | <hpc> | Izem: there are patterns and there are expressions |
| 21:09:27 | <geekosaur> | wonder which introduction. also wonder if perhaps you're misunderstanding how data declarations work |
| 21:09:38 | <hpc> | in geekosaur's example, "Just x" is a pattern and "Just 5" is an expression |
| 21:09:43 | <geekosaur> | the type constructor is to the left of the =, the data constructors to the right |
| 21:09:52 | <Izem> | gentle introduction to haskell 98 |
| 21:19:39 | × | Izem quits (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 268 seconds) |
| 21:22:09 | × | chomwitt quits (~chomwitt@ppp-94-67-1-143.home.otenet.gr) (Remote host closed the connection) |
| 21:22:24 | <geekosaur> | ok, I think whatyou have misunderstood here is the difference between patterns and expressions |
| 21:22:54 | <geekosaur> | although if you can point to a specific part of the Gentle Introduction (which admittedly isn't as gentle as it might be), that would help |
| 21:23:22 | <geekosaur> | I found the Gentle Introduction much easier to understand with some SML/NJ knowledge under mybelt |
| 21:23:28 | <Cajun> | (how different is hs98 from hs2010?) |
| 21:23:35 | <geekosaur> | not very |
| 21:24:01 | <geekosaur> | datatype contexts went away, a few small things (pattern guards, I think?) were added |
| 21:24:31 | <tabemann> | strictly speaking hs98 proper didn't have nested modules |
| 21:25:01 | <geekosaur> | ghc's dialect is noticeably different but it can't really implement proper haskell98 any more as a result (differences in Num and Monad come to mind) |
| 21:25:31 | <tabemann> | few people use "real" HS98 though in practice |
| 21:25:48 | <Cajun> | i know the (n+k) patterns vanished, but arent those in a language extension? |
| 21:26:09 | <geekosaur> | yes |
| 21:26:25 | <geekosaur> | oh right, that too. with all the problems that made them go away |
| 21:26:35 | <geekosaur> | (they're partial) |
| 21:27:08 | <awpr> | partial as in attempting to match them sometimes errors? or partial as in they don't match all values? |
| 21:27:37 | <geekosaur> | they don't match all values and it's painful to write a pattern using n+k that does, iirc |
| 21:28:02 | × | tommd quits (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 265 seconds) |
| 21:28:59 | <awpr> | .. |
| 21:29:24 | <awpr> | oops, my tiny brain can't handle having a VM with focus-follows-mouse and a host OS with click-to-focus :/ |
| 21:30:12 | → | fawful joins (~guy@c-76-104-217-93.hsd1.wa.comcast.net) |
| 21:31:05 | → | _xor joins (~xor@74.215.232.67) |
| 21:31:46 | → | michalz joins (~michalz@185.246.204.57) |
| 21:32:02 | <Cajun> | focus follows mouse sounds very annoying |
| 21:32:26 | <ldlework> | have any of you seen the js debate around pipeline operator proposal |
| 21:32:40 | <Cajun> | js drama? sounds entertaining |
| 21:32:52 | × | michalz quits (~michalz@185.246.204.57) (Remote host closed the connection) |
| 21:33:02 | <geekosaur> | focus follows mouse is kinda traditional unix |
| 21:33:13 | <geekosaur> | although I admit I've never liked it |
| 21:33:25 | <ldlework> | they are debating between an F# style algebraic operator, and a "Hack" style where the lhs is bound to ^ in a rhs expression |
| 21:33:43 | <ldlework> | it looks like the "Hack" style version will win, and fp programmers are lamenting |
| 21:33:50 | <geekosaur> | urgh |
| 21:34:01 | <geekosaur> | yet another reason to avoid JS |
| 21:34:30 | × | max22- quits (~maxime@2a01cb088335980099348db52b55749a.ipv6.abo.wanadoo.fr) (Quit: Leaving) |
| 21:34:41 | <Cajun> | focus follows mouse sounds especially infuriating if a primary monitor is at non-native res and youre trying to scroll through a document on the second monitor without having the primary switch back to native res (this happens to me a lot) |
| 21:35:02 | <ldlework> | focus follows mouse is most frustrating when there is a popup floating window in the middle of the screen |
| 21:35:10 | → | michalz joins (~michalz@185.246.204.57) |
| 21:35:18 | <ldlework> | but you can't interact with it, because it gets sent to the back as the tiled windows behind it take focus as you move the mouse |
| 21:35:19 | <geekosaur> | Izem, are you still there? |
| 21:35:26 | <ldlework> | Amethyst on OSX has this problem |
| 21:35:41 | <awpr> | focus doesn't have to mean raise |
| 21:35:54 | × | jstolarek quits (~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Ping timeout: 268 seconds) |
| 21:35:54 | <ldlework> | yeah but on OSX that's what it means |
| 21:36:02 | <awpr> | that does sound pretty broken |
| 21:36:06 | <ldlework> | it is lol |
| 21:36:30 | <geekosaur> | yeh, traditional unix style does not raise |
| 21:36:40 | <ldlework> | maybe there's an OSX option somewhere but i didn't bother to look |
| 21:37:24 | × | Chai-T-Rex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 276 seconds) |
| 21:38:18 | <ldlework> | i kinda wonder if you haskell folk looked at the hack style operator and could give an analysis that was optimistic |
| 21:38:37 | <ldlework> | like maybe "in a way" the hack operator will still allow all the things a normal pipeline operator would, etc |
| 21:38:40 | <ldlework> | in some grander technical sense |
| 21:38:58 | → | Chai-T-Rex joins (~ChaiTRex@user/chaitrex) |
| 21:40:03 | <awpr> | only looked at it for a minute or so just now, but it kinda just looks like a single-use concise lambda syntax? |
| 21:40:37 | <awpr> | except with its application baked into it, so more like a weird let-in syntax |
| 21:40:51 | <ldlework> | lhs is bound to ^ in rhs expression |
| 21:40:55 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 21:41:17 | <awpr> | the proposal I'm reading says $, but otherwise that sounds like what I read |
| 21:41:27 | <ldlework> | yeah there were debates over the token |
| 21:42:02 | <awpr> | ah, okay, I see a bunch of variations. I guess they don't want to shadow jQuery. |
| 21:42:15 | <ldlework> | XD |
| 21:42:34 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:42:36 | <awpr> | people occasionally want something like that in Haskell so that e.g. `(x + _ + y) :: Num a => a -> a` |
| 21:43:54 | <awpr> | in general it's harder to figure out what the boundaries of such a lambda-ish thing would be, but maybe the JS case being fused into pipeline syntax would make it easy: "the whole expression between two pipeline operators or the start/end of statement" |
| 21:44:15 | <Cajun> | jquery is what i hated most about JS, its basically a must have if you want to do anything real with the language |
| 21:44:25 | → | natechan joins (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 21:45:20 | → | cjb joins (~cjbayliss@user/cjb) |
| 21:45:45 | <ldlework> | Cajun: not anymore, we have the ability to do `const t = (msg, handle) => <button onClick={handle}>{msg}</button>` and stuff now |
| 21:46:06 | <Cajun> | oh sweet, thats really nice |
| 21:50:38 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:52:23 | → | seydar joins (~seydar@154-27-113-252.starry-inc.net) |
| 21:52:35 | × | michalz quits (~michalz@185.246.204.57) (Remote host closed the connection) |
| 21:53:09 | <seydar> | in the definition of System.IO's readFile, the handle is opened but never seems to be closed. am i missing something? |
| 21:54:03 | <geekosaur> | readFile uses lazy I/O. the Handle is created in the background, as it were, and will eventually be garbage collected |
| 21:54:07 | <awpr> | probably relies on a GC finalizer to close it |
| 21:54:14 | <geekosaur> | if you need more control than that, use openFile |
| 21:54:25 | <seydar> | awesome, thank you both |
| 21:54:45 | → | michalz joins (~michalz@185.246.204.61) |
| 21:55:10 | <awpr> | GHC runtime has support for associating callbacks with an object that will be run when it's collected. it's okay for extra protection against leaking resources, but usually explicit closes + `bracket` (or a `withX` function) are preferred |
| 21:55:11 | × | michalz quits (~michalz@185.246.204.61) (Remote host closed the connection) |
| 21:57:04 | → | Izem joins (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
| 21:57:16 | × | seydar quits (~seydar@154-27-113-252.starry-inc.net) (Client Quit) |
| 21:57:29 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 268 seconds) |
| 22:00:31 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 252 seconds) |
| 22:02:05 | <Izem> | How do I read mappings with three arrows? |
| 22:03:04 | <Izem> | a->[a]->[a] is (a->[a])->[a] or a->([a]->[a]) ? |
| 22:03:30 | <geekosaur> | the latter |
| 22:06:22 | → | Guest85 joins (~Guest85@dynamic-78-30-180-145.adsl.eunet.rs) |
| 22:07:33 | × | _xor quits (~xor@74.215.232.67) (Quit: bbiab) |
| 22:07:38 | <Cajun> | arrows are right associative |
| 22:07:40 | × | jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 240 seconds) |
| 22:07:55 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:09:14 | × | Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:12:41 | × | Gurkenglas quits (~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 268 seconds) |
| 22:14:25 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 22:20:35 | <Franciman> | lol haskell is making fun of me |
| 22:20:47 | <Cajun> | how so? |
| 22:21:57 | <Franciman> | I have these two pieces of code |
| 22:21:59 | <Franciman> | https://bpa.st/TY5Q |
| 22:22:01 | <Franciman> | as you can see |
| 22:22:10 | <Franciman> | in both I define a self-referential term |
| 22:22:12 | <Franciman> | res |
| 22:22:15 | <Franciman> | but I can't understand why |
| 22:22:20 | <Franciman> | in the first case the program loops forever |
| 22:22:29 | <Franciman> | while in the second case it works as I expect |
| 22:22:37 | <Franciman> | is there less laziness in the first eval? |
| 22:23:11 | <Franciman> | or is it related to something else? |
| 22:26:11 | <Franciman> | maybe it is because I have a tuple? |
| 22:26:25 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection) |
| 22:26:43 | <geekosaur> | does putting ~ in front of the tuple help? |
| 22:26:56 | → | NoirCode joins (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
| 22:27:18 | <Franciman> | lemme try |
| 22:28:19 | → | __monty__ joins (~toonn@user/toonn) |
| 22:28:34 | × | CannabisIndica quits (~herb@user/mesaboogie) (Ping timeout: 252 seconds) |
| 22:29:21 | × | __monty__ quits (~toonn@user/toonn) (Client Quit) |
| 22:29:54 | × | Izem quits (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 265 seconds) |
| 22:29:58 | <Franciman> | geekosaur: you are a genious |
| 22:30:12 | <Franciman> | can i ask you what is happening? |
| 22:30:25 | <geekosaur> | ~ in front of a pattern makes it lazy |
| 22:30:42 | <geekosaur> | otherwise it was strictly matching the tuple and that may have caused the looping |
| 22:30:43 | <Franciman> | oh nice! |
| 22:30:54 | <Franciman> | thanks senseii |
| 22:32:34 | → | yauhsien joins (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) |
| 22:37:24 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 22:37:30 | × | yauhsien quits (~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 22:37:58 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 22:38:11 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 268 seconds) |
| 22:38:37 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 22:39:12 | × | jespada quits (~jespada@2803:9800:9842:7a62:edd5:5e74:3ec2:1b19) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:39:14 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 22:41:46 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2.1) |
| 22:44:01 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 252 seconds) |
| 22:44:58 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds) |
| 22:45:23 | → | waleee joins (~waleee@h-98-128-228-119.na.cust.bahnhof.se) |
| 22:45:28 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:48:10 | → | dsrt^ joins (~dsrt@12.203.127.82) |
| 22:49:43 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 22:51:13 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:51:43 | → | ulvarrefr joins (~user@185.24.53.152) |
| 22:58:10 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 22:59:18 | × | gioyik quits (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
| 22:59:32 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 22:59:48 | → | deejaytee joins (~deejaytee@vpn-fn-228.net.ed.ac.uk) |
| 22:59:55 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 23:00:11 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 23:00:12 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
| 23:00:12 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:00:35 | × | deejaytee quits (~deejaytee@vpn-fn-228.net.ed.ac.uk) (Client Quit) |
| 23:00:41 | <Franciman> | geekosaur: sorry, I have another similar problem now |
| 23:00:48 | <Franciman> | I am in the ST monad, and I have |
| 23:01:05 | <Franciman> | res <- runProgram s e (E.bind res bEnv') prog |
| 23:01:13 | <Franciman> | is there a way to make this lazy too? |
| 23:01:18 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 23:01:22 | <Franciman> | I tried with mdo |
| 23:01:26 | <Franciman> | and RecursiveDo |
| 23:01:28 | <Franciman> | but it loops :< |
| 23:02:06 | × | TranquilEcho quits (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
| 23:02:06 | <geekosaur> | hm. that I don't know but suspect laziness will depend on ST's bind and there may be no way around it |
| 23:02:54 | <Franciman> | this is unfortunate |
| 23:02:55 | <Franciman> | damn |
| 23:02:58 | <Franciman> | thanks |
| 23:03:31 | <geekosaur> | res itself shjould already be lazy since it's irrefutable |
| 23:04:05 | × | NoirCode quits (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 268 seconds) |
| 23:05:11 | × | dsrt^ quits (~dsrt@12.203.127.82) (Remote host closed the connection) |
| 23:05:34 | <Franciman> | uhm, in fact the computation terminates at first |
| 23:05:39 | <Franciman> | but then it says it loops |
| 23:05:41 | <Franciman> | i.e. haskell says |
| 23:05:44 | <Franciman> | ellipse: <<loop>> |
| 23:05:54 | <Franciman> | so ST is doing its perverted magic |
| 23:05:56 | <Franciman> | lol |
| 23:06:19 | <geekosaur> | hm, that implies the loop is somewhere else |
| 23:06:39 | <geekosaur> | <<loop>> means a thunk was reentered while evaluating it to WHNF |
| 23:06:53 | <geekosaur> | i.e. something like x = x |
| 23:08:20 | <Franciman> | is there a way to know what caused the <<loop>> ? |
| 23:08:36 | <geekosaur> | possibly +RTS -xc |
| 23:08:54 | <geekosaur> | may require building with profiling enabled |
| 23:10:09 | <Franciman> | awesome |
| 23:10:12 | <Franciman> | thanks |
| 23:10:14 | <Franciman> | again |
| 23:13:41 | → | roboguy_ joins (~roboguy_@cpe-98-156-4-161.kc.res.rr.com) |
| 23:16:28 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 23:16:39 | → | lavaman joins (~lavaman@98.38.249.169) |
| 23:16:40 | → | caef^ joins (~caef@12.203.127.82) |
| 23:17:26 | × | hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 23:17:27 | × | MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer) |
| 23:17:42 | → | MQ-17J joins (~MQ-17J@8.21.10.6) |
| 23:21:22 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 23:24:42 | → | NoirCode joins (~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) |
| 23:25:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 23:26:50 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) |
| 23:27:55 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 260 seconds) |
| 23:31:16 | → | _xor joins (~xor@74.215.232.67) |
| 23:31:38 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 260 seconds) |
| 23:32:13 | → | solomon joins (~solomon@cpe-76-168-7-139.socal.res.rr.com) |
| 23:34:27 | → | hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com) |
| 23:34:37 | × | Guest85 quits (~Guest85@dynamic-78-30-180-145.adsl.eunet.rs) (Quit: Client closed) |
| 23:39:05 | × | sheddow quits (~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) (Ping timeout: 256 seconds) |
| 23:43:16 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 23:51:24 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
| 23:51:44 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 23:53:42 | → | nfd joins (~nfd@user/nfd) |
| 23:54:19 | × | solomon quits (~solomon@cpe-76-168-7-139.socal.res.rr.com) (Quit: Client closed) |
| 23:54:48 | → | solomon joins (~quassel@cpe-76-168-7-139.socal.res.rr.com) |
All times are in UTC on 2021-09-19.