2020/12/29

2020-12-29 00:00:53 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-12-29 00:05:03 +0100rcdilorenzo(~rcdiloren@cpe-76-182-87-188.nc.res.rr.com)
2020-12-29 00:07:39 +0100neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 260 seconds)
2020-12-29 00:08:23 +0100neiluj(~jco@173.198.204.77.rev.sfr.net)
2020-12-29 00:09:56 +0100darjeeling_(~darjeelin@122.245.217.190) (Ping timeout: 240 seconds)
2020-12-29 00:10:02 +0100argento(~argent0@168.227.96.51)
2020-12-29 00:10:26 +0100fendor_(~fendor@77.119.131.12.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-29 00:11:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-29 00:11:10 +0100argento(~argent0@168.227.96.51) (Client Quit)
2020-12-29 00:12:39 +0100Lowl3v3l(~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de) (Quit: Leaving.)
2020-12-29 00:14:23 +0100fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2020-12-29 00:14:58 +0100 <fuzzypixelz> (once again) I'm trying to do aoc day 8, this is what I came up with so far https://bpa.st/IDSA
2020-12-29 00:16:47 +0100 <fuzzypixelz> A function that takes the global variable in the program (Int), and returns a State monad that remembers the last line number that was being execued and the list of all lines visited,
2020-12-29 00:16:48 +0100 <dsal> @undo do f -- fuzzypixelz
2020-12-29 00:16:48 +0100 <lambdabot> f
2020-12-29 00:18:20 +0100 <fuzzypixelz> dsal: but there has to be some sort of "loop" that stops when the function returns Nothing
2020-12-29 00:18:56 +0100 <fuzzypixelz> because execute only does one instruction
2020-12-29 00:19:23 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 00:19:24 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-29 00:19:29 +0100 <dsal> Yeah, I had a function that did state -> state, and then I iterated that.
2020-12-29 00:19:33 +0100Tario(~Tario@201.192.165.173)
2020-12-29 00:19:41 +0100 <dsal> e.g., `run prog = iterate (evalStep prog) (Right emptyProgramState)`
2020-12-29 00:19:44 +0100 <fuzzypixelz> I think I should be able to write that with mapM(_) somehow but I can't figure it out
2020-12-29 00:19:52 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-29 00:19:52 +0100 <dsal> What are you mapping?
2020-12-29 00:19:53 +0100sfvm(~sfvm@37.228.215.77) (Quit: off to the basement, mixing up the medicine)
2020-12-29 00:19:56 +0100 <ij> how easy is it to get coc.nvim and an ide engine working if I have nix?
2020-12-29 00:20:05 +0100christo(~chris@81.96.113.213)
2020-12-29 00:21:04 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
2020-12-29 00:21:19 +0100 <dsal> fuzzypixelz: there are a few things in monad-loops, but I just did it myself.
2020-12-29 00:22:45 +0100neiluj(~jco@173.198.204.77.rev.sfr.net) (Ping timeout: 240 seconds)
2020-12-29 00:23:04 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 00:23:27 +0100usr25(~J@247.red-79-147-226.dynamicip.rima-tde.net) (Quit: Bye)
2020-12-29 00:23:53 +0100 <fuzzypixelz> dsal: whileJust looks promising
2020-12-29 00:24:04 +0100 <fuzzypixelz> As long as the supplied Maybe expression returns "Just _", the loop body will be called and passed the value contained in the Just. Results are collected into a list.
2020-12-29 00:24:10 +0100son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-12-29 00:24:11 +0100 <fuzzypixelz> Monad m => m (Maybe a) -> (a -> m b) -> m [b]
2020-12-29 00:24:49 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2020-12-29 00:25:10 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-12-29 00:25:18 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
2020-12-29 00:25:53 +0100darjeeling_(~darjeelin@122.245.217.190)
2020-12-29 00:26:29 +0100ericsagnes(~ericsagne@2405:6580:0:5100:f3bd:76da:a01c:8f3f) (Ping timeout: 268 seconds)
2020-12-29 00:27:06 +0100christo(~chris@81.96.113.213)
2020-12-29 00:27:16 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-29 00:27:38 +0100matryoshka(~matryoshk@184.75.223.227)
2020-12-29 00:27:47 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
2020-12-29 00:28:22 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
2020-12-29 00:28:38 +0100 <dsal> Yeah, or you can just use iterate. :)
2020-12-29 00:29:21 +0100 <dsal> > takeWhile (< 5) . iterate (+1) $ 1
2020-12-29 00:29:23 +0100 <lambdabot> [1,2,3,4]
2020-12-29 00:30:04 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf) (Remote host closed the connection)
2020-12-29 00:30:08 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 00:30:47 +0100 <fuzzypixelz> Ah I didn't know that existed
2020-12-29 00:30:56 +0100ericsagnes(~ericsagne@2405:6580:0:5100:bed2:c8ad:c296:966c)
2020-12-29 00:31:16 +0100christo(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2020-12-29 00:31:46 +0100knupfer(~Thunderbi@87.123.206.116) (Ping timeout: 256 seconds)
2020-12-29 00:32:41 +0100 <fuzzypixelz> dsal: and use takeWhileM, right?
2020-12-29 00:32:55 +0100 <dsal> I don't use monad-loops here.
2020-12-29 00:33:09 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-12-29 00:33:43 +0100 <dsal> If you just have a function (a -> a) iterate turns that into [a]. Then you take or drop what you want from that.
2020-12-29 00:34:08 +0100 <dsal> @src iterate
2020-12-29 00:34:08 +0100 <lambdabot> iterate f x = x : iterate f (f x)
2020-12-29 00:34:11 +0100 <dsal> @src fix
2020-12-29 00:34:11 +0100 <lambdabot> fix f = let x = f x in x
2020-12-29 00:35:09 +0100 <madjestic> ski: `map (listArray (0,2) [3,4,5] !) [0,2,1,0]` is a bit similar to massiv syntax: backpermute' @P (Sz1 4) ((fromLists' Par ([0,2,1,0]) :: (Array P Ix1 Int)) !) (fromLists' Par ([3,4,5]) :: (Array P Ix1 Int)). Now I wonder if I can sort rows of a 2D array, based on 1D array of indices...
2020-12-29 00:37:21 +0100Darwin226(5fa87473@95.168.116.115)
2020-12-29 00:38:07 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-132.cust.tzulo.com)
2020-12-29 00:38:49 +0100Tops22(~Tobias@dyndsl-095-033-021-140.ewe-ip-backbone.de) (Quit: Leaving.)
2020-12-29 00:39:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 00:39:17 +0100christo(~chris@81.96.113.213)
2020-12-29 00:39:26 +0100ericsagnes(~ericsagne@2405:6580:0:5100:bed2:c8ad:c296:966c) (Ping timeout: 268 seconds)
2020-12-29 00:39:40 +0100plastman(2df1c176@45.241.193.118)
2020-12-29 00:40:30 +0100 <plastman> newbie here. how is haskell on windows like? sure there is a GHC port for windows but is it worth it? or should I try on WSL instead?
2020-12-29 00:41:38 +0100jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 256 seconds)
2020-12-29 00:41:57 +0100 <Darwin226> Hey guys. Is there a name for this type somewhere: newtype Inf m a = Inf (m (a, Inf m a))?
2020-12-29 00:42:08 +0100 <Kronic> I'm a little bit above new, It's pretty okay, but in my experience it is not as seamless as other things on windows. I use VMWare player to host a linux vm to write my code and that works very well for me, but there are definitely people writing ocde on Windows with great regularity plastman
2020-12-29 00:42:10 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr)
2020-12-29 00:43:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-29 00:44:07 +0100 <monochrom> Darwin226: looks like "ListT done right" but without the end-of-list case.
2020-12-29 00:44:08 +0100 <glguy> Darwin226, I don't know of one, but it looks related to http://hackage.haskell.org/package/free-5.1.5/docs/Control-Comonad-Cofree.html
2020-12-29 00:44:38 +0100 <Darwin226> Hmm, so sort of a StreamT done right
2020-12-29 00:44:45 +0100usr25(~usr25@unaffiliated/usr25)
2020-12-29 00:44:57 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-12-29 00:45:18 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 00:46:25 +0100dhil(~dhil@78.156.97.38) (Ping timeout: 264 seconds)
2020-12-29 00:46:48 +0100GuerrillaMonkey(~Jeanne-Ka@static-198-54-134-46.cust.tzulo.com)
2020-12-29 00:47:38 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-29 00:47:47 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-12-29 00:47:55 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-132.cust.tzulo.com) (Ping timeout: 246 seconds)
2020-12-29 00:50:41 +0100christo(~chris@81.96.113.213)
2020-12-29 00:52:37 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Read error: Connection reset by peer)
2020-12-29 00:52:57 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
2020-12-29 00:53:17 +0100 <ij> is it possible to make this condition consist of two or operands? (x `mod` scale == 0) || (x `mod` scale == scale - 1) || (y `mod` scale == 0) || (y `mod` scale == scale - 1)
2020-12-29 00:53:33 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 00:53:50 +0100plastman(2df1c176@45.241.193.118) (Remote host closed the connection)
2020-12-29 00:53:54 +0100christo(~chris@81.96.113.213)
2020-12-29 00:54:06 +0100 <ij> it checks for borders accross the checkerboard that scale-wide blocks would make on 0-indexed 2d array
2020-12-29 00:54:57 +0100 <glguy> (x+1)`mod`scale<2 || (y+1)`mod`scale<2
2020-12-29 00:55:09 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 00:55:49 +0100christo(~chris@81.96.113.213)
2020-12-29 00:56:42 +0100 <ski> > elems (ixmap (0,3) (listArray (0,3) [0,2,1,0] !) (listArray (0,2) [3,4,5])) -- madjestic, yea, looks like this
2020-12-29 00:56:44 +0100 <lambdabot> [3,5,4,3]
2020-12-29 00:56:48 +0100Natch(~natch@85.226.113.180)
2020-12-29 00:57:09 +0100 <ij> glguy, you're right! amazing
2020-12-29 00:57:56 +0100 <ij> glguy, how? 😅
2020-12-29 00:59:43 +0100matryoshka(~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
2020-12-29 00:59:56 +0100christo(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2020-12-29 01:00:00 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-29 01:00:53 +0100 <glguy> ij, the +1 causes your scale-1 case to wrap around to 0
2020-12-29 01:01:00 +0100 <glguy> and your 0 case to go to 1
2020-12-29 01:01:18 +0100 <glguy> 0 and 1 are the two results that are less than 2
2020-12-29 01:01:55 +0100 <ij> ah, right it doesn't accumulate and screw with next cycles
2020-12-29 01:02:06 +0100 <glguy> ij, is that for advent of code day 20?
2020-12-29 01:02:30 +0100 <ij> no, :) pipe maze
2020-12-29 01:03:02 +0100 <ij> 2d ascii pipe characters, all of which have to be connected
2020-12-29 01:03:19 +0100 <madjestic> ski: yeah, there must be a way to translate that to massiv sytax :->
2020-12-29 01:03:26 +0100 <ski> (presumably `scale' is nonnegative ..)
2020-12-29 01:03:57 +0100 <glguy> ski, a negative-width checkerboard sounds cool
2020-12-29 01:04:02 +0100 <ski> > 5 `mod''` 0
2020-12-29 01:04:05 +0100 <lambdabot> 5
2020-12-29 01:04:16 +0100christo(~chris@81.96.113.213)
2020-12-29 01:04:29 +0100 <ph88_> is it possible to pattern match head and tail on Vector ?
2020-12-29 01:05:00 +0100 <hpc> do view patterns count? :P
2020-12-29 01:05:02 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 01:05:06 +0100 <glguy> ph88_, You could write such a pattern synonym, but I don't think one is in the library
2020-12-29 01:05:44 +0100christo(~chris@81.96.113.213)
2020-12-29 01:06:07 +0100 <ph88_> what could be the reason it's not in the library ?
2020-12-29 01:06:37 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-29 01:06:49 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-29 01:08:25 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
2020-12-29 01:09:14 +0100ransom(~c4264035@8.47.12.52) (Read error: Connection reset by peer)
2020-12-29 01:09:23 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
2020-12-29 01:09:44 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-29 01:10:04 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-12-29 01:11:44 +0100christo(~chris@81.96.113.213)
2020-12-29 01:12:45 +0100 <ij> ski, naturally :)
2020-12-29 01:12:49 +0100 <ph88_> lol
2020-12-29 01:14:26 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 01:16:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 01:16:55 +0100madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Remote host closed the connection)
2020-12-29 01:17:15 +0100 <fuzzypixelz> dsal: I did it! https://bpa.st/BC4Q
2020-12-29 01:17:50 +0100 <fuzzypixelz> dsal: there was this function `iterateMaybeM` in monad-extras which did exactly what I needed
2020-12-29 01:18:42 +0100 <fuzzypixelz> dsal: it stops when the monad evaluates to a Nothing, but there is aslo `iterateM` which can be given a `a -> Bool`
2020-12-29 01:18:59 +0100 <fuzzypixelz> https://hackage.haskell.org/package/monad-extras-0.6.0/docs/Control-Monad-Extra.html#v:iterateMaybeM
2020-12-29 01:19:01 +0100 <ski> % unConsV :: V.Vector a -> Maybe (a,V.Vector a); unConsV v | V.null v = Nothing | otherwise = Just (V.head v,V.tail v); {-# COMPLETE NilV,ConsV #-}; pattern NilV :: V.Vector a; pattern NilV <- (unConsV -> Nothing); pattern ConsV :: a -> V.Vector a -> V.Vector a; pattern ConsV x xs <- (unConsV -> Just (x,xs))
2020-12-29 01:19:01 +0100 <yahb> ski:
2020-12-29 01:19:41 +0100jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com)
2020-12-29 01:19:41 +0100jle`(~mstksg@cpe-23-240-75-236.socal.res.rr.com) (Changing host)
2020-12-29 01:19:41 +0100jle`(~mstksg@unaffiliated/mstksg)
2020-12-29 01:19:45 +0100 <fuzzypixelz> dsal: Although the code works (it's Haskell of course it works) It lacks style
2020-12-29 01:20:00 +0100 <fuzzypixelz> I mixed all sorts of syntax
2020-12-29 01:20:33 +0100 <ski> % case V.generate 4 (^2) of NilV -> V.empty; ConsV x xs -> fmap (x,) xs
2020-12-29 01:20:33 +0100 <yahb> ski: [(0,1),(0,4),(0,9)]
2020-12-29 01:21:08 +0100 <ski> ph88_ : something like that ^, perhaps ?
2020-12-29 01:21:09 +0100 <fuzzypixelz> But the State monad is very cool
2020-12-29 01:22:18 +0100christo(~chris@81.96.113.213)
2020-12-29 01:23:30 +0100 <Kronic> sounds like you solved a problem that was annoying you for a while, nice fuzzypixelz
2020-12-29 01:24:12 +0100 <ski> (i guess, for completeness, one should also add `where NilV = V.empty' and `where ConsV = V.cons')
2020-12-29 01:25:14 +0100davr0s(~davrs@host81-147-72-1.range81-147.btcentralplus.com)
2020-12-29 01:25:45 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2020-12-29 01:25:55 +0100mouseghost(~draco@wikipedia/desperek) (Quit: mew wew)
2020-12-29 01:27:19 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-29 01:27:48 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-29 01:28:06 +0100matryoshka(~matryoshk@184.75.223.227)
2020-12-29 01:29:22 +0100 <fuzzypixelz> question: is it a "good" idea to simulate stateful code with monads rather than trying to do it the "pure functional way"?
2020-12-29 01:30:13 +0100davr0s(~davrs@host81-147-72-1.range81-147.btcentralplus.com) (Ping timeout: 264 seconds)
2020-12-29 01:30:31 +0100jmchael(~jmchael@81.174.205.210) (Ping timeout: 265 seconds)
2020-12-29 01:31:20 +0100 <Kronic> That question is probably too broad to answer with anything other than "it depends on the specific case"
2020-12-29 01:31:38 +0100Entertainment(~entertain@104.246.132.210) (Ping timeout: 260 seconds)
2020-12-29 01:31:58 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 265 seconds)
2020-12-29 01:34:40 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-29 01:36:05 +0100ArsenArsen(~Arsen@fsf/member/ArsenArsen)
2020-12-29 01:38:39 +0100alx741(~alx741@181.196.68.114) (Ping timeout: 260 seconds)
2020-12-29 01:40:10 +0100 <ph88_> looks good ski ! would it be possible to overload : to be able to write (x:xs) ??
2020-12-29 01:40:28 +0100 <ski> fuzzypixelz : brackets in `(Exec ns n) <- get' are redundant. you can replace the latter two of the three following `let's (in that `do') by three spaces, each. i would probably replace `instruc = instrucs !! n; op = getOp instruc; arg = getArg instruc' (semis option, if you use layout) with `Instruc op arg = instrucs !! n'. you could put that `case' with definitions of `m' in a `(m,nextGlobal) = case op of
2020-12-29 01:40:34 +0100 <ski> ...' and define `nextExec' separately
2020-12-29 01:40:37 +0100 <ski> ph88_ : no
2020-12-29 01:40:51 +0100 <ph88_> ski, why is that not possible ?
2020-12-29 01:40:52 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:f414:9b65:b890:9d87)
2020-12-29 01:40:57 +0100 <ski> you could invent some infix operator, though
2020-12-29 01:41:45 +0100dnlkrgr(~dnlkrgr@HSI-KBW-46-223-1-192.hsi.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9)
2020-12-29 01:41:50 +0100 <ph88_> is (x:xs) build into ghc ?
2020-12-29 01:42:27 +0100fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 260 seconds)
2020-12-29 01:43:17 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-12-29 01:43:22 +0100 <ski> % unConsV :: V.Vector a -> Maybe (a,V.Vector a); unConsV v | V.null v = Nothing | otherwise = Just (V.head v,V.tail v); {-# COMPLETE NilV,(:@) #-}; pattern NilV :: V.Vector a; pattern NilV <- (unConsV -> Nothing) where {NilV = V.empty}; infixr 5 :@; pattern (:@) :: a -> V.Vector a -> V.Vector a; pattern x :@ xs <- (unConsV -> Just (x,xs)) where {(:@) = V.cons}
2020-12-29 01:43:23 +0100 <yahb> ski:
2020-12-29 01:43:50 +0100 <ski> @let data Foo = Int : Bool
2020-12-29 01:43:50 +0100 <lambdabot> Parse failed: Parse error: :
2020-12-29 01:43:52 +0100 <ski> % data Foo = Int : Bool
2020-12-29 01:43:52 +0100 <yahb> ski: ; <interactive>:68:12: error: Illegal binding of built-in syntax: :
2020-12-29 01:44:09 +0100 <ski> ph88_ : yes, it's a special case in the syntax
2020-12-29 01:44:28 +0100 <ski> % case V.generate 4 (^2) of NilV -> V.empty; x :@ xs -> fmap (x,) xs
2020-12-29 01:44:28 +0100 <yahb> ski: [(0,1),(0,4),(0,9)]
2020-12-29 01:44:58 +0100 <ski> > 2 :@ 3 :@ 5 :@ 7 :@ NilV
2020-12-29 01:45:00 +0100 <lambdabot> error:
2020-12-29 01:45:00 +0100 <lambdabot> • Data constructor not in scope: (:@) :: t4 -> t5 -> t2
2020-12-29 01:45:00 +0100 <lambdabot> • Perhaps you meant one of these:
2020-12-29 01:45:04 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 260 seconds)
2020-12-29 01:45:09 +0100 <ski> oh, right, that was yahb
2020-12-29 01:45:12 +0100 <ski> % 2 :@ 3 :@ 5 :@ 7 :@ NilV
2020-12-29 01:45:13 +0100 <yahb> ski: [2,3,5,7]
2020-12-29 01:46:07 +0100 <ph88_> cool =)
2020-12-29 01:46:17 +0100sfvm(~sfvm@37.228.215.77)
2020-12-29 01:46:18 +0100skithinks `instance Show a => Show (Vector a)' is broken, ought to respond with `Data.Vector.fromList [2,3,5,7]' or somesuch, there ..
2020-12-29 01:46:25 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 264 seconds)
2020-12-29 01:47:01 +0100Anthaas(~Anthaas@unaffiliated/anthaas) (Ping timeout: 264 seconds)
2020-12-29 01:47:02 +0100 <Feuermagier> how do i append duplicate free to a list?
2020-12-29 01:47:05 +0100 <ski> > listArray (-3,3) [i ^ 2 | i <- range (-3,3)]
2020-12-29 01:47:09 +0100 <lambdabot> array (-3,3) [(-3,9),(-2,4),(-1,1),(0,0),(1,1),(2,4),(3,9)]
2020-12-29 01:47:12 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-29 01:48:09 +0100 <ski> Feuermagier : are you sure you want to use a list ?
2020-12-29 01:48:29 +0100 <Feuermagier> hmm, a hashset would probably be wiser
2020-12-29 01:48:39 +0100 <Feuermagier> valid point. thx
2020-12-29 01:48:45 +0100Anthaas(~Anthaas@unaffiliated/anthaas)
2020-12-29 01:48:53 +0100 <ski> what should the result of appending `3' to `[2,3,5,2]' be ?
2020-12-29 01:49:00 +0100hackagepcre2 1.1.3 - Regular expressions via the PCRE2 C library (included) https://hackage.haskell.org/package/pcre2-1.1.3 (SShuck)
2020-12-29 01:49:05 +0100 <Feuermagier> [2,3,5,2]
2020-12-29 01:49:08 +0100 <Feuermagier> order doesnt matter
2020-12-29 01:49:14 +0100 <Feuermagier> so it really is a set
2020-12-29 01:49:24 +0100 <ski> yea
2020-12-29 01:49:25 +0100 <Feuermagier> but i haven't worked with sets yet
2020-12-29 01:49:32 +0100 <Feuermagier> (at least not in haskell)
2020-12-29 01:49:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-29 01:51:06 +0100alx741(~alx741@181.196.68.142)
2020-12-29 01:51:48 +0100 <Feuermagier> do i need to add a build dependancy for those?
2020-12-29 01:52:38 +0100 <monochrom> Yes.
2020-12-29 01:53:35 +0100 <Feuermagier> ah, int set and containers. thx!
2020-12-29 01:53:43 +0100 <Feuermagier> what are qualified imports?
2020-12-29 01:53:45 +0100 <monochrom> containers comes with GHC, and has Data.Set, binary search tree. Although it comes with GHC, it is still not base, in cabal you have to explicitly say "depends: containers"
2020-12-29 01:54:10 +0100 <monochrom> For hashing-based things, unordered-containers.
2020-12-29 01:56:06 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
2020-12-29 01:56:40 +0100Darwin226(5fa87473@95.168.116.115) (Remote host closed the connection)
2020-12-29 01:57:30 +0100hackagecherry-core-alpha 0.3.0.0 - The core library for Cherry Haskell. https://hackage.haskell.org/package/cherry-core-alpha-0.3.0.0 (terezasokol)
2020-12-29 01:57:50 +0100amerigo(uid331857@gateway/web/irccloud.com/x-qydxjmmxyizatjlm) (Quit: Connection closed for inactivity)
2020-12-29 01:58:52 +0100cheater(~user@unaffiliated/cheater)
2020-12-29 01:58:56 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds)
2020-12-29 01:59:20 +0100 <Feuermagier> how do I define a Set as argument?
2020-12-29 01:59:30 +0100 <Feuermagier> et (Int, Int) -> Something
2020-12-29 01:59:34 +0100 <Feuermagier> S*
2020-12-29 02:00:24 +0100 <Feuermagier> oh, i guess Í shouldnt have imported as qualified
2020-12-29 02:01:08 +0100 <Feuermagier> oh god now every filter, map and size is broken
2020-12-29 02:01:11 +0100 <Feuermagier> ._.
2020-12-29 02:01:32 +0100usr25(~usr25@unaffiliated/usr25) (Quit: Leaving)
2020-12-29 02:01:44 +0100 <Feuermagier> shouldn't the compiler be able to deduce those?
2020-12-29 02:01:50 +0100 <monochrom> You probably haven't known the trick of having two import lines for the "same" module.
2020-12-29 02:02:17 +0100 <monochrom> import Data.Set (Set); import qualified Data.Set as S
2020-12-29 02:03:03 +0100 <monochrom> So you can just say "Set" for the type, no need to say "S.Set", but you don't have a name clash with filter etc.
2020-12-29 02:03:27 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 260 seconds)
2020-12-29 02:04:21 +0100 <Feuermagier> so. what should I import if I want to use Set, but don't want conflicts with List ?
2020-12-29 02:04:50 +0100 <monochrom> <monochrom> import Data.Set (Set); import qualified Data.Set as S
2020-12-29 02:05:05 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-29 02:05:06 +0100 <Feuermagier> so, what if i want to use sizeOfSet ?
2020-12-29 02:05:16 +0100 <monochrom> S.size
2020-12-29 02:05:22 +0100 <Feuermagier> ah, ok. thx!
2020-12-29 02:05:23 +0100 <monochrom> There is no "sizeOfSet".
2020-12-29 02:05:27 +0100 <ski> @let ximap :: (Ix i,Ix j,Monoid e) => (j,j) -> (i -> j) -> (Array i e -> Array j e); ximap ix f arr = accumArray (<>) mempty ix (map (first f) (assocs arr))
2020-12-29 02:05:28 +0100 <lambdabot> Defined.
2020-12-29 02:05:30 +0100 <ski> @undefine
2020-12-29 02:05:30 +0100 <ski> @let ximap :: (Ix i,Ix j,Monoid e) => (j,j) -> (i -> j) -> (Array i e -> Array j e); ximap ix f arr = accumArray (<>) mempty ix (map (first f) (assocs arr))
2020-12-29 02:05:30 +0100 <lambdabot> Undefined.
2020-12-29 02:05:31 +0100 <lambdabot> Defined.
2020-12-29 02:05:38 +0100 <ski> > map getSum (elems (ximap (0,3) (listArray (0,4) [0,3,1,0,1] !) (listArray (0,4) (map Sum [3,4,5,6,7]))))
2020-12-29 02:05:41 +0100 <lambdabot> [9,12,0,4]
2020-12-29 02:07:01 +0100 <Feuermagier> can I take stuff out of a set in (x : xs) style?
2020-12-29 02:07:07 +0100 <ski> no
2020-12-29 02:07:13 +0100 <Feuermagier> ._.
2020-12-29 02:07:24 +0100 <Feuermagier> how do i iterate through elegantly then?
2020-12-29 02:07:31 +0100 <ski> @hoogle Set a -> Maybe (a,Set a)
2020-12-29 02:07:32 +0100 <lambdabot> Data.Set maxView :: Set a -> Maybe (a, Set a)
2020-12-29 02:07:32 +0100 <lambdabot> Data.Set minView :: Set a -> Maybe (a, Set a)
2020-12-29 02:07:32 +0100 <lambdabot> Data.Set.Internal maxView :: Set a -> Maybe (a, Set a)
2020-12-29 02:07:35 +0100 <ski> is one way
2020-12-29 02:07:52 +0100 <dsal> Feuermagier: what are you trying to do?
2020-12-29 02:08:00 +0100 <ski> @hoogle Set a -> [a]
2020-12-29 02:08:01 +0100 <lambdabot> Data.Set elems :: Set a -> [a]
2020-12-29 02:08:02 +0100 <lambdabot> Data.Set toList :: Set a -> [a]
2020-12-29 02:08:02 +0100 <lambdabot> Data.Set toAscList :: Set a -> [a]
2020-12-29 02:08:07 +0100 <dsal> Sets are foldable.
2020-12-29 02:08:16 +0100 <monochrom> Use minView or maxView. Or even better, use Foldable or Traversable methods.
2020-12-29 02:08:51 +0100 <monochrom> Err oops, not Foldable or Traversable methods.
2020-12-29 02:09:18 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 256 seconds)
2020-12-29 02:09:23 +0100 <monochrom> But it has S.map, S.foldr, S.foldl, etc.
2020-12-29 02:09:26 +0100 <Feuermagier> dsal, oh, that's a bit complicated :D - essentially something like a for loop that maps elements from one list into another list duplicate free. (The elements aren't copied tho. they are used in a function that generates new elements)
2020-12-29 02:09:30 +0100 <monochrom> See the doc for the full list.
2020-12-29 02:09:41 +0100 <dsal> Feuermagier: Set.map ?
2020-12-29 02:10:40 +0100 <ski> @type S.map
2020-12-29 02:10:41 +0100 <lambdabot> Ord b => (a -> b) -> S.Set a -> S.Set b
2020-12-29 02:11:11 +0100 <Feuermagier> interesting
2020-12-29 02:11:15 +0100 <Feuermagier> that might work
2020-12-29 02:11:36 +0100 <dsal> If you're always working in Sets, "duplicates" isn't a thing. If you're thinking "iterate" or "for loop" or whatever, it might be helpful to think in terms of higher level folds or maps or whatever.
2020-12-29 02:11:45 +0100 <ski> > S.map (\case 0 -> 0; 1 -> 3; 2 -> 1; 3 -> 0; 4 -> 1) (S.fromList [0,1,2,3,4])
2020-12-29 02:11:47 +0100 <lambdabot> fromList [0,1,3]
2020-12-29 02:13:31 +0100 <Feuermagier> I'll try it.
2020-12-29 02:13:41 +0100 <Feuermagier> See you in a bit for more questions :D
2020-12-29 02:14:05 +0100hiroaki_(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2020-12-29 02:15:21 +0100 <ski> % :set -XOverloadedLists
2020-12-29 02:15:21 +0100 <yahb> ski:
2020-12-29 02:15:28 +0100 <ski> % case [0,1,2] :: V.Vector Int of [x,y,z] -> (x,y,z)
2020-12-29 02:15:28 +0100 <yahb> ski: (0,1,2)
2020-12-29 02:15:39 +0100 <ski> % case [0,1,2] :: V.Vector Int of x:xs -> (x,xs)
2020-12-29 02:15:39 +0100 <yahb> ski: ; <interactive>:78:33: error:; * Couldn't match expected type `V.Vector Int' with actual type `[a]'; * In the pattern: x : xs; In a case alternative: x : xs -> (x, xs); In the expression: case [0, 1, 2] :: V.Vector Int of { x : xs -> (x, xs) }; * Relevant bindings include it :: (a, [a]) (bound at <interactive>:78:1)
2020-12-29 02:15:44 +0100 <Feuermagier> how do I pattern match for an empty set?
2020-12-29 02:16:22 +0100 <ski> > S.null (S.fromList [2,3,5,7])
2020-12-29 02:16:25 +0100 <lambdabot> False
2020-12-29 02:16:43 +0100 <Feuermagier> oh, just S. null, not S.Set.null
2020-12-29 02:17:30 +0100 <ski> > case S.fromList [2,3,5,7] of (S.maxView -> Just (x,xs)) -> (x,xs)
2020-12-29 02:17:31 +0100 <Feuermagier> hmm, " Qualified name in binding position: S.null"
2020-12-29 02:17:32 +0100 <lambdabot> (7,fromList [2,3,5])
2020-12-29 02:17:52 +0100 <ski> you don't match on `null', it's a predicate/function
2020-12-29 02:18:48 +0100 <ski> > case S.fromList [2,3,5,7] of s@(S.null -> False) -> S.findMax s
2020-12-29 02:18:50 +0100 <lambdabot> 7
2020-12-29 02:20:05 +0100 <Feuermagier> how would I match on an empty Set then?
2020-12-29 02:20:29 +0100 <koz_> Feuermagier: Either case-match on size, or use 'if S.null mySet then blah else foo'
2020-12-29 02:22:18 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-12-29 02:23:32 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 02:23:38 +0100 <dsal> > null S.empty
2020-12-29 02:23:40 +0100 <lambdabot> True
2020-12-29 02:24:44 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2020-12-29 02:24:48 +0100 <dsal> > let f s | null s = "iz null"; f _ = "iz not null" in f <$> [S.empty, S.singleton 1]
2020-12-29 02:24:50 +0100 <lambdabot> ["iz null","iz not null"]
2020-12-29 02:25:39 +0100 <Feuermagier> if i have a match case and guards, and the guards are non-exhaustive, will it fall through to other matches?
2020-12-29 02:25:51 +0100 <dsal> ^ lambdabot
2020-12-29 02:25:55 +0100 <xsperry> Feuermagier, there's also S.toList
2020-12-29 02:26:02 +0100 <dsal> :t toList
2020-12-29 02:26:04 +0100 <lambdabot> error:
2020-12-29 02:26:04 +0100 <lambdabot> Ambiguous occurrence ‘toList’
2020-12-29 02:26:04 +0100 <lambdabot> It could refer to
2020-12-29 02:26:31 +0100 <xsperry> :t S.toList
2020-12-29 02:26:32 +0100 <lambdabot> S.Set a -> [a]
2020-12-29 02:26:33 +0100 <dsal> Set is foldable. You can do all the folds. But the questions suggest there's an easier way to do stuff. e.g., S.map, various folds, etc...
2020-12-29 02:27:10 +0100 <dsal> I just mean you don't need S.toList. Set is foldable.
2020-12-29 02:27:25 +0100 <Feuermagier> I think I'll need a foldright, as I also need to change the state of a gameboard along the way
2020-12-29 02:27:31 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection)
2020-12-29 02:27:54 +0100 <xsperry> might be an option if he's manually recursing over the elements, in some minority cases manual recursion makes for a cleaner code
2020-12-29 02:28:18 +0100hiroaki_(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
2020-12-29 02:29:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-29 02:29:17 +0100 <dsal> :t foldM
2020-12-29 02:29:18 +0100 <lambdabot> (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
2020-12-29 02:29:25 +0100 <ski> % pattern EmptyS :: S.Set a; pattern EmptyS <- (S.null -> True) where {EmptyS = S.empty}
2020-12-29 02:29:25 +0100 <yahb> ski:
2020-12-29 02:29:30 +0100 <ski> % {-# COMPLETE EmptyS,AddMin #-}; pattern AddMin :: Ord a => a -> S.Set a -> S.Set a; pattern AddMin min set <- (S.minView -> Just (min,set)) where AddMin min set | min `S.notMember` set = S.insert min set
2020-12-29 02:29:30 +0100 <yahb> ski:
2020-12-29 02:29:37 +0100 <ski> % {-# COMPLETE EmptyS,AddMax #-}; pattern AddMax :: Ord a => a -> S.Set a -> S.Set a; pattern AddMax max set <- (S.maxView -> Just (max,set)) where AddMax max set | max `S.notMember` set = S.insert max set
2020-12-29 02:29:37 +0100 <yahb> ski:
2020-12-29 02:29:44 +0100 <ski> % case S.fromList [2,3,5,7] of AddMax x xs -> (x,xs)
2020-12-29 02:29:45 +0100 <yahb> ski: (7,fromList [2,3,5])
2020-12-29 02:30:09 +0100 <ski> % AddMax 7 [2,3,5]
2020-12-29 02:30:09 +0100 <yahb> ski: fromList [2,3,5,7]
2020-12-29 02:30:14 +0100 <ski> % AddMax 7 [2,3,5,7]
2020-12-29 02:30:15 +0100 <yahb> ski: fromList *** Exception: Ghci44:1:1: Non-exhaustive patterns in function $bAddMax
2020-12-29 02:30:16 +0100 <ski> % AddMax 7 [2,3,5,11]
2020-12-29 02:30:17 +0100 <yahb> ski: fromList [2,3,5,7,11]
2020-12-29 02:30:20 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf)
2020-12-29 02:30:31 +0100 <ski> oh, oops :)
2020-12-29 02:31:52 +0100Fischmiep(~Fischmiep@46.59.219.2)
2020-12-29 02:32:15 +0100 <ski> % {-# COMPLETE EmptyS,AddMin #-}; pattern AddMin :: Ord a => a -> S.Set a -> S.Set a; pattern AddMin min set <- (S.minView -> Just (min,set)) where AddMin min set | min < S.findMin set = S.insert min set
2020-12-29 02:32:15 +0100 <yahb> ski:
2020-12-29 02:32:19 +0100 <ski> % {-# COMPLETE EmptyS,AddMax #-}; pattern AddMax :: Ord a => a -> S.Set a -> S.Set a; pattern AddMax max set <- (S.maxView -> Just (max,set)) where AddMax max set | max > S.findMax set = S.insert max set
2020-12-29 02:32:19 +0100 <yahb> ski:
2020-12-29 02:32:25 +0100 <ski> % AddMax 7 [2,3,5]
2020-12-29 02:32:25 +0100 <yahb> ski: fromList [2,3,5,7]
2020-12-29 02:32:29 +0100 <ski> % AddMax 7 [2,3,5,7]
2020-12-29 02:32:29 +0100 <yahb> ski: fromList *** Exception: Ghci53:1:1: Non-exhaustive patterns in function $bAddMax
2020-12-29 02:32:30 +0100hackagepcre2 1.1.3.1 - Regular expressions via the PCRE2 C library (included) https://hackage.haskell.org/package/pcre2-1.1.3.1 (SShuck)
2020-12-29 02:32:32 +0100 <ski> % AddMax 7 [2,3,5,11]
2020-12-29 02:32:33 +0100 <yahb> ski: fromList *** Exception: Ghci53:1:1: Non-exhaustive patterns in function $bAddMax
2020-12-29 02:33:48 +0100 <ski> Feuermagier : if you really want to match on empty set, and perhaps alternatively also on min/max & remainder of set, you could use pattern synonyms like ^
2020-12-29 02:34:02 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 02:34:11 +0100 <Feuermagier> ski, i simply used a guard
2020-12-29 02:34:19 +0100loller_(uid358106@gateway/web/irccloud.com/x-aepjfnaneozrdleq)
2020-12-29 02:34:35 +0100 <Feuermagier> I'm about to write one absolutely massive foldr
2020-12-29 02:34:45 +0100 <ski> (Feuermagier : "if i have a match case and guards, and the guards are non-exhaustive, will it fall through to other matches?" -- yes, as dsal showed)
2020-12-29 02:34:58 +0100Fischmie1(~Fischmiep@84.46.41.145) (Ping timeout: 256 seconds)
2020-12-29 02:35:29 +0100 <ski> Feuermagier : what's your fold computing ?
2020-12-29 02:36:38 +0100notzmv`(~user@191.205.12.9)
2020-12-29 02:39:23 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
2020-12-29 02:39:24 +0100 <Feuermagier> ski, I perform moves in a game. A stone is placed. As a result of that up to 5 fields change (in that step). All fields changed could be in an unstable state and initiate further changes using the same function as the initial stone-place. My input is a Set of Fields in (potentially) unstable state. I go through the set, update the board along the way. If the update results in more changed fields i'll have to repeat (call recursively with new board)
2020-12-29 02:40:16 +0100columbarius(~columbari@87.123.198.157) (Ping timeout: 246 seconds)
2020-12-29 02:40:43 +0100sphalerite(~sphalerit@NixOS/user/lheckemann) (Ping timeout: 258 seconds)
2020-12-29 02:40:51 +0100 <Feuermagier> So the input is one (potentially unstable) coordinate for a field (where I just placed a stone) + a board. And the output is a new board.
2020-12-29 02:41:51 +0100 <ski> hmm .. should there be a `divideSet :: Ord a => Int -> Set a -> [Set a]' where `divideSet k set' divides `set' into a partition of `k' parts, all elements of an earlier set in the list less than all elements of a later set, and if the set has `n' elements, then the first `mod n k' sets have `div n k + 1' elements, and the remaining `n - mod n k' sets have `div n k' elements ?
2020-12-29 02:42:20 +0100 <Feuermagier> probably...not
2020-12-29 02:42:26 +0100 <ski> (well, i guess it's not quite a partition, since the parts would be allowed to be empty ..)
2020-12-29 02:42:32 +0100notzmv`(~user@191.205.12.9) (Ping timeout: 260 seconds)
2020-12-29 02:42:42 +0100columbarius(~columbari@i5E86B356.versanet.de)
2020-12-29 02:43:06 +0100 <Feuermagier> think of it in this way: I have to update the entire board "breadth first" - because every move in "one level" can generate more unstable ones
2020-12-29 02:43:22 +0100notzmv```(~user@191.205.12.9)
2020-12-29 02:43:55 +0100 <Feuermagier> ski, actually, if you are intereted, just take a look here: https://virusga.me/
2020-12-29 02:44:10 +0100 <Feuermagier> watch a replay of one of the longer games
2020-12-29 02:46:52 +0100teardown(~user@gateway/tor-sasl/mrush)
2020-12-29 02:47:03 +0100Ariakenom(~Ariakenom@2001:9b1:efb:fc00:1e7:f4eb:ff4e:8154) (Read error: Connection reset by peer)
2020-12-29 02:47:35 +0100 <Feuermagier> When does it make sense to use a mutable datastructure in haskell (and how hard to use are they) - because I think I might have a case here
2020-12-29 02:50:20 +0100 <ski> hm, i'm still not sure what you're using the set for
2020-12-29 02:50:38 +0100 <Feuermagier> ski, the set is the accumulation of volatile fields
2020-12-29 02:50:41 +0100 <ski> (i'm not sure what you mean by "field" .. is that a square on the board ?)
2020-12-29 02:50:46 +0100 <Feuermagier> yes, squares
2020-12-29 02:51:02 +0100skiwas first thinking of record fields
2020-12-29 02:51:10 +0100notzmv```(~user@191.205.12.9) (Ping timeout: 256 seconds)
2020-12-29 02:52:17 +0100notzmv(~user@unaffiliated/zmv)
2020-12-29 02:52:18 +0100 <Feuermagier> ski, atm my gameboard is a [[Int]], so I should probably use an indexable array, or even a mutable one, right?
2020-12-29 02:54:04 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-29 02:54:49 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 264 seconds)
2020-12-29 02:55:57 +0100mrchampion(~mrchampio@38.18.109.23) (Read error: Connection reset by peer)
2020-12-29 02:56:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 02:56:44 +0100 <ski> i'm wondering if you could define the new game state "in one go" from the old one, in some nifty way
2020-12-29 02:57:41 +0100 <Feuermagier> ski, there definitly need to be steps. currently i'm thinking of one step as one recursive call.
2020-12-29 02:59:25 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
2020-12-29 02:59:27 +0100 <Feuermagier> essentially a while (there are unstable squares) loop
2020-12-29 02:59:56 +0100mrchampion(~mrchampio@38.18.109.23)
2020-12-29 03:06:10 +0100GuerrillaMonkey(~Jeanne-Ka@static-198-54-134-46.cust.tzulo.com) (Ping timeout: 246 seconds)
2020-12-29 03:08:10 +0100isovector(~isovector@172.103.216.166)
2020-12-29 03:08:48 +0100 <isovector> is there any good way of debugging vector "index of out bounds?"
2020-12-29 03:09:02 +0100 <isovector> i'm in pure code and have a super tight loop that is doing vector lookups
2020-12-29 03:11:02 +0100sm2n(~sm2n@bras-base-hmtnon1497w-grc-43-64-231-95-247.dsl.bell.ca) (Remote host closed the connection)
2020-12-29 03:11:43 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds)
2020-12-29 03:11:44 +0100 <Axman6> Debug.Trace can be very helpful for that, I've written plenty of code that looks like foo a b n | trace ("some note",a,b,n) False = undefined | otherwise = ...
2020-12-29 03:11:46 +0100 <Axman6> :t trace
2020-12-29 03:11:48 +0100 <lambdabot> error: Variable not in scope: trace
2020-12-29 03:11:54 +0100 <Axman6> %:t trace
2020-12-29 03:11:55 +0100 <Uniaika> isovector: I would just print the index and vector size at each iteration? You're doing safe-yet-throwy Vector lookups, right?
2020-12-29 03:11:56 +0100plutoniix(~q@node-ufv.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
2020-12-29 03:12:00 +0100hackagehledger-lib 1.20.2 - A reusable library providing the core functionality of hledger https://hackage.haskell.org/package/hledger-lib-1.20.2 (SimonMichael)
2020-12-29 03:12:37 +0100 <Axman6> @hoogle trace
2020-12-29 03:12:37 +0100 <lambdabot> Debug.Trace trace :: String -> a -> a
2020-12-29 03:12:37 +0100 <lambdabot> Linear.Matrix trace :: (Trace m, Num a) => m (m a) -> a
2020-12-29 03:12:37 +0100 <lambdabot> Linear.Matrix trace :: (Trace m, Foldable m, Num a) => m (m a) -> a
2020-12-29 03:13:01 +0100 <isovector> Uniaika: it's a really really tight loop. we're talking a few million indices
2020-12-29 03:13:24 +0100 <isovector> in parallel
2020-12-29 03:13:36 +0100 <isovector> trace is just asking for a bad time
2020-12-29 03:13:38 +0100 <Uniaika> :O
2020-12-29 03:13:40 +0100 <Uniaika> okay
2020-12-29 03:14:25 +0100 <Axman6> you cpuld conditionally trace the appropriate values by computing the indices and only printing when they are out of bounds
2020-12-29 03:14:33 +0100 <isovector> i tried `fromJust . V.!?` and sticking HasCallStacks everywhere. sorta helps
2020-12-29 03:14:37 +0100 <isovector> oh that's a good idea
2020-12-29 03:14:57 +0100 <Axman6> but often it's too late at that point to see how you got to the wrong place
2020-12-29 03:14:59 +0100 <isovector> it's amazing how shitty haskell is at this sort of stuff
2020-12-29 03:15:19 +0100fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2020-12-29 03:15:56 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya)
2020-12-29 03:16:36 +0100toorevitimirp(~tooreviti@117.182.181.108)
2020-12-29 03:17:18 +0100 <isovector> can i attach things to the callstack?
2020-12-29 03:17:31 +0100 <isovector> without writing a bunch of dumb wrappers
2020-12-29 03:19:22 +0100fuzzypixelz(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Client Quit)
2020-12-29 03:20:36 +0100toorevitimirp(~tooreviti@117.182.181.108) (Remote host closed the connection)
2020-12-29 03:21:43 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-29 03:29:25 +0100notzmv(~user@unaffiliated/zmv) (Ping timeout: 240 seconds)
2020-12-29 03:29:34 +0100 <ski> Feuermagier : "I have to update the entire board \"breadth first\"" -- mm, so given the board, and a change-set on some squares, you figure out the new values of those squares (after checking whether any would be unstable, and in that case computing the resulting stable square, plus adjacent changes), collecting the change-set of adjacent squares. then you repeat until the change-set is empty
2020-12-29 03:30:39 +0100notzmv(~user@unaffiliated/zmv)
2020-12-29 03:30:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-29 03:31:24 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-29 03:31:53 +0100 <Feuermagier> ski, exactly
2020-12-29 03:32:19 +0100 <Feuermagier> i think it'll be much shorter and more elegant than expected (almost done)
2020-12-29 03:32:34 +0100 <Feuermagier> foldr is magic
2020-12-29 03:32:39 +0100 <ski> possibly you could use `Map (Int,Int) T' or `IntMap (IntMap T)' to represent your board. i think probably `Array (Int,Int) T' is not that suitable here (unless you could figure out some way to compute the full set of changes in one go, without having to generate a new array inbetween)
2020-12-29 03:33:28 +0100 <Feuermagier> i'll worry about performance once it works
2020-12-29 03:34:19 +0100 <ski> i guess one could also handle it one single (unstable to stable square, possibly triggering changes of adjecent squares) change/trickle at a time, rather than the above (change-)set-at-a-time .. but that (latter/above) approach seems nicer to me, for some reason ..
2020-12-29 03:34:48 +0100 <Feuermagier> ski, i'll show you what i'm doing soon
2020-12-29 03:35:47 +0100 <ski> (you could also consider using some mutable array (in `ST s', or `IO'), either with one-at-a-time or set-at-a-time .. but i'm not sure that's that called for)
2020-12-29 03:37:49 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection)
2020-12-29 03:38:06 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
2020-12-29 03:38:07 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-12-29 03:38:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection)
2020-12-29 03:40:20 +0100 <Feuermagier> ski, https://pastebin.com/jXmeVriB
2020-12-29 03:40:54 +0100 <Feuermagier> ski, overflow will update the board and return new unsafe squares
2020-12-29 03:43:16 +0100isovector(~isovector@172.103.216.166) ("WeeChat 2.9")
2020-12-29 03:45:49 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds)
2020-12-29 03:48:41 +0100 <ski> Feuermagier : instead of `\pos newBoard -> ..(fst newBoard)..(snd newBoard)..', use `\pos (unstableSoFar,boardSoFar) -> ..unstableSoFar..boardSoFar..'. also use `let (adjacentUnstable,updatedBoard) = overflow ... in ..adjacentUnstable..updatedBoard..'
2020-12-29 03:49:00 +0100 <ski> (rename local variables as you prefer)
2020-12-29 03:49:15 +0100 <Feuermagier> ah, nice suggestion
2020-12-29 03:49:50 +0100ph88(~ph88@2a02:8109:9e00:7e5c:8c3f:4fda:4ef5:759f) (Ping timeout: 264 seconds)
2020-12-29 03:49:52 +0100 <ski> the first suggestion is more cosmetic (making it more readable). the second also avoids recomputing that `overflow' call
2020-12-29 03:52:10 +0100 <Feuermagier> where do I place the let?
2020-12-29 03:52:22 +0100mnrmnaughringzero
2020-12-29 03:52:32 +0100xff0x_(~fox@2001:1a81:52f4:bf00:5dee:641f:6949:4e53) (Ping timeout: 260 seconds)
2020-12-29 03:53:15 +0100 <ski> (also, what i was sketching above was not to update the board for each possibly unstable position that you inspect in the change-set, but rather to accumulate/compute a set of updates (in addition to computing the new unstable change-set), and then to apply that set of updates all at once, before looping around (checking if new unstable change-set is empty, otherwise going throught it again, &c. ..))
2020-12-29 03:53:29 +0100 <ski> Feuermagier : right after the `->'
2020-12-29 03:54:08 +0100xff0x_(~fox@2001:1a81:532a:2200:39fa:9b50:744f:71fe)
2020-12-29 03:54:56 +0100 <ski> Feuermagier : or, instead of using a lambda, define `inspectChanged pos (unstableSoFar,boardSoFar) = ...' in a `where'. then you can have a further `where' nested inside that, with `(adjacentUnstable,updatedBoard) = overflow ...'
2020-12-29 03:55:11 +0100 <ski> (passing `inspectChanged' to `foldr')
2020-12-29 03:55:13 +0100matryoshka(~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-29 03:55:27 +0100matryoshka(~matryoshk@184.75.223.227)
2020-12-29 03:55:31 +0100geowiesnot(~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 265 seconds)
2020-12-29 03:55:36 +0100 <Feuermagier> figured the 'let' out, thx!
2020-12-29 03:55:57 +0100 <ski> the `where's might look more readable. you could try both out, and see which you prefer
2020-12-29 03:58:59 +0100jedws(~jedws@121.209.189.201)
2020-12-29 03:59:01 +0100ringzeromnrmnaugh
2020-12-29 03:59:17 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
2020-12-29 04:00:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 04:01:33 +0100electricityZZZZ(~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-12-29 04:03:59 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 272 seconds)
2020-12-29 04:05:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-29 04:06:27 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-qgjtzfvygbpsyzjy)
2020-12-29 04:06:43 +0100theDon(~td@94.134.91.184) (Ping timeout: 246 seconds)
2020-12-29 04:07:16 +0100puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net) (Ping timeout: 272 seconds)
2020-12-29 04:08:33 +0100acidjnk_new(~acidjnk@p200300d0c704e7909c09b71b3d2bb082.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-12-29 04:08:39 +0100theDon(~td@muedsl-82-207-238-118.citykom.de)
2020-12-29 04:09:05 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 04:09:51 +0100christo(~chris@81.96.113.213)
2020-12-29 04:13:20 +0100xirhtogal(~lagothrix@unaffiliated/lagothrix)
2020-12-29 04:13:20 +0100lagothrix(~lagothrix@unaffiliated/lagothrix) (Killed (card.freenode.net (Nickname regained by services)))
2020-12-29 04:13:20 +0100xirhtogallagothrix
2020-12-29 04:13:22 +0100jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 04:14:22 +0100christo(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2020-12-29 04:15:01 +0100CMCDragonkai2(~Thunderbi@124.19.3.250)
2020-12-29 04:15:14 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-29 04:16:44 +0100drbean(~drbean@TC210-63-209-95.static.apol.com.tw)
2020-12-29 04:17:01 +0100machinedgod(~machinedg@24.105.81.50)
2020-12-29 04:18:42 +0100knam(~knam@d172-218-172-104.bchsia.telus.net)
2020-12-29 04:20:50 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
2020-12-29 04:24:12 +0100sparsity(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
2020-12-29 04:24:47 +0100 <ezzieyguywuf> I dunno who phadej is, but I see that name on all sorts of haskell projects
2020-12-29 04:25:28 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 260 seconds)
2020-12-29 04:31:00 +0100 <jle`> one of the great Olegs of Haskell
2020-12-29 04:31:20 +0100drbean_(~drbean@TC210-63-209-52.static.apol.com.tw)
2020-12-29 04:32:07 +0100 <ski> @quote oleg
2020-12-29 04:32:07 +0100 <lambdabot> oleg says: I submit that a type-checker that accepts ill-typed terms, loops and causes segmentation faults is not correct.
2020-12-29 04:32:16 +0100drbean(~drbean@TC210-63-209-95.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-12-29 04:34:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 04:37:05 +0100christo(~chris@81.96.113.213)
2020-12-29 04:37:46 +0100wei2912(~wei2912@unaffiliated/wei2912)
2020-12-29 04:40:55 +0100ezzieyguywufnods
2020-12-29 04:41:32 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 260 seconds)
2020-12-29 04:41:49 +0100 <ezzieyguywuf> i only just pulled my screen closer to look at his github avator. from afar, my brain interpreted as a candy skull á la Día de los Muertos
2020-12-29 04:42:17 +0100ski. o O ( Simon,Oleg,Edward,.. )
2020-12-29 04:44:17 +0100 <MarcelineVQ> thor*
2020-12-29 04:44:27 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds)
2020-12-29 04:46:19 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-12-29 04:46:35 +0100 <ezzieyguywuf> do y'all use darcs?
2020-12-29 04:46:40 +0100 <ezzieyguywuf> I've never tried it nor heard of it
2020-12-29 04:46:48 +0100 <dsal> I used to years ago
2020-12-29 04:47:01 +0100 <dsal> It's very friendly
2020-12-29 04:47:06 +0100 <ezzieyguywuf> dsal: why'd you stop?
2020-12-29 04:47:47 +0100 <dsal> hg and then github, I guess. I've used it recently as well
2020-12-29 04:48:15 +0100plutoniix(~q@184.82.194.56)
2020-12-29 04:48:33 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
2020-12-29 04:50:00 +0100 <ezzieyguywuf> dsal: github, or git?
2020-12-29 04:50:15 +0100 <ezzieyguywuf> as unfamiliar as I am with darcs, I dunno if it is more comparable to the former or the latter
2020-12-29 04:50:28 +0100 <dsal> Probably more github
2020-12-29 04:51:09 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-12-29 04:51:19 +0100 <ezzieyguywuf> how can I browse the darcs source online?
2020-12-29 04:51:28 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr)
2020-12-29 04:51:32 +0100 <ezzieyguywuf> the hackage page points me to darcs.net
2020-12-29 04:52:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-12-29 04:52:54 +0100 <dsal> git is probably the fourth dvcs I've spent time in. It captured the section of my brain that models revision control. darcs is quite different
2020-12-29 04:53:12 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Ping timeout: 260 seconds)
2020-12-29 04:54:35 +0100 <ephemient> as the instructions on the hackage page say, `darcs get http://darcs.net/` gets the source code
2020-12-29 04:54:58 +0100 <ezzieyguywuf> ephemient: sure, but I was specifically wanting to browse online, I don't presently have darcs installed
2020-12-29 04:55:16 +0100 <dsal> , darcs # :)
2020-12-29 04:55:40 +0100 <ezzieyguywuf> ?
2020-12-29 04:55:59 +0100 <ephemient> there's darcsweb set up on hub.darcs.net
2020-12-29 04:56:09 +0100 <dsal> github.com/shopify/comma
2020-12-29 04:56:41 +0100 <ephemient> but browsing locally would be faster I think
2020-12-29 04:56:51 +0100 <ezzieyguywuf> dsal: hah nice.
2020-12-29 04:58:20 +0100 <ezzieyguywuf> hah, even this isn't too helpful https://hub.darcs.net/darcs , as I don't know what the most recent commit or source is
2020-12-29 04:58:41 +0100 <dsal> ezzieyguywuf: the model is a bit different from what you're used to.
2020-12-29 04:58:50 +0100 <ezzieyguywuf> indeed
2020-12-29 04:59:07 +0100 <ezzieyguywuf> I'm mostly just wanting to find out if they've bumped their quickcheck upperbound yet or not
2020-12-29 04:59:44 +0100 <dsal> Patch chronology is less important than other systems.
2020-12-29 05:00:43 +0100 <dsal> It does mean that merging "unrelated" repositories is natural in a way that's really confusing if you're coming from git.
2020-12-29 05:00:58 +0100Wuzzy(~Wuzzy@p5790e186.dip0.t-ipconnect.de) (Quit: Wuzzy)
2020-12-29 05:01:20 +0100 <dolio> I think you can merge two completely unrelated git repos.
2020-12-29 05:01:47 +0100 <dsal> You *can*. I've done an 18-way octopus merge before. But it's a lot more natural in darcs.
2020-12-29 05:02:46 +0100 <ephemient> I think Git nowadays warns if you're merging different roots together (but it'll still do it)
2020-12-29 05:02:54 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
2020-12-29 05:03:49 +0100 <dsal> In the pre-github days, darcs was really neat for contributing in a non-centralized way. You could git clone from a random URL, make local changes, and then 'darcs send' your changes back. It'd email them. I had a thing that would receive those and apply them if they were signed properly
2020-12-29 05:04:06 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2020-12-29 05:04:18 +0100Rudd0(~Rudd0@185.189.115.103)
2020-12-29 05:04:46 +0100 <ezzieyguywuf> it's a post-github world
2020-12-29 05:04:58 +0100 <ephemient> I remember doing that with SVK, but definitely cleaner in Darcs
2020-12-29 05:06:16 +0100edwtjo(~edwtjo@fsf/member/edwtjo) (Ping timeout: 240 seconds)
2020-12-29 05:06:53 +0100drbean(~drbean@TC210-63-209-41.static.apol.com.tw)
2020-12-29 05:07:37 +0100drbean_(~drbean@TC210-63-209-52.static.apol.com.tw) (Ping timeout: 246 seconds)
2020-12-29 05:08:09 +0100 <dsal> ezzieyguywuf: It's post-github, but the alternatives are basically just "github-but-not-github." git used to have some email infrastructure that was kind of neat, but by almost every metric, git was worse than darcs when I started using git from darcs.
2020-12-29 05:08:57 +0100xff0x_(~fox@2001:1a81:532a:2200:39fa:9b50:744f:71fe) (Ping timeout: 260 seconds)
2020-12-29 05:09:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-12-29 05:09:24 +0100xff0x_(~fox@2001:1a81:532a:2200:95e9:9dd9:cd9c:c473)
2020-12-29 05:09:50 +0100 <ezzieyguywuf> in here, the >= 2.11 is redundant right? "QuickCheck >= 2.11 && ^>= 2.14"
2020-12-29 05:11:29 +0100 <dolio> No, I don't think so.
2020-12-29 05:11:31 +0100knupfer(~Thunderbi@87.123.206.165)
2020-12-29 05:11:44 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-12-29 05:12:05 +0100CMCDragonkai2(~Thunderbi@124.19.3.250) (Ping timeout: 240 seconds)
2020-12-29 05:12:37 +0100 <ezzieyguywuf> if it has to be >= 2.14, then it can't really be 2.11 can it?
2020-12-29 05:12:52 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-29 05:14:03 +0100 <dolio> Isn't ^>= like <, but can be relaxed?
2020-12-29 05:14:54 +0100 <ezzieyguywuf> dolio: I think per the documentanio, ^>= 2.14 is like '>=2.14 && <2.15'
2020-12-29 05:15:26 +0100 <ezzieyguywuf> or I completely misunderstood the documentation..
2020-12-29 05:16:21 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-12-29 05:17:32 +0100 <dolio> Yeah, that does seem to be the case.
2020-12-29 05:17:56 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
2020-12-29 05:20:18 +0100kderme(2eb0d7c7@ppp046176215199.access.hol.gr) (Remote host closed the connection)
2020-12-29 05:20:30 +0100 <ezzieyguywuf> dolio: it seems to be the case that I misunderstood?
2020-12-29 05:20:39 +0100 <dolio> Oh, sorry, no. :)
2020-12-29 05:20:57 +0100 <ezzieyguywuf> lol!
2020-12-29 05:21:09 +0100 <dolio> You read correctly, and the >= 2.11 seems redundant.
2020-12-29 05:21:11 +0100 <ezzieyguywuf> no worries, just trying to make sure I understand
2020-12-29 05:21:48 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 05:22:30 +0100christo(~chris@81.96.113.213)
2020-12-29 05:27:04 +0100christo(~chris@81.96.113.213) (Ping timeout: 256 seconds)
2020-12-29 05:29:22 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2020-12-29 05:30:25 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
2020-12-29 05:31:56 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-12-29 05:34:27 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f)
2020-12-29 05:34:55 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection)
2020-12-29 05:35:01 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa)
2020-12-29 05:35:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 05:36:24 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:eccf:ce03:c08a:b7aa) (Remote host closed the connection)
2020-12-29 05:36:44 +0100thunderrd(~thunderrd@183.182.111.131) (Remote host closed the connection)
2020-12-29 05:39:07 +0100matryoshka(~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
2020-12-29 05:40:07 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-29 05:40:57 +0100kupi(uid212005@gateway/web/irccloud.com/x-nyttljrtonzbgexf) (Quit: Connection closed for inactivity)
2020-12-29 05:41:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-29 05:42:21 +0100concept2(~concept2@unaffiliated/tubo) (Quit: Ping timeout (120 seconds))
2020-12-29 05:42:32 +0100TooDifficult(~TooDiffic@139.59.59.230)
2020-12-29 05:42:42 +0100concept2(~concept2@unaffiliated/tubo)
2020-12-29 05:43:22 +0100ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 260 seconds)
2020-12-29 05:43:32 +0100thunderrd(~thunderrd@183.182.111.131)
2020-12-29 05:44:34 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-12-29 05:47:25 +0100ByronJohnson(~bairyn@unaffiliated/bob0)
2020-12-29 05:51:25 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-12-29 05:56:12 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 260 seconds)
2020-12-29 05:56:16 +0100ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 240 seconds)
2020-12-29 05:56:16 +0100Tene(~tene@poipu/supporter/slacker/tene) (Ping timeout: 240 seconds)
2020-12-29 05:56:58 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net)
2020-12-29 05:57:59 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-29 05:58:18 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-12-29 05:58:34 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-qwjibsljgvydusqt) ()
2020-12-29 06:01:10 +0100Tene(~tene@mail.digitalkingdom.org)
2020-12-29 06:01:10 +0100Tene(~tene@mail.digitalkingdom.org) (Changing host)
2020-12-29 06:01:10 +0100Tene(~tene@poipu/supporter/slacker/tene)
2020-12-29 06:01:38 +0100Vulfe(~vulfe@75-28-176-196.lightspeed.evtnil.sbcglobal.net) (Ping timeout: 256 seconds)
2020-12-29 06:02:32 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-29 06:07:21 +0100ByronJohnson(~bairyn@unaffiliated/bob0)
2020-12-29 06:13:28 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c48f:1a20:b814:adb4)
2020-12-29 06:15:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 06:15:56 +0100ByronJohnson(~bairyn@unaffiliated/bob0) (Ping timeout: 240 seconds)
2020-12-29 06:16:45 +0100Tene(~tene@poipu/supporter/slacker/tene) (Ping timeout: 240 seconds)
2020-12-29 06:17:27 +0100coppro(~coppro@185.204.1.185) (Remote host closed the connection)
2020-12-29 06:19:34 +0100thunderrd(~thunderrd@183.182.111.131) (Remote host closed the connection)
2020-12-29 06:19:53 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:8ef:49b9:dcb7:f65d)
2020-12-29 06:24:47 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:8ef:49b9:dcb7:f65d) (Ping timeout: 260 seconds)
2020-12-29 06:27:21 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-12-29 06:27:49 +0100knam(~knam@d172-218-172-104.bchsia.telus.net) (Quit: Konversation terminated!)
2020-12-29 06:29:27 +0100Tene(~tene@mail.digitalkingdom.org)
2020-12-29 06:29:27 +0100Tene(~tene@mail.digitalkingdom.org) (Changing host)
2020-12-29 06:29:27 +0100Tene(~tene@poipu/supporter/slacker/tene)
2020-12-29 06:29:28 +0100ByronJohnson(~bairyn@unaffiliated/bob0)
2020-12-29 06:30:55 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:ac1c:ca8f:6bba:6ac5) (Ping timeout: 272 seconds)
2020-12-29 06:34:11 +0100jedws(~jedws@121.209.189.201)
2020-12-29 06:34:17 +0100jedws(~jedws@121.209.189.201) (Client Quit)
2020-12-29 06:36:11 +0100jedws(~jedws@121.209.189.201)
2020-12-29 06:36:29 +0100thunderrd(~thunderrd@183.182.111.131)
2020-12-29 06:38:17 +0100shutdown_-h_now(~arjan@2001:1c06:2d0b:2312:a87e:8f8c:63a3:698b)
2020-12-29 06:43:04 +0100thunderrd(~thunderrd@183.182.111.131) (Remote host closed the connection)
2020-12-29 06:44:55 +0100thunderrd(~thunderrd@183.182.111.131)
2020-12-29 06:48:59 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-12-29 06:50:02 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-29 06:51:47 +0100thunderrd(~thunderrd@183.182.111.131) (Remote host closed the connection)
2020-12-29 06:53:25 +0100ADG1089__(~aditya@223.235.213.117) (Quit: Konversation terminated!)
2020-12-29 06:53:25 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-29 06:53:41 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-29 06:54:18 +0100Tario(~Tario@201.192.165.173)
2020-12-29 06:57:19 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2020-12-29 06:57:40 +0100jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 06:57:41 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-12-29 07:05:56 +0100ADG1089__(~aditya@223.235.213.117) (Ping timeout: 240 seconds)
2020-12-29 07:06:55 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 265 seconds)
2020-12-29 07:12:38 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds)
2020-12-29 07:15:32 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 260 seconds)
2020-12-29 07:17:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 07:18:33 +0100eacameron(uid256985@gateway/web/irccloud.com/x-oyeaqbkzntopnzns) (Quit: Connection closed for inactivity)
2020-12-29 07:19:36 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2020-12-29 07:22:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-12-29 07:25:27 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-29 07:26:16 +0100Anthaas(~Anthaas@unaffiliated/anthaas) (Ping timeout: 240 seconds)
2020-12-29 07:27:00 +0100Anthaas(~Anthaas@unaffiliated/anthaas)
2020-12-29 07:31:12 +0100cheater(~user@unaffiliated/cheater)
2020-12-29 07:32:46 +0100aljce(617326cd@97-115-38-205.ptld.qwest.net)
2020-12-29 07:34:09 +0100 <aljce> Does anyone know how to coerce newtypes in accelerate? I have newtype Foo = Foo Word16 and I want to write the function fromWord16 :: Exp Word16 -> Exp Foo
2020-12-29 07:35:46 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-29 07:40:35 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-29 07:49:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 07:51:46 +0100knupfer(~Thunderbi@87.123.206.165) (Ping timeout: 246 seconds)
2020-12-29 07:59:35 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-29 08:03:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-29 08:13:07 +0100 <dminuoso> aljce: Maybe this? bitcast :: (Elt a, Elt b, IsScalar (EltR a), IsScalar (EltR b), BitSizeEq (EltR a) (EltR b)) => Exp a -> Exp b
2020-12-29 08:16:05 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-29 08:16:13 +0100 <dminuoso> Since the data constructor of Exp is not exposed, you can't pierce that with a coerce.
2020-12-29 08:16:34 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-29 08:17:17 +0100 <dminuoso> So just provide an `instance Elt Foo` and it should suffice
2020-12-29 08:17:42 +0100 <dminuoso> (If you use generalized newtype deriving, then it should be a no brainer)
2020-12-29 08:23:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-29 08:25:23 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:d44b:5996:fadb:8476)
2020-12-29 08:25:52 +0100Franciman(~francesco@host-95-250-152-231.retail.telecomitalia.it)
2020-12-29 08:27:08 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-29 08:27:18 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-29 08:29:51 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-29 08:30:12 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:d44b:5996:fadb:8476) (Ping timeout: 260 seconds)
2020-12-29 08:30:53 +0100sfvm(~sfvm@37.228.215.77) (Remote host closed the connection)
2020-12-29 08:31:36 +0100ransom(~c4264035@2a09:bac0:72::82f:c34)
2020-12-29 08:32:22 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c8e8:1946:fcf7:4676)
2020-12-29 08:32:27 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
2020-12-29 08:32:51 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-29 08:36:44 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-12-29 08:37:12 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:c8e8:1946:fcf7:4676) (Ping timeout: 260 seconds)
2020-12-29 08:37:39 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2020-12-29 08:38:57 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-12-29 08:39:12 +0100ransom(~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 260 seconds)
2020-12-29 08:49:13 +0100ADG1089__(~aditya@171.76.164.4)
2020-12-29 08:50:25 +0100ADG1089__(~aditya@171.76.164.4) (Remote host closed the connection)
2020-12-29 08:52:43 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Quit: Lost terminal)
2020-12-29 08:52:57 +0100darjeeling_(~darjeelin@122.245.217.190) (Ping timeout: 260 seconds)
2020-12-29 08:56:54 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-12-29 08:57:05 +0100ericsagnes(~ericsagne@2405:6580:0:5100:7c82:3285:3449:9fb4)
2020-12-29 08:57:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 09:04:53 +0100loller_(uid358106@gateway/web/irccloud.com/x-aepjfnaneozrdleq) (Quit: Connection closed for inactivity)
2020-12-29 09:05:00 +0100ransom(~c4264035@8.47.12.52)
2020-12-29 09:05:35 +0100bitmagie(~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de)
2020-12-29 09:06:54 +0100thunderrd(~thunderrd@183.182.111.131)
2020-12-29 09:07:12 +0100bitmagie(~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) (Client Quit)
2020-12-29 09:07:40 +0100darjeeling_(~darjeelin@122.245.217.190)
2020-12-29 09:09:22 +0100ransom(~c4264035@8.47.12.52) (Ping timeout: 256 seconds)
2020-12-29 09:13:48 +0100niko(~niko@freenode/staff/ubuntu.member.niko)
2020-12-29 09:14:35 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-12-29 09:14:58 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c48f:1a20:b814:adb4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 09:16:12 +0100jedws(~jedws@121.209.189.201)
2020-12-29 09:17:58 +0100sgibber2018(~arch-gibb@2600:6c55:6d80:3243:c2cb:38ff:fe8d:b46f) (Quit: WeeChat 3.0)
2020-12-29 09:23:10 +0100jamm(~jamm@unaffiliated/jamm)
2020-12-29 09:24:29 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:8076:48dd:339c:ba44)
2020-12-29 09:26:50 +0100guestghc(3dded63f@61-222-214-63.HINET-IP.hinet.net)
2020-12-29 09:26:59 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection)
2020-12-29 09:29:26 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:8076:48dd:339c:ba44) (Ping timeout: 264 seconds)
2020-12-29 09:32:21 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-12-29 09:37:33 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 256 seconds)
2020-12-29 09:39:14 +0100cheater(~user@unaffiliated/cheater)
2020-12-29 09:41:53 +0100ransom(~c4264035@8.47.12.52)
2020-12-29 09:42:18 +0100sunfreakz-(~sunfreakz@51.194.80.91) (Ping timeout: 272 seconds)
2020-12-29 09:43:51 +0100toast52(97c0a219@151.192.162.25)
2020-12-29 09:44:13 +0100jedws(~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 09:45:17 +0100jedws(~jedws@121.209.189.201)
2020-12-29 09:45:56 +0100knupfer(~Thunderbi@200116b82c7e8f00d8220a72dd894f13.dip.versatel-1u1.de)
2020-12-29 09:46:25 +0100ransom(~c4264035@8.47.12.52) (Ping timeout: 240 seconds)
2020-12-29 09:47:53 +0100 <dminuoso> Question, I have a higher kinded datatype D parametrized over a tyfam that appears in the fields. Ideally, I want haddock documentation for one particular choice of a tyfam.
2020-12-29 09:48:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-29 09:49:31 +0100 <dminuoso> So say, I have `data D f = D { a1 :: f ...; a2 :: f ...; }`, and I want to have haddock documentation for `D F` (since F is a canonical choice), such that users know clearly what types each field resolve to
2020-12-29 09:49:36 +0100jedws(~jedws@121.209.189.201) (Ping timeout: 240 seconds)
2020-12-29 09:51:00 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-12-29 09:53:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-12-29 09:57:32 +0100sunfreakz(~sunfreakz@51.194.80.91)
2020-12-29 09:57:49 +0100drbean(~drbean@TC210-63-209-41.static.apol.com.tw) (Ping timeout: 264 seconds)
2020-12-29 10:00:07 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2020-12-29 10:01:36 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:110c:c1b9:2826:d6c3)
2020-12-29 10:03:32 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-29 10:04:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-12-29 10:06:22 +0100jle`(~mstksg@unaffiliated/mstksg) (Ping timeout: 272 seconds)
2020-12-29 10:06:27 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:110c:c1b9:2826:d6c3) (Ping timeout: 260 seconds)
2020-12-29 10:08:20 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net)
2020-12-29 10:09:26 +0100rdivyanshu(uid322626@gateway/web/irccloud.com/x-qgjtzfvygbpsyzjy) (Quit: Connection closed for inactivity)
2020-12-29 10:10:40 +0100pera(~pera@unaffiliated/pera)
2020-12-29 10:13:31 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-pwweyillfwqhggwn) (Quit: Connection closed for inactivity)
2020-12-29 10:13:40 +0100michalz(~user@185.246.204.81)
2020-12-29 10:14:38 +0100 <Kronic> What is a decent logging framework? Seems like there are a lot of options out there...
2020-12-29 10:18:02 +0100 <dminuoso> Kronic: Depends a bit on what you need exactly. There's roughly two different dimensions.
2020-12-29 10:18:41 +0100 <dminuoso> There's two very similar frameworks that let you parametrize your monad stack over an arbitrary logger with general utilities. monad-logger and katip belong into this.
2020-12-29 10:19:28 +0100 <dminuoso> And then there's frameworks that rather implement a particular way of writing logs, like fast-logger.
2020-12-29 10:19:53 +0100jle`(~mstksg@unaffiliated/mstksg)
2020-12-29 10:19:58 +0100pavonia(~user@unaffiliated/siracusa)
2020-12-29 10:20:07 +0100 <dminuoso> They complement each other, for instance monad-logger comes out of the box with some very simplistic fast-logger adapters
2020-12-29 10:20:09 +0100Mikagami(~MOSCOS@122.54.107.175) (Remote host closed the connection)
2020-12-29 10:20:13 +0100ransom(~c4264035@2a09:bac0:72::82f:c34)
2020-12-29 10:20:45 +0100Mikagami(~MOSCOS@122.54.107.175)
2020-12-29 10:20:49 +0100 <Kronic> What would your recommendation be for a newbie working on their first project?
2020-12-29 10:23:23 +0100erisco(~erisco@104-195-141-253.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-12-29 10:23:31 +0100bitmagie(~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de)
2020-12-29 10:24:07 +0100 <dminuoso> Personally Im fond of monad-logger since it's really simplistic, and with the various run* utilities it fits most simplistic use-cases well eonugh
2020-12-29 10:24:20 +0100 <dminuoso> And it separates the "where/what do I want logged" from "how is the logging carried out" well
2020-12-29 10:25:59 +0100StoneToad(~StoneToad@104-192-232-50.ppp.storm.ca) (Ping timeout: 260 seconds)
2020-12-29 10:26:27 +0100 <Kronic> That sounds good to me, I was trying out something called co-log and I was getting wrapped up over myself trying to figure it out
2020-12-29 10:27:07 +0100ransom(~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 268 seconds)
2020-12-29 10:27:07 +0100StoneToad(~StoneToad@104-192-232-50.ppp.storm.ca)
2020-12-29 10:27:21 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 10:27:45 +0100 <dminuoso> There's also hslogger which is a very simplistic low-dependency logging solution.
2020-12-29 10:28:10 +0100 <kritzefitz> dminuoso, The specialization of haddock documentation for specific tyfam instances sounds really useful. If you find something, please let me know.
2020-12-29 10:28:37 +0100 <dminuoso> If you're not comfortable with either mtl-style/transformers, Id say hslogger is much easier to use.
2020-12-29 10:31:50 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 264 seconds)
2020-12-29 10:33:19 +0100christo(~chris@81.96.113.213)
2020-12-29 10:35:57 +0100guestghc(3dded63f@61-222-214-63.HINET-IP.hinet.net) (Remote host closed the connection)
2020-12-29 10:37:05 +0100argento(~argent0@168.227.96.51)
2020-12-29 10:37:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 10:38:08 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 265 seconds)
2020-12-29 10:41:02 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-12-29 10:42:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-29 10:46:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:110c:c1b9:2826:d6c3)
2020-12-29 10:47:50 +0100__monty__(~toonn@unaffiliated/toonn)
2020-12-29 10:51:38 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:110c:c1b9:2826:d6c3) (Ping timeout: 264 seconds)
2020-12-29 10:53:01 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2020-12-29 10:54:12 +0100 <Kronic> So, a question arising from my use of the monad-logger lib - I have a monad stack that is predefined by a library I'm using, how exactly do I "add" a monad to the stack so that I can log something out ?
2020-12-29 10:55:27 +0100 <dminuoso> Kronic: Mmm, that might not be possible then. Which library are you using?
2020-12-29 10:56:04 +0100 <Kronic> So, I'm using discord-haskell, the particular monad-stack that I have on hand is ReaderT DiscordHandle IO () -- I was looking at monad-logger and seen there is an instance for ReaderT
2020-12-29 10:56:21 +0100 <Kronic> It's just a little hard to discern what I am meant to do to get this right is all
2020-12-29 10:56:35 +0100pera(~pera@unaffiliated/pera)
2020-12-29 10:57:09 +0100 <dminuoso> Can you point me out in the haddock for discord-haskell where that monad is used?
2020-12-29 10:57:12 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 260 seconds)
2020-12-29 10:57:26 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2020-12-29 10:57:56 +0100 <dminuoso> Oh, nevermind I found it.
2020-12-29 10:58:16 +0100Guest26328(sid30093@gateway/web/irccloud.com/x-kgjzhrkziqnooytj) (Changing host)
2020-12-29 10:58:16 +0100Guest26328(sid30093@musicbrainz/user/ocharles)
2020-12-29 10:58:26 +0100Guest26328ocharles
2020-12-29 10:58:39 +0100 <dminuoso> Yeah, that doesnt seem to work out of the box. With this little you could just provide your own wrappers. But I guess it requires a bit of competency here.
2020-12-29 10:58:59 +0100 <dminuoso> Perhaps hslogger is a better fit for you then, that certainly will work (you just need to use `liftIO` every time you want to log)
2020-12-29 10:59:06 +0100 <dminuoso> With no extra effort
2020-12-29 10:59:58 +0100 <Kronic> Well, this project I'm writing is purely for my own education on my own accord, so... not sure, what would you recommend, is it worth learning why this won't work right now or is there something more basal I can look at to understand what is going on and how you came to this conclusion?
2020-12-29 11:03:44 +0100 <dminuoso> Kronic: So if you wanted to use any of the primitives here, like `sendCommand :: GatewaySendable -> DiscordHandler () ` they are pinned directly to `ReaderT DiscordHandle IO`. If the library written like `sendCommand :: (MonadReader DiscordHandler m, MonadIO m) => GatewaySendable -> m ()` you could have picked your own monad stack
2020-12-29 11:03:58 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 11:04:39 +0100christo(~chris@81.96.113.213)
2020-12-29 11:05:19 +0100 <dminuoso> Furthermore, if you look at the definition of `runDiscord` you'll see there is a lot more going on than just unwrapping this ReaderT, so you can't just provide very naive wrappers around all these functions like sendCommand - you'd have to reimplement `runDiscord` for your custom monad stack, but the implementation needs access to stuff that seems not exporter./
2020-12-29 11:06:09 +0100 <dminuoso> Kronic: Question, do you need to log in the middle of discord interaction, or is it fine to log around it?
2020-12-29 11:06:24 +0100 <Kronic> Logging around it would be acceptable in my mind, I guess
2020-12-29 11:06:55 +0100 <dminuoso> Then you have the option of just running this locally everywhere
2020-12-29 11:08:19 +0100 <kritzefitz> dminuoso, shouldn't it be possible to run the LoggingT on top of the existing transformer stack?
2020-12-29 11:08:55 +0100 <kritzefitz> (and do a lot of `lift`ing` for all non-logging operations)
2020-12-29 11:08:56 +0100christo(~chris@81.96.113.213) (Ping timeout: 256 seconds)
2020-12-29 11:08:58 +0100 <dminuoso> kritzefitz: Ah, I guess there is *one* way, that works nicely with monad-logger
2020-12-29 11:09:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 11:09:13 +0100 <dminuoso> Let me roughly show you how
2020-12-29 11:09:25 +0100 <dminuoso> (It only works if your monad stack has MonadUnliftIO)
2020-12-29 11:10:17 +0100christo(~chris@81.96.113.213)
2020-12-29 11:10:26 +0100 <dminuoso> kritzefitz: and just lifting is not enough, you need to be able to unlift too
2020-12-29 11:10:35 +0100 <dminuoso> and closures
2020-12-29 11:11:08 +0100bitmagie(~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-29 11:11:17 +0100 <dminuoso> Kronic: You know what, for this, just use hslogger. :p
2020-12-29 11:12:27 +0100 <Kronic> I'll take a loook
2020-12-29 11:13:51 +0100MOSCOS(~MOSCOS@152.32.70.55)
2020-12-29 11:16:38 +0100toast52(97c0a219@151.192.162.25) (Remote host closed the connection)
2020-12-29 11:16:45 +0100Mikagami(~MOSCOS@122.54.107.175) (Ping timeout: 240 seconds)
2020-12-29 11:17:07 +0100Mikagami(~MOSCOS@122.54.107.175)
2020-12-29 11:18:04 +0100ransom(~c4264035@8.47.12.52)
2020-12-29 11:18:45 +0100MOSCOS(~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds)
2020-12-29 11:19:50 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-12-29 11:21:11 +0100acidjnk_new(~acidjnk@p200300d0c704e72638e4a99bdd618e88.dip0.t-ipconnect.de)
2020-12-29 11:23:16 +0100 <Squarism> If your class has a data-declaration, can you somehow impose constraint on it?
2020-12-29 11:23:38 +0100ransom(~c4264035@8.47.12.52) (Ping timeout: 272 seconds)
2020-12-29 11:23:38 +0100bitmagie(~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de)
2020-12-29 11:23:54 +0100 <Squarism> as in what instances it requires ?
2020-12-29 11:24:28 +0100bitmagie(~Thunderbi@200116b8064af400cdd108708eb3d2c6.dip.versatel-1u1.de) (Client Quit)
2020-12-29 11:24:39 +0100 <kritzefitz> Squarism, I think you mean `instance (Baz (Bar a)) => Foo a where data Bar a` where Foo is your class, Bar is your data and Baz is your required constraint-
2020-12-29 11:24:41 +0100 <__monty__> Squarism: Are you sure that gets you what you want? Constraints on data types rarely are.
2020-12-29 11:26:17 +0100 <Squarism> kritzefitz, i tried that but it seems GHC doesnt seem to dig it. Or maybe i need to read what it actually says.
2020-12-29 11:26:19 +0100 <Kronic> hslogger was fairly easy to get going with, thank you for your time dminuoso
2020-12-29 11:26:30 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-12-29 11:26:51 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 256 seconds)
2020-12-29 11:27:37 +0100 <kritzefitz> Squarism, At leats I have seen it used in Reflex.Class where `Reflex t` requires `Functor (Dynamic t)` using this method.
2020-12-29 11:28:49 +0100son0p(~son0p@181.58.39.182)
2020-12-29 11:28:55 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 11:31:57 +0100coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-29 11:32:01 +0100 <Squarism> So i have : class Eq (Baz a) => Foo a where ; data Baz a
2020-12-29 11:33:22 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
2020-12-29 11:33:28 +0100 <Squarism> Then trying to create a record that contains "Baz a" and derives Eq, ghc says no instance Eq (Baz a)
2020-12-29 11:33:38 +0100p-core(~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Remote host closed the connection)
2020-12-29 11:35:56 +0100 <kritzefitz> Squarism, I think that's because mentioning `Baz a` doesn't imply `Foo a`, so `Eq (Baz a)` isn't given as well. Maybe you can try a standalone `deriving instance Foo a => Eq (YourRecord a)`?
2020-12-29 11:36:49 +0100 <Squarism> ill experiment for a bit
2020-12-29 11:39:23 +0100 <kritzefitz> Squarism, https://gitlab.com/-/snippets/2055078
2020-12-29 11:39:28 +0100ransom(~c4264035@2a09:bac0:72::82f:c34)
2020-12-29 11:39:58 +0100 <Squarism> kritzefitz, thanks!
2020-12-29 11:40:37 +0100sphalerite(~sphalerit@NixOS/user/lheckemann)
2020-12-29 11:43:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-29 11:43:54 +0100ransom(~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 258 seconds)
2020-12-29 11:46:33 +0100dhil(~dhil@78.156.97.38)
2020-12-29 11:47:14 +0100dminuoso(~dminuoso@unaffiliated/dminuoso) (Ping timeout: 256 seconds)
2020-12-29 11:48:49 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-12-29 11:50:57 +0100jollygood2(~bc815220@217.29.117.252)
2020-12-29 11:51:21 +0100 <kritzefitz> Squarism, I think this is because you could defined `fakeBar :: Bar (IO a); fakeBar = undefined`, where the mere existence of a value with type `Bar b` doesn't imply `Eq (Bar b)`.
2020-12-29 11:53:00 +0100m0rphism(~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
2020-12-29 11:53:49 +0100puffnfresh(~puffnfres@119-17-138-164.77118a.mel.static.aussiebb.net)
2020-12-29 11:55:32 +0100Kronic(~Kronic___@84.203.96.46) (Quit: Leaving)
2020-12-29 11:58:31 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-29 11:58:52 +0100dminuoso(~dminuoso@unaffiliated/dminuoso)
2020-12-29 12:00:05 +0100mozzarella(~sam@unaffiliated/sam113101) (Ping timeout: 240 seconds)
2020-12-29 12:01:06 +0100fendor(~fendor@77.119.131.12.wireless.dyn.drei.com)
2020-12-29 12:03:25 +0100haritz(~hrtz@unaffiliated/haritz) (Ping timeout: 246 seconds)
2020-12-29 12:05:11 +0100haritz(~hrtz@62.3.70.206)
2020-12-29 12:05:11 +0100haritz(~hrtz@62.3.70.206) (Changing host)
2020-12-29 12:05:11 +0100haritz(~hrtz@unaffiliated/haritz)
2020-12-29 12:05:13 +0100delYsid(~user@84-115-55-45.cable.dynamic.surfer.at)
2020-12-29 12:05:45 +0100aidecoe(~aidecoe@unaffiliated/aidecoe) (Remote host closed the connection)
2020-12-29 12:06:16 +0100 <delYsid> Isn't the order of definitions supposed to be irrelevant in Haskell? I needed to move a type synonym up a few lines recently, is this a bug or am I remembering things badly?
2020-12-29 12:09:23 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-12-29 12:09:27 +0100 <lortabac> delYsid: it is relevant if you use TemplateHaskell
2020-12-29 12:12:09 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-29 12:13:01 +0100jamm(~jamm@unaffiliated/jamm)
2020-12-29 12:13:18 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-29 12:13:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 12:14:26 +0100danza(~francesco@151.53.79.89)
2020-12-29 12:14:40 +0100Stanley00(~stanley00@unaffiliated/stanley00) ()
2020-12-29 12:17:00 +0100ClaudiusMaximus(~claude@196.67.6.51.dyn.plus.net)
2020-12-29 12:17:00 +0100ClaudiusMaximus(~claude@196.67.6.51.dyn.plus.net) (Changing host)
2020-12-29 12:17:00 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-12-29 12:19:17 +0100 <delYsid> lortabac: Ah, I see. Thanks!
2020-12-29 12:19:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-12-29 12:22:04 +0100archena(~user@2a02:c7f:a6aa:1800:7fbf:c53e:4f8e:494d)
2020-12-29 12:22:21 +0100plam4u(~plam4u@131.red-83-38-238.dynamicip.rima-tde.net)
2020-12-29 12:22:58 +0100berberman_(~berberman@unaffiliated/berberman)
2020-12-29 12:24:17 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds)
2020-12-29 12:24:18 +0100berberman_(~berberman@unaffiliated/berberman) (Max SendQ exceeded)
2020-12-29 12:24:47 +0100berberman(~berberman@unaffiliated/berberman)
2020-12-29 12:26:52 +0100 <dminuoso> delYsid: Mind my asking, which editor do you use?
2020-12-29 12:27:37 +0100pera(~pera@unaffiliated/pera)
2020-12-29 12:29:21 +0100fendor(~fendor@77.119.131.12.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-29 12:29:21 +0100ransom(~c4264035@8.47.12.52)
2020-12-29 12:30:19 +0100argento(~argent0@168.227.96.51) (Ping timeout: 256 seconds)
2020-12-29 12:33:00 +0100boothead(25192c87@37.25.44.135) (Remote host closed the connection)
2020-12-29 12:34:30 +0100ransom(~c4264035@8.47.12.52) (Ping timeout: 256 seconds)
2020-12-29 12:34:31 +0100cp-(~cp-@b157153.ppp.asahi-net.or.jp) (Quit: Disappeared in a puff of smoke)
2020-12-29 12:34:55 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-29 12:42:23 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds)
2020-12-29 12:43:26 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2020-12-29 12:45:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 12:48:17 +0100ransom(~c4264035@8.47.12.52)
2020-12-29 12:52:36 +0100ransom(~c4264035@8.47.12.52) (Ping timeout: 240 seconds)
2020-12-29 12:55:40 +0100b5er(~b5er_@91.193.4.202)
2020-12-29 12:57:14 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-12-29 13:00:25 +0100ADG1089__(~aditya@223.235.213.117) (Quit: Konversation terminated!)
2020-12-29 13:01:41 +0100tzlil(~tzlil@unaffiliated/tzlil) (Ping timeout: 272 seconds)
2020-12-29 13:02:34 +0100 <delYsid> dminuoso: Emacs, mostly.
2020-12-29 13:03:35 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:5d8:4076:d5fd:ffd0)
2020-12-29 13:04:02 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 13:04:09 +0100GZJ0X_(~gzj@unaffiliated/gzj)
2020-12-29 13:06:14 +0100argento(~argent0@168.227.96.51)
2020-12-29 13:07:17 +0100GZJ0X_(~gzj@unaffiliated/gzj) (Client Quit)
2020-12-29 13:07:37 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:312b:ad1d:8657:d010)
2020-12-29 13:08:27 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:5d8:4076:d5fd:ffd0) (Ping timeout: 260 seconds)
2020-12-29 13:11:00 +0100berberman_(~berberman@unaffiliated/berberman)
2020-12-29 13:11:22 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-12-29 13:11:36 +0100bitmagie(~Thunderbi@200116b8064af4000d02ad855163b034.dip.versatel-1u1.de)
2020-12-29 13:12:05 +0100 <delYsid> I wish (&) (and (~>)) were in base, they're too neat to not have.
2020-12-29 13:12:32 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:312b:ad1d:8657:d010) (Ping timeout: 260 seconds)
2020-12-29 13:13:06 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc9a:47f4:f68e:a6dd)
2020-12-29 13:13:58 +0100 <tomsmeding> ( (&) is in base, just not in Prelude ;) )
2020-12-29 13:15:59 +0100Entertainment(~entertain@104.246.132.210)
2020-12-29 13:17:05 +0100drbean(~drbean@TC210-63-209-162.static.apol.com.tw)
2020-12-29 13:18:02 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:cc9a:47f4:f68e:a6dd) (Ping timeout: 264 seconds)
2020-12-29 13:19:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-12-29 13:20:35 +0100madjestic(~madjestic@86-88-72-244.fixed.kpn.net)
2020-12-29 13:21:57 +0100ransom(~c4264035@8.47.12.52)
2020-12-29 13:22:18 +0100ph88^(~ph88@2a02:8109:9e00:7e5c:41c2:9b01:cf42:baca)
2020-12-29 13:22:35 +0100archena(~user@2a02:c7f:a6aa:1800:7fbf:c53e:4f8e:494d) (Ping timeout: 272 seconds)
2020-12-29 13:24:55 +0100fendor(~fendor@77.119.131.12.wireless.dyn.drei.com)
2020-12-29 13:25:58 +0100ggole(~ggole@2001:8003:8119:7200:fc49:98ab:ef5a:2f0f)
2020-12-29 13:26:13 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:f45d:3271:263a:193e) (Ping timeout: 260 seconds)
2020-12-29 13:27:56 +0100ransom(~c4264035@8.47.12.52) (Ping timeout: 240 seconds)
2020-12-29 13:30:07 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 13:31:26 +0100nfd9001(~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net)
2020-12-29 13:34:44 +0100nfd(~nfd9001@c-67-183-38-33.hsd1.wa.comcast.net) (Ping timeout: 272 seconds)
2020-12-29 13:35:17 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
2020-12-29 13:36:15 +0100Alleria_(~AllahuAkb@69.202.254.168) (Quit: Textual IRC Client: www.textualapp.com)
2020-12-29 13:40:25 +0100Kalernor(2df18079@45.241.128.121)
2020-12-29 13:41:39 +0100Kalernor(2df18079@45.241.128.121) (Remote host closed the connection)
2020-12-29 13:43:00 +0100geekosaur(ac3a3b06@172.58.59.6)
2020-12-29 13:43:05 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-29 13:43:26 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 13:45:13 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) (Quit: See You Space Cowboy..)
2020-12-29 13:45:26 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:aa95:463a:bcd8:60e4)
2020-12-29 13:47:08 +0100 <delYsid> tomsmeding: oh
2020-12-29 13:49:50 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:aa95:463a:bcd8:60e4) (Client Quit)
2020-12-29 13:50:02 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:aa95:463a:bcd8:60e4)
2020-12-29 13:50:37 +0100Alex84(923c59d2@dslb-146-060-089-210.146.060.pools.vodafone-ip.de)
2020-12-29 13:50:44 +0100 <xsperry> :t (~>)
2020-12-29 13:50:46 +0100 <lambdabot> error:
2020-12-29 13:50:46 +0100 <lambdabot> • Variable not in scope: ~>
2020-12-29 13:50:46 +0100 <lambdabot> • Perhaps you meant one of these:
2020-12-29 13:50:54 +0100 <xsperry> @hoogle ~>
2020-12-29 13:50:54 +0100 <lambdabot> Pipes (~>) :: Functor m => (a -> Proxy x' x b' b m a') -> (b -> Proxy x' x c' c m b') -> a -> Proxy x' x c' c m a'
2020-12-29 13:50:55 +0100 <lambdabot> Data.Singletons type a ~> b = TyFun a b -> Type
2020-12-29 13:50:55 +0100 <lambdabot> Development.Shake (~>) :: Located => String -> Action () -> Rules ()
2020-12-29 13:51:52 +0100jneira(5127adb4@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.173.180)
2020-12-29 13:54:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 13:57:13 +0100Alleria_(~AllahuAkb@2603-7000-3040-0000-a876-e3dc-1017-f48b.res6.spectrum.com)
2020-12-29 14:00:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-12-29 14:00:22 +0100madjestic(~madjestic@86-88-72-244.fixed.kpn.net) (Remote host closed the connection)
2020-12-29 14:00:22 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2020-12-29 14:04:04 +0100plutoniix(~q@184.82.194.56) (Quit: Leaving)
2020-12-29 14:13:42 +0100nyd(~nyd@unaffiliated/elysian)
2020-12-29 14:17:44 +0100nek0(~nek0@mail.nek0.eu) (Remote host closed the connection)
2020-12-29 14:17:49 +0100carthia(~carthia@gateway/tor-sasl/carthia)
2020-12-29 14:18:01 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-29 14:18:20 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 14:22:20 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:f414:9b65:b890:9d87) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 14:24:19 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2020-12-29 14:25:08 +0100solonarv(~solonarv@astrasbourg-653-1-157-135.w90-6.abo.wanadoo.fr)
2020-12-29 14:27:23 +0100carthia_mr(~carthia@gateway/tor-sasl/carthia)
2020-12-29 14:27:47 +0100haritz(~hrtz@unaffiliated/haritz) (Read error: Connection timed out)
2020-12-29 14:27:54 +0100haritz(~hrtz@62.3.70.206)
2020-12-29 14:27:54 +0100haritz(~hrtz@62.3.70.206) (Changing host)
2020-12-29 14:27:54 +0100haritz(~hrtz@unaffiliated/haritz)
2020-12-29 14:30:03 +0100carthia(~carthia@gateway/tor-sasl/carthia) (Ping timeout: 240 seconds)
2020-12-29 14:30:58 +0100unlink2(~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-12-29 14:32:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 14:33:39 +0100coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-29 14:35:33 +0100Gorbel(~Gorbel@p5790e186.dip0.t-ipconnect.de)
2020-12-29 14:35:48 +0100bitmagie(~Thunderbi@200116b8064af4000d02ad855163b034.dip.versatel-1u1.de) (Remote host closed the connection)
2020-12-29 14:36:36 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-unmksdzihnsijttq)
2020-12-29 14:36:42 +0100 <delYsid> xsperry: type a ~> b = forall x. a x -> b x
2020-12-29 14:38:00 +0100Melanie(~Melanie@192-0-134-138.cpe.teksavvy.com)
2020-12-29 14:38:40 +0100delYsid(~user@84-115-55-45.cable.dynamic.surfer.at) (Quit: ERC (IRC client for Emacs 27.1.50))
2020-12-29 14:39:08 +0100knupfer(~Thunderbi@200116b82c7e8f00d8220a72dd894f13.dip.versatel-1u1.de) (Quit: knupfer)
2020-12-29 14:39:58 +0100unlink2(~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de)
2020-12-29 14:40:00 +0100knupfer(~Thunderbi@200116b82c7e8f00f9b60c4a663b1e20.dip.versatel-1u1.de)
2020-12-29 14:40:03 +0100knupfer(~Thunderbi@200116b82c7e8f00f9b60c4a663b1e20.dip.versatel-1u1.de) (Client Quit)
2020-12-29 14:40:36 +0100knupfer(~Thunderbi@200116b82c7e8f00bcf25ba387c5fed6.dip.versatel-1u1.de)
2020-12-29 14:40:54 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-29 14:42:55 +0100polman(~tema@217.118.92.215)
2020-12-29 14:44:25 +0100jamm(~jamm@unaffiliated/jamm)
2020-12-29 14:44:56 +0100knupfer(~Thunderbi@200116b82c7e8f00bcf25ba387c5fed6.dip.versatel-1u1.de) (Client Quit)
2020-12-29 14:45:13 +0100knupfer(~Thunderbi@200116b82c7e8f00b1e89f88fb97f1fb.dip.versatel-1u1.de)
2020-12-29 14:45:16 +0100qwerty(~tema@217.118.92.215) (Ping timeout: 240 seconds)
2020-12-29 14:47:27 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:f414:9b65:b890:9d87)
2020-12-29 14:49:14 +0100jamm(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2020-12-29 14:50:01 +0100drbean(~drbean@TC210-63-209-162.static.apol.com.tw) (Ping timeout: 264 seconds)
2020-12-29 14:50:43 +0100qwerty(~tema@217.118.92.215)
2020-12-29 14:53:36 +0100polman(~tema@217.118.92.215) (Ping timeout: 240 seconds)
2020-12-29 14:57:51 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a54e:b06e:1927:13af)
2020-12-29 14:58:10 +0100son0p(~son0p@181.136.122.143)
2020-12-29 14:58:14 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:f414:9b65:b890:9d87) (Ping timeout: 264 seconds)
2020-12-29 15:00:17 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal)
2020-12-29 15:00:35 +0100ADG1089__(~aditya@223.235.213.117)
2020-12-29 15:00:48 +0100mozzarella(~sam@unaffiliated/sam113101)
2020-12-29 15:01:57 +0100stef204(~stef204@unaffiliated/stef-204/x-384198)
2020-12-29 15:02:12 +0100Melanie(~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 260 seconds)
2020-12-29 15:02:26 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:a54e:b06e:1927:13af) (Ping timeout: 264 seconds)
2020-12-29 15:02:28 +0100sic_mundus7(~dark@2401:4900:36bb:7915:7cba:c855:29cc:a26b)
2020-12-29 15:04:41 +0100unlink2(~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-12-29 15:06:02 +0100unlink2(~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de)
2020-12-29 15:07:21 +0100sic_mundus7(~dark@2401:4900:36bb:7915:7cba:c855:29cc:a26b) ()
2020-12-29 15:09:07 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-29 15:09:28 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 15:13:13 +0100urodna(~urodna@unaffiliated/urodna)
2020-12-29 15:14:09 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-29 15:14:30 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 15:15:13 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-29 15:15:14 +0100jmchael(~jmchael@81.174.205.210)
2020-12-29 15:15:35 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 15:18:07 +0100gzj(~gzj@unaffiliated/gzj) (Remote host closed the connection)
2020-12-29 15:18:28 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 15:18:48 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:ac06:2bf9:3ff5:c290)
2020-12-29 15:19:10 +0100gzj(~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
2020-12-29 15:19:32 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 15:19:48 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe)
2020-12-29 15:21:46 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr)
2020-12-29 15:22:45 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-12-29 15:23:12 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:ac06:2bf9:3ff5:c290) (Ping timeout: 260 seconds)
2020-12-29 15:24:22 +0100Vulfe_(~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Ping timeout: 260 seconds)
2020-12-29 15:26:32 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f)
2020-12-29 15:27:45 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 240 seconds)
2020-12-29 15:29:24 +0100son0p(~son0p@181.136.122.143)
2020-12-29 15:29:31 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-12-29 15:30:09 +0100 <johnnyboy[m]> is it possible to match tabs with regex-tdfa?
2020-12-29 15:30:33 +0100 <johnnyboy[m]> `\t` and `[:space:]` don't seem to work
2020-12-29 15:30:58 +0100gzj(~gzj@unaffiliated/gzj) (Ping timeout: 246 seconds)
2020-12-29 15:31:23 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 15:32:46 +0100orcus(~orcus@unaffiliated/orcus) (Quit: ZNC 1.7.5 - https://znc.in)
2020-12-29 15:33:37 +0100 <johnnyboy[m]> of course, I can preprosess my data by replacing tabs with spaces
2020-12-29 15:33:56 +0100Tario(~Tario@201.192.165.173)
2020-12-29 15:34:17 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) (Ping timeout: 260 seconds)
2020-12-29 15:34:17 +0100orcus(~orcus@unaffiliated/orcus)
2020-12-29 15:34:53 +0100jamm(~jamm@unaffiliated/jamm)
2020-12-29 15:35:37 +0100ransom(~c4264035@2a09:bac0:72::82f:c34)
2020-12-29 15:36:34 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 246 seconds)
2020-12-29 15:36:36 +0100TooDifficult(~TooDiffic@139.59.59.230) (Ping timeout: 240 seconds)
2020-12-29 15:36:37 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
2020-12-29 15:37:53 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-29 15:38:15 +0100 <pjb> johnnyboy[m]: that's the best thing to do. Remember, programmers who use spaces are paid more than those who use tabs.
2020-12-29 15:38:30 +0100son0p(~son0p@181.136.122.143)
2020-12-29 15:39:59 +0100 <geekosaur> I'm a little surprised \t doesn't work. Possibly it needs to be \\t but it still seems somewhat weird that a literal tab wouldn't match
2020-12-29 15:40:34 +0100Varis(~Tadas@unaffiliated/varis)
2020-12-29 15:40:42 +0100ransom(~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 260 seconds)
2020-12-29 15:41:00 +0100orcus(~orcus@unaffiliated/orcus) (Quit: ZNC 1.8.1 - https://znc.in)
2020-12-29 15:41:42 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-12-29 15:42:46 +0100orcus(~orcus@unaffiliated/orcus)
2020-12-29 15:44:41 +0100 <johnnyboy[m]> `\\t` does't seem to work either
2020-12-29 15:44:42 +0100unlink2(~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2020-12-29 15:44:53 +0100 <johnnyboy[m]> or maybe I have something wrong elsewhere again
2020-12-29 15:44:57 +0100 <johnnyboy[m]> woudln't be the first time
2020-12-29 15:46:10 +0100unlink2(~unlink2@p5dc0acf8.dip0.t-ipconnect.de)
2020-12-29 15:47:21 +0100carthia_mr(~carthia@gateway/tor-sasl/carthia) (Quit: carthia_mr)
2020-12-29 15:48:18 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 256 seconds)
2020-12-29 15:48:36 +0100geekosaur(ac3a3b06@172.58.59.6) (Remote host closed the connection)
2020-12-29 15:49:24 +0100Matt_P(~Matt_P@217.146.82.202)
2020-12-29 15:49:32 +0100Sgeo(~Sgeo@ool-18b98aa4.dyn.optonline.net)
2020-12-29 15:49:47 +0100 <johnnyboy[m]> actually, `\\t` does seem to work
2020-12-29 15:50:37 +0100 <__monty__> Weird that you need the extra escape.
2020-12-29 15:51:15 +0100 <merijn> __monty__: Not really
2020-12-29 15:51:46 +0100 <merijn> __monty__: If the string is fed to a regex library that wants \t, as opposed to an actual tab
2020-12-29 15:52:11 +0100 <merijn> You need to escape the \ to actually get the \\t the regex library expects, as opposed to giving it an actual tab character
2020-12-29 15:53:55 +0100brisbin(~patrick@174-081-116-011.res.spectrum.com)
2020-12-29 15:54:07 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
2020-12-29 15:54:16 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe)
2020-12-29 15:55:03 +0100ransom(~c4264035@8.47.12.52)
2020-12-29 15:55:48 +0100knupfer(~Thunderbi@200116b82c7e8f00b1e89f88fb97f1fb.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2020-12-29 16:02:46 +0100 <ij> would haskell optimize any/all on hardcoded lists not to traverse it as a list?
2020-12-29 16:03:06 +0100 <merijn> Yes, no, maybe, it depends
2020-12-29 16:03:12 +0100Alex84(923c59d2@dslb-146-060-089-210.146.060.pools.vodafone-ip.de) (Remote host closed the connection)
2020-12-29 16:04:11 +0100 <ij> is it required to specify that I'm using ghc?
2020-12-29 16:04:30 +0100 <merijn> Your question has no definite answer
2020-12-29 16:04:55 +0100 <ij> I wasn't looking for one either
2020-12-29 16:05:30 +0100 <[exa]> ij: the inliner may inline it, under some (complicated) conditions
2020-12-29 16:05:47 +0100 <[exa]> I wouldn't bet on that tough
2020-12-29 16:05:53 +0100 <merijn> In general neither Haskell nor GHC provide any guarantees about the runtime representation of any datatype
2020-12-29 16:05:53 +0100 <[exa]> *though
2020-12-29 16:06:00 +0100djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54)
2020-12-29 16:06:03 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f)
2020-12-29 16:06:36 +0100 <[exa]> ij: there's a paper about "the architecture of haskell inliner" somewhere, it's a good read about the basic challenges of such optimizations
2020-12-29 16:06:44 +0100 <merijn> Will it do something fancy? Probably not, but nothing is specified or promised
2020-12-29 16:08:30 +0100 <[exa]> in short, please do not depend on that
2020-12-29 16:09:27 +0100 <ij> just curious :)
2020-12-29 16:10:08 +0100 <__monty__> merijn: You can give it any other character so why not tab?
2020-12-29 16:10:46 +0100 <merijn> __monty__: Sure, but does that have the same meaning in the regex syntax?
2020-12-29 16:10:53 +0100 <lortabac> __monty__: I suppose because you can format and indent regexes
2020-12-29 16:11:02 +0100ADG1089__(~aditya@223.235.213.117) (Remote host closed the connection)
2020-12-29 16:11:11 +0100 <merijn> __monty__: Which in turn depends on the exact regex flavour in use
2020-12-29 16:13:43 +0100stef204(~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 3.0)
2020-12-29 16:13:45 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-29 16:14:16 +0100brisbin(~patrick@174-081-116-011.res.spectrum.com) (Ping timeout: 240 seconds)
2020-12-29 16:14:36 +0100Tario(~Tario@201.192.165.173)
2020-12-29 16:15:20 +0100 <siraben> what libraries are good for interacting with IRC?
2020-12-29 16:15:56 +0100stef204(~stef204@unaffiliated/stef-204/x-384198)
2020-12-29 16:16:17 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com)
2020-12-29 16:18:24 +0100 <__monty__> "Formatting" regexes sounds like the stuff of nightmares. Why are you even writing regexes monstrous enough to require formatting and does this mean even spaces need to be escaped?
2020-12-29 16:18:44 +0100stef204(~stef204@unaffiliated/stef-204/x-384198) (Client Quit)
2020-12-29 16:19:25 +0100argento(~argent0@168.227.96.51) (Ping timeout: 240 seconds)
2020-12-29 16:20:03 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-29 16:21:30 +0100notzmv(~user@unaffiliated/zmv) (Read error: No route to host)
2020-12-29 16:22:01 +0100stef204(~stef204@unaffiliated/stef-204/x-384198)
2020-12-29 16:22:07 +0100thunderrd(~thunderrd@183.182.111.131) (Remote host closed the connection)
2020-12-29 16:23:04 +0100fendor_(~fendor@178.165.130.45.wireless.dyn.drei.com)
2020-12-29 16:23:39 +0100notzmv(~user@unaffiliated/zmv)
2020-12-29 16:24:59 +0100 <lortabac> __monty__: years ago I worked at a company where the regexes were so big that they needed to be formatted (IIRC they were just split over multiple lines)
2020-12-29 16:25:20 +0100 <rowbee> perl
2020-12-29 16:25:25 +0100toorevitimirp(~tooreviti@117.182.181.108)
2020-12-29 16:25:31 +0100djellemah(~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Quit: #ruby)
2020-12-29 16:25:42 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-29 16:25:45 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-29 16:25:54 +0100fendor(~fendor@77.119.131.12.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2020-12-29 16:26:05 +0100 <lortabac> as for why, I have no idea
2020-12-29 16:27:47 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-12-29 16:31:52 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-12-29 16:32:06 +0100danza(~francesco@151.53.79.89) (Quit: Leaving)
2020-12-29 16:32:46 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 16:33:09 +0100bitmagie(~Thunderbi@200116b8064af40045a56632dbc644bc.dip.versatel-1u1.de)
2020-12-29 16:35:56 +0100toorevitimirp(~tooreviti@117.182.181.108) (Ping timeout: 240 seconds)
2020-12-29 16:37:52 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Ping timeout: 260 seconds)
2020-12-29 16:40:49 +0100thunderrd(~thunderrd@183.182.111.131)
2020-12-29 16:44:01 +0100b5er(~b5er_@91.193.4.202) (Ping timeout: 264 seconds)
2020-12-29 16:44:29 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 16:46:10 +0100 <idnar> :t \f xs -> mconcat (f <$> xs)
2020-12-29 16:46:12 +0100 <lambdabot> Monoid a1 => (a2 -> a1) -> [a2] -> a1
2020-12-29 16:46:58 +0100 <idnar> @hoogle Monoid a1 => (a2 -> a1) -> [a2] -> a1
2020-12-29 16:46:59 +0100 <lambdabot> Data.List.Extra mconcatMap :: Monoid b => (a -> b) -> [a] -> b
2020-12-29 16:46:59 +0100 <lambdabot> Extra mconcatMap :: Monoid b => (a -> b) -> [a] -> b
2020-12-29 16:46:59 +0100 <lambdabot> Prelude foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
2020-12-29 16:47:23 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-12-29 16:47:30 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-12-29 16:47:32 +0100 <idnar> ah, foldMap
2020-12-29 16:48:50 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f)
2020-12-29 16:49:38 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-12-29 16:49:47 +0100argento(~argent0@168.227.96.26)
2020-12-29 16:51:53 +0100knupfer(~Thunderbi@200116b82c7e8f00a8f2c6fffebe0d91.dip.versatel-1u1.de)
2020-12-29 16:52:59 +0100knupfer(~Thunderbi@200116b82c7e8f00a8f2c6fffebe0d91.dip.versatel-1u1.de) (Remote host closed the connection)
2020-12-29 16:53:13 +0100knupfer(~Thunderbi@200116b82c7e8f00b4797c962f7b5000.dip.versatel-1u1.de)
2020-12-29 16:53:45 +0100 <idnar> @pl \f g (x, y) -> f (g x) <> f (g y)
2020-12-29 16:53:46 +0100 <lambdabot> flip flip snd . (ap .) . flip flip fst . ((.) .) . ap (ap . ((flip . (((.) . (<>)) .)) .) . (.)) (.)
2020-12-29 16:54:23 +0100Tops2(~Tobias@dyndsl-095-033-094-200.ewe-ip-backbone.de)
2020-12-29 16:54:25 +0100machinedgod(~machinedg@24.105.81.50)
2020-12-29 16:54:26 +0100 <idnar> not quite
2020-12-29 16:54:40 +0100 <idnar> @pl \(x, y) -> f (g x) <> f (g y)
2020-12-29 16:54:40 +0100 <lambdabot> uncurry ((. (f . g)) . (<>) . f . g)
2020-12-29 16:55:37 +0100 <idnar> :t bimap
2020-12-29 16:55:39 +0100 <lambdabot> Bifunctor p => (a -> b) -> (c -> d) -> p a c -> p b d
2020-12-29 16:55:59 +0100TheMule(~TheMule@2a02:908:3a3:8660:8a32:79ab:f6b:7a6a)
2020-12-29 16:56:05 +0100TheMule(~TheMule@2a02:908:3a3:8660:8a32:79ab:f6b:7a6a) (Client Quit)
2020-12-29 16:57:04 +0100 <idnar> @hoogle Bifunctor p => (a -> b) -> p a a -> p b b
2020-12-29 16:57:05 +0100 <lambdabot> Relude.Extra.Bifunctor bimapBoth :: Bifunctor f => (a -> b) -> f a a -> f b b
2020-12-29 16:57:08 +0100eacameron(uid256985@gateway/web/irccloud.com/x-wupypehaymlqhtxd)
2020-12-29 16:58:01 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-29 17:00:44 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-29 17:04:22 +0100ransom(~c4264035@8.47.12.52) (Ping timeout: 272 seconds)
2020-12-29 17:04:25 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2020-12-29 17:05:36 +0100qwerty(~tema@217.118.92.215) (Ping timeout: 240 seconds)
2020-12-29 17:06:03 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 17:10:41 +0100christo(~chris@81.96.113.213)
2020-12-29 17:13:02 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-29 17:13:11 +0100 <ddellacosta> Is there any reason to use ContT here other than simplifying resource cleanup? There are non-with* versions of all these functions in the alsa-seq library https://hackage.haskell.org/package/alsa-seq-0.6.0.7/src/examples/beat.hs
2020-12-29 17:14:02 +0100 <[exa]> hackage could have a nice "this is used by" button
2020-12-29 17:14:22 +0100Tario(~Tario@201.192.165.173)
2020-12-29 17:19:33 +0100jollygood2(~bc815220@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-12-29 17:19:42 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:f14e:750f:83e8:c56e:b09f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 17:19:44 +0100 <merijn> [exa]: So... https://packdeps.haskellers.com/reverse ? :p
2020-12-29 17:19:49 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c48f:1a20:b814:adb4)
2020-12-29 17:20:26 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-12-29 17:21:17 +0100 <[exa]> this is for packages, I want it for actual definitions... Everyone's gonna use mtl/transformers, not many packages actually touch ContT directly
2020-12-29 17:23:45 +0100mlugg(522733ea@cpc95124-newt39-2-0-cust489.19-3.cable.virginm.net)
2020-12-29 17:24:18 +0100 <merijn> ah
2020-12-29 17:24:29 +0100 <merijn> github code search? :p
2020-12-29 17:26:10 +0100 <mlugg> I have a typeclass `Foo a`, with an `instance Foo Text` and an `instance Foo (IO ())` (using `FlexibleInstances` for the latter instance). I also have a value `x :: (Foo a) => a`. If I evaluate `x` at the GHCi prompt, I expect the IO instance to be detected and used for the evaluation. Instead, I get an error about an ambiguous type variable for
2020-12-29 17:26:11 +0100 <mlugg> `print`, showing that GHCi is trying to find a `show`-able instance instead. However, if I enable GADTs so I can use equality constraints and replace the second instance with `instance (a ~ ()) => Foo (IO a)`, it works as expected. Why does this happen, and is there any way I can get this behaviour without GADTs/TypeFamilies?
2020-12-29 17:27:11 +0100coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-29 17:27:23 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-29 17:29:32 +0100acidjnk_new(~acidjnk@p200300d0c704e72638e4a99bdd618e88.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2020-12-29 17:30:05 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-29 17:30:52 +0100argento(~argent0@168.227.96.26) (Ping timeout: 256 seconds)
2020-12-29 17:34:08 +0100son0p(~son0p@181.136.122.143) (Quit: leaving)
2020-12-29 17:38:01 +0100tessier(~treed@kernel-panic/copilotco) (Ping timeout: 246 seconds)
2020-12-29 17:39:22 +0100juuandyy(~juuandyy@90.166.144.65)
2020-12-29 17:40:30 +0100DarkRanger(b6bc8329@182.188.131.41)
2020-12-29 17:40:55 +0100bitmagie(~Thunderbi@200116b8064af40045a56632dbc644bc.dip.versatel-1u1.de) (Quit: bitmagie)
2020-12-29 17:41:25 +0100DarkRanger(b6bc8329@182.188.131.41) (Remote host closed the connection)
2020-12-29 17:42:17 +0100kuribas(~user@ptr-25vy0i9jslvkgmof4mc.18120a2.ip6.access.telenet.be)
2020-12-29 17:43:13 +0100obihann(~jhann@142.177.168.17)
2020-12-29 17:43:18 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-12-29 17:43:42 +0100DarkRanger(b6bc8329@182.188.131.41)
2020-12-29 17:44:28 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 256 seconds)
2020-12-29 17:44:55 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-29 17:46:00 +0100DarkRanger(b6bc8329@182.188.131.41) (Remote host closed the connection)
2020-12-29 17:46:43 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-12-29 17:47:38 +0100coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-29 17:51:14 +0100geekosaur(42d52137@66.213.33.55)
2020-12-29 17:53:52 +0100 <statusfailed> what's the stack equivalent of cabal.project's "constraints: ..." line ?
2020-12-29 17:53:54 +0100knupfer(~Thunderbi@200116b82c7e8f00b4797c962f7b5000.dip.versatel-1u1.de) (Quit: knupfer)
2020-12-29 17:55:01 +0100ransom(~c4264035@2a09:bac0:72::82f:c34)
2020-12-29 17:57:54 +0100plam4u(~plam4u@131.red-83-38-238.dynamicip.rima-tde.net) (Remote host closed the connection)
2020-12-29 18:00:23 +0100ransom(~c4264035@2a09:bac0:72::82f:c34) (Ping timeout: 260 seconds)
2020-12-29 18:01:45 +0100 <tomsmeding> mlugg: what you're relying on here is ghci's special defaulting rules for IO things; the wording in this piece of documentation seems to suggest that it specifically looks for a way to unify with 'IO a', which will not work for the IO () instance: https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#i-o-actions-at-the-prompt
2020-12-29 18:01:45 +0100 <sm[m]> statusfailed: I think there isn't one, as stack declares a specific version for each package
2020-12-29 18:02:35 +0100 <tomsmeding> I think that this "instability", for as much as it is an instability, is basically why FlexibleInstances is an extension -- but I'm not sure
2020-12-29 18:03:20 +0100 <tomsmeding> also, I'm now reading that piece of documentation way too precisely, so the implementation may not match my reading :p
2020-12-29 18:04:54 +0100 <geekosaur> % putStrLn "hi" -- IO () works
2020-12-29 18:04:54 +0100 <yahb> geekosaur: hi
2020-12-29 18:05:22 +0100 <tomsmeding> that's because the type 'IO ()' can be unified with 'IO a'
2020-12-29 18:05:38 +0100 <tomsmeding> the type 'Foo a => a' cannot be unified with 'IO a' without further knowledge
2020-12-29 18:05:57 +0100tomsmedingthinks
2020-12-29 18:07:52 +0100Franciman(~francesco@host-95-250-152-231.retail.telecomitalia.it) (Quit: Leaving)
2020-12-29 18:10:24 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 18:12:26 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 18:12:34 +0100 <merijn> statusfailed: Eh, there's no such thing
2020-12-29 18:12:47 +0100 <merijn> statusfailed: The LTS snapshots effectively *are* just sets of constraints
2020-12-29 18:13:29 +0100 <tomsmeding> mlugg: can't find the place where the IO stuff is handled in the ghci source, but that's probably my unfamiliarity
2020-12-29 18:14:13 +0100ransom(~c4264035@8.47.12.52)
2020-12-29 18:15:05 +0100nek0(~nek0@mail.nek0.eu)
2020-12-29 18:15:14 +0100 <mlugg> tomsmeding: Ah, that makes sense, thanks. Whereas the constraint variant allows unifying with IO a, it just also pushes an equality constraint forcing a to be ()
2020-12-29 18:15:29 +0100 <tomsmeding> that's what I'm thinking, yes
2020-12-29 18:15:41 +0100 <dminuoso> What I find surprising, is how GHCi hasn't managed to surprise me so far (apart from MMR). It's almost as if Haskell has a sane definable way to be run interactively. :)
2020-12-29 18:15:52 +0100 <tomsmeding> in particular, what if you had instances for both Foo (IO ()) and Foo (IO Int)
2020-12-29 18:16:00 +0100 <tomsmeding> there'd be no reasonable way to choose
2020-12-29 18:16:12 +0100 <sm[m]> GHCI is great
2020-12-29 18:16:17 +0100 <tomsmeding> and you can't make those two separate instances without FlexibleInstances :)
2020-12-29 18:16:20 +0100 <tomsmeding> ghci is amazing
2020-12-29 18:17:02 +0100 <tomsmeding> (except for bringing stuff into scope that I don't want in scope upon reload :p )
2020-12-29 18:17:09 +0100 <mlugg> Ohhh that makes a lot of sense actually
2020-12-29 18:17:16 +0100 <mlugg> So TL;DR I have to do it with the equality constraint
2020-12-29 18:20:22 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 272 seconds)
2020-12-29 18:24:49 +0100mirrorbird(~psutcliff@2a00:801:42b:8314:3772:eb7f:91f1:698c)
2020-12-29 18:25:08 +0100 <statusfailed> sm[m], merijn ah weird, you can put other stuff in cabal.project's constraints field, I guess like package flags?
2020-12-29 18:25:22 +0100 <statusfailed> I know stack has the flags section for that though
2020-12-29 18:27:11 +0100gzj(~gzj@unaffiliated/gzj)
2020-12-29 18:27:28 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com)
2020-12-29 18:28:58 +0100plam4u(~plam4u@131.red-83-38-238.dynamicip.rima-tde.net)
2020-12-29 18:31:35 +0100argento(~argent0@168.227.96.26)
2020-12-29 18:32:26 +0100gzj(~gzj@unaffiliated/gzj) (Ping timeout: 268 seconds)
2020-12-29 18:35:13 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c48f:1a20:b814:adb4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 18:35:21 +0100thunderrd(~thunderrd@183.182.111.131) (Remote host closed the connection)
2020-12-29 18:38:37 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
2020-12-29 18:40:32 +0100thallada(~thallada@fsf/member/thallada)
2020-12-29 18:42:00 +0100mirrorbird(~psutcliff@2a00:801:42b:8314:3772:eb7f:91f1:698c) (Quit: Leaving)
2020-12-29 18:42:13 +0100knupfer(~Thunderbi@200116b82c7e8f0029e8d9a0b516f068.dip.versatel-1u1.de)
2020-12-29 18:42:29 +0100justsomeguy(~justsomeg@2603-9000-960a-fc00-c4d2-5b73-c7b7-3a2b.inf6.spectrum.com)
2020-12-29 18:42:29 +0100justsomeguy(~justsomeg@2603-9000-960a-fc00-c4d2-5b73-c7b7-3a2b.inf6.spectrum.com) (Changing host)
2020-12-29 18:42:29 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-29 18:43:23 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3)
2020-12-29 18:44:26 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Remote host closed the connection)
2020-12-29 18:44:38 +0100knupfer(~Thunderbi@200116b82c7e8f0029e8d9a0b516f068.dip.versatel-1u1.de) (Remote host closed the connection)
2020-12-29 18:44:47 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2020-12-29 18:44:56 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2020-12-29 18:46:04 +0100ransom(~c4264035@8.47.12.52) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 18:46:55 +0100juuandyy(~juuandyy@90.166.144.65)
2020-12-29 18:47:10 +0100geekosaur(42d52137@66.213.33.55) (Ping timeout: 245 seconds)
2020-12-29 18:52:27 +0100jamm(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-12-29 18:56:17 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 18:57:28 +0100geowiesnot(~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-12-29 18:59:21 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3)
2020-12-29 19:02:52 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2020-12-29 19:04:03 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-29 19:04:36 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2020-12-29 19:04:42 +0100plam4u(~plam4u@131.red-83-38-238.dynamicip.rima-tde.net) ()
2020-12-29 19:05:02 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-12-29 19:05:37 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-29 19:07:12 +0100brisbin(~patrick@174-081-116-011.res.spectrum.com)
2020-12-29 19:07:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-29 19:12:58 +0100carthia(~carthia@gateway/tor-sasl/carthia)
2020-12-29 19:13:50 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 19:14:23 +0100geekosaur(42d52137@66.213.33.55)
2020-12-29 19:14:24 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-12-29 19:15:14 +0100Forlorn(~Forlorn@unaffiliated/forlorn)
2020-12-29 19:15:31 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3)
2020-12-29 19:15:43 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2020-12-29 19:16:19 +0100Tario(~Tario@201.192.165.173)
2020-12-29 19:17:31 +0100brisbin(~patrick@174-081-116-011.res.spectrum.com) (Quit: WeeChat 2.9)
2020-12-29 19:17:33 +0100Melanie(~Melanie@192-0-134-138.cpe.teksavvy.com)
2020-12-29 19:17:34 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-12-29 19:18:05 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
2020-12-29 19:21:06 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 265 seconds)
2020-12-29 19:21:10 +0100Mikagami(~MOSCOS@122.54.107.175) (Remote host closed the connection)
2020-12-29 19:21:33 +0100Mikagami(~MOSCOS@122.54.107.175)
2020-12-29 19:22:09 +0100Tario(~Tario@200.119.186.210)
2020-12-29 19:22:31 +0100 <statusfailed> Does ghci do linking differently to ghc somehow? I have a program which I can compile but ghci gives me a linker error
2020-12-29 19:22:55 +0100 <geekosaur> ghci has its own linker which is known to not handle all cases
2020-12-29 19:23:09 +0100 <statusfailed> ah
2020-12-29 19:23:21 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-29 19:23:47 +0100 <geekosaur> that said, most of the time it's something like being in the wrong directory or something similar, not hitting one of the edge cases
2020-12-29 19:23:54 +0100 <statusfailed> Is there a way I can debug the link step of ghci? I have the command "cabal repl" is using, but I don't see how to affect linking
2020-12-29 19:24:06 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-29 19:24:14 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-164.cust.tzulo.com) (Ping timeout: 268 seconds)
2020-12-29 19:24:15 +0100 <statusfailed> geekosaur: wouldn't being in the wrong directory also affect ghc ?
2020-12-29 19:25:10 +0100 <geekosaur> if you were certain they were doing the same thing, yes. if you're using "cabal repl", you may have something misconfigured
2020-12-29 19:26:20 +0100 <statusfailed> geekosaur: I took the "ghc --interactive ..." command that "cabal repl" used and just removed the --interactive flag
2020-12-29 19:26:27 +0100 <statusfailed> with --interactive I get link errors, without that flag things work
2020-12-29 19:28:08 +0100 <statusfailed> ("things work" = I get an executable that I can run without errors)
2020-12-29 19:29:09 +0100pera(~pera@unaffiliated/pera) (Ping timeout: 256 seconds)
2020-12-29 19:29:17 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-12-29 19:31:25 +0100zebrag(~inkbottle@aaubervilliers-654-1-158-75.w86-212.abo.wanadoo.fr)
2020-12-29 19:36:37 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection)
2020-12-29 19:36:49 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 19:36:53 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-29 19:37:30 +0100carthia(~carthia@gateway/tor-sasl/carthia) (Remote host closed the connection)
2020-12-29 19:37:39 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-12-29 19:37:59 +0100carthia(~carthia@gateway/tor-sasl/carthia)
2020-12-29 19:38:12 +0100bps(~bps@103.118.146.114)
2020-12-29 19:38:51 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3)
2020-12-29 19:41:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 19:42:28 +0100coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl)
2020-12-29 19:42:51 +0100dhil(~dhil@78.156.97.38) (Quit: Leaving)
2020-12-29 19:44:45 +0100iekfkk(~username@117.200.9.42)
2020-12-29 19:47:03 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Remote host closed the connection)
2020-12-29 19:47:22 +0100Lord_of_Life_(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-12-29 19:47:26 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-12-29 19:47:31 +0100bisickcor(~username@117.200.14.227) (Ping timeout: 246 seconds)
2020-12-29 19:48:56 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 240 seconds)
2020-12-29 19:48:56 +0100Lord_of_Life_Lord_of_Life
2020-12-29 19:49:13 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 19:49:37 +0100Melanie(~Melanie@192-0-134-138.cpe.teksavvy.com) (Ping timeout: 265 seconds)
2020-12-29 19:49:53 +0100christo(~chris@81.96.113.213)
2020-12-29 19:50:39 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 260 seconds)
2020-12-29 19:52:12 +0100argento(~argent0@168.227.96.26) (Ping timeout: 272 seconds)
2020-12-29 19:52:40 +0100rmk236(~lcampos@2a02:908:3616:b100:849c:a12b:ff95:e193)
2020-12-29 19:53:45 +0100 <statusfailed> Hrm, seems like GHCi doesn't like linking with libstdc++
2020-12-29 19:53:54 +0100argento(~argent0@168.227.96.26)
2020-12-29 19:53:59 +0100Melanie(~Melanie@192-0-134-138.cpe.teksavvy.com)
2020-12-29 19:54:44 +0100christo(~chris@81.96.113.213) (Ping timeout: 272 seconds)
2020-12-29 19:55:09 +0100samsepiol(~jh@94.31.85.251)
2020-12-29 19:55:26 +0100 <geekosaur> that fails to surprise me, given linkers need to handle template specialization and ghci's built-in linker probably doesn't
2020-12-29 19:56:19 +0100o1lo01ol1o(~o1lo01ol1@31.22.145.144)
2020-12-29 19:57:57 +0100samsepiol(~jh@94.31.85.251) (Client Quit)
2020-12-29 19:58:13 +0100samsepiol(~jh@94.31.85.251)
2020-12-29 20:00:13 +0100machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2020-12-29 20:01:09 +0100o1lo01ol1o(~o1lo01ol1@31.22.145.144) (Ping timeout: 260 seconds)
2020-12-29 20:02:50 +0100samsepiol(~jh@94.31.85.251) (Client Quit)
2020-12-29 20:02:57 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-12-29 20:03:27 +0100berberman(~berberman@unaffiliated/berberman)
2020-12-29 20:04:21 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-29 20:04:32 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 258 seconds)
2020-12-29 20:04:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-29 20:05:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-12-29 20:05:37 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection)
2020-12-29 20:06:47 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Quit: birdd)
2020-12-29 20:06:51 +0100christo(~chris@81.96.113.213)
2020-12-29 20:07:31 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-12-29 20:08:03 +0100 <tomsmeding> the linker needs to handle template specialisation? I knew less about c++ than I thought
2020-12-29 20:08:36 +0100 <geekosaur> what happens when two different .cc files do the same specialization for the same template?
2020-12-29 20:08:54 +0100 <geekosaur> the linker needs to either pick one, or do the specialization itself
2020-12-29 20:09:29 +0100 <geekosaur> this is actually one of the lesser problems; c++ is a mess
2020-12-29 20:09:49 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-12-29 20:09:50 +0100 <tomsmeding> is that even allowed in the first place?
2020-12-29 20:10:03 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 20:10:05 +0100 <geekosaur> sure, and STL relies on it
2020-12-29 20:10:37 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 246 seconds)
2020-12-29 20:13:20 +0100 <dsal> I'm trying to figure out how to do something with optparse-applicative that doesn't seem like it should be that hard. I want to use `many (argument ..)` and do something different for a length of 0, 1, or 2. I can do `sub <$> many (argument str (metavar "args..."))` and have a different parser for each, but I can't make a length of 3 fail gracefully.
2020-12-29 20:13:26 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
2020-12-29 20:13:48 +0100 <dsal> I also tried <|> between parsers for 2, 1, and 0, but the 1 case never works because it doesn't backtrack that far.
2020-12-29 20:14:50 +0100 <dsal> I have a subcommand "config" that lists the config with 0 args, gets a particular value with 1, and sets a value with 2. It works fine if I just pass the args down and make the decision later, but I'm trying to see if I can model this earlier.
2020-12-29 20:15:35 +0100 <Melanie> case split on the result of the parse is my first guess
2020-12-29 20:16:04 +0100 <tomsmeding> geekosaur: my compiler doesn't allow it :p https://paste.tomsmeding.com/bjtSuLwg
2020-12-29 20:16:12 +0100 <tomsmeding> or I'm misunderstanding you
2020-12-29 20:16:26 +0100 <tomsmeding> oh crap that shell session is wrong
2020-12-29 20:16:53 +0100xff0x_(~fox@2001:1a81:532a:2200:95e9:9dd9:cd9c:c473) (Ping timeout: 260 seconds)
2020-12-29 20:16:53 +0100 <tomsmeding> geekosaur: https://paste.tomsmeding.com/pDkgNCqc that's the correct one
2020-12-29 20:17:01 +0100 <geekosaur> I'm probably using the wrong terminology
2020-12-29 20:17:06 +0100 <dsal> Melanie: Yeah, I tried that, but the parser isn't monadic, so it's not clear to me how to join.
2020-12-29 20:17:19 +0100 <geekosaur> instantiation instead of specialization, maybe
2020-12-29 20:17:23 +0100xff0x_(~fox@2001:1a81:532a:2200:ffb2:f24f:b99c:824f)
2020-12-29 20:17:45 +0100 <geekosaur> the point here is duplicated code if you handle it naïvely
2020-12-29 20:17:52 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-43.cust.tzulo.com)
2020-12-29 20:18:15 +0100 <statusfailed> geekosaur: isn't the second link showing that you actually get duplicated code in C++?
2020-12-29 20:18:20 +0100 <statusfailed> and therefore the linker isn't doing any template stuff?
2020-12-29 20:18:22 +0100 <tomsmeding> right, that would be _implicit_ template specialisations, where the compiler specialises a template function (defined in some header file) for the type with which it is used -- in multiple files separately
2020-12-29 20:18:34 +0100Guest99(59217720@gateway/web/cgi-irc/kiwiirc.com/ip.89.33.119.32)
2020-12-29 20:19:09 +0100 <Guest99> @pl lift2 f k1 k2 = (f <$> k1) <*> k2
2020-12-29 20:19:09 +0100 <lambdabot> lift2 = ((<*>) .) . (<$>)
2020-12-29 20:19:34 +0100 <tomsmeding> :t liftA2
2020-12-29 20:19:35 +0100 <lambdabot> Applicative f => (a -> b -> c) -> f a -> f b -> f c
2020-12-29 20:20:47 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de)
2020-12-29 20:21:25 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 20:21:51 +0100madjestic(~Android@86-88-72-244.fixed.kpn.net)
2020-12-29 20:22:42 +0100 <tomsmeding> geekosaur: I thought that was just deduplication though, not actual instantiation in the linker (which would be outrageous complexity inside a linker)
2020-12-29 20:23:09 +0100Guest99(59217720@gateway/web/cgi-irc/kiwiirc.com/ip.89.33.119.32) ()
2020-12-29 20:23:19 +0100 <geekosaur> deduplication is harder than it looks, iirc
2020-12-29 20:23:40 +0100GuerrillaMonkey(~Jeanne-Ka@static-198-54-134-62.cust.tzulo.com)
2020-12-29 20:24:16 +0100Guest99(59217720@gateway/web/cgi-irc/kiwiirc.com/ip.89.33.119.32)
2020-12-29 20:25:04 +0100 <tomsmeding> seems so, indeed; TIL
2020-12-29 20:26:32 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-43.cust.tzulo.com) (Ping timeout: 260 seconds)
2020-12-29 20:26:48 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Ping timeout: 260 seconds)
2020-12-29 20:27:13 +0100icebreaker(michalc@unaffiliated/icebreaker) (Ping timeout: 264 seconds)
2020-12-29 20:27:30 +0100icebreaker(michalc@unaffiliated/icebreaker)
2020-12-29 20:27:45 +0100robotmay(~beepboop@2001:8b0:7af0:2580:9553:dae8:6cf1:18d0) (Ping timeout: 268 seconds)
2020-12-29 20:28:02 +0100robotmay(~beepboop@2001:8b0:7af0:2580:80b7:418d:2e2d:4473)
2020-12-29 20:29:00 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-rpdhzkafohuoilye) (Quit: Connection closed for inactivity)
2020-12-29 20:30:59 +0100kuribas(~user@ptr-25vy0i9jslvkgmof4mc.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-12-29 20:31:19 +0100Guest99(59217720@gateway/web/cgi-irc/kiwiirc.com/ip.89.33.119.32) ()
2020-12-29 20:32:22 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456) (Remote host closed the connection)
2020-12-29 20:32:36 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
2020-12-29 20:33:39 +0100 <ProofTechnique> dsal: https://stackoverflow.com/questions/49751139/how-to-combine-parsers-up-to-n-times-in-haskell Something like that might help? Not sure if that's _too_ restrictive for your case
2020-12-29 20:36:02 +0100mputz(~Thunderbi@dslb-088-064-063-125.088.064.pools.vodafone-ip.de) (Quit: mputz)
2020-12-29 20:36:24 +0100 <dsal> ProofTechnique: thanks. I'll play around a bit more. It's easy to do this with monadic parsers, but I'm doing it wrong down here.
2020-12-29 20:37:27 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Remote host closed the connection)
2020-12-29 20:38:06 +0100 <ProofTechnique> dsal: Also, a shockingly relevant answer from the author: https://stackoverflow.com/questions/25956558/optparse-applicative-backtracking
2020-12-29 20:39:02 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-29 20:39:07 +0100Kaiepi(~Kaiepi@47.54.252.148)
2020-12-29 20:39:11 +0100 <dsal> ProofTechnique: ha. Yes, that's it.
2020-12-29 20:39:58 +0100justsomeguy(~justsomeg@216.186.218.241)
2020-12-29 20:39:58 +0100justsomeguy(~justsomeg@216.186.218.241) (Changing host)
2020-12-29 20:39:58 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-12-29 20:40:17 +0100 <dsal> I'll just leave the error for later in the runtime. It's not a bad user experience and nobody will likely ever see this anyway. Just started doing more work this lib and had a few neat things come out of it.
2020-12-29 20:42:43 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Ping timeout: 240 seconds)
2020-12-29 20:42:45 +0100boxscape(4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89)
2020-12-29 20:42:48 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0) (Quit: ZNC 1.7.5 - https://znc.in)
2020-12-29 20:43:05 +0100denisse(~spaceCat@gateway/tor-sasl/alephzer0)
2020-12-29 20:44:04 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya) (Ping timeout: 240 seconds)
2020-12-29 20:44:23 +0100carthia(~carthia@gateway/tor-sasl/carthia) (Ping timeout: 240 seconds)
2020-12-29 20:44:23 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds)
2020-12-29 20:44:24 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-12-29 20:44:24 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
2020-12-29 20:44:43 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-12-29 20:45:03 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
2020-12-29 20:45:04 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-12-29 20:45:04 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2020-12-29 20:45:22 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 20:45:44 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds)
2020-12-29 20:46:03 +0100andreas303(~andreas@gateway/tor-sasl/andreas303) (Ping timeout: 240 seconds)
2020-12-29 20:46:07 +0100carthia(~carthia@gateway/tor-sasl/carthia)
2020-12-29 20:46:27 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2020-12-29 20:46:30 +0100aveltras(uid364989@gateway/web/irccloud.com/x-kccvjjqcpxkkewrw)
2020-12-29 20:47:13 +0100christo(~chris@81.96.113.213)
2020-12-29 20:47:14 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-12-29 20:47:19 +0100cantstanya(~chatting@gateway/tor-sasl/cantstanya)
2020-12-29 20:49:37 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 20:49:43 +0100srk(~sorki@gateway/tor-sasl/sorki) (Ping timeout: 240 seconds)
2020-12-29 20:49:43 +0100hexo(~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
2020-12-29 20:50:43 +0100teardown(~user@gateway/tor-sasl/mrush)
2020-12-29 20:51:14 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 20:53:29 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3)
2020-12-29 20:54:18 +0100vicfred_(~vicfred@unaffiliated/vicfred)
2020-12-29 20:54:44 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-29 20:55:02 +0100mp___(~mp@hell.cx)
2020-12-29 20:56:13 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-eafppdbbqgpahaet)
2020-12-29 20:56:55 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 256 seconds)
2020-12-29 20:56:57 +0100christo(~chris@81.96.113.213)
2020-12-29 20:57:03 +0100GuerrillaMonkey(~Jeanne-Ka@static-198-54-134-62.cust.tzulo.com) (Quit: Leaving)
2020-12-29 20:57:08 +0100vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 256 seconds)
2020-12-29 20:57:46 +0100vicfred__(~vicfred@unaffiliated/vicfred)
2020-12-29 20:57:52 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-12-29 20:57:55 +0100hexo(~hexo@gateway/tor-sasl/hexo)
2020-12-29 20:57:55 +0100srk(~sorki@gateway/tor-sasl/sorki)
2020-12-29 20:57:58 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-29 20:57:58 +0100gioyik(~gioyik@179.32.228.107)
2020-12-29 20:57:59 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar)
2020-12-29 20:58:38 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz)
2020-12-29 20:59:33 +0100philopsos(~caecilius@gateway/tor-sasl/caecilius)
2020-12-29 20:59:40 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-12-29 20:59:46 +0100matryoshka(~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
2020-12-29 21:00:05 +0100geekosaur(42d52137@66.213.33.55) (Ping timeout: 245 seconds)
2020-12-29 21:00:19 +0100vicfred_(~vicfred@unaffiliated/vicfred) (Ping timeout: 246 seconds)
2020-12-29 21:00:28 +0100vicfred__(~vicfred@unaffiliated/vicfred) (Client Quit)
2020-12-29 21:01:22 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-12-29 21:01:31 +0100hekkaidekapus[(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-12-29 21:01:42 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2020-12-29 21:06:28 +0100wonko7(~wonko7@2a01:e35:2ffb:7040:aa95:463a:bcd8:60e4) (Ping timeout: 260 seconds)
2020-12-29 21:09:19 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe)
2020-12-29 21:11:50 +0100bps(~bps@103.118.146.114) (Quit: Leaving)
2020-12-29 21:13:08 +0100al3x27(~plovs@85.254.74.40)
2020-12-29 21:13:47 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe) (Ping timeout: 260 seconds)
2020-12-29 21:15:58 +0100geekosaur(42d52137@66.213.33.55)
2020-12-29 21:16:09 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-29 21:19:25 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
2020-12-29 21:20:07 +0100nyd(~nyd@unaffiliated/elysian) (Quit: nyd)
2020-12-29 21:20:41 +0100dfeuer(~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net)
2020-12-29 21:20:50 +0100acidjnk_new(~acidjnk@p200300d0c704e726458729e8ce1a3b25.dip0.t-ipconnect.de)
2020-12-29 21:20:53 +0100bor0(~boro@unaffiliated/boro/x-000000001)
2020-12-29 21:20:54 +0100heatsink(~heatsink@2600:1700:bef1:5e10:8058:a74d:29ea:8456)
2020-12-29 21:21:36 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-12-29 21:22:01 +0100thallada(~thallada@fsf/member/thallada) (Ping timeout: 268 seconds)
2020-12-29 21:23:14 +0100wonko7(~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net)
2020-12-29 21:25:49 +0100Vulfe(~vulfe@2600:1702:31b0:34e0:3dea:7cc:1ee9:85fe)
2020-12-29 21:26:42 +0100Deide(~Deide@217.155.19.23)
2020-12-29 21:30:41 +0100argento(~argent0@168.227.96.26) (Quit: leaving)
2020-12-29 21:32:10 +0100coot(~coot@37.30.55.131.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-12-29 21:35:31 +0100juuandyy(~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
2020-12-29 21:35:52 +0100andreas303(~andreas@gateway/tor-sasl/andreas303)
2020-12-29 21:36:03 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-12-29 21:37:23 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-rbphamfimqkpbxje)
2020-12-29 21:37:57 +0100neiluj(~jco@30.106.204.77.rev.sfr.net)
2020-12-29 21:37:57 +0100neiluj(~jco@30.106.204.77.rev.sfr.net) (Changing host)
2020-12-29 21:37:57 +0100neiluj(~jco@unaffiliated/neiluj)
2020-12-29 21:38:09 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-12-29 21:38:52 +0100hiroaki_(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2020-12-29 21:39:41 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-12-29 21:40:01 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-29 21:43:36 +0100chang(~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 21:44:00 +0100neiluj(~jco@unaffiliated/neiluj) (Remote host closed the connection)
2020-12-29 21:44:24 +0100neiluj(~jco@30.106.204.77.rev.sfr.net)
2020-12-29 21:45:01 +0100neiluj(~jco@30.106.204.77.rev.sfr.net) (Changing host)
2020-12-29 21:45:01 +0100neiluj(~jco@unaffiliated/neiluj)
2020-12-29 21:46:31 +0100ggole(~ggole@2001:8003:8119:7200:fc49:98ab:ef5a:2f0f) (Quit: Leaving)
2020-12-29 21:47:23 +0100rayyyy(~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
2020-12-29 21:49:43 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
2020-12-29 21:49:49 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood)
2020-12-29 21:50:49 +0100bor0(~boro@unaffiliated/boro/x-000000001) (Quit: Leaving)
2020-12-29 21:51:05 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-12-29 21:51:18 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2020-12-29 21:51:25 +0100hiroaki_(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
2020-12-29 21:51:44 +0100mnrmnaugh(~mnrmnaugh@unaffiliated/mnrmnaugh) ("Leaving")
2020-12-29 21:54:46 +0100neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 256 seconds)
2020-12-29 21:55:29 +0100neiluj(~jco@30.106.204.77.rev.sfr.net)
2020-12-29 21:56:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-12-29 21:56:29 +0100neiluj(~jco@30.106.204.77.rev.sfr.net) (Changing host)
2020-12-29 21:56:29 +0100neiluj(~jco@unaffiliated/neiluj)
2020-12-29 21:58:46 +0100mp___(~mp@hell.cx) (Ping timeout: 246 seconds)
2020-12-29 22:06:12 +0100bisickcor(~username@117.200.6.145)
2020-12-29 22:06:14 +0100eruiucuiviucuiv(dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162)
2020-12-29 22:07:32 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-12-29 22:07:47 +0100ke4pcx(~ke4pcx@024-158-093-129.res.spectrum.com)
2020-12-29 22:08:08 +0100eruiucuiviucuiv(dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Client Quit)
2020-12-29 22:08:57 +0100eruiucuiviucuiv(dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162)
2020-12-29 22:10:22 +0100iekfkk(~username@117.200.9.42) (Ping timeout: 260 seconds)
2020-12-29 22:11:10 +0100son0p(~son0p@181.136.122.143)
2020-12-29 22:14:57 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf)
2020-12-29 22:15:16 +0100michalz(~user@185.246.204.81) (Remote host closed the connection)
2020-12-29 22:20:02 +0100pera(~pera@unaffiliated/pera)
2020-12-29 22:20:03 +0100knupfer(~Thunderbi@200116b82c7e8f006d2991337593e4d1.dip.versatel-1u1.de)
2020-12-29 22:20:37 +0100dan64-(~dan64@dannyadam.com)
2020-12-29 22:21:09 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 260 seconds)
2020-12-29 22:22:16 +0100dan64(~dan64@dannyadam.com) (Ping timeout: 240 seconds)
2020-12-29 22:25:25 +0100neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 264 seconds)
2020-12-29 22:25:44 +0100neiluj(~jco@30.106.204.77.rev.sfr.net)
2020-12-29 22:27:23 +0100neiluj(~jco@30.106.204.77.rev.sfr.net) (Changing host)
2020-12-29 22:27:23 +0100neiluj(~jco@unaffiliated/neiluj)
2020-12-29 22:28:06 +0100acertain(sid470584@gateway/web/irccloud.com/x-qeytvjvyzprldktf) (Ping timeout: 246 seconds)
2020-12-29 22:28:18 +0100gluegadget(sid22336@gateway/web/irccloud.com/x-dtblqsqvfgxmasgf) (Ping timeout: 264 seconds)
2020-12-29 22:28:31 +0100dmj`(sid72307@gateway/web/irccloud.com/x-vmhiwakulamkftfj) (Ping timeout: 272 seconds)
2020-12-29 22:28:31 +0100hamishmack(sid389057@gateway/web/irccloud.com/x-waeuuwgsuejagktr) (Ping timeout: 246 seconds)
2020-12-29 22:28:40 +0100Firedancer(sid336191@gateway/web/irccloud.com/x-xkgtkehsqkpbtolh) (Ping timeout: 258 seconds)
2020-12-29 22:28:41 +0100rann(sid175221@gateway/web/irccloud.com/x-mnfqxkvscoribbyj) (Read error: Connection reset by peer)
2020-12-29 22:28:43 +0100heyj(sid171370@gateway/web/irccloud.com/x-ofkusdzepocmjaiw) (Ping timeout: 260 seconds)
2020-12-29 22:28:47 +0100dsturnbull(sid347899@gateway/web/irccloud.com/x-vorxxyotrrrkmyad) (Read error: Connection reset by peer)
2020-12-29 22:29:05 +0100dsturnbull(sid347899@gateway/web/irccloud.com/x-lpnbxtxtmytjyfdn)
2020-12-29 22:29:05 +0100gluegadget(sid22336@gateway/web/irccloud.com/x-mzkaypjsiixomsyk)
2020-12-29 22:29:09 +0100SanchayanMaity(sid478177@gateway/web/irccloud.com/x-gmsaydqqxiwaogmm) (Ping timeout: 272 seconds)
2020-12-29 22:29:13 +0100rann(sid175221@gateway/web/irccloud.com/x-ovijerzeskjjnqsz)
2020-12-29 22:29:22 +0100acertain(sid470584@gateway/web/irccloud.com/x-btwolubrdhxdebcc)
2020-12-29 22:29:23 +0100hamishmack(sid389057@gateway/web/irccloud.com/x-ytehzspaibvviimj)
2020-12-29 22:29:59 +0100Firedancer(sid336191@gateway/web/irccloud.com/x-wwtwmrdjuxzlppmn)
2020-12-29 22:30:30 +0100eruiucuiviucuiv(dd73e7a2@gateway/web/cgi-irc/kiwiirc.com/ip.221.115.231.162) (Quit: Connection closed)
2020-12-29 22:30:49 +0100dmj`(sid72307@gateway/web/irccloud.com/x-usztejhjqqsoahly)
2020-12-29 22:31:21 +0100SanchayanMaity(sid478177@gateway/web/irccloud.com/x-edlobfvvakeaqpnf)
2020-12-29 22:31:29 +0100heyj(sid171370@gateway/web/irccloud.com/x-mtsoiqubeqpujjfv)
2020-12-29 22:34:59 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2020-12-29 22:35:13 +0100roconnor(~roconnor@host-45-78-199-13.dyn.295.ca) (Read error: Connection reset by peer)
2020-12-29 22:36:43 +0100neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 256 seconds)
2020-12-29 22:37:21 +0100neiluj(~jco@30.106.204.77.rev.sfr.net)
2020-12-29 22:37:36 +0100 <merijn> dsal: What was your question?
2020-12-29 22:39:33 +0100 <merijn> dsal: Oh, I see. Wouldn't it be much simpler to make the 1 and 2 argument cases subcommands of the 0 argument case?
2020-12-29 22:42:04 +0100motherfsck(~motherfsc@unaffiliated/motherfsck) (Remote host closed the connection)
2020-12-29 22:45:07 +0100geekosaur(42d52137@66.213.33.55) (Remote host closed the connection)
2020-12-29 22:45:36 +0100Lowl3v3l(~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de)
2020-12-29 22:45:49 +0100neiluj(~jco@30.106.204.77.rev.sfr.net) (Ping timeout: 264 seconds)
2020-12-29 22:46:58 +0100 <dsal> merijn: That's how I did it initially, but they're effectively different commands. The command is 'config' where no args lists all things, one argument gets the current value, and two arguments sets a value. If I made them config-list, config-get, and config-set then this would be obvious, but I was hoping to do something a bit fancier.
2020-12-29 22:47:35 +0100 <merijn> dsal:
2020-12-29 22:47:36 +0100 <dsal> I did end up going a little better since all config parameters are known at compile time, so I can at least validate that if given and differentiate 0 from non-zero params.
2020-12-29 22:47:50 +0100 <merijn> dsal: No, I meant "make those subcommands of config"
2020-12-29 22:48:02 +0100 <merijn> So you get "config" "config set" "config get" or whatever
2020-12-29 22:48:10 +0100 <merijn> Subcommands can have subcommands
2020-12-29 22:48:17 +0100 <merijn> Nested arbitrarily deeply
2020-12-29 22:48:19 +0100 <dsal> Hmm... That's an idea.
2020-12-29 22:48:26 +0100 <dsal> Yeah, I might try that later. Thanks.
2020-12-29 22:48:29 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 22:48:34 +0100 <merijn> I think I have like 5 layers in my code, doing pretty much that :p
2020-12-29 22:48:36 +0100 <dsal> (I'm literally the only user here, but I'm enjoying the learning experience)
2020-12-29 22:48:53 +0100 <merijn> Although inverted
2020-12-29 22:49:08 +0100leafiest0(~leafiest@165.227.53.12)
2020-12-29 22:49:17 +0100leafiest0(~leafiest@165.227.53.12) (Client Quit)
2020-12-29 22:49:19 +0100 <merijn> So I have like "set foo bar 5" to update bar to 5 for foo
2020-12-29 22:51:47 +0100neiluj(~jco@30.106.204.77.rev.sfr.net)
2020-12-29 22:51:47 +0100 <dsal> I have three config parameters. heh. A lot of this code is unnecessary, just in case someone wants to use this program and not interact with sqlite directly.
2020-12-29 22:54:50 +0100 <dsal> I could also generate subcommands from my config parameters. That'd be interesting.
2020-12-29 22:55:04 +0100mp___(~mp@hell.cx)
2020-12-29 22:55:47 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
2020-12-29 22:56:16 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Client Quit)
2020-12-29 22:58:08 +0100 <gentauro> merijn: «If a program generates a lot of garbage, turning on multithreading (-threaded) and parallel garbage collection (-qg0 -N) may make it run faster.» https://notes.abhinavsarkar.net/2020/aoc-learnings
2020-12-29 22:58:12 +0100 <gentauro> :)
2020-12-29 22:58:35 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3)
2020-12-29 23:00:31 +0100Rudd0(~Rudd0@185.189.115.103)
2020-12-29 23:00:42 +0100leafiest0(~leafiest@165.227.53.12)
2020-12-29 23:01:19 +0100leafiest(~leafiest@c-73-118-152-9.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat)
2020-12-29 23:01:27 +0100aidecoe(~aidecoe@unaffiliated/aidecoe)
2020-12-29 23:01:44 +0100o1lo01ol1o(~o1lo01ol1@31.22.145.144)
2020-12-29 23:01:47 +0100 <merijn> That is...almost certainly incorrect
2020-12-29 23:01:48 +0100 <pie_> bitonic: how can i get cabal to show the gcc commands or what? i passed -v3 but no gcc commands afaict
2020-12-29 23:01:50 +0100leafiest0leafiest
2020-12-29 23:02:19 +0100 <dcoutts> pie_: you'd need to get ghc to show the gcc invocations.
2020-12-29 23:02:26 +0100 <dcoutts> use --ghc-options=-v iirc
2020-12-29 23:02:47 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-12-29 23:02:50 +0100 <dcoutts> cabal does not invoke gcc directly (much), ghc does it
2020-12-29 23:03:24 +0100 <merijn> gentauro: parallel GC may help if you have lots of *non*-garbage
2020-12-29 23:03:38 +0100 <pie_> mm ok
2020-12-29 23:03:56 +0100 <merijn> gentauro: And even then you don't want it to be parallel equal to number of capabilities like the default, you probably want a handful of threads at most
2020-12-29 23:04:23 +0100 <gentauro> merijn: the current API I'm working up against, only allow for 52 concurrent connections
2020-12-29 23:04:26 +0100 <merijn> gentauro: Also note that, iirc -qg and -qg0 don't do the same thing (not sure)
2020-12-29 23:04:34 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:3cf1:586e:d728:faa3) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-12-29 23:05:32 +0100 <gentauro> so using `mapConcurrently` (`async`) without previous `chunkOf` gave a lot of "maximum connection reached"
2020-12-29 23:05:33 +0100Widget(~widget@2a04:ee41:6:7207:c11:a26b:c8ca:962a)
2020-12-29 23:05:42 +0100 <gentauro> 23:04 < merijn> gentauro: Also note that, iirc -qg and -qg0 don't do the same thing (not sure)
2020-12-29 23:05:56 +0100 <gentauro> merijn: it is, the `docs` says that the default value is zero so …
2020-12-29 23:06:22 +0100 <merijn> gentauro: Right and the default is bad :)
2020-12-29 23:06:22 +0100 <gentauro> https://downloads.haskell.org/~ghc/8.8.4/docs/html/users_guide/runtime_control.html#rts-flag--qg%2…
2020-12-29 23:06:36 +0100neiluj(~jco@30.106.204.77.rev.sfr.net) (Quit: leaving)
2020-12-29 23:07:33 +0100 <gentauro> merijn: so you would rather `hardcode` the zero in case it changes?
2020-12-29 23:07:43 +0100 <merijn> gentauro: No
2020-12-29 23:07:51 +0100 <merijn> You want "-qg" without the 0 at all
2020-12-29 23:07:58 +0100Jeanne-Kamikaze(~Jeanne-Ka@static-198-54-134-148.cust.tzulo.com)
2020-12-29 23:07:59 +0100 <merijn> -qg0 still enables parallel GC
2020-12-29 23:08:08 +0100 <merijn> -qg (without any number) disables parallel GC
2020-12-29 23:08:09 +0100 <gentauro> roger that. It's what I'm using :)
2020-12-29 23:08:29 +0100o1lo01ol1o(~o1lo01ol1@31.22.145.144) (Remote host closed the connection)
2020-12-29 23:08:32 +0100 <merijn> You almost certainly *don't* want parallel GC, as in most applications its considerably worse
2020-12-29 23:09:07 +0100 <merijn> Especially not in combination with -N
2020-12-29 23:09:40 +0100 <gentauro> merijn: I understand
2020-12-29 23:11:19 +0100MOSCOS(~MOSCOS@152.32.70.55)
2020-12-29 23:12:23 +0100 <aljce> Does anyone know how to coerce newtypes in accelerate? I have newtype Foo = Foo Word16 and I want to write the function fromWord16 :: Exp Word16 -> Exp Foo
2020-12-29 23:13:01 +0100Widget(~widget@2a04:ee41:6:7207:c11:a26b:c8ca:962a) (Ping timeout: 268 seconds)
2020-12-29 23:13:25 +0100hiroaki_(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2020-12-29 23:14:12 +0100ransom(~c4264035@2a09:bac0:72::82f:c34)
2020-12-29 23:14:52 +0100Mikagami(~MOSCOS@122.54.107.175) (Ping timeout: 272 seconds)
2020-12-29 23:15:33 +0100Mikagami(~MOSCOS@122.54.107.175)
2020-12-29 23:16:05 +0100MOSCOS(~MOSCOS@152.32.70.55) (Ping timeout: 240 seconds)
2020-12-29 23:17:06 +0100rmk236(~lcampos@2a02:908:3616:b100:849c:a12b:ff95:e193) (Quit: Leaving.)
2020-12-29 23:21:56 +0100dfeuer(~dfeuer@pool-108-18-223-60.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-12-29 23:23:52 +0100SeMas(uid32977@gateway/web/irccloud.com/x-ewxsbmmdfjckxyvi)
2020-12-29 23:24:40 +0100PM_me_your_fzfdysfigured
2020-12-29 23:26:16 +0100hiroaki_(~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de)
2020-12-29 23:26:21 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-12-29 23:26:57 +0100christo(~chris@81.96.113.213)
2020-12-29 23:30:09 +0100teardown(~user@gateway/tor-sasl/mrush) (Remote host closed the connection)
2020-12-29 23:30:18 +0100knupfer(~Thunderbi@200116b82c7e8f006d2991337593e4d1.dip.versatel-1u1.de) (Quit: knupfer)
2020-12-29 23:30:29 +0100knupfer(~Thunderbi@200116b82c7e8f00c80444b93720a5cc.dip.versatel-1u1.de)
2020-12-29 23:30:31 +0100knupfer(~Thunderbi@200116b82c7e8f00c80444b93720a5cc.dip.versatel-1u1.de) (Client Quit)
2020-12-29 23:31:31 +0100knupfer(~Thunderbi@200116b82c7e8f0071cb7f91529dc1c7.dip.versatel-1u1.de)
2020-12-29 23:31:32 +0100christo(~chris@81.96.113.213) (Ping timeout: 258 seconds)
2020-12-29 23:32:09 +0100knupfer(~Thunderbi@200116b82c7e8f0071cb7f91529dc1c7.dip.versatel-1u1.de) (Client Quit)
2020-12-29 23:32:18 +0100knupfer(~Thunderbi@200116b82c7e8f000014a7704583bd48.dip.versatel-1u1.de)
2020-12-29 23:32:42 +0100knupfer(~Thunderbi@200116b82c7e8f000014a7704583bd48.dip.versatel-1u1.de) (Client Quit)
2020-12-29 23:33:11 +0100knupfer(~Thunderbi@200116b82c7e8f0061e62b7ff26d62cd.dip.versatel-1u1.de)
2020-12-29 23:33:23 +0100knupfer(~Thunderbi@200116b82c7e8f0061e62b7ff26d62cd.dip.versatel-1u1.de) (Client Quit)
2020-12-29 23:33:49 +0100knupfer(~Thunderbi@200116b82c7e8f007188ba0de3569746.dip.versatel-1u1.de)
2020-12-29 23:33:50 +0100knupfer(~Thunderbi@200116b82c7e8f007188ba0de3569746.dip.versatel-1u1.de) (Read error: Connection reset by peer)
2020-12-29 23:34:51 +0100knupfer(~Thunderbi@200116b82c7e8f002d6363f423dba2c0.dip.versatel-1u1.de)
2020-12-29 23:35:23 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-12-29 23:35:25 +0100teardown(~user@gateway/tor-sasl/mrush)
2020-12-29 23:35:41 +0100knupfer(~Thunderbi@200116b82c7e8f002d6363f423dba2c0.dip.versatel-1u1.de) (Client Quit)
2020-12-29 23:35:52 +0100knupfer(~Thunderbi@200116b82c7e8f0039b8789eeb6acf88.dip.versatel-1u1.de)
2020-12-29 23:37:37 +0100knupfer(~Thunderbi@200116b82c7e8f0039b8789eeb6acf88.dip.versatel-1u1.de) (Client Quit)
2020-12-29 23:37:44 +0100christo(~chris@81.96.113.213)
2020-12-29 23:37:45 +0100knupfer(~Thunderbi@200116b82c7e8f00bd6d1b305dfa49c4.dip.versatel-1u1.de)
2020-12-29 23:41:19 +0100Widget(~widget@2a04:ee41:6:7207:c11:a26b:c8ca:962a)
2020-12-29 23:41:37 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 265 seconds)
2020-12-29 23:44:49 +0100anhedonite(~anhedonit@c-73-78-103-7.hsd1.co.comcast.net)
2020-12-29 23:44:55 +0100anhedonite(~anhedonit@c-73-78-103-7.hsd1.co.comcast.net) ()
2020-12-29 23:45:54 +0100fendor_(~fendor@178.165.130.45.wireless.dyn.drei.com) (Remote host closed the connection)
2020-12-29 23:46:03 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
2020-12-29 23:46:32 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-12-29 23:47:27 +0100teardown(~user@gateway/tor-sasl/mrush)
2020-12-29 23:49:32 +0100smitop(uid328768@gateway/web/irccloud.com/x-tanlhsstfzbvbzcf)
2020-12-29 23:50:45 +0100leat(~leat@128-71-108-164.broadband.corbina.ru)
2020-12-29 23:51:02 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
2020-12-29 23:51:26 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 256 seconds)