2021/09/19

2021-09-19 00:05:01 +0200jstolarek(~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Ping timeout: 252 seconds)
2021-09-19 00:07:16 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-09-19 00:07:52 +0200Guest3790(~chris@81.96.113.213) (Remote host closed the connection)
2021-09-19 00:08:10 +0200tfeb(~tfb@88.98.95.237)
2021-09-19 00:08:29 +0200chris(~chris@81.96.113.213)
2021-09-19 00:08:33 +0200chrisGuest8163
2021-09-19 00:12:12 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-19 00:13:08 +0200Guest8163(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2021-09-19 00:14:14 +0200__monty__(~toonn@user/toonn)
2021-09-19 00:14:39 +0200__monty__(~toonn@user/toonn) (Client Quit)
2021-09-19 00:14:58 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2021-09-19 00:23:09 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-19 00:25:40 +0200tfeb(~tfb@88.98.95.237) (Quit: died)
2021-09-19 00:34:13 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-09-19 00:35:27 +0200chris(~chris@81.96.113.213)
2021-09-19 00:35:30 +0200chrisGuest359
2021-09-19 00:36:31 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-09-19 00:36:51 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c)
2021-09-19 00:36:58 +0200lbseale(~lbseale@user/ep1ctetus)
2021-09-19 00:39:25 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be)
2021-09-19 00:40:20 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
2021-09-19 00:41:45 +0200acidjnk(~acidjnk@p200300d0c703cb488c4c1d5595111d0b.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2021-09-19 00:42:10 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
2021-09-19 00:42:19 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1)
2021-09-19 00:42:43 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-19 00:47:58 +0200zer0bitz(~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-09-19 01:12:26 +0200Guest359(~chris@81.96.113.213) (Remote host closed the connection)
2021-09-19 01:12:42 +0200TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-09-19 01:13:03 +0200chris(~chris@81.96.113.213)
2021-09-19 01:13:04 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 265 seconds)
2021-09-19 01:13:06 +0200Guest21(~Guest21@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-09-19 01:13:06 +0200chrisGuest3574
2021-09-19 01:15:26 +0200proofofkeags_(~proofofke@97-118-134-2.hlrn.qwest.net)
2021-09-19 01:15:58 +0200 <Guest21> What is an example of a type that is a functor that you cannot write a valid ‘join :: f (f a) -> f a’ for?
2021-09-19 01:16:50 +0200cuz(~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7)
2021-09-19 01:17:24 +0200 <Cajun> (btw its the backtick ` for the monospace font, it should be on the same key as the tilde ~)
2021-09-19 01:17:45 +0200Guest3574(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2021-09-19 01:18:01 +0200 <Guest21> oh ok
2021-09-19 01:18:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 01:21:05 +0200 <geekosaur> ZipList, I think
2021-09-19 01:21:32 +0200 <geekosaur> because you never get aroiund to joining, because both results are infinite
2021-09-19 01:22:38 +0200 <geekosaur> (ZipList is a newtype over lists which has an Applicative instance but no Monad instance)
2021-09-19 01:22:56 +0200 <hpc> you can still write something with join's type, it just doesn't obey the laws
2021-09-19 01:23:03 +0200 <geekosaur> yeh
2021-09-19 01:24:08 +0200 <Guest21> join :: [[a]] -> [a]. Ok I’m gonna study this one. I’ve seen this discussed as a sort of canonical example of a type that is a Applicative but not a Monad
2021-09-19 01:24:24 +0200 <hpc> [] is very much a Monad
2021-09-19 01:24:29 +0200 <hpc> ZipList is different
2021-09-19 01:24:32 +0200 <geekosaur> that's a normal list. look at how the ZipList Applicative is defined
2021-09-19 01:24:41 +0200 <Guest21> Right ziplist wraps this
2021-09-19 01:24:48 +0200 <hpc> https://hoogle.haskell.org/?hoogle=ZipList
2021-09-19 01:25:58 +0200 <Cajun> https://paste.tomsmeding.com/dd6I1dBV is the applicative instance specifically
2021-09-19 01:28:17 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it)
2021-09-19 01:30:00 +0200enikarthought, join works only with monads (and it can be use to define monad instead of bind)
2021-09-19 01:32:01 +0200 <geekosaur> correct
2021-09-19 01:33:03 +0200 <geekosaur> well, kinda-sorta. you can define join for more things than monads, but you can't then go on to define a law-abiding monad
2021-09-19 01:33:10 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it) (Ping timeout: 252 seconds)
2021-09-19 01:33:55 +0200 <geekosaur> like as above where you can define join for ZipLists but the result doesn't obey the monad laws
2021-09-19 01:34:00 +0200 <hpc> fun fact, there was once a type class that you couldn't write an unlawful instance for, called Pointed
2021-09-19 01:34:05 +0200 <hpc> which consisted of just pure from Applicative
2021-09-19 01:34:06 +0200 <geekosaur> this is why there are laws separate from the function definitions
2021-09-19 01:34:17 +0200smitop7(~smitop@user/smitop)
2021-09-19 01:34:24 +0200 <hpc> once people realized that though, the class became rather pointless
2021-09-19 01:34:48 +0200koz-(~koz@121.99.240.58)
2021-09-19 01:34:50 +0200 <geekosaur> Haskell's type system isn't strong enough to capture many typeclass laws
2021-09-19 01:34:57 +0200 <hpc> (the laws it had were actually free theorems)
2021-09-19 01:35:08 +0200nitrix_(~nitrix@ns569831.ip-51-79-81.net)
2021-09-19 01:35:57 +0200smitop(~smitop@user/smitop) (Quit: Ping timeout (120 seconds))
2021-09-19 01:35:57 +0200smitop7smitop
2021-09-19 01:35:57 +0200koz(~koz@121.99.240.58) (Quit: ZNC 1.7.5 - https://znc.in)
2021-09-19 01:35:57 +0200nitrix(~nitrix@user/nitrix) (Quit: Genius is one percent inspiration and ninety-nine percent perspiration)
2021-09-19 01:36:23 +0200 <geekosaur> tbh I thought Pointed never really existed outside the Typeclassopedia because it was known to not be useful
2021-09-19 01:36:42 +0200 <Guest21> geekosaur: are there languages with a strong enough type system that they can prove type class laws at compile time?
2021-09-19 01:37:03 +0200 <geekosaur> proof checking languages like Idris and Agda, I believe
2021-09-19 01:37:17 +0200 <geekosaur> (note that this doens't mean they're easy or cheap)
2021-09-19 01:37:29 +0200 <Guest21> Ok I didn’t know these languages used typeclasses
2021-09-19 01:37:57 +0200 <geekosaur> I'm not sure Idris does formally but you can describe them in it
2021-09-19 01:38:16 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 01:39:57 +0200slack1256(~slack1256@191.126.227.79)
2021-09-19 01:42:58 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-09-19 01:44:52 +0200MQ-17J(~MQ-17J@8.21.10.6) (Ping timeout: 268 seconds)
2021-09-19 01:45:34 +0200hammock(~Hammock@2600:1700:19a1:3330:a2d6:386:8cfd:4ac5)
2021-09-19 01:47:28 +0200 <Guest21> Do Agda programmers look at Haskell somewhat similarly to Haskell programmers look at a dynamically typed language? For example in my Perl code I always worry in the back of my head that I’m gonna do something accidentally try to equate two strings with (==)
2021-09-19 01:47:47 +0200 <Guest21> Err didn’t mean to enter so fast
2021-09-19 01:48:16 +0200 <Guest21> Anyways I wonder if Agda people see writing an unlawful type class instance equally as dangerous
2021-09-19 01:49:26 +0200 <Guest21> writing an illegal typeclass instance would be even worse because the program wouldn’t halt
2021-09-19 01:50:24 +0200 <Guest21> My perl example is a poor one
2021-09-19 01:52:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-19 01:58:32 +0200Guest21(~Guest21@pool-96-252-123-136.bstnma.fios.verizon.net) (Quit: Client closed)
2021-09-19 02:01:12 +0200Phantastes(~Phantaste@c-67-173-229-120.hsd1.co.comcast.net)
2021-09-19 02:01:53 +0200Phantastes(~Phantaste@c-67-173-229-120.hsd1.co.comcast.net) (Client Quit)
2021-09-19 02:03:19 +0200proofofkeags_(~proofofke@97-118-134-2.hlrn.qwest.net) (Quit: Leaving)
2021-09-19 02:04:50 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2021-09-19 02:10:27 +0200funsafe(~funsafe@2601:1c1:4200:e53:2875:5507:42e4:4e14) (Read error: Connection reset by peer)
2021-09-19 02:14:13 +0200funsafe(~funsafe@2601:1c1:4200:e53:2875:5507:42e4:4e14)
2021-09-19 02:14:52 +0200cuz(~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7) (Ping timeout: 268 seconds)
2021-09-19 02:19:05 +0200 <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
2021-09-19 02:19:33 +0200 <Cajun> i wonder whatll happen to agda once (hopefully) DH gets completed
2021-09-19 02:20:11 +0200 <geekosaur> I suspect Agda will still do dependent programming better
2021-09-19 02:20:23 +0200 <Cajun> why do you say that?
2021-09-19 02:20:34 +0200 <geekosaur> Haskell may get support for it but it'll probably never be a great fit
2021-09-19 02:21:11 +0200 <geekosaur> unless the language changes so much in the process that it's more like Agda than Haskell anyway
2021-09-19 02:21:42 +0200 <Cajun> it would be a hefty language extension thats for sure
2021-09-19 02:21:59 +0200 <geekosaur> probably multiple extensions
2021-09-19 02:22:16 +0200 <geekosaur> the first of which is scheduled to land in 9.2, I think
2021-09-19 02:22:58 +0200 <Cajun> thats exciting! i also read in the changelog that ghc2021 is getting added as well :)
2021-09-19 02:31:02 +0200cuz(~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7)
2021-09-19 02:38:24 +0200vicfred(~vicfred@user/vicfred)
2021-09-19 02:39:34 +0200lbseale(~lbseale@user/ep1ctetus) (Ping timeout: 252 seconds)
2021-09-19 02:41:49 +0200funsafe(~funsafe@2601:1c1:4200:e53:2875:5507:42e4:4e14) (Read error: Connection reset by peer)
2021-09-19 02:44:53 +0200kayprish(~kayprish@46.240.130.158)
2021-09-19 02:45:16 +0200kayprish(~kayprish@46.240.130.158) (Remote host closed the connection)
2021-09-19 02:46:30 +0200funsafe(~funsafe@2601:1c1:4200:e53:2875:5507:42e4:4e14)
2021-09-19 02:56:21 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-09-19 03:06:24 +0200sneedsfeed(~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com)
2021-09-19 03:08:20 +0200 <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?
2021-09-19 03:09:08 +0200 <pavonia> > find (== 10) [1..]
2021-09-19 03:09:10 +0200 <lambdabot> Just 10
2021-09-19 03:10:11 +0200 <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
2021-09-19 03:11:54 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-09-19 03:13:02 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-09-19 03:13:48 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2021-09-19 03:13:56 +0200 <dsal> @src find
2021-09-19 03:13:56 +0200 <lambdabot> find p = listToMaybe . filter p
2021-09-19 03:14:05 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
2021-09-19 03:14:40 +0200 <dsal> (usual disclaimer: @src is a way to think about a thing, not necessarily the way to write a thing)
2021-09-19 03:14:54 +0200xff0x(~xff0x@2001:1a81:52ed:4100:e126:e3d0:8698:438) (Ping timeout: 268 seconds)
2021-09-19 03:15:04 +0200lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2021-09-19 03:15:19 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-09-19 03:15:24 +0200mousey(~sky@gateway/tor-sasl/mousey) (Ping timeout: 276 seconds)
2021-09-19 03:15:33 +0200 <geekosaur> also, haskell is not magic: it doesn't know, for example, that 10 will occur exactly once in [1..] :: Integer
2021-09-19 03:16:07 +0200xff0x(~xff0x@2001:1a81:5327:1a00:7ba6:6c4f:f759:2f72)
2021-09-19 03:16:10 +0200 <geekosaur> or that (-1) won't occur at all
2021-09-19 03:19:59 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 03:21:03 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-19 03:21:28 +0200mousey(~sky@gateway/tor-sasl/mousey)
2021-09-19 03:23:40 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
2021-09-19 03:24:27 +0200 <sneedsfeed> is there anything else similar to find but more general? So like I can return an arbitrary result instead of just the element?
2021-09-19 03:24:53 +0200Guest45(~Guest45@pool-96-252-123-136.bstnma.fios.verizon.net)
2021-09-19 03:24:59 +0200Guest45(~Guest45@pool-96-252-123-136.bstnma.fios.verizon.net) (Client Quit)
2021-09-19 03:25:19 +0200 <Cajun> sounds like a lens traversal
2021-09-19 03:25:44 +0200lerax(~user@177-104-241-177.gbsn.com.br)
2021-09-19 03:25:50 +0200 <Cajun> though im not entirely sure what you mean specifically by "arbitrary result"
2021-09-19 03:26:04 +0200chris(~chris@81.96.113.213)
2021-09-19 03:26:08 +0200chrisGuest6939
2021-09-19 03:26:31 +0200 <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.
2021-09-19 03:26:42 +0200neurocyte013(~neurocyte@94.46.67.47)
2021-09-19 03:26:43 +0200neurocyte013(~neurocyte@94.46.67.47) (Changing host)
2021-09-19 03:26:43 +0200neurocyte013(~neurocyte@user/neurocyte)
2021-09-19 03:26:57 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2021-09-19 03:27:05 +0200 <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.
2021-09-19 03:27:20 +0200 <Cajun> you can do that if its ordered. exponential search may be useful here but a simple linear search would be fine
2021-09-19 03:27:29 +0200 <awpr> `find _ . takeWhile _`
2021-09-19 03:27:52 +0200 <sneedsfeed> its not fully ordered unfortunately
2021-09-19 03:28:04 +0200 <sneedsfeed> allPP = [(x^k,(x,k)) | x <- [2..], k <- [2..x]]
2021-09-19 03:29:05 +0200neurocyte01(~neurocyte@user/neurocyte) (Ping timeout: 268 seconds)
2021-09-19 03:29:05 +0200neurocyte013neurocyte01
2021-09-19 03:29:21 +0200 <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
2021-09-19 03:31:08 +0200 <dsal> sneedsfeed: Why don't you just not emit things you don't want?
2021-09-19 03:31:31 +0200 <sneedsfeed> dsal probably because I'm not very smart.
2021-09-19 03:31:38 +0200 <dsal> It's not actually any different.
2021-09-19 03:31:57 +0200lerax(~user@177-104-241-177.gbsn.com.br) (IO())
2021-09-19 03:32:00 +0200 <dsal> sneedsfeed: You just add a `, myPredicate` in that list comprehension.
2021-09-19 03:32:05 +0200 <dsal> But it's the same problem.
2021-09-19 03:32:50 +0200 <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
2021-09-19 03:32:51 +0200 <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.
2021-09-19 03:33:43 +0200 <sneedsfeed> I mean I do actually have a solution here. I just don't like it.
2021-09-19 03:34:01 +0200cuz(~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7) (Ping timeout: 268 seconds)
2021-09-19 03:34:13 +0200 <dsal> I don't even understand your problem. I'm not very mathletic.
2021-09-19 03:35:26 +0200 <sneedsfeed> https://www.codewars.com/kata/54d4c8b08776e4ad92000835
2021-09-19 03:35:28 +0200 <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
2021-09-19 03:38:50 +0200 <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
2021-09-19 03:40:05 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 03:41:49 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2021-09-19 03:45:07 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-09-19 03:45:32 +0200alx741(~alx741@186.178.108.187) (Quit: alx741)
2021-09-19 03:46:15 +0200 <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
2021-09-19 03:46:20 +0200 <sneedsfeed> awpr I just understood what you meant by `find _ . takeWhile _` thats really smart I think its exactly what I need.
2021-09-19 03:48:13 +0200mikoto-chan(~mikoto-ch@83.137.2.250) (Ping timeout: 265 seconds)
2021-09-19 03:48:32 +0200 <awpr> Axman6: https://hackage.haskell.org/package/bytestring-trie might be worth a ...trie
2021-09-19 03:48:44 +0200 <Axman6> top notch pun, thanks
2021-09-19 03:49:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 03:49:05 +0200 <awpr> not sure if it'll be more space-efficient, but it's at least something different from the other two
2021-09-19 03:50:30 +0200 <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
2021-09-19 03:54:07 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-09-19 03:54:07 +0200allbery_b(~geekosaur@xmonad/geekosaur)
2021-09-19 03:54:10 +0200allbery_bgeekosaur
2021-09-19 03:58:20 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-19 04:00:25 +0200 <Axman6> seems my program consistently uses just under 23GB of RAM no matter which map I use :(
2021-09-19 04:00:42 +0200 <Axman6> HashMap has been the fastest though
2021-09-19 04:05:09 +0200machinedgod(~machinedg@24.105.81.50) (Quit: Lost terminal)
2021-09-19 04:07:54 +0200cuz(~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7)
2021-09-19 04:11:40 +0200juhp(~juhp@bb220-255-143-175.singnet.com.sg) (Ping timeout: 240 seconds)
2021-09-19 04:12:58 +0200cuz(~user@2601:182:cc02:8b0:c4d:9139:bf18:4cf7) (Ping timeout: 260 seconds)
2021-09-19 04:15:21 +0200juhp(~juhp@bb42-60-204-249.singnet.com.sg)
2021-09-19 04:16:40 +0200juhp(~juhp@bb42-60-204-249.singnet.com.sg) (Client Quit)
2021-09-19 04:16:54 +0200juhp(~juhp@bb42-60-204-249.singnet.com.sg)
2021-09-19 04:18:20 +0200yinghua(~yinghua@2800:2121:1400:1db:b16d:d359:384:92aa) (Quit: Leaving)
2021-09-19 04:19:26 +0200td_(~td@94.134.91.211) (Ping timeout: 268 seconds)
2021-09-19 04:21:07 +0200td_(~td@muedsl-82-207-238-223.citykom.de)
2021-09-19 04:22:52 +0200eruditass(uid248673@id-248673.uxbridge.irccloud.com)
2021-09-19 04:23:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-19 04:27:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-19 04:27:49 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-19 04:27:49 +0200wroathe(~wroathe@user/wroathe)
2021-09-19 04:28:17 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 268 seconds)
2021-09-19 04:30:08 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 04:35:33 +0200 <awpr> apparently Stack needs to install GHC in order to answer what GHC it wants to install
2021-09-19 04:36:18 +0200 <awpr> `stack query compiler wanted` downloads and installs GHC
2021-09-19 04:43:47 +0200 <Axman6> lovely
2021-09-19 04:55:53 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 265 seconds)
2021-09-19 04:57:20 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-09-19 04:57:33 +0200slack1256(~slack1256@191.126.227.79) (Remote host closed the connection)
2021-09-19 05:00:09 +0200 <janus> Axman6: how do you query memory usage?
2021-09-19 05:06:55 +0200vysn(~vysn@user/vysn) (Ping timeout: 268 seconds)
2021-09-19 05:11:53 +0200slack1256(~slack1256@181.203.34.71)
2021-09-19 05:13:33 +0200slac76507(~slack1256@191.126.227.79)
2021-09-19 05:13:40 +0200Null_A(~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6)
2021-09-19 05:16:47 +0200slack1256(~slack1256@181.203.34.71) (Ping timeout: 268 seconds)
2021-09-19 05:21:31 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-09-19 05:25:26 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net)
2021-09-19 05:27:56 +0200 <Axman6> I have been using /usr/bin/time -l
2021-09-19 05:32:36 +0200 <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
2021-09-19 05:33:38 +0200 <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
2021-09-19 05:34:31 +0200 <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
2021-09-19 05:35:18 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b84a:ec0a:d36e:74f2)
2021-09-19 05:37:27 +0200 <clever> https://github.com/ghc/ghc/blob/master/rts/posix/OSMem.c
2021-09-19 05:37:40 +0200 <clever> it happens somewhere in here, but i cant find it anymore...
2021-09-19 05:39:46 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds)
2021-09-19 05:40:01 +0200meinside(uid24933@id-24933.helmsley.irccloud.com)
2021-09-19 05:40:26 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-19 05:41:36 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 05:42:07 +0200benin036932301(~benin@183.82.205.89)
2021-09-19 05:45:16 +0200 <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
2021-09-19 05:45:36 +0200 <Axman6> janus: probably, but I'm mostly worried about the amount of memory the system sees it using
2021-09-19 05:45:48 +0200 <Axman6> I am also using +RTS -s
2021-09-19 05:46:01 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-09-19 05:46:05 +0200 <Axman6> (Productivity for this app is not very good =)
2021-09-19 05:46:28 +0200 <Axman6> the non-moving GC seems to help runtime qute a bit though~!
2021-09-19 05:46:29 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2021-09-19 05:47:10 +0200 <awpr> any chance the bytes-to-int mapping is constant throughout large chunks of the program?
2021-09-19 05:48:38 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2021-09-19 05:57:30 +0200cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2021-09-19 06:00:19 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker) (Ping timeout: 252 seconds)
2021-09-19 06:00:45 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 06:00:45 +0200cheater(~Username@user/cheater)
2021-09-19 06:01:10 +0200TheCoffeMaker(~TheCoffeM@user/thecoffemaker)
2021-09-19 06:05:26 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-09-19 06:16:46 +0200Lycurgus(~juan@98.4.112.204)
2021-09-19 06:19:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 06:21:02 +0200solomon(~solomon@cpe-76-168-7-139.socal.res.rr.com)
2021-09-19 06:22:55 +0200hammock(~Hammock@2600:1700:19a1:3330:a2d6:386:8cfd:4ac5) (Ping timeout: 252 seconds)
2021-09-19 06:27:08 +0200wei2912(~wei2912@112.199.250.21)
2021-09-19 06:27:15 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 06:41:10 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds)
2021-09-19 06:43:02 +0200paddymahoney(~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com)
2021-09-19 06:54:18 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-19 06:57:18 +0200arahael(~arahael@118.211.178.62) (Ping timeout: 268 seconds)
2021-09-19 06:57:58 +0200arahael(~arahael@118.211.178.62)
2021-09-19 06:59:24 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 07:00:24 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Client Quit)
2021-09-19 07:03:25 +0200xsarnik7(xsarnik@lounge.fi.muni.cz)
2021-09-19 07:03:25 +0200xsarnik(xsarnik@lounge.fi.muni.cz) (Read error: Connection reset by peer)
2021-09-19 07:03:25 +0200xsarnik7xsarnik
2021-09-19 07:04:40 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-19 07:05:14 +0200Guest6939(~chris@81.96.113.213) (Remote host closed the connection)
2021-09-19 07:05:51 +0200chris(~chris@81.96.113.213)
2021-09-19 07:05:55 +0200chrisGuest1406
2021-09-19 07:05:56 +0200keltono(~kelton@x-160-94-179-178.acm.umn.edu) (Ping timeout: 268 seconds)
2021-09-19 07:05:57 +0200int-e(~noone@int-e.eu) (Ping timeout: 245 seconds)
2021-09-19 07:06:06 +0200int-e(~noone@int-e.eu)
2021-09-19 07:06:13 +0200keltono(~kelton@x-160-94-179-178.acm.umn.edu)
2021-09-19 07:09:03 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2021-09-19 07:10:19 +0200Guest1406(~chris@81.96.113.213) (Ping timeout: 252 seconds)
2021-09-19 07:10:42 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
2021-09-19 07:13:50 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c)
2021-09-19 07:15:18 +0200max22-(~maxime@2a01cb0883359800da5887c8e8eac50d.ipv6.abo.wanadoo.fr)
2021-09-19 07:17:10 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it)
2021-09-19 07:19:35 +0200neo1(~neo3@cpe-292712.ip.primehome.com)
2021-09-19 07:21:05 +0200 <Boarders> What are the good default command line options with criterion to get the most robust numbers?
2021-09-19 07:21:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-19 07:21:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-19 07:21:09 +0200wroathe(~wroathe@user/wroathe)
2021-09-19 07:21:30 +0200 <Boarders> can you even configure that from the command line or do you need to change the benchmark options
2021-09-19 07:21:34 +0200System123(~System123@net-37-179-171-3.cust.vodafonedsl.it) (Ping timeout: 268 seconds)
2021-09-19 07:23:03 +0200nitrix_(~nitrix@ns569831.ip-51-79-81.net) (Changing host)
2021-09-19 07:23:03 +0200nitrix_(~nitrix@user/nitrix)
2021-09-19 07:23:08 +0200nitrix_nitrix
2021-09-19 07:25:40 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 240 seconds)
2021-09-19 07:29:12 +0200 <Guest372> :t withFile
2021-09-19 07:29:13 +0200 <lambdabot> error:
2021-09-19 07:29:13 +0200 <lambdabot> • Variable not in scope: withFile
2021-09-19 07:29:13 +0200 <lambdabot> • Perhaps you meant one of these:
2021-09-19 07:30:06 +0200 <Guest372> in System.IO, withFile has a type Handle, how we can use it?
2021-09-19 07:32:03 +0200 <Guest372> https://hackage.haskell.org/package/managed-1.0.8/docs/Control-Monad-Managed.html
2021-09-19 07:32:33 +0200 <Boarders> what do you want to do with the file?
2021-09-19 07:32:38 +0200zaquest(~notzaques@5.128.210.178) (Quit: Leaving)
2021-09-19 07:34:00 +0200 <Guest372> -- A hypothetical function that copies data from one handle to another copy :: Handle -> Handle -> IO ()
2021-09-19 07:34:40 +0200 <Guest372> this `copy' is not implemented?
2021-09-19 07:35:38 +0200 <Boarders> copy h1 h2 = do
2021-09-19 07:35:38 +0200 <Boarders> str <- hGetContents' h1
2021-09-19 07:35:38 +0200 <Boarders> hPutStr h2 str
2021-09-19 07:35:42 +0200zaquest(~notzaques@5.128.210.178)
2021-09-19 07:35:46 +0200 <Boarders> maybe something like that?
2021-09-19 07:37:26 +0200 <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)
2021-09-19 07:37:58 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-19 07:37:58 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-19 07:37:58 +0200wroathe(~wroathe@user/wroathe)
2021-09-19 07:39:04 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-09-19 07:39:29 +0200 <Guest372> this `copy' doing is very like C copy file, I like to know its definition
2021-09-19 07:40:11 +0200 <Boarders> I just wrote a definition
2021-09-19 07:40:21 +0200 <Guest372> ok i will try it
2021-09-19 07:40:28 +0200 <Boarders> Read from the first handle and write to the second
2021-09-19 07:40:50 +0200 <Boarders> If you want the more performance version then use Bytestrings to do it
2021-09-19 07:42:37 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-19 07:49:38 +0200meinside(uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-19 07:51:28 +0200qbt(~edun@user/edun)
2021-09-19 07:52:42 +0200 <Guest372> https://paste.tomsmeding.com/spOOZyZs
2021-09-19 07:53:14 +0200qbt(~edun@user/edun) (Remote host closed the connection)
2021-09-19 07:54:04 +0200 <Guest372> this type doesnt fit, expect type ContT r IO Handle, actual ContT r IO ()
2021-09-19 07:54:47 +0200 <Guest372> in that lift (copy inHandle outHandle), how I can change it?
2021-09-19 07:55:44 +0200Gurkenglas(~Gurkengla@dslb-002-207-014-195.002.207.pools.vodafone-ip.de)
2021-09-19 07:58:56 +0200 <Boarders> Did you try changing Handle to ()?
2021-09-19 07:59:58 +0200 <Guest372> aha, it worked, but why?
2021-09-19 08:00:31 +0200 <Guest372> inHandle :: Handle, not ()
2021-09-19 08:00:39 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-19 08:02:14 +0200 <Guest372> copyFile :: ContT r IO (), but inHandle inside the do notation has Handle not (), that is ok?
2021-09-19 08:06:35 +0200 <Boarders> I think you should look into how monadic notation works in Haskell and it will answer your question
2021-09-19 08:09:43 +0200qbt(~edun@user/edun)
2021-09-19 08:12:30 +0200Null_A(~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) (Remote host closed the connection)
2021-09-19 08:12:59 +0200 <Guest372> oh i see, the type is just result type,
2021-09-19 08:13:34 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-19 08:15:24 +0200 <dsal> Guest372: you don't need a `do` block for just `hPutStr dest =<< hGetContents src`
2021-09-19 08:15:50 +0200 <dsal> Or the other way around if you prefer.
2021-09-19 08:16:14 +0200 <Guest372> ok
2021-09-19 08:16:17 +0200 <dsal> Or a better type. Heh. I've seen a package somewhere with helpers like that.
2021-09-19 08:19:39 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 08:24:25 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-09-19 08:26:55 +0200reyaboj(~reyaboj@103.69.150.85)
2021-09-19 08:27:19 +0200 <reyaboj> hi guys
2021-09-19 08:27:46 +0200harveypwca(~harveypwc@2601:246:c180:a570:2435:ba7:e573:bc26) (Quit: Leaving)
2021-09-19 08:28:34 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-09-19 08:28:58 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-09-19 08:31:00 +0200 <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>.
2021-09-19 08:31:07 +0200 <reyaboj> Is my understanding correct there? ^
2021-09-19 08:35:50 +0200 <hololeap> reyaboj: yeah, foldr f x [1,2,3] = x `f` (1 `f` (2 `f` 3))
2021-09-19 08:37:11 +0200 <awpr> hmm, it occurs to me to wonder what you'd call a function that's `foldr . flip`
2021-09-19 08:37:33 +0200 <awpr> the resulting tree of applications of the reducing function associates to the left, but it associates the list elements to the right :)
2021-09-19 08:48:00 +0200 <reyaboj> wow lol you just broke my brain...let me try to write that down and play with it
2021-09-19 08:50:15 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 08:50:35 +0200 <c_wraith> it's still foldr, the combining function just takes its args in the opposite order. There's nothing special about that ordering
2021-09-19 08:51:16 +0200 <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
2021-09-19 08:51:37 +0200 <awpr> seems like how it associates the list elements is more fundamental
2021-09-19 08:52:25 +0200 <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)
2021-09-19 08:52:53 +0200 <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
2021-09-19 08:53:03 +0200 <c_wraith> doesn't actually change anything about the type behavior.
2021-09-19 08:53:12 +0200 <c_wraith> Just how convention says to write it on paper
2021-09-19 08:59:09 +0200rembo10(~rembo10@wally.codeshy.com) (Quit: ZNC 1.8.2 - https://znc.in)
2021-09-19 09:00:05 +0200rembo10(~rembo10@wally.codeshy.com)
2021-09-19 09:01:34 +0200Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-09-19 09:03:23 +0200roboguy_(~roboguy_@2605:a601:afe7:9f00:b84a:ec0a:d36e:74f2) ()
2021-09-19 09:06:57 +0200 <reyaboj> Ahhhh
2021-09-19 09:07:11 +0200 <reyaboj> Thanks guys! I think I understand why I got confused now.
2021-09-19 09:09:15 +0200ubert(~Thunderbi@91.141.68.10.wireless.dyn.drei.com)
2021-09-19 09:11:42 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 09:14:29 +0200ArctVaulMarsHMPJ(~pjetcetal@2.95.253.167)
2021-09-19 09:14:53 +0200ArctVaulMarsHMPJ(~pjetcetal@2.95.253.167) (Remote host closed the connection)
2021-09-19 09:24:54 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds)
2021-09-19 09:26:31 +0200Topsi(~Tobias@dyndsl-095-033-025-122.ewe-ip-backbone.de)
2021-09-19 09:31:38 +0200chomwitt(~chomwitt@2a02:587:dc15:500:12c3:7bff:fe6d:d374)
2021-09-19 09:32:34 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-09-19 09:34:05 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-19 09:36:26 +0200acidjnk(~acidjnk@p200300d0c703cb63dd8ae578d0e30132.dip0.t-ipconnect.de)
2021-09-19 09:40:31 +0200mc47(~mc47@xmonad/TheMC47)
2021-09-19 09:47:02 +0200euandreh(~euandreh@2804:14c:33:9fe5:44da:bf98:4cf1:2d8d) (Remote host closed the connection)
2021-09-19 09:47:26 +0200euandreh(~euandreh@2804:14c:33:9fe5:3ad2:6f9d:50ec:2663)
2021-09-19 09:55:48 +0200pfurla_(~pfurla@53.15.195.173.client.static.strong-in52.as13926.net)
2021-09-19 09:58:12 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2021-09-19 09:58:28 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-09-19 09:58:47 +0200 <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?
2021-09-19 09:59:42 +0200 <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.
2021-09-19 10:01:06 +0200oxide(~lambda@user/oxide)
2021-09-19 10:02:47 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-19 10:04:08 +0200vysn(~vysn@user/vysn)
2021-09-19 10:04:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:49c6:f846:9a95:6c22) (Remote host closed the connection)
2021-09-19 10:05:59 +0200hendursa1(~weechat@user/hendursaga)
2021-09-19 10:07:05 +0200sheddow(~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6)
2021-09-19 10:07:12 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c)
2021-09-19 10:07:34 +0200 <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
2021-09-19 10:08:04 +0200 <mc47> Maybe check the safe-money package
2021-09-19 10:09:08 +0200 <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
2021-09-19 10:09:24 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-09-19 10:09:27 +0200 <opqdonut> ixlun: you could use phantom types: `data Currency cur = Currency Int; add :: Currency a -> Currency a -> Currency a`
2021-09-19 10:09:27 +0200hendursaga(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-09-19 10:09:39 +0200 <mc47> i.e. something more compact than andPQ p q a b c = p a b c && q a b c
2021-09-19 10:09:49 +0200 <opqdonut> ixlun: of course then all your errors would be at compile-time, which might not be what you want
2021-09-19 10:10:43 +0200dsrt^(~dsrt@68.101.54.227)
2021-09-19 10:12:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 268 seconds)
2021-09-19 10:13:16 +0200 <mc47> nvm my question, chaining liftM2 is good enough
2021-09-19 10:14:00 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-09-19 10:14:24 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-19 10:17:30 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-19 10:20:00 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 10:21:37 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 10:26:18 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-09-19 10:26:30 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-09-19 10:27:36 +0200 <ixlun> opqdonut: Yeah, it would have to be runtime checking since I'm reading from various data sources at runtime
2021-09-19 10:28:43 +0200 <ixlun> mc47: Would going down the dependent types route restrict errors being caught at compile-time?
2021-09-19 10:30:49 +0200 <tomsmeding> ixlun: do you parse currency values from data first, then get them into some uniform kind (usb/gbp/...), then operate on them?
2021-09-19 10:31:16 +0200 <ixlun> Yep, that' pretty much exactly what I'm doing
2021-09-19 10:31:19 +0200 <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?
2021-09-19 10:31:34 +0200 <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
2021-09-19 10:32:02 +0200 <tomsmeding> data CurrencyType a where GBP :: CurrencyType "GBP" ; USD :: CurrencyType "USD" ; EUR :: CurrencyType "EUR"
2021-09-19 10:32:16 +0200 <tomsmeding> data Currency a = Currency (CurrencyType a) Int
2021-09-19 10:32:39 +0200 <tomsmeding> data Some f = forall a. Some (f a) -- from the 'some' package if you don't want to define it yourself
2021-09-19 10:33:19 +0200 <tomsmeding> then you can have: check :: CurrencyType a -> Some Currency -> Maybe (Currency a)
2021-09-19 10:33:44 +0200 <tomsmeding> and add :: Currency a -> Currency a -> Currency a which doesn't have to care about unequal currencies
2021-09-19 10:34:46 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 10:34:59 +0200 <tomsmeding> perhaps also: data CurrencyList a = CurrencyList [Currency a] ; checkUniform :: [SomeCurrency] -> Maybe (Some CurrencyList)
2021-09-19 10:35:23 +0200 <tomsmeding> if you want a list of equal currency kinds but don't care what they actually are
2021-09-19 10:35:25 +0200 <hololeap> tomsmeding: couldn't you just have `newtype Currency a = Currency Int` and then derive Num, etc with GNTD?
2021-09-19 10:35:58 +0200 <tomsmeding> hololeap: you could write a Num instance for my type too :p
2021-09-19 10:36:19 +0200 <tomsmeding> in my experience having a value-level witness of the phantom type is useful
2021-09-19 10:36:34 +0200 <tomsmeding> but if you don't need it, then yes that's a more light-weight alternative :p
2021-09-19 10:36:46 +0200 <Cajun> wouldnt a Num instance give you a whole bunch of functions that you dont really want/need? :P
2021-09-19 10:37:04 +0200 <Cajun> its nice for the (+) and (*) but the other ones are weird for many types
2021-09-19 10:37:23 +0200 <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!
2021-09-19 10:37:24 +0200 <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
2021-09-19 10:37:51 +0200 <tomsmeding> ixlun: hope I didn't scare you away :p
2021-09-19 10:38:22 +0200 <hololeap> @where singletons
2021-09-19 10:38:22 +0200 <lambdabot> I know nothing about singletons.
2021-09-19 10:38:33 +0200 <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
2021-09-19 10:38:42 +0200 <mc47> s/play/played/
2021-09-19 10:38:56 +0200 <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
2021-09-19 10:39:29 +0200 <hololeap> tomsmeding: I agree, I was just thinking of plugging that intro to singletons blog because it's a helpful tutorial
2021-09-19 10:39:32 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-09-19 10:39:41 +0200 <tomsmeding> mc47: if you core happens to not need the witnesses anywhere, the code can get very clean and neat
2021-09-19 10:39:48 +0200 <tomsmeding> until the moment you want a witness :p
2021-09-19 10:40:06 +0200 <hololeap> https://blog.jle.im/entry/introduction-to-singletons-1.html
2021-09-19 10:40:10 +0200acidjnk(~acidjnk@p200300d0c703cb63dd8ae578d0e30132.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2021-09-19 10:40:18 +0200 <tomsmeding> (never read that, actually never worked with the actual singletons library before tbh)
2021-09-19 10:40:47 +0200 <hololeap> it basically builds up a strong motivation for the libarary, but shows you how to do it all by hand as well
2021-09-19 10:41:27 +0200 <mc47> tomsmeding that's probably true, I really just skimmed the surface
2021-09-19 10:46:55 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-09-19 10:52:37 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-09-19 11:00:07 +0200deuslambda[m](~deuslambd@2001:470:69fc:105::c749) (Quit: You have been kicked for being idle)
2021-09-19 11:00:07 +0200Cesionaut[m](~cesionaut@2001:470:69fc:105::dd3b) (Quit: You have been kicked for being idle)
2021-09-19 11:01:42 +0200syntactic_sugar(~amoljha@2601:644:8601:2e30::822c) (Quit: WeeChat 3.1)
2021-09-19 11:04:34 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2021-09-19 11:05:02 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-19 11:14:40 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-09-19 11:14:50 +0200 <tomsmeding> s/you core/your code/ how did that typo even happen
2021-09-19 11:16:34 +0200TranquilEcho(~grom@user/tranquilecho)
2021-09-19 11:18:22 +0200ubert(~Thunderbi@91.141.68.10.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-09-19 11:22:04 +0200azeem(~azeem@2a00:801:3c5:e7ed:96db:1881:5af8:10cd)
2021-09-19 11:23:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 11:24:01 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 11:28:16 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-19 11:30:42 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-19 11:32:05 +0200Null_A(~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6)
2021-09-19 11:41:36 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2021-09-19 11:41:51 +0200Null_A(~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) (Remote host closed the connection)
2021-09-19 11:42:42 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-19 11:43:24 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-19 11:44:19 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-19 11:46:06 +0200cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2021-09-19 11:47:20 +0200Null_A(~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6)
2021-09-19 11:48:04 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-09-19 11:48:26 +0200Null_A(~null_a@2601:645:8700:2290:f960:d5c5:94b5:c3e6) (Client Quit)
2021-09-19 11:54:56 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-09-19 12:00:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 12:10:01 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-09-19 12:10:52 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-09-19 12:11:50 +0200hexfive(~eric@50.35.83.177)
2021-09-19 12:13:38 +0200pfurla_(~pfurla@53.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 260 seconds)
2021-09-19 12:13:43 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 12:14:02 +0200Vajb(~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi)
2021-09-19 12:14:34 +0200hexfive(~eric@50.35.83.177) (Client Quit)
2021-09-19 12:14:35 +0200Vajb(~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-09-19 12:15:10 +0200Vajb(~Vajb@85-76-8-105-nat.elisa-mobile.fi)
2021-09-19 12:19:50 +0200Vajb(~Vajb@85-76-8-105-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-09-19 12:20:33 +0200benin036932301(~benin@183.82.205.89) (Ping timeout: 265 seconds)
2021-09-19 12:20:43 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 12:20:49 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2021-09-19 12:20:56 +0200benin036932301(~benin@183.82.205.89)
2021-09-19 12:23:14 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 12:25:58 +0200kimjetwav(~user@2607:fea8:235f:9730:162d:fa69:3f15:a6a5) (Quit: logout)
2021-09-19 12:26:26 +0200kimjetwav(~user@2607:fea8:235f:9730:eed:cf2e:848e:62b5)
2021-09-19 12:27:19 +0200spruit11(~quassel@2a02:a467:ccd6:1:6:b8f5:e5f3:4cce)
2021-09-19 12:27:50 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-09-19 12:31:08 +0200spruit11_(~quassel@2a02:a467:ccd6:1:563:f225:f6bf:7d85) (Ping timeout: 268 seconds)
2021-09-19 12:39:53 +0200oxide(~lambda@user/oxide) (Ping timeout: 265 seconds)
2021-09-19 12:40:21 +0200oxide(~lambda@user/oxide)
2021-09-19 12:44:05 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 268 seconds)
2021-09-19 12:49:00 +0200max22-(~maxime@2a01cb0883359800da5887c8e8eac50d.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2021-09-19 12:49:05 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-09-19 12:50:02 +0200jumper149(~jumper149@80.240.31.34)
2021-09-19 12:51:39 +0200gehmehgeh(~user@user/gehmehgeh)
2021-09-19 12:51:41 +0200max22-(~maxime@2a01cb08833598008de6b9bad07273d0.ipv6.abo.wanadoo.fr)
2021-09-19 13:00:19 +0200kimjetwav(~user@2607:fea8:235f:9730:eed:cf2e:848e:62b5) (Remote host closed the connection)
2021-09-19 13:00:45 +0200alx741(~alx741@186.178.108.187)
2021-09-19 13:05:10 +0200hpc(~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 240 seconds)
2021-09-19 13:07:00 +0200hpc(~juzz@ip98-169-35-13.dc.dc.cox.net)
2021-09-19 13:09:25 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c)
2021-09-19 13:13:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 240 seconds)
2021-09-19 13:15:25 +0200sm2n_(~sm2n@user/sm2n) (Ping timeout: 252 seconds)
2021-09-19 13:15:48 +0200sm2n(~sm2n@user/sm2n)
2021-09-19 13:26:20 +0200max22-(~maxime@2a01cb08833598008de6b9bad07273d0.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2021-09-19 13:27:16 +0200x28girl(~x28girl@181.46.32.25)
2021-09-19 13:28:21 +0200Sose(~Sose@mobile-access-6df047-213.dhcp.inet.fi)
2021-09-19 13:30:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-19 13:34:13 +0200 <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
2021-09-19 13:34:13 +0200 <Sose> 8.10.4 is not supported by the newest hls anymore
2021-09-19 13:34:48 +0200 <maerwald> Sose: 8.10.7 is supported by HLS 1.4.0
2021-09-19 13:34:54 +0200 <maerwald> you probably have 1.3.0 installed
2021-09-19 13:35:16 +0200 <Sose> oh okay, so I should just go for ghc 8.10.7 and hls 1.4.0
2021-09-19 13:35:35 +0200 <Sose> wanted to make sure because on my potato it takes forever to update
2021-09-19 13:36:52 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 252 seconds)
2021-09-19 13:37:13 +0200 <maerwald> "hls-powered" is only wrt the currently installed and *set* version
2021-09-19 13:37:16 +0200haykam2(~haykam@static.100.2.21.65.clients.your-server.de) (Remote host closed the connection)
2021-09-19 13:37:25 +0200 <Sose> I see, that makes sense. Thanks
2021-09-19 13:37:29 +0200haykam1(~haykam@static.100.2.21.65.clients.your-server.de)
2021-09-19 13:41:36 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-19 13:44:40 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 13:45:21 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 13:46:22 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 13:47:05 +0200Vajb(~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi)
2021-09-19 13:48:23 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-19 13:49:43 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Remote host closed the connection)
2021-09-19 13:50:06 +0200jtomas_(~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
2021-09-19 13:53:56 +0200Vajb(~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-09-19 13:54:59 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 14:00:13 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-19 14:01:26 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 14:06:53 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-09-19 14:07:56 +0200 <sshine> I learned something.
2021-09-19 14:14:08 +0200neo1(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 265 seconds)
2021-09-19 14:18:48 +0200x28girl(~x28girl@181.46.32.25) (Quit: Leaving)
2021-09-19 14:19:49 +0200x28girl(~x28girl@181.46.32.25)
2021-09-19 14:19:55 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2021-09-19 14:21:04 +0200x28girl(~x28girl@181.46.32.25) (Changing host)
2021-09-19 14:21:04 +0200x28girl(~x28girl@user/x28girl)
2021-09-19 14:21:37 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 14:21:58 +0200Vajb(~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi)
2021-09-19 14:23:45 +0200x28_girl(~x28girl@user/x28girl)
2021-09-19 14:24:10 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
2021-09-19 14:24:51 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 14:25:24 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-19 14:26:17 +0200Vajb(~Vajb@nbptnppvs5wp2vjps-2.v6.elisa-mobile.fi) (Ping timeout: 245 seconds)
2021-09-19 14:27:10 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 14:27:14 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-19 14:29:10 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2021-09-19 14:34:59 +0200Lycurgus(~juan@98.4.112.204)
2021-09-19 14:36:37 +0200cheater(~Username@user/cheater)
2021-09-19 14:49:36 +0200max22-(~maxime@2a01cb08833598004251d0191641dba9.ipv6.abo.wanadoo.fr)
2021-09-19 14:53:03 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2021-09-19 14:53:45 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-19 14:56:36 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-19 14:56:51 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer)
2021-09-19 14:57:18 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-19 14:57:40 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-09-19 15:00:27 +0200spruit11(~quassel@2a02:a467:ccd6:1:6:b8f5:e5f3:4cce) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2021-09-19 15:03:41 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 15:05:33 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-19 15:10:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c)
2021-09-19 15:11:46 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
2021-09-19 15:15:24 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr)
2021-09-19 15:15:38 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 260 seconds)
2021-09-19 15:16:18 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-09-19 15:19:34 +0200yinghua(~yinghua@2800:2121:1400:1db:8865:3e5b:fd2e:180)
2021-09-19 15:20:47 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer)
2021-09-19 15:21:15 +0200max22-(~maxime@2a01cb08833598004251d0191641dba9.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2021-09-19 15:21:28 +0200_xor(~xor@74.215.232.67) (Quit: WeeChat 3.2)
2021-09-19 15:25:36 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 15:26:27 +0200_xor(~xor@74.215.232.67)
2021-09-19 15:26:36 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-19 15:27:39 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 15:30:30 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 265 seconds)
2021-09-19 15:31:27 +0200fendor(~fendor@178.165.185.65.wireless.dyn.drei.com)
2021-09-19 15:33:38 +0200max22-(~maxime@2a01cb08833598007f19dd049ca78c46.ipv6.abo.wanadoo.fr)
2021-09-19 15:45:44 +0200jumper149(~jumper149@80.240.31.34)
2021-09-19 15:47:01 +0200hendursa1(~weechat@user/hendursaga) (Quit: hendursa1)
2021-09-19 15:47:27 +0200hendursaga(~weechat@user/hendursaga)
2021-09-19 15:47:32 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 15:48:01 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 15:49:05 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 15:49:35 +0200Vajb(~Vajb@85-76-32-93-nat.elisa-mobile.fi)
2021-09-19 15:50:42 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-09-19 15:54:11 +0200Vajb(~Vajb@85-76-32-93-nat.elisa-mobile.fi) (Read error: Connection reset by peer)
2021-09-19 15:54:38 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 15:56:18 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-19 15:57:56 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 15:58:12 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 15:59:21 +0200slac76507(~slack1256@191.126.227.79) (Ping timeout: 268 seconds)
2021-09-19 16:00:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-19 16:03:18 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-19 16:03:54 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-09-19 16:05:03 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2021-09-19 16:05:55 +0200alx741(~alx741@186.178.108.187) (Ping timeout: 252 seconds)
2021-09-19 16:08:50 +0200cheater(~Username@user/cheater) (Ping timeout: 260 seconds)
2021-09-19 16:08:53 +0200cheater1__(~Username@user/cheater)
2021-09-19 16:08:56 +0200cheater1__cheater
2021-09-19 16:17:09 +0200cawfee(~root@2406:3003:2077:2758::babe) (Quit: macos update)
2021-09-19 16:18:47 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk)
2021-09-19 16:20:14 +0200alx741(~alx741@186.178.109.159)
2021-09-19 16:26:35 +0200chomwitt(~chomwitt@2a02:587:dc15:500:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds)
2021-09-19 16:28:51 +0200sheddow(~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6) (Ping timeout: 256 seconds)
2021-09-19 16:30:03 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 16:30:59 +0200x28_girl(~x28girl@user/x28girl) (Quit: Leaving)
2021-09-19 16:40:38 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-09-19 16:48:13 +0200Guest|51(~Guest|51@177.221.250.155)
2021-09-19 16:52:50 +0200cawfee(~root@2406:3003:2077:2758::babe)
2021-09-19 16:53:18 +0200Brumaire_(~quassel@81-64-14-121.rev.numericable.fr)
2021-09-19 16:54:14 +0200Brumaire(~quassel@81-64-14-121.rev.numericable.fr) (Ping timeout: 268 seconds)
2021-09-19 16:54:35 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
2021-09-19 16:55:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-19 16:55:17 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-19 16:55:17 +0200wroathe(~wroathe@user/wroathe)
2021-09-19 16:55:52 +0200rond_(~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed)
2021-09-19 16:58:14 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 16:58:33 +0200Heffalump(~ganesh@urchin.earth.li)
2021-09-19 16:58:42 +0200Guest|51(~Guest|51@177.221.250.155) (Quit: Connection closed)
2021-09-19 16:59:20 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 16:59:30 +0200Vajb(~Vajb@2001:999:63:cb56:7735:f6b9:cd89:d4c7)
2021-09-19 17:01:39 +0200 <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?)
2021-09-19 17:03:18 +0200chris(~chris@81.96.113.213)
2021-09-19 17:03:21 +0200chrisGuest6996
2021-09-19 17:03:36 +0200zer0bitz(~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi)
2021-09-19 17:04:19 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
2021-09-19 17:04:20 +0200Vajb(~Vajb@2001:999:63:cb56:7735:f6b9:cd89:d4c7) (Read error: Connection reset by peer)
2021-09-19 17:05:22 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 17:05:44 +0200sheddow(~sheddow@2001:4652:3064:0:855:8e28:191f:6ce6)
2021-09-19 17:06:12 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-09-19 17:12:39 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c)
2021-09-19 17:16:53 +0200haask(~harry@92.234.0.237)
2021-09-19 17:17:20 +0200haask(~harry@92.234.0.237) (Remote host closed the connection)
2021-09-19 17:17:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Ping timeout: 268 seconds)
2021-09-19 17:17:54 +0200 <geekosaur> I think all dynamic loading with Haskell has significant gotchas
2021-09-19 17:19:19 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 17:23:38 +0200haask(~harry@92.234.0.237)
2021-09-19 17:23:57 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c)
2021-09-19 17:25:10 +0200haritz(~hrtz@user/haritz) (Ping timeout: 240 seconds)
2021-09-19 17:26:40 +0200Raito_Bezarius(~Raito@2a01:e0a:5f9:9681:58c:8b9f:30df:bb6b) (Ping timeout: 260 seconds)
2021-09-19 17:27:21 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net)
2021-09-19 17:31:43 +0200yauhsien(~yauhsien@118-167-47-202.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2021-09-19 17:32:23 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-09-19 17:37:59 +0200wei2912(~wei2912@112.199.250.21) (Quit: Lost terminal)
2021-09-19 17:38:54 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2021-09-19 17:39:28 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection)
2021-09-19 17:46:30 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 260 seconds)
2021-09-19 17:48:40 +0200zebrag(~chris@user/zebrag)
2021-09-19 17:53:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-09-19 17:54:42 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk)
2021-09-19 17:54:53 +0200xff0x(~xff0x@2001:1a81:5327:1a00:7ba6:6c4f:f759:2f72) (Ping timeout: 268 seconds)
2021-09-19 17:56:44 +0200cheater(~Username@user/cheater) (Ping timeout: 268 seconds)
2021-09-19 18:02:40 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-19 18:08:14 +0200haask(~harry@92.234.0.237) (Remote host closed the connection)
2021-09-19 18:10:05 +0200fresheyeball(~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Ping timeout: 268 seconds)
2021-09-19 18:10:37 +0200brettgilio(~brettgili@x-node.gq)
2021-09-19 18:13:00 +0200fresheyeball(~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net)
2021-09-19 18:13:31 +0200__monty__(~toonn@user/toonn)
2021-09-19 18:16:39 +0200xff0x(~xff0x@2001:1a81:5327:1a00:7ba6:6c4f:f759:2f72)
2021-09-19 18:17:22 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
2021-09-19 18:20:23 +0200jakalx(~jakalx@base.jakalx.net) ()
2021-09-19 18:21:41 +0200Null_A(~null_a@2601:645:8700:2290:6daa:6a79:97ab:557)
2021-09-19 18:22:48 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-09-19 18:23:42 +0200fresheyeball(~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Quit: WeeChat 2.9)
2021-09-19 18:23:53 +0200reyaboj(~reyaboj@103.69.150.85) (Ping timeout: 256 seconds)
2021-09-19 18:24:30 +0200Guest70(~Guest70@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com)
2021-09-19 18:26:14 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk) (Remote host closed the connection)
2021-09-19 18:26:38 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk)
2021-09-19 18:26:42 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c)
2021-09-19 18:27:08 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-09-19 18:27:46 +0200hnOsmium0001(uid453710@id-453710.hampstead.irccloud.com)
2021-09-19 18:28:46 +0200jespada(~jespada@2803:9800:9842:7a62:e945:15a6:5467:94f6) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-09-19 18:29:39 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-19 18:40:47 +0200Guest6996(~chris@81.96.113.213) (Remote host closed the connection)
2021-09-19 18:43:02 +0200econo(uid147250@user/econo)
2021-09-19 18:48:35 +0200alzgh(~alzgh@user/alzgh)
2021-09-19 18:49:13 +0200psilospore(uid517704@id-517704.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-19 18:49:19 +0200 <alzgh> hello, which channel is more suited if one has question about making PRs to the GHC repo?
2021-09-19 18:49:59 +0200 <monochrom> Perhaps #ghc
2021-09-19 18:50:19 +0200 <alzgh> OK, thanks monochrom
2021-09-19 18:52:18 +0200jonatan_(~nate@h85-8-60-194.cust.a3fiber.se)
2021-09-19 18:52:18 +0200jonatan_(~nate@h85-8-60-194.cust.a3fiber.se) (Client Quit)
2021-09-19 19:01:02 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 260 seconds)
2021-09-19 19:05:42 +0200 <sm> Heffalump: clckwrks uses https://hackage.haskell.org/package/web-plugins
2021-09-19 19:05:48 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-09-19 19:09:10 +0200qbt(~edun@user/edun) (Ping timeout: 252 seconds)
2021-09-19 19:10:31 +0200OscarZ(~oscarz@95.175.104.70) (Quit: Leaving)
2021-09-19 19:12:07 +0200kimjetwav(~user@2607:fea8:235f:9730:7169:b08e:8733:ef08)
2021-09-19 19:16:30 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 19:21:24 +0200Lewky(~Lewky@146.70.50.74)
2021-09-19 19:29:37 +0200sneedsfeed(~sneedsfee@rrcs-173-95-122-169.midsouth.biz.rr.com) (Ping timeout: 256 seconds)
2021-09-19 19:32:32 +0200qbt(~edun@user/edun)
2021-09-19 19:37:12 +0200Guest70(~Guest70@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) (Quit: Client closed)
2021-09-19 19:39:48 +0200jespada(~jespada@2803:9800:9842:7a62:edd5:5e74:3ec2:1b19)
2021-09-19 19:43:32 +0200Izem(~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca)
2021-09-19 19:44:07 +0200 <Izem> In haskell, you don't need the notion of a pipe because you can curry functions right?
2021-09-19 19:44:36 +0200 <Rembane> Izem: assume that that is true, why is it true?
2021-09-19 19:47:17 +0200 <Izem> I dunno, sorry
2021-09-19 19:47:40 +0200 <Rembane> Okay, what's a pipe in this context?
2021-09-19 19:47:58 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-19 19:50:00 +0200euandreh_(~euandreh@2804:14c:33:9fe5:b7ad:e92:1630:34c7)
2021-09-19 19:50:20 +0200 <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
2021-09-19 19:50:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 19:51:54 +0200euandreh(~euandreh@2804:14c:33:9fe5:3ad2:6f9d:50ec:2663) (Ping timeout: 260 seconds)
2021-09-19 19:54:42 +0200 <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`
2021-09-19 19:55:37 +0200 <Sose> but there is a pipe operator like that (&) in Data.Function
2021-09-19 19:56:08 +0200 <Izem> oh ok, that's cool
2021-09-19 19:56:47 +0200 <Izem> I suspected that was the case but I wasn't sure
2021-09-19 19:56:59 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-19 19:57:21 +0200justsomeguy(~justsomeg@user/justsomeguy) (Client Quit)
2021-09-19 19:58:37 +0200 <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
2021-09-19 19:58:55 +0200 <awpr> > 5 & subtract 2 & show
2021-09-19 19:58:56 +0200 <lambdabot> "3"
2021-09-19 20:00:30 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 20:02:22 +0200 <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
2021-09-19 20:04:00 +0200 <awpr> Haskell needs backwards lambda syntax to go with the reverse bind operator: `Just (x + 1) <- x/ =<< Nothing`
2021-09-19 20:05:20 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-09-19 20:05:39 +0200 <hpc> just start your file with the unicode RTL override character
2021-09-19 20:05:49 +0200neurocyte01(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-09-19 20:06:07 +0200 <awpr> ... now I'm curious to see what that would do
2021-09-19 20:06:53 +0200 <awpr> lol, it corrupts the page describing it https://unicode-table.com/en/202E/
2021-09-19 20:09:10 +0200 <Sose> that's funny :D
2021-09-19 20:09:17 +0200 <awpr> https://paste.tomsmeding.com/Rif2xq25
2021-09-19 20:09:57 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 20:11:41 +0200Null_A(~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection)
2021-09-19 20:12:14 +0200Null_A(~null_a@2601:645:8700:2290:6daa:6a79:97ab:557)
2021-09-19 20:13:01 +0200 <awpr> https://paste.tomsmeding.com/wpEt1pg6 even better
2021-09-19 20:18:28 +0200lavaman(~lavaman@98.38.249.169)
2021-09-19 20:21:05 +0200cheater(~Username@user/cheater)
2021-09-19 20:22:45 +0200 <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)
2021-09-19 20:24:12 +0200max22-(~maxime@2a01cb08833598007f19dd049ca78c46.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds)
2021-09-19 20:24:31 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-19 20:25:59 +0200Guest1(~Guest1@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com)
2021-09-19 20:29:18 +0200Everything(~Everythin@37.115.210.35)
2021-09-19 20:31:57 +0200solomon(~solomon@cpe-76-168-7-139.socal.res.rr.com) (Ping timeout: 256 seconds)
2021-09-19 20:32:51 +0200kimjetwav(~user@2607:fea8:235f:9730:7169:b08e:8733:ef08) (Remote host closed the connection)
2021-09-19 20:33:08 +0200kimjetwav(~user@2607:fea8:235f:9730:b7cd:5acf:16a8:ebad)
2021-09-19 20:33:18 +0200Null_A(~null_a@2601:645:8700:2290:6daa:6a79:97ab:557) (Remote host closed the connection)
2021-09-19 20:35:37 +0200kimjetwav(~user@2607:fea8:235f:9730:b7cd:5acf:16a8:ebad) (Remote host closed the connection)
2021-09-19 20:35:54 +0200kimjetwav(~user@2607:fea8:235f:9730:8e90:f10c:b724:9a0a)
2021-09-19 20:40:36 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection)
2021-09-19 20:40:41 +0200Sose(~Sose@mobile-access-6df047-213.dhcp.inet.fi) (Quit: Client closed)
2021-09-19 20:41:26 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk)
2021-09-19 20:42:24 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2021-09-19 20:44:23 +0200Brumaire_(~quassel@81-64-14-121.rev.numericable.fr) (Quit: ran away)
2021-09-19 20:50:53 +0200kimjetwav(~user@2607:fea8:235f:9730:8e90:f10c:b724:9a0a) (Remote host closed the connection)
2021-09-19 20:51:10 +0200kimjetwav(~user@2607:fea8:235f:9730:89c:c105:9071:1b0f)
2021-09-19 20:53:31 +0200adamse(sid72084@user/adamse) ()
2021-09-19 20:55:38 +0200Guest1(~Guest1@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) (Quit: Client closed)
2021-09-19 20:55:58 +0200x28girl(~x28girl@user/x28girl) (Ping timeout: 268 seconds)
2021-09-19 20:57:14 +0200jumper149(~jumper149@80.240.31.34) (Ping timeout: 260 seconds)
2021-09-19 20:58:34 +0200max22-(~maxime@2a01cb088335980099348db52b55749a.ipv6.abo.wanadoo.fr)
2021-09-19 21:00:17 +0200jumper149(~jumper149@80.240.31.34)
2021-09-19 21:00:40 +0200__monty__(~toonn@user/toonn) (Ping timeout: 252 seconds)
2021-09-19 21:03:10 +0200tommd(~tommd@75-164-130-101.ptld.qwest.net)
2021-09-19 21:03:38 +0200tfeb(~tfb@88.98.95.237)
2021-09-19 21:04:14 +0200__monty__(~toonn@user/toonn)
2021-09-19 21:05:53 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c)
2021-09-19 21:06:03 +0200x28girl(~x28girl@user/x28girl)
2021-09-19 21:08:29 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Read error: Connection reset by peer)
2021-09-19 21:08:35 +0200mikoto-c1(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-19 21:09:45 +0200 <maerwald> how do you parse the version of a cabal file?
2021-09-19 21:09:46 +0200kuribas(~user@ptr-25vy0i7z6miqkyi8626.18120a2.ip6.access.telenet.be)
2021-09-19 21:11:33 +0200 <sclv> maerwald: here's a script that as of a few years ago worked fine, as a simple example
2021-09-19 21:11:33 +0200 <sclv> https://github.com/haskell/cabal/issues/2460#issuecomment-373895722
2021-09-19 21:11:53 +0200 <sclv> anyway the main point is parsePackageDescrition is the entry point iirc
2021-09-19 21:11:56 +0200 <maerwald> excellent
2021-09-19 21:16:17 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 21:16:27 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-09-19 21:18:58 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-19 21:19:09 +0200mikoto-c1(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-c1)
2021-09-19 21:19:21 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-19 21:20:37 +0200Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-09-19 21:22:54 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-09-19 21:23:11 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit)
2021-09-19 21:27:53 +0200dsrt^(~dsrt@68.101.54.227) (Remote host closed the connection)
2021-09-19 21:31:04 +0200fendor(~fendor@178.165.185.65.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-19 21:31:54 +0200tfeb(~tfb@88.98.95.237) (Remote host closed the connection)
2021-09-19 21:32:20 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-09-19 21:33:42 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)
2021-09-19 21:36:35 +0200gioyik(~gioyik@gateway/tor-sasl/gioyik)
2021-09-19 21:38:14 +0200Pickchea(~private@user/pickchea)
2021-09-19 21:41:29 +0200solomon(~solomon@cpe-76-168-7-139.socal.res.rr.com)
2021-09-19 21:41:55 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2021-09-19 21:42:35 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk) (Remote host closed the connection)
2021-09-19 21:42:58 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk)
2021-09-19 21:48:35 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 260 seconds)
2021-09-19 21:49:56 +0200jstolarek(~jstolarek@ers4.neoplus.adsl.tpnet.pl)
2021-09-19 21:51:48 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk)
2021-09-19 21:51:59 +0200_xor(~xor@74.215.232.67) (Quit: brb)
2021-09-19 21:52:57 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-19 21:56:50 +0200Guest29(~Guest29@93-172-101-61.bb.netvision.net.il)
2021-09-19 21:56:58 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 260 seconds)
2021-09-19 22:00:40 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
2021-09-19 22:02:38 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-19 22:03:00 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Quit: FinnElija)
2021-09-19 22:05:16 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Client Quit)
2021-09-19 22:07:56 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk)
2021-09-19 22:09:07 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-09-19 22:09:59 +0200mikoto-chan(~mikoto-ch@83.137.2.246)
2021-09-19 22:10:34 +0200Izem(~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 252 seconds)
2021-09-19 22:12:16 +0200Topsi(~Tobias@dyndsl-095-033-025-122.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-09-19 22:12:19 +0200burnsidesLlama(~burnsides@dhcp168-013.wadham.ox.ac.uk) (Ping timeout: 252 seconds)
2021-09-19 22:12:52 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk)
2021-09-19 22:13:01 +0200mikoto-chan(~mikoto-ch@83.137.2.246) (Client Quit)
2021-09-19 22:13:42 +0200Izem(~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca)
2021-09-19 22:13:57 +0200Guest29(~Guest29@93-172-101-61.bb.netvision.net.il) (Ping timeout: 256 seconds)
2021-09-19 22:17:11 +0200chomwitt(~chomwitt@ppp-94-67-1-143.home.otenet.gr)
2021-09-19 22:17:32 +0200machinedgod(~machinedg@24.105.81.50)
2021-09-19 22:20:31 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-09-19 22:20:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-19 22:23:07 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-19 22:25:12 +0200Guest1(~Guest1@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com)
2021-09-19 22:25:59 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-09-19 22:28:42 +0200qbt(~edun@user/edun) (Ping timeout: 260 seconds)
2021-09-19 22:32:25 +0200zer0bitz(~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-19 22:34:16 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c) (Remote host closed the connection)
2021-09-19 22:34:36 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-09-19 22:36:38 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
2021-09-19 22:37:16 +0200x28girl(~x28girl@user/x28girl) (Remote host closed the connection)
2021-09-19 22:37:53 +0200x28girl(~x28girl@user/x28girl)
2021-09-19 22:39:14 +0200 <Heffalump> sm: thanks
2021-09-19 22:40:53 +0200pavonia(~user@user/siracusa)
2021-09-19 22:41:32 +0200MQ-17J(~MQ-17J@d192-24-122-179.try.wideopenwest.com)
2021-09-19 22:43:07 +0200solomon(~solomon@cpe-76-168-7-139.socal.res.rr.com) (Quit: Client closed)
2021-09-19 22:43:34 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-19 22:44:59 +0200 <Heffalump> sm: hmm, I don't see anything to dynamically load the actual Haskell code though
2021-09-19 22:45:35 +0200mikoto-chan(~mikoto-ch@83.137.2.246)
2021-09-19 22:49:53 +0200mikoto-chan(~mikoto-ch@83.137.2.246) (Client Quit)
2021-09-19 22:50:54 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:283f:384b:ba74:f15c)
2021-09-19 22:54:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-19 22:56:38 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 23:00:11 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
2021-09-19 23:00:11 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Changing host)
2021-09-19 23:00:11 +0200wroathe(~wroathe@user/wroathe)
2021-09-19 23:01:16 +0200Guest1(~Guest1@2603-7081-2d42-d2dd-9c58-6b19-d92a-1e33.res6.spectrum.com) (Quit: Client closed)
2021-09-19 23:01:47 +0200jumper149(~jumper149@80.240.31.34) (Quit: WeeChat 3.2.1)
2021-09-19 23:02:06 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk) (Remote host closed the connection)
2021-09-19 23:02:25 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk)
2021-09-19 23:02:40 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-19 23:03:55 +0200 <Izem> It seems like a data constructor can only appear on the rhs of an equation, is that true?
2021-09-19 23:04:41 +0200 <geekosaur> > let Just x = Just 5 in x
2021-09-19 23:04:42 +0200 <lambdabot> 5
2021-09-19 23:06:17 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2021-09-19 23:06:48 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-09-19 23:07:09 +0200 <Cajun> thats just a lhs pattern match though right?
2021-09-19 23:07:30 +0200 <Cajun> > let Just x = (Nothing :: Maybe Int) in x
2021-09-19 23:07:32 +0200 <lambdabot> *Exception: <interactive>:3:5-35: Non-exhaustive patterns in Just x
2021-09-19 23:07:41 +0200 <geekosaur> yes. I'm not exactly sure what Izem is asking about though
2021-09-19 23:07:50 +0200 <geekosaur> perhaps an example of what you mean?
2021-09-19 23:08:48 +0200 <Izem> I don't know, I'm just reading the introduction to haskell
2021-09-19 23:09:25 +0200 <hpc> Izem: there are patterns and there are expressions
2021-09-19 23:09:27 +0200 <geekosaur> wonder which introduction. also wonder if perhaps you're misunderstanding how data declarations work
2021-09-19 23:09:38 +0200 <hpc> in geekosaur's example, "Just x" is a pattern and "Just 5" is an expression
2021-09-19 23:09:43 +0200 <geekosaur> the type constructor is to the left of the =, the data constructors to the right
2021-09-19 23:09:52 +0200 <Izem> gentle introduction to haskell 98
2021-09-19 23:19:39 +0200Izem(~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca) (Ping timeout: 268 seconds)
2021-09-19 23:22:09 +0200chomwitt(~chomwitt@ppp-94-67-1-143.home.otenet.gr) (Remote host closed the connection)
2021-09-19 23:22:24 +0200 <geekosaur> ok, I think whatyou have misunderstood here is the difference between patterns and expressions
2021-09-19 23:22:54 +0200 <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
2021-09-19 23:23:22 +0200 <geekosaur> I found the Gentle Introduction much easier to understand with some SML/NJ knowledge under mybelt
2021-09-19 23:23:28 +0200 <Cajun> (how different is hs98 from hs2010?)
2021-09-19 23:23:35 +0200 <geekosaur> not very
2021-09-19 23:24:01 +0200 <geekosaur> datatype contexts went away, a few small things (pattern guards, I think?) were added
2021-09-19 23:24:31 +0200 <tabemann> strictly speaking hs98 proper didn't have nested modules
2021-09-19 23:25:01 +0200 <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)
2021-09-19 23:25:31 +0200 <tabemann> few people use "real" HS98 though in practice
2021-09-19 23:25:48 +0200 <Cajun> i know the (n+k) patterns vanished, but arent those in a language extension?
2021-09-19 23:26:09 +0200 <geekosaur> yes
2021-09-19 23:26:25 +0200 <geekosaur> oh right, that too. with all the problems that made them go away
2021-09-19 23:26:35 +0200 <geekosaur> (they're partial)
2021-09-19 23:27:08 +0200 <awpr> partial as in attempting to match them sometimes errors? or partial as in they don't match all values?
2021-09-19 23:27:37 +0200 <geekosaur> they don't match all values and it's painful to write a pattern using n+k that does, iirc
2021-09-19 23:28:02 +0200tommd(~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 265 seconds)
2021-09-19 23:28:59 +0200 <awpr> ..
2021-09-19 23:29:24 +0200 <awpr> oops, my tiny brain can't handle having a VM with focus-follows-mouse and a host OS with click-to-focus :/
2021-09-19 23:30:12 +0200fawful(~guy@c-76-104-217-93.hsd1.wa.comcast.net)
2021-09-19 23:31:05 +0200_xor(~xor@74.215.232.67)
2021-09-19 23:31:46 +0200michalz(~michalz@185.246.204.57)
2021-09-19 23:32:02 +0200 <Cajun> focus follows mouse sounds very annoying
2021-09-19 23:32:26 +0200 <ldlework> have any of you seen the js debate around pipeline operator proposal
2021-09-19 23:32:40 +0200 <Cajun> js drama? sounds entertaining
2021-09-19 23:32:52 +0200michalz(~michalz@185.246.204.57) (Remote host closed the connection)
2021-09-19 23:33:02 +0200 <geekosaur> focus follows mouse is kinda traditional unix
2021-09-19 23:33:13 +0200 <geekosaur> although I admit I've never liked it
2021-09-19 23:33:25 +0200 <ldlework> they are debating between an F# style algebraic operator, and a "Hack" style where the lhs is bound to ^ in a rhs expression
2021-09-19 23:33:43 +0200 <ldlework> it looks like the "Hack" style version will win, and fp programmers are lamenting
2021-09-19 23:33:50 +0200 <geekosaur> urgh
2021-09-19 23:34:01 +0200 <geekosaur> yet another reason to avoid JS
2021-09-19 23:34:30 +0200max22-(~maxime@2a01cb088335980099348db52b55749a.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-09-19 23:34:41 +0200 <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)
2021-09-19 23:35:02 +0200 <ldlework> focus follows mouse is most frustrating when there is a popup floating window in the middle of the screen
2021-09-19 23:35:10 +0200michalz(~michalz@185.246.204.57)
2021-09-19 23:35:18 +0200 <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
2021-09-19 23:35:19 +0200 <geekosaur> Izem, are you still there?
2021-09-19 23:35:26 +0200 <ldlework> Amethyst on OSX has this problem
2021-09-19 23:35:41 +0200 <awpr> focus doesn't have to mean raise
2021-09-19 23:35:54 +0200jstolarek(~jstolarek@ers4.neoplus.adsl.tpnet.pl) (Ping timeout: 268 seconds)
2021-09-19 23:35:54 +0200 <ldlework> yeah but on OSX that's what it means
2021-09-19 23:36:02 +0200 <awpr> that does sound pretty broken
2021-09-19 23:36:06 +0200 <ldlework> it is lol
2021-09-19 23:36:30 +0200 <geekosaur> yeh, traditional unix style does not raise
2021-09-19 23:36:40 +0200 <ldlework> maybe there's an OSX option somewhere but i didn't bother to look
2021-09-19 23:37:24 +0200Chai-T-Rex(~ChaiTRex@user/chaitrex) (Ping timeout: 276 seconds)
2021-09-19 23:38:18 +0200 <ldlework> i kinda wonder if you haskell folk looked at the hack style operator and could give an analysis that was optimistic
2021-09-19 23:38:37 +0200 <ldlework> like maybe "in a way" the hack operator will still allow all the things a normal pipeline operator would, etc
2021-09-19 23:38:40 +0200 <ldlework> in some grander technical sense
2021-09-19 23:38:58 +0200Chai-T-Rex(~ChaiTRex@user/chaitrex)
2021-09-19 23:40:03 +0200 <awpr> only looked at it for a minute or so just now, but it kinda just looks like a single-use concise lambda syntax?
2021-09-19 23:40:37 +0200 <awpr> except with its application baked into it, so more like a weird let-in syntax
2021-09-19 23:40:51 +0200 <ldlework> lhs is bound to ^ in rhs expression
2021-09-19 23:40:55 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-09-19 23:41:17 +0200 <awpr> the proposal I'm reading says $, but otherwise that sounds like what I read
2021-09-19 23:41:27 +0200 <ldlework> yeah there were debates over the token
2021-09-19 23:42:02 +0200 <awpr> ah, okay, I see a bunch of variations. I guess they don't want to shadow jQuery.
2021-09-19 23:42:15 +0200 <ldlework> XD
2021-09-19 23:42:34 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2021-09-19 23:42:36 +0200 <awpr> people occasionally want something like that in Haskell so that e.g. `(x + _ + y) :: Num a => a -> a`
2021-09-19 23:43:54 +0200 <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"
2021-09-19 23:44:15 +0200 <Cajun> jquery is what i hated most about JS, its basically a must have if you want to do anything real with the language
2021-09-19 23:44:25 +0200natechan(~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2021-09-19 23:45:20 +0200cjb(~cjbayliss@user/cjb)
2021-09-19 23:45:45 +0200 <ldlework> Cajun: not anymore, we have the ability to do `const t = (msg, handle) => <button onClick={handle}>{msg}</button>` and stuff now
2021-09-19 23:46:06 +0200 <Cajun> oh sweet, thats really nice
2021-09-19 23:50:38 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2021-09-19 23:52:23 +0200seydar(~seydar@154-27-113-252.starry-inc.net)
2021-09-19 23:52:35 +0200michalz(~michalz@185.246.204.57) (Remote host closed the connection)
2021-09-19 23:53:09 +0200 <seydar> in the definition of System.IO's readFile, the handle is opened but never seems to be closed. am i missing something?
2021-09-19 23:54:03 +0200 <geekosaur> readFile uses lazy I/O. the Handle is created in the background, as it were, and will eventually be garbage collected
2021-09-19 23:54:07 +0200 <awpr> probably relies on a GC finalizer to close it
2021-09-19 23:54:14 +0200 <geekosaur> if you need more control than that, use openFile
2021-09-19 23:54:25 +0200 <seydar> awesome, thank you both
2021-09-19 23:54:45 +0200michalz(~michalz@185.246.204.61)
2021-09-19 23:55:10 +0200 <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
2021-09-19 23:55:11 +0200michalz(~michalz@185.246.204.61) (Remote host closed the connection)
2021-09-19 23:57:04 +0200Izem(~Izem@bras-base-london1483w-grc-31-74-12-158-179.dsl.bell.ca)
2021-09-19 23:57:16 +0200seydar(~seydar@154-27-113-252.starry-inc.net) (Client Quit)
2021-09-19 23:57:29 +0200deejaytee(~deejaytee@vpn-fn-228.net.ed.ac.uk) (Ping timeout: 268 seconds)