2020/11/04

2020-11-04 00:00:07 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-04 00:01:05 +0100hekkaidekapus_hekkaidekapus
2020-11-04 00:02:03 +0100 <hekkaidekapus> dminuoso: Are you aware of #haskell-ide? I hear it is the place where prompt answers are provided for questions like yours.
2020-11-04 00:02:42 +0100 <Uniaika> -> #Haskell-ide-engine, hekkaidekapus
2020-11-04 00:03:03 +0100 <hekkaidekapus> Uniaika: oopsie, thank you for the correction.
2020-11-04 00:03:04 +0100mrchampion(~mrchampio@216-211-57-41.dynamic.tbaytel.net) (Ping timeout: 265 seconds)
2020-11-04 00:04:21 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 00:04:28 +0100da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com)
2020-11-04 00:05:03 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-11-04 00:06:35 +0100 <dminuoso> hekkaidekapus: Ahh, cheers. I was not :)
2020-11-04 00:07:55 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
2020-11-04 00:08:39 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-04 00:08:54 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2020-11-04 00:11:23 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-11-04 00:14:19 +0100conal(~conal@2600:380:8512:89f8:e48b:604e:1b9f:cf32)
2020-11-04 00:18:25 +0100carlomagno(~cararell@148.87.23.4) (Remote host closed the connection)
2020-11-04 00:19:15 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 00:19:32 +0100borne(~fritjof@200116b86457d500641bd1d418d012e1.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-04 00:20:12 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 00:20:49 +0100carlomagno(~cararell@148.87.23.4)
2020-11-04 00:23:24 +0100jedws(~jedws@101.184.150.81)
2020-11-04 00:24:25 +0100gtk(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-11-04 00:24:50 +0100carlomagno(~cararell@148.87.23.4) (Remote host closed the connection)
2020-11-04 00:25:10 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-04 00:25:10 +0100irc_user(uid423822@gateway/web/irccloud.com/x-mlbnqpkqljzoxqfd)
2020-11-04 00:25:51 +0100conal_(~conal@64.71.133.70)
2020-11-04 00:26:02 +0100howdoi(uid224@gateway/web/irccloud.com/x-wivnzygvcxbkqyle)
2020-11-04 00:26:38 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 00:27:01 +0100texasmyn_(~texasmyns@64.44.55.36)
2020-11-04 00:27:05 +0100christo(~chris@81.96.113.213)
2020-11-04 00:27:38 +0100conal(~conal@2600:380:8512:89f8:e48b:604e:1b9f:cf32) (Ping timeout: 264 seconds)
2020-11-04 00:27:44 +0100 <irc_user> I was looking at some elm vs purescript discussions and I see a lot of people talking about how you have to write a lot of boilerplate in elm because of lack of type classes. What exactly is the boilerplate that one would have to write in the absence of type classes?
2020-11-04 00:27:49 +0100mrchampion(~mrchampio@216-211-57-41.dynamic.tbaytel.net)
2020-11-04 00:28:46 +0100dcoutts_(~duncan@33.14.75.194.dyn.plus.net)
2020-11-04 00:28:46 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 00:29:10 +0100da39a3ee5e6b4b0d(~textual@n11211935170.netvigator.com) (Ping timeout: 272 seconds)
2020-11-04 00:29:33 +0100 <dminuoso> irc_user: So imagine you wanted to compare two lists for equality. What function would you use?
2020-11-04 00:29:48 +0100DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Ping timeout: 272 seconds)
2020-11-04 00:30:23 +0100 <irc_user> Hmm sorry I'm not totally into functional yet, but I would probably iterate over them? dminuoso
2020-11-04 00:30:27 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 00:30:40 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 260 seconds)
2020-11-04 00:30:41 +0100 <dminuoso> I mean fundamentally, the statement is incorrect since anything you can do with typeclasses, you can do with explicit dictionary passing
2020-11-04 00:30:48 +0100 <dminuoso> But what typeclasses buy you is coherence
2020-11-04 00:31:13 +0100 <dolio> Well, also, adding dictionary arguments for everything you're 'overloading' by is boilerplate.
2020-11-04 00:31:16 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-11-04 00:31:27 +0100Resurge(~Thunderbi@213.219.168.185.adsl.dyn.edpnet.net) (Quit: Resurge)
2020-11-04 00:31:36 +0100carlomagno(~cararell@148.87.23.4)
2020-11-04 00:31:44 +0100 <irc_user> "dictionary"?
2020-11-04 00:32:04 +0100 <dminuoso> Say I hand you a `Set Thing`, and you give some `Set Thing` back. If you're just a library author, you can know about my Thing, so withot some funky tricks you cant operate on that Set with a different Ord
2020-11-04 00:33:40 +0100christo(~chris@81.96.113.213)
2020-11-04 00:33:50 +0100 <dminuoso> irc_user: GHC implements typeclass instances as dictionaries/records. So when you write `f :: Num a => ...` then under the hood this becomes a function taking a `Num a` record, that contains all the method implementations.
2020-11-04 00:34:01 +0100 <dminuoso> (In the absence of optimizations)
2020-11-04 00:34:03 +0100 <bqv> > showsPrec 0 "test"
2020-11-04 00:34:06 +0100 <lambdabot> <[Char] -> [Char]>
2020-11-04 00:34:12 +0100carlomagno(~cararell@148.87.23.4) (Remote host closed the connection)
2020-11-04 00:34:43 +0100 <dolio> Also, having to manually specify how to build dictionaries for `List a` out of dictionaries for `a` every place you want the former is boilerplate.
2020-11-04 00:36:00 +0100 <dminuoso> Consider the initial example: You will need a comparing function, so some `eqList :: (a -> a -> Bool) -> [a] -> [a] -> Bool`. You have to write this explicitly, and provide it with an appropriate equality function on the elements
2020-11-04 00:36:15 +0100 <dminuoso> You cant reuse any of that if you want equality on maps too
2020-11-04 00:36:27 +0100 <dminuoso> And this promotes great error because there's no assurance we will all agree on the equality functions
2020-11-04 00:36:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 00:36:51 +0100christo(~chris@81.96.113.213) (Read error: No route to host)
2020-11-04 00:36:53 +0100 <dminuoso> (Leading go incoherence, where you and I might use conflicting implementations, while sharing some data)
2020-11-04 00:37:16 +0100christo(~chris@81.96.113.213)
2020-11-04 00:37:36 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922)
2020-11-04 00:37:40 +0100 <irc_user> Ohhh, so it would be kind of like generics/traits?
2020-11-04 00:37:46 +0100 <dminuoso> So without typeclasses, you will need to remember how all these eq functions are called, and you can't just automatically derive them. If you have parametrized data types, you will need to write manual higher order equality functions, and explicitly pass more eq functions inside
2020-11-04 00:38:44 +0100 <ski> > showsPrec 0 "bqv" ""
2020-11-04 00:38:47 +0100 <lambdabot> "\"bqv\""
2020-11-04 00:39:21 +0100 <bqv> figured it out, i just opened ghci
2020-11-04 00:39:27 +0100 <bqv> trying to migrate from prelude to protolude
2020-11-04 00:39:37 +0100 <bqv> monoids are ..definitely nicer
2020-11-04 00:40:02 +0100 <irc_user> I think I see, thank you! I definitely have some more reading to do but this will be great to refer back to.
2020-11-04 00:40:04 +0100 <dminuoso> irc_user: Another motivating example is.. lets say you want to add numbers.
2020-11-04 00:40:05 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 00:40:35 +0100 <dminuoso> Unless you have some other elaborate overloading mechanism, you can't use (+), because what type would (+) even have?
2020-11-04 00:40:36 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:1965:9c13:18a8:4b5c)
2020-11-04 00:40:57 +0100 <dminuoso> So you'd have `addInt :: Int -> Int -> Int`, `addInteger :: Integer -> Integer -> Integer`, `addFloat :: Float -> Float -> Float`, etc..
2020-11-04 00:41:11 +0100carlomagno(~cararell@148.87.23.4)
2020-11-04 00:41:27 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-04 00:41:42 +0100 <dminuoso> (The moment you ponder about this for a while, you'd probably end up with something like `add :: Num a -> a -> a -> a` with some `data Num a = Num { numAdd :: a -> a -> a, ... }`
2020-11-04 00:41:46 +0100skapazzo(~skapazzo@151.9.205.227)
2020-11-04 00:41:47 +0100 <ski> it's especially "merge" functions (like `union :: Ord a => Set a -> Set a -> Set a') that benefit from knowing the same ordering was used to build the two input sets
2020-11-04 00:41:54 +0100 <dminuoso> Which brings you back to all the other problems above
2020-11-04 00:42:45 +0100 <ski> (if not for that, one could attempt to bundle the ordering relation inside the set)
2020-11-04 00:43:56 +0100 <irc_user> I see, this makes a lot of sense now, thank you for the descriptive examples
2020-11-04 00:47:41 +0100wroathe_(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-04 00:47:58 +0100wroathe_(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Client Quit)
2020-11-04 00:48:17 +0100wroathe_(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-04 00:48:48 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-11-04 00:48:58 +0100wroathe_wroathe
2020-11-04 00:50:15 +0100skapazzo(~skapazzo@151.9.205.227) (Quit: Lost terminal)
2020-11-04 00:51:30 +0100hackagereflex-dom-retractable 0.1.4.0 - Routing and retractable back button for reflex-dom https://hackage.haskell.org/package/reflex-dom-retractable-0.1.4.0 (NCrashed)
2020-11-04 00:52:03 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-04 00:52:58 +0100Rudd0^(~Rudd0@185.189.115.103)
2020-11-04 00:54:18 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 00:57:12 +0100Rudd0(~Rudd0@185.189.115.98) (Ping timeout: 260 seconds)
2020-11-04 00:57:16 +0100Rudd0^(~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
2020-11-04 00:59:23 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 00:59:35 +0100Chi1thangoo(~Chi1thang@87.112.60.168) (Ping timeout: 256 seconds)
2020-11-04 01:00:02 +0100superfly1(~superfly@84.39.117.57) ()
2020-11-04 01:00:45 +0100hekkaidekapusdoesn’t mean to snitch but poor Ben in #ghc bearing with our old acquaintance larou :)
2020-11-04 01:02:10 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 01:02:55 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922)
2020-11-04 01:03:20 +0100christo(~chris@81.96.113.213)
2020-11-04 01:03:38 +0100SrPx(sid108780@gateway/web/irccloud.com/x-yrwlrdlfqyblrniu) (Ping timeout: 264 seconds)
2020-11-04 01:03:38 +0100wpcarro(sid397589@gateway/web/irccloud.com/x-acwmxyqgeyskyphp) (Ping timeout: 264 seconds)
2020-11-04 01:03:44 +0100liquorice(sid267884@gateway/web/irccloud.com/x-diraasfarzuiqldj) (Ping timeout: 240 seconds)
2020-11-04 01:03:44 +0100joshmeredith(sid387798@gateway/web/irccloud.com/x-ewrwlxlkgcoxcbts) (Ping timeout: 240 seconds)
2020-11-04 01:03:45 +0100Cir0X(sid221743@gateway/web/irccloud.com/x-smmdmragpgxrsuxw) (Ping timeout: 268 seconds)
2020-11-04 01:03:47 +0100cemerick(sid54985@gateway/web/irccloud.com/x-zrzfloaemrmpgqmz) (Read error: Connection reset by peer)
2020-11-04 01:03:47 +0100lally(sid388228@gateway/web/irccloud.com/x-vliwvdsdwmscsdor) (Read error: Connection reset by peer)
2020-11-04 01:03:47 +0100banjiewen_(sid115913@gateway/web/irccloud.com/x-eopdvyfizptvmxgr) (Write error: Connection reset by peer)
2020-11-04 01:03:47 +0100natim87(sid286962@gateway/web/irccloud.com/x-hyhuipwwdjkbudmv) (Read error: Connection reset by peer)
2020-11-04 01:03:47 +0100cvlad-(sid203065@gateway/web/irccloud.com/x-nspzwlyvupawshac) (Read error: Connection reset by peer)
2020-11-04 01:03:47 +0100fiadliel(sid399568@gateway/web/irccloud.com/x-krrigsmeuaxeyvln) (Read error: Connection reset by peer)
2020-11-04 01:03:47 +0100AndreasK(sid320732@gateway/web/irccloud.com/x-jqlvoqrfkfkmzsvx) (Read error: Connection reset by peer)
2020-11-04 01:03:53 +0100machinedgod(~machinedg@142.169.78.163) (Ping timeout: 260 seconds)
2020-11-04 01:04:05 +0100lally(sid388228@gateway/web/irccloud.com/x-ajahqmwjiqmyvpjz)
2020-11-04 01:04:06 +0100cemerick(sid54985@gateway/web/irccloud.com/x-abxbprbujguoyqts)
2020-11-04 01:04:06 +0100Cir0X(sid221743@gateway/web/irccloud.com/x-aaolygdvoezcqebh)
2020-11-04 01:04:06 +0100cvlad-(sid203065@gateway/web/irccloud.com/x-rokspjlhyqzgwkmr)
2020-11-04 01:04:06 +0100AndreasK(sid320732@gateway/web/irccloud.com/x-uioigjqavmrtwcmd)
2020-11-04 01:04:07 +0100fiadliel(sid399568@gateway/web/irccloud.com/x-vfhgfferfkqpsvwi)
2020-11-04 01:04:09 +0100banjiewen_(sid115913@gateway/web/irccloud.com/x-xuhcxuunqkywfagg)
2020-11-04 01:04:09 +0100natim87(sid286962@gateway/web/irccloud.com/x-olzvsuojmvwuxdem)
2020-11-04 01:04:13 +0100moistoreos(~moist_ore@99-160-143-51.lightspeed.nsvltn.sbcglobal.net)
2020-11-04 01:04:22 +0100eruditass(uid248673@gateway/web/irccloud.com/x-hmiqmtrgdlavbpwr) (Ping timeout: 268 seconds)
2020-11-04 01:04:27 +0100ryjm(sid383513@gateway/web/irccloud.com/x-ddgnxwnpegroygna) (Ping timeout: 260 seconds)
2020-11-04 01:04:44 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 01:04:50 +0100ebutleriv(sid217783@gateway/web/irccloud.com/x-pfvqbqpaoeusjfcx) (Ping timeout: 264 seconds)
2020-11-04 01:04:51 +0100joshmeredith(sid387798@gateway/web/irccloud.com/x-sxpuerlncnrlahqm)
2020-11-04 01:05:03 +0100wpcarro(sid397589@gateway/web/irccloud.com/x-vqtnwwuckwrwiioj)
2020-11-04 01:05:24 +0100liquorice(sid267884@gateway/web/irccloud.com/x-kyqvqvczajcsjcev)
2020-11-04 01:05:48 +0100 <dminuoso> hekkaidekapus: larou is markov chaining #nixos as well
2020-11-04 01:05:50 +0100machinedgod(~machinedg@207.253.244.210)
2020-11-04 01:06:01 +0100 <dminuoso> Are they an old acquainance?
2020-11-04 01:06:06 +0100 <hekkaidekapus> heheheheh…
2020-11-04 01:06:07 +0100ebutleriv(sid217783@gateway/web/irccloud.com/x-smeovyzgvmjpfemr)
2020-11-04 01:06:20 +0100ryjm(sid383513@gateway/web/irccloud.com/x-vjmcrbfkcwlkcexr)
2020-11-04 01:06:27 +0100SrPx(sid108780@gateway/web/irccloud.com/x-pdttujrjixkduttv)
2020-11-04 01:06:41 +0100eruditass(uid248673@gateway/web/irccloud.com/x-xzxytktqpfjekcra)
2020-11-04 01:06:47 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-04 01:06:57 +0100 <hekkaidekapus> Yeah, tomsmeding had some data that they may be fog reincarnated.
2020-11-04 01:07:30 +0100hackagereflex-dom-retractable 0.1.5.0 - Routing and retractable back button for reflex-dom https://hackage.haskell.org/package/reflex-dom-retractable-0.1.5.0 (NCrashed)
2020-11-04 01:07:41 +0100 <dminuoso> well fog seemed like a real person
2020-11-04 01:07:56 +0100 <hekkaidekapus> hahahahaha… AI gone wrong :D
2020-11-04 01:08:27 +0100 <bqv> i used inline-c for my program
2020-11-04 01:08:29 +0100 <bqv> i'm regretting it
2020-11-04 01:08:34 +0100 <bqv> and loving it at the same time...
2020-11-04 01:09:04 +0100 <dminuoso> hekkaidekapus: Gosh, if I stare at whats been written in both #nixos and #ghc...
2020-11-04 01:09:06 +0100 <bqv> but i think i'm going to have to rip it out and use something else
2020-11-04 01:09:10 +0100 <gobbleguy> Let's keep the turing-test speculation out of this channel though
2020-11-04 01:09:15 +0100 <dminuoso> That's gotta be a markov chain generator.
2020-11-04 01:09:35 +0100christo(~chris@81.96.113.213)
2020-11-04 01:10:40 +0100 <bqv> it can't be purely markov
2020-11-04 01:10:46 +0100 <bqv> it responded to your questions accurately
2020-11-04 01:11:28 +0100 <gobbleguy> bqv: please
2020-11-04 01:11:48 +0100 <bqv> i mean in terms of grammar! not sense...
2020-11-04 01:12:02 +0100 <gobbleguy> bqv: can you read my messages?
2020-11-04 01:12:09 +0100 <bqv> oh
2020-11-04 01:13:19 +0100argent0(~argent0@168.227.97.5)
2020-11-04 01:13:27 +0100zhenchaoli(~user@2601:641:8000:4f00:955e:b059:4f08:2b29)
2020-11-04 01:14:27 +0100christo(~chris@81.96.113.213) (Ping timeout: 258 seconds)
2020-11-04 01:15:01 +0100hackagereflex-dom-retractable 0.1.6.0 - Routing and retractable back button for reflex-dom https://hackage.haskell.org/package/reflex-dom-retractable-0.1.6.0 (NCrashed)
2020-11-04 01:15:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 01:16:09 +0100zhenchaoli(~user@2601:641:8000:4f00:955e:b059:4f08:2b29) (Client Quit)
2020-11-04 01:16:42 +0100christo(~chris@81.96.113.213)
2020-11-04 01:16:59 +0100zhenchaoli(~user@2601:641:8000:4f00:955e:b059:4f08:2b29)
2020-11-04 01:19:38 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 01:19:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-04 01:19:43 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-04 01:20:42 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-04 01:21:50 +0100christo(~chris@81.96.113.213)
2020-11-04 01:25:21 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 01:25:35 +0100christo(~chris@81.96.113.213)
2020-11-04 01:28:29 +0100conal_(~conal@64.71.133.70) (Ping timeout: 256 seconds)
2020-11-04 01:29:18 +0100conal(~conal@64.71.133.70)
2020-11-04 01:30:30 +0100Tario(~Tario@201.192.165.173)
2020-11-04 01:31:38 +0100aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net)
2020-11-04 01:31:38 +0100conal(~conal@64.71.133.70) (Read error: Connection reset by peer)
2020-11-04 01:31:44 +0100aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net) ()
2020-11-04 01:33:48 +0100conal(~conal@64.71.133.70)
2020-11-04 01:35:08 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-04 01:37:58 +0100jess(jess@freenode/staff/jess) (Quit: Leaving)
2020-11-04 01:38:09 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-04 01:40:06 +0100carlomagno1(~cararell@148.87.23.13)
2020-11-04 01:40:42 +0100akad_(~akad@109107030050.radomsko.vectranet.pl) (Ping timeout: 265 seconds)
2020-11-04 01:41:38 +0100xff0x(~fox@2001:1a81:53b4:ba00:49d8:d2a:69a9:1ef4) (Ping timeout: 246 seconds)
2020-11-04 01:41:40 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds)
2020-11-04 01:41:40 +0100LKoen(~LKoen@79.160.9.109.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-11-04 01:42:09 +0100carlomagno(~cararell@148.87.23.4) (Ping timeout: 265 seconds)
2020-11-04 01:42:49 +0100xff0x(~fox@2001:1a81:53b4:ba00:98f7:2de1:6246:9047)
2020-11-04 01:45:04 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 240 seconds)
2020-11-04 01:46:46 +0100russruss8(~russruss@my.russellmcc.com) (Quit: The Lounge - https://thelounge.chat)
2020-11-04 01:47:03 +0100russruss84(~russruss@my.russellmcc.com)
2020-11-04 01:47:07 +0100livvy(~livvy@gateway/tor-sasl/livvy) (Quit: Network issue or system upgrade probably)
2020-11-04 01:50:10 +0100russruss84(~russruss@my.russellmcc.com) (Client Quit)
2020-11-04 01:50:52 +0100russruss84(~russruss@my.russellmcc.com)
2020-11-04 01:50:54 +0100 <koz_> If I'm looking at profiteur results, and am like, 100 functions deep, is there a way to get the 'top' thing to be somethign 100 functions deep, and not like, main?
2020-11-04 01:52:51 +0100 <dminuoso> koz_: Can you rephrase the question?
2020-11-04 01:53:23 +0100 <koz_> dminuoso: Profiteur gives you a graphical view of how much time you spend where.
2020-11-04 01:53:35 +0100 <koz_> And this gets subdivided as you 'descend' into functions called by other functions.
2020-11-04 01:53:40 +0100 <koz_> I'm like, 100 such descents in.
2020-11-04 01:53:50 +0100 <koz_> And as a result, I have huge amounts of visual noise from the graphical view.
2020-11-04 01:53:54 +0100 <koz_> I wanna eliminate that noise.
2020-11-04 01:54:00 +0100 <dminuoso> koz_: Ohh haha. Lacking that information, that sentence read like completely gibberish.
2020-11-04 01:54:21 +0100 <koz_> dminuoso: Sorry, I've been chasing parser bugs all day and seem to be incapable of forming sentences.
2020-11-04 01:55:15 +0100 <koz_> Found it, never mind.
2020-11-04 01:55:19 +0100 <koz_> Handy zoom button.
2020-11-04 01:55:27 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 01:56:02 +0100falafel(~falafel@173-19-187-164.client.mchsi.com)
2020-11-04 01:59:59 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-04 02:00:20 +0100christo(~chris@81.96.113.213)
2020-11-04 02:01:52 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-11-04 02:01:58 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-11-04 02:02:23 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2020-11-04 02:03:49 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 264 seconds)
2020-11-04 02:03:56 +0100plutoniix(~q@175.176.222.7)
2020-11-04 02:04:27 +0100xiinotulp(~q@175.176.222.7)
2020-11-04 02:04:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 02:04:56 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-11-04 02:05:28 +0100conal(~conal@64.71.133.70)
2020-11-04 02:07:04 +0100jakob_(~textual@p200300f49f1622003cfc249d5991ef23.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2020-11-04 02:07:26 +0100argent0(~argent0@168.227.97.5) (Ping timeout: 256 seconds)
2020-11-04 02:09:06 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2020-11-04 02:09:51 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-04 02:12:09 +0100s00pcan(~chris@075-133-056-178.res.spectrum.com) (Remote host closed the connection)
2020-11-04 02:14:03 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds)
2020-11-04 02:14:57 +0100xiinotulp(~q@175.176.222.7) (Quit: Leaving)
2020-11-04 02:15:27 +0100alp(~alp@2a01:e0a:58b:4920:99ca:9a50:cea9:e213) (Ping timeout: 272 seconds)
2020-11-04 02:16:38 +0100argent0(~argent0@168.227.97.5)
2020-11-04 02:17:21 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2020-11-04 02:18:56 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com) (Ping timeout: 260 seconds)
2020-11-04 02:19:52 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
2020-11-04 02:20:47 +0100invaser(~Thunderbi@31.148.23.125) (Quit: invaser)
2020-11-04 02:20:51 +0100tmciver(~tmciver@172.101.40.226)
2020-11-04 02:21:05 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-04 02:23:28 +0100Lord_of_Life_(~Lord@46.217.221.241)
2020-11-04 02:23:39 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 02:24:46 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds)
2020-11-04 02:26:05 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
2020-11-04 02:27:48 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-04 02:28:25 +0100machinedgod(~machinedg@207.253.244.210) (Ping timeout: 264 seconds)
2020-11-04 02:29:57 +0100machinedgod(~machinedg@142.169.78.180)
2020-11-04 02:30:29 +0100s00pcan(~chris@075-133-056-178.res.spectrum.com)
2020-11-04 02:30:59 +0100 <bqv> dminuoso: can i have a nix shellFor with c2hs in it?
2020-11-04 02:32:18 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 256 seconds)
2020-11-04 02:32:26 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds)
2020-11-04 02:35:40 +0100aarvar1(~foewfoiew@c.24.56.239.179.static.broadstripe.net)
2020-11-04 02:35:52 +0100aarvar1(~foewfoiew@c.24.56.239.179.static.broadstripe.net) ()
2020-11-04 02:36:17 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
2020-11-04 02:42:25 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 02:44:24 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 02:47:13 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds)
2020-11-04 02:51:30 +0100texasmyn_texasmynsted_
2020-11-04 02:51:46 +0100texasmynsted_(~texasmyns@64.44.55.36) ()
2020-11-04 02:52:08 +0100texasmyn_(~texasmyns@64.44.55.36)
2020-11-04 02:53:06 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 02:53:10 +0100texasmyn_texasmynsted_
2020-11-04 02:53:40 +0100Tario(~Tario@201.192.165.173)
2020-11-04 02:56:45 +0100christo(~chris@81.96.113.213)
2020-11-04 02:57:12 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-11-04 02:58:23 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-04 02:58:38 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 272 seconds)
2020-11-04 02:58:47 +0100zhenchaoli(~user@2601:641:8000:4f00:955e:b059:4f08:2b29) (Ping timeout: 260 seconds)
2020-11-04 02:59:27 +0100drbean(~drbean@TC210-63-209-70.static.apol.com.tw)
2020-11-04 03:00:50 +0100zhenchaoli(~user@2601:641:8000:4f00:955e:b059:4f08:2b29)
2020-11-04 03:03:14 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 03:03:28 +0100xsperry(~as@unaffiliated/xsperry) (Ping timeout: 260 seconds)
2020-11-04 03:06:49 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 03:07:20 +0100st8less(~st8less@2603:a060:11fd:0:357c:d497:b907:2901) (Quit: WeeChat 2.7.1)
2020-11-04 03:07:25 +0100wei2912(~wei2912@unaffiliated/wei2912)
2020-11-04 03:07:45 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-04 03:09:08 +0100texasmynstedGuest6044
2020-11-04 03:09:08 +0100Guest6044(~texasmyns@99.96.221.112) (Killed (hitchcock.freenode.net (Nickname regained by services)))
2020-11-04 03:09:08 +0100texasmynsted_texasmynsted
2020-11-04 03:09:30 +0100justan0theruser(~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.9)
2020-11-04 03:09:57 +0100texasmynsted_(~texasmyns@99.96.221.112)
2020-11-04 03:10:16 +0100vnz(~vnz@unaffiliated/vnz) (Quit: ZNC - http://znc.in)
2020-11-04 03:12:06 +0100vnz(~vnz@2001:bc8:604:94f::1)
2020-11-04 03:12:06 +0100vnz(~vnz@2001:bc8:604:94f::1) (Changing host)
2020-11-04 03:12:06 +0100vnz(~vnz@unaffiliated/vnz)
2020-11-04 03:13:24 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 03:13:57 +0100pera(~pera@unaffiliated/pera) (Quit: leaving)
2020-11-04 03:14:01 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-04 03:15:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 03:16:56 +0100jbox(~atlas@unaffiliated/jbox)
2020-11-04 03:17:00 +0100hackagereflex-ghci 0.1.5.0 - A GHCi widget library for use in reflex applications https://hackage.haskell.org/package/reflex-ghci-0.1.5.0 (abrar)
2020-11-04 03:18:38 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 03:20:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-11-04 03:20:34 +0100jamm__(~jamm@unaffiliated/jamm)
2020-11-04 03:21:32 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2020-11-04 03:22:29 +0100Deide1(~Deide@217.155.19.23)
2020-11-04 03:23:19 +0100Deide1(~Deide@217.155.19.23) (Client Quit)
2020-11-04 03:23:20 +0100Deide(~Deide@217.155.19.23) (Ping timeout: 260 seconds)
2020-11-04 03:26:29 +0100jrm(~jrm@freebsd/developer/jrm) (Quit: ciao)
2020-11-04 03:26:55 +0100jrm(~jrm@freebsd/developer/jrm)
2020-11-04 03:27:25 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 246 seconds)
2020-11-04 03:27:32 +0100nuncanada(~dude@179.235.160.168) (Quit: Leaving)
2020-11-04 03:27:55 +0100falafel(~falafel@173-19-187-164.client.mchsi.com) (Remote host closed the connection)
2020-11-04 03:28:16 +0100falafel(~falafel@173-19-187-164.client.mchsi.com)
2020-11-04 03:28:43 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 03:29:24 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-04 03:29:44 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-04 03:30:12 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-04 03:30:32 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-04 03:31:01 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-04 03:31:04 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds)
2020-11-04 03:31:19 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-04 03:31:31 +0100 <bqv> forget it. just using a v1-sandbox instead
2020-11-04 03:31:49 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-04 03:32:06 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-04 03:32:37 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-04 03:32:42 +0100jedws(~jedws@101.184.150.81) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 03:33:22 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 246 seconds)
2020-11-04 03:34:04 +0100drbean(~drbean@TC210-63-209-70.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-11-04 03:35:03 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 03:35:47 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
2020-11-04 03:36:02 +0100blissful(~azuline@unaffiliated/azuline)
2020-11-04 03:36:41 +0100dddddd(~dddddd@unaffiliated/dddddd) (Ping timeout: 268 seconds)
2020-11-04 03:39:12 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922)
2020-11-04 03:40:18 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2020-11-04 03:42:33 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 260 seconds)
2020-11-04 03:45:39 +0100dddddd(~dddddd@unaffiliated/dddddd)
2020-11-04 03:46:05 +0100toorevitimirp(~tooreviti@117.182.183.132)
2020-11-04 03:50:18 +0100Jeanne-Kamikaze(~Jeanne-Ka@68.235.43.110)
2020-11-04 03:50:30 +0100xsperry(~as@unaffiliated/xsperry)
2020-11-04 03:52:56 +0100howdoi(uid224@gateway/web/irccloud.com/x-wivnzygvcxbkqyle) (Quit: Connection closed for inactivity)
2020-11-04 03:53:26 +0100christo(~chris@81.96.113.213)
2020-11-04 03:55:31 +0100xff0x(~fox@2001:1a81:53b4:ba00:98f7:2de1:6246:9047) (Ping timeout: 272 seconds)
2020-11-04 03:57:00 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 03:57:08 +0100xff0x(~fox@2001:1a81:53f2:500:906a:a806:825e:ad98)
2020-11-04 03:57:16 +0100jbox(~atlas@unaffiliated/jbox) (Quit: bye o/)
2020-11-04 03:58:13 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 246 seconds)
2020-11-04 04:00:37 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-11-04 04:01:45 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-04 04:04:53 +0100 <jle`> / 1
2020-11-04 04:07:30 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 04:07:59 +0100lagothrixGuest18234
2020-11-04 04:07:59 +0100Guest18234(~lagothrix@unaffiliated/lagothrix) (Killed (tolkien.freenode.net (Nickname regained by services)))
2020-11-04 04:08:04 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-11-04 04:11:50 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
2020-11-04 04:12:20 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 04:16:32 +0100hackagescheduler 1.5.0 - Work stealing scheduler. https://hackage.haskell.org/package/scheduler-1.5.0 (lehins)
2020-11-04 04:16:32 +0100machinedgod(~machinedg@142.169.78.180) (Ping timeout: 260 seconds)
2020-11-04 04:16:33 +0100mozzarella(~sam@unaffiliated/sam113101) (Quit: WeeChat 2.8)
2020-11-04 04:17:50 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 04:22:36 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 04:23:05 +0100falafel(~falafel@173-19-187-164.client.mchsi.com) (Ping timeout: 240 seconds)
2020-11-04 04:24:46 +0100ddellacosta(~dd@86.106.121.168) (Ping timeout: 272 seconds)
2020-11-04 04:26:13 +0100theDon(~td@94.134.91.45) (Ping timeout: 246 seconds)
2020-11-04 04:27:44 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 04:28:11 +0100theDon(~td@94.134.91.97)
2020-11-04 04:32:20 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2020-11-04 04:32:26 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-04 04:33:39 +0100argent0(~argent0@168.227.97.5) (Quit: leaving)
2020-11-04 04:33:46 +0100tessier(~treed@kernel-panic/copilotco) (Quit: leaving)
2020-11-04 04:34:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-11-04 04:36:31 +0100meowphius(~meowphius@pool-173-76-247-88.bstnma.fios.verizon.net) (Quit: Leaving)
2020-11-04 04:37:26 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 272 seconds)
2020-11-04 04:38:29 +0100conal(~conal@64.71.133.70)
2020-11-04 04:38:48 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 04:41:30 +0100hackagemassiv 0.5.5.0 - Massiv (Массив) is an Array Library. https://hackage.haskell.org/package/massiv-0.5.5.0 (lehins)
2020-11-04 04:43:58 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 04:44:24 +0100christo(~chris@81.96.113.213)
2020-11-04 04:44:31 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 258 seconds)
2020-11-04 04:46:02 +0100DTZUZU_(~DTZUZU@S0106bcd165662a4d.vs.shawcable.net) (Ping timeout: 256 seconds)
2020-11-04 04:47:07 +0100lucasb(uid333435@gateway/web/irccloud.com/x-uaaedzwtlfjjcpgy) (Quit: Connection closed for inactivity)
2020-11-04 04:48:52 +0100DTZUZU_(~DTZUZU@207.81.171.87)
2020-11-04 04:51:35 +0100Lycurgus(~niemand@98.4.97.110)
2020-11-04 04:56:12 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2020-11-04 04:56:14 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-04 04:58:15 +0100ddellacosta(~dd@86.106.121.168)
2020-11-04 05:00:26 +0100Rudd0(~Rudd0@185.189.115.108)
2020-11-04 05:03:13 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
2020-11-04 05:03:37 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 05:03:45 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 240 seconds)
2020-11-04 05:04:36 +0100mozzarella(~sam@unaffiliated/sam113101)
2020-11-04 05:04:44 +0100texasmynsted(~texasmyns@64.44.55.36) ()
2020-11-04 05:06:20 +0100jespada(~jespada@90.254.245.49)
2020-11-04 05:06:40 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-11-04 05:08:17 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-04 05:10:53 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 05:11:41 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 05:14:55 +0100miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
2020-11-04 05:15:28 +0100miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
2020-11-04 05:15:48 +0100ddellacosta(~dd@86.106.121.168) (Ping timeout: 260 seconds)
2020-11-04 05:15:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 05:15:49 +0100miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7) (Client Quit)
2020-11-04 05:16:15 +0100DTZUZU_DTZUZU
2020-11-04 05:17:19 +0100miklcct(quasselcor@2001:19f0:7001:5ad:5400:2ff:feb6:50d7)
2020-11-04 05:19:21 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 05:20:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-04 05:26:26 +0100xff0x(~fox@2001:1a81:53f2:500:906a:a806:825e:ad98) (Ping timeout: 264 seconds)
2020-11-04 05:27:19 +0100xff0x(~fox@2001:1a81:53f2:500:c561:3916:a8eb:5c4a)
2020-11-04 05:29:15 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-04 05:30:47 +0100tsdgeos(~tsdgeos@195.140.213.38)
2020-11-04 05:32:23 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-04 05:33:53 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 05:38:14 +0100jamm__(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-04 05:39:11 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-04 05:39:32 +0100macrover(~macrover@ip70-189-231-35.lv.lv.cox.net) (Ping timeout: 260 seconds)
2020-11-04 05:40:08 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 05:42:47 +0100solonarv(~solonarv@adijon-656-1-31-12.w90-13.abo.wanadoo.fr) (Read error: Connection reset by peer)
2020-11-04 05:43:08 +0100mdunnio_(~mdunnio@208.59.170.5)
2020-11-04 05:43:17 +0100solonarv(~solonarv@adijon-656-1-31-12.w90-13.abo.wanadoo.fr)
2020-11-04 05:44:27 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2020-11-04 05:45:12 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 272 seconds)
2020-11-04 05:45:39 +0100brodie_(~brodie@207.53.253.137) (Read error: Connection reset by peer)
2020-11-04 05:48:22 +0100mdunnio_(~mdunnio@208.59.170.5) (Ping timeout: 272 seconds)
2020-11-04 05:48:55 +0100solonarv(~solonarv@adijon-656-1-31-12.w90-13.abo.wanadoo.fr) (Ping timeout: 258 seconds)
2020-11-04 05:49:00 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-04 05:49:31 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-04 05:54:05 +0100 <bqv> so I have some class MyClass a b | a -> b
2020-11-04 05:54:49 +0100 <bqv> does that mean i can elsewhere use the type (MyClass a b) => b
2020-11-04 05:55:07 +0100 <bqv> in lieu of b directly, with a being concrete
2020-11-04 05:55:15 +0100 <bqv> and if so, what extension do i have to enable to make that happen
2020-11-04 05:56:16 +0100motherfsck(~motherfsc@unaffiliated/motherfsck)
2020-11-04 05:56:45 +0100 <ski> it means you're allowed to mention just `a' without `b' in a type, constrained by `MyClass a b'
2020-11-04 05:57:56 +0100 <bqv> hmm
2020-11-04 05:57:58 +0100Tario(~Tario@201.192.165.173)
2020-11-04 05:58:02 +0100 <bqv> ok so that's not my problem
2020-11-04 05:58:07 +0100 <ski> because `a' (functionally) determines `b', so the presence of `a' means that `b' will be unique, fixed by `a'
2020-11-04 05:58:16 +0100 <ski> the relevant extensions are `MultiParamTypeClasses' and `FunctionalDependencies'
2020-11-04 05:58:18 +0100 <bqv> yeah
2020-11-04 05:59:06 +0100 <bqv> it seems my problem is that i'm trying to do this in a foreign import :D
2020-11-04 05:59:40 +0100 <ski> the Functional dependency `a -> b' here, on `MyClass a b c' (say. add an extra `c', just to make it more general) means logically that `forall a. unique b. exists c. MyClass a b c' : for every `a', there can be at most one `b' such that there's some `c' with `MyClass a b c'
2020-11-04 05:59:49 +0100Katarushisu3(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
2020-11-04 06:00:45 +0100 <bqv> what I'm basically trying to achieve is a typelevel function
2020-11-04 06:01:00 +0100 <ski> this is also logically equivalent to `forall a b0 b1 c0 c1. (MyClass a b0 c0,MyClass a b1 c1) => b0 = b1' : if you have two possible instances, with the same `a', then the `b's also must agree, be the same, never mind the `c's
2020-11-04 06:01:01 +0100 <bqv> which that would do, but i can't use constraints in foreign
2020-11-04 06:01:02 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 272 seconds)
2020-11-04 06:01:02 +0100Katarushisu3Katarushisu
2020-11-04 06:01:14 +0100 <bqv> or perhaps i can alias it...
2020-11-04 06:01:22 +0100 <bqv> no, because a constraint is part of the type
2020-11-04 06:01:38 +0100brodie_(~brodie@207.53.253.137)
2020-11-04 06:01:44 +0100 <ski> hm. i don't think you can have type-clas-constrained foreign imports
2020-11-04 06:02:00 +0100brodie_brodie
2020-11-04 06:02:42 +0100 <bqv> ok, turn it around then, can i instance a class with an implicitly typed second parameter?
2020-11-04 06:02:57 +0100 <gobbleguy> IF you have a specific thing you're trying to do it might be worth just asking about that
2020-11-04 06:02:59 +0100 <ski> i don't know what you mean by that
2020-11-04 06:03:34 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 272 seconds)
2020-11-04 06:03:58 +0100 <ski> "what I'm basically trying to achieve is a typelevel function" -- do you mean like a `type' / `data' family (possibly an associated type) ?
2020-11-04 06:04:50 +0100 <bqv> yeah
2020-11-04 06:04:53 +0100 <bqv> but that doesn't work
2020-11-04 06:05:00 +0100 <bqv> because of the foreign issue
2020-11-04 06:05:50 +0100 <bqv> so now perhaps i'd like to omit the second type parameter of an instance (and have it inferred from the definition)
2020-11-04 06:06:44 +0100jrqc(~rofl@96.78.87.197) (Ping timeout: 272 seconds)
2020-11-04 06:06:53 +0100jrqc(~rofl@96.78.87.197)
2020-11-04 06:07:09 +0100 <ski> i guess you could possibly make an overloaded operation that takes operations from the dictionary and passes them explicitly to a foreignly imported operation
2020-11-04 06:07:30 +0100 <ski> omit it, where ? in a type signature ?
2020-11-04 06:08:54 +0100 <bqv> yes, say `instance MyClass MyA b where member = myForeignImport`
2020-11-04 06:09:16 +0100 <ski> where `member' has what type ?
2020-11-04 06:09:32 +0100 <bqv> b
2020-11-04 06:09:40 +0100 <bqv> oh
2020-11-04 06:09:51 +0100 <ski> also, `MyClass MyA b' doesn't seem to satisfy the FD `a -> b' on `MyClass a b'
2020-11-04 06:10:20 +0100 <bqv> can't b be inferred?
2020-11-04 06:10:20 +0100 <ski> (unless maybe if the kind of `b' only admits one possibility, being a singleton kind)
2020-11-04 06:11:04 +0100 <ski> if you say `instance MyClass MyA b where ...' you're claiming that, for all `b's, `MyClass MyA b' is an instance
2020-11-04 06:11:18 +0100 <bqv> right, implicit forall
2020-11-04 06:11:42 +0100 <bqv> darn.
2020-11-04 06:11:47 +0100 <bqv> guess i'll do it the boring way
2020-11-04 06:13:09 +0100 <ski> hm. i was thinking maybe you could do `instance MyClass MyA _ where ...', using `PartialTypeSignatures', but it seems that's not allowed
2020-11-04 06:13:52 +0100 <bqv> heh
2020-11-04 06:13:56 +0100Tario(~Tario@201.192.165.173)
2020-11-04 06:14:41 +0100irc_user(uid423822@gateway/web/irccloud.com/x-mlbnqpkqljzoxqfd) (Quit: Connection closed for inactivity)
2020-11-04 06:15:55 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-11-04 06:18:10 +0100 <ski> (hm, also it seems it doesn't work, if `b' is a `data' kind with just one (parameterless) constructor)
2020-11-04 06:18:42 +0100Lycurgus(~niemand@98.4.97.110) (Quit: Exeunt)
2020-11-04 06:19:14 +0100 <bqv> data as opposed to * ?
2020-11-04 06:19:17 +0100 <bqv> first i've seen
2020-11-04 06:19:22 +0100 <ski> yes
2020-11-04 06:19:31 +0100 <bqv> what do they signify?
2020-11-04 06:20:02 +0100jedws(~jedws@101.184.150.81)
2020-11-04 06:20:48 +0100 <ski> can be used to "tag" (GADT) `data' constructors, e.g. to indicate some kind of "state" or current "mode" in which something is used
2020-11-04 06:21:13 +0100 <ski> you should probably first look into `GADTs'
2020-11-04 06:21:26 +0100 <bqv> hm, i see
2020-11-04 06:21:47 +0100 <bqv> i've seen GADTs before, just not solid on the theoretical background
2020-11-04 06:21:51 +0100jedws(~jedws@101.184.150.81) (Client Quit)
2020-11-04 06:22:52 +0100 <ski> a very simple example could be an indexed state monad, which keeps track of (in the types) whether something is "open" or "closed". certain state-operations can only be done in certain states
2020-11-04 06:24:32 +0100 <ski> (there are nicer examples, but i can't recall any, off the top of my head, atm)
2020-11-04 06:24:57 +0100 <bqv> np :)
2020-11-04 06:26:59 +0100 <ski> hm, i guess another example is to have a finite map, where the values associated with different keys, in the same map, can have different types. each key will know the type of the corresponding value
2020-11-04 06:28:06 +0100 <ski> (or more generally, each key determines a "tag", and you have a value type that given a tag determines what type the corresponding value will have. so the tag doesn't have to be the value type itself, but it could determine it)
2020-11-04 06:28:32 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 06:28:37 +0100 <bqv> hm
2020-11-04 06:29:22 +0100 <ski> @hackage dependent-map
2020-11-04 06:29:22 +0100 <lambdabot> https://hackage.haskell.org/package/dependent-map
2020-11-04 06:30:30 +0100 <ski> the key type will generally be a GADT, and the value type could also be one. `Identity' is another common choice for it
2020-11-04 06:33:08 +0100 <bqv> heh, obsidian systems. i know of them from another context
2020-11-04 06:33:11 +0100dbmikus_(~dbmikus@76.167.86.219)
2020-11-04 06:33:13 +0100 <ski> so if you have `data Key :: * -> * where Name :: Key String; Address :: Key String; Age :: Key Int' then `DMap Key Identity' can have at most three associations. one mapping `Name' to a `String' value, one mapping `Address' to a `String' value, and one mapping `Age' to an `Int' value
2020-11-04 06:33:25 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-04 06:34:04 +0100 <ski> (in this case the "tag" is just an ordinary (concrete) type, of kind `*'. so this is not an example of `DataKinds')
2020-11-04 06:35:32 +0100 <bqv> i follow, vaguely enough
2020-11-04 06:35:43 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-04 06:37:51 +0100 <ski> `DMap' is a way to have a "heterogenous" finite map. `DMap k v' is roughly `[exists i. (k i,v i)]' (except more efficient, presumably using a search tree instead of a list), where the index `i' is the "tag", each different association pair can have a different `i'
2020-11-04 06:37:59 +0100dbmikus_(~dbmikus@76.167.86.219) (Ping timeout: 258 seconds)
2020-11-04 06:39:02 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 06:40:45 +0100 <ski> by pattern-matching on the value of `GADT' `k i', we can recover `i', discovering which specific index/tag was used in an association. this happens when we compare the given key with the keys in the map, discovering the `i's are the same, in case the two keys are equal
2020-11-04 06:41:45 +0100day_(~Unknown@unaffiliated/day)
2020-11-04 06:43:58 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 06:44:32 +0100acidjnk_new2(~acidjnk@p200300d0c718f623213d210801ac68e4.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-04 06:44:49 +0100day(~Unknown@unaffiliated/day) (Ping timeout: 246 seconds)
2020-11-04 06:44:49 +0100day_day
2020-11-04 06:45:40 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-04 06:49:12 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 06:49:50 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 264 seconds)
2020-11-04 06:49:56 +0100jbox(~atlas@unaffiliated/jbox)
2020-11-04 06:51:34 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-11-04 06:54:28 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 06:54:32 +0100guest1334598235(83e40215@131.228.2.21)
2020-11-04 06:55:27 +0100tsdgeos(~tsdgeos@195.140.213.38) (Remote host closed the connection)
2020-11-04 06:55:56 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-11-04 06:59:18 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 07:04:05 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 07:05:31 +0100hackagegeneric-functor 0.2.0.0 - Deriving generalized functors with GHC.Generics https://hackage.haskell.org/package/generic-functor-0.2.0.0 (lyxia)
2020-11-04 07:07:13 +0100hiroaki_(~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de)
2020-11-04 07:08:39 +0100hiroaki(~hiroaki@ip4d176049.dynamic.kabel-deutschland.de) (Ping timeout: 258 seconds)
2020-11-04 07:09:29 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 07:10:45 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 256 seconds)
2020-11-04 07:14:18 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 07:16:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 07:19:43 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 07:20:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-04 07:24:22 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 246 seconds)
2020-11-04 07:28:54 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-11-04 07:29:03 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 2.9)
2020-11-04 07:30:14 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 07:33:02 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-04 07:35:21 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 07:36:30 +0100Jeanne-Kamikaze(~Jeanne-Ka@68.235.43.110) (Quit: Leaving)
2020-11-04 07:46:01 +0100zebrag(~inkbottle@aaubervilliers-654-1-104-94.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-11-04 07:48:25 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-11-04 07:48:44 +0100zebrag(~inkbottle@aaubervilliers-654-1-104-94.w86-212.abo.wanadoo.fr)
2020-11-04 07:52:50 +0100zhenchaoli(~user@2601:641:8000:4f00:955e:b059:4f08:2b29) (Ping timeout: 264 seconds)
2020-11-04 07:54:23 +0100zhenchaoli(~user@2601:641:8000:4f00:955e:b059:4f08:2b29)
2020-11-04 07:55:16 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 07:55:22 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 256 seconds)
2020-11-04 07:55:54 +0100 <bqv> TIL: it's possible to write a file between the time GHC attempts to compile it and displays the error, so the displayed code doesn't match the error it shows
2020-11-04 07:59:46 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-04 08:00:04 +0100zebrag(~inkbottle@aaubervilliers-654-1-104-94.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-11-04 08:00:36 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 265 seconds)
2020-11-04 08:03:22 +0100idhugo(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net)
2020-11-04 08:05:37 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2020-11-04 08:06:51 +0100mmohammadi9812(~mmohammad@188.210.118.100) (Read error: Connection reset by peer)
2020-11-04 08:08:49 +0100idhugo(~idhugo@80-62-116-101-mobile.dk.customer.tdc.net) (Ping timeout: 265 seconds)
2020-11-04 08:09:29 +0100mmohammadi9812(~mmohammad@80.210.50.162)
2020-11-04 08:10:29 +0100knupfer(~Thunderbi@i5E86B46C.versanet.de)
2020-11-04 08:11:47 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-11-04 08:13:12 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-04 08:14:22 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-11-04 08:14:49 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-11-04 08:14:55 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 08:15:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 08:17:20 +0100 <suzu_> big unlucky
2020-11-04 08:17:35 +0100 <bqv> oh no it was fine, i noticed it instantly
2020-11-04 08:19:36 +0100christo(~chris@81.96.113.213)
2020-11-04 08:20:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-04 08:22:14 +0100gtk(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-04 08:22:26 +0100alp(~alp@2a01:e0a:58b:4920:99ca:9a50:cea9:e213)
2020-11-04 08:22:45 +0100mmohammadi9812(~mmohammad@80.210.50.162) (Ping timeout: 240 seconds)
2020-11-04 08:23:06 +0100mmohammadi9812(~mmohammad@2.178.222.196)
2020-11-04 08:24:46 +0100christo(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2020-11-04 08:25:06 +0100christo(~chris@81.96.113.213)
2020-11-04 08:25:15 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com) (Ping timeout: 265 seconds)
2020-11-04 08:26:18 +0100chaosmasttter(~chaosmast@p200300c4a7117c01215e340256877fbe.dip0.t-ipconnect.de)
2020-11-04 08:29:05 +0100 <gtk> What is: 'type instance' in 'type instance G.Mutable Vector = MVector' ?
2020-11-04 08:30:05 +0100 <opqdonut> type families
2020-11-04 08:30:11 +0100 <suzu_> it means that the type 'G.Mutable Vector' resolves to 'MVector'
2020-11-04 08:30:27 +0100 <opqdonut> it's a language extension that lets you, basically, define type-level functions
2020-11-04 08:30:32 +0100 <suzu_> ^
2020-11-04 08:30:45 +0100porvak(~porvak@84.39.116.180)
2020-11-04 08:32:12 +0100 <gtk> So G.Mutable is a type function which takes in Vector and output MVector?
2020-11-04 08:32:18 +0100guest1334598235(83e40215@131.228.2.21) (Remote host closed the connection)
2020-11-04 08:33:51 +0100kish`(~oracle@unaffiliated/oracle)
2020-11-04 08:35:12 +0100yoneda(~mike@193.206.102.122)
2020-11-04 08:35:31 +0100hackageprotocol-buffers-descriptor 2.4.16 - Text.DescriptorProto.Options and code generated from the Google Protocol Buffer specification https://hackage.haskell.org/package/protocol-buffers-descriptor-2.4.16 (k_bx)
2020-11-04 08:35:34 +0100 <opqdonut> gtk: yeah
2020-11-04 08:35:45 +0100 <gtk> opqdonut: and then 'data family MVector s a'.
2020-11-04 08:36:05 +0100kish(~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds)
2020-11-04 08:36:22 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 265 seconds)
2020-11-04 08:36:22 +0100 <gtk> opqdonut: Can I understand that MVector is also a type level function?
2020-11-04 08:36:31 +0100hackageprotocol-buffers 2.4.16, hprotoc 2.4.16 (k_bx): https://qbin.io/wu-ms-aaza
2020-11-04 08:36:35 +0100 <opqdonut> yeah
2020-11-04 08:36:50 +0100 <gtk> which takes in s and a and produces a new type?
2020-11-04 08:36:52 +0100 <opqdonut> except now it's a _data_ family, not a _type_ family, which is slightly different
2020-11-04 08:37:08 +0100 <opqdonut> yeah, exactly, the difference is that it results in a new type, not an existing type
2020-11-04 08:37:17 +0100 <gtk> i see!
2020-11-04 08:37:58 +0100kish`(~oracle@unaffiliated/oracle) (Read error: Connection reset by peer)
2020-11-04 08:38:25 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 08:38:30 +0100linker(~linker@185.12.21.77)
2020-11-04 08:39:09 +0100christo(~chris@81.96.113.213)
2020-11-04 08:49:32 +0100 <int-e> > let step m d = M.fromListWith (+) $ do (v,n) <- M.assocs m; [(v,n),(v+d,n)] in foldl step (M.singleton 0 1) [55,38,29,29,20,20,18,16,16,15,14,13,12,11,11,11,11,10,10,10,10,9,9,9,8,8,7,7,7,6,6,6,6,6,6,5,5,5,4,4,4,4,4,3,3,3,3,3,3,3,3] M.! 269
2020-11-04 08:49:35 +0100 <lambdabot> 16976480564070
2020-11-04 08:49:56 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-04 08:50:24 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
2020-11-04 08:53:44 +0100tdhttt(~tdhttt@2600:8802:2203:2500:7dae:b2c2:4784:ea3f) (Ping timeout: 240 seconds)
2020-11-04 08:54:44 +0100dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
2020-11-04 08:55:29 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-04 08:56:08 +0100tdhttt(~tdhttt@89.45.90.161)
2020-11-04 08:58:17 +0100johnstein(~johnstein@192.73.239.18) (Ping timeout: 258 seconds)
2020-11-04 08:58:51 +0100johnstein(~johnstein@192.73.239.18)
2020-11-04 08:59:17 +0100zhenchaoli(~user@2601:641:8000:4f00:955e:b059:4f08:2b29) (Ping timeout: 260 seconds)
2020-11-04 09:00:35 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-04 09:00:47 +0100jbox(~atlas@unaffiliated/jbox) (Quit: WeeChat 2.9)
2020-11-04 09:00:57 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 09:01:46 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Remote host closed the connection)
2020-11-04 09:02:02 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 09:02:34 +0100brodie(~brodie@207.53.253.137) (Quit: brodie)
2020-11-04 09:04:53 +0100Sanchayan(~Sanchayan@2401:4900:33b4:be84:783e:93bf:dec8:5aeb)
2020-11-04 09:05:12 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 09:05:13 +0100Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-11-04 09:05:30 +0100kuribastard(~user@ptr-25vy0iakqbc7il70x5a.18120a2.ip6.access.telenet.be)
2020-11-04 09:09:13 +0100knupfer(~Thunderbi@i5E86B46C.versanet.de) (Ping timeout: 260 seconds)
2020-11-04 09:09:38 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-04 09:12:22 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 09:14:43 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 09:19:00 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-04 09:21:28 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-11-04 09:21:49 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
2020-11-04 09:22:18 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-04 09:23:21 +0100idhugo(~idhugo@users-1190.st.net.au.dk)
2020-11-04 09:26:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 09:29:49 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-11-04 09:30:07 +0100borne(~fritjof@200116b864d4e2005d0cb1433c5d4cbb.dip.versatel-1u1.de)
2020-11-04 09:31:17 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 09:31:45 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-04 09:32:20 +0100britva(~britva@2a02:aa13:7240:2980:292a:d07d:3ab9:26ba)
2020-11-04 09:33:51 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-04 09:38:04 +0100gtk(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 246 seconds)
2020-11-04 09:39:41 +0100MindlessDrone(~MindlessD@unaffiliated/mindlessdrone) (Ping timeout: 258 seconds)
2020-11-04 09:41:19 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 09:42:27 +0100porvak(~porvak@84.39.116.180) (Remote host closed the connection)
2020-11-04 09:43:49 +0100MindlessDrone(~MindlessD@unaffiliated/mindlessdrone)
2020-11-04 09:45:47 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 09:46:29 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 09:50:58 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 256 seconds)
2020-11-04 09:51:18 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov)
2020-11-04 09:51:35 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 09:51:57 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com)
2020-11-04 09:52:40 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) ()
2020-11-04 09:53:13 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 09:53:21 +0100alp(~alp@2a01:e0a:58b:4920:99ca:9a50:cea9:e213) (Remote host closed the connection)
2020-11-04 09:53:34 +0100 <bqv> gosh it's remarkably hard to make the impossible happen
2020-11-04 09:53:36 +0100alp(~alp@2a01:e0a:58b:4920:3d11:8aac:3a15:f482)
2020-11-04 09:53:52 +0100 <bqv> ghc: panic! Loading temp shared object failed
2020-11-04 09:56:04 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit)
2020-11-04 09:57:22 +0100 <idnar> bqv: reminds me of that ghc bug where if typechecking failed it would delete the source file
2020-11-04 09:57:31 +0100 <bqv> D:
2020-11-04 09:57:36 +0100 <bqv> that sounds AWFUL
2020-11-04 09:57:51 +0100 <merijn> to be fair, that was never released :p
2020-11-04 09:58:04 +0100 <bqv> phew
2020-11-04 09:58:18 +0100 <dminuoso> bqv: No it's quite good actually
2020-11-04 09:58:28 +0100 <dminuoso> What better way to force you to write good code.
2020-11-04 09:58:38 +0100 <dminuoso> It either does the right thing or not exist at all!
2020-11-04 09:58:45 +0100 <bqv> how very ..rusian
2020-11-04 09:58:49 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
2020-11-04 09:59:28 +0100 <[exa]> "make bad code irrepresentable" has never gone further!
2020-11-04 09:59:32 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 09:59:57 +0100nefercheprure(tma@twin.jikos.cz)
2020-11-04 10:00:05 +0100 <dminuoso> Also it ensures you never leave your working free in an uncompilable state.
2020-11-04 10:00:18 +0100nefercheprure(tma@twin.jikos.cz) (Client Quit)
2020-11-04 10:00:28 +0100 <dminuoso> Can we bring it back in?
2020-11-04 10:00:29 +0100 <[exa]> is this the future?
2020-11-04 10:00:36 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-11-04 10:00:41 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-11-04 10:02:07 +0100 <[exa]> dminuoso: not everyone will really like it, I suggest -XPenance
2020-11-04 10:02:53 +0100 <bqv> -fno-sacrilege
2020-11-04 10:03:26 +0100 <[exa]> :]
2020-11-04 10:04:34 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-04 10:05:40 +0100 <maerwald> merijn: prelude made it impossible to ship that patch
2020-11-04 10:05:49 +0100notnatebtw(~nate@125.161.131.218) (Quit: WeeChat 2.9)
2020-11-04 10:07:52 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-11-04 10:09:24 +0100thc202(~thc202@unaffiliated/thc202)
2020-11-04 10:09:42 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 10:09:56 +0100fendor(~fendor@77.119.128.11.wireless.dyn.drei.com)
2020-11-04 10:14:29 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-04 10:16:50 +0100Sanchayan(~Sanchayan@2401:4900:33b4:be84:783e:93bf:dec8:5aeb) (Ping timeout: 264 seconds)
2020-11-04 10:17:04 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Remote host closed the connection)
2020-11-04 10:17:20 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 10:19:55 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 10:21:06 +0100Franciman(~francesco@host-79-36-167-172.retail.telecomitalia.it)
2020-11-04 10:22:30 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-11-04 10:23:52 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-04 10:24:20 +0100 <dminuoso> [exa]: Will it be part of glasgow-exts?
2020-11-04 10:24:41 +0100__monty__(~toonn@unaffiliated/toonn)
2020-11-04 10:24:50 +0100 <dminuoso> Also, perhaps we could enable it by default with TypeInType
2020-11-04 10:25:08 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 272 seconds)
2020-11-04 10:26:53 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-11-04 10:29:14 +0100 <typetetris> Is there a compiler/rts option to always open stdin and the like in binary mode?
2020-11-04 10:30:01 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 10:31:27 +0100kritzefitz(~kritzefit@p200300ecdf05be00f1ae985ba6d99bb3.dip0.t-ipconnect.de)
2020-11-04 10:32:15 +0100kritzefitz(~kritzefit@p200300ecdf05be00f1ae985ba6d99bb3.dip0.t-ipconnect.de) (Client Quit)
2020-11-04 10:34:00 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 272 seconds)
2020-11-04 10:34:23 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com)
2020-11-04 10:34:43 +0100 <nshepperd> sounds like https://github.com/munificent/vigil
2020-11-04 10:35:16 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
2020-11-04 10:36:25 +0100 <merijn> typetetris: Eh...there is no such thing?
2020-11-04 10:36:36 +0100 <merijn> typetetris: Do you mean unbuffered, maybe?
2020-11-04 10:36:56 +0100Lycurgus(~niemand@98.4.97.110)
2020-11-04 10:37:20 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-11-04 10:40:10 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 10:41:09 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-04 10:41:25 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 10:42:02 +0100 <__monty__> Or maybe raw or cbreak terminal mode?
2020-11-04 10:43:56 +0100 <merijn> Way to flex that obscure pseudo-terminal knowledge :p
2020-11-04 10:44:16 +0100daydaynatation(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-04 10:44:52 +0100 <typetetris> `https://hackage.haskell.org/package/base-4.14.0.0/docs/System-IO.html#v:hSetBinaryMode`
2020-11-04 10:45:50 +0100 <__monty__> merijn: That's what happens when you arm people with APUE : )
2020-11-04 10:45:52 +0100 <typetetris> Just had a pesky problem, where a program failed writing to stdout as the encoding associated with stdout was not able to represent all chars. An alternative to binary mode would be, to an encoding with replacement chars as default.
2020-11-04 10:46:25 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-04 10:46:34 +0100 <merijn> Or setting the right encoding? :p
2020-11-04 10:46:53 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-04 10:46:58 +0100 <arahael> How would binary mode fix that?
2020-11-04 10:47:13 +0100 <typetetris> arahael: binary mode sets char8 as encoding, which never fails.
2020-11-04 10:47:22 +0100 <arahael> typetetris: So it corrupts the data?
2020-11-04 10:47:36 +0100 <typetetris> merijn: Yes. We tried. Didn't work. with-utf8 was the rescue.
2020-11-04 10:51:05 +0100idhugo(~idhugo@users-1190.st.net.au.dk) (Quit: Leaving)
2020-11-04 10:51:35 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 10:51:43 +0100 <tomsmeding> typetetris: does it work if you redirect the output to a file? So keep stdout in the usual text mode, but avoid actually writing it to the terminal
2020-11-04 10:52:06 +0100 <tomsmeding> (i.e. is haskell the problem or the terminal)
2020-11-04 10:53:01 +0100 <merijn> typetetris: eh, char8 doesn't fail, it just corrupts your output :p
2020-11-04 10:53:19 +0100 <merijn> typetetris: What are you outputting and to what?
2020-11-04 10:53:24 +0100 <typetetris> tomsmeding: We had a clear `<stdout>: invalid argument (invalid character)` exception. So the handle being set to an encoding not able to handle the output was the culprit.
2020-11-04 10:53:48 +0100 <tomsmeding> haskell threw that exception? ah
2020-11-04 10:53:50 +0100 <maerwald> ah I remeber that, you have to force encoding in your main, there's a ghc ticket
2020-11-04 10:53:50 +0100 <typetetris> merijn: Log output to be consumed by human readers. A replacement char here and there doesn't hurt.
2020-11-04 10:54:00 +0100 <typetetris> tomsmeding: yes
2020-11-04 10:54:47 +0100 <tomsmeding> what maerwald said, or perhaps (to avoid changing your program) pipe the output of your program through another program first that fixes up invalid characters (that may or may not work)
2020-11-04 10:54:47 +0100spamlessj(~spamlessj@2a01:4f8:141:1329::2) (Ping timeout: 272 seconds)
2020-11-04 10:54:52 +0100 <merijn> I mean, you can just use the IO functions from ByteString to write out stuff
2020-11-04 10:54:54 +0100 <tomsmeding> (not sure about windows' semantics in that regard)
2020-11-04 10:54:56 +0100haasn`(~nand@mpv/developer/haasn)
2020-11-04 10:55:02 +0100raid_(macbookpro@irc-1.coding4.coffee)
2020-11-04 10:55:05 +0100 <typetetris> maerwald: And remember not only to use `setLocalEncoding` but also `hSetEncoding` (or some such) on all three `stdin`, `stdout` and `stderr`. That is at least unexpected for the haskell beginner comming from c :)
2020-11-04 10:55:07 +0100sphalerite(~sphalerit@NixOS/user/lheckemann) (Ping timeout: 260 seconds)
2020-11-04 10:55:07 +0100raid(macbookpro@irc-1.coding4.coffee) (Ping timeout: 260 seconds)
2020-11-04 10:55:25 +0100immae(~immae@2a01:4f8:141:53e7::) (Ping timeout: 272 seconds)
2020-11-04 10:55:52 +0100 <typetetris> merijn: Thats true. It is an existing codebase and up to now, there hasn't been fancy chars in the output.
2020-11-04 10:56:03 +0100dxld(~dxld@2a01:4f8:201:89ff:7479:df6a:7ab8:8305) (Ping timeout: 272 seconds)
2020-11-04 10:56:03 +0100yorick(~yorick@oftn/oswg-member/yorick) (Ping timeout: 272 seconds)
2020-11-04 10:56:03 +0100haasn(~nand@mpv/developer/haasn) (Ping timeout: 272 seconds)
2020-11-04 10:56:03 +0100Blkt(~Blkt@2a01:4f8:200:2425::adda) (Ping timeout: 272 seconds)
2020-11-04 10:56:03 +0100i7c(C10NftuPJ8@unaffiliated/i7c) (Ping timeout: 272 seconds)
2020-11-04 10:56:03 +0100bwe_(~bwe@2a01:4f8:1c1c:4878::2) (Ping timeout: 272 seconds)
2020-11-04 10:56:09 +0100 <dminuoso> typetetris: Set the correct locale?
2020-11-04 10:56:18 +0100BjarniRunar1(~BjarniRun@84.39.116.180)
2020-11-04 10:56:21 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds)
2020-11-04 10:56:49 +0100dxld(~dxld@80-109-136-248.cable.dynamic.surfer.at)
2020-11-04 10:57:02 +0100 <maerwald> typetetris: https://gitlab.haskell.org/ghc/ghc/-/issues/8118
2020-11-04 10:57:05 +0100bwe(~bwe@unaffiliated/bwe)
2020-11-04 10:57:06 +0100 <tomsmeding> I have a hard time believing that bytestring IO functions will avoid this exception
2020-11-04 10:57:10 +0100Blkt(~Blkt@2a01:4f8:200:2425::adda)
2020-11-04 10:57:11 +0100 <typetetris> dminuoso: The program is sadly called in a convoluted process and our attempts to push `LANG` and `LC_CTYPE` settings to it failed. I know, thats bad, but it is what it is.
2020-11-04 10:57:14 +0100sphalerite(~sphalerit@NixOS/user/lheckemann)
2020-11-04 10:57:19 +0100immae(~immae@2a01:4f8:141:53e7::)
2020-11-04 10:57:29 +0100 <maerwald> This is a ghc bug
2020-11-04 10:57:31 +0100 <typetetris> tomsmeding: Yes.
2020-11-04 10:57:41 +0100haasn`haasn
2020-11-04 10:57:44 +0100 <tomsmeding> it's not windows? what -- since when has binary mode done anything on unix-like systems?
2020-11-04 10:58:07 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 10:58:21 +0100 <dminuoso> tomsmeding: Perhaps you should focus on unconvolving that process instead?
2020-11-04 10:58:35 +0100 <dminuoso> I mean if the underlying problem is that you cant feed the locale through, then I'd rather fix
2020-11-04 10:58:37 +0100 <merijn> tomsmeding: Why? The ByteString IO functions don't do any encoding/decoding
2020-11-04 10:58:39 +0100 <tomsmeding> typetetris: ^
2020-11-04 10:58:44 +0100 <tomsmeding> not me dminuoso ;)
2020-11-04 10:58:45 +0100ubert(~Thunderbi@p200300ecdf1e5334e6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-04 10:58:53 +0100daydaynatation(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2020-11-04 10:58:58 +0100 <dminuoso> oh.
2020-11-04 10:59:45 +0100daydaynatation(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-04 10:59:53 +0100 <typetetris> dminuoso: Time pressure and other not so good reasons.
2020-11-04 11:00:20 +0100Rudd0(~Rudd0@185.189.115.103)
2020-11-04 11:00:43 +0100 <dminuoso> "Let's finish this bridge" - "But we the supports are not strong enough to hold it" - "We're already lagging behind, let's open it now and fix it later"
2020-11-04 11:01:23 +0100 <tomsmeding> merijn: I was confused as to where in the stack the error was actually thrown, I stand corrected
2020-11-04 11:01:23 +0100todda7(~torstein@ppp-2-84-30-242.home.otenet.gr) (Read error: Connection reset by peer)
2020-11-04 11:01:30 +0100 <maerwald> most of the time programmers don't code anything really important, which is why our engineering practices are shite
2020-11-04 11:01:36 +0100 <dminuoso> typetetris: Are you, by any chance, operating inside docker containers?
2020-11-04 11:01:39 +0100todda7(~torstein@ppp-2-84-30-242.home.otenet.gr)
2020-11-04 11:01:58 +0100 <typetetris> dminuoso: Not that I know of. But I also don't know the whole process.
2020-11-04 11:02:01 +0100 <dminuoso> maerwald: And even if they do, human lives lost due to "it was a software issue" is acceptable.
2020-11-04 11:02:33 +0100 <maerwald> dminuoso: no, because as soon as human lives are on the line, you have to comply to standards and regulations
2020-11-04 11:02:39 +0100 <dminuoso> It's as if people have been so desensitized, that it's completely normal that "software is often wrong" and not "programmers make mistakes"
2020-11-04 11:02:49 +0100 <dminuoso> maerwald: Haha, you certainly have not worked in healthcare.
2020-11-04 11:02:56 +0100 <maerwald> dminuoso: automotive.
2020-11-04 11:03:34 +0100 <maerwald> https://en.wikipedia.org/wiki/ISO_26262
2020-11-04 11:03:39 +0100 <dminuoso> Hospitals are prime examples of IT done *extremely* poorly. If your hospital gets sacked by ransomware, then it's clearly not the fault of shitty IT admins running unpatched exchanges, windows xp machines with the poorest security.
2020-11-04 11:03:49 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 246 seconds)
2020-11-04 11:03:50 +0100 <dminuoso> We had a death in Germany just this year because of that.
2020-11-04 11:04:00 +0100 <dminuoso> No heads ever rolled.
2020-11-04 11:04:01 +0100 <maerwald> that's just poorly regulated
2020-11-04 11:04:19 +0100invaser(~Thunderbi@31.148.23.125) (Quit: invaser)
2020-11-04 11:05:21 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-04 11:06:03 +0100plutoniix(~q@175.176.222.7) (Quit: Leaving)
2020-11-04 11:06:04 +0100 <dminuoso> maerwald: Or conversely, data privacy. If you leak half your customer database, you get a slap on the wrist at best
2020-11-04 11:06:09 +0100 <dminuoso> Customers wont even care
2020-11-04 11:06:17 +0100 <typetetris> I still think its a mistake to use `String -> Handle -> IO ()` functions using external environment variables to detect, what actual bytes to write to the handle. I will avoid that in the future. Respecting locale is a thing, only if writing to a terminal, in my opinion. And then it should be ok, to have replacement chars. Shouldn't fail to strange settings of the user.
2020-11-04 11:06:27 +0100 <maerwald> privacy and security is less regulated than safety
2020-11-04 11:06:27 +0100 <daydaynatation> what's the difference between: newtype instance vs. type instance
2020-11-04 11:06:31 +0100 <dminuoso> Clients have very low expectancy of software quality
2020-11-04 11:06:41 +0100 <dminuoso> maerwald: Its not even about regulation, its about client expectancies.
2020-11-04 11:06:56 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 11:07:01 +0100 <maerwald> regulations is the *only* thing that can change the market
2020-11-04 11:07:20 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-abxtjqjdzzifrxcr) (Quit: Connection closed for inactivity)
2020-11-04 11:07:47 +0100 <maerwald> formal methods is recommended in 26262, but not mandatory... if they made it mandatory, then Porsche, Daimler and co would invest millions into it, just so that they can ship their products
2020-11-04 11:07:55 +0100 <typetetris> maerwald: In germany there is "Mängelhaftung" and if clients would enforce that, most software companies would change there tactics fast. But the clients don't enforce that right *they already have*.
2020-11-04 11:08:07 +0100 <typetetris> s/there/their/
2020-11-04 11:08:18 +0100 <dminuoso> daydaynatation: Huh.. newtype instance - I didn't even know that was a thing.
2020-11-04 11:09:10 +0100yorick(~yorick@oftn/oswg-member/yorick)
2020-11-04 11:09:11 +0100 <daydaynatation> dminuoso: lots of it used in the vector package
2020-11-04 11:09:26 +0100 <dminuoso> https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/newtype_deriving.html#a-more-precise-speci…
2020-11-04 11:09:26 +0100i7c(8Tki2L7DF5@unaffiliated/i7c)
2020-11-04 11:09:34 +0100 <dminuoso> Is the only mention of this I can find
2020-11-04 11:10:03 +0100 <daydaynatation> dminuoso: Data.Vector.Uboxed.Base
2020-11-04 11:12:09 +0100 <dminuoso> daydaynatation: Judging from the ergonomics, Id say that it's an alternate perhaps older way to do GND + via
2020-11-04 11:12:22 +0100 <dminuoso> So I'd say:
2020-11-04 11:12:25 +0100 <dminuoso> newtype instance MVector s () = MV_Unit Int
2020-11-04 11:12:48 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-04 11:14:09 +0100 <dminuoso> Yeah no idea. It looks
2020-11-04 11:14:16 +0100 <dminuoso> Undocumented.
2020-11-04 11:14:44 +0100 <daydaynatation> It's pretty hard to understand how the package is designed
2020-11-04 11:15:58 +0100 <dminuoso> daydaynatation: Ah.. I think... this is for associated newtypes
2020-11-04 11:16:09 +0100 <dminuoso> err.. newtype families?
2020-11-04 11:16:15 +0100 <dminuoso> Is that a thing?
2020-11-04 11:16:24 +0100 <dminuoso> A quick skim of ghc suggests its like data instances
2020-11-04 11:16:26 +0100Lycurgus(~niemand@98.4.97.110) (Quit: Exeunt)
2020-11-04 11:16:59 +0100 <dminuoso> daydaynatation: https://downloads.haskell.org/~ghc/7.6.3/docs/html/users_guide/type-families.html
2020-11-04 11:17:01 +0100 <dminuoso> Indeed
2020-11-04 11:17:08 +0100 <dminuoso> So these are instances of data families
2020-11-04 11:17:38 +0100 <dminuoso> In Data/Vector/Unboxed/Base.hs you can find `data family MVector s a`
2020-11-04 11:17:52 +0100 <dminuoso> `newtype instance MVector s () = MV_Unit Int` then is an instance for that family
2020-11-04 11:18:08 +0100rprije(~rprije@194-193-168-77.tpgi.com.au) (Ping timeout: 260 seconds)
2020-11-04 11:18:13 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-04 11:18:24 +0100 <daydaynatation> so it's the same as data instance MVector s ()...?
2020-11-04 11:18:49 +0100 <dminuoso> Well, except for data vs newtype differences
2020-11-04 11:19:26 +0100 <daydaynatation> i see..
2020-11-04 11:19:30 +0100 <daydaynatation> that's the key
2020-11-04 11:19:34 +0100 <daydaynatation> thx!
2020-11-04 11:19:34 +0100 <dminuoso> a data family is roughly a type family to an anonymous data type, and apparently you can point it either at an anoymous newtype or data (which is boxed and can have multiple constructors)
2020-11-04 11:19:54 +0100supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-11-04 11:20:26 +0100notnatebtw(~nate@125.161.131.218)
2020-11-04 11:20:28 +0100theorbtwo(~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) (Ping timeout: 260 seconds)
2020-11-04 11:21:03 +0100LKoen(~LKoen@53.253.88.92.rev.sfr.net)
2020-11-04 11:22:31 +0100 <dminuoso> % data family Foo a
2020-11-04 11:22:31 +0100 <yahb> dminuoso:
2020-11-04 11:22:42 +0100 <dminuoso> % newtype instance Foo Int = F1 Int
2020-11-04 11:22:42 +0100 <yahb> dminuoso:
2020-11-04 11:22:47 +0100 <dminuoso> % coerce (F1 1) :: Int
2020-11-04 11:22:47 +0100 <yahb> dminuoso: 1
2020-11-04 11:23:04 +0100 <dminuoso> % data instance Foo Float = F2 Int | F3 Char
2020-11-04 11:23:04 +0100 <yahb> dminuoso:
2020-11-04 11:23:09 +0100 <dminuoso> % coerce (F2 1) :: Int
2020-11-04 11:23:09 +0100 <yahb> dminuoso: ; <interactive>:71:1: error:; * Couldn't match representation of type `Foo Float' with that of `Int' arising from a use of `coerce'; * In the expression: coerce (F2 1) :: Int; In an equation for `it': it = coerce (F2 1) :: Int
2020-11-04 11:24:13 +0100vk3wtf(~doc@14-202-30-62.static.tpgi.com.au) (Ping timeout: 264 seconds)
2020-11-04 11:24:30 +0100pera(~pera@unaffiliated/pera)
2020-11-04 11:24:56 +0100 <dminuoso> Well this is cool, thanks daydaynatation! TIL.
2020-11-04 11:28:01 +0100hackagemysql-haskell 0.8.4.3 - pure haskell MySQL driver https://hackage.haskell.org/package/mysql-haskell-0.8.4.3 (winterland)
2020-11-04 11:28:41 +0100 <daydaynatation> dminuoso: so all these techniques are for generic programming right?
2020-11-04 11:29:01 +0100hackagemysql-haskell-openssl 0.8.3.1 - TLS support for mysql-haskell package using openssl https://hackage.haskell.org/package/mysql-haskell-openssl-0.8.3.1 (winterland)
2020-11-04 11:29:14 +0100mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-11-04 11:30:10 +0100 <dminuoso> daydaynatation: In principle you can get away without data families, you could just create data types manually and them use tyfams or mptc+fundeps
2020-11-04 11:30:49 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 264 seconds)
2020-11-04 11:31:12 +0100brodie(~brodie@207.53.253.137)
2020-11-04 11:31:52 +0100 <dminuoso> daydaynatation: Think of it as an open GADT, perhaps.
2020-11-04 11:32:04 +0100 <dminuoso> (Or similar to it)
2020-11-04 11:32:41 +0100 <bqv> ugh. i figured out the issue
2020-11-04 11:32:59 +0100 <bqv> it's https://github.com/haskell/cabal/issues/7082
2020-11-04 11:33:18 +0100mmohammadi9812(~mmohammad@2.178.222.196) (Ping timeout: 260 seconds)
2020-11-04 11:33:35 +0100mmohammadi9812(~mmohammad@2.178.217.171)
2020-11-04 11:34:22 +0100 <daydaynatation> dminuoso: I might not be using these techniques myself but when reading existing code, there are everywhere
2020-11-04 11:34:30 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 11:35:49 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit)
2020-11-04 11:35:55 +0100vk3wtf(~doc@203.221.224.44)
2020-11-04 11:36:06 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 11:36:08 +0100 <bqv> dminuoso: heh
2020-11-04 11:38:30 +0100DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-11-04 11:38:35 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 265 seconds)
2020-11-04 11:38:52 +0100mananamenos_(~mananamen@84.122.202.215.dyn.user.ono.com) (Read error: Connection reset by peer)
2020-11-04 11:39:11 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com)
2020-11-04 11:41:43 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-11-04 11:41:44 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-04 11:41:58 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-11-04 11:41:59 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-04 11:42:13 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-11-04 11:42:14 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-04 11:42:28 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-11-04 11:42:29 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-04 11:42:43 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi)
2020-11-04 11:42:44 +0100supercoven_(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Max SendQ exceeded)
2020-11-04 11:42:44 +0100supercoven(~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (K-Lined)
2020-11-04 11:47:17 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 11:47:19 +0100brodie(~brodie@207.53.253.137) (Quit: brodie)
2020-11-04 11:48:32 +0100acidjnk_new2(~acidjnk@p200300d0c718f665213d210801ac68e4.dip0.t-ipconnect.de)
2020-11-04 11:51:49 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-04 11:51:57 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-04 11:52:13 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-04 11:57:18 +0100wwwww(~wwwww@unaffiliated/wwwww) (Ping timeout: 258 seconds)
2020-11-04 11:57:29 +0100alp(~alp@2a01:e0a:58b:4920:3d11:8aac:3a15:f482) (Ping timeout: 272 seconds)
2020-11-04 11:59:37 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 264 seconds)
2020-11-04 12:00:09 +0100alp(~alp@2a01:e0a:58b:4920:fc19:3d56:9382:4c56)
2020-11-04 12:02:01 +0100todda7(~torstein@ppp-2-84-30-242.home.otenet.gr) (Ping timeout: 264 seconds)
2020-11-04 12:07:10 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-04 12:10:19 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 12:11:45 +0100wwwww(~wwwww@unaffiliated/wwwww)
2020-11-04 12:12:35 +0100britva(~britva@2a02:aa13:7240:2980:292a:d07d:3ab9:26ba) (Quit: Leaving)
2020-11-04 12:17:11 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-11-04 12:17:55 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922)
2020-11-04 12:20:17 +0100alp(~alp@2a01:e0a:58b:4920:fc19:3d56:9382:4c56) (Ping timeout: 272 seconds)
2020-11-04 12:21:18 +0100todda7(~torstein@ppp-2-84-30-242.home.otenet.gr)
2020-11-04 12:23:22 +0100daydaynatation(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 258 seconds)
2020-11-04 12:25:48 +0100knupfer(~Thunderbi@dynamic-046-114-148-101.46.114.pool.telefonica.de)
2020-11-04 12:26:18 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov)
2020-11-04 12:26:31 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 12:27:00 +0100hackageservant-blaze 0.9.1 - Blaze-html support for servant https://hackage.haskell.org/package/servant-blaze-0.9.1 (maksbotan)
2020-11-04 12:27:42 +0100zfnmxt(~zfnmxt@unaffiliated/zfnmxt) (Quit: Bye!)
2020-11-04 12:27:45 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-11-04 12:28:43 +0100wwwww(~wwwww@unaffiliated/wwwww) (Ping timeout: 260 seconds)
2020-11-04 12:29:11 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit)
2020-11-04 12:29:27 +0100akad_(~akad@2a02:a317:223a:2080:c10f:451d:6994:f626)
2020-11-04 12:29:46 +0100zfnmxt(~zfnmxt@unaffiliated/zfnmxt)
2020-11-04 12:32:07 +0100alp(~alp@2a01:e0a:58b:4920:6c97:b844:18cb:28a7)
2020-11-04 12:37:22 +0100alp(~alp@2a01:e0a:58b:4920:6c97:b844:18cb:28a7) (Remote host closed the connection)
2020-11-04 12:37:41 +0100alp(~alp@2a01:e0a:58b:4920:1dd3:df8f:e85c:9a7d)
2020-11-04 12:38:00 +0100knupfer(~Thunderbi@dynamic-046-114-148-101.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2020-11-04 12:39:01 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-04 12:40:56 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 265 seconds)
2020-11-04 12:41:27 +0100zfnmxt(~zfnmxt@unaffiliated/zfnmxt) (Quit: Bye!)
2020-11-04 12:42:51 +0100 <bqv> i feel like toEnum . fromEnum should be provided by default somewhere
2020-11-04 12:43:07 +0100 <bqv> perhaps not.
2020-11-04 12:43:34 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 246 seconds)
2020-11-04 12:44:10 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-04 12:47:26 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-04 12:48:06 +0100zfnmxt(~zfnmxt@unaffiliated/zfnmxt)
2020-11-04 12:50:09 +0100Deide(~Deide@217.155.19.23)
2020-11-04 12:50:46 +0100wwwww(~wwwww@unaffiliated/wwwww)
2020-11-04 12:51:28 +0100akad_(~akad@2a02:a317:223a:2080:c10f:451d:6994:f626) (Quit: Leaving)
2020-11-04 12:52:37 +0100chaosmasttter(~chaosmast@p200300c4a7117c01215e340256877fbe.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-04 12:52:56 +0100 <tomsmeding> it feels like a dangerously general operation
2020-11-04 12:54:13 +0100 <dminuoso> Id argue Enum in general is dangerous
2020-11-04 12:54:17 +0100 <dminuoso> % :t fromEnum
2020-11-04 12:54:17 +0100 <yahb> dminuoso: Enum a => a -> Int
2020-11-04 12:54:20 +0100 <dminuoso> Err
2020-11-04 12:54:23 +0100 <dminuoso> % :t toEnum
2020-11-04 12:54:23 +0100 <yahb> dminuoso: Enum a => Int -> a
2020-11-04 12:54:30 +0100 <dminuoso> This lacks MonadFail :(
2020-11-04 12:55:03 +0100 <tomsmeding> not sure whether MonadFail is the right thing here, but yes partial function :p
2020-11-04 12:55:39 +0100GUEST1604490921(~GUEST1604@124.123.107.91)
2020-11-04 12:56:20 +0100 <bqv> is it realistic to avoid partial functions entirely, in a project of any substantial size?
2020-11-04 12:57:19 +0100 <idnar> http://hackage.haskell.org/package/relude-0.7.0.0/docs/Relude-Extra-Enum.html#v:safeToEnum
2020-11-04 12:57:36 +0100 <tomsmeding> possible, yes, realistic I think no, unless you want to admit a proliferation of data types
2020-11-04 12:57:54 +0100linker_(~linker@185.12.21.77)
2020-11-04 12:58:04 +0100 <tomsmeding> if you have a sum type with a number of constructors, and your application gets big enough, you'll have situations where only certain of those constructors are valid in a particular place
2020-11-04 12:58:05 +0100GUEST1604490921(~GUEST1604@124.123.107.91) (Read error: Connection reset by peer)
2020-11-04 12:58:20 +0100linker(~linker@185.12.21.77) (Ping timeout: 265 seconds)
2020-11-04 12:58:54 +0100GUEST1604491118(~GUEST1604@124.123.107.91)
2020-11-04 12:59:02 +0100 <tomsmeding> you could make it all total by either adding a new datatype with the constructor subset and converting when the domain restriction happens, or by moving the restrictions to the type level with some GADT trickery
2020-11-04 12:59:14 +0100 <bqv> i wonder if that relude function would even work for me. my enum instances are mostly written for me by c2hs now :|
2020-11-04 12:59:17 +0100 <tomsmeding> both can work on a small scale but at some point it hurts readability/understandability I think
2020-11-04 12:59:27 +0100 <bqv> yeah, agreed
2020-11-04 12:59:54 +0100GUEST1604491118(~GUEST1604@124.123.107.91) (Read error: Connection reset by peer)
2020-11-04 13:00:02 +0100BjarniRunar1(~BjarniRun@84.39.116.180) ()
2020-11-04 13:00:12 +0100GUEST1604491197(~GUEST1604@124.123.107.91)
2020-11-04 13:00:28 +0100 <tomsmeding> though perhaps you can attempt to see head/fromMaybe/toEnum as a different "class" of partial functions than the case I described, but that's getting firmly and deeply in the subjective realm :p
2020-11-04 13:00:52 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-11-04 13:01:08 +0100 <bqv> i actually hit the problem you described earlier
2020-11-04 13:01:26 +0100chaosmasttter(~chaosmast@p200300c4a7117c01215e340256877fbe.dip0.t-ipconnect.de)
2020-11-04 13:01:27 +0100GUEST1604491197(~GUEST1604@124.123.107.91) (Read error: Connection reset by peer)
2020-11-04 13:01:28 +0100 <bqv> my solution was undefined, which is... kinda worse
2020-11-04 13:01:29 +0100 <merijn> Enum is a terrible class anyway :p
2020-11-04 13:01:37 +0100 <merijn> If anything I'd just recommend avoiding Enum :p
2020-11-04 13:01:43 +0100GUEST1604491290(~GUEST1604@124.123.107.91)
2020-11-04 13:02:00 +0100 <bqv> as usual, next to impossible if you FFI at all
2020-11-04 13:02:11 +0100kish(~oracle@unaffiliated/oracle)
2020-11-04 13:02:27 +0100 <merijn> How so?
2020-11-04 13:03:07 +0100 <bqv> C enums would have to be sent back and forth somehow
2020-11-04 13:03:24 +0100 <bqv> any haskell sum type eventually ends up as a number
2020-11-04 13:03:57 +0100 <bqv> you could i guess have checks at every marshal in, but that's no better than Enum with safeToEnum
2020-11-04 13:04:02 +0100 <merijn> I fail to see how that requires the Enum class, though?
2020-11-04 13:04:25 +0100GUEST1604491290(~GUEST1604@124.123.107.91) (Read error: Connection reset by peer)
2020-11-04 13:04:35 +0100 <bqv> well what would be an alternative?
2020-11-04 13:05:52 +0100 <dminuoso> bqv: I tend to have my own Enumerable typeclass that adds a MonadFail constraint to toEnum
2020-11-04 13:05:53 +0100GUEST1604491541(~GUEST1604@124.123.107.91)
2020-11-04 13:06:10 +0100 <dminuoso> For things where want to keep a mapping to numbers (usually I use this for protocol de/serializatoin)
2020-11-04 13:06:16 +0100 <merijn> Just writing a single function to convert, safeToEnum only works for bounded types and makes a bunch of assumptions about the underlying Enum instance (and I'd be war to make any assumptions of those)
2020-11-04 13:06:31 +0100 <dminuoso> (The reason for using a typeclass is mostly convenience, it could just be plain functions)
2020-11-04 13:06:43 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 13:07:02 +0100 <dminuoso> And that typeclass is not about *enumerating* from/to, it's just for mapping into something
2020-11-04 13:07:11 +0100 <bqv> oh yeah, just, generally i considered any function to be of vastly the same nature as Enum anyway
2020-11-04 13:07:47 +0100GUEST1604491541(~GUEST1604@124.123.107.91) (Remote host closed the connection)
2020-11-04 13:07:51 +0100Tops2(~Tobias@dyndsl-095-033-016-001.ewe-ip-backbone.de)
2020-11-04 13:08:43 +0100 <dminuoso> bqv: class (t ~ MappedInto f, Show t) => EnumMapping f where type MappedInto t; mappingTo :: f -> t; mappingFrom :: MonadFail m => t -> m f
2020-11-04 13:08:46 +0100 <dminuoso> Is roughly what I use
2020-11-04 13:09:52 +0100 <bqv> pretty general, fair enough
2020-11-04 13:09:54 +0100 <dminuoso> oh heh, that hsould be `type MappedInto s`
2020-11-04 13:10:09 +0100 <dminuoso> or f, rather. bah, my code is not copy pastable for other reasons
2020-11-04 13:10:20 +0100GUEST91807(~GUEST9180@124.123.107.91)
2020-11-04 13:10:30 +0100 <bqv> curious why the Show constraint at that level
2020-11-04 13:11:02 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-11-04 13:11:04 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-11-04 13:11:52 +0100Chi1thangoo(~Chi1thang@87.112.60.168)
2020-11-04 13:11:57 +0100 <merijn> For the error to MonadFail, presumably
2020-11-04 13:12:04 +0100 <dminuoso> Mmm. Good question, I guess there is no need for it there
2020-11-04 13:12:15 +0100bitmagie(~Thunderbi@200116b80654c700253602a817d4606f.dip.versatel-1u1.de)
2020-11-04 13:12:44 +0100 <dminuoso> bqv: The reason I have it that general, is because Im writing a protocol library here, so some enums are mapped into Word8, others into Word32, etc..
2020-11-04 13:12:53 +0100 <dminuoso> (So that helper typeclass is then used in my Get/Put code)
2020-11-04 13:13:07 +0100 <bqv> ah fair
2020-11-04 13:13:36 +0100 <dminuoso> It was either that, or sprinkling fromIntegral left and right, not knowing if I accidentally narrow data.
2020-11-04 13:13:50 +0100 <merijn> Or...just write individual Get/Put operations? >.>
2020-11-04 13:14:07 +0100 <dminuoso> merijn: That would have worked too, of course. The typeclass was really just for convenience.
2020-11-04 13:14:37 +0100 <dminuoso> It reduces some boilerplate in some areas. :)
2020-11-04 13:14:37 +0100GUEST91807(~GUEST9180@124.123.107.91) (Ping timeout: 260 seconds)
2020-11-04 13:14:38 +0100 <merijn> dminuoso: The convenience of being unable to have multiple versions in your codebase? >.>
2020-11-04 13:14:45 +0100 <dminuoso> merijn: That's perfectly fine for me.
2020-11-04 13:14:51 +0100 <dminuoso> It's an internal typeclass I dont ever expose.
2020-11-04 13:15:07 +0100 <dminuoso> And these things do *not* ever change
2020-11-04 13:15:24 +0100 <bqv> merijn: as a fan of a strictly typed language, surely you appreciate restriction :D
2020-11-04 13:15:43 +0100 <dminuoso> bqv: No, it's an annoying restriction since if you ever have multiple protocol versions, you need to start using newtype wrappers
2020-11-04 13:15:56 +0100 <dminuoso> But in my case, the protocol is standardized and hasnt changed in 20 years. :p
2020-11-04 13:16:02 +0100 <merijn> You fool! You fell victim to one of the classic blunders - the most famous of which is "never get involved in a land war in Asia" and "Never go in against a Sicilian when death is on the line", but only slightly less well-known is this: "Never use typeclasses for (de)serialisation"! Ha ha ha ha ha ha ha! Ha ha ha ha ha ha ha!
2020-11-04 13:16:03 +0100 <dminuoso> (It was only ever ammended)
2020-11-04 13:16:07 +0100 <bqv> heh
2020-11-04 13:16:19 +0100 <dminuoso> merijn: I dont use typeclasses for get/put itself.
2020-11-04 13:16:23 +0100 <dminuoso> Or actually, that's not true
2020-11-04 13:16:28 +0100 <dminuoso> I have my own Get/Put typeclasses!
2020-11-04 13:16:30 +0100 <dminuoso> Again, for convenience
2020-11-04 13:16:46 +0100 <dminuoso> But I know what price I pay, the cost is lower than the extra effort and annoyance from writing functions instead.
2020-11-04 13:16:51 +0100yoyo(50a46f47@80-164-111-71-dynamic.dk.customer.tdc.net)
2020-11-04 13:17:08 +0100 <dminuoso> There is ever only a single protocol encoding of `Foo
2020-11-04 13:17:17 +0100 <dminuoso> And, should it ever be different, I can turn it into functions easily
2020-11-04 13:18:23 +0100zfnmxt(~zfnmxt@unaffiliated/zfnmxt) (Quit: Bye!)
2020-11-04 13:18:49 +0100todda7(~torstein@ppp-2-84-30-242.home.otenet.gr) (Ping timeout: 260 seconds)
2020-11-04 13:20:01 +0100hackageservant-multipart 0.12 - multipart/form-data (e.g file upload) support for servant https://hackage.haskell.org/package/servant-multipart-0.12 (maksbotan)
2020-11-04 13:20:13 +0100zfnmxt(~zfnmxt@unaffiliated/zfnmxt)
2020-11-04 13:20:29 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-04 13:21:39 +0100bitmagie(~Thunderbi@200116b80654c700253602a817d4606f.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-04 13:21:55 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 13:23:26 +0100chaosmasttter(~chaosmast@p200300c4a7117c01215e340256877fbe.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-04 13:24:30 +0100asthasr(~asthasr@162.210.29.120)
2020-11-04 13:28:46 +0100knupfer(~Thunderbi@dynamic-046-114-148-101.46.114.pool.telefonica.de)
2020-11-04 13:30:01 +0100bitmagie(~Thunderbi@200116b80654c700253602a817d4606f.dip.versatel-1u1.de)
2020-11-04 13:30:17 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-04 13:31:05 +0100asthasr_(~asthasr@162.210.29.120)
2020-11-04 13:31:20 +0100asthasr_(~asthasr@162.210.29.120) (Client Quit)
2020-11-04 13:36:40 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 13:36:40 +0100knupfer(~Thunderbi@dynamic-046-114-148-101.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2020-11-04 13:37:18 +0100 <idnar> merijn: hahaha
2020-11-04 13:37:26 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-11-04 13:38:18 +0100bitmagie(~Thunderbi@200116b80654c700253602a817d4606f.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-04 13:38:45 +0100 <idnar> @type \f x -> coerce (f (coerce x))
2020-11-04 13:38:46 +0100 <lambdabot> error:
2020-11-04 13:38:46 +0100 <lambdabot> • Variable not in scope: coerce :: t1 -> t3
2020-11-04 13:38:47 +0100 <lambdabot> • Perhaps you meant ‘coerced’ (imported from Control.Lens)
2020-11-04 13:38:49 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 13:39:07 +0100GUEST93534(~GUEST9353@124.123.107.91)
2020-11-04 13:39:11 +0100 <bqv> unsafeCoerce?
2020-11-04 13:39:21 +0100bitmagie(~Thunderbi@200116b80654c700253602a817d4606f.dip.versatel-1u1.de)
2020-11-04 13:39:28 +0100 <merijn> unsafeCoerce is different and, well, unsafe :p
2020-11-04 13:39:35 +0100 <idnar> no, I want the safe one
2020-11-04 13:39:37 +0100 <bqv> thought that was his plan
2020-11-04 13:39:39 +0100 <bqv> fair
2020-11-04 13:39:42 +0100 <int-e> :t Data.Coerce.coerce
2020-11-04 13:39:43 +0100 <lambdabot> Coercible a b => a -> b
2020-11-04 13:40:10 +0100 <idnar> @type \f x -> Data.Coerce.coerce (f (Data.Coerce.coerce x))
2020-11-04 13:40:12 +0100 <lambdabot> (Coercible a1 b, Coercible a2 t) => (t -> a1) -> a2 -> b
2020-11-04 13:40:47 +0100 <merijn> I think you could juse coerce f? :p
2020-11-04 13:41:26 +0100 <merijn> :t Data.Coerce.coerce :: (Coercible a b, Coercible c d) => (a -> c) -> (b -> d)
2020-11-04 13:41:28 +0100 <lambdabot> error:
2020-11-04 13:41:28 +0100 <lambdabot> Not in scope: type constructor or class ‘Coercible’
2020-11-04 13:41:44 +0100 <merijn> :t Data.Coerce.coerce :: (Data.Coerce.Coercible a b, Data.Coerce.Coercible c d) => (a -> c) -> (b -> d)
2020-11-04 13:41:45 +0100 <lambdabot> (Coercible a b, Coercible c d) => (a -> c) -> b -> d
2020-11-04 13:41:48 +0100 <merijn> boom
2020-11-04 13:42:00 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922)
2020-11-04 13:42:04 +0100 <idnar> oh yes duh
2020-11-04 13:42:29 +0100 <int-e> @let import Data.Coerce
2020-11-04 13:42:30 +0100 <lambdabot> .L.hs:80:1: error:
2020-11-04 13:42:31 +0100 <lambdabot> Data.Coerce: Can't be safely imported!
2020-11-04 13:42:31 +0100 <lambdabot> The module itself isn't safe.
2020-11-04 13:42:31 +0100chaosmasttter(~chaosmast@p200300c4a7117c01215e340256877fbe.dip0.t-ipconnect.de)
2020-11-04 13:42:44 +0100 <tomsmeding> safe haskell rears its head!
2020-11-04 13:42:57 +0100 <Uniaika> <3 <3
2020-11-04 13:42:58 +0100 <int-e> Fun, I thought it was supposed to be safe by now.
2020-11-04 13:43:06 +0100GUEST93534(~GUEST9353@124.123.107.91) (Ping timeout: 244 seconds)
2020-11-04 13:43:08 +0100 <idnar> either way, awkward to use without -XTypeApplication I guess
2020-11-04 13:43:12 +0100 <Uniaika> int-e: with a name like that… ? :P
2020-11-04 13:43:21 +0100 <int-e> Uniaika: why not?
2020-11-04 13:43:27 +0100 <merijn> Pretty sure Data.Coerce should be Trustworthy, not Safe
2020-11-04 13:43:41 +0100 <int-e> merijn: well, base *is* trusted
2020-11-04 13:43:48 +0100 <Uniaika> int-e: the name screams "force your hand" :P
2020-11-04 13:43:56 +0100 <merijn> Actually, it's explicitly Unsafe
2020-11-04 13:44:02 +0100 <int-e> merijn: the matter of fact is... that.
2020-11-04 13:44:09 +0100 <merijn> int-e: Package trust and Trustworthy is different
2020-11-04 13:44:27 +0100 <int-e> merijn: package trust means to trust all Trustworthy modules in the package
2020-11-04 13:44:32 +0100 <merijn> trusted packages are "those packages whose Trustworthy modules should be treated as actually trustworth"
2020-11-04 13:44:46 +0100 <int-e> so if it *were* marked Trustworthy, lambdabot would allow it to be imported
2020-11-04 13:45:25 +0100darjeeling_(~darjeelin@115.215.43.51) (Ping timeout: 260 seconds)
2020-11-04 13:46:07 +0100 <int-e> you *can* get coerce in lambdabot anyway, via profunctors, but I forgot the precise definition; it was somewhat convoluted.
2020-11-04 13:46:37 +0100yoyo(50a46f47@80-164-111-71-dynamic.dk.customer.tdc.net) (Remote host closed the connection)
2020-11-04 13:46:52 +0100GUEST93997(~GUEST9399@124.123.107.91)
2020-11-04 13:47:06 +0100 <int-e> @let import Data.Profunctor.Unsafe
2020-11-04 13:47:08 +0100 <lambdabot> .L.hs:114:1: error:
2020-11-04 13:47:08 +0100 <lambdabot> Data.Profunctor.Unsafe: Can't be safely imported!
2020-11-04 13:47:08 +0100 <lambdabot> The package (profunctors-5.5.2) the module resides in isn't trusted.
2020-11-04 13:47:12 +0100 <int-e> Ah.
2020-11-04 13:47:21 +0100 <int-e> Okay, I take it back :)
2020-11-04 13:48:03 +0100 <int-e> Uniaika: In any case, *that* module is marked Trustworthy btw... despite the name.
2020-11-04 13:48:03 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-11-04 13:48:29 +0100darjeeling_(~darjeelin@115.215.43.51)
2020-11-04 13:48:59 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 13:49:32 +0100 <int-e> (for historic reasons, really... it uses coerce noawadays, to unwrap and rewrap newtypes deep inside data structures, but it used to be based on unsafeCoerce)
2020-11-04 13:50:54 +0100 <int-e> I still expect that coerce is leaked through the lens ecosystem *somewhere*.
2020-11-04 13:51:21 +0100 <idnar> :t coerced
2020-11-04 13:51:23 +0100 <lambdabot> (Profunctor p, Functor f, Coercible s a, Coercible t b) => p a (f b) -> p s (f t)
2020-11-04 13:51:32 +0100acidjnk_new2(~acidjnk@p200300d0c718f665213d210801ac68e4.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-04 13:51:42 +0100 <int-e> oh, that simple.
2020-11-04 13:51:49 +0100 <idnar> :)
2020-11-04 13:51:53 +0100 <int-e> thanks
2020-11-04 13:52:27 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-11-04 13:52:39 +0100Lycurgus(~niemand@98.4.97.110)
2020-11-04 13:52:44 +0100 <idnar> from just now: <lambdabot> • Perhaps you meant ‘coerced’ (imported from Control.Lens)
2020-11-04 13:53:05 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-04 13:54:34 +0100 <int-e> :t \f -> runIdentity . coerced (Identity . f . runIdentity)
2020-11-04 13:54:36 +0100 <lambdabot> (Coercible b1 a, Coercible c b2) => (b1 -> b2) -> a -> c
2020-11-04 13:55:05 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 13:55:23 +0100justMaD(~justMaD@184.75.221.35)
2020-11-04 13:56:06 +0100 <fendor> is it just me or is the cabal index pretty big? 800MB in .cabal/packages?
2020-11-04 13:56:19 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 13:56:49 +0100 <idnar> is Coercible symmetric?
2020-11-04 13:57:29 +0100 <int-e> fendor: yes, but well... it contains all .cabal files every uploaded to hackage, and a bit of extra stuff
2020-11-04 13:57:53 +0100 <dcoutts> fendor: that's uncompressed locally. It only downloads the compressed version which is 90M.
2020-11-04 13:58:04 +0100 <int-e> idnar: yes.
2020-11-04 13:58:10 +0100 <fendor> dcoutts, oh well, on the server it still takes 800mb
2020-11-04 13:58:12 +0100 <merijn> .cabal/package holds all the downloaded tarballs too
2020-11-04 13:58:13 +0100 <int-e> and it's downloaded incrementally
2020-11-04 13:58:44 +0100 <int-e> But for small VPSs it is big.
2020-11-04 13:58:46 +0100GUEST93997(~GUEST9399@124.123.107.91) (Read error: Connection reset by peer)
2020-11-04 13:58:52 +0100 <fendor> just by invoking `cabal update`
2020-11-04 13:59:02 +0100 <fendor> but admittedly, cabal 3.0.0.0, maybe something has changed?
2020-11-04 13:59:13 +0100 <int-e> Regardless, this is normal :-/
2020-11-04 14:00:10 +0100 <merijn> fendor: Well, what would you propose to change about it?
2020-11-04 14:00:10 +0100GUEST94796(~GUEST9479@124.123.107.91)
2020-11-04 14:00:24 +0100 <merijn> fendor: You need an index of all packages to do dependency resolution
2020-11-04 14:00:25 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-11-04 14:00:30 +0100 <fendor> merijn, nothing, I am just asking if that is to be expected
2020-11-04 14:00:40 +0100GUEST94796(~GUEST9479@124.123.107.91) (Read error: Connection reset by peer)
2020-11-04 14:00:49 +0100mietek(sid134071@gateway/web/irccloud.com/x-xdfehjuwjfwgiund)
2020-11-04 14:01:00 +0100 <mietek> Is the new Haskell Foundation website on github somewhere?
2020-11-04 14:01:02 +0100 <merijn> fendor: Well, it has entries and hashes for every package (version) ever released, so...kinda
2020-11-04 14:01:12 +0100 <fendor> not claiming it is bad or anything, I dont know how anyone else does it
2020-11-04 14:01:18 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov)
2020-11-04 14:01:32 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 14:01:32 +0100urodna(~urodna@unaffiliated/urodna)
2020-11-04 14:01:34 +0100 <fendor> just wondering, because it seemed huge, but if it is ok, then it is ok
2020-11-04 14:01:37 +0100 <dminuoso> fendor: They all do it the same, really.
2020-11-04 14:01:41 +0100 <merijn> fendor: There doesn't seem to be a lot of reason to even have cabal on machines that aren't compiling, though?
2020-11-04 14:01:47 +0100GUEST94894(~GUEST9489@124.123.107.91)
2020-11-04 14:01:52 +0100 <merijn> dminuoso: Naah
2020-11-04 14:01:56 +0100 <merijn> dminuoso: Some do it much worse!
2020-11-04 14:01:59 +0100Tario(~Tario@201.192.165.173)
2020-11-04 14:02:01 +0100 <dminuoso> heh
2020-11-04 14:02:05 +0100mietek(sid134071@gateway/web/irccloud.com/x-xdfehjuwjfwgiund) ()
2020-11-04 14:02:22 +0100GUEST94894(~GUEST9489@124.123.107.91) (Read error: Connection reset by peer)
2020-11-04 14:02:25 +0100 <fendor> merijn, the server is a playground for students, so it compiles stuff, but if every student has to download this index, it is 300 * 800MB which sums up quiet quickly
2020-11-04 14:02:40 +0100GUEST94946(~GUEST9494@124.123.107.91)
2020-11-04 14:02:47 +0100 <fendor> but we solved it by having a read-only cabal store for every student, so that should be fine now
2020-11-04 14:03:22 +0100 <dcoutts> fendor: you could share the package cache, without sharing the store, if that helps
2020-11-04 14:03:31 +0100 <dcoutts> the download cache I mean
2020-11-04 14:04:00 +0100 <dcoutts> it might be useful for your use case to have two stores, a shared read-only one and a local writable one
2020-11-04 14:04:12 +0100 <fendor> dcoutts, yeah, that would solve the problem, too. Currently, we share both now, the store dir and index since students should not be able to download arbitrary packages anyways
2020-11-04 14:04:29 +0100 <fendor> or rather, not be able to do it by accident
2020-11-04 14:04:48 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit)
2020-11-04 14:04:59 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 256 seconds)
2020-11-04 14:05:11 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-04 14:05:40 +0100 <dcoutts> fendor: there's a --offline flag, which I think you can also use in the ~/.cabal/config
2020-11-04 14:05:48 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit)
2020-11-04 14:05:56 +0100 <dcoutts> just causes any download attempt to fail, doesn't change the solver
2020-11-04 14:06:13 +0100 <fendor> dcoutts, does that work with v2-*? did not seem to work for me when playing around with it
2020-11-04 14:06:47 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-hgnmrpxqnetkvsrt)
2020-11-04 14:08:14 +0100GUEST94946(~GUEST9494@124.123.107.91) (Remote host closed the connection)
2020-11-04 14:08:33 +0100GUEST95299(~GUEST9529@124.123.107.91)
2020-11-04 14:08:52 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 14:08:58 +0100jakob_(~textual@p200300f49f16220018bfd377e039c2e3.dip0.t-ipconnect.de)
2020-11-04 14:09:25 +0100 <merijn> fendor: I think it should? If not that sounds like a bug?
2020-11-04 14:09:31 +0100toorevitimirp(~tooreviti@117.182.183.132) (Remote host closed the connection)
2020-11-04 14:10:02 +0100toorevitimirp(~tooreviti@117.182.183.132)
2020-11-04 14:11:13 +0100macrover(~macrover@ip70-189-231-35.lv.lv.cox.net)
2020-11-04 14:11:58 +0100 <fendor> merijn, hm, maybe it was a bug for cabal 3.0.0.0? I can try again later
2020-11-04 14:13:07 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-11-04 14:15:39 +0100machinedgod(~machinedg@207.253.244.210)
2020-11-04 14:16:56 +0100 <tomsmeding> quick question: does this datatype already exist in a commonly-used library? data PairOf f g t = PairOf (f t) (g t)
2020-11-04 14:17:51 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-04 14:18:25 +0100 <dminuoso> tomsmeding: Yes.
2020-11-04 14:18:34 +0100 <dminuoso> It's in base somewhere
2020-11-04 14:18:58 +0100whald(~trem@2a02:810a:8100:11a6:69c1:660a:2b51:2055)
2020-11-04 14:18:59 +0100 <dminuoso> Err GHC
2020-11-04 14:19:00 +0100 <dminuoso> tomsmeding: https://hackage.haskell.org/package/base-4.14.0.0/docs/GHC-Generics.html#t::-43-:
2020-11-04 14:19:01 +0100 <tomsmeding> that's what I was hoping with "commonly-used library" :p
2020-11-04 14:19:13 +0100 <tomsmeding> oh right
2020-11-04 14:19:20 +0100 <dminuoso> Oh and :*:
2020-11-04 14:19:21 +0100 <tomsmeding> well :*: then
2020-11-04 14:19:25 +0100Lycurgus(~niemand@98.4.97.110) (Quit: Exeunt)
2020-11-04 14:19:41 +0100 <dminuoso> tomsmeding: I do recall we had something outside generics as well
2020-11-04 14:19:44 +0100 <tomsmeding> a Generics import will look decidedly strange in this file, but I guess the semantics work :p
2020-11-04 14:19:58 +0100 <dminuoso> tomsmeding: http://hackage.haskell.org/package/base-4.14.0.0/docs/Data-Functor-Product.html
2020-11-04 14:19:59 +0100`slikts(~nelabs@wikipedia/reinis) (Ping timeout: 272 seconds)
2020-11-04 14:20:00 +0100 <dminuoso> There
2020-11-04 14:20:09 +0100 <dminuoso> That's what I wanted :)
2020-11-04 14:20:12 +0100nbloomf(~nbloomf@76.217.43.73)
2020-11-04 14:20:19 +0100 <tomsmeding> ah that's neater
2020-11-04 14:20:22 +0100 <tomsmeding> thanks!
2020-11-04 14:20:57 +0100tomsmedingnotes in my memory that Data.Functor.Sum also exists
2020-11-04 14:21:46 +0100 <tomsmeding> `Pair` collides with a constructor I already have in scope lol
2020-11-04 14:22:28 +0100 <dminuoso> Qualified imports is a thing.
2020-11-04 14:23:42 +0100fendor_(~fendor@77.119.128.11.wireless.dyn.drei.com)
2020-11-04 14:24:02 +0100 <tomsmeding> which is what I'll do :)
2020-11-04 14:24:09 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-11-04 14:24:52 +0100`slikts(~nelabs@wikipedia/reinis)
2020-11-04 14:25:32 +0100machinedgod(~machinedg@207.253.244.210) (Quit: leaving)
2020-11-04 14:26:09 +0100nbloomf(~nbloomf@76.217.43.73) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 14:27:02 +0100xff0x(~fox@2001:1a81:53f2:500:c561:3916:a8eb:5c4a) (Ping timeout: 264 seconds)
2020-11-04 14:27:12 +0100 <fendor> merijn, https://paste.tomsmeding.com/O4uOK0Xv looks wrong to me? Ignore the permission errors, unless they hide the issue, they are caused by the read-only cabal store, so downloading is forbidden
2020-11-04 14:27:31 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-04 14:27:53 +0100xff0x(~fox@2001:1a81:53f2:500:153c:e136:7dea:e190)
2020-11-04 14:28:06 +0100Eason0210(~user@101.85.10.81)
2020-11-04 14:28:34 +0100 <merijn> Does it actually go to the network?
2020-11-04 14:29:08 +0100 <fendor> afaict yes
2020-11-04 14:29:13 +0100 <merijn> hmm
2020-11-04 14:29:17 +0100 <merijn> Then I dunno
2020-11-04 14:29:24 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Quit: restart)
2020-11-04 14:30:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 14:30:30 +0100 <Franciman> hi, dost anybody use gi-gtk-declarative?
2020-11-04 14:30:51 +0100 <fendor> so, locally, I can reproduce it by invoking `cabal repl --offline -b hpath` where hpath is a package I haven't downloaded yet. https://paste.tomsmeding.com/RFlwkwVP
2020-11-04 14:32:27 +0100justMaD(~justMaD@184.75.221.35) (Remote host closed the connection)
2020-11-04 14:33:12 +0100knupfer(~Thunderbi@i5E86B46C.versanet.de)
2020-11-04 14:35:37 +0100fendor_(~fendor@77.119.128.11.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
2020-11-04 14:36:04 +0100LKoen_(~LKoen@53.253.88.92.rev.sfr.net)
2020-11-04 14:36:38 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 264 seconds)
2020-11-04 14:38:52 +0100LKoen(~LKoen@53.253.88.92.rev.sfr.net) (Ping timeout: 265 seconds)
2020-11-04 14:39:03 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-04 14:39:29 +0100machinedgod(~machinedg@207.253.244.210)
2020-11-04 14:40:01 +0100 <fendor> maybe the message is just wrong, might play around with it later
2020-11-04 14:40:54 +0100cheater(~user@unaffiliated/cheater)
2020-11-04 14:41:31 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-04 14:42:09 +0100machinedgod(~machinedg@207.253.244.210) (Remote host closed the connection)
2020-11-04 14:42:57 +0100knupfer(~Thunderbi@i5E86B46C.versanet.de) (Quit: knupfer)
2020-11-04 14:43:09 +0100knupfer(~Thunderbi@200116b82c1ba400a869b894ad25104c.dip.versatel-1u1.de)
2020-11-04 14:44:46 +0100machinedgod(~machinedg@207.253.244.210)
2020-11-04 14:45:25 +0100ddellacosta(~dd@86.106.121.168)
2020-11-04 14:45:47 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-04 14:50:01 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 14:51:42 +0100 <tomsmeding> tcpdump/wireshark, or strace | grep "connect"?
2020-11-04 14:54:24 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 244 seconds)
2020-11-04 14:55:52 +0100GUEST95299(~GUEST9529@124.123.107.91) (Remote host closed the connection)
2020-11-04 14:58:49 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
2020-11-04 14:59:29 +0100hekkaidekapus_hekkaidekapus
2020-11-04 14:59:29 +0100carlomagno1(~cararell@148.87.23.13) (Remote host closed the connection)
2020-11-04 15:00:08 +0100carlomagno(~cararell@148.87.23.13)
2020-11-04 15:03:40 +0100mb_(~mb@91-160-105-150.subs.proxad.net)
2020-11-04 15:03:57 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2020-11-04 15:05:47 +0100mb_(~mb@91-160-105-150.subs.proxad.net) (Client Quit)
2020-11-04 15:07:21 +0100 <hekkaidekapus> fendor: There are two other options. 1) Disable the package index in ~/.cabal/config by commenting out the `repository hackage…` stanza. 2) Write `active-repositories: :none` in cabal.project; this requires a bleeding-edge cabal-install.
2020-11-04 15:08:14 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 15:10:29 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-11-04 15:11:04 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-11-04 15:11:57 +0100gtk(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-04 15:12:29 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-11-04 15:14:39 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-11-04 15:15:06 +0100newbies(a5100248@165.16.2.72)
2020-11-04 15:15:49 +0100 <newbies> Hello!
2020-11-04 15:16:03 +0100 <yushyin> hello newbies
2020-11-04 15:16:59 +0100 <newbies> i have just got Haskell Platform
2020-11-04 15:17:20 +0100 <newbies> where do i start
2020-11-04 15:17:53 +0100 <opqdonut> I can plug my course: https://haskell.mooc.fi/
2020-11-04 15:18:13 +0100 <opqdonut> (open, free, no signup, no deadlines)
2020-11-04 15:18:57 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-04 15:19:14 +0100Eason0210(~user@101.85.10.81) (Quit: ERC (IRC client for Emacs 28.0.50))
2020-11-04 15:19:16 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 15:19:23 +0100Chai-T-Rex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-11-04 15:19:28 +0100 <newbies> Thanks!
2020-11-04 15:19:35 +0100 <newbies> i'm familiar with ML is it the same
2020-11-04 15:20:29 +0100 <opqdonut> very similar, but the syntax is a bit different
2020-11-04 15:20:43 +0100 <opqdonut> purity is probably the biggest concrete difference
2020-11-04 15:20:46 +0100 <opqdonut> followed by laziness
2020-11-04 15:21:08 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-04 15:21:16 +0100kuribastard(~user@ptr-25vy0iakqbc7il70x5a.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-11-04 15:22:19 +0100 <merijn> newbies: Going from ML to Haskell should be fairly easy
2020-11-04 15:22:23 +0100 <merijn> @where tutorial
2020-11-04 15:22:23 +0100 <lambdabot> http://www.haskell.org/tutorial/
2020-11-04 15:22:42 +0100Chai-T-Rex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-11-04 15:23:02 +0100 <merijn> newbies: The tutorial was written for people coming from (S)ML, so that's probably the shortest intro you can get
2020-11-04 15:23:21 +0100 <gtk> Are there still people using ML?
2020-11-04 15:23:34 +0100 <merijn> Most of the other texts/books will waste a lot of time on basics you should already get from ML (pattern matching, recursion, etc.)
2020-11-04 15:23:53 +0100 <merijn> gtk: Ocaml is an ML dialect and some diehards still use SML :)
2020-11-04 15:24:42 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-04 15:24:53 +0100 <gtk> ML syntax is the reason I start learning Haskell. It's just neat and beautiful
2020-11-04 15:25:21 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-04 15:25:58 +0100 <merijn> opqdonut: Purity is different, then again most people don't really have difficulty with purity per se as much as they struggle getting used to recursive thinking and ADTs, both of which you also need to learn for ML :p
2020-11-04 15:26:11 +0100lucasb(uid333435@gateway/web/irccloud.com/x-cbmhwogtcotlrzny)
2020-11-04 15:26:17 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-04 15:28:08 +0100 <hekkaidekapus> There is also <https://dr-knz.net/haskell-for-ocaml-programmers.html> for a quick introduction to Haskell from an OCaml perspective.
2020-11-04 15:28:45 +0100 <merijn> hah
2020-11-04 15:28:50 +0100 <merijn> A colleague wrote that :p
2020-11-04 15:30:06 +0100[n1x]_(~n1x]_@195.206.169.184)
2020-11-04 15:30:09 +0100 <hekkaidekapus> \O/
2020-11-04 15:30:14 +0100 <hekkaidekapus> Poss, R?
2020-11-04 15:30:36 +0100 <merijn> Well, ex-colleague I guess, but yeah
2020-11-04 15:30:42 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-04 15:31:27 +0100 <newbies> No [cradle] found for file.hs. Proceeding with implicit cradle
2020-11-04 15:31:54 +0100 <newbies> what is this mean
2020-11-04 15:31:58 +0100 <newbies> VScode
2020-11-04 15:32:05 +0100 <merijn> You're using hls, I guess?
2020-11-04 15:32:13 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-04 15:33:07 +0100 <merijn> newbies: Basically, the haskell language server needs to know how to compile your code to typecheck, etc. this config is called a cradle. It's saying you didn't write an explicit one, to it's using an implicit (auto-generated) one
2020-11-04 15:33:45 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922)
2020-11-04 15:33:54 +0100 <newbies> where do i have to config it
2020-11-04 15:34:00 +0100hackageless-arbitrary 0.1.0.2 - Linear time testing with variant of Arbitrary class that always terminates. https://hackage.haskell.org/package/less-arbitrary-0.1.0.2 (MichalGajda)
2020-11-04 15:34:08 +0100 <merijn> If it works, you don't have to :p
2020-11-04 15:34:30 +0100 <newbies> '=D
2020-11-04 15:34:43 +0100 <newbies> i just wanted to know
2020-11-04 15:34:45 +0100 <merijn> it's basically an info/debug message in case things break/don't work
2020-11-04 15:34:55 +0100 <newbies> i see
2020-11-04 15:35:02 +0100 <merijn> newbies: https://github.com/mpickering/hie-bios
2020-11-04 15:35:54 +0100 <newbies> Thanks
2020-11-04 15:36:17 +0100 <yushyin> the implicit cradle never worked for me, not even once.
2020-11-04 15:36:28 +0100 <merijn> yushyin: For simple projects it works for me
2020-11-04 15:37:06 +0100 <yushyin> and 99% of the time it's just c&p from the cabal file
2020-11-04 15:38:05 +0100 <hekkaidekapus> yushyin: You can also `cabal install implicit-hie && gen-hie > hie.yaml`
2020-11-04 15:39:12 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:fc37:ff3f:9c12:2922) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-04 15:39:24 +0100mmohammadi9812(~mmohammad@2.178.217.171) (Ping timeout: 256 seconds)
2020-11-04 15:40:13 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-04 15:40:59 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-04 15:41:10 +0100 <yushyin> hekkaidekapus: thanks for the hint
2020-11-04 15:41:27 +0100 <hekkaidekapus> np
2020-11-04 15:41:42 +0100britva(~britva@2a02:aa13:7240:2980:9117:32f5:aa09:6904)
2020-11-04 15:42:28 +0100 <tomsmeding> how do people even pronounce 'hie'? as an acronym, eich aye ee? 'hy'? 'hee'?
2020-11-04 15:42:41 +0100kuribastard(~user@ptr-25vy0iakqbc7il70x5a.18120a2.ip6.access.telenet.be)
2020-11-04 15:42:44 +0100 <hekkaidekapus> Hi :P
2020-11-04 15:43:09 +0100 <tomsmeding> implicit-greeting
2020-11-04 15:45:01 +0100mmohammadi9812(~mmohammad@2.178.217.171)
2020-11-04 15:45:43 +0100ystael(~ystael@209.6.50.55)
2020-11-04 15:46:50 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds)
2020-11-04 15:49:09 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 15:51:15 +0100ystael(~ystael@209.6.50.55) (Quit: Lost terminal)
2020-11-04 15:51:18 +0100alx741(~alx741@186.178.110.193) (Ping timeout: 272 seconds)
2020-11-04 15:54:02 +0100ystael(~ystael@209.6.50.55)
2020-11-04 15:54:21 +0100gienah(~mwright@gentoo/developer/gienah) (Read error: Connection reset by peer)
2020-11-04 15:54:42 +0100 <__monty__> tomsmeding: The latter for me, probably because of mother tongue induced brain damage.
2020-11-04 15:55:10 +0100 <merijn> ;)
2020-11-04 15:55:29 +0100 <merijn> __monty__: Like always typo-ing photos as photo's? ;)
2020-11-04 15:55:57 +0100gienah(~mwright@gentoo/developer/gienah)
2020-11-04 15:56:54 +0100 <tomsmeding> __monty__: exactly the same for me :p
2020-11-04 15:57:02 +0100ColdRush(~coldrush@4e69b241.skybroadband.com) (Ping timeout: 264 seconds)
2020-11-04 15:57:21 +0100 <__monty__> merijn: I do stumble but don't usually make that error. Commas are what trip me up the most.
2020-11-04 15:58:06 +0100christo(~chris@81.96.113.213)
2020-11-04 15:58:11 +0100 <merijn> I mess up ' all the time in plurals, and of course a lot of "spatie fouten" in the reverse direction :p
2020-11-04 15:59:13 +0100 <hekkaidekapus> And if the brain damage is French-induced, the ‘h’ could be unspoken, landing you at ie, id est in Latin :D
2020-11-04 15:59:14 +0100 <tomsmeding> the people that use spaces correctly in NL can be put together in one building even with corona separation rules
2020-11-04 15:59:24 +0100 <merijn> tomsmeding: :p
2020-11-04 16:00:02 +0100[n1x]_(~n1x]_@195.206.169.184) ()
2020-11-04 16:00:47 +0100obihann(~jhann@156.34.160.69)
2020-11-04 16:00:47 +0100aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net)
2020-11-04 16:01:52 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 258 seconds)
2020-11-04 16:02:33 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-11-04 16:03:30 +0100alx741(~alx741@181.196.69.190)
2020-11-04 16:05:31 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2020-11-04 16:07:50 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 16:09:56 +0100 <yushyin> guess I'm the odd one, I use a shwa for the e in hie
2020-11-04 16:11:05 +0100icebreaker(~icebreake@unaffiliated/icebreaker) (Quit: leaving)
2020-11-04 16:11:20 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-11-04 16:11:28 +0100icebreaker(michalc@freeshell.de)
2020-11-04 16:11:28 +0100icebreaker(michalc@freeshell.de) (Changing host)
2020-11-04 16:11:28 +0100icebreaker(michalc@unaffiliated/icebreaker)
2020-11-04 16:11:49 +0100icebreaker(michalc@unaffiliated/icebreaker) (Client Quit)
2020-11-04 16:12:39 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 16:14:19 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-11-04 16:14:26 +0100 <bqv> disproportionately amused by the naming of Relude's "flap"
2020-11-04 16:16:00 +0100icebreaker(michalc@freeshell.de)
2020-11-04 16:16:00 +0100icebreaker(michalc@freeshell.de) (Changing host)
2020-11-04 16:16:00 +0100icebreaker(michalc@unaffiliated/icebreaker)
2020-11-04 16:17:42 +0100 <Cheery> I either forgot how haskell language server works, or then it stopped working out of sudden.
2020-11-04 16:20:02 +0100 <jonathanx> I'm headed home from work soon, have been spending too much time trying to figure out how to get auto rebuild on stack run (preferable with a browser refresh) going. I tried steeloverseer, but no cigar. Any suggestions?
2020-11-04 16:20:10 +0100spamlessj(~spamlessj@2a01:4f8:141:1329::2)
2020-11-04 16:20:24 +0100 <jonathanx> (auto rebuild as in rebuild on file changes)
2020-11-04 16:20:38 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-11-04 16:21:37 +0100aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net) (Ping timeout: 246 seconds)
2020-11-04 16:22:24 +0100newbies(a5100248@165.16.2.72) (Remote host closed the connection)
2020-11-04 16:24:54 +0100Tario(~Tario@201.192.165.173)
2020-11-04 16:24:58 +0100bookhead(~bookhead@2607:fea8:2c40:307::123d)
2020-11-04 16:29:31 +0100Gurkenglas__(~Gurkengla@unaffiliated/gurkenglas)
2020-11-04 16:31:29 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-04 16:32:32 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 258 seconds)
2020-11-04 16:33:17 +0100coot_(~coot@37.30.49.218.nat.umts.dynamic.t-mobile.pl)
2020-11-04 16:33:54 +0100obihann(~jhann@156.34.160.69) (Remote host closed the connection)
2020-11-04 16:35:19 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-11-04 16:36:30 +0100zebrag(~inkbottle@aaubervilliers-654-1-104-94.w86-212.abo.wanadoo.fr)
2020-11-04 16:37:05 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-11-04 16:37:09 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 260 seconds)
2020-11-04 16:37:11 +0100coot_coot
2020-11-04 16:39:38 +0100britva(~britva@2a02:aa13:7240:2980:9117:32f5:aa09:6904) (Quit: This computer has gone to sleep)
2020-11-04 16:42:01 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 16:44:10 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-04 16:45:32 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 16:46:11 +0100bookhead(~bookhead@2607:fea8:2c40:307::123d) (Quit: bookhead)
2020-11-04 16:46:54 +0100LKoen_(~LKoen@53.253.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-11-04 16:48:38 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 258 seconds)
2020-11-04 16:50:02 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 16:50:56 +0100gtk(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 258 seconds)
2020-11-04 16:52:13 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-11-04 16:54:07 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-04 16:54:25 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 256 seconds)
2020-11-04 16:54:42 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-11-04 16:55:10 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:ed58:dda3:fd80:2c46)
2020-11-04 16:55:20 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 16:55:58 +0100motte(~weechat@unaffiliated/motte)
2020-11-04 16:56:00 +0100darkspadez|lapto(~darkspade@185.204.1.185)
2020-11-04 16:57:44 +0100kuribastard(~user@ptr-25vy0iakqbc7il70x5a.18120a2.ip6.access.telenet.be) (Read error: Connection reset by peer)
2020-11-04 16:59:25 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 240 seconds)
2020-11-04 17:00:07 +0100io_r_us[m](commandlin@gateway/shell/matrix.org/x-dcxofhcftbovwbst) (Quit: Idle for 30+ days)
2020-11-04 17:00:36 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-04 17:02:34 +0100Amras(~Amras@unaffiliated/amras0000)
2020-11-04 17:03:43 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-04 17:03:53 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-04 17:04:32 +0100ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net)
2020-11-04 17:04:33 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 17:04:42 +0100ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net) (Changing host)
2020-11-04 17:04:42 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-11-04 17:06:39 +0100 <justsomeguy> jonathanx: Personally I use http://eradman.com/entrproject/ and the "tab reloader" firefox plugin. There are probably better ways to do it, though.
2020-11-04 17:06:55 +0100piyush-kurur(~user@117.213.47.10)
2020-11-04 17:07:12 +0100berberman_(~berberman@unaffiliated/berberman)
2020-11-04 17:07:20 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-04 17:08:02 +0100yoneda(~mike@193.206.102.122) (Quit: leaving)
2020-11-04 17:08:07 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-11-04 17:09:30 +0100toorevitimirp(~tooreviti@117.182.183.132) (Remote host closed the connection)
2020-11-04 17:11:14 +0100bookhead(~bookhead@cpe589630b81951-cm589630b8194f.cpe.net.cable.rogers.com)
2020-11-04 17:11:46 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-04 17:11:53 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 17:13:37 +0100RollingStone(2d56c924@45.86.201.36)
2020-11-04 17:14:59 +0100RollingStone(2d56c924@45.86.201.36) (Remote host closed the connection)
2020-11-04 17:16:14 +0100p8m(p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 264 seconds)
2020-11-04 17:17:39 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-11-04 17:18:02 +0100obihann(~jhann@156.34.160.69)
2020-11-04 17:18:28 +0100carlomagno(~cararell@148.87.23.13) (Remote host closed the connection)
2020-11-04 17:21:23 +0100obihann(~jhann@156.34.160.69) (Client Quit)
2020-11-04 17:21:57 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-04 17:22:12 +0100icebreaker(michalc@unaffiliated/icebreaker) (Quit: leaving)
2020-11-04 17:22:20 +0100icebreaker(michalc@freeshell.de)
2020-11-04 17:22:20 +0100icebreaker(michalc@freeshell.de) (Changing host)
2020-11-04 17:22:20 +0100icebreaker(michalc@unaffiliated/icebreaker)
2020-11-04 17:22:21 +0100obihann(~jhann@156.34.160.69)
2020-11-04 17:22:48 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Remote host closed the connection)
2020-11-04 17:23:08 +0100obihann(~jhann@156.34.160.69) (Client Quit)
2020-11-04 17:23:10 +0100conal(~conal@64.71.133.70)
2020-11-04 17:23:42 +0100obihann(~jhann@156.34.160.69)
2020-11-04 17:24:06 +0100obihann(~jhann@156.34.160.69) (Client Quit)
2020-11-04 17:24:11 +0100st8less(~st8less@2603:a060:11fd:0:acb3:c1f9:8208:550f)
2020-11-04 17:24:39 +0100sfvm(~sfvm@37.228.215.148)
2020-11-04 17:25:09 +0100obihann(~jhann@156.34.160.69)
2020-11-04 17:28:24 +0100p8m(p8m@gateway/vpn/protonvpn/p8m)
2020-11-04 17:30:08 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-11-04 17:31:56 +0100carlomagno(~cararell@148.87.23.11)
2020-11-04 17:35:50 +0100patty1(~patty@104.206.12.227)
2020-11-04 17:37:21 +0100conal(~conal@64.71.133.70) (Ping timeout: 260 seconds)
2020-11-04 17:39:41 +0100troydm(~troydm@unaffiliated/troydm) (Ping timeout: 260 seconds)
2020-11-04 17:40:06 +0100conal(~conal@66.115.157.70)
2020-11-04 17:40:49 +0100zebrag(~inkbottle@aaubervilliers-654-1-104-94.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-11-04 17:41:04 +0100concept2(~concept2@unaffiliated/tubo) (Read error: Connection reset by peer)
2020-11-04 17:41:09 +0100zebrag(~inkbottle@aaubervilliers-654-1-104-94.w86-212.abo.wanadoo.fr)
2020-11-04 17:41:27 +0100concept2(~concept2@unaffiliated/tubo)
2020-11-04 17:43:55 +0100patty1(~patty@104.206.12.227) (Quit: WeeChat 1.9.1)
2020-11-04 17:44:09 +0100fendor_(~fendor@178.115.130.128.wireless.dyn.drei.com)
2020-11-04 17:46:27 +0100alp(~alp@2a01:e0a:58b:4920:1dd3:df8f:e85c:9a7d) (Ping timeout: 272 seconds)
2020-11-04 17:46:50 +0100fendor(~fendor@77.119.128.11.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
2020-11-04 17:47:12 +0100troydm(~troydm@unaffiliated/troydm)
2020-11-04 17:48:47 +0100 <dsal> Dumb lens question. I'm working with aeson and want to modify two keys. I've got `v & deep values . _Object . at "k1" ?~ "XXX"` I also want to modify "k2" the same way. Is there a sensible way to do compose two of these `at`s so I can do them in the same place?
2020-11-04 17:49:18 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2020-11-04 17:49:57 +0100acidjnk_new2(~acidjnk@p200300d0c718f665213d210801ac68e4.dip0.t-ipconnect.de)
2020-11-04 17:50:12 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-04 17:50:42 +0100borne(~fritjof@200116b864d4e2005d0cb1433c5d4cbb.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-04 17:52:21 +0100 <Taneb> dsal: there's not a super great solution here, although there's a not-nice solution, Control.Lens.Unsound.adjoin does what you need
2020-11-04 17:53:03 +0100 <dsal> This doc makes me feel bad: Are you looking for failing?
2020-11-04 17:54:37 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 17:54:43 +0100 <Taneb> "failing" can do "if you don't find anything in the first place, try the second"
2020-11-04 17:54:50 +0100 <Taneb> But I see what you mean
2020-11-04 17:55:44 +0100 <dsal> Hmm... This seems newer than my lens.
2020-11-04 17:57:04 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 17:57:22 +0100 <dsal> I guess I can just do something ugly in the short term. It feels like something that should be possible. It's really just "replace all occurrences of keys xs with these values" which feels like it's right there.
2020-11-04 17:58:36 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-04 17:58:54 +0100 <dsal> A tiny helper function does the thing at least.
2020-11-04 17:59:07 +0100 <dsal> `v & deep values . _Object %~ fixit`
2020-11-04 17:59:27 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds)
2020-11-04 18:00:31 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-04 18:01:37 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 260 seconds)
2020-11-04 18:02:05 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
2020-11-04 18:02:08 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-hpmiowuimqysffdt)
2020-11-04 18:02:24 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 18:06:05 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 272 seconds)
2020-11-04 18:07:00 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-04 18:07:13 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 260 seconds)
2020-11-04 18:07:15 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-04 18:07:36 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-yoxguegrcaybrryj)
2020-11-04 18:07:41 +0100jespada(~jespada@90.254.245.49)
2020-11-04 18:08:23 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-04 18:08:32 +0100entel(uid256215@botters/entel) ()
2020-11-04 18:09:06 +0100entel(uid256215@botters/entel)
2020-11-04 18:09:19 +0100sh9(~sh9@softbank060116136158.bbtec.net) (Read error: Connection reset by peer)
2020-11-04 18:10:31 +0100conal(~conal@66.115.157.70) (Quit: Computer has gone to sleep.)
2020-11-04 18:12:10 +0100aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net)
2020-11-04 18:12:27 +0100borne(~fritjof@200116b864d4e2005d0cb1433c5d4cbb.dip.versatel-1u1.de)
2020-11-04 18:12:30 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-04 18:13:06 +0100ColdRush(~coldrush@4e69b241.skybroadband.com)
2020-11-04 18:16:23 +0100teardown(~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds)
2020-11-04 18:16:36 +0100conal(~conal@66.115.157.70)
2020-11-04 18:17:28 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-11-04 18:19:06 +0100comerijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-04 18:19:56 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2020-11-04 18:21:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-04 18:23:31 +0100hackageColor 0.3.0 - Color spaces and conversions between them https://hackage.haskell.org/package/Color-0.3.0 (lehins)
2020-11-04 18:23:40 +0100aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net) ()
2020-11-04 18:24:34 +0100bitmagie(~Thunderbi@200116b80654c700253602a817d4606f.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-04 18:24:51 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 258 seconds)
2020-11-04 18:24:53 +0100LKoen(~LKoen@53.253.88.92.rev.sfr.net)
2020-11-04 18:26:00 +0100conal(~conal@66.115.157.70) (Quit: Computer has gone to sleep.)
2020-11-04 18:26:35 +0100howdoi(uid224@gateway/web/irccloud.com/x-vhoynudvnfkkavxn)
2020-11-04 18:26:45 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
2020-11-04 18:27:40 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-04 18:28:00 +0100Franciman(~francesco@host-79-36-167-172.retail.telecomitalia.it) (Quit: Leaving)
2020-11-04 18:28:31 +0100ubert(~Thunderbi@p200300ecdf1e5334e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-04 18:28:55 +0100ubert(~Thunderbi@p200300ecdf1e5334e6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-04 18:29:25 +0100kish(~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds)
2020-11-04 18:30:08 +0100kish(~oracle@unaffiliated/oracle)
2020-11-04 18:31:09 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 18:31:42 +0100christo(~chris@81.96.113.213)
2020-11-04 18:32:01 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 18:32:47 +0100 <dsal> Actually, this is only working for setting string values. It won't even let me set array values, which is bizarre to me.
2020-11-04 18:32:52 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-11-04 18:33:38 +0100 <dsal> I'll just do the maximum gross thing.
2020-11-04 18:33:48 +0100 <hc> switch to python? ;p
2020-11-04 18:34:47 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 18:35:01 +0100ubert(~Thunderbi@p200300ecdf1e5334e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-11-04 18:35:25 +0100solonarv(~solonarv@astrasbourg-653-1-263-62.w92-161.abo.wanadoo.fr)
2020-11-04 18:35:41 +0100ubert(~Thunderbi@p200300ecdf1e5367e6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-04 18:36:05 +0100 <dsal> ha
2020-11-04 18:36:23 +0100 <bqv> can think of worse things to write in than python...
2020-11-04 18:37:21 +0100 <koz_> bqv: The fact that a worse option than X exists does not make X a good option, for any value of X.
2020-11-04 18:38:33 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-11-04 18:38:52 +0100 <geekosaur> they did say "maximum"
2020-11-04 18:39:06 +0100 <koz_> geekosaur: So what, x86 asm? :P
2020-11-04 18:39:17 +0100 <pjb> koz_: since the demise of display postscript, only X knows to do remote.
2020-11-04 18:39:24 +0100bookhead(~bookhead@cpe589630b81951-cm589630b8194f.cpe.net.cable.rogers.com) ("Good Bye")
2020-11-04 18:39:33 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 18:39:35 +0100 <geekosaur> 1802 asm, I think :p
2020-11-04 18:40:07 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-04 18:40:41 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-04 18:41:02 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 18:41:38 +0100alp(~alp@2a01:e0a:58b:4920:25e2:af6d:9b8e:49b9)
2020-11-04 18:46:06 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2020-11-04 18:46:14 +0100chaosmasttter(~chaosmast@p200300c4a7117c01215e340256877fbe.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-04 18:49:50 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Quit: jpds)
2020-11-04 18:51:53 +0100macrover(~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection)
2020-11-04 18:52:11 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-04 18:52:17 +0100is_null(~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 260 seconds)
2020-11-04 18:52:26 +0100coot(~coot@37.30.49.218.nat.umts.dynamic.t-mobile.pl) (Ping timeout: 272 seconds)
2020-11-04 18:53:56 +0100is_null(~jpic@pdpc/supporter/professional/is-null)
2020-11-04 18:54:10 +0100 <dsal> I feel like lens let me down a little here. https://www.irccloud.com/pastebin/Z5CZWFIL/gross.hs
2020-11-04 18:55:59 +0100geekosaur79(82659a09@host154-009.vpn.uakron.edu)
2020-11-04 18:56:10 +0100 <koz_> Well, lens isn't Rick Astley.
2020-11-04 18:56:28 +0100Tops21(~Tobias@dyndsl-095-033-016-001.ewe-ip-backbone.de)
2020-11-04 18:56:35 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-04 18:56:56 +0100conal(~conal@66.115.157.70)
2020-11-04 18:57:37 +0100christo(~chris@81.96.113.213)
2020-11-04 18:57:59 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-11-04 18:58:40 +0100dsalstarts new library
2020-11-04 18:59:22 +0100 <monochrom> hahaha koz_
2020-11-04 18:59:24 +0100 <koz_> dsal: Is going to be named lens-rick?
2020-11-04 18:59:42 +0100 <koz_> monochrom: I try.
2020-11-04 18:59:44 +0100 <dsal> Yeah. It'll solve all problems in a simple, natural way.
2020-11-04 18:59:56 +0100 <koz_> dsal: It'll never tell a lie and hurt you?
2020-11-04 19:00:01 +0100darkspadez|lapto(~darkspade@185.204.1.185) ()
2020-11-04 19:00:21 +0100Tops2(~Tobias@dyndsl-095-033-016-001.ewe-ip-backbone.de) (Ping timeout: 265 seconds)
2020-11-04 19:00:28 +0100 <dsal> If you think about it, when a lens shatters, it becomes very dangerous to everything around it.
2020-11-04 19:00:30 +0100geekosaur79(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-04 19:01:06 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 19:01:06 +0100 <DigitalKiwi> safety-lens
2020-11-04 19:01:10 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-04 19:01:11 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-04 19:01:16 +0100 <monochrom> never gonna set you up, never gonna rickroll you
2020-11-04 19:01:32 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 19:01:35 +0100 <DigitalKiwi> the docs page on hackage goes to youtube
2020-11-04 19:02:28 +0100dbmikus_(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2020-11-04 19:02:33 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2020-11-04 19:03:56 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 19:04:51 +0100fendor_fendor
2020-11-04 19:05:44 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 256 seconds)
2020-11-04 19:08:21 +0100justsomeguy(~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b)
2020-11-04 19:08:21 +0100justsomeguy(~justsomeg@2603:9000:960a:fc00:c4d2:5b73:c7b7:3a2b) (Changing host)
2020-11-04 19:08:21 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-11-04 19:10:43 +0100 <bqv> safety-lens sounds almost realistic
2020-11-04 19:11:14 +0100entel(uid256215@botters/entel) ()
2020-11-04 19:11:39 +0100entel(uid256215@botters/entel)
2020-11-04 19:11:42 +0100 <DigitalKiwi> yeah i was actually trying to be helpful someone not me should make it
2020-11-04 19:12:47 +0100entel(uid256215@botters/entel) (Client Quit)
2020-11-04 19:13:16 +0100entel(uid256215@botters/entel)
2020-11-04 19:13:25 +0100chaosmasttter(~chaosmast@p200300c4a7117c01215e340256877fbe.dip0.t-ipconnect.de)
2020-11-04 19:13:41 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2020-11-04 19:15:01 +0100 <bqv> though i imagine ed would be unhappy at lens being called unsafe
2020-11-04 19:15:49 +0100obihann(~jhann@156.34.160.69) (Remote host closed the connection)
2020-11-04 19:20:37 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-11-04 19:20:45 +0100Tario(~Tario@201.192.165.173)
2020-11-04 19:21:53 +0100knupfer(~Thunderbi@200116b82c1ba400a869b894ad25104c.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-04 19:22:01 +0100knupfer(~Thunderbi@200116b82c1ba4001c1efa9cfbaac5ab.dip.versatel-1u1.de)
2020-11-04 19:22:11 +0100kish(~oracle@unaffiliated/oracle) (Remote host closed the connection)
2020-11-04 19:24:38 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf) (Quit: Lost terminal)
2020-11-04 19:24:54 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 19:24:59 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf)
2020-11-04 19:25:06 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-04 19:26:07 +0100conal(~conal@66.115.157.70) (Quit: Computer has gone to sleep.)
2020-11-04 19:26:41 +0100conal(~conal@66.115.157.70)
2020-11-04 19:27:15 +0100conal(~conal@66.115.157.70) (Client Quit)
2020-11-04 19:28:02 +0100kish(~oracle@unaffiliated/oracle)
2020-11-04 19:28:04 +0100christo(~chris@81.96.113.213)
2020-11-04 19:30:22 +0100ishutin(~Ishutin@178-164-208-236.pool.digikabel.hu)
2020-11-04 19:32:19 +0100machinedgod(~machinedg@207.253.244.210) (Ping timeout: 258 seconds)
2020-11-04 19:33:10 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se)
2020-11-04 19:33:25 +0100ishutin_(~Ishutin@92-249-182-32.pool.digikabel.hu) (Ping timeout: 240 seconds)
2020-11-04 19:34:00 +0100machinedgod(~machinedg@142.169.78.247)
2020-11-04 19:39:22 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-04 19:41:50 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-04 19:42:14 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-04 19:45:23 +0100Chai-T-Rex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-11-04 19:45:59 +0100Chai-T-Rex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-11-04 19:46:30 +0100hackagepersistent 2.11.0.0 - Type-safe, multi-backend data serialization. https://hackage.haskell.org/package/persistent-2.11.0.0 (parsonsmatt)
2020-11-04 19:46:58 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-04 19:47:30 +0100hackagepersistent-mysql 2.10.3 - Backend for the persistent library using MySQL database server. https://hackage.haskell.org/package/persistent-mysql-2.10.3 (parsonsmatt)
2020-11-04 19:47:43 +0100miseenplace[m](miseenplac@gateway/shell/matrix.org/x-lvdnpqvjqjthlamh)
2020-11-04 19:48:30 +0100hackagepersistent-postgresql 2.11.0.0 - Backend for the persistent library using postgresql. https://hackage.haskell.org/package/persistent-postgresql-2.11.0.0 (parsonsmatt)
2020-11-04 19:49:30 +0100hackagepersistent-template 2.9.1.0 - Type-safe, non-relational, multi-backend persistence. https://hackage.haskell.org/package/persistent-template-2.9.1.0 (parsonsmatt)
2020-11-04 19:50:30 +0100hackagepersistent-sqlite 2.11.0.0 - Backend for the persistent library using sqlite3. https://hackage.haskell.org/package/persistent-sqlite-2.11.0.0 (parsonsmatt)
2020-11-04 19:51:30 +0100hackagepersistent-mongoDB 2.11.0.0 - Backend for the persistent library using mongoDB. https://hackage.haskell.org/package/persistent-mongoDB-2.11.0.0 (parsonsmatt)
2020-11-04 19:52:15 +0100christo(~chris@81.96.113.213)
2020-11-04 19:53:00 +0100hackagepersistent-test 2.0.3.4 - Tests for Persistent https://hackage.haskell.org/package/persistent-test-2.0.3.4 (parsonsmatt)
2020-11-04 19:53:13 +0100machinedgod(~machinedg@142.169.78.247) (Ping timeout: 260 seconds)
2020-11-04 19:53:53 +0100machinedgod(~machinedg@142.169.78.247)
2020-11-04 19:53:57 +0100notnatebtw(~nate@125.161.131.218) (Quit: WeeChat 2.9)
2020-11-04 19:54:55 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-04 19:55:29 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-11-04 19:56:00 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-04 19:56:46 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-04 19:57:02 +0100christo(~chris@81.96.113.213) (Ping timeout: 264 seconds)
2020-11-04 19:58:00 +0100hackageloc 0.1.3.10 - Types representing line and column positions and ranges in text files. https://hackage.haskell.org/package/loc-0.1.3.10 (chris_martin)
2020-11-04 19:58:50 +0100 <justsomeguy> Is there a way to visualize recursion trees for haskell functions? (Or, if not, what's a good tool for creating those diagrams by hand?)
2020-11-04 19:59:00 +0100hackageciteproc 0.1.1 - Generates citations and bibliography from CSL styles. https://hackage.haskell.org/package/citeproc-0.1.1 (JohnMacFarlane)
2020-11-04 20:00:43 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2020-11-04 20:01:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-04 20:01:36 +0100 <sm[m]> justsomeguy: is the stack trace printed by error (at least from a profiling build) suitable ?
2020-11-04 20:01:59 +0100alp(~alp@2a01:e0a:58b:4920:25e2:af6d:9b8e:49b9) (Ping timeout: 272 seconds)
2020-11-04 20:01:59 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2020-11-04 20:03:27 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-04 20:04:50 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2020-11-04 20:05:14 +0100enva2712(~enva2712@cpe-75-86-42-2.wi.res.rr.com)
2020-11-04 20:05:32 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 20:05:49 +0100 <justsomeguy> sm[m]: Hmm, let me see.
2020-11-04 20:06:33 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-04 20:07:17 +0100 <sm[m]> If not there are tools for it, somewhere, but I don't know if they work for complex code
2020-11-04 20:09:31 +0100 <justsomeguy> It's really just a few toy example functions that I'm using for my notes on recursion.
2020-11-04 20:10:24 +0100 <sm[m]> A profile, perhaps improved by profiterole, could be another option
2020-11-04 20:11:53 +0100 <justsomeguy> This is interesting. I have not looked into profiling until now.
2020-11-04 20:12:47 +0100 <justsomeguy> Thanks for the hints, sm[m], I must go now :)
2020-11-04 20:12:55 +0100 <sm[m]> np
2020-11-04 20:13:02 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-11-04 20:13:33 +0100Franciman(~francesco@host-79-36-167-172.retail.telecomitalia.it)
2020-11-04 20:13:51 +0100johnw(~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
2020-11-04 20:14:13 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-11-04 20:17:25 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds)
2020-11-04 20:19:37 +0100mmohammadi9812(~mmohammad@2.178.217.171) (Ping timeout: 265 seconds)
2020-11-04 20:19:41 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-04 20:20:06 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-04 20:20:20 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 20:21:29 +0100jespada(~jespada@90.254.245.49) (Quit: Sleeping)
2020-11-04 20:22:10 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-11-04 20:23:01 +0100Entertainment(~lyle@104.246.132.210)
2020-11-04 20:23:25 +0100conal(~conal@66.115.157.70)
2020-11-04 20:24:10 +0100Entertainment(~lyle@104.246.132.210) ()
2020-11-04 20:24:26 +0100Entertainment(~lyle@104.246.132.210)
2020-11-04 20:24:52 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
2020-11-04 20:25:04 +0100Entertainment(~lyle@104.246.132.210) ()
2020-11-04 20:25:31 +0100hackageblanks 0.5.0 - Fill-in-the-blanks - A library factoring out substitution from ASTs https://hackage.haskell.org/package/blanks-0.5.0 (ejconlon)
2020-11-04 20:25:46 +0100Entertainment(~entertain@104.246.132.210)
2020-11-04 20:26:48 +0100juuandyy(~juuandyy@90.166.144.65)
2020-11-04 20:27:36 +0100piyush-kurur(~user@117.213.47.10) (Remote host closed the connection)
2020-11-04 20:29:50 +0100jess(jess@freenode/staff/jess)
2020-11-04 20:30:24 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-04 20:30:36 +0100mmohammadi9812(~mmohammad@2.178.217.171)
2020-11-04 20:30:47 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 20:30:50 +0100dscho(~dscho@217.146.82.202)
2020-11-04 20:30:50 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-04 20:31:20 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 20:34:28 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-04 20:34:38 +0100todda7(~torstein@ppp-2-84-30-242.home.otenet.gr)
2020-11-04 20:35:15 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 20:36:42 +0100whald(~trem@2a02:810a:8100:11a6:69c1:660a:2b51:2055) (Remote host closed the connection)
2020-11-04 20:37:16 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-04 20:37:28 +0100britva(~britva@2a02:aa13:7240:2980:9117:32f5:aa09:6904)
2020-11-04 20:38:55 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 20:38:57 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Remote host closed the connection)
2020-11-04 20:39:10 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 20:39:45 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 240 seconds)
2020-11-04 20:40:00 +0100hackageservant 0.18.1 - A family of combinators for defining webservices APIs https://hackage.haskell.org/package/servant-0.18.1 (maksbotan)
2020-11-04 20:40:25 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 20:40:32 +0100crdrost(~crdrost@c-98-207-102-156.hsd1.ca.comcast.net)
2020-11-04 20:41:01 +0100hackageservant-server 0.18.1, servant-http-streams 0.18.1, servant-docs 0.11.7, servant-client-core 0.18.1, servant-client 0.18.1 (maksbotan): https://qbin.io/sport-ui-myce
2020-11-04 20:41:26 +0100britva(~britva@2a02:aa13:7240:2980:9117:32f5:aa09:6904) (Client Quit)
2020-11-04 20:42:22 +0100conal(~conal@66.115.157.70) (Ping timeout: 246 seconds)
2020-11-04 20:43:02 +0100britva(~britva@2a02:aa13:7240:2980:9117:32f5:aa09:6904)
2020-11-04 20:44:01 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-04 20:44:45 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 240 seconds)
2020-11-04 20:45:23 +0100conal(~conal@66.115.157.70)
2020-11-04 20:45:33 +0100Franciman(~francesco@host-79-36-167-172.retail.telecomitalia.it) (Quit: Leaving)
2020-11-04 20:46:10 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-04 20:46:12 +0100Lycurgus(~niemand@98.4.97.110)
2020-11-04 20:46:17 +0100thc202(~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
2020-11-04 20:46:28 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be)
2020-11-04 20:47:02 +0100wanaks[m](wanaksmatr@gateway/shell/matrix.org/x-tghlzmezifnrojup)
2020-11-04 20:49:15 +0100 <matthew-> hmm, this is probably a dumb question, but am I right in thinking of a list as a sum type with 1 type parameter?
2020-11-04 20:49:35 +0100 <gobbleguy> sounds right
2020-11-04 20:49:36 +0100 <Uniaika> matthew-: nah you're right
2020-11-04 20:49:43 +0100 <bqv> lispy
2020-11-04 20:50:14 +0100 <Uniaika> % :i []
2020-11-04 20:50:15 +0100 <yahb> Uniaika: type [] :: * -> *; data [] a = [] | a : [a]; -- Defined in `GHC.Types'; instance Alternative [] -- Defined in `GHC.Base'; instance Applicative [] -- Defined in `GHC.Base'; instance Eq a => Eq [a] -- Defined in `GHC.Classes'; instance Functor [] -- Defined in `GHC.Base'; instance Monad [] -- Defined in `GHC.Base'; instance MonadPlus [] -- Defined in `GHC.Base'; instance Monoid [a] -- Defined in `GHC.Base
2020-11-04 20:50:28 +0100 <Uniaika> yep', sounds about right matthew- :)
2020-11-04 20:51:53 +0100 <matthew-> ok, thanks.
2020-11-04 20:52:03 +0100 <crdrost> Yeah a list can be thought of as f(x) = 1 + x f(x), which you might manipulate to f(x) = 1/(1 - x), which has as a Taylor series f(x) = 1 + x + x^2 + x^3 + ...
2020-11-04 20:52:46 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 272 seconds)
2020-11-04 20:55:16 +0100vZS1(~vZS1@host-92-20-231-81.as13285.net)
2020-11-04 20:55:19 +0100britva(~britva@2a02:aa13:7240:2980:9117:32f5:aa09:6904) (Quit: This computer has gone to sleep)
2020-11-04 20:58:55 +0100 <matthew-> hmm, just trying to get some terminology right in my head. In the type [Int], for example, it feels _application_ of [] and Int. What word is used here? Because it seems I'm looking for something other than sum or product
2020-11-04 20:59:01 +0100hackagehdocs 0.5.5.0 - Haskell docs tool https://hackage.haskell.org/package/hdocs-0.5.5.0 (AlexandrRuchkin)
2020-11-04 20:59:10 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 246 seconds)
2020-11-04 20:59:27 +0100 <jle`> application isn't wrong, i think
2020-11-04 20:59:40 +0100 <jle`> like how if you apply 'negate' to '1', you get -1
2020-11-04 20:59:43 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 258 seconds)
2020-11-04 20:59:47 +0100 <geekosaur> application is correct; [Int] can also be written ([] Int)
2020-11-04 21:00:14 +0100 <matthew-> ok, so [] :: * -> *, so it is application, just at the type level
2020-11-04 21:00:20 +0100 <geekosaur> similarly for Maybe Int which doesn't have the mixfix notation
2020-11-04 21:00:36 +0100 <matthew-> ok, this makes sense
2020-11-04 21:01:42 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
2020-11-04 21:01:43 +0100 <hekkaidekapus> (But [] is overloaded. At the value level, it stands for the empty list.)
2020-11-04 21:01:46 +0100rprije(~rprije@194-193-168-77.tpgi.com.au)
2020-11-04 21:03:36 +0100 <matthew-> hekkaidekapus: yes, this is exactly the thing that I'm trying to straighten out in my head
2020-11-04 21:04:06 +0100 <jle`> yeah, this is an unfortunate haskell namespacing thing that isn't unique to lists
2020-11-04 21:04:07 +0100jespada(~jespada@90.254.245.49)
2020-11-04 21:04:15 +0100zebrag(~inkbottle@aaubervilliers-654-1-104-94.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
2020-11-04 21:04:15 +0100 <jle`> @let data MyType a = MyType a
2020-11-04 21:04:16 +0100 <lambdabot> Defined.
2020-11-04 21:04:28 +0100 <geekosaur> it's not so different from: data Foo a = Foo | Bar a (Foo a)
2020-11-04 21:04:35 +0100 <jle`> here we have MyType as a type construfctor, and also MyType as a data constructor
2020-11-04 21:04:37 +0100 <jle`> whoops
2020-11-04 21:04:41 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-11-04 21:05:43 +0100conal(~conal@66.115.157.70) (Quit: Computer has gone to sleep.)
2020-11-04 21:05:56 +0100 <matthew-> yes, I'm just trying to figure out if I can implement type inference of lists as builtins without going the whole hog of ADTs and recursive types
2020-11-04 21:06:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-104-94.w86-212.abo.wanadoo.fr)
2020-11-04 21:07:47 +0100 <matthew-> if I add TypeApp then I guess I should really rework TypeArrow to be l -> r -> TypeApp(TypeApp(Const("->"), l), r)
2020-11-04 21:08:01 +0100 <ski> you could probably special case any particular single (possibly recursive) algebraic data type, in a language you're designing
2020-11-04 21:08:28 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-04 21:08:44 +0100Guest76112(uid472329@gateway/web/irccloud.com/x-ennruecymrcxflva)
2020-11-04 21:09:49 +0100 <matthew-> ski: well if I have empty list constructor and cons as builtins, then I think I can get away with just starting the type inference env with suitable types for both of those functions. I'm just trying to get clear how to actually represent list foo as a type
2020-11-04 21:10:13 +0100vicfred(~vicfred@unaffiliated/vicfred) (Remote host closed the connection)
2020-11-04 21:10:20 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-04 21:10:41 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-04 21:12:11 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-04 21:13:31 +0100 <ski> specify that empty list has elements of any type you like; and that non-empty list construction takes a value of some type and a list with elements of that type, and gives a list with elements of that type
2020-11-04 21:14:09 +0100o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection)
2020-11-04 21:14:31 +0100hackagehsdev 0.3.4.0 - Haskell development library https://hackage.haskell.org/package/hsdev-0.3.4.0 (AlexandrRuchkin)
2020-11-04 21:15:36 +0100 <ski> to express the above in Haskell terms, given `data List a = Nil | Cons a (List a)', you specify that `Nil :: List a' and `Cons :: a -> List a -> List a' (where `a' is a type variable, `Nil' and `Cons' being polymorphic operations where `a' can be (consistently) replaced by any specific type)
2020-11-04 21:15:42 +0100knupfer(~Thunderbi@200116b82c1ba4001c1efa9cfbaac5ab.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2020-11-04 21:16:17 +0100 <ski> matthew- : however, you'll presumably also want some way to do a case-distinction on whether a list is empty or not (and in the latter case, access the head element, and the tail list)
2020-11-04 21:17:44 +0100 <matthew-> yes - I'm doing pattern matching too
2020-11-04 21:18:06 +0100 <matthew-> presumably I just use normal inference and then unify the type of the pattern with the type of the expr
2020-11-04 21:19:20 +0100waskell_(~quassel@d66-183-127-166.bchsia.telus.net)
2020-11-04 21:20:17 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Remote host closed the connection)
2020-11-04 21:20:28 +0100Lycurgus(~niemand@98.4.97.110) (Quit: Exeunt)
2020-11-04 21:20:45 +0100nados(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-04 21:21:00 +0100hackagereflex-gadt-api 0.1.0.0 - Interact with a GADT API in your reflex-dom application. https://hackage.haskell.org/package/reflex-gadt-api-0.1.0.0 (abrar)
2020-11-04 21:21:02 +0100asthasr(~asthasr@162.210.29.120) (Quit: asthasr)
2020-11-04 21:21:54 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 21:22:16 +0100waskell(~quassel@d66-183-124-7.bchsia.telus.net) (Ping timeout: 246 seconds)
2020-11-04 21:22:47 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Remote host closed the connection)
2020-11-04 21:23:04 +0100nados(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-04 21:23:11 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 21:24:12 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Remote host closed the connection)
2020-11-04 21:24:40 +0100nados(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-04 21:25:38 +0100 <ski> matthew- : yea, should work (in absense of existentials, GADTs, higher-rank). while patterns are more restrictive than expressions, their (type, in this case) behaviour should correspond to each other, on the overlap
2020-11-04 21:26:02 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2020-11-04 21:26:10 +0100Franciman(~francesco@host-79-36-167-172.retail.telecomitalia.it)
2020-11-04 21:26:39 +0100knupfer(~Thunderbi@i5E86B46C.versanet.de)
2020-11-04 21:27:39 +0100 <hekkaidekapus> To go overboard, if more powerful patterns are needed, views could come into play. (But that’s another can of worms :)
2020-11-04 21:28:36 +0100 <matthew-> ski : cool. I guess it's more: for each fv(pattern), treat as Abs, so introduce new type var. Infer type of branch body, which will constrain these fresh vars. With that info, infer the type of the pattern. And then finally check the pattern type unifies with the case expression type
2020-11-04 21:30:40 +0100 <matthew-> and yes, I'm definitely keeping this simple - no higher-rank types, GADTs or other madness ;)
2020-11-04 21:30:58 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-04 21:32:01 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
2020-11-04 21:32:28 +0100 <ski> you could infer the type of the branch pattern before the type of the branch expression
2020-11-04 21:32:46 +0100 <ski> matthew- : HM ?
2020-11-04 21:32:59 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-04 21:36:47 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 21:36:55 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 21:37:13 +0100 <ski> matthew- : btw, if you've not seen it, perhaps "Polymorphic Type Inference" by Michael I. Schwartzbach in 1995-03 at <https://cs.au.dk/~amoeller/mis/typeinf.p(s|df)>,<https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.57.1493> could be interesting
2020-11-04 21:38:20 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 21:38:52 +0100johnw(~johnw@haskell/developer/johnw)
2020-11-04 21:39:54 +0100Tario(~Tario@37.218.241.6)
2020-11-04 21:40:36 +0100 <hekkaidekapus> matthew-: You can introduce a match construct which takes 2 arguments—a pattern and a value—and either fails or substitues variables in the pattern with values in the value.
2020-11-04 21:40:48 +0100Tario(~Tario@37.218.241.6) (Read error: Connection reset by peer)
2020-11-04 21:40:59 +0100Tario(~Tario@201.192.165.173)
2020-11-04 21:41:06 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-04 21:41:29 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-04 21:41:30 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-11-04 21:42:11 +0100 <hekkaidekapus> How to define that construct is discussed in details in Types and Programming Languages.
2020-11-04 21:42:16 +0100avdb(~avdb@ip-62-235-73-30.dsl.scarlet.be) (Ping timeout: 265 seconds)
2020-11-04 21:42:19 +0100 <hekkaidekapus> @where TaPL
2020-11-04 21:42:19 +0100 <lambdabot> "Types and Programming Languages" by Benjamin C. Pierce in 2002-02-01 at <https://www.cis.upenn.edu/~bcpierce/tapl/>
2020-11-04 21:43:40 +0100 <ski> i sortof dislike view patterns ..
2020-11-04 21:43:51 +0100thir(~thir@pd9e1bd8a.dip0.t-ipconnect.de)
2020-11-04 21:44:00 +0100 <hekkaidekapus> ski: That’s for me?
2020-11-04 21:44:53 +0100 <hekkaidekapus> I was really going overboars: it is “views” in the Idris sense.
2020-11-04 21:45:04 +0100 <hekkaidekapus> *overboard
2020-11-04 21:47:23 +0100 <matthew-> ski: (sorry, was afk). Yes, HM
2020-11-04 21:47:40 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 21:47:47 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-04 21:47:53 +0100 <ski> i dunno the Idris sense
2020-11-04 21:48:11 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-04 21:48:33 +0100 <matthew-> yeah, I have physical TAPL and ATTPL back from PhD days some years back...
2020-11-04 21:49:42 +0100 <matthew-> ski: thanks for the paper pointer; reading now
2020-11-04 21:50:57 +0100 <hekkaidekapus> ski: <https://paste.tomsmeding.com/ifpl4FiR>
2020-11-04 21:51:06 +0100sfvm(~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine)
2020-11-04 21:51:23 +0100magicman(~tchakkazu@static-47-180-28-65.lsan.ca.frontiernet.net) (Quit: Lost terminal)
2020-11-04 21:52:13 +0100thir(~thir@pd9e1bd8a.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-04 21:52:22 +0100 <bqv> sequence behaves nicely with IO, right?
2020-11-04 21:53:05 +0100 <ski> "nicely" means ?
2020-11-04 21:53:30 +0100 <ski> hekkaidekapus : why the index ?
2020-11-04 21:53:35 +0100 <bqv> i feel like there are gotchas somewhere
2020-11-04 21:53:47 +0100 <bqv> but i can't imagine how
2020-11-04 21:54:05 +0100 <bqv> if i'm talking nonsense, just means i'm overly paranoid. nevermind :)
2020-11-04 21:54:19 +0100 <ski> it's not tail-recursive, if that's what you were wondering about
2020-11-04 21:54:27 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Ping timeout: 244 seconds)
2020-11-04 21:55:11 +0100 <bqv> having trouble figuring the implications of that
2020-11-04 21:56:01 +0100 <dsal> Is there an easy way to get GHCI to run in a different Monad?
2020-11-04 21:56:07 +0100 <ski> if you use it on a really long list, it'll use a lot of stack
2020-11-04 21:56:16 +0100 <dsal> In particular, my own transformer stack over IO
2020-11-04 21:56:23 +0100__xor(~xor@74.215.46.133)
2020-11-04 21:56:35 +0100argent0(~argent0@168.227.96.2)
2020-11-04 21:56:36 +0100 <bqv> hm, ok
2020-11-04 21:56:41 +0100_xor(~xor@74.215.46.133) (Read error: Connection reset by peer)
2020-11-04 21:56:45 +0100 <geekosaur> dsal: there's a command line option
2020-11-04 21:57:10 +0100 <ski> not afaik, dsal. i guess you might be able to do some wrapper on each invocation
2020-11-04 21:57:22 +0100 <hekkaidekapus> ski: The index transforms input is some preferred forms which can then be inspected with “covering functions”, another Idriss-ism. But I guess I’m way off-topic now.
2020-11-04 21:58:04 +0100 <ski> hekkaidekapus : i wonder whether that has any similarity to the (non-dependent) "active patterns" in F#
2020-11-04 21:58:10 +0100 <dsal> hmm... Yeah, running my own ghci would be kind of neat if I had an easy way to do that. The way I'm doing it isn't hard enough.
2020-11-04 21:58:37 +0100 <hekkaidekapus> ski: Unfortunately, I dunno F# ;)
2020-11-04 21:59:05 +0100 <geekosaur> https://downloads.haskell.org/ghc/latest/docs/html/users_guide/ghci.html#using-a-custom-interactiv… note that the type can be something other than IO, although the example is still in IO
2020-11-04 21:59:39 +0100 <geekosaur> hm, not qute although it has that C a => so as long as it resolves to IO you're good to go
2020-11-04 21:59:46 +0100 <geekosaur> so a stack over IO should work
2020-11-04 22:00:01 +0100 <ski> i mean, you could make an `IORef S', and then a combinator that used that, having type `StateT S IO a -> IO a', updating, then wrapping each invocation in the interactor with that combinator
2020-11-04 22:00:02 +0100dscho(~dscho@217.146.82.202) ()
2020-11-04 22:00:54 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-11-04 22:01:25 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-04 22:01:43 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 22:02:31 +0100hackageesqueleto 3.4.0.1 - Type-safe EDSL for SQL queries on persistent backends. https://hackage.haskell.org/package/esqueleto-3.4.0.1 (parsonsmatt)
2020-11-04 22:03:44 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-04 22:04:13 +0100 <ski> hekkaidekapus : it's like defining a set of complete, non-overlapping, pattern synonyms, using a single common definition that acts like a view pattern resulting in a corresponding data type with constructors being the alternatives
2020-11-04 22:04:42 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-11-04 22:05:29 +0100 <hekkaidekapus> ski: hmm… The set still mirrors the canonic constructors?
2020-11-04 22:05:52 +0100 <ski> no, could be any you like
2020-11-04 22:06:12 +0100 <hekkaidekapus> In that case, that’s like Idris’ views then.
2020-11-04 22:06:57 +0100 <hekkaidekapus> (With the non-dependent caveat, of course.)
2020-11-04 22:07:08 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-04 22:07:23 +0100waskell(~quassel@d173-181-98-227.bchsia.telus.net)
2020-11-04 22:07:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds)
2020-11-04 22:09:43 +0100 <ski> there's two variants. one is defining an active pattern with just a single alternative, which can fail to match. the body will signal failure, by computing a `Maybe'. the other one is having a set of alternatives, and the single body will inspect the input value, do whatever branching (e.g. using conditionals) that it likes, and "return the alternative" that it elected should match
2020-11-04 22:09:52 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-04 22:10:40 +0100waskell_(~quassel@d66-183-127-166.bchsia.telus.net) (Ping timeout: 272 seconds)
2020-11-04 22:11:03 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 22:11:04 +0100 <ski> (ah, acually, there was also a non-failing single-pattern version. see <https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/active-patterns>)
2020-11-04 22:13:47 +0100 <hekkaidekapus> Those alternatives are the closest sibling to views in Idris. Now, to avoid syntactic clutter, there is a with builtin to choose which alternative to use when inspecting the input.
2020-11-04 22:14:21 +0100 <hekkaidekapus> oh, oopsy. Meant to highlight with ;)
2020-11-04 22:14:47 +0100 <hekkaidekapus> (And thanks for the URL, will take a look.)
2020-11-04 22:17:38 +0100ubert(~Thunderbi@p200300ecdf1e5367e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-04 22:17:57 +0100ubert(~Thunderbi@p200300ecdf1e5367e6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-04 22:19:14 +0100borne(~fritjof@200116b864d4e2005d0cb1433c5d4cbb.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2020-11-04 22:20:58 +0100Tops21(~Tobias@dyndsl-095-033-016-001.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-11-04 22:22:26 +0100waskell_(~quassel@d66-183-127-166.bchsia.telus.net)
2020-11-04 22:23:35 +0100 <koz_> Where is the Data.Unique.Tag that dependent-map's docs refer to located?
2020-11-04 22:23:36 +0100waskell__(~quassel@d173-181-98-227.bchsia.telus.net)
2020-11-04 22:23:39 +0100 <koz_> The link misses on Hackage.
2020-11-04 22:26:17 +0100 <hekkaidekapus> koz_: <https://hackage.haskell.org/package/prim-uniq-0.2/docs/Data-Unique-Tag.html>
2020-11-04 22:26:29 +0100waskell(~quassel@d173-181-98-227.bchsia.telus.net) (Ping timeout: 244 seconds)
2020-11-04 22:26:29 +0100 <hekkaidekapus> (Found by following the source.)
2020-11-04 22:26:58 +0100 <koz_> Nice, thank you!
2020-11-04 22:26:59 +0100waskell__(~quassel@d173-181-98-227.bchsia.telus.net) (Client Quit)
2020-11-04 22:27:04 +0100 <hekkaidekapus> yw
2020-11-04 22:27:13 +0100waskell_(~quassel@d66-183-127-166.bchsia.telus.net) (Ping timeout: 260 seconds)
2020-11-04 22:28:45 +0100 <koz_> So if I were to use DMap with that Tag, I guess I need to have k ~ Tag s for some s?
2020-11-04 22:28:47 +0100 <dsal> geekosaur: thanks for the link. I should eventually do something useful here.
2020-11-04 22:28:49 +0100 <koz_> What would be suitable for s?
2020-11-04 22:29:38 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Ping timeout: 265 seconds)
2020-11-04 22:29:44 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2020-11-04 22:29:55 +0100 <dsal> My yak was "I want to look at some of this data I've stored." Data is JSON from an upstream API, except I removed a few fields that are huge and temporary. Then the unmarshaling fails because they're required. So I change how I remove them. Then I want to make a lens through the marshaled data and realized I don't have a marshaler…
2020-11-04 22:30:05 +0100 <dsal> I'm not sure what I *started* doing, but I found a bunch of things I can make better.
2020-11-04 22:30:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-04 22:30:32 +0100waskell(~quassel@d66-183-127-166.bchsia.telus.net)
2020-11-04 22:30:41 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2020-11-04 22:31:03 +0100DataComputist(~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net)
2020-11-04 22:31:04 +0100 <fresheyeball> how do I explicitly import a pattern?
2020-11-04 22:31:09 +0100 <fresheyeball> I can't figure it out
2020-11-04 22:31:18 +0100 <koz_> fresheyeball: import Foo.Bar (pattern Baz)
2020-11-04 22:31:26 +0100 <koz_> You have to have PatternSynonyms on.
2020-11-04 22:31:57 +0100 <fresheyeball> oh odd
2020-11-04 22:32:10 +0100 <fresheyeball> ok yeah, if I have the language pragma on in the importing file I can import explicitly
2020-11-04 22:32:17 +0100o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-11-04 22:32:21 +0100 <koz_> Yeah, that caught me out recently too.
2020-11-04 22:32:21 +0100 <fresheyeball> but if I have it off, I can only import impplicitly
2020-11-04 22:32:30 +0100borne(~fritjof@200116b864d4e2005d0cb1433c5d4cbb.dip.versatel-1u1.de)
2020-11-04 22:32:49 +0100KhoN_1(~KhoN@cm-84.208.147.132.getinternet.no) (Read error: Connection reset by peer)
2020-11-04 22:33:07 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-11-04 22:34:00 +0100gobbleguyglguy
2020-11-04 22:35:16 +0100vZS1(~vZS1@host-92-20-231-81.as13285.net) (Remote host closed the connection)
2020-11-04 22:35:50 +0100mdunnio(~mdunnio@208.59.170.5)
2020-11-04 22:35:59 +0100alp(~alp@2a01:e0a:58b:4920:543f:1fa8:3f98:5d73)
2020-11-04 22:36:45 +0100o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 240 seconds)
2020-11-04 22:37:16 +0100comerijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-11-04 22:38:08 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-04 22:38:09 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-11-04 22:38:37 +0100catchme(uid355354@gateway/web/irccloud.com/x-jjbcbrnidixjkmxm)
2020-11-04 22:40:29 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-04 22:40:39 +0100mdunnio(~mdunnio@208.59.170.5) (Ping timeout: 256 seconds)
2020-11-04 22:41:30 +0100 <tomjaguarpaw> Hedgehog checkParallel runs the tests in parallel in ghci but not in a compiled program. Am I doing something obviously wrong?
2020-11-04 22:41:44 +0100invaser(~Thunderbi@31.148.23.125) (Remote host closed the connection)
2020-11-04 22:42:20 +0100sillyotter(~sillyotte@2605:a000:1004:819f:8b31:8f61:3553:9e1f)
2020-11-04 22:45:21 +0100magicman(~tchakkazu@static-47-180-28-65.lsan.ca.frontiernet.net)
2020-11-04 22:45:23 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-04 22:45:30 +0100sillyotter(~sillyotte@2605:a000:1004:819f:8b31:8f61:3553:9e1f) (Client Quit)
2020-11-04 22:47:21 +0100 <koz_> tomjaguarpaw: Did you build with -threaded and tell the RTS to use all your cores?
2020-11-04 22:48:54 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-04 22:48:56 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-04 22:49:01 +0100belphegor666(~satan@HSI-KBW-046-005-253-003.hsi8.kabel-badenwuerttemberg.de)
2020-11-04 22:55:37 +0100tdhttt(~tdhttt@89.45.90.161) (Ping timeout: 260 seconds)
2020-11-04 22:56:02 +0100 <tomjaguarpaw> Ah, that does the trick, thanks
2020-11-04 22:56:21 +0100 <tomjaguarpaw> Strangely though the wall clock time is not reduced, despite it running the tests in parallel
2020-11-04 22:56:29 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-04 22:57:13 +0100 <Axman6> Welcome to the joys of parallelism
2020-11-04 22:57:39 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 22:57:42 +0100 <tomjaguarpaw> That's strange. What's the overheard then?
2020-11-04 22:57:44 +0100belphegor666(~satan@HSI-KBW-046-005-253-003.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9)
2020-11-04 22:57:53 +0100tdhttt(~tdhttt@2600:8802:2203:2500:799b:bc7:7aac:82a9)
2020-11-04 22:58:00 +0100belphegor666(~satan@HSI-KBW-046-005-253-003.hsi8.kabel-badenwuerttemberg.de)
2020-11-04 22:58:16 +0100 <tomjaguarpaw> I wonder if it's the Hedgehog code that renders the output
2020-11-04 22:58:20 +0100 <tomjaguarpaw> It updates a *lot*
2020-11-04 22:58:22 +0100chaosmasttter(~chaosmast@p200300c4a7117c01215e340256877fbe.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-11-04 22:58:39 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2020-11-04 22:58:48 +0100 <Axman6> it would depend on your program. it could be GC - try running it without parallel GC. Also try running with +RTS -s (I think, see +RTS --help for all the optiosn) to get a report from the RTS on things like productivity
2020-11-04 23:00:08 +0100conal(~conal@66.115.157.70)
2020-11-04 23:00:26 +0100Rudd0(~Rudd0@185.189.115.108)
2020-11-04 23:00:49 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit)
2020-11-04 23:01:05 +0100 <Axman6> lots of tiny tests are unlikely to get much speedup from parallelism with other overhead, it could very well be the hedgehog coordination. feel free to share some code
2020-11-04 23:01:25 +0100knupfer(~Thunderbi@i5E86B46C.versanet.de) (Ping timeout: 264 seconds)
2020-11-04 23:01:50 +0100 <tomjaguarpaw> Thanks, says 1.2s GC and 1s MUT
2020-11-04 23:02:05 +0100 <Axman6> looks like GC then. there are eays to reduce that though
2020-11-04 23:02:20 +0100 <Axman6> like judt making it allocate a big enough heap it doesn't need to GC
2020-11-04 23:02:20 +0100 <tomjaguarpaw> Productivity 45.4% of total user
2020-11-04 23:02:28 +0100 <Axman6> that's pretty bad
2020-11-04 23:02:43 +0100 <Axman6> stop making so much garbage!
2020-11-04 23:03:05 +0100 <tomjaguarpaw> Hah, I'm doing 10k random samples for each of about 15 property tests
2020-11-04 23:03:22 +0100belphegor666(~satan@HSI-KBW-046-005-253-003.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.9)
2020-11-04 23:03:31 +0100 <tomjaguarpaw> 1.6 GB allocated on the heap, so I guess I can make the heap big enough
2020-11-04 23:05:08 +0100 <tomjaguarpaw> GC is now 0.375s but MUT is now 2.2s!
2020-11-04 23:05:15 +0100 <tomjaguarpaw> I don't even understand what MUT si
2020-11-04 23:05:24 +0100 <tomjaguarpaw> Perhaps something in Hedgehog is doing mutation
2020-11-04 23:05:49 +0100dxld(~dxld@80-109-136-248.cable.dynamic.surfer.at) (Remote host closed the connection)
2020-11-04 23:06:09 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 256 seconds)
2020-11-04 23:06:52 +0100 <tomjaguarpaw> Well they run fast enough anyway. I was just confused. Thanks Axman6 and koz_
2020-11-04 23:07:01 +0100enva2712(~enva2712@cpe-75-86-42-2.wi.res.rr.com) (Quit: leaving)
2020-11-04 23:07:34 +0100 <koz_> Axman6: How does one disable parallel GC again?
2020-11-04 23:08:13 +0100 <Axman6> there's a flag... >_>
2020-11-04 23:08:15 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 23:08:18 +0100 <hekkaidekapus> koz_: ghc -qg
2020-11-04 23:08:19 +0100 <Axman6> I don't remember, I've never done it
2020-11-04 23:08:30 +0100dxld(~dxld@80-109-136-248.cable.dynamic.surfer.at)
2020-11-04 23:08:34 +0100 <koz_> hekkaidekapus: Thanks!
2020-11-04 23:09:00 +0100hackagegopro-plus 0.4.1.2 - GoPro Plus Client API. https://hackage.haskell.org/package/gopro-plus-0.4.1.2 (dustin)
2020-11-04 23:09:49 +0100hekkaidekapuswaves at dsal.
2020-11-04 23:10:11 +0100dsaluploads GoPro footage of yak shaving
2020-11-04 23:10:29 +0100 <hekkaidekapus> lol
2020-11-04 23:10:48 +0100 <dsal> I think my actual motivation was "I saw a thing on optics yesterday, so I want to at least touch a lens."
2020-11-04 23:11:09 +0100 <hekkaidekapus> dsal: changelog: Unreleased changes ;)
2020-11-04 23:11:26 +0100ubert(~Thunderbi@p200300ecdf1e5367e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-11-04 23:11:44 +0100 <dsal> The lens that allows me to manipulate data within a JSON blob of a known type is kind of neat, though.
2020-11-04 23:11:59 +0100ubert(~Thunderbi@p200300ecdf1e5367e6b318fffe838f33.dip0.t-ipconnect.de)
2020-11-04 23:12:04 +0100 <dsal> Yeah, ...1 to ...2 just added a few instances. I guess I could've mentioned that.
2020-11-04 23:12:12 +0100 <dsal> I don't feel like I've added all the instances, though.
2020-11-04 23:12:55 +0100 <hekkaidekapus> Did you switch to optics or you did some lensy stuff?
2020-11-04 23:13:23 +0100 <dsal> I'm still using lens.
2020-11-04 23:13:25 +0100wroathe_(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-04 23:13:52 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-11-04 23:14:06 +0100 <hekkaidekapus> Ah, cheers! (Just saw the commit.)
2020-11-04 23:14:08 +0100 <dsal> I just made a lens on a thing that comes out of the DB as a ByteString where I can manipulate the structured that ByteString represents.
2020-11-04 23:14:48 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-04 23:15:19 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-04 23:15:37 +0100 <dsal> It's not stuff I *need* to do, but stuff I'd like to be able to do someday. dbresult & someblob . variations . whatever ?~ "stuff"
2020-11-04 23:16:50 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-04 23:17:25 +0100wroathe_(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Client Quit)
2020-11-04 23:17:33 +0100son0p(~son0p@181.136.122.143)
2020-11-04 23:17:46 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-04 23:20:36 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-11-04 23:22:08 +0100jakob_(~textual@p200300f49f16220018bfd377e039c2e3.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2020-11-04 23:23:53 +0100ubert(~Thunderbi@p200300ecdf1e5367e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-04 23:24:10 +0100Neuromancer(~Neuromanc@unaffiliated/neuromancer)
2020-11-04 23:25:17 +0100jedws(~jedws@101.184.150.81)
2020-11-04 23:30:19 +0100Tario(~Tario@201.192.165.173)
2020-11-04 23:31:04 +0100kest10(~kest10@139.28.218.148)
2020-11-04 23:32:03 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-04 23:34:05 +0100jakob_(~textual@p200300f49f1622005c3255e4d89f5bc8.dip0.t-ipconnect.de)
2020-11-04 23:34:12 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-04 23:36:40 +0100christo(~chris@81.96.113.213)
2020-11-04 23:42:03 +0100nut(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-04 23:50:48 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-04 23:53:01 +0100o1lo01ol1o(~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-11-04 23:55:11 +0100fendor(~fendor@178.115.130.128.wireless.dyn.drei.com) (Remote host closed the connection)
2020-11-04 23:55:14 +0100conal(~conal@66.115.157.70) (Quit: Computer has gone to sleep.)
2020-11-04 23:56:57 +0100conal(~conal@66.115.157.70)
2020-11-04 23:57:08 +0100conal(~conal@66.115.157.70) (Client Quit)