2020/11/09

2020-11-09 00:00:05 +0100 <Feuermagier> I want to build a string by calling an evaluation function on each position of a list. how can I extend the list up to a fixed size, or alternatively handle nonexistant entries in the array?
2020-11-09 00:01:11 +0100 <comerijn> Feuermagier: Do you have a sensible element to pad with if it's too short?
2020-11-09 00:01:15 +0100 <Feuermagier> 0
2020-11-09 00:01:21 +0100 <Feuermagier> (its a list of integers)
2020-11-09 00:01:39 +0100 <comerijn> > take 10 ([1..5] ++ repeat 0)
2020-11-09 00:01:41 +0100 <lambdabot> [1,2,3,4,5,0,0,0,0,0]
2020-11-09 00:01:57 +0100 <Feuermagier> ooh, fancy
2020-11-09 00:02:06 +0100 <comerijn> Feuermagier: Just pad with infinite zeroes at the end and take however many elements you need :p
2020-11-09 00:03:59 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c5c0:6767:7b37:f0c3)
2020-11-09 00:04:05 +0100 <Feuermagier> can I pad at front as well?
2020-11-09 00:04:54 +0100 <comerijn> That's trickier, because you'll need to know in advance how many elements to pad with
2020-11-09 00:05:14 +0100 <Feuermagier> I guess I can simply reverse my list
2020-11-09 00:05:36 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:c5c0:6767:7b37:f0c3) (Client Quit)
2020-11-09 00:07:18 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-11-09 00:08:24 +0100 <koz_> Cale: Any chance you could tell me how one satisfies a 'ConstraintsFor F (ComposeC Show Identity)'? I'm trying to use a custom GADT F in the context of 'DMap F Identity' and a Show instance for it.
2020-11-09 00:08:27 +0100 <koz_> (same with Eq)
2020-11-09 00:08:54 +0100uwap_(~uwap@genja.uwap.name)
2020-11-09 00:09:08 +0100atle(~jack@beta3.space) (Ping timeout: 260 seconds)
2020-11-09 00:09:24 +0100atle(~jack@beta3.space)
2020-11-09 00:09:34 +0100edwtjo(~edwtjo@fsf/member/edwtjo) (Ping timeout: 265 seconds)
2020-11-09 00:09:43 +0100uwap(~uwap@genja.uwap.name) (Ping timeout: 260 seconds)
2020-11-09 00:09:43 +0100kish`(~oracle@unaffiliated/oracle) (Remote host closed the connection)
2020-11-09 00:10:14 +0100kish`(~oracle@unaffiliated/oracle)
2020-11-09 00:10:18 +0100laxask(~lax@unaffiliated/laxask) (Ping timeout: 260 seconds)
2020-11-09 00:10:28 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Read error: Connection reset by peer)
2020-11-09 00:10:45 +0100laxask(~lax@unaffiliated/laxask)
2020-11-09 00:11:13 +0100edwtjo(~edwtjo@fsf/member/edwtjo)
2020-11-09 00:12:43 +0100alp(~alp@2a01:e0a:58b:4920:286f:8943:c678:1c5c) (Ping timeout: 244 seconds)
2020-11-09 00:16:00 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100)
2020-11-09 00:17:25 +0100sulu(~sulu@unaffiliated/sulu) (Ping timeout: 240 seconds)
2020-11-09 00:17:29 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-11-09 00:18:54 +0100jcowan(sid325434@gateway/web/irccloud.com/x-xccxiqbedbcrqfvq)
2020-11-09 00:18:58 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 00:20:35 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-09 00:21:00 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-nprfqeunfdioejyi) (Quit: Connection closed for inactivity)
2020-11-09 00:21:53 +0100 <bqv> Hey, how best can I get a "Maybe monad"-style effect in polysemy?
2020-11-09 00:22:34 +0100tsaka__(~torstein@ppp-2-84-22-81.home.otenet.gr) (Remote host closed the connection)
2020-11-09 00:22:45 +0100 <bqv> I'm looking at NonDet, but I'm not quite sure how to use it
2020-11-09 00:23:00 +0100tsaka__(~torstein@ppp-2-84-22-81.home.otenet.gr)
2020-11-09 00:23:26 +0100jbox(~atlas@unaffiliated/jbox) (Read error: Connection reset by peer)
2020-11-09 00:23:36 +0100 <bqv> I gues I'm looking for a function :: Maybe a -> Polysemy.Sem r a
2020-11-09 00:23:38 +0100Franciman(~francesco@host-79-36-167-172.retail.telecomitalia.it) (Quit: Leaving)
2020-11-09 00:23:40 +0100 <bqv> Of some sort
2020-11-09 00:23:43 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 00:24:00 +0100jbox(~atlas@unaffiliated/jbox)
2020-11-09 00:24:59 +0100 <bqv> I see at least NonDet gives Sem an alternative instance, but how to drop a maybe into NonDet?
2020-11-09 00:26:10 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-11-09 00:26:18 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-11-09 00:27:59 +0100 <bqv> I could embed Maybe...
2020-11-09 00:28:14 +0100 <bqv> Feels oof tho
2020-11-09 00:28:44 +0100 <bqv> Probably the easiest solution to be honest
2020-11-09 00:30:11 +0100 <bqv> Or maybe I should just handle the errors properly. Ugh
2020-11-09 00:30:36 +0100CMCDragonkai1(~Thunderbi@124.19.3.250)
2020-11-09 00:32:07 +0100 <jcowan> Is there any usable workaround for the fact that a constructor can't appear in two or more types?
2020-11-09 00:32:29 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 00:32:33 +0100 <hpc> naming them different things?
2020-11-09 00:32:46 +0100 <jcowan> yeah, maybe I deserve that.
2020-11-09 00:32:53 +0100 <hpc> if they're in different modules, import them qualified
2020-11-09 00:33:12 +0100 <hpc> or if you can't do that, prefixing them with the type maybe
2020-11-09 00:33:21 +0100 <jcowan> I'm assuming of course that they are in fact the *same* constructor (same number and types of arguments, not just a coincidence of names
2020-11-09 00:33:35 +0100 <hpc> like if Foo and Bar both have constructor Object, name them FooObject and BarObject instead
2020-11-09 00:34:08 +0100 <jcowan> Which means that the system can't recognize the isomorphism.
2020-11-09 00:34:53 +0100 <hpc> if you want both constructors to be the same value, use a function or type class or something along those lines
2020-11-09 00:35:01 +0100 <hpc> constructors can't be polymorphic in the type they construct
2020-11-09 00:35:07 +0100 <bqv> Classy
2020-11-09 00:35:32 +0100 <hpc> (also i definitely phrased that first suggestion for maximum humor :D)
2020-11-09 00:36:01 +0100hackagejson-to-haskell 0.1.1.0 - https://hackage.haskell.org/package/json-to-haskell-0.1.1.0 (ChrisPenner)
2020-11-09 00:38:37 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100)
2020-11-09 00:39:32 +0100jbox(~atlas@unaffiliated/jbox) (Ping timeout: 265 seconds)
2020-11-09 00:40:36 +0100jbox(~atlas@unaffiliated/jbox)
2020-11-09 00:43:57 +0100jedws(~jedws@101.184.150.81)
2020-11-09 00:44:09 +0100Amras(~Amras@unaffiliated/amras0000)
2020-11-09 00:44:29 +0100 <Feuermagier> how can I get element n out of a list?
2020-11-09 00:44:39 +0100 <bqv> Feuermagier: list !! n
2020-11-09 00:44:51 +0100 <bqv> % 1
2020-11-09 00:44:52 +0100 <yahb> bqv: 1
2020-11-09 00:44:57 +0100Gurkenglas__(Gurkenglas@gateway/vpn/protonvpn/gurkenglas)
2020-11-09 00:45:04 +0100 <bqv> % ["a", "b", "c"] !! 1
2020-11-09 00:45:04 +0100 <yahb> bqv: "b"
2020-11-09 00:45:08 +0100 <bqv> % ["a", "b", "c"] !! 3
2020-11-09 00:45:09 +0100 <yahb> bqv: "*** Exception: Prelude.!!: index too large
2020-11-09 00:45:11 +0100 <bqv> % ["a", "b", "c"] !! 0
2020-11-09 00:45:11 +0100 <yahb> bqv: "a"
2020-11-09 00:45:15 +0100 <Feuermagier> I have a list of 10 elements and want to perform a different operation on each position and sum the results
2020-11-09 00:45:19 +0100 <koz_> [insert obligatory warning about indexing lists being both slow and unsafe]
2020-11-09 00:45:26 +0100 <comerijn> tbh, random access on lists is bad
2020-11-09 00:45:32 +0100 <bqv> Feuermagier: sounds like a fold
2020-11-09 00:45:45 +0100 <Feuermagier> bqv, havent heard of that yet
2020-11-09 00:45:48 +0100 <koz_> bqv: Or a foldMap. :P
2020-11-09 00:46:00 +0100 <hpc> Feuermagier: zipWith ($) sounds more suitable
2020-11-09 00:46:27 +0100jalumar(uid392211@gateway/web/irccloud.com/x-cinmpjhrecfacgba)
2020-11-09 00:46:28 +0100 <hpc> % zipWith [(+ 5), (* 2), id] [100, 1000, 10000]
2020-11-09 00:46:29 +0100 <yahb> hpc: ; <interactive>:16:9: error:; * Couldn't match expected type `a1 -> b -> c' with actual type `[a0 -> a0]'; * In the first argument of `zipWith', namely `[(+ 5), (* 2), id]'; In the expression: zipWith [(+ 5), (* 2), id] [100, 1000, 10000]; In an equation for `it': it = zipWith [(+ 5), (* 2), id] [100, 1000, 10000]; * Relevant bindings include it :: [b] -> [c] (bound at <interacti
2020-11-09 00:46:37 +0100 <hpc> % zipWith ($) [(+ 5), (* 2), id] [100, 1000, 10000]
2020-11-09 00:46:37 +0100 <yahb> hpc: [105,2000,10000]
2020-11-09 00:46:48 +0100 <bqv> koz_: that's just a spicy fold :D
2020-11-09 00:46:51 +0100 <Feuermagier> interesting
2020-11-09 00:46:59 +0100 <koz_> bqv: Spicy be good.
2020-11-09 00:47:25 +0100 <hpc> Feuermagier: think functional :D
2020-11-09 00:47:45 +0100Gurkenglas_(Gurkenglas@gateway/vpn/protonvpn/gurkenglas) (Ping timeout: 240 seconds)
2020-11-09 00:47:47 +0100sakirious(~sakirious@c-71-197-191-137.hsd1.wa.comcast.net)
2020-11-09 00:48:01 +0100 <Feuermagier> the results of the oerations are gonna be strings, how do i build a continous one out of the results?
2020-11-09 00:48:15 +0100 <koz_> > "foo" <> "bar"
2020-11-09 00:48:17 +0100 <lambdabot> "foobar"
2020-11-09 00:48:30 +0100 <koz_> Do you mean continuous in that sense?
2020-11-09 00:48:32 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 258 seconds)
2020-11-09 00:48:34 +0100 <Feuermagier> yes
2020-11-09 00:49:26 +0100 <koz_> If you're gonna use a fold, then you can combine with (<>). If you're going to use foldMap, it does it for you if you project into String.
2020-11-09 00:50:05 +0100 <Feuermagier> koz_, alright. i'll implement the zipWith for now and then see how i get on
2020-11-09 00:51:34 +0100AceNovo(~chris@184.101.220.149) (Quit: Konversation terminated!)
2020-11-09 00:52:14 +0100AceNovo(~chris@184.101.220.149)
2020-11-09 00:53:53 +0100 <Feuermagier> why does this not work?: zipWith [(+ 5), (* 2), id, id, id] pad(reverse(digits n))
2020-11-09 00:54:40 +0100 <koz_> Feuermagier: Please be more specific. What do you mean by 'not work'? Does it not compile? Does it run, but not how you want? Something else?
2020-11-09 00:55:13 +0100 <Feuermagier> oh, ofc. sec
2020-11-09 00:56:36 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 00:56:55 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 00:59:41 +0100 <jcowan> hpc: Right, I understand that. But is that a principled restriction?
2020-11-09 01:00:02 +0100rawtaz1(~rawtaz@178.239.168.171) ()
2020-11-09 01:00:04 +0100 <Feuermagier> I have a function "constructDigit :: String -> Integer -> String" - I want to call it in the zipWith with a constant string and the zipped-towards integer. What's the syntax for that?
2020-11-09 01:01:40 +0100 <Axman6> I have no idea what you're asking for
2020-11-09 01:01:48 +0100christo(~chris@81.96.113.213)
2020-11-09 01:01:49 +0100 <Axman6> perhaps give us some example inputs and expected outputs
2020-11-09 01:02:05 +0100 <hpc> not anything specific, but...
2020-11-09 01:02:28 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-09 01:02:29 +0100 <Axman6> Feuermagier: also zipWith [(+ 5), (* 2), id, id, id] pad(reverse(digits n)) doesn't work because you actually wrote (((zipWith [(+ 5), (* 2), id, id, id]) pad(reverse(digits n))
2020-11-09 01:02:40 +0100 <hpc> so, you've got code that has some identifier, "foo" - you want it to refer to the same thing everywhere you use it, and not have some extra piece of context deciding for you
2020-11-09 01:02:46 +0100 <Axman6> (((zipWith [(+ 5), (* 2), id, id, id]) pad) (reverse(digits n))) *
2020-11-09 01:02:48 +0100 <hpc> like what type it's supposed to be and so forth
2020-11-09 01:02:59 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-09 01:03:04 +0100Tops2(~Tobias@dyndsl-095-033-091-035.ewe-ip-backbone.de)
2020-11-09 01:03:20 +0100 <hekkaidekapus> > ZipList [(+ 5), (* 2), id] <*> ZipList [100, 1000, 10000]
2020-11-09 01:03:21 +0100 <lambdabot> ZipList {getZipList = [105,2000,10000]}
2020-11-09 01:03:28 +0100 <Axman6> pad is being passed as an argument to zipWith
2020-11-09 01:03:46 +0100 <hpc> and constructors are defined as part of their data definition, to produce data of that type
2020-11-09 01:03:49 +0100 <Feuermagier> so, I want to turn [0,1] into [constructDigit "a" 0, constructDigit "b" 1]
2020-11-09 01:04:05 +0100 <hpc> which is more obvious if you look at data definitions with GADTSyntax
2020-11-09 01:04:18 +0100 <hpc> data Maybe where Nothing :: Maybe a; Just :: a -> Maybe a
2020-11-09 01:04:25 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-09 01:04:26 +0100 <hpc> for example
2020-11-09 01:04:28 +0100 <Axman6> so zipWith constructDigit ["a","b"] [0,1]?
2020-11-09 01:04:38 +0100 <Feuermagier> yes
2020-11-09 01:04:45 +0100 <Feuermagier> that works?
2020-11-09 01:04:46 +0100 <Axman6> need more examples to see how that should be generalised
2020-11-09 01:04:53 +0100 <hpc> and then if you define some other data type using Nothing as a constructor, you have two definitions
2020-11-09 01:05:13 +0100 <hpc> and when definitions have overlapping names, that's an error
2020-11-09 01:05:13 +0100 <Axman6> > zipWith f [a,b] [0,1] :: [Expr]
2020-11-09 01:05:15 +0100 <lambdabot> [f a 0,f b 1]
2020-11-09 01:05:25 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 01:05:59 +0100atk(~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
2020-11-09 01:06:03 +0100 <hpc> basically the same reason you can't define functions multiple times either
2020-11-09 01:06:14 +0100comerijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-09 01:06:24 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-11-09 01:07:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-09 01:07:35 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-11-09 01:08:22 +0100atk(~Arch-TK@erebus.the-tk.com)
2020-11-09 01:09:56 +0100atk(~Arch-TK@erebus.the-tk.com) (Changing host)
2020-11-09 01:09:56 +0100atk(~Arch-TK@ircpuzzles/staff/Arch-TK)
2020-11-09 01:12:58 +0100AceNovo(~chris@184.101.220.149) (Quit: Konversation terminated!)
2020-11-09 01:13:05 +0100CMCDragonkai1(~Thunderbi@124.19.3.250) (Ping timeout: 240 seconds)
2020-11-09 01:13:15 +0100AceNovo(~chris@184.101.220.149)
2020-11-09 01:15:48 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2020-11-09 01:16:10 +0100 <Feuermagier> so, zipWith constructDigit ["a","b"] [0,1] works now. However I want the [0,1] part to be the return of a function (pad :: -> Integer)
2020-11-09 01:17:40 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds)
2020-11-09 01:17:59 +0100 <hekkaidekapus> zipWith constructDigit ["a", "b"] (pad …)
2020-11-09 01:18:20 +0100 <Feuermagier> ah, one more parenthesis
2020-11-09 01:18:41 +0100 <hekkaidekapus> zipWith constructDigit ["a", "b"] xs where xs = pad …
2020-11-09 01:18:52 +0100 <bqv> pointfree ftw
2020-11-09 01:18:52 +0100todda7(~torstein@athedsl-215972.home.otenet.gr)
2020-11-09 01:19:29 +0100 <hekkaidekapus> let xs = pad … in zipWith constructDigit ["a", "b"] xs
2020-11-09 01:19:30 +0100Gurkenglas__(Gurkenglas@gateway/vpn/protonvpn/gurkenglas) (Ping timeout: 256 seconds)
2020-11-09 01:20:05 +0100tsaka__(~torstein@ppp-2-84-22-81.home.otenet.gr) (Ping timeout: 240 seconds)
2020-11-09 01:21:24 +0100jcowan(sid325434@gateway/web/irccloud.com/x-xccxiqbedbcrqfvq) ()
2020-11-09 01:24:44 +0100hekkaidekapus_(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-09 01:25:04 +0100DavidEichmann(~david@43.240.198.146.dyn.plus.net) (Ping timeout: 260 seconds)
2020-11-09 01:26:23 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-09 01:27:11 +0100hekkaidekapus_hekkaidekapus
2020-11-09 01:27:58 +0100irc_user(uid423822@gateway/web/irccloud.com/x-sjoykohhohfeylve)
2020-11-09 01:29:33 +0100HoolaBoola(~HoolaBool@hoolaboola.works) (Quit: WeeChat 2.8)
2020-11-09 01:29:49 +0100bidabong(uid272474@gateway/web/irccloud.com/x-ppmzlzztyuerpxde) (Quit: Connection closed for inactivity)
2020-11-09 01:33:23 +0100jmcarthur(~jmcarthur@2601:86:500:2a40:db56:5d66:5919:c95d)
2020-11-09 01:33:27 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-09 01:33:41 +0100atk(~Arch-TK@ircpuzzles/staff/Arch-TK) (Quit: Well this is unexpected.)
2020-11-09 01:34:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-09 01:35:24 +0100atk(~Arch-TK@ircpuzzles/staff/Arch-TK)
2020-11-09 01:38:25 +0100jbox(~atlas@unaffiliated/jbox) (Read error: Connection reset by peer)
2020-11-09 01:38:47 +0100jbox(~atlas@unaffiliated/jbox)
2020-11-09 01:40:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-09 01:40:50 +0100Narinas(~Narinas@189.223.113.190.dsl.dyn.telnor.net)
2020-11-09 01:41:44 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 272 seconds)
2020-11-09 01:43:51 +0100danso(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-09 01:47:38 +0100jbox(~atlas@unaffiliated/jbox) ("WeeChat 2.9")
2020-11-09 01:49:31 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-09 01:50:18 +0100tsaka__(~torstein@athedsl-216011.home.otenet.gr)
2020-11-09 01:51:13 +0100todda7(~torstein@athedsl-215972.home.otenet.gr) (Ping timeout: 256 seconds)
2020-11-09 01:51:44 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da)
2020-11-09 01:52:25 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 264 seconds)
2020-11-09 01:52:58 +0100_ashbreeze_(~mark@72-161-252-32.dyn.centurytel.net) (Ping timeout: 260 seconds)
2020-11-09 01:55:08 +0100litenull(~litenull@s91904426.blix.com)
2020-11-09 01:56:04 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-09 01:56:09 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-09 01:56:21 +0100Echosolace(99ec1b94@p1276149-omed01.tokyo.ocn.ne.jp)
2020-11-09 01:57:39 +0100 <Echosolace> Hey all, I'm still plodding along through learn you a haskell and I have a question about the groupby function, specifically, why the group by function is grouping together more than just pairs of items. Does anyone know why the following works out as it does?
2020-11-09 01:57:44 +0100 <Echosolace> let values = [-4.3, -2.4, -1.2, 0.4, 2.3, 5.9, 10.5, 29.1, 5.3, -2.4, -14.5, 2.9, 2.3]
2020-11-09 01:57:59 +0100 <Echosolace> groupBy (\x y -> (x > 0) == (y > 0)) values
2020-11-09 01:58:08 +0100 <Echosolace> [[-4.3,-2.4,-1.2],[0.4,2.3,5.9,10.5,29.1,5.3],[-2.4,-14.5],[2.9,2.3]]
2020-11-09 01:58:56 +0100Feuermagier(~Feuermagi@213.178.26.41) (Ping timeout: 256 seconds)
2020-11-09 01:59:00 +0100 <Axman6> Echosolace: groupBy is notoriously confusing, it groups runs of values together when _the first_ element combined with the others return true
2020-11-09 01:59:33 +0100 <Axman6> > groupBy (\x y -> y > x) [1,2,3,4,3,2,3,2,1,2,3,2,1]
2020-11-09 01:59:35 +0100 <lambdabot> [[1,2,3,4,3,2,3,2],[1,2,3,2],[1]]
2020-11-09 02:00:09 +0100 <Echosolace> That's comforting to hear. Let me try to understand that.
2020-11-09 02:00:10 +0100 <Echosolace> Thanks.
2020-11-09 02:00:19 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 02:00:49 +0100 <Axman6> it's basicallt a repeated use of: case xs of (y:ys?) -> takeWhile (f y) ys
2020-11-09 02:00:57 +0100 <Axman6> without the typos...
2020-11-09 02:04:36 +0100nbloomf(~nbloomf@76.217.43.73)
2020-11-09 02:05:14 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds)
2020-11-09 02:05:15 +0100nbloomf(~nbloomf@76.217.43.73) (Client Quit)
2020-11-09 02:06:10 +0100 <Echosolace> Ok, interesting. So in my example, element 0 (first element in the list, -4.3) gets compared with -2.4, is true and gets grouped, then -4.3 gets compared again with -1.2 and also gets grouped. Is that correct?
2020-11-09 02:06:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-09 02:06:32 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100)
2020-11-09 02:09:40 +0100 <Echosolace> Sounds like it. Thanks for the help.
2020-11-09 02:09:43 +0100Echosolace(99ec1b94@p1276149-omed01.tokyo.ocn.ne.jp) (Remote host closed the connection)
2020-11-09 02:09:51 +0100_ashbreeze_(~mark@72-161-252-32.dyn.centurytel.net)
2020-11-09 02:12:10 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-09 02:12:48 +0100todda7(~torstein@athedsl-347721.home.otenet.gr)
2020-11-09 02:13:05 +0100tsaka__(~torstein@athedsl-216011.home.otenet.gr) (Ping timeout: 240 seconds)
2020-11-09 02:16:53 +0100Rudd0(~Rudd0@185.189.115.108) (Ping timeout: 260 seconds)
2020-11-09 02:17:23 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-09 02:17:42 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2020-11-09 02:17:45 +0100theelous3(~theelous3@unaffiliated/theelous3) (Read error: Connection reset by peer)
2020-11-09 02:18:20 +0100 <bqv> looking for a datatype
2020-11-09 02:18:37 +0100 <bqv> must be short, blonde, and located in the penn state area
2020-11-09 02:18:52 +0100 <bqv> no, but seriously, i'm thinking of a write-only-list sort of thing
2020-11-09 02:19:33 +0100 <bqv> so far the closest i can think of is an IntMap where every entry is a Maybe and the delete operation is banned
2020-11-09 02:20:10 +0100 <bqv> my requirement is kinda that there's a unique index for every item added across the lifespan of this container
2020-11-09 02:21:33 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
2020-11-09 02:23:36 +0100 <bqv> the type i'm thinking of is i guess isomorphic to `IntMap (Maybe a)` and `[Maybe a]`, and I've gone for the former so far because i would need random access
2020-11-09 02:23:47 +0100 <bqv> just wondering if there's a better encoding
2020-11-09 02:23:57 +0100jmcarthur(~jmcarthur@2601:86:500:2a40:db56:5d66:5919:c95d) (Ping timeout: 244 seconds)
2020-11-09 02:24:39 +0100xenon-(~bc8165ab@217.29.117.252)
2020-11-09 02:26:57 +0100Lord_of_Life_(~Lord@46.217.220.150)
2020-11-09 02:27:36 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 260 seconds)
2020-11-09 02:30:12 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-09 02:31:40 +0100Tario(~Tario@201.192.165.173)
2020-11-09 02:32:35 +0100inkbottle(~inkbottle@aaubervilliers-654-1-101-233.w86-212.abo.wanadoo.fr)
2020-11-09 02:33:11 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 258 seconds)
2020-11-09 02:33:48 +0100zebrag(~inkbottle@aaubervilliers-654-1-107-146.w86-212.abo.wanadoo.fr) (Ping timeout: 260 seconds)
2020-11-09 02:35:53 +0100conal(~conal@209.58.139.27)
2020-11-09 02:38:07 +0100 <jle`> bqv: by write-only do you mean like append-only?
2020-11-09 02:38:24 +0100 <jle`> you can just use whatever data type you want and only export the operations that are allowed
2020-11-09 02:38:24 +0100Jeanne-Kamikaze(~Jeanne-Ka@66.115.189.179)
2020-11-09 02:38:51 +0100 <jle`> pure datatypes are all persistent so you can't really truly have 'no undo', since you can just hold a reference to previous values
2020-11-09 02:40:05 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
2020-11-09 02:40:51 +0100tmciver(~tmciver@172.101.40.226) (Ping timeout: 258 seconds)
2020-11-09 02:41:56 +0100 <bqv> jle`: yes, i do
2020-11-09 02:42:00 +0100 <bqv> and yeah i know
2020-11-09 02:42:09 +0100 <bqv> i was just wondering if this was an already packaged thing
2020-11-09 02:42:47 +0100tmciver(~tmciver@cpe-172-101-40-226.maine.res.rr.com)
2020-11-09 02:43:23 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 02:46:11 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-11-09 02:48:08 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds)
2020-11-09 02:49:14 +0100sulu(~sulu@unaffiliated/sulu)
2020-11-09 02:51:32 +0100AceNovo(~chris@184.101.220.149) (Quit: Konversation terminated!)
2020-11-09 02:51:57 +0100AceNovo(~chris@184.101.220.149)
2020-11-09 02:54:09 +0100 <xenon-> I need to create a relatively simple website for my personal use, and I want to give FRP a try. what library do you recommend?
2020-11-09 02:54:10 +0100ski(~ski@remote11.chalmers.se)
2020-11-09 02:58:02 +0100Tops2(~Tobias@dyndsl-095-033-091-035.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2020-11-09 03:02:13 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-09 03:05:04 +0100 <jchia> xenon: Why do you need FRP for a website?
2020-11-09 03:06:32 +0100 <xenon-> I don't NEED it, I want to give it a try
2020-11-09 03:09:24 +0100 <bqv> jle`: what would you call, such a structure?
2020-11-09 03:12:02 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-09 03:15:26 +0100yinfeng(~yinfeng@114.212.87.131)
2020-11-09 03:16:07 +0100conal(~conal@209.58.139.27) (Quit: Computer has gone to sleep.)
2020-11-09 03:16:49 +0100Jeanne-Kamikaze(~Jeanne-Ka@66.115.189.179) (Quit: Leaving)
2020-11-09 03:17:09 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 03:21:23 +0100tsaka__(~torstein@ppp-2-84-16-76.home.otenet.gr)
2020-11-09 03:21:53 +0100todda7(~torstein@athedsl-347721.home.otenet.gr) (Ping timeout: 256 seconds)
2020-11-09 03:27:45 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 240 seconds)
2020-11-09 03:28:46 +0100Tario(~Tario@201.192.165.173)
2020-11-09 03:29:34 +0100toorevitimirp(~tooreviti@117.182.180.38)
2020-11-09 03:34:02 +0100perrier-jouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2020-11-09 03:35:53 +0100todda7(~torstein@ppp-2-84-27-192.home.otenet.gr)
2020-11-09 03:36:04 +0100tsaka__(~torstein@ppp-2-84-16-76.home.otenet.gr) (Ping timeout: 256 seconds)
2020-11-09 03:37:28 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-09 03:38:10 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-09 03:40:19 +0100 <Axman6> xenon-: obilisk seems to the the simplest way to start with FRP using Reflex I believe
2020-11-09 03:44:37 +0100leungbk(~user@2605:e000:1315:706:1ea1:e5bb:dc92:96fe)
2020-11-09 03:49:10 +0100conal(~conal@209.58.139.27)
2020-11-09 03:49:40 +0100mmohammadi9812(~mmohammad@5.238.175.25) (Ping timeout: 272 seconds)
2020-11-09 03:50:07 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-11-09 03:51:02 +0100xff0x(~fox@2001:1a81:52da:100:72bb:28a0:cf70:9b87) (Ping timeout: 264 seconds)
2020-11-09 03:51:55 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100)
2020-11-09 03:51:56 +0100drbean(~drbean@TC210-63-209-143.static.apol.com.tw)
2020-11-09 03:52:03 +0100lemmih(~lemmih@2406:3003:2072:44:2c90:c5a8:23d6:f0a8) (Remote host closed the connection)
2020-11-09 03:52:25 +0100lemmih(~lemmih@2406:3003:2072:44:c5fe:5b97:f10c:4e16)
2020-11-09 03:52:32 +0100xff0x(~fox@2001:1a81:531b:1600:59c2:7a84:b705:d4e7)
2020-11-09 03:54:05 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-11-09 03:55:05 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 03:56:02 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net)
2020-11-09 03:57:02 +0100leungbk(~user@2605:e000:1315:706:1ea1:e5bb:dc92:96fe) (Ping timeout: 264 seconds)
2020-11-09 03:58:32 +0100ransom(~c4264035@c-73-243-2-10.hsd1.co.comcast.net) (Client Quit)
2020-11-09 03:58:51 +0100Jeanne-Kamikaze(~Jeanne-Ka@66.115.189.179)
2020-11-09 04:00:01 +0100litenull(~litenull@s91904426.blix.com) ()
2020-11-09 04:01:15 +0100tsaka__(~torstein@athei53-a-395.home.otenet.gr)
2020-11-09 04:03:01 +0100todda7(~torstein@ppp-2-84-27-192.home.otenet.gr) (Ping timeout: 265 seconds)
2020-11-09 04:03:36 +0100lagothrixGuest14788
2020-11-09 04:03:36 +0100Guest14788(~lagothrix@unaffiliated/lagothrix) (Killed (tolkien.freenode.net (Nickname regained by services)))
2020-11-09 04:03:44 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-11-09 04:04:10 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 256 seconds)
2020-11-09 04:05:25 +0100gproto023(~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
2020-11-09 04:05:31 +0100theDon(~td@muedsl-82-207-238-009.citykom.de) (Ping timeout: 256 seconds)
2020-11-09 04:06:06 +0100mmohammadi9812(~mmohammad@5.238.175.25)
2020-11-09 04:07:06 +0100theDon(~td@94.134.91.158)
2020-11-09 04:08:01 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 264 seconds)
2020-11-09 04:09:55 +0100conal(~conal@209.58.139.27) (Quit: Computer has gone to sleep.)
2020-11-09 04:10:49 +0100conal(~conal@209.58.139.27)
2020-11-09 04:11:02 +0100conal(~conal@209.58.139.27) (Client Quit)
2020-11-09 04:12:35 +0100 <siraben> is anyone aware of a good tutorial on how to implement tail-call optimization in Haskell?
2020-11-09 04:12:37 +0100Lycurgus(~niemand@98.4.97.118)
2020-11-09 04:12:57 +0100 <Axman6> what do you mean?
2020-11-09 04:13:23 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-09 04:13:35 +0100 <Axman6> TCO isn't a necessary optimisation in Haskell because the way that function calls work basically give you that for free
2020-11-09 04:13:53 +0100 <Axman6> (GHC Haskell)
2020-11-09 04:16:29 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311)
2020-11-09 04:19:46 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-11-09 04:20:40 +0100 <siraben> Axman6: Ah as in, if I'm making a compiler for a functional language and want to implement TCO myself
2020-11-09 04:21:00 +0100hackagejson-to-haskell 0.1.1.1 - https://hackage.haskell.org/package/json-to-haskell-0.1.1.1 (ChrisPenner)
2020-11-09 04:21:03 +0100 <Axman6> that's a very different question :P
2020-11-09 04:21:21 +0100 <Axman6> just jump to the code, BAM, done
2020-11-09 04:21:26 +0100 <siraben> Just reading my old question it wasn't clear semantically, heh. Note to self: people can't read your mind!
2020-11-09 04:21:35 +0100 <siraben> Yes but I have to recognize tail-calls right?
2020-11-09 04:21:37 +0100plutoniix(~q@node-ull.pool-125-24.dynamic.totinternet.net)
2020-11-09 04:21:45 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-11-09 04:22:24 +0100 <Axman6> this really depends a lot on your language
2020-11-09 04:23:44 +0100 <siraben> Axman6: say it's https://github.com/jozefg/pcf/
2020-11-09 04:24:16 +0100 <texasmynsted> https://stackoverflow.com/questions/13042353/does-haskell-have-tail-recursive-optimization
2020-11-09 04:24:19 +0100 <siraben> Technically a naïve graph reduction machine always uses tail jumps in the opcode interpretation however the stack context grows with recursive calls, so no
2020-11-09 04:24:43 +0100 <siraben> texasmynsted: Yes I'm aware of what TCO is, I'm looking to implement it in a functional compiler.
2020-11-09 04:25:22 +0100 <texasmynsted> By default, haskell has lazy evaluation.
2020-11-09 04:25:51 +0100 <siraben> To constraint the question further, suppose it's a strict, impure and functional language (like Scheme).
2020-11-09 04:27:40 +0100 <siraben> Oh I forgot, Lambda the Ultimate GOTO!
2020-11-09 04:29:42 +0100pavonia(~user@unaffiliated/siracusa)
2020-11-09 04:30:43 +0100todda7(~torstein@ppp-2-84-24-176.home.otenet.gr)
2020-11-09 04:31:22 +0100tsaka__(~torstein@athei53-a-395.home.otenet.gr) (Ping timeout: 256 seconds)
2020-11-09 04:31:39 +0100 <dsal> I spent way too much time making software nobody else is ever going to need generally available today.
2020-11-09 04:33:22 +0100iqubic(~user@2601:602:9500:4870:d07c:4378:9e5e:a4b1)
2020-11-09 04:34:01 +0100 <Axman6> good work
2020-11-09 04:34:20 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 04:34:55 +0100 <dsal> I guess I did the same thing yesterday, so maybe this is just normal.
2020-11-09 04:36:33 +0100 <justsomeguy> What does the Haskell report mean when it says declarations withing let expressions are mutually recursive?
2020-11-09 04:36:40 +0100 <dsal> I got to try optparse-generic today, though. I'm not sure if I like it, but I'm more sure than before I never tried it.
2020-11-09 04:36:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-09 04:37:10 +0100 <dsal> justsomeguy: things defined in let can reference each otehr
2020-11-09 04:37:15 +0100 <dsal> s/other/otter/
2020-11-09 04:37:22 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection)
2020-11-09 04:37:29 +0100 <justsomeguy> Ahh, ok, that helps.
2020-11-09 04:37:36 +0100irc_user(uid423822@gateway/web/irccloud.com/x-sjoykohhohfeylve) (Quit: Connection closed for inactivity)
2020-11-09 04:37:56 +0100codedmart(~codedmart@149.28.9.205) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-09 04:38:25 +0100texasmyn_(~texasmyns@64.44.55.77)
2020-11-09 04:38:43 +0100codedmart(~codedmart@149.28.9.205)
2020-11-09 04:38:46 +0100 <justsomeguy> Otters should definitely be able to reference each other; they form a tight-knit community.
2020-11-09 04:38:57 +0100texasmynsted(~texasmyns@64.44.55.100) (Ping timeout: 256 seconds)
2020-11-09 04:39:00 +0100 <dsal> ha. mnemonic
2020-11-09 04:39:20 +0100 <justsomeguy> :)
2020-11-09 04:41:18 +0100P1p(~u0_a216@173-47-2-119.cpe.cableone.net)
2020-11-09 04:41:19 +0100iqubic(~user@2601:602:9500:4870:d07c:4378:9e5e:a4b1) (Remote host closed the connection)
2020-11-09 04:41:30 +0100 <P1p> hi
2020-11-09 04:41:51 +0100 <dsal> Oh cool, stack changed the way they specify resolvers in stack.yaml and broke default.nix
2020-11-09 04:43:17 +0100P1p(~u0_a216@173-47-2-119.cpe.cableone.net) (Quit: leaving)
2020-11-09 04:44:04 +0100ixian(~mgold@2002:4a74:ba78:1701:0:ff:fe78:6269) (Remote host closed the connection)
2020-11-09 04:44:12 +0100ixian(~mgold@terra.bitplane.org)
2020-11-09 04:45:03 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2020-11-09 04:45:05 +0100hackagejson-to-haskell 0.1.1.2 - https://hackage.haskell.org/package/json-to-haskell-0.1.1.2 (ChrisPenner)
2020-11-09 04:46:01 +0100hackagecrdt-event-fold 1.2.0.0 - Garbage collected event folding CRDT. https://hackage.haskell.org/package/crdt-event-fold-1.2.0.0 (rickowens)
2020-11-09 04:46:52 +0100texasmyn_(~texasmyns@64.44.55.77) (Remote host closed the connection)
2020-11-09 04:47:14 +0100texasmynsted(~texasmyns@64.44.55.77)
2020-11-09 04:47:25 +0100sulu(~sulu@unaffiliated/sulu) (Quit: goodbye)
2020-11-09 04:47:52 +0100sulu(~sulu@unaffiliated/sulu)
2020-11-09 04:47:57 +0100texasmynsted(~texasmyns@64.44.55.77) (Remote host closed the connection)
2020-11-09 04:48:47 +0100iqubic(~user@2601:602:9500:4870:d07c:4378:9e5e:a4b1)
2020-11-09 04:52:02 +0100xpika(~alan@2001:8003:5d32:1f00:51d0:5bbb:a565:c9fd)
2020-11-09 04:52:15 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com)
2020-11-09 04:52:54 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-09 04:53:58 +0100Jeanne-Kamikaze(~Jeanne-Ka@66.115.189.179) (Quit: Leaving)
2020-11-09 04:55:11 +0100Tario(~Tario@201.192.165.173)
2020-11-09 04:55:26 +0100P1p(~u0_a216@173-47-2-119.cpe.cableone.net)
2020-11-09 04:55:47 +0100 <P1p> hello everyone
2020-11-09 04:56:10 +0100 <P1p> join #haskell
2020-11-09 04:56:33 +0100solonarv(~solonarv@astrasbourg-653-1-263-62.w92-161.abo.wanadoo.fr) (Ping timeout: 258 seconds)
2020-11-09 04:56:52 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 256 seconds)
2020-11-09 04:57:04 +0100p0kerf4ce(~u0_a533@72.22.226.85)
2020-11-09 04:57:09 +0100 <P1p> yo
2020-11-09 04:57:14 +0100 <P1p> there you are
2020-11-09 04:57:20 +0100 <p0kerf4ce> woah thats a lot of people
2020-11-09 04:57:24 +0100 <P1p> ik
2020-11-09 04:57:37 +0100 <P1p> no talkin tho
2020-11-09 04:57:47 +0100 <p0kerf4ce> were prolly bein hacked rn
2020-11-09 04:58:05 +0100 <P1p> jump back to e
2020-11-09 04:59:22 +0100 <Axman6> you ok?
2020-11-09 05:00:00 +0100Taneb(~Taneb@runciman.hacksoc.org) (Quit: I seem to have stopped.)
2020-11-09 05:00:04 +0100bitmagie(~Thunderbi@200116b8065109000cdbc28af571c7f9.dip.versatel-1u1.de)
2020-11-09 05:00:34 +0100Rudd0(~Rudd0@185.189.115.103)
2020-11-09 05:00:38 +0100Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 246 seconds)
2020-11-09 05:01:11 +0100 <Axman6> > let a = 1 : b; b = 2 : a in a -- justsomeguy
2020-11-09 05:01:14 +0100 <lambdabot> [1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2...
2020-11-09 05:01:30 +0100Taneb(~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
2020-11-09 05:01:30 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-11-09 05:01:48 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-09 05:02:33 +0100theDon(~td@94.134.91.158) (Ping timeout: 260 seconds)
2020-11-09 05:02:55 +0100christo(~chris@81.96.113.213)
2020-11-09 05:04:09 +0100theDon(~td@muedsl-82-207-238-251.citykom.de)
2020-11-09 05:04:14 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 264 seconds)
2020-11-09 05:04:28 +0100iqubic(~user@2601:602:9500:4870:d07c:4378:9e5e:a4b1) ("ERC (IRC client for Emacs 28.0.50)")
2020-11-09 05:05:24 +0100plutoniix(~q@node-ull.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
2020-11-09 05:05:37 +0100yinfeng(~yinfeng@114.212.87.131) (Ping timeout: 246 seconds)
2020-11-09 05:08:51 +0100p0kerf4ce(~u0_a533@72.22.226.85) (Quit: Lost terminal)
2020-11-09 05:08:56 +0100P1p(~u0_a216@173-47-2-119.cpe.cableone.net) (Quit: leaving)
2020-11-09 05:10:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-09 05:11:07 +0100todda7(~torstein@ppp-2-84-24-176.home.otenet.gr) (Ping timeout: 258 seconds)
2020-11-09 05:11:09 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr)
2020-11-09 05:15:04 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 246 seconds)
2020-11-09 05:15:14 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-09 05:17:37 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-11-09 05:18:50 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 05:21:48 +0100 <justsomeguy> That's a good example, thank you.
2020-11-09 05:23:05 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds)
2020-11-09 05:23:17 +0100plakband(~plakband@softbank126126238105.bbtec.net)
2020-11-09 05:28:25 +0100Foritus(~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net) (Ping timeout: 240 seconds)
2020-11-09 05:28:26 +0100Foritus(~buggery@cpc91334-watf11-2-0-cust153.15-2.cable.virginm.net)
2020-11-09 05:30:59 +0100justsomeguy(~justsomeg@unaffiliated/--/x-3805311) ()
2020-11-09 05:31:07 +0100falafel(~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4)
2020-11-09 05:34:04 +0100bitmagie1(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de)
2020-11-09 05:35:30 +0100conal(~conal@209.58.139.27)
2020-11-09 05:35:38 +0100bitmagie(~Thunderbi@200116b8065109000cdbc28af571c7f9.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2020-11-09 05:35:38 +0100bitmagie1bitmagie
2020-11-09 05:38:14 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
2020-11-09 05:38:53 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 05:38:56 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds)
2020-11-09 05:40:34 +0100conal(~conal@209.58.139.27) (Ping timeout: 256 seconds)
2020-11-09 05:44:02 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
2020-11-09 05:44:55 +0100Amras(~Amras@unaffiliated/amras0000)
2020-11-09 05:45:00 +0100hackagevty 5.32 - A simple terminal UI library https://hackage.haskell.org/package/vty-5.32 (JonathanDaugherty)
2020-11-09 05:47:50 +0100Narinas(~Narinas@189.223.113.190.dsl.dyn.telnor.net) (Quit: Quit)
2020-11-09 05:49:01 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 05:50:29 +0100mjsor(~matt@c-71-238-82-85.hsd1.or.comcast.net) (Quit: Konversation terminated!)
2020-11-09 05:53:18 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds)
2020-11-09 05:53:33 +0100balbirs_(~balbirs__@pip.ozlabs.org)
2020-11-09 05:53:53 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 05:58:17 +0100drbean(~drbean@TC210-63-209-143.static.apol.com.tw) (Ping timeout: 256 seconds)
2020-11-09 05:59:09 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 06:00:49 +0100Lycurgus(~niemand@98.4.97.118) (Ping timeout: 264 seconds)
2020-11-09 06:00:54 +0100balbirs_(~balbirs__@pip.ozlabs.org) (Quit: ZNC 1.8.2+deb1 - https://znc.in)
2020-11-09 06:01:33 +0100balbirs_(~balbirs__@pip.ozlabs.org)
2020-11-09 06:03:38 +0100falafel(~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds)
2020-11-09 06:04:08 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 06:04:33 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-09 06:09:19 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 06:13:29 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-11-09 06:14:30 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-09 06:15:54 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 06:20:10 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 246 seconds)
2020-11-09 06:20:52 +0100balbirs_(~balbirs__@pip.ozlabs.org) (Quit: ZNC 1.8.2+deb1 - https://znc.in)
2020-11-09 06:22:26 +0100balbirs_(~balbirs__@pip.ozlabs.org)
2020-11-09 06:22:36 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 06:23:58 +0100 <suzu_> > let x = 1:2:x in x
2020-11-09 06:24:00 +0100 <lambdabot> [1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2...
2020-11-09 06:24:52 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 06:27:23 +0100yinfeng(~yinfeng@114.212.87.131)
2020-11-09 06:27:56 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 260 seconds)
2020-11-09 06:29:18 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds)
2020-11-09 06:29:51 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-11-09 06:29:57 +0100berberman|Tberberman[T]
2020-11-09 06:30:24 +0100falafel_(~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4)
2020-11-09 06:31:42 +0100drbean(~drbean@TC210-63-209-86.static.apol.com.tw)
2020-11-09 06:33:23 +0100christo(~chris@81.96.113.213)
2020-11-09 06:35:54 +0100day_(~Unknown@unaffiliated/day)
2020-11-09 06:38:28 +0100adm_(~adm@43.229.88.236)
2020-11-09 06:38:45 +0100day(~Unknown@unaffiliated/day) (Ping timeout: 240 seconds)
2020-11-09 06:38:45 +0100day_day
2020-11-09 06:39:19 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-09 06:41:27 +0100Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 260 seconds)
2020-11-09 06:45:32 +0100plakband(~plakband@softbank126126238105.bbtec.net) (Quit: WeeChat 2.9)
2020-11-09 06:45:38 +0100falafel_(~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4) (Ping timeout: 264 seconds)
2020-11-09 06:49:25 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 264 seconds)
2020-11-09 06:49:30 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 06:50:37 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds)
2020-11-09 06:52:36 +0100balbirs_(~balbirs__@pip.ozlabs.org) (Quit: ZNC 1.8.2+deb1 - https://znc.in)
2020-11-09 06:54:33 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 06:54:58 +0100watt281(~watt281@106.206.8.241)
2020-11-09 06:56:11 +0100watt281(~watt281@106.206.8.241) (Read error: Connection reset by peer)
2020-11-09 06:58:49 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 07:00:15 +0100xenon-(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (EOF))
2020-11-09 07:01:03 +0100xenon-(~bc8165ab@217.29.117.252)
2020-11-09 07:03:18 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 07:06:12 +0100jalumar(uid392211@gateway/web/irccloud.com/x-cinmpjhrecfacgba) (Quit: Connection closed for inactivity)
2020-11-09 07:07:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-09 07:08:39 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-09 07:09:16 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 07:13:17 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-11-09 07:13:43 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
2020-11-09 07:14:23 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 07:14:43 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-11-09 07:16:02 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2020-11-09 07:16:48 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2020-11-09 07:17:02 +0100AceNovo(~chris@184.101.220.149) (Quit: Konversation terminated!)
2020-11-09 07:17:28 +0100AceNovo(~chris@184.101.220.149)
2020-11-09 07:19:25 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 07:23:39 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de)
2020-11-09 07:24:31 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds)
2020-11-09 07:28:13 +0100gtk(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-09 07:28:25 +0100sveit(~sveit@45.77.0.246) (Quit: Bye)
2020-11-09 07:28:46 +0100sveit(~sveit@2001:19f0:ac01:247:5400:ff:fe5c:689f)
2020-11-09 07:33:01 +0100hololeap(~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
2020-11-09 07:34:15 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-11-09 07:41:05 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-11-09 07:42:06 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-09 07:42:22 +0100AceNovo(~chris@184.101.220.149) (Quit: Konversation terminated!)
2020-11-09 07:42:46 +0100AceNovo(~chris@184.101.220.149)
2020-11-09 07:42:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-09 07:44:00 +0100yinfeng(~yinfeng@114.212.87.131) (Quit: WeeChat 2.9)
2020-11-09 07:44:47 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 07:44:54 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 07:48:23 +0100christo(~chris@81.96.113.213)
2020-11-09 07:48:46 +0100LKoen(~LKoen@77.174.9.109.rev.sfr.net)
2020-11-09 07:49:25 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 264 seconds)
2020-11-09 07:49:33 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-09 07:51:52 +0100bergsans(~bergsans@c80-217-8-29.bredband.comhem.se)
2020-11-09 07:51:58 +0100danso(~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9)
2020-11-09 07:52:42 +0100plutoniix(~q@ppp-223-24-153-54.revip6.asianet.co.th)
2020-11-09 07:53:23 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-11-09 07:53:23 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
2020-11-09 07:54:03 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-09 07:54:09 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-11-09 07:54:23 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds)
2020-11-09 07:54:54 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-09 07:55:10 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-11-09 07:55:38 +0100leonardo2(~leonardo@185.204.1.185)
2020-11-09 07:56:01 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-11-09 07:56:51 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-09 07:57:16 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-09 07:58:29 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 260 seconds)
2020-11-09 08:02:30 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-09 08:04:31 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 268 seconds)
2020-11-09 08:04:33 +0100 <Squarism> how would you map a list such that all but last element are mapped using f and last element is mapped using g?
2020-11-09 08:06:59 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-09 08:07:22 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-11-09 08:15:17 +0100alx741(~alx741@186.178.110.159) (Ping timeout: 260 seconds)
2020-11-09 08:16:03 +0100 <opqdonut> Squarism: the straightforward answer is: map f (init xs) ++ [g (last xs)]
2020-11-09 08:16:39 +0100 <opqdonut> but you can write a custom recursive function mapInitLast :: (a->b) -> (a->b) -> [a] -> [b] that does the same a bit more efficiently
2020-11-09 08:17:01 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de)
2020-11-09 08:20:04 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-09 08:22:17 +0100chaosmasttter(~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de)
2020-11-09 08:24:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-09 08:24:26 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-11-09 08:25:26 +0100syyan(~syyan@111.85.169.156)
2020-11-09 08:27:05 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-11-09 08:29:44 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2020-11-09 08:29:53 +0100alx741(~alx741@186.178.110.199)
2020-11-09 08:30:41 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-09 08:32:30 +0100plutoniix(~q@ppp-223-24-153-54.revip6.asianet.co.th) (Quit: Leaving)
2020-11-09 08:38:41 +0100adm_(~adm@43.229.88.236)
2020-11-09 08:42:42 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Remote host closed the connection)
2020-11-09 08:43:03 +0100adm_(~adm@43.229.88.236) (Ping timeout: 260 seconds)
2020-11-09 08:44:23 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-09 08:46:30 +0100adm_(~adm@43.229.88.236)
2020-11-09 08:46:31 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 08:48:19 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 08:49:14 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-09 08:49:40 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-09 08:51:05 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 265 seconds)
2020-11-09 08:52:58 +0100macrover(~macrover@ip70-189-231-35.lv.lv.cox.net)
2020-11-09 08:53:30 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
2020-11-09 08:57:11 +0100dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be)
2020-11-09 08:58:47 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 08:59:07 +0100alp(~alp@2a01:e0a:58b:4920:a599:6c71:c103:ae96)
2020-11-09 09:00:16 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 09:03:49 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-09 09:04:45 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds)
2020-11-09 09:06:07 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-09 09:07:38 +0100macrover(~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection)
2020-11-09 09:08:58 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 09:09:13 +0100Lycurgus(~niemand@98.4.97.118)
2020-11-09 09:09:35 +0100asheshambasta(~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be)
2020-11-09 09:11:06 +0100 <asheshambasta> In any given cabal project, given I have default-extensions in some of my .cabal files, is HLint supposed to use these extensions while parsing?
2020-11-09 09:12:01 +0100 <asheshambasta> One of my modules using LambdaCase seems to be confusing HLint where it reports a parse error, while GHC accepts it.
2020-11-09 09:12:16 +0100syyan(~syyan@111.85.169.156) ("Leaving")
2020-11-09 09:12:47 +0100 <asheshambasta> It reports an error with `interpret \case ...` and not with `interpret $ \case ...`
2020-11-09 09:13:58 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 09:14:25 +0100 <merijn> asheshambasta: HLint doesn't know about Haskell extensions or, really, anything about the AST/semantics
2020-11-09 09:14:30 +0100jespada(~jespada@90.254.245.49)
2020-11-09 09:14:49 +0100 <merijn> asheshambasta: It implements its own Haskell parser which may or may not be compatible with any syntax extensions
2020-11-09 09:14:56 +0100 <merijn> (afaict)
2020-11-09 09:15:46 +0100 <asheshambasta> I see, I was concluding it did based on following this as an example https://github.com/ndmitchell/hlint/blob/master/.hlint.yaml#L10
2020-11-09 09:16:11 +0100 <merijn> HLint doesn't parse cabal files or anything, afaik
2020-11-09 09:16:20 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-09 09:16:36 +0100 <merijn> So perhaps they work if the extensions are in the module as pragma
2020-11-09 09:16:57 +0100befuddled(~befuddled@49.207.208.95)
2020-11-09 09:17:04 +0100 <merijn> (Incidentally, this is why imo using default-extensions is a bad idea, now all your tools need to somehow be able to parse cabal files)
2020-11-09 09:17:15 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 09:17:49 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-09 09:18:54 +0100 <asheshambasta> Yeah, that's true. However, at the same time, I'd expect cabal files to define other fundamental things about my project too: where to find the modules, which modules to expose & not, where to find the Main module etc. I personally don't particularly find it problemmatic for the cabal file to also tell which extensions should be turned on by default.
2020-11-09 09:19:10 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 09:19:39 +0100 <asheshambasta> I guess what I'm trying to say is: if cabal files contain that information (which defines the project itself, in its dir. structure, modules etc.), why not also extensions I'd like turned on by default?
2020-11-09 09:19:52 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de)
2020-11-09 09:20:02 +0100 <merijn> Well, for example, because now hlint doesn't work :p
2020-11-09 09:20:13 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Remote host closed the connection)
2020-11-09 09:20:30 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-09 09:20:35 +0100 <merijn> Unless you duplicate the extension list into an hlint configuration file (at least, judging by that hlint link it does support a ton of extensions)
2020-11-09 09:20:36 +0100 <asheshambasta> Doesn't that mean HLint should parse the cabal file more than that the cabal file shouldn't contain x?
2020-11-09 09:21:03 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds)
2020-11-09 09:21:25 +0100 <merijn> asheshambasta: Try adding support for that to hlint and you'll soon learn why it doesn't support that yet :p
2020-11-09 09:21:56 +0100 <asheshambasta> because parsing cabal files is hard?
2020-11-09 09:22:04 +0100 <merijn> Cabal is a *big* dependency to have for a tool like hlint, it also means you need to upgrade hlint a lot
2020-11-09 09:22:16 +0100 <merijn> It will also make the hlint codebase a ton more complicated
2020-11-09 09:22:40 +0100jchia1(~jchia@58.32.71.83)
2020-11-09 09:23:00 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-09 09:23:22 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-09 09:23:23 +0100 <merijn> Parsing cabal files is easy, IFF you depend on Cabal.
2020-11-09 09:23:33 +0100 <asheshambasta> yeah, fair point. However, like you said, maintaining a separate HLint.yaml file is also going to be more boilerplate and ceremony.
2020-11-09 09:23:55 +0100elliott_(~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-09 09:24:02 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-09 09:24:20 +0100jchia(~jchia@58.32.71.108) (Ping timeout: 256 seconds)
2020-11-09 09:24:37 +0100 <merijn> Besides, having to put all the extensions in each Haskell file is a good way to make people think harder about adding extensions, which is a good thing imo
2020-11-09 09:25:40 +0100 <asheshambasta> I also agree with that, but there are some extensions that I almost always need. And these add just to the noise of what needs to be done before writing any module.
2020-11-09 09:27:17 +0100jedws(~jedws@101.184.150.81) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 09:27:34 +0100 <asheshambasta> However, I see that in the example above, it seems to be more of an issue with hlint's parser than an issue of it being aware of the LambdaCase extension.
2020-11-09 09:27:44 +0100 <asheshambasta> (it accepts `interpret $ \case`)
2020-11-09 09:28:56 +0100tito_04(~taurux@net-188-152-78-21.cust.dsl.teletu.it)
2020-11-09 09:29:06 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 09:29:18 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 09:29:44 +0100taurux(~taurux@net-188-152-78-21.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
2020-11-09 09:29:48 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-11-09 09:34:02 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-09 09:36:02 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-11-09 09:36:43 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr) (Ping timeout: 260 seconds)
2020-11-09 09:38:08 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de)
2020-11-09 09:38:09 +0100akegalj(~akegalj@93-136-68-191.adsl.net.t-com.hr)
2020-11-09 09:39:24 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 09:41:13 +0100akegalj(~akegalj@93-136-68-191.adsl.net.t-com.hr) (Client Quit)
2020-11-09 09:43:15 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-09 09:43:56 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-09 09:44:26 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 258 seconds)
2020-11-09 09:44:43 +0100 <dminuoso> merijn: What are the chances of splitting Cabal into a cabal-the-file parser and Cabal-the-library?
2020-11-09 09:44:54 +0100star_cloud(6ace4535@106.206.69.53)
2020-11-09 09:45:06 +0100 <dminuoso> That is, if someone provided the work for it, do you reckon it would stand a chance of landing upstream?
2020-11-09 09:45:10 +0100Gtisu(~pi@86.red-88-23-45.staticip.rima-tde.net)
2020-11-09 09:45:13 +0100drbean(~drbean@TC210-63-209-86.static.apol.com.tw) (Ping timeout: 265 seconds)
2020-11-09 09:45:23 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds)
2020-11-09 09:45:31 +0100 <sclv> i don't see the advantage
2020-11-09 09:45:48 +0100 <dminuoso> well, tools could parse the file for information extraction or manipulation
2020-11-09 09:46:01 +0100 <sclv> pulling the parser in requires pulling in the data structures which pulls in a ton of cabal anyway
2020-11-09 09:46:04 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2020-11-09 09:46:08 +0100 <dminuoso> Mmm
2020-11-09 09:46:17 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-09 09:46:36 +0100 <merijn> sclv: There's some bonus, though
2020-11-09 09:46:45 +0100 <merijn> You can just get the fields without semantics stuff
2020-11-09 09:47:00 +0100hackagecobot-io 0.1.3.11 - Biological data file formats and IO https://hackage.haskell.org/package/cobot-io-0.1.3.11 (ozzzzz)
2020-11-09 09:47:01 +0100star_cloud(6ace4535@106.206.69.53) (Remote host closed the connection)
2020-11-09 09:47:15 +0100 <merijn> dminuoso: btw, phadej already made https://hackage.haskell.org/package/cabal-install-parsers
2020-11-09 09:47:29 +0100 <merijn> Or rather, I guess hvr did and he works on it now
2020-11-09 09:48:24 +0100 <dminuoso> merijn: Which depends on Cabal.
2020-11-09 09:48:35 +0100 <dminuoso> Not sure what you win that way
2020-11-09 09:49:08 +0100 <dminuoso> I mean if its just data type definitions, surely that can all be moved into simple Types modules.
2020-11-09 09:49:20 +0100 <int-e> dminuoso: AIUI it provides the parsers that are otherwise buried inside cabal-install, so the project-level stuff.
2020-11-09 09:49:34 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 09:49:46 +0100 <int-e> But maybe I understood incorrectly?
2020-11-09 09:49:53 +0100 <merijn> It does a bit of both
2020-11-09 09:50:03 +0100 <dminuoso> int-e: https://hackage.haskell.org/package/cabal-install-parsers-0.4/docs/src/Cabal.Package.html#readPack…
2020-11-09 09:50:12 +0100 <merijn> dminuoso: Pulling out those parsers is hard, though :)
2020-11-09 09:50:21 +0100Gtisu(~pi@86.red-88-23-45.staticip.rima-tde.net) ()
2020-11-09 09:50:41 +0100 <dminuoso> This is not very high level. :p
2020-11-09 09:52:04 +0100 <int-e> the biggest files are ... Index (so package index) and Project (project file stuff, including mapping the packages to OS directories)
2020-11-09 09:52:39 +0100 <int-e> Which is about what I expected/remembered.
2020-11-09 09:53:21 +0100 <int-e> But yes, it's on top of Cabal, while dminuoso wants a split below.
2020-11-09 09:54:41 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 09:54:49 +0100apoc(~apoc@49.12.13.193) (Ping timeout: 264 seconds)
2020-11-09 09:55:34 +0100mozzarella(~sam@unaffiliated/sam113101) (Ping timeout: 256 seconds)
2020-11-09 09:56:21 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-09 09:56:40 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-09 09:56:43 +0100kuribastard(~user@ptr-25vy0i8zs545blh2070.18120a2.ip6.access.telenet.be)
2020-11-09 09:57:33 +0100 <kuribastard> how do f# computation expressions compare to monads?
2020-11-09 09:58:03 +0100apoc(~apoc@bridge.mattzq.com)
2020-11-09 09:58:08 +0100 <kuribastard> it looks like it's a generalization of do notation.
2020-11-09 09:58:13 +0100 <kuribastard> but without laws
2020-11-09 09:59:04 +0100AceNovo(~chris@184.101.220.149) (Quit: Konversation terminated!)
2020-11-09 09:59:06 +0100 <kuribastard> those languages intend to make it easier than haskell, but without laws, won't it become harder in the end?
2020-11-09 09:59:18 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-09 09:59:32 +0100borne(~fritjof@200116b864d35e0021c47849b07375d7.dip.versatel-1u1.de)
2020-11-09 09:59:36 +0100 <kuribastard> if it would support indexed monads, that would be an advantage though...
2020-11-09 09:59:37 +0100AceNovo(~chris@184.101.220.149)
2020-11-09 10:00:02 +0100leonardo2(~leonardo@185.204.1.185) ()
2020-11-09 10:00:18 +0100Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-11-09 10:00:36 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 256 seconds)
2020-11-09 10:00:41 +0100alp(~alp@2a01:e0a:58b:4920:a599:6c71:c103:ae96) (Ping timeout: 272 seconds)
2020-11-09 10:00:50 +0100Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-11-09 10:01:06 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-11-09 10:01:08 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
2020-11-09 10:01:22 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com)
2020-11-09 10:01:37 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net)
2020-11-09 10:02:30 +0100hackageukrainian-phonetics-basic 0.2.0.1 - A library to work with the basic Ukrainian phonetics and syllable segmentation. https://hackage.haskell.org/package/ukrainian-phonetics-basic-0.2.0.1 (OleksandrZhabenko)
2020-11-09 10:03:29 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 10:03:38 +0100mozzarella(~sam@unaffiliated/sam113101)
2020-11-09 10:04:09 +0100alp(~alp@2a01:e0a:58b:4920:6dd8:8351:ec1a:bc84)
2020-11-09 10:04:51 +0100adm(~adm@43.229.88.236)
2020-11-09 10:05:08 +0100thc202(~thc202@unaffiliated/thc202)
2020-11-09 10:06:17 +0100poljar(~poljar@93-139-70-179.adsl.net.t-com.hr) (Remote host closed the connection)
2020-11-09 10:06:46 +0100poljar(~poljar@93-139-70-179.adsl.net.t-com.hr)
2020-11-09 10:07:09 +0100xelxebar(~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
2020-11-09 10:07:31 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se)
2020-11-09 10:08:05 +0100 <xpika> Should there be a Monoid instance for Monad m => Kleisli m a a in the vein as Endo a in Data.Monoid?
2020-11-09 10:08:13 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 10:09:49 +0100otulp(~otulp@ti0187q162-7043.bb.online.no) (Ping timeout: 264 seconds)
2020-11-09 10:10:33 +0100otulp(~otulp@ti0187q162-6038.bb.online.no)
2020-11-09 10:11:28 +0100 <Taneb> xpika: http://hackage.haskell.org/package/monoid-extras-0.5.1/docs/Data-Monoid-Endomorphism.html there's this in monoid-extras
2020-11-09 10:11:39 +0100 <Taneb> Whawt you're after is "Endomorphism (Kleisli m)"
2020-11-09 10:11:50 +0100 <Taneb> (it works for any category)
2020-11-09 10:15:23 +0100 <Feuermagier> what does the :set operator do? - and where does it belong (seen it in a stackoverflow post)
2020-11-09 10:16:00 +0100Guest67212lep-delete
2020-11-09 10:16:02 +0100lep-deleteGuest67212
2020-11-09 10:16:03 +0100Guest67212lep-delete
2020-11-09 10:16:35 +0100christo(~chris@81.96.113.213)
2020-11-09 10:16:40 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-09 10:17:40 +0100enoq(~textual@194-208-146-143.lampert.tv)
2020-11-09 10:17:45 +0100ahmr88(~ahmr88@cpc85006-haye22-2-0-cust131.17-4.cable.virginm.net) (Quit: Leaving...)
2020-11-09 10:17:48 +0100 <xpika> Taneb: Thanks
2020-11-09 10:18:50 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-09 10:19:02 +0100 <xpika> question: Are Monads Monoids?
2020-11-09 10:20:49 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 10:21:04 +0100 <xpika> wikipedia doesn't seem to suggest it. https://en.wikipedia.org/wiki/Monad_(category_theory)
2020-11-09 10:21:24 +0100 <Taneb> xpika: the short answer is "no", but there's a long answer which has "yes" as the conclusion
2020-11-09 10:22:06 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-09 10:22:24 +0100 <Taneb> So as monoid as is conventionally understood is a set with an associative binary operation that has an identity
2020-11-09 10:22:37 +0100 <Taneb> By this definition, a monad is not a monoid (it's not even a set)
2020-11-09 10:23:07 +0100adm(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 10:23:08 +0100 <Taneb> But through the power of category theory, this definition can be generalized to a "monoid object on a monoidal category"
2020-11-09 10:23:45 +010092AABGYX7(~adm@43.229.88.236)
2020-11-09 10:24:16 +0100 <Taneb> A monoidal category is a category with a bifunctor * and special object 1 such that A * (B * C) is isomorphic to (A * B) * C and A * 1 is isomorphic to A is isomorphic to 1 * A
2020-11-09 10:24:21 +0100 <maralorn> xpika: There is the sane definition of Monoid, which every mathematician knows. According to that one a Monad is not a Monoid. And then there is a category theory definition of Monoid, which I think out of 30 professors at my department max. 2 know, and as Taneb explains, that one works for Monads.
2020-11-09 10:24:53 +0100 <Taneb> We can make the category of sets a monoidal category with * being ordered pairs and 1 being a singleton set (like () )
2020-11-09 10:26:12 +0100 <Taneb> A monoid object is an object M in a monoidal category, with morphisms 1 => M and M * M => M, with certain sensible laws corresponding to associativity and identity
2020-11-09 10:26:26 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection)
2020-11-09 10:26:29 +0100 <Taneb> If we choose the category of sets as our monoidal category we get the traditional definition of monoids
2020-11-09 10:27:05 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-09 10:27:44 +0100 <Taneb> Now, let's take another category, the category whose objects are functors from set to set and whose morphisms are natural transformations
2020-11-09 10:28:14 +0100 <Taneb> This can be made monoidal, taking * to be composition of functors and 1 to be the identity functor
2020-11-09 10:28:23 +0100 <Taneb> Monoids in *this* category are exactly monads
2020-11-09 10:28:29 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-09 10:28:38 +0100 <Taneb> (this is where the joke "monads are just monoids in the category of endofunctors, what's the problem?" comes from)
2020-11-09 10:28:50 +0100 <Taneb> xpika: I don't know how useful this is but I hope it's at least interesting
2020-11-09 10:29:00 +0100hackagelibfuse3 0.1.2.0 - A Haskell binding for libfuse-3.x https://hackage.haskell.org/package/libfuse3-0.1.2.0 (yohashi)
2020-11-09 10:30:53 +0100raichoo(~raichoo@213.240.178.58)
2020-11-09 10:31:00 +0100Franciman(~francesco@host-79-36-167-172.retail.telecomitalia.it)
2020-11-09 10:31:07 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Ping timeout: 246 seconds)
2020-11-09 10:31:37 +0100 <xpika> Taneb: No, it's good. I realized the other day that since I could make a monoid out of monads that I could use the fold function for instance to fold a list of Kleisli arrows
2020-11-09 10:32:38 +0100 <Feuermagier> how can I concatenate strings with space, but only if the concatenated-with string is not empty? - (so I dont get double spaces)
2020-11-09 10:33:01 +0100hackager-glpk-phonetic-languages-ukrainian-durations 0.1.3.0 - Can be used to calculate the durations of the approximations of the Ukrainian phonemes. https://hackage.haskell.org/package/r-glpk-phonetic-languages-ukrainian-durations-0.1.3.0 (OleksandrZhabenko)
2020-11-09 10:33:26 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-09 10:33:48 +010092AABGYX7(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 10:34:12 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be)
2020-11-09 10:35:30 +0100hackagephonetic-languages-properties 0.3.0.0 - A generalization of the uniqueness-periods-vector-properties package. https://hackage.haskell.org/package/phonetic-languages-properties-0.3.0.0 (OleksandrZhabenko)
2020-11-09 10:35:38 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se)
2020-11-09 10:37:17 +0100DavidEichmann(~david@43.240.198.146.dyn.plus.net)
2020-11-09 10:38:03 +0100Aquazi(uid312403@gateway/web/irccloud.com/x-vutaqggfkdwqzvto)
2020-11-09 10:39:41 +0100adm(~adm@43.229.88.236)
2020-11-09 10:40:43 +0100Lycurgus(~niemand@98.4.97.118) (Quit: Exeunt)
2020-11-09 10:40:55 +0100cocreature(~cocreatur@eirene.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in)
2020-11-09 10:41:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2020-11-09 10:41:31 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr)
2020-11-09 10:41:41 +0100adm_(~adm@43.229.88.236)
2020-11-09 10:42:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-09 10:42:32 +0100 <xpika> > (\x y -> unwords . words $ [x,y]) "hello " " world"
2020-11-09 10:42:34 +0100 <lambdabot> error:
2020-11-09 10:42:34 +0100 <lambdabot> • Couldn't match expected type ‘Char’ with actual type ‘[Char]’
2020-11-09 10:42:34 +0100 <lambdabot> • In the first argument of ‘\ x y
2020-11-09 10:42:44 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-09 10:42:48 +0100 <xpika> > (\x y -> unwords . words $ (x++y)) "hello " " world"
2020-11-09 10:42:50 +0100 <lambdabot> "hello world"
2020-11-09 10:43:22 +0100cocreature(~cocreatur@eirene.uberspace.de)
2020-11-09 10:43:32 +0100 <xpika> > (\x y -> unwords . words $ (x++y)) "hello " " new world"
2020-11-09 10:43:34 +0100 <lambdabot> "hello new world"
2020-11-09 10:44:00 +0100adm_(~adm@43.229.88.236) (Read error: Connection reset by peer)
2020-11-09 10:44:09 +0100adm(~adm@43.229.88.236) (Ping timeout: 260 seconds)
2020-11-09 10:44:51 +0100xff0x(~fox@2001:1a81:531b:1600:59c2:7a84:b705:d4e7) (Ping timeout: 268 seconds)
2020-11-09 10:44:53 +0100 <Feuermagier> xpika, interesting! thanks!
2020-11-09 10:45:06 +0100invaser(~Thunderbi@31.148.23.125) (Read error: Connection reset by peer)
2020-11-09 10:45:38 +0100 <xpika> >"hello" ++ " "++dropWhile (==' ') " world"
2020-11-09 10:45:43 +0100xff0x(~fox@2001:1a81:531b:1600:ec8f:61b3:570e:bcbc)
2020-11-09 10:46:12 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-09 10:46:38 +0100christo(~chris@81.96.113.213)
2020-11-09 10:46:39 +0100 <xpika> > "hello" ++ " "++dropWhile (==' ') " world"
2020-11-09 10:46:41 +0100adm(~adm@43.229.88.236)
2020-11-09 10:46:41 +0100 <Feuermagier> xpika, can I apply this to a list of Strings, so that it concatenates the entire list like "concat"?
2020-11-09 10:46:42 +0100 <lambdabot> "hello world"
2020-11-09 10:47:40 +0100 <xpika> Feuermagier: yes
2020-11-09 10:49:23 +0100 <Feuermagier> xpika, is there something like a "concatenateWithFunction f" - function? - I don't quite get how to syntactically correctly apply this
2020-11-09 10:49:29 +0100invaser(~Thunderbi@128-124-156-208.mobile.vf-ua.net)
2020-11-09 10:50:17 +0100 <xpika> >>= does that
2020-11-09 10:50:31 +0100 <xpika> or concatMap which is the same thing
2020-11-09 10:53:43 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-dgsoicqoiphpcnpi) (Quit: Connection closed for inactivity)
2020-11-09 10:54:12 +0100unknown(~unknown@84.39.117.57)
2020-11-09 10:56:20 +0100adm(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 10:57:24 +0100 <Feuermagier> like this?: concatMap (\x y -> unwords . words $ (x++y)) ["u ", " ", " z"]
2020-11-09 10:57:29 +0100 <Feuermagier> > concatMap (\x y -> unwords . words $ (x++y)) ["u ", " ", " z"]
2020-11-09 10:57:31 +0100 <lambdabot> error:
2020-11-09 10:57:31 +0100 <lambdabot> • Couldn't match expected type ‘[b]’
2020-11-09 10:57:31 +0100 <lambdabot> with actual type ‘[Char] -> String’
2020-11-09 10:57:53 +0100cr0ssw1nd(~crosswind@78.162.46.6)
2020-11-09 10:58:04 +0100 <cr0ssw1nd> hey hoe
2020-11-09 10:59:46 +0100ulidtko(~ulidtko@193.111.48.79) (Ping timeout: 256 seconds)
2020-11-09 11:00:18 +0100andreas31(~andreas@gateway/tor-sasl/andreas303) (Remote host closed the connection)
2020-11-09 11:03:25 +0100andreas31(~andreas@gateway/tor-sasl/andreas303)
2020-11-09 11:03:53 +0100ulidtko(~ulidtko@193.111.48.79)
2020-11-09 11:05:03 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds)
2020-11-09 11:07:18 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Ping timeout: 272 seconds)
2020-11-09 11:07:39 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr) (Remote host closed the connection)
2020-11-09 11:07:40 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-11-09 11:07:53 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-09 11:08:04 +0100Lord_of_Life_(~Lord@46.217.220.150) (Read error: Connection reset by peer)
2020-11-09 11:08:30 +0100hackagephonetic-languages-examples 0.3.0.0 - A generalization of the uniqueness-periods-vector-examples functionality. https://hackage.haskell.org/package/phonetic-languages-examples-0.3.0.0 (OleksandrZhabenko)
2020-11-09 11:08:40 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr)
2020-11-09 11:08:58 +0100Lord_of_Life(~Lord@46.217.220.150)
2020-11-09 11:08:58 +0100Lord_of_Life(~Lord@46.217.220.150) (Changing host)
2020-11-09 11:08:58 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-11-09 11:09:32 +0100Maxdamantus(~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 258 seconds)
2020-11-09 11:09:42 +0100 <Feuermagier> xpika, can I apply that dropWhile you used from back to front of a string somehow?
2020-11-09 11:10:27 +0100Maxdamantus(~Maxdamant@unaffiliated/maxdamantus)
2020-11-09 11:14:23 +0100 <xpika> > dropWhileEnd isSpace "hello world "
2020-11-09 11:14:24 +0100 <lambdabot> "hello world"
2020-11-09 11:15:45 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-11-09 11:17:06 +0100Miroboru(~textual@89-162-24-238.fiber.signal.no)
2020-11-09 11:17:32 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net) (Ping timeout: 265 seconds)
2020-11-09 11:18:06 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Remote host closed the connection)
2020-11-09 11:18:48 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 256 seconds)
2020-11-09 11:20:16 +0100_xor(~xor@74.215.46.133) (Ping timeout: 258 seconds)
2020-11-09 11:20:37 +0100Rudd0(~Rudd0@185.189.115.103)
2020-11-09 11:21:17 +0100 <kuribastard> :t dropWhileEnd
2020-11-09 11:21:19 +0100 <lambdabot> (a -> Bool) -> [a] -> [a]
2020-11-09 11:21:25 +0100_xor(~xor@74.215.46.133)
2020-11-09 11:22:00 +0100Lord_of_Life(~Lord@46.217.220.150)
2020-11-09 11:22:00 +0100Lord_of_Life(~Lord@46.217.220.150) (Changing host)
2020-11-09 11:22:00 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-11-09 11:22:40 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 11:22:56 +0100Miroboru(~textual@89-162-24-238.fiber.signal.no) (Quit: Textual IRC Client: www.textualapp.com)
2020-11-09 11:23:25 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 11:23:29 +0100Miroboru(~textual@89-162-24-238.fiber.signal.no)
2020-11-09 11:25:21 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 11:25:47 +0100christo(~chris@81.96.113.213)
2020-11-09 11:26:14 +0100cr0ssw1nd(~crosswind@78.162.46.6) (Ping timeout: 265 seconds)
2020-11-09 11:27:31 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-09 11:27:55 +0100jedws(~jedws@101.184.150.81)
2020-11-09 11:28:10 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 265 seconds)
2020-11-09 11:31:27 +0100Katarushisu(~Katarushi@cpc149712-finc20-2-0-cust535.4-2.cable.virginm.net)
2020-11-09 11:32:41 +0100rprije(~rprije@124.148.131.132) (Ping timeout: 260 seconds)
2020-11-09 11:34:10 +0100jedws(~jedws@101.184.150.81) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 11:34:20 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2020-11-09 11:35:43 +0100 <kuribastard> ouch this burns: "Seriously: the PHP people at least know their languages won’t protect them from anything. We should bring some of that humility back to Haskell."
2020-11-09 11:39:44 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 11:41:20 +0100 <Uniaika> lol yeah I read that one too
2020-11-09 11:43:03 +0100 <maerwald> where was that
2020-11-09 11:44:13 +0100 <kuribastard> https://www.snoyman.com/blog/2020/11/haskell-bad-parts-2
2020-11-09 11:45:22 +0100esph(~weechat@unaffiliated/esph) (Quit: WeeChat 2.9)
2020-11-09 11:45:30 +0100esph(~weechat@unaffiliated/esph)
2020-11-09 11:45:34 +0100 <maerwald> well yeah, it's a popular opinion that types protect you from bugs and ppl get overly enthusiastic about it
2020-11-09 11:46:51 +0100 <kuribastard> types don't protect you from bugs, but they help you to maintain abstraction barriers. It's having proper abstractions that save you from stupid bugs.
2020-11-09 11:47:03 +0100 <maerwald> I even disagree with that
2020-11-09 11:47:07 +0100 <Uniaika> maerwald: yeah in the end, we have a case of overly enthusiast zealot
2020-11-09 11:47:11 +0100 <kuribastard> maerwald: I know
2020-11-09 11:47:14 +0100LKoen(~LKoen@77.174.9.109.rev.sfr.net) (Read error: Connection reset by peer)
2020-11-09 11:47:17 +0100christo(~chris@81.96.113.213)
2020-11-09 11:47:44 +0100 <merijn> I have a simple heuristic for maerwald's opinion on most topics. Just invert the popular opinion ;)
2020-11-09 11:47:57 +0100 <maerwald> merijn: that's not very useful
2020-11-09 11:48:05 +0100 <Uniaika> but is it true though? :P
2020-11-09 11:48:35 +0100LKoen(~LKoen@77.174.9.109.rev.sfr.net)
2020-11-09 11:48:47 +0100jalumar(uid392211@gateway/web/irccloud.com/x-shdqsvwkocdcmfsf)
2020-11-09 11:48:50 +0100 <kuribastard> it's being able to clearly specify business logic that makes your program less faulty. It does prevent you from implementing the wrong specs, not understanding the customer requirements, etc...
2020-11-09 11:48:58 +0100 <maerwald> kuribastard: types don't construct *architecture*. They are usually more low-level than that.
2020-11-09 11:49:11 +0100 <kuribastard> erm "doesn't"
2020-11-09 11:50:05 +0100 <kuribastard> but then, just as it's a poor decision to run your programs under a desk, I think it's a poor decision to run your long running service using a dynamic language.
2020-11-09 11:50:31 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 11:50:32 +0100 <kuribastard> maerwald: that's exactly why they are useful
2020-11-09 11:50:43 +0100 <maerwald> good architecture facilitates porper abstraction barriers
2020-11-09 11:51:15 +0100 <kuribastard> it doesn't come with a large overhead like OO inheritance hierarchies.
2020-11-09 11:51:42 +0100 <maerwald> I don't follow that thought
2020-11-09 11:52:07 +0100adm_(~adm@43.229.88.236)
2020-11-09 11:52:09 +0100 <maerwald> bashing OO isn't hard
2020-11-09 11:57:34 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se)
2020-11-09 11:57:37 +0100christo(~chris@81.96.113.213)
2020-11-09 11:57:55 +0100 <maerwald> "Deprecate partial functions" ... ok, please provide a proper languagu for that, because Haskell isn't
2020-11-09 11:58:05 +0100 <maerwald> little extreme imo
2020-11-09 11:58:22 +0100__monty__(~toonn@unaffiliated/toonn)
2020-11-09 11:59:14 +0100iqubic(~user@2601:602:9500:4870:fd55:a12e:3595:eb89)
2020-11-09 11:59:26 +0100a_(~a@2402:8100:230f:985:63a5:3c25:ccc1:e6b3)
2020-11-09 11:59:37 +0100 <Uniaika> *some* famous partial functions' types *can* be patched with NonEmpty a instead of [a]
2020-11-09 12:00:03 +0100 <maerwald> I am a fan of partial head.
2020-11-09 12:00:19 +0100Rudd0^(~Rudd0@185.189.115.108)
2020-11-09 12:00:27 +0100 <maerwald> Sometimes you have local proof (inside the same function, but haskell isn't expressive enought to know)
2020-11-09 12:00:40 +0100 <Uniaika> yes that is indeed right
2020-11-09 12:00:49 +0100 <maerwald> I don't wanna bother with Maybe types just to satisfy someone elses OCD
2020-11-09 12:01:22 +0100xenon-(~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
2020-11-09 12:01:28 +0100 <Uniaika> maerwald: Same, but that's why I prefer an upstream NonEmpty rather than a downstream Maybe
2020-11-09 12:01:46 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 272 seconds)
2020-11-09 12:02:09 +0100a_(~a@2402:8100:230f:985:63a5:3c25:ccc1:e6b3) (Client Quit)
2020-11-09 12:02:52 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
2020-11-09 12:03:01 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
2020-11-09 12:03:03 +0100 <int-e> I for one dislike NonEmpty a; it should be a subtype of [a] but we don't have subtypes.
2020-11-09 12:03:50 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-09 12:04:15 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 12:04:17 +0100 <maerwald> in general seems like a rant about stdlib, which is mostly true
2020-11-09 12:04:23 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 12:04:48 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 12:04:52 +0100 <xpika> consensus is that if your serious: don't use the default prelude
2020-11-09 12:05:14 +0100christo(~chris@81.96.113.213)
2020-11-09 12:05:20 +0100 <int-e> consensus?!
2020-11-09 12:05:28 +0100 <maerwald> That's what I see quite often: strong types, but the implementation is still naive (e.g. see the 'path' package)
2020-11-09 12:06:12 +0100 <int-e> I suppose you can reach a consensus that the Prelude doesn't get things right.
2020-11-09 12:06:20 +0100 <int-e> You
2020-11-09 12:06:38 +0100 <int-e> I don't think you can reach a consensus on what it should do instead.
2020-11-09 12:08:25 +0100Zetagon(~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 246 seconds)
2020-11-09 12:08:53 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds)
2020-11-09 12:09:15 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 265 seconds)
2020-11-09 12:10:49 +0100 <maerwald> The "checked exceptions" discussion is the worst. And ppl believing haskell actually has checked exceptions. No, Either is not that. ExceptT neither and even if you add open unions, you still need to be careful to always catch all inner IO actions
2020-11-09 12:11:04 +0100kish(~oracle@unaffiliated/oracle)
2020-11-09 12:11:54 +0100 <int-e> isn't that another thing that wants subtyping
2020-11-09 12:12:25 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 12:12:32 +0100 <int-e> (I guess it can be expressed as constraints if you want to... and you have a kind of subtyping on that level)
2020-11-09 12:12:42 +0100 <Squarism> anyone know of clean "algorithm" to construct a tree from a list of elements containing something like : data KeyedNodes a = KeyedNodes { id::String, parentId::String, content::a } ?
2020-11-09 12:13:07 +0100 <maerwald> int-e: I don't think this is a "type level expressivity" option at all
2020-11-09 12:13:08 +0100 <Squarism> oh, parentId should ofc be Maybe String
2020-11-09 12:13:12 +0100kish`(~oracle@unaffiliated/oracle) (Ping timeout: 256 seconds)
2020-11-09 12:13:22 +0100 <maerwald> GHC doesn't know what exeptions a function may throw. Fix that first
2020-11-09 12:14:22 +0100 <tomsmeding> Squarism: make a Data.Map (Maybe String) [String] from parent -> children with a single pass over the list in O(n log n), then build the tree recursively in O(n log n) ?
2020-11-09 12:14:46 +0100fntastic(5f5ac942@ip5f5ac942.dynamic.kabel-deutschland.de)
2020-11-09 12:14:57 +0100 <int-e> maerwald: Oh, sure, it would require quite a different setup for IO. It wouldn't even be a monad... but some indexed thing instead.
2020-11-09 12:15:30 +0100solonarv(~solonarv@astrasbourg-653-1-263-62.w92-161.abo.wanadoo.fr)
2020-11-09 12:15:35 +0100 <merijn> int-e: I disagree, I think the issue is orthogonal
2020-11-09 12:15:39 +0100 <kuribastard> Squarism: you can use a lazy map Data.Map (Maybe String) Tree
2020-11-09 12:15:54 +0100 <merijn> Exceptions shouldn't be in the current types (system) at all
2020-11-09 12:16:01 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 265 seconds)
2020-11-09 12:16:07 +0100 <merijn> We should have a new separate type system and types for that
2020-11-09 12:16:11 +0100 <tomsmeding> oh kuribastard's version is nicer indeed
2020-11-09 12:16:37 +0100 <kuribastard> merijn: when are you going to design a new language?
2020-11-09 12:16:49 +0100 <kuribastard> merijn: can it have indexed monads?
2020-11-09 12:17:11 +0100 <maerwald> well, I leave up the "how" wrt checked exceptions to the scientists :p
2020-11-09 12:17:16 +0100 <int-e> merijn: sure, that's an option...
2020-11-09 12:17:35 +0100 <maerwald> I can just give my users experience that all options currently suck
2020-11-09 12:17:45 +0100 <maerwald> and that Java ain't that bad wrt exceptions
2020-11-09 12:17:55 +0100beleon(~beleon@2a02:810c:4cc0:c8b:50e2:68a8:c1e:3f7f)
2020-11-09 12:18:22 +0100 <merijn> kuribastard: As soon as someone pays me :)
2020-11-09 12:18:50 +0100 <maerwald> merijn: only fintech has the money, so figure out a way to sell your idea to them
2020-11-09 12:19:12 +0100 <merijn> fintech wants me to move too, so that's out :p
2020-11-09 12:19:22 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-11-09 12:19:49 +0100 <maerwald> You need a Gandalf kicking you out of your house :p
2020-11-09 12:20:00 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-09 12:21:04 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-09 12:21:04 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-11-09 12:21:15 +0100 <maerwald> but currently, shouldn't be that hard
2020-11-09 12:21:25 +0100 <maerwald> where can you move now anyway
2020-11-09 12:22:20 +0100v_m_v(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a)
2020-11-09 12:22:23 +0100 <merijn> maerwald: Well, even if I was willing to move, most fintech is located in countries I would be unwilling to move to :p
2020-11-09 12:23:37 +0100 <maerwald> you mean Cayman Islands? *chuckle*
2020-11-09 12:23:39 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 12:23:46 +0100 <beleon> hi! can you help me out on creating a Monad instance for my type? It's a Monad around the parsec Parser Monad that is supposed to keep track of indentation characters used while parsing. I can't quite figure out how to get the result of >>= out of the Parser Monad. Here's the code: https://gist.github.com/beleon/97273023d3b95fb62d28da6bec273aeb
2020-11-09 12:24:51 +0100 <merijn> maerwald: I meant the US/UK, but close enough :p
2020-11-09 12:24:58 +0100 <maerwald> And SG
2020-11-09 12:26:27 +0100 <kuribastard> beleon: don't, use a newtype and GeneralizedNewtypeDeriving instead
2020-11-09 12:26:38 +0100 <kuribastard> beleon: and mtl
2020-11-09 12:26:51 +0100 <kuribastard> beleon: it will give you all the instances for free
2020-11-09 12:27:07 +0100 <dminuoso> *cunning GeneralizedNewtypeDeriving
2020-11-09 12:27:22 +0100 <dminuoso> Every mention of the extension in documentation and diagnostics calls it cunning.
2020-11-09 12:27:25 +0100 <dminuoso> We should too. :>
2020-11-09 12:28:08 +0100 <beleon> hm, but how would the automated derivation know how to merge the ParserBoxInfo?
2020-11-09 12:28:14 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-09 12:28:28 +0100carlomagno1(~cararell@148.87.23.6)
2020-11-09 12:28:45 +0100 <dminuoso> beleon: You'd use <|> instead
2020-11-09 12:30:15 +0100AceNovo(~chris@184.101.220.149) (Read error: Connection reset by peer)
2020-11-09 12:30:29 +0100 <beleon> dminuoso: but wouldn't <|> also be derived?
2020-11-09 12:30:37 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2020-11-09 12:30:37 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus) (Read error: Connection reset by peer)
2020-11-09 12:30:37 +0100andreas31(~andreas@gateway/tor-sasl/andreas303) (Write error: Connection reset by peer)
2020-11-09 12:30:37 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Write error: Connection reset by peer)
2020-11-09 12:30:37 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Read error: Connection reset by peer)
2020-11-09 12:30:37 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Write error: Connection reset by peer)
2020-11-09 12:30:37 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Read error: Connection reset by peer)
2020-11-09 12:30:37 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Read error: Connection reset by peer)
2020-11-09 12:30:37 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Write error: Connection reset by peer)
2020-11-09 12:30:37 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Write error: Connection reset by peer)
2020-11-09 12:30:42 +0100 <dminuoso> Only if you GND Alternative
2020-11-09 12:31:28 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-11-09 12:31:31 +0100carlomagno(~cararell@148.87.23.13) (Ping timeout: 246 seconds)
2020-11-09 12:31:35 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-11-09 12:31:36 +0100sord937(~sord937@gateway/tor-sasl/sord937)
2020-11-09 12:31:41 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-11-09 12:31:42 +0100 <kuribastard> beleon: you can make your own monoid instance
2020-11-09 12:31:45 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-11-09 12:31:45 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2020-11-09 12:31:52 +0100 <beleon> right, so i'd simply define that myself and derive everything else?
2020-11-09 12:32:01 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-09 12:32:04 +0100hekkaidekapus(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-09 12:32:19 +0100cosimone_(~cosimone@5.171.26.80)
2020-11-09 12:32:26 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-09 12:32:32 +0100 <dminuoso> Sure
2020-11-09 12:32:54 +0100 <dminuoso> beleon: Right now your code is violating an implicit assumption:
2020-11-09 12:33:00 +0100 <dminuoso> Coherence between Applicative and Monad
2020-11-09 12:33:12 +0100 <dminuoso> (Because `ap` and `<*>` have conflicting definitoins)
2020-11-09 12:33:20 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr) (Read error: Connection reset by peer)
2020-11-09 12:34:00 +0100andreas31(~andreas@gateway/tor-sasl/andreas303)
2020-11-09 12:34:04 +0100 <dminuoso> So they implement different effects. That alone is reason enough to bury the "merging" behavior as you call it into Alternative instead (which is where we in fact place this behavior into)
2020-11-09 12:34:07 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr)
2020-11-09 12:35:23 +0100 <beleon> i see. will the derived monad instance automatically make use of the custom alternative instance?
2020-11-09 12:35:47 +0100drbean(~drbean@TC210-63-209-199.static.apol.com.tw)
2020-11-09 12:35:49 +0100 <dminuoso> No, the lattice looks a bit differnece
2020-11-09 12:35:51 +0100 <dminuoso> Hold on
2020-11-09 12:36:22 +0100 <dminuoso> https://wiki.haskell.org/wikiupload/d/df/Typeclassopedia-diagram.png
2020-11-09 12:36:25 +0100 <maerwald> how reasonable is it to create a C API for your haskell library?
2020-11-09 12:36:28 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Ping timeout: 268 seconds)
2020-11-09 12:36:28 +0100cosimone_cosimone
2020-11-09 12:36:33 +0100 <idnar> dminuoso: is that like the _dreaded_ monomorphism restriction?
2020-11-09 12:36:41 +0100 <dminuoso> idnar: haha, sorta
2020-11-09 12:36:51 +0100 <dminuoso> beleon: As you can see, Alternative/MonadPlus are subclasses of Applicative/Monad respectively.
2020-11-09 12:37:05 +0100 <merijn> maerwald: It depends
2020-11-09 12:37:21 +0100 <maerwald> do we even have means to do so or will I have to write a C wrapper
2020-11-09 12:37:22 +0100 <dminuoso> So it's assumed there's coherence all along `Functor>Applicative>Monad` and there's coherence between `Alternative>MonadPlus`
2020-11-09 12:37:24 +0100 <merijn> maerwald: You'll have to link the RTS with final executable to
2020-11-09 12:37:32 +0100 <dminuoso> (By coherence I mean their implementations must agree)
2020-11-09 12:37:55 +0100 <merijn> maerwald: The current FFI can export Haskell symbols as C symbols just fine the same as importing
2020-11-09 12:38:07 +0100 <dminuoso> So if you GND only up until Monad, you dont get Alternative/MonadPlus
2020-11-09 12:38:26 +0100 <merijn> maerwald: If you wanna include it as standalone library into a C executable you need a bit of boilerplate to setup the RTS, but it's pretty straightforward
2020-11-09 12:39:02 +0100 <merijn> maerwald: I made a minimal example of having a C entry point with Haskell code: https://gist.github.com/merijn/4a0fee2b3a5ef3476aa4
2020-11-09 12:39:21 +0100 <beleon> what does MonadPlus give me? So I would need custom instances for Alternative and MonadPlus that are coherend?
2020-11-09 12:39:42 +0100 <merijn> maerwald: If you wanna compile the C code independently of cabal you need to do a bit more work (figuring out how to link the RTS, for one), but it should be fairly straightforward (if annoying)
2020-11-09 12:40:49 +0100 <maerwald> so you can't create a real proper .so lib?
2020-11-09 12:40:54 +0100 <dminuoso> beleon: Nobody can really agree on what MonadPlus/Alternative really are in terms of laws..
2020-11-09 12:41:39 +0100 <merijn> maerwald: Define "real proper"
2020-11-09 12:41:56 +0100 <maerwald> it has all the symbols you need
2020-11-09 12:42:06 +0100 <dminuoso> beleon: https://gist.github.com/dminuoso/59aef9dfe15a5e9bed68850ffe6c6641
2020-11-09 12:42:11 +0100 <dminuoso> roughly you can imagine this relationship
2020-11-09 12:42:55 +0100 <merijn> maerwald: You can make a .so just fine, it just depends on 1) the RTS so you need to link that to I dunno if you can pre-link that into the package .so, but the RTS is just another .so, so... 2) any foreign code calling the lib needs to initialise the RTS + GC roots like the C code in that gist
2020-11-09 12:43:38 +0100 <merijn> maerwald: If you get a static copy of the RTS you can, presumably, link it into your .so to get a completely standalone .so, but I haven't tried that
2020-11-09 12:43:59 +0100 <beleon> dminuoso: right, i think i got it ... more or less :) thanks for the explanation
2020-11-09 12:44:02 +0100alp(~alp@2a01:e0a:58b:4920:6dd8:8351:ec1a:bc84) (Ping timeout: 246 seconds)
2020-11-09 12:44:12 +0100 <merijn> In general, I try to just get GHC to do the final link so I don't have to figure it out
2020-11-09 12:44:36 +0100 <merijn> But I don't see any theoretical problems, the only practical problem is "figuring out the exact linker flags"
2020-11-09 12:44:48 +0100 <merijn> I vaguely recall monochrom having a post about this
2020-11-09 12:45:34 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 12:45:37 +0100 <dminuoso> beleon: As a random example about laws, you might think `empty <*> m = empty` holds
2020-11-09 12:45:42 +0100 <dminuoso> But Backwards puts a nail into that one
2020-11-09 12:46:14 +0100Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-11-09 12:46:16 +0100 <merijn> maerwald: https://www.vex.net/~trebla/haskell/so.xhtml
2020-11-09 12:46:42 +0100Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-11-09 12:46:54 +0100alp(~alp@88.126.45.36)
2020-11-09 12:46:57 +0100 <merijn> maerwald: oh, looks like cabal 2.0+ have explicit support for it too
2020-11-09 12:47:16 +0100aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net) (Ping timeout: 246 seconds)
2020-11-09 12:49:39 +0100fntastic(5f5ac942@ip5f5ac942.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2020-11-09 12:50:23 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds)
2020-11-09 12:50:30 +0100hackagerestartable 0.1.0.0 - Minimal live coding library for model-view-event-update applications. https://hackage.haskell.org/package/restartable-0.1.0.0 (MichalGajda)
2020-11-09 12:50:53 +0100 <maerwald> interesting
2020-11-09 12:53:26 +0100 <Squarism> tomsmeding, maybe a stupid question, but how would that recursive function look?
2020-11-09 12:53:55 +0100 <beleon> dminuoso: hm, the compiler complains: newtype ParserBox a = ParserBox (ParserBoxInfo, (Either String (Parser a))) deriving (Functor, Applicative, Monad): Can't make a derived instance of ‘Functor ParserBox’ (even with cunning GeneralizedNewtypeDeriving), any idea why?
2020-11-09 12:54:18 +0100 <dminuoso> beleon: Ah yes.
2020-11-09 12:55:10 +0100 <Squarism> tomsmeding, forget it. Its obviously starts with the root.
2020-11-09 12:55:11 +0100 <dminuoso> beleon: You could if ParserBoxInfo was a monoid...
2020-11-09 12:55:24 +0100 <dminuoso> Though.. its hung on Functor already mmm
2020-11-09 12:56:09 +0100 <dminuoso> beleon: Try using `ExceptT String Parser A` instead?
2020-11-09 12:57:23 +0100kish`(~oracle@unaffiliated/oracle)
2020-11-09 12:57:31 +0100 <dminuoso> beleon: Functor at least can be derived with DeriveFunctor :P
2020-11-09 12:57:32 +0100unknown(~unknown@84.39.117.57) (Remote host closed the connection)
2020-11-09 12:58:15 +0100invaser1(~Thunderbi@31.148.23.125)
2020-11-09 12:58:20 +0100invaser(~Thunderbi@128-124-156-208.mobile.vf-ua.net) (Read error: Connection reset by peer)
2020-11-09 12:58:20 +0100invaser1invaser
2020-11-09 12:59:25 +0100kish(~oracle@unaffiliated/oracle) (Ping timeout: 240 seconds)
2020-11-09 13:00:46 +0100 <beleon> dminuoso: nah, can't get past functor (using DeriveFunctor) with ExceptT
2020-11-09 13:00:58 +0100Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Ping timeout: 265 seconds)
2020-11-09 13:02:23 +0100 <beleon> but i could add Monoid instance for ParserBoxInfo. Would that help?
2020-11-09 13:06:45 +0100Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-11-09 13:08:08 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2020-11-09 13:09:42 +0100Lycurgus(~niemand@98.4.97.118)
2020-11-09 13:10:11 +0100 <absence> does anyone know what the status of ghc 9 is? the web site suggests release candidate was more than a month ago, but that seems inaccurate as the latest available download is alpha
2020-11-09 13:10:31 +0100 <merijn> "the web site" = ?
2020-11-09 13:10:44 +0100 <tomsmeding> Squarism: :)
2020-11-09 13:10:52 +0100 <absence> merijn: the status page on gitlab
2020-11-09 13:11:04 +0100 <absence> https://gitlab.haskell.org/ghc/ghc/-/wikis/status/ghc-9.0.1
2020-11-09 13:11:55 +0100 <merijn> absence: Anyhoo, the best way to stay up to date is to just subscribe to the ghc-devs mailing list
2020-11-09 13:12:44 +0100mmohammadi9812(~mmohammad@5.238.175.25) (Quit: Quit)
2020-11-09 13:13:01 +0100mmohammadi9812(~mmohammad@5.238.175.25)
2020-11-09 13:13:02 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr) (Quit: Konversation terminated!)
2020-11-09 13:13:16 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr)
2020-11-09 13:15:01 +0100 <absence> merijn: yes, i did check the archive, but only found the alpha announcement
2020-11-09 13:17:07 +0100Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net) (Remote host closed the connection)
2020-11-09 13:17:12 +0100cr0ssw1nd(~crosswind@78.162.46.6)
2020-11-09 13:17:39 +0100v_m_v(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Remote host closed the connection)
2020-11-09 13:17:57 +0100v_m_v(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a)
2020-11-09 13:18:08 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-11-09 13:18:56 +0100TMA(tma@twin.jikos.cz) (Ping timeout: 256 seconds)
2020-11-09 13:19:42 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
2020-11-09 13:20:32 +0100benjamingr__(uid23465@gateway/web/irccloud.com/x-jujlikfcmwauxivg)
2020-11-09 13:21:01 +0100fendor_(~fendor@178.165.129.0.wireless.dyn.drei.com)
2020-11-09 13:21:18 +0100fendor(~fendor@77.119.131.87.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
2020-11-09 13:22:50 +0100v_m_v(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Ping timeout: 264 seconds)
2020-11-09 13:23:57 +0100beleon(~beleon@2a02:810c:4cc0:c8b:50e2:68a8:c1e:3f7f) (Quit: WeeChat 2.9)
2020-11-09 13:26:00 +0100 <cr0ssw1nd> why Debug.Trace.traceStack could truncate stacktraces?
2020-11-09 13:26:32 +0100 <cr0ssw1nd> I built and ran my server (uses Servant framework) in profiling mode
2020-11-09 13:26:42 +0100Deide(~Deide@217.155.19.23)
2020-11-09 13:26:48 +0100 <cr0ssw1nd> but when I do traceStack, I get only this:
2020-11-09 13:26:48 +0100 <cr0ssw1nd> 2020-11-06T19:02:09.179431846Z CallStack (from -prof):
2020-11-09 13:26:49 +0100 <cr0ssw1nd> 2020-11-06T19:02:09.179447969Z Galley.API.Update.handleOtrResponse (src/Galley/API/Update.hs:(957,1)-(961,48))
2020-11-09 13:26:49 +0100 <cr0ssw1nd> 2020-11-06T19:02:09.179457081Z Galley.API.Update.CAF:eta2_r5zv4 (<no location info>)
2020-11-09 13:27:07 +0100 <Feuermagier> how do I get from a [char] to Data.Text.Internal.Text?
2020-11-09 13:27:42 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2020-11-09 13:28:03 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-11-09 13:28:58 +0100adm_(~adm@43.229.88.236)
2020-11-09 13:29:28 +0100 <tdammers> Feuermagier: assuming you mean [Char]: `Data.Text.pack`
2020-11-09 13:29:46 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-09 13:29:47 +0100 <tdammers> https://hackage.haskell.org/package/text-1.2.4.0/docs/Data-Text.html#g:6 documentamatation
2020-11-09 13:31:45 +0100cfricke(~cfricke@unaffiliated/cfricke) (Client Quit)
2020-11-09 13:32:59 +0100 <Feuermagier> tdammers, I'm unsure; the compiler says [Char]
2020-11-09 13:33:10 +0100 <Feuermagier> * Couldn't match expected type `Data.Text.Internal.Text'
2020-11-09 13:33:10 +0100 <Feuermagier> with actual type `[Char]'
2020-11-09 13:33:45 +0100xikeon(~michael@i226028.upc-i.chello.nl)
2020-11-09 13:34:03 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 13:34:41 +0100 <Feuermagier> If I unpack, I get a String out of the [Char]
2020-11-09 13:34:49 +0100 <Feuermagier> but still not a Text
2020-11-09 13:36:44 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Ping timeout: 258 seconds)
2020-11-09 13:37:47 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-09 13:38:01 +0100hackagerestartable 0.2.0.0 - Minimal live coding library for model-view-event-update applications. https://hackage.haskell.org/package/restartable-0.2.0.0 (MichalGajda)
2020-11-09 13:38:04 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be)
2020-11-09 13:38:50 +0100 <absence> Feuermagier: use pack, not unpack (or enable the OverloadedStrings language extension)
2020-11-09 13:39:08 +0100 <absence> (if it's a string literal that is)
2020-11-09 13:40:42 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke)
2020-11-09 13:40:45 +0100 <tdammers> Feuermagier: [Char] and String are literally the same thing (String is a type alias for [Char])
2020-11-09 13:41:00 +0100toorevitimirp(~tooreviti@117.182.180.38) (Remote host closed the connection)
2020-11-09 13:41:29 +0100kritzefitz(~kritzefit@fw-front.credativ.com)
2020-11-09 13:41:33 +0100cfricke(cfricke@gateway/vpn/mullvad/cfricke) (Client Quit)
2020-11-09 13:41:35 +0100toorevitimirp(~tooreviti@117.182.180.38)
2020-11-09 13:41:36 +0100 <tdammers> if you have a Text but want a String, use `unpack`; in the other direction, use `pack`
2020-11-09 13:41:50 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-09 13:43:10 +0100TMA(tma@twin.jikos.cz)
2020-11-09 13:43:18 +0100jakob_(~textual@p200300f49f16220061868217aabcc5ae.dip0.t-ipconnect.de)
2020-11-09 13:46:39 +0100__skn(~sunil@2001:19f0:5:701:5400:ff:fe7c:4e5c) ("rcirc on GNU Emacs 28.0.50")
2020-11-09 13:47:50 +0100_ashbreeze_(~mark@72-161-252-32.dyn.centurytel.net) (Remote host closed the connection)
2020-11-09 13:49:07 +0100_ashbreeze_(~mark@72-161-252-32.dyn.centurytel.net)
2020-11-09 13:49:36 +0100knupfer(~Thunderbi@dynamic-046-114-148-248.46.114.pool.telefonica.de)
2020-11-09 13:49:37 +0100knupfer(~Thunderbi@dynamic-046-114-148-248.46.114.pool.telefonica.de) (Client Quit)
2020-11-09 13:49:56 +0100knupfer(~Thunderbi@dynamic-046-114-148-248.46.114.pool.telefonica.de)
2020-11-09 13:51:32 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2020-11-09 13:52:15 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-11-09 13:53:25 +0100texasmynsted(~texasmyns@64.44.55.28)
2020-11-09 13:55:04 +0100machinedgod(~machinedg@24.105.81.50)
2020-11-09 13:55:05 +0100texasmynsted(~texasmyns@64.44.55.28) (Read error: Connection reset by peer)
2020-11-09 13:55:07 +0100Rcsprinter(~Rcsprinte@178.162.209.171)
2020-11-09 13:55:52 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2020-11-09 13:56:17 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Remote host closed the connection)
2020-11-09 13:56:33 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-11-09 13:56:57 +0100iqubic`(~user@2601:602:9500:4870:f97f:76da:55:8502)
2020-11-09 13:57:12 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2020-11-09 13:57:20 +0100Redrum020(~crack020@public-nat-08.vpngate.v4.open.ad.jp)
2020-11-09 13:57:38 +0100 <Redrum020> halo
2020-11-09 13:57:58 +0100toorevitimirp(~tooreviti@117.182.180.38) (Remote host closed the connection)
2020-11-09 13:58:25 +0100toorevitimirp(~tooreviti@117.182.180.38)
2020-11-09 13:59:31 +0100 <Redrum020> someone herE?
2020-11-09 14:00:04 +0100 <Redrum020> ?
2020-11-09 14:00:07 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-11-09 14:00:24 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-09 14:01:12 +0100urodna(~urodna@unaffiliated/urodna)
2020-11-09 14:01:17 +0100iqubic(~user@2601:602:9500:4870:fd55:a12e:3595:eb89) (Ping timeout: 260 seconds)
2020-11-09 14:01:51 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 14:04:33 +0100chaosmasttter(~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-11-09 14:04:45 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 14:04:46 +0100 <cr0ssw1nd> is there any relation between SCC annotation and call stack generated by `traceStack` ?
2020-11-09 14:05:03 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds)
2020-11-09 14:05:29 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100)
2020-11-09 14:09:01 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr) (Ping timeout: 256 seconds)
2020-11-09 14:09:56 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-09 14:11:54 +0100texasmynsted(~texasmyns@64.44.55.28)
2020-11-09 14:14:21 +0100bennofs1(~benno@dslb-094-222-044-018.094.222.pools.vodafone-ip.de)
2020-11-09 14:15:09 +0100 <tomsmeding> cr0ssw1nd: did you compile with -fprof-auto?
2020-11-09 14:15:41 +0100 <tomsmeding> (I believe stack and cabal do that when you enable profiling using their usual interface)
2020-11-09 14:16:37 +0100 <cr0ssw1nd> tomsmeding, yeah, I added --profile to stack
2020-11-09 14:16:53 +0100 <cr0ssw1nd> there is stack trace when I put it in another places
2020-11-09 14:17:13 +0100 <cr0ssw1nd> and technically in that place it is also stacktrace, just really short one
2020-11-09 14:17:55 +0100adm_(~adm@43.229.88.236)
2020-11-09 14:18:24 +0100 <cr0ssw1nd> I am meditating on this piece of docs right now: https://www.taran.space/tmp/lenovo-fedora-20201109-141414-140279452.png
2020-11-09 14:18:50 +0100 <cr0ssw1nd> from here https://downloads.haskell.org/~ghc/7.6.3/docs/html/users_guide/profiling.html
2020-11-09 14:19:51 +0100 <merijn> uh
2020-11-09 14:20:07 +0100 <merijn> Probably browse to some newer version of the guide?
2020-11-09 14:20:14 +0100 <merijn> 7.6.3 is ancient xD
2020-11-09 14:20:20 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-09 14:20:27 +0100texasmynsted(~texasmyns@64.44.55.28) (Remote host closed the connection)
2020-11-09 14:21:11 +0100 <merijn> (that's unrelated to your question, but 7.6.3 is like a decade old...)
2020-11-09 14:21:30 +0100hackagerestartable 0.3.0.0 - Minimal live coding library for model-view-event-update applications. https://hackage.haskell.org/package/restartable-0.3.0.0 (MichalGajda)
2020-11-09 14:21:32 +0100 <cr0ssw1nd> oh
2020-11-09 14:21:42 +0100 <cr0ssw1nd> yeah, I haven't noticed, thanks
2020-11-09 14:22:02 +0100 <cr0ssw1nd> actually I am thinking now that "HasDebugCallStack" could be related
2020-11-09 14:24:01 +0100aveltras(uid364989@gateway/web/irccloud.com/x-vhqkaobhwknqfuji)
2020-11-09 14:24:53 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 14:25:23 +0100cosimone(~cosimone@5.171.26.80) (Read error: Connection reset by peer)
2020-11-09 14:29:33 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 14:30:51 +0100invaser1(~Thunderbi@31.148.23.125)
2020-11-09 14:31:21 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 265 seconds)
2020-11-09 14:31:21 +0100invaser1invaser
2020-11-09 14:32:11 +0100ph88(~ph88@ip5f5af72e.dynamic.kabel-deutschland.de)
2020-11-09 14:32:30 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com)
2020-11-09 14:32:36 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 14:33:30 +0100sh9(~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 2.8)
2020-11-09 14:35:22 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2020-11-09 14:38:00 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-09 14:38:32 +0100chaosmasttter(~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de)
2020-11-09 14:42:10 +0100christo(~chris@81.96.113.213)
2020-11-09 14:42:11 +0100knupfer(~Thunderbi@dynamic-046-114-148-248.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
2020-11-09 14:42:49 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Ping timeout: 264 seconds)
2020-11-09 14:43:32 +0100xikeon(~michael@i226028.upc-i.chello.nl) ("WeeChat 2.8")
2020-11-09 14:45:21 +0100drbean(~drbean@TC210-63-209-199.static.apol.com.tw) (Ping timeout: 268 seconds)
2020-11-09 14:45:34 +0100son0p(~son0p@181.136.122.143)
2020-11-09 14:49:25 +0100Iceland_jack(~user@95.149.219.123)
2020-11-09 14:50:37 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-09 14:54:13 +0100sQVe(~sQVe@unaffiliated/sqve)
2020-11-09 14:54:53 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-09 14:54:55 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100)
2020-11-09 14:56:27 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-09 14:56:50 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a17b:c481:d5f1:9100) (Client Quit)
2020-11-09 14:57:55 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-195-108.002.203.pools.vodafone-ip.de) (Remote host closed the connection)
2020-11-09 14:58:08 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-09 14:58:21 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-11-09 14:58:26 +0100Lowl3v3l(~Lowl3v3l@dslb-002-203-195-108.002.203.pools.vodafone-ip.de)
2020-11-09 14:59:43 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-09 15:00:22 +0100Franciman(~francesco@host-79-36-167-172.retail.telecomitalia.it) (Ping timeout: 256 seconds)
2020-11-09 15:00:32 +0100texasmynsted(~texasmyns@64.44.55.28)
2020-11-09 15:00:43 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f)
2020-11-09 15:01:14 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da)
2020-11-09 15:02:04 +0100apoc(~apoc@bridge.mattzq.com) (Ping timeout: 256 seconds)
2020-11-09 15:02:10 +0100texasmynsted(~texasmyns@64.44.55.28) (Read error: Connection reset by peer)
2020-11-09 15:02:12 +0100Franciman(~francesco@host-82-56-223-169.retail.telecomitalia.it)
2020-11-09 15:06:03 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 258 seconds)
2020-11-09 15:06:04 +0100apoc(~apoc@bridge.mattzq.com)
2020-11-09 15:07:17 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de)
2020-11-09 15:10:02 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer) (Remote host closed the connection)
2020-11-09 15:10:38 +0100Unhammer(~Unhammer@gateway/tor-sasl/unhammer)
2020-11-09 15:10:54 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 15:11:46 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be)
2020-11-09 15:12:10 +0100ambiso9(~ambiso@209.182.239.205) (Quit: The Lounge - https://thelounge.chat)
2020-11-09 15:12:11 +0100adm_(~adm@43.229.88.236)
2020-11-09 15:12:48 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be) (Client Quit)
2020-11-09 15:13:49 +0100ambiso9(~ambiso@209.182.239.205)
2020-11-09 15:15:02 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 264 seconds)
2020-11-09 15:15:20 +0100chaosmasttter(~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-11-09 15:17:22 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-11-09 15:17:26 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-11-09 15:19:11 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se)
2020-11-09 15:21:08 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 265 seconds)
2020-11-09 15:21:48 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 15:23:07 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-09 15:23:47 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-09 15:25:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 15:28:42 +0100apoc(~apoc@bridge.mattzq.com) (Ping timeout: 256 seconds)
2020-11-09 15:29:40 +0100Eugleo(5ab552b3@gateway/web/cgi-irc/kiwiirc.com/ip.90.181.82.179)
2020-11-09 15:30:07 +0100v_m_v(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a)
2020-11-09 15:30:12 +0100 <Eugleo> Hey fellow Haskellers! How do I properly convert from Pico to Scientific and back?
2020-11-09 15:30:48 +0100 <merijn> Depends on your definition of "proper"
2020-11-09 15:30:48 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 15:30:53 +0100 <merijn> But you probably want
2020-11-09 15:30:55 +0100 <dminuoso> unsafeCoerce?
2020-11-09 15:30:58 +0100 <merijn> :t realToFrac
2020-11-09 15:30:59 +0100 <lambdabot> (Real a, Fractional b) => a -> b
2020-11-09 15:31:03 +0100 <dminuoso> Both get you there!
2020-11-09 15:31:14 +0100 <merijn> :t realToFrac :: Pico -> Scientific
2020-11-09 15:31:15 +0100 <lambdabot> error:
2020-11-09 15:31:15 +0100 <lambdabot> Not in scope: type constructor or class ‘Scientific’
2020-11-09 15:31:23 +0100 <Eugleo> merijn: Thought it would. Thanks
2020-11-09 15:31:26 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-09 15:31:41 +0100 <Eugleo> Forgot that Scientific was Fractional
2020-11-09 15:32:09 +0100 <Eugleo> So I went Pico ->(realToFrac) Fractional ->(round) -> Integral ->(fromIntegral) Scientific
2020-11-09 15:32:20 +0100 <Eugleo> And "proper" is then anything better than this :-D
2020-11-09 15:32:28 +0100 <merijn> Yeah, that's weird
2020-11-09 15:32:44 +0100 <merijn> Scientific is an instance of Fractional, so you can do that directy
2020-11-09 15:33:59 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 15:35:08 +0100 <Eugleo> Ok, and how do I go back from Scientific to Pico? Never heard about fracToReal or somehting similar
2020-11-09 15:36:01 +0100 <dminuoso> % :t toRational
2020-11-09 15:36:01 +0100 <yahb> dminuoso: forall {a}. Real a => a -> Rational
2020-11-09 15:36:09 +0100 <dminuoso> Clearly.
2020-11-09 15:36:20 +0100 <merijn> Pico (aka Fixed) is an instance of Fractional to and Scientific is an instance of Real
2020-11-09 15:36:27 +0100 <dminuoso> oh
2020-11-09 15:36:29 +0100 <dminuoso> or just realToFrac again
2020-11-09 15:36:32 +0100 <merijn> So the way you go back is: also realToFrac
2020-11-09 15:36:57 +0100 <dminuoso> I just remember this: add fromIntegral and realToFrac until it compiels
2020-11-09 15:37:03 +0100 <dminuoso> Close your eyes, and just pretend there's no narrowing going on
2020-11-09 15:37:12 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 15:37:25 +0100darjeeling_(~darjeelin@122.245.210.126) (Ping timeout: 264 seconds)
2020-11-09 15:37:28 +0100 <Eugleo> dminuoso: Just added realToFrac to my arsenal. Was pretty surprised when fromIntegral didn't cut it
2020-11-09 15:37:39 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-09 15:37:43 +0100 <Eugleo> merijn: Thanks a lot
2020-11-09 15:37:48 +0100 <dminuoso> merijn: what was the library forsafe numeric conversions?
2020-11-09 15:37:48 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2020-11-09 15:38:12 +0100adm_(~adm@43.229.88.236)
2020-11-09 15:38:21 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-09 15:38:26 +0100sQVe(~sQVe@unaffiliated/sqve) (Quit: Bye!)
2020-11-09 15:38:34 +0100shatriff(~vitaliish@176.52.219.10)
2020-11-09 15:38:36 +0100 <dminuoso> Ah, it was int-cast https://hackage.haskell.org/package/int-cast-0.2.0.0/docs/Data-IntCast.html
2020-11-09 15:38:41 +0100christo(~chris@81.96.113.213)
2020-11-09 15:38:44 +0100raichoo(~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-11-09 15:39:20 +0100texasmynsted(~texasmyns@64.44.55.28)
2020-11-09 15:39:26 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Read error: Connection reset by peer)
2020-11-09 15:39:29 +0100apoc(~apoc@bridge.mattzq.com)
2020-11-09 15:39:32 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 15:39:45 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-09 15:40:36 +0100texasmynsted(~texasmyns@64.44.55.28) (Read error: Connection reset by peer)
2020-11-09 15:42:33 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-09 15:42:45 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-09 15:46:14 +0100Gurkenglas_(~Gurkengla@unaffiliated/gurkenglas)
2020-11-09 15:48:54 +0100Lycurgus(~niemand@98.4.97.118) (Quit: Exeunt)
2020-11-09 15:50:36 +0100darjeeling_(~darjeelin@122.245.210.116)
2020-11-09 15:51:13 +0100texasmynsted(~texasmyns@64.44.55.28)
2020-11-09 15:51:46 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 15:52:46 +0100adm_(~adm@43.229.88.236)
2020-11-09 15:53:51 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 15:56:35 +0100 <dminuoso> Mmm, there is no extension to allow *modifying* a field with a function, is there?
2020-11-09 15:57:41 +0100 <dminuoso> Something akin to %~ from lens
2020-11-09 16:00:01 +0100Rcsprinter(~Rcsprinte@178.162.209.171) ()
2020-11-09 16:03:46 +0100 <typetetris> I have overlapping instances and get an "two instances involving out-of-scope types" error. Can I ghc somehow convince to prefer the one, I am controlling?
2020-11-09 16:05:30 +0100hackageuusi 0.1.0.0 - Remove all version constraints of dependencies in .cabal file https://hackage.haskell.org/package/uusi-0.1.0.0 (berberman)
2020-11-09 16:05:43 +0100alp(~alp@88.126.45.36) (Ping timeout: 246 seconds)
2020-11-09 16:05:48 +0100 <Feuermagier> how do I split a tuple of two integers for a function that takes those two integers as parameters seperately?
2020-11-09 16:05:53 +0100Amras(~Amras@unaffiliated/amras0000)
2020-11-09 16:05:58 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 16:06:33 +0100 <dminuoso> % :t curry
2020-11-09 16:06:33 +0100 <yahb> dminuoso: forall {a} {b} {c}. ((a, b) -> c) -> a -> b -> c
2020-11-09 16:06:35 +0100 <dminuoso> % :t uncurry
2020-11-09 16:06:35 +0100 <yahb> dminuoso: forall {a} {b} {c}. (a -> b -> c) -> (a, b) -> c
2020-11-09 16:06:37 +0100 <dminuoso> Feuermagier: ^-
2020-11-09 16:06:40 +0100 <Feuermagier> thx!
2020-11-09 16:06:56 +0100 <dminuoso> typetetris: depends, can you share the code?
2020-11-09 16:07:20 +0100twopoint718(~cjw@fsf/member/twopoint718)
2020-11-09 16:07:58 +0100 <dminuoso> typetetris: Generally the solution is, newtype it.
2020-11-09 16:08:03 +0100zebrag(~inkbottle@aaubervilliers-654-1-93-172.w86-212.abo.wanadoo.fr)
2020-11-09 16:08:16 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 16:08:56 +0100inkbottle(~inkbottle@aaubervilliers-654-1-101-233.w86-212.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2020-11-09 16:09:19 +0100 <typetetris> dminuoso: It already worked now, had `cts` first instead of `(ct ':cts)`. Seems the Overlappable had `(ct ': cts)` instead of `cts`. https://www.irccloud.com/pastebin/GeBOy4jx/
2020-11-09 16:10:28 +0100 <dminuoso> typetetris: That looks interesting, what change are you making there?
2020-11-09 16:10:37 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 246 seconds)
2020-11-09 16:10:43 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-09 16:11:31 +0100machinedgod(~machinedg@207.253.244.210)
2020-11-09 16:11:34 +0100kupi(uid212005@gateway/web/irccloud.com/x-qdwmnzjhildlwlnh)
2020-11-09 16:11:54 +0100 <typetetris> `Verb 'POST 204 '[JSON] NoContent` produced docs claiming to have a response body of empty string. Looked odd, wanted to fix that. (Using servant-docs).
2020-11-09 16:12:17 +0100 <typetetris> That one could be replaced by PostNoContent, but if you need headers, it can't.
2020-11-09 16:12:19 +0100samlamamma(~user@h188-122-129-70.cust.a3fiber.se)
2020-11-09 16:13:09 +0100 <dminuoso> Haha, we have the same exact problem with servant + OpenAPI
2020-11-09 16:13:21 +0100 <dminuoso> Or rather, a similar
2020-11-09 16:13:23 +0100 <samlamamma> Is anyone here experienced with implementing structural type system?
2020-11-09 16:13:25 +0100v_m_v(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Remote host closed the connection)
2020-11-09 16:13:43 +0100v_m_v(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a)
2020-11-09 16:13:59 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-11-09 16:16:01 +0100 <dminuoso> typetetris: Oh! That could explain it, we should just use *NoContent instead.
2020-11-09 16:16:12 +0100 <dminuoso> That could get rid of a few weird instances :)
2020-11-09 16:16:20 +0100 <dminuoso> Cheers
2020-11-09 16:16:31 +0100 <typetetris> dminuoso: Doesn't work for me with Headers. I have endpoints with no response body but they set headers.
2020-11-09 16:17:10 +0100Tario(~Tario@198.252.153.28)
2020-11-09 16:17:51 +0100v_m_v(~vm_v@2a02:aa12:3200:6480:fc4f:fb56:796a:9a4a) (Ping timeout: 244 seconds)
2020-11-09 16:18:01 +0100 <typetetris> and trying to use `PostNoContent` on endpoints without headers gives me this ... https://www.irccloud.com/pastebin/GSgegDGy/
2020-11-09 16:18:09 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-09 16:18:38 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 264 seconds)
2020-11-09 16:20:24 +0100machinedgod(~machinedg@207.253.244.210) (Quit: Lost terminal)
2020-11-09 16:20:49 +0100 <gehmehgeh> What's the most idiomatic way to use threed dimesional arrays in Haskell? (Or 2x2 matrices for time being)?
2020-11-09 16:20:51 +0100stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-11-09 16:20:51 +0100 <gehmehgeh> *three
2020-11-09 16:20:52 +0100machinedgod(~machinedg@207.253.244.210)
2020-11-09 16:21:09 +0100stree(~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
2020-11-09 16:22:01 +0100ph88(~ph88@ip5f5af72e.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2020-11-09 16:22:28 +0100 <dminuoso> gehmehgeh: vector of vector
2020-11-09 16:22:36 +0100 <dminuoso> I guess?
2020-11-09 16:23:22 +0100 <dminuoso> All the usual suspects dont have support for multi dimensional matrices
2020-11-09 16:23:26 +0100 <bqv> will someone save me some searching
2020-11-09 16:23:56 +0100 <bqv> what's the lens operation i could use to get an element but also it's index
2020-11-09 16:24:02 +0100 <bqv> (index, element), or something
2020-11-09 16:24:10 +0100 <dminuoso> So vector of vector just means you cant have a convenient API of using a Vec3 as index
2020-11-09 16:24:32 +0100 <dminuoso> bqv: iview
2020-11-09 16:24:38 +0100 <dminuoso> But it requires an indexed optic of course
2020-11-09 16:24:52 +0100 <bqv> wonderful
2020-11-09 16:24:56 +0100 <bqv> ty
2020-11-09 16:25:07 +0100 <int-e> :t iview
2020-11-09 16:25:08 +0100 <lambdabot> MonadReader s m => IndexedGetting i (i, a) s a -> m (i, a)
2020-11-09 16:25:10 +0100 <int-e> :t withIndex
2020-11-09 16:25:12 +0100 <lambdabot> (Indexable i p, Functor f) => p (i, s) (f (j, t)) -> Indexed i s (f t)
2020-11-09 16:25:13 +0100 <int-e> hmm.
2020-11-09 16:25:51 +0100 <dminuoso> Or yeah that
2020-11-09 16:25:56 +0100 <dminuoso> % "foobar" ^.. ifolded.withIndex
2020-11-09 16:25:57 +0100 <yahb> dminuoso: [(0,'f'),(1,'o'),(2,'o'),(3,'b'),(4,'a'),(5,'r')]
2020-11-09 16:26:25 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-09 16:26:45 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 16:27:16 +0100 <dminuoso> Oh my
2020-11-09 16:27:25 +0100nados(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-09 16:27:30 +0100Stanley00(~stanley00@unaffiliated/stanley00)
2020-11-09 16:27:38 +0100bennofs1(~benno@dslb-094-222-044-018.094.222.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2020-11-09 16:27:42 +0100 <dminuoso> % :i IndexedFold
2020-11-09 16:27:43 +0100 <yahb> dminuoso: type role ReifiedIndexedFold nominal nominal nominal; type ReifiedIndexedFold :: * -> * -> * -> *; newtype ReifiedIndexedFold i s a = IndexedFold {...}; -- Defined in `Control.Lens.Reified'; type IndexedFold :: * -> * -> * -> *; type IndexedFold i s a = forall (p :: * -> * -> *) (f :: * -> *). (Indexable i p, Contravariant f, Applicative f) => p a (f a) -> s -> f s; -- Defined in `Control.Lens.Ty
2020-11-09 16:27:57 +0100Stanley00(~stanley00@unaffiliated/stanley00) (Client Quit)
2020-11-09 16:28:10 +0100 <dminuoso> iview through an IndexedFold, it's sad lens lets you do this :(
2020-11-09 16:31:06 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-09 16:33:05 +0100 <bqv> man lenses make my head hurt
2020-11-09 16:33:41 +0100 <bqv> why are people so twisted on monads when lenses are a thing
2020-11-09 16:34:52 +0100 <int-e> Because you can use Haskell without touching lenses, but you're kind of forced to use at least one monad on occasion?
2020-11-09 16:35:13 +0100 <bqv> yeah
2020-11-09 16:35:21 +0100 <int-e> Monads also have a longer history of being scary.
2020-11-09 16:35:22 +0100 <dminuoso> bqv: Also, if you find lenses a bit too hard to use, you can also try optics
2020-11-09 16:35:30 +0100 <dminuoso> It offers better readable types and much improved diagnostics
2020-11-09 16:35:49 +0100 <maerwald> and good documentation
2020-11-09 16:35:54 +0100 <bqv> any functional difference?
2020-11-09 16:35:56 +0100 <dminuoso> Part of what makes lens so harsh is that it leaks implementation details in types
2020-11-09 16:36:01 +0100 <maerwald> bqv: yes, some
2020-11-09 16:36:13 +0100 <bqv> hm
2020-11-09 16:36:13 +0100 <dminuoso> bqv: It's a bit safer and doesn't allow some things, also it's missing a few parts left and right
2020-11-09 16:36:15 +0100adm_(~adm@43.229.88.236)
2020-11-09 16:36:18 +0100 <dminuoso> Overall it's mostly a drop in replacement
2020-11-09 16:36:25 +0100toorevitimirp(~tooreviti@117.182.180.38) (Remote host closed the connection)
2020-11-09 16:36:27 +0100 <dminuoso> (modulo replacing . with %, and unsafe combinators)
2020-11-09 16:36:48 +0100 <bqv> fair enough
2020-11-09 16:36:48 +0100 <dminuoso> for example, optics doesnt allow you to `view` through a fold
2020-11-09 16:37:06 +0100 <int-e> . o O ( please describe lens in a sentence )
2020-11-09 16:37:06 +0100ystael(~ystael@209.6.50.55) (Quit: Lost terminal)
2020-11-09 16:37:56 +0100 <bqv> something something coalgebras costate comonad...
2020-11-09 16:38:00 +0100 <dminuoso> "First class selectors for dealing with nested data, like css-selector/xpath"
2020-11-09 16:38:56 +0100 <gehmehgeh> dminuoso: hmm, so how would implement something as simply as an array 10x10 array? That is 100 elemnts, selectable by coordinates (x,y) such that x and y are in {0,9} ?
2020-11-09 16:39:00 +0100 <gehmehgeh> *simple
2020-11-09 16:39:13 +0100samlamamma(~user@h188-122-129-70.cust.a3fiber.se) (Ping timeout: 264 seconds)
2020-11-09 16:39:15 +0100 <dminuoso> gehmehgeh: By writing your own index functions
2020-11-09 16:39:17 +0100 <gehmehgeh> still Vector of VEctor?
2020-11-09 16:39:20 +0100 <dminuoso> Yes.
2020-11-09 16:39:20 +0100 <gehmehgeh> hm
2020-11-09 16:39:23 +0100 <gehmehgeh> ok
2020-11-09 16:39:25 +0100 <gehmehgeh> will do. Thanks
2020-11-09 16:39:27 +0100ystael(~ystael@209.6.50.55)
2020-11-09 16:39:30 +0100 <dminuoso> For just a matrix, you could use any of the matrix libraires instead too
2020-11-09 16:39:50 +0100 <dminuoso> like hmatrix if you want a BLAS/LAPACK backed matrix
2020-11-09 16:40:04 +0100 <gehmehgeh> hmmm
2020-11-09 16:40:19 +0100pjb(~t@2a01cb04063ec50070ecdd787f2214a5.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-11-09 16:40:25 +0100 <dminuoso> For higher dimensional tensors, it depends. Do you need this with dynamic/arbitrary dimensions?
2020-11-09 16:40:28 +0100 <dminuoso> Or just fixed 3d?
2020-11-09 16:41:29 +0100 <gehmehgeh> At the moment, I'm just experimenting
2020-11-09 16:42:06 +0100 <gehmehgeh> I was thinking about a fixed 10x10 matrix for now, though
2020-11-09 16:42:33 +0100 <dminuoso> bqv: "coalgebras of the costate comonad" is not just a joke, it's also a sad truth of lens. There's of course folks like edwardk who like being directly exposed to the internals of optics, others like me are not fond of having to decode failed constraints into "what optic did I build, what optic is expected" left and right.
2020-11-09 16:43:27 +0100 <bqv> i thought i saw a ghc plugin somewhere that improved the errors a bit
2020-11-09 16:43:42 +0100 <bqv> maybe i just saw the optics library you mentioned
2020-11-09 16:43:42 +0100 <dminuoso> That's the thing, you can do this in all (ghc-extended) haskell without plugins
2020-11-09 16:43:52 +0100 <bqv> hm
2020-11-09 16:43:53 +0100 <dminuoso> optics uses just the standard ghc facilities
2020-11-09 16:44:20 +0100 <dminuoso> • A_Fold cannot be used as A_Getter
2020-11-09 16:44:52 +0100da39a3ee5e6b4b0d(~textual@cm-171-98-71-231.revip7.asianet.co.th)
2020-11-09 16:45:03 +0100 <dminuoso> * No instance for (Monoid Int) arising from a use of `folded'
2020-11-09 16:45:20 +0100da39a3ee5e6b4b0d(~textual@cm-171-98-71-231.revip7.asianet.co.th) (Client Quit)
2020-11-09 16:45:46 +0100 <dminuoso> I'll take the former over the latter
2020-11-09 16:46:26 +0100 <dminuoso> Also, with optics you can just say `f % g :: _` and let GHC infer the type for you. And it wont give you some constraint algebra you have to do in your head, but straight up tell you
2020-11-09 16:46:26 +0100Tario(~Tario@198.252.153.28) (Read error: Connection reset by peer)
2020-11-09 16:46:31 +0100 <dminuoso> "This is an AffineTraversal"
2020-11-09 16:46:46 +0100 <dminuoso> (Okay bad example, since lens cant represent affine traversals)
2020-11-09 16:47:01 +0100 <bqv> to be honest, i am rather interested in the implementation details anyway, so i'm not against the arcane type signatures
2020-11-09 16:47:15 +0100 <bqv> but it does obviously make debugging basically black magic until i'm a master of profunctors
2020-11-09 16:48:06 +0100 <dminuoso> btw, lens already does a mixed van laarhoven/profunctor implementation
2020-11-09 16:48:25 +0100 <dminuoso> the implementation of optics is not more complicated than that of lens, really
2020-11-09 16:48:48 +0100 <dminuoso> (I guess much of the weirdnesses of lens are about generalization and performance)
2020-11-09 16:48:55 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-11-09 16:49:02 +0100 <dminuoso> and very opaque naming
2020-11-09 16:49:48 +0100 <dminuoso> Dont get me wrong, I dont have any fundamental problems with lens, but I like not having to decipher type errors. :)
2020-11-09 16:49:53 +0100 <dminuoso> And I like type inference being on my side
2020-11-09 16:49:57 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com) (Ping timeout: 256 seconds)
2020-11-09 16:50:41 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-09 16:50:43 +0100 <bqv> isn't there a lot of stuff that's targeted at compatibility with lens specifically - would those translate?
2020-11-09 16:50:46 +0100bliminse(~bliminse@host109-156-197-211.range109-156.btcentralplus.com)
2020-11-09 16:51:05 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-09 16:51:25 +0100 <dminuoso> Well you can translate lenses from VL to optics forth and back
2020-11-09 16:51:45 +0100 <dminuoso> at least some
2020-11-09 16:51:59 +0100bqv. o O ( lens isos? )
2020-11-09 16:52:11 +0100 <dminuoso> Or.. well one direction anyway
2020-11-09 16:52:13 +0100 <dminuoso> foldVL :: (forall f. Applicative f => (a -> f u) -> s -> f v) -> Fold s a
2020-11-09 16:52:15 +0100 <dminuoso> e.g.
2020-11-09 16:52:17 +0100iqubic`(~user@2601:602:9500:4870:f97f:76da:55:8502) ("ERC (IRC client for Emacs 28.0.50)")
2020-11-09 16:52:30 +0100 <dminuoso> traversalVL :: TraversalVL s t a b -> Traversal s t a b
2020-11-09 16:53:07 +0100alp(~alp@88.126.45.36)
2020-11-09 16:53:18 +0100 <dminuoso> It would be kind of nice if such packages were written with backpack to have switchable optics implementation
2020-11-09 16:53:38 +0100 <bqv> yeah..
2020-11-09 16:53:49 +0100 <gtk> what is the file extension for Happy grammer file?
2020-11-09 16:54:49 +0100 <dminuoso> bqv: But honestly, if you write a library, I'd be careful not to expose lenses as part of the main package
2020-11-09 16:55:09 +0100 <dminuoso> If you wanted to do this at all, try and make a `lib-lenses` package instead, that way someone else can make `lib-optics` too if they desired
2020-11-09 16:55:24 +0100 <dminuoso> And users who dont want to drag in the transitive dependencies can use it without lens/optics
2020-11-09 16:55:31 +0100 <bqv> oh, huh. ok
2020-11-09 16:56:40 +0100petersen(~petersen@redhat/juhp)
2020-11-09 16:57:19 +0100 <idnar> dminuoso: one nice thing about `lens` is that you don't need to depend on it to export lenses
2020-11-09 16:57:56 +0100 <dminuoso> idnar: otoh optics-core is very light on dependencies
2020-11-09 16:57:57 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
2020-11-09 16:58:16 +0100 <dminuoso> (microlens otoh can be too small)
2020-11-09 17:01:00 +0100Tario(~Tario@198.252.153.28)
2020-11-09 17:02:44 +0100pjb(~t@2a01cb04063ec50054866239aff0100c.ipv6.abo.wanadoo.fr)
2020-11-09 17:02:48 +0100Tario(~Tario@198.252.153.28) (Read error: Connection reset by peer)
2020-11-09 17:04:13 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr)
2020-11-09 17:04:15 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-09 17:04:44 +0100acidjnk_new2(~acidjnk@p200300d0c718f646f97e112dfc4bc61a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-11-09 17:05:24 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2020-11-09 17:06:51 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 17:08:03 +0100machinedgod(~machinedg@207.253.244.210) (Quit: Lost terminal)
2020-11-09 17:08:53 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be)
2020-11-09 17:09:43 +0100adm_(~adm@43.229.88.236)
2020-11-09 17:09:54 +0100machinedgod(~machinedg@207.253.244.210)
2020-11-09 17:12:25 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr) (Quit: Konversation terminated!)
2020-11-09 17:12:41 +0100tsaka__(~torstein@ppp-2-84-29-23.home.otenet.gr)
2020-11-09 17:13:40 +0100aveltras(uid364989@gateway/web/irccloud.com/x-vhqkaobhwknqfuji) (Quit: Connection closed for inactivity)
2020-11-09 17:14:08 +0100christo(~chris@81.96.113.213)
2020-11-09 17:14:40 +0100logo4poop(~logo4poop@leagueh.xyz) ()
2020-11-09 17:15:19 +0100ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net)
2020-11-09 17:15:24 +0100ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net) (Changing host)
2020-11-09 17:15:24 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-11-09 17:15:45 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-11-09 17:19:51 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-bxfwtutsrfijbzma)
2020-11-09 17:23:03 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Quit: This computer has gone to sleep)
2020-11-09 17:23:13 +0100knupfer(~Thunderbi@200116b82c4b6a00881040fffe4181bd.dip.versatel-1u1.de)
2020-11-09 17:23:47 +0100knupfer(~Thunderbi@200116b82c4b6a00881040fffe4181bd.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-09 17:24:00 +0100knupfer(~Thunderbi@200116b82c4b6a00c4d1ff5d8f844e90.dip.versatel-1u1.de)
2020-11-09 17:27:29 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-kmqwoegoouyrgklt)
2020-11-09 17:30:00 +0100GsC_RuL3Z(~GsC_RuL3Z@185.163.110.116)
2020-11-09 17:30:04 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 246 seconds)
2020-11-09 17:30:19 +0100 <tomsmeding> gtk: seems to be .y https://github.com/simonmar/happy/blob/master/tests/issue91.y
2020-11-09 17:31:25 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-11-09 17:31:36 +0100raichoo(~raichoo@dslb-188-100-006-110.188.100.pools.vodafone-ip.de)
2020-11-09 17:35:36 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f)
2020-11-09 17:36:05 +0100 <bqv> in a single haskell file you can have execution going left to right, right to left, top to bottom... but can it go bottom to top?
2020-11-09 17:36:07 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 17:37:15 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Client Quit)
2020-11-09 17:38:31 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com)
2020-11-09 17:39:22 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2020-11-09 17:39:54 +0100 <tomsmeding> bqv: if you can have it right-to-left, you can always add newlines
2020-11-09 17:40:18 +0100 <bqv> oh no
2020-11-09 17:40:35 +0100 <tomsmeding> also https://hackage.haskell.org/package/rev-state
2020-11-09 17:40:51 +0100 <cr0ssw1nd> what is "(a -> b)" in "myFunction (a -> b) arg1 arg2 arg3" = something" ?
2020-11-09 17:40:56 +0100isBEKaml(~isBEKaml@unaffiliated/isbekaml)
2020-11-09 17:41:02 +0100 <cr0ssw1nd> never have seen this syntax before
2020-11-09 17:41:08 +0100 <merijn> ViewPattern, probably?
2020-11-09 17:41:19 +0100 <tomsmeding> ViewPatterns
2020-11-09 17:41:36 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-09 17:41:57 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be) (Quit: WeeChat 2.9)
2020-11-09 17:42:11 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be)
2020-11-09 17:42:43 +0100 <cr0ssw1nd> thank you
2020-11-09 17:43:52 +0100Tario(~Tario@201.192.165.173)
2020-11-09 17:44:04 +0100 <Uniaika> §22
2020-11-09 17:44:22 +0100son0p(~son0p@181.136.122.143) (Ping timeout: 258 seconds)
2020-11-09 17:44:43 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-09 17:45:41 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2020-11-09 17:45:57 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d)
2020-11-09 17:47:21 +0100isBEKaml(~isBEKaml@unaffiliated/isbekaml) (Quit: leaving)
2020-11-09 17:47:26 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-09 17:47:55 +0100grimgnr(~user@94.19.246.43)
2020-11-09 17:48:13 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 264 seconds)
2020-11-09 17:50:23 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-09 17:50:24 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-09 17:50:32 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit)
2020-11-09 17:52:03 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 17:53:29 +0100chaosmasttter(~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de)
2020-11-09 17:56:44 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-11-09 17:57:05 +0100mu_(~mu@unaffiliated/mu)
2020-11-09 17:57:19 +0100twopoint718(~cjw@fsf/member/twopoint718) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 17:57:50 +0100mu_mu
2020-11-09 18:00:34 +0100conal(~conal@64.71.133.70)
2020-11-09 18:01:24 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection)
2020-11-09 18:01:35 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 18:01:36 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection)
2020-11-09 18:01:55 +0100jespada(~jespada@90.254.245.49) (Ping timeout: 256 seconds)
2020-11-09 18:02:28 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 18:04:00 +0100jespada(~jespada@90.254.245.49)
2020-11-09 18:04:03 +0100kuribastardkuribas
2020-11-09 18:05:03 +0100kuribas(~user@ptr-25vy0i8zs545blh2070.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-11-09 18:05:23 +0100conal(~conal@64.71.133.70) (Ping timeout: 260 seconds)
2020-11-09 18:05:28 +0100kuribas(~user@ptr-25vy0i8zs545blh2070.18120a2.ip6.access.telenet.be)
2020-11-09 18:05:37 +0100kish`(~oracle@unaffiliated/oracle) (Remote host closed the connection)
2020-11-09 18:05:55 +0100twopoint718(~cjw@fsf/member/twopoint718)
2020-11-09 18:06:48 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 18:07:01 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 256 seconds)
2020-11-09 18:07:02 +0100kish(~oracle@unaffiliated/oracle)
2020-11-09 18:07:24 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-09 18:10:10 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com)
2020-11-09 18:11:37 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 264 seconds)
2020-11-09 18:11:38 +0100kritzefitz(~kritzefit@fw-front.credativ.com) (Remote host closed the connection)
2020-11-09 18:14:05 +0100Amras(~Amras@unaffiliated/amras0000) (Ping timeout: 246 seconds)
2020-11-09 18:14:15 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-09 18:15:39 +0100befuddled(~befuddled@49.207.208.95) (Quit: Textual IRC Client: www.textualapp.com)
2020-11-09 18:16:00 +0100howdoi(uid224@gateway/web/irccloud.com/x-khfppfglbovlyqve)
2020-11-09 18:16:50 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-09 18:17:38 +0100 <sm[m]> bqv: heh.. can it go diagonally ? in a spiral ?
2020-11-09 18:17:39 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-09 18:18:03 +0100 <bqv> These are the real questions
2020-11-09 18:20:01 +0100cr0ssw1nd(~crosswind@78.162.46.6) (Quit: Leaving)
2020-11-09 18:24:14 +0100conal(~conal@64.71.133.70)
2020-11-09 18:24:15 +0100 <geekosaur> it goes in whatever direction gets the job done. Haskell has an entry point like C/C++ ("main") rather than top-to-bottom like Python
2020-11-09 18:24:47 +0100 <tomsmeding> diagonal? https://paste.tomsmeding.com/DN6jjjhM
2020-11-09 18:25:00 +0100 <tomsmeding> we can do diagonal
2020-11-09 18:25:09 +0100 <tomsmeding> (that's generated code by the way)
2020-11-09 18:25:44 +0100 <geekosaur> next it'll be haskell poetry >.>
2020-11-09 18:26:36 +0100nuncanada(~dude@179.235.160.168)
2020-11-09 18:27:00 +0100hackagephonetic-languages-examples 0.3.1.0 - A generalization of the uniqueness-periods-vector-examples functionality. https://hackage.haskell.org/package/phonetic-languages-examples-0.3.1.0 (OleksandrZhabenko)
2020-11-09 18:28:00 +0100 <sm[m]> excellent tomsmeding
2020-11-09 18:29:45 +0100mupf(~micha@v22017094964653601.ultrasrv.de) (Quit: WeeChat 2.9)
2020-11-09 18:29:49 +0100 <bqv> is there an easy lens op to get just the indexes, rather than (index, element) with iview/^@. ?
2020-11-09 18:30:36 +0100 <maerwald> bqv: you can always use `to`
2020-11-09 18:31:02 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-09 18:31:15 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit)
2020-11-09 18:31:28 +0100 <maerwald> https://hackage.haskell.org/package/optics-core-0.3.0.1/docs/Optics-Getter.html#v:to
2020-11-09 18:31:49 +0100mupf(~micha@v22017094964653601.ultrasrv.de)
2020-11-09 18:32:36 +0100 <bqv> well, not sure that helps so much
2020-11-09 18:32:43 +0100 <bqv> i have an indexedlens
2020-11-09 18:33:00 +0100 <bqv> just wanna get an index out of it without having to & fst it
2020-11-09 18:33:12 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-09 18:33:23 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 260 seconds)
2020-11-09 18:33:35 +0100texasmynsted(~texasmyns@64.44.55.28) (Read error: Connection reset by peer)
2020-11-09 18:33:37 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Client Quit)
2020-11-09 18:34:01 +0100texasmynsted(~texasmyns@64.44.55.28)
2020-11-09 18:34:03 +0100samlamamma(~user@h188-122-129-70.cust.a3fiber.se)
2020-11-09 18:34:37 +0100texasmyn_(~texasmyns@64.44.55.28)
2020-11-09 18:35:38 +0100 <samlamamma> Pure FP noob here. I need to traverse a circular graph in a DFS manner. How do I check if I've visited a node before? Basically I need object identities which doesn't depend on the shape of the whole data.
2020-11-09 18:35:43 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com)
2020-11-09 18:35:46 +0100adm_(~adm@43.229.88.236) (Remote host closed the connection)
2020-11-09 18:36:20 +0100adm_(~adm@43.229.88.236)
2020-11-09 18:36:33 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 18:38:23 +0100knupfer(~Thunderbi@200116b82c4b6a00c4d1ff5d8f844e90.dip.versatel-1u1.de) (Ping timeout: 244 seconds)
2020-11-09 18:38:37 +0100texasmynsted(~texasmyns@64.44.55.28) (Ping timeout: 264 seconds)
2020-11-09 18:38:54 +0100 <merijn> What data structure do you have your graph in?
2020-11-09 18:39:11 +0100 <merijn> i.e. can't you just "make up" a unique identity per node and call it a day
2020-11-09 18:39:39 +0100 <maerwald> > iviews (ito id) (\i _ -> i) ('i', 'x') -- bqv
2020-11-09 18:39:41 +0100 <lambdabot> 'i'
2020-11-09 18:40:09 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
2020-11-09 18:40:25 +0100 <bqv> oh, nice
2020-11-09 18:40:31 +0100 <bqv> iviews ilens const
2020-11-09 18:40:50 +0100 <bqv> no convenient operator though i guess
2020-11-09 18:40:54 +0100 <bqv> ah well
2020-11-09 18:40:55 +0100kupi(uid212005@gateway/web/irccloud.com/x-qdwmnzjhildlwlnh) (Quit: Connection closed for inactivity)
2020-11-09 18:40:58 +0100adm_(~adm@43.229.88.236) (Ping timeout: 260 seconds)
2020-11-09 18:41:03 +0100 <maerwald> stop complaining :p
2020-11-09 18:41:06 +0100 <samlamamma> merijn: Yeah, I was thinking I can just add an integer to each and use that as its identity. I'm curious what the idiomatic choice is
2020-11-09 18:41:10 +0100 <bqv> :D
2020-11-09 18:41:50 +0100 <merijn> samlamamma: You need some form of node identity for graphs and if you don't have a particular one you need "just assign incrementing integers" is about as sensible as it can be
2020-11-09 18:42:45 +0100tobiasBora(~weechat@176-190-197-81.abo.bbox.fr) (Ping timeout: 240 seconds)
2020-11-09 18:42:46 +0100asheshambasta(~user@ptr-e1lysawl9rr13i61o92.18120a2.ip6.access.telenet.be) (Ping timeout: 268 seconds)
2020-11-09 18:42:51 +0100 <samlamamma> Hey, fair enough.
2020-11-09 18:47:46 +0100iqubic(~user@2601:602:9500:4870:f97f:76da:55:8502)
2020-11-09 18:48:50 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-09 18:48:57 +0100samlamamma(~user@h188-122-129-70.cust.a3fiber.se) (Ping timeout: 256 seconds)
2020-11-09 18:49:30 +0100goldfire(~anonymous@c-76-124-205-20.hsd1.pa.comcast.net)
2020-11-09 18:50:16 +0100evanjs(~evanjs@075-129-188-019.res.spectrum.com) (Quit: ZNC 1.8.2 - https://znc.in)
2020-11-09 18:53:00 +0100evanjs(~evanjs@075-129-188-019.res.spectrum.com)
2020-11-09 18:53:52 +0100chaosmasttter(~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2020-11-09 18:54:29 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f)
2020-11-09 18:54:47 +0100Ariakenom_(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se)
2020-11-09 18:55:11 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Client Quit)
2020-11-09 18:55:25 +0100hpc(~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 240 seconds)
2020-11-09 18:55:29 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-11-09 18:55:57 +0100conal(~conal@64.71.133.70)
2020-11-09 18:56:31 +0100hackageclash-prelude 1.2.5 - CAES Language for Synchronous Hardware - Prelude library https://hackage.haskell.org/package/clash-prelude-1.2.5 (QBayLogic)
2020-11-09 18:57:00 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Quit: Leaving)
2020-11-09 18:57:24 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se)
2020-11-09 18:57:25 +0100hpc(~juzz@ip98-169-35-13.dc.dc.cox.net)
2020-11-09 18:57:31 +0100hackageclash-ghc 1.2.5, clash-lib 1.2.5 (QBayLogic): https://qbin.io/nasa-ebooks-5888
2020-11-09 18:57:53 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-09 18:58:39 +0100Eugleo(5ab552b3@gateway/web/cgi-irc/kiwiirc.com/ip.90.181.82.179) (Quit: Connection closed)
2020-11-09 18:59:31 +0100jakob_(~textual@p200300f49f16220061868217aabcc5ae.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2020-11-09 19:00:01 +0100GsC_RuL3Z(~GsC_RuL3Z@185.163.110.116) ()
2020-11-09 19:01:31 +0100hackageuniqueness-periods-vector-examples 0.14.2.0 - Usage examples for the uniqueness-periods-vector series of packages https://hackage.haskell.org/package/uniqueness-periods-vector-examples-0.14.2.0 (OleksandrZhabenko)
2020-11-09 19:03:57 +0100Ariakenom_(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Quit: Leaving)
2020-11-09 19:05:45 +0100dmwit(~dmwit@pool-108-28-166-212.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-09 19:10:11 +0100alp(~alp@88.126.45.36) (Remote host closed the connection)
2020-11-09 19:10:36 +0100alp(~alp@2a01:e0a:58b:4920:45f9:8edd:2bfa:dd05)
2020-11-09 19:11:37 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-09 19:17:29 +0100jamm_(~jamm@unaffiliated/jamm) (Remote host closed the connection)
2020-11-09 19:17:38 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru)
2020-11-09 19:18:25 +0100jamm_(~jamm@unaffiliated/jamm)
2020-11-09 19:21:35 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-11-09 19:21:39 +0100KevinM(~KevinM@185.204.1.185)
2020-11-09 19:22:44 +0100jamm_(~jamm@unaffiliated/jamm) (Ping timeout: 240 seconds)
2020-11-09 19:23:21 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-09 19:23:45 +0100dbmikus__(~dbmikus@cpe-76-167-86-219.natsow.res.rr.com)
2020-11-09 19:24:43 +0100chaosmasttter(~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de)
2020-11-09 19:24:49 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-09 19:25:14 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-09 19:26:34 +0100mnrmnaughmnrgle(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-11-09 19:29:08 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-09 19:30:47 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-09 19:32:36 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-09 19:33:09 +0100Kaivo(~Kaivo@104-200-86-99.mc.derytele.com) (Ping timeout: 256 seconds)
2020-11-09 19:33:20 +0100borne(~fritjof@200116b864d35e0021c47849b07375d7.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2020-11-09 19:34:28 +0100juuandyy(~juuandyy@90.166.144.65)
2020-11-09 19:35:23 +0100Kaivo(~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com)
2020-11-09 19:38:50 +0100valdyn(~valdyn@host-88-217-143-53.customer.m-online.net)
2020-11-09 19:39:14 +0100mmohammadi9812(~mmohammad@5.238.175.25) (Ping timeout: 256 seconds)
2020-11-09 19:39:45 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds)
2020-11-09 19:40:49 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds)
2020-11-09 19:42:28 +0100daydaynatation(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-09 19:44:12 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-09 19:44:21 +0100mmohammadi9812(~mmohammad@5.238.175.25)
2020-11-09 19:44:41 +0100 <bqv> y'know when you get to that stage where you have 3 distinct but overlapping refactors going on at the same time
2020-11-09 19:44:45 +0100 <bqv> or is that just me
2020-11-09 19:46:23 +0100 <Uniaika> :'D
2020-11-09 19:49:57 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-09 19:52:16 +0100conal(~conal@64.71.133.70)
2020-11-09 19:53:48 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch)
2020-11-09 19:54:35 +0100kuribas(~user@ptr-25vy0i8zs545blh2070.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
2020-11-09 19:56:05 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-09 19:56:14 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 19:56:27 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-09 19:58:29 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 19:58:33 +0100mnrmnaughmnrgle(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds)
2020-11-09 19:58:45 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-09 19:59:02 +0100ridcully(~ridcully@p57b5259e.dip0.t-ipconnect.de) (Quit: cleanup)
2020-11-09 19:59:57 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-09 20:00:04 +0100ridcully(~ridcully@p57b5259e.dip0.t-ipconnect.de)
2020-11-09 20:00:09 +0100 <merijn> hmm, vector has no foldMap?
2020-11-09 20:01:44 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-11-09 20:02:13 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection)
2020-11-09 20:02:13 +0100 <tomsmeding> bqv: be happy you're using haskell
2020-11-09 20:02:26 +0100alp(~alp@2a01:e0a:58b:4920:45f9:8edd:2bfa:dd05) (Ping timeout: 264 seconds)
2020-11-09 20:02:37 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-09 20:02:53 +0100 <bqv> i am, i just worry that i use haskell as an excuse to refactor more than write actual code
2020-11-09 20:03:00 +0100jakob_(~textual@p200300f49f16220061868217aabcc5ae.dip0.t-ipconnect.de)
2020-11-09 20:03:30 +0100berberman_(~berberman@unaffiliated/berberman)
2020-11-09 20:03:32 +0100conal(~conal@64.71.133.70)
2020-11-09 20:03:43 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-09 20:03:58 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 20:04:10 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds)
2020-11-09 20:04:36 +0100britva(~britva@31-10-157-156.cgn.dynamic.upc.ch) (Quit: This computer has gone to sleep)
2020-11-09 20:06:52 +0100mmohammadi9812(~mmohammad@5.238.175.25) (Ping timeout: 246 seconds)
2020-11-09 20:07:02 +0100texasmyn_texasmynsted
2020-11-09 20:07:07 +0100mmohammadi9812(~mmohammad@5.238.183.63)
2020-11-09 20:07:24 +0100fendor_fendor
2020-11-09 20:07:32 +0100 <fendor> maerwald, my gf is a fan of ghcup, great work!
2020-11-09 20:07:36 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 20:08:00 +0100hackagecachix 0.5.1 - Command line client for Nix binary cache hosting https://cachix.org https://hackage.haskell.org/package/cachix-0.5.1 (domenkozar)
2020-11-09 20:08:21 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f)
2020-11-09 20:08:39 +0100monochrom<3 maerwald and ghcup too
2020-11-09 20:12:10 +0100mmohammadi9812(~mmohammad@5.238.183.63) (Quit: Quit)
2020-11-09 20:12:33 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-09 20:14:59 +0100cfricke(~cfricke@unaffiliated/cfricke)
2020-11-09 20:17:10 +0100raichoo(~raichoo@dslb-188-100-006-110.188.100.pools.vodafone-ip.de) (Quit: Lost terminal)
2020-11-09 20:18:32 +0100mmohammadi9812(~mmohammad@5.238.183.63)
2020-11-09 20:19:33 +0100DTZUZU(~DTZUZU@205.ip-149-56-132.net)
2020-11-09 20:20:02 +0100alp(~alp@2a01:e0a:58b:4920:681b:9986:ad49:88f7)
2020-11-09 20:24:06 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-09 20:24:13 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 258 seconds)
2020-11-09 20:24:20 +0100mnrmnaughmnrgle(~mnrmnaugh@unaffiliated/mnrmnaugh)
2020-11-09 20:25:08 +0100cfricke(~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9)
2020-11-09 20:26:05 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds)
2020-11-09 20:26:18 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-11-09 20:26:48 +0100cosimone(~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-09 20:28:02 +0100knupfer(~Thunderbi@200116b82c4b6a00d47a4dfffea33367.dip.versatel-1u1.de)
2020-11-09 20:28:48 +0100knupfer(~Thunderbi@200116b82c4b6a00d47a4dfffea33367.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-09 20:28:56 +0100knupfer(~Thunderbi@200116b82c4b6a00dc5455e3637c129b.dip.versatel-1u1.de)
2020-11-09 20:29:12 +0100juuandyy(~juuandyy@90.166.144.65)
2020-11-09 20:29:41 +0100mu(~mu@unaffiliated/mu) (Quit: mu)
2020-11-09 20:29:59 +0100adm_(~adm@43.229.88.236)
2020-11-09 20:31:35 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
2020-11-09 20:34:25 +0100adm_(~adm@43.229.88.236) (Ping timeout: 264 seconds)
2020-11-09 20:35:03 +0100bennofs1(~benno@dslb-188-106-224-177.188.106.pools.vodafone-ip.de)
2020-11-09 20:35:58 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-09 20:39:14 +0100ystael(~ystael@209.6.50.55) (Ping timeout: 256 seconds)
2020-11-09 20:40:36 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection)
2020-11-09 20:41:08 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 20:46:48 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 272 seconds)
2020-11-09 20:47:26 +0100Amras(~Amras@unaffiliated/amras0000)
2020-11-09 20:50:55 +0100kaysee(5d29234b@93-41-35-75.ip79.fastwebnet.it)
2020-11-09 20:52:13 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds)
2020-11-09 20:53:50 +0100wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-09 20:55:08 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-11-09 20:55:11 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de)
2020-11-09 20:55:20 +0100Lycurgus(~niemand@98.4.97.118)
2020-11-09 20:57:13 +0100daydaynatation(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 264 seconds)
2020-11-09 20:57:27 +0100kaysee(5d29234b@93-41-35-75.ip79.fastwebnet.it) (Remote host closed the connection)
2020-11-09 20:59:32 +0100thir(~thir@p200300f27f0b7e00f4e9381c2bf90854.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-09 21:00:21 +0100Codaraxis(~Codaraxis@ip68-5-90-227.oc.oc.cox.net)
2020-11-09 21:00:31 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-09 21:00:45 +0100juuandyy(~juuandyy@90.166.144.65) (Ping timeout: 240 seconds)
2020-11-09 21:01:43 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-09 21:01:53 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-11-09 21:04:23 +0100rprije(~rprije@124.148.131.132)
2020-11-09 21:05:17 +0100twopoint718(~cjw@fsf/member/twopoint718) (Quit: Textual IRC Client: www.textualapp.com)
2020-11-09 21:06:22 +0100johnw__(~textual@2600:1700:cf00:db0:5550:6a3c:f0cd:2841)
2020-11-09 21:08:32 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-09 21:09:04 +0100knupfer(~Thunderbi@200116b82c4b6a00dc5455e3637c129b.dip.versatel-1u1.de) (Ping timeout: 240 seconds)
2020-11-09 21:10:25 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com) (Ping timeout: 260 seconds)
2020-11-09 21:12:16 +0100wroathe_(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-11-09 21:13:05 +0100 <koz_> :t comparing
2020-11-09 21:13:06 +0100 <lambdabot> Ord a => (b -> a) -> b -> b -> Ordering
2020-11-09 21:13:16 +0100natechan(~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net)
2020-11-09 21:13:40 +0100 <koz_> merijn: Why? Vector (at least the basic one) shoudl be Foldable? Or is there missing context here?
2020-11-09 21:14:41 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-09 21:15:03 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 21:17:55 +0100mnrmnaughmnrgle(~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 246 seconds)
2020-11-09 21:18:26 +0100leungbk(~user@cpe-104-33-52-83.socal.res.rr.com)
2020-11-09 21:20:18 +0100 <merijn> Storable vector doesn't have a Foldable instance
2020-11-09 21:20:23 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 21:21:05 +0100 <monochrom> Right, but mono-traversable can help.
2020-11-09 21:21:21 +0100 <merijn> monochrom: There's no reason it can't be Foldable, though
2020-11-09 21:21:33 +0100juuandyy(~juuandyy@90.166.144.65)
2020-11-09 21:21:44 +0100 <koz_> merijn: Ah, yeah.
2020-11-09 21:21:48 +0100 <merijn> oh, wait, no
2020-11-09 21:21:56 +0100 <koz_> Unfortunately it can't be.
2020-11-09 21:21:58 +0100 <merijn> Because you can't limit the argument
2020-11-09 21:22:00 +0100 <monochrom> Perhaps you mean: There is no reason Foldable stays within the restriction of single-parameter type class therefore imposes a parametricity restriction.
2020-11-09 21:22:05 +0100 <koz_> We need a Storable constraint to basically do anything.
2020-11-09 21:22:22 +0100 <merijn> Anyway, there's no reason for it not to export it's own foldMap
2020-11-09 21:22:30 +0100 <merijn> It exports a billion other folds
2020-11-09 21:22:43 +0100 <monochrom> Yes, that I can stand behind.
2020-11-09 21:23:14 +0100 <monochrom> But mono-traversable does it. You can accept this compromise for now.
2020-11-09 21:23:38 +0100 <merijn> monochrom: I just did VS.toList and foldMapped that :p
2020-11-09 21:24:08 +0100 <monochrom> That one may actually fuse.
2020-11-09 21:24:24 +0100 <merijn> Frankly I don't particularly care about the performance anyway
2020-11-09 21:24:38 +0100knupfer(~Thunderbi@200116b82c4b6a002515619359a4e7a1.dip.versatel-1u1.de)
2020-11-09 21:25:00 +0100Entertainment(~entertain@104.246.132.210)
2020-11-09 21:26:58 +0100 <koz_> merijn: Do any of the Vector types export (something akin to) foldMap?
2020-11-09 21:27:03 +0100 <hekkaidekapus> merijn: <https://github.com/haskell/vector/pull/337>
2020-11-09 21:27:06 +0100 <koz_> (well, other than the basic one via being Foldable)
2020-11-09 21:27:38 +0100 <koz_> Never mind, hekkaidekapus answered my question.
2020-11-09 21:27:45 +0100 <merijn> hekkaidekapus: Unless to goes onto Hackage in, -15 minutes that's not particularly useful to me, though ;)
2020-11-09 21:28:18 +0100 <hekkaidekapus> hahaha… Admit it, you wanted to let some steam off ;)
2020-11-09 21:29:46 +0100wwwww(~wwwww@unaffiliated/wwwww) (Ping timeout: 258 seconds)
2020-11-09 21:30:50 +0100 <davean> koz_: why 15 minutes? :)
2020-11-09 21:31:20 +0100 <hekkaidekapus> (Wrong nick)
2020-11-09 21:31:28 +0100 <geekosaur> merijn, and I see -15
2020-11-09 21:31:36 +0100 <merijn> davean: Because that's 15 minutes ago is when I wrote the code to work around the lack of foldMap
2020-11-09 21:31:39 +0100wwwww(~wwwww@unaffiliated/wwwww)
2020-11-09 21:31:48 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-09 21:31:50 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-11-09 21:31:54 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2020-11-09 21:31:57 +0100 <monochrom> TEN3T
2020-11-09 21:32:12 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection)
2020-11-09 21:32:23 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-09 21:32:25 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 21:33:10 +0100juuandyy(~juuandyy@90.166.144.65) (Quit: Konversation terminated!)
2020-11-09 21:34:16 +0100 <merijn> So...I've got a pro-tip for people
2020-11-09 21:34:50 +0100 <merijn> If you're going to spend 1.5 hours trying to work out why your "real" code deviates from your validation code in a super subtle and weird way...
2020-11-09 21:35:06 +0100 <merijn> Maybe first check your validation code is correct
2020-11-09 21:35:48 +0100 <monochrom> Heh I use that to illustrate Bayes theorem.
2020-11-09 21:36:03 +0100 <merijn> Also, somewhat relatedly
2020-11-09 21:36:24 +0100 <merijn> Use more newtypes for your integers if you're gonna have like 5 different values of the buggers
2020-11-09 21:37:14 +0100xff0x(~fox@2001:1a81:531b:1600:ec8f:61b3:570e:bcbc) (Ping timeout: 264 seconds)
2020-11-09 21:37:26 +0100 <monochrom> It goes like "you're an experienced programmer, your probability of making a bug is really small. The new intern is writing test cases, their false alarm probability is small but bigger than your bug probability. Your code fails their test case. What's the probability that it's really your fault?"
2020-11-09 21:37:54 +0100xff0x(~fox@2001:1a81:531b:1600:cd3d:f483:4bd5:a4e5)
2020-11-09 21:38:04 +0100 <Rembane> 7
2020-11-09 21:38:32 +0100Lycurgus(~niemand@98.4.97.118) (Quit: Exeunt)
2020-11-09 21:38:58 +0100 <hekkaidekapus> merijn: The tip is drawn from validated-literals?
2020-11-09 21:39:21 +0100aldum(~vishera@aldum.pw) (Remote host closed the connection)
2020-11-09 21:39:31 +0100aldum(~vishera@aldum.pw)
2020-11-09 21:39:46 +0100 <dsal> The worst thing is finding compiler bugs after years of conditioning that it's not the compiler.
2020-11-09 21:39:47 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-09 21:40:36 +0100acidjnk_new2(~acidjnk@p200300d0c718f61059b80ee7df292ca6.dip0.t-ipconnect.de)
2020-11-09 21:41:23 +0100son0p(~son0p@181.136.122.143)
2020-11-09 21:42:15 +0100 <merijn> dsal: Oh, I've got a good way to fix that!
2020-11-09 21:42:35 +0100 <merijn> dsal: Just try Intel's OpenCL FPGA tools!
2020-11-09 21:42:41 +0100 <dsal> ha
2020-11-09 21:43:05 +0100 <merijn> After 2 months your first instinct for any bug is "I bet they fucked up the compiler again"
2020-11-09 21:43:24 +0100 <merijn> hekkaidekapus: That's for literals, not so much runtime values :)
2020-11-09 21:43:32 +0100 <merijn> hekkaidekapus: Hence, the name ;)
2020-11-09 21:43:58 +0100 <monochrom> Use a just-in-time compiler to turn run-time values into compile-time literals.
2020-11-09 21:44:05 +0100 <monochrom> Just look at xmonad.
2020-11-09 21:44:30 +0100kjak(~kjak@pool-173-73-38-16.washdc.fios.verizon.net)
2020-11-09 21:44:41 +0100 <hekkaidekapus> merijn: I was teasing you because there are no bug reports for the package ;)
2020-11-09 21:44:54 +0100 <monochrom> or javascript eval >:)
2020-11-09 21:45:05 +0100 <merijn> hekkaidekapus: That's because no one's using it :p
2020-11-09 21:45:57 +0100 <hekkaidekapus> By the way, it’s not the first time you’re into Vector.foldMap; <https://github.com/haskell/vector/issues/263#issuecomment-643812468>
2020-11-09 21:46:27 +0100 <merijn> I know, that's cause past me is a genius with impeccable taste
2020-11-09 21:46:44 +0100 <hekkaidekapus> heh
2020-11-09 21:47:22 +0100mu(~mu@unaffiliated/mu)
2020-11-09 21:47:59 +0100 <merijn> "newtype Index = Index { getIdx :: Int }" now, if I only had thought of that earlier I'd have saved myself a bunch of annoying debugging >.>
2020-11-09 21:49:22 +0100 <tomsmeding> merijn: "I don't think tree fold ever does less operations."
2020-11-09 21:49:32 +0100 <merijn> tomsmeding: That's true
2020-11-09 21:49:32 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-09 21:49:34 +0100 <tomsmeding> a binary tree with n leaves has n-1 interior nodes
2020-11-09 21:49:36 +0100 <tomsmeding> qed
2020-11-09 21:50:29 +0100 <merijn> I'm unsure if you're agreeing or disagreeing?
2020-11-09 21:50:58 +0100 <koz_> > takeWhile (/= ':') "foo:bar"
2020-11-09 21:51:00 +0100 <lambdabot> "foo"
2020-11-09 21:51:19 +0100 <tomsmeding> merijn: I'm agreeing, and proving that your "I think" can be removed :p
2020-11-09 21:51:55 +0100 <merijn> tomsmeding: Past me is not only a genius with impeccable taste. He's also modest and likes to hedge his claims, except when he doesn't.
2020-11-09 21:52:23 +0100 <tomsmeding> and present you is also fond of tautologies? :)
2020-11-09 21:52:27 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-09 21:52:43 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-09 21:52:43 +0100 <merijn> Tautologies and showers
2020-11-09 21:52:45 +0100 <koz_> Tautologies are delicious with chocolate syrup.
2020-11-09 21:52:53 +0100 <koz_> Showers are less so.
2020-11-09 21:53:09 +0100 <tomsmeding> is that latter statement from experience?
2020-11-09 21:53:21 +0100 <koz_> tomsmeding: I'll let you figure that one out. :P
2020-11-09 21:56:01 +0100hackagephonetic-languages-examples 0.3.1.1 - A generalization of the uniqueness-periods-vector-examples functionality. https://hackage.haskell.org/package/phonetic-languages-examples-0.3.1.1 (OleksandrZhabenko)
2020-11-09 21:58:07 +0100Tario(~Tario@201.192.165.173)
2020-11-09 21:59:26 +0100 <merijn> Excellent. My newtype refactor to avoid similar mistakes in the future actually causes a type error on the bug \o/
2020-11-09 22:00:01 +0100KevinM(~KevinM@185.204.1.185) ()
2020-11-09 22:00:55 +0100 <tomsmeding> 🎉
2020-11-09 22:04:02 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-11-09 22:04:02 +0100alp(~alp@2a01:e0a:58b:4920:681b:9986:ad49:88f7) (Ping timeout: 246 seconds)
2020-11-09 22:05:26 +0100plakband(~plakband@softbank126126238105.bbtec.net)
2020-11-09 22:07:43 +0100 <hekkaidekapus> The takeWhile above by koz_ reminded me something I saw in the backlog. merijn, why did you shy away of Data.Sequence when someone asked about a takeWhile going from right to left?
2020-11-09 22:08:24 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 22:08:52 +0100 <merijn> What?
2020-11-09 22:09:01 +0100 <merijn> I didn't ask about takeWhile?
2020-11-09 22:09:25 +0100 <hekkaidekapus> No, someone asked you about it.
2020-11-09 22:10:22 +0100 <merijn> The only vaguely related thing I recall is someone wanting to do left padding?
2020-11-09 22:10:41 +0100 <merijn> How long ago is this backlog? :p
2020-11-09 22:10:52 +0100bennofs1(~benno@dslb-188-106-224-177.188.106.pools.vodafone-ip.de) (Quit: WeeChat 2.9)
2020-11-09 22:11:26 +0100 <hekkaidekapus> yesterday
2020-11-09 22:11:53 +0100 <merijn> That's about 12 hours outside my short term memory storage :p
2020-11-09 22:12:10 +0100 <hekkaidekapus> L4 anyone?
2020-11-09 22:12:46 +0100gtk`(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2020-11-09 22:13:06 +0100 <gtk`> Is the Rio library still being actively developed?
2020-11-09 22:13:31 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-09 22:14:30 +0100bitmagie(~Thunderbi@200116b8068e9d000cdbc28af571c7f9.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-09 22:14:33 +0100 <hekkaidekapus> merijn: <https://ircbrowse.tomsmeding.com/browse/haskell?id=113736&timestamp=1604876499#t1604876499>
2020-11-09 22:16:09 +0100conal(~conal@64.71.133.70)
2020-11-09 22:16:25 +0100 <tomsmeding> can't have an infinite Seq?
2020-11-09 22:16:34 +0100 <hekkaidekapus> Nope.
2020-11-09 22:16:41 +0100 <bqv> if i have a Getter
2020-11-09 22:16:44 +0100 <tomsmeding> so then you can't do the same trick anyhow
2020-11-09 22:16:44 +0100 <bqv> and i have a Setter
2020-11-09 22:16:51 +0100 <bqv> can I make a Lens'
2020-11-09 22:17:02 +0100 <bqv> without going the roundabout route
2020-11-09 22:17:15 +0100nuncanada(~dude@179.235.160.168) (Read error: Connection reset by peer)
2020-11-09 22:17:29 +0100 <bqv> i can't quite decipher the types enough to work out if that's possible
2020-11-09 22:17:50 +0100nuncanada(~dude@179.235.160.168)
2020-11-09 22:17:56 +0100 <hekkaidekapus> tomsmeding: In the grand scheme of things, yes. But I doubt the code involved in that convo wouldn’t fare well with a takeWhileR.
2020-11-09 22:18:25 +0100aarvar(~foewfoiew@c.24.56.239.179.static.broadstripe.net)
2020-11-09 22:22:18 +0100knupfer(~Thunderbi@200116b82c4b6a002515619359a4e7a1.dip.versatel-1u1.de) (Ping timeout: 268 seconds)
2020-11-09 22:23:21 +0100 <gtk`> cabal install Quickcheck give this error: fdTryLock: invalid argument (Invalid argument)
2020-11-09 22:23:30 +0100 <gtk`> any hint?
2020-11-09 22:24:37 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-11-09 22:24:49 +0100jathan(~jathan@69.61.93.38) (Quit: WeeChat 2.3)
2020-11-09 22:25:29 +0100 <merijn> hekkaidekapus: I don't really see how Seq fits there, tbh?
2020-11-09 22:26:34 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ...zzzZZZ)
2020-11-09 22:26:55 +0100jathan(~jathan@69.61.93.38)
2020-11-09 22:28:23 +0100vfaronov(~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov)
2020-11-09 22:29:04 +0100johnw__(~textual@2600:1700:cf00:db0:5550:6a3c:f0cd:2841) (Quit: Textual IRC Client: www.textualapp.com)
2020-11-09 22:29:08 +0100lawr3nce(~lawr3nce@gateway/tor-sasl/lawr3nce)
2020-11-09 22:31:27 +0100gtk`(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
2020-11-09 22:31:43 +0100gtk(~user@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Remote host closed the connection)
2020-11-09 22:31:55 +0100 <hekkaidekapus> gtk`: Are you on Windows?
2020-11-09 22:32:52 +0100 <hekkaidekapus> merijn: I’m suggesting Seq in case the real use case was to view a list in the right-left direction.
2020-11-09 22:33:04 +0100lawr3nce(~lawr3nce@gateway/tor-sasl/lawr3nce) (Remote host closed the connection)
2020-11-09 22:33:06 +0100borne(~fritjof@200116b864d35e0021c47849b07375d7.dip.versatel-1u1.de)
2020-11-09 22:33:15 +0100 <merijn> The question was how to pad to a fixed length, though?
2020-11-09 22:33:17 +0100ulidtko(~ulidtko@193.111.48.79) (Remote host closed the connection)
2020-11-09 22:33:49 +0100avdb(~avdb@ip-83-134-109-5.dsl.scarlet.be) (Ping timeout: 264 seconds)
2020-11-09 22:34:27 +0100 <hekkaidekapus> Yeah, so if the list is built right-leftly, I can pad at the front with Seq.
2020-11-09 22:35:07 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection)
2020-11-09 22:35:40 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 22:36:14 +0100 <tomsmeding> but then you still have to compute (desired length) - (current length) to determine the amount of padding, right?
2020-11-09 22:36:53 +0100 <tomsmeding> in which case you could just as well have used `take desired (replicate (desired - length my_list) ++ my_list)`
2020-11-09 22:37:42 +0100 <tomsmeding> hm, except if it can happen that the list is _longer_ than the desired length and you want to truncate
2020-11-09 22:38:09 +0100 <hekkaidekapus> How are the asymptotics of that? (Haven’t checked, have just a hunch)
2020-11-09 22:38:23 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds)
2020-11-09 22:38:24 +0100 <tomsmeding> linear? :p
2020-11-09 22:38:38 +0100 <bqv> dminuoso?
2020-11-09 22:38:46 +0100 <tomsmeding> whereas using Seq would even be n log n
2020-11-09 22:38:51 +0100 <bqv> Resident lens expert...
2020-11-09 22:39:00 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-09 22:39:25 +0100 <merijn> I know the asymptotics of thinking about complicated alternatives and their complexity are higher than my simple O(1) reflex reaction :p
2020-11-09 22:40:25 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Ping timeout: 264 seconds)
2020-11-09 22:41:11 +0100 <hekkaidekapus> Empty |> 0 |> 0 |> 0 |> 5 |> 4 |> 3 |> 2 |> 1 -- Is that so bad?
2020-11-09 22:41:25 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Read error: Connection reset by peer)
2020-11-09 22:42:20 +0100Guest41(50a46f47@gateway/web/cgi-irc/kiwiirc.com/ip.80.164.111.71)
2020-11-09 22:42:22 +0100 <bqv> Yikes
2020-11-09 22:43:17 +0100 <tomsmeding> talking about aesthetics, performance, or time spent typing? :p
2020-11-09 22:43:43 +0100 <hekkaidekapus> All of them :)
2020-11-09 22:44:37 +0100 <tomsmeding> looks nice, is probably slower than `reverse (take 8 ([1..5] ++ repeat 0))`, and takes longer to type except if you use editor macros
2020-11-09 22:44:50 +0100Lord_of_Life(~Lord@46.217.220.150)
2020-11-09 22:44:50 +0100Lord_of_Life(~Lord@46.217.220.150) (Changing host)
2020-11-09 22:44:50 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-11-09 22:45:00 +0100hackagehls-plugin-api 0.5.0.0 - Haskell Language Server API for plugin communication https://hackage.haskell.org/package/hls-plugin-api-0.5.0.0 (jneira)
2020-11-09 22:45:06 +0100 <tomsmeding> ("slower" -> assuming you convert to a list again afterwards)
2020-11-09 22:45:41 +0100 <hekkaidekapus> #haskell, where typing happens :P
2020-11-09 22:47:23 +0100 <invaser> Hi, it seems that I've found a bug in syntax highlighter for vscode
2020-11-09 22:48:13 +0100 <invaser> if you write this code `t = [f| f <-""]` (without space between `f` and `|`) everything that comes after the list comprehension isn't highlighted
2020-11-09 22:48:19 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:7534:e8f4:dae4:831d) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-09 22:48:59 +0100 <[exa]> invaser: sounds like it's mistaking it for some kind of template haskell construct?
2020-11-09 22:48:59 +0100 <invaser> should I report it in Haskell externsion repo or in syntax highlighter one?
2020-11-09 22:49:29 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 2.9)
2020-11-09 22:49:31 +0100 <invaser> [exa]: yes, it seems like it, though the code runs perfectly ok
2020-11-09 22:50:06 +0100 <invaser> I'm new to the bug reporting, so I thought I should ask here first where should I report this :)
2020-11-09 22:50:31 +0100 <[exa]> invaser: I'd start with syntax highlighter, at worst they tell you that the problem is not at their side (maybe the compiler flags get reported wrong)
2020-11-09 22:50:56 +0100 <[exa]> if you want to be triple sure, try to run the syntax highlighter standalone on the problematic snippet
2020-11-09 22:52:18 +0100 <[exa]> btw if you're new, it's good to follow a "template", like say this one https://github.com/JustusAdam/language-haskell/issues/176
2020-11-09 22:52:30 +0100hackagej 0.2.0.0 - J in Haskell https://hackage.haskell.org/package/j-0.2.0.0 (vmchale)
2020-11-09 22:53:00 +0100 <[exa]> (uh wait that actually looks like the same issue :D )
2020-11-09 22:53:41 +0100armin76(~armin76@s91904426.blix.com)
2020-11-09 22:53:49 +0100 <invaser> [exa]: haha yeah, just saw it myself
2020-11-09 22:54:43 +0100 <[exa]> the 'wontfix' label is sad, obviously there's no way to tell the highlighter if the file should have +TemplateHaskell or not
2020-11-09 22:55:06 +0100chaosmasttter(~chaosmast@p200300c4a7087201c8e962581689150e.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-11-09 22:55:29 +0100wroathe(~wroathe@c-73-24-27-54.hsd1.mn.comcast.net)
2020-11-09 22:56:10 +0100 <[exa]> (grumpy voice:) what would we expect from an IDE anyway
2020-11-09 22:56:23 +0100 <jackdk> Does this have a well-known name? `data FooBar a b = Foo a (Maybe b) | Bar b`? i.e., you might have `a`, you might have `b`, but you definitely don't have neither
2020-11-09 22:56:41 +0100nuruuu(6dced5cb@109.206.213.203)
2020-11-09 22:57:00 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 256 seconds)
2020-11-09 22:58:35 +0100 <monochrom> "inclusive or" is close, but no one really say that.
2020-11-09 22:58:47 +0100 <[exa]> jackdk: why not make the type symmetric, like JustA a | JustB b | Both a b ?
2020-11-09 22:58:47 +0100ski(~ski@remote11.chalmers.se) (Remote host closed the connection)
2020-11-09 22:59:22 +0100 <monochrom> And yeah it is usually nicer to make it symmetry like that.
2020-11-09 22:59:25 +0100 <nshepperd2> isn't that called These
2020-11-09 22:59:46 +0100 <jackdk> haha yes it is These. thanks nshepperd2
2020-11-09 23:01:05 +0100 <monochrom> I am beginning to suspect that "These" is a poorly chosen name.
2020-11-09 23:01:21 +0100 <[exa]> monochrom: I just rediscovered what it does for the 3rd time
2020-11-09 23:01:30 +0100hackagecabal-fmt 0.1.5.1 - Format .cabal files https://hackage.haskell.org/package/cabal-fmt-0.1.5.1 (phadej)
2020-11-09 23:01:33 +0100 <[exa]> remember once asking for it here myself
2020-11-09 23:01:41 +0100Solarion(~solarion@fsf/member/solarion)
2020-11-09 23:01:53 +0100Gurkenglas_Gurkenglas
2020-11-09 23:03:21 +0100 <monochrom> You tell people "I have an apple, or an orange, or both", people will respond "that sounds like 'and/or'" or "that sounds like 'inclusive or'". No one is going to respond "that sounds like 'these'".
2020-11-09 23:03:45 +0100 <monochrom> If you go on to tell people "someone named this situation 'these'" people will be like "wait what?"
2020-11-09 23:05:00 +0100 <[exa]> naming is hard
2020-11-09 23:05:07 +0100 <[exa]> can we do better than say.. EitherBoth ?
2020-11-09 23:05:21 +0100 <dolio> Yeah, These is better.
2020-11-09 23:06:01 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Quit: This computer has gone to sleep)
2020-11-09 23:06:56 +0100alp(~alp@88.126.45.36)
2020-11-09 23:08:14 +0100jakob_(~textual@p200300f49f16220061868217aabcc5ae.dip0.t-ipconnect.de) (Quit: My Laptop has gone to sleep. ZZZzzz…)
2020-11-09 23:08:16 +0100 <[exa]> :[
2020-11-09 23:08:50 +0100machinedgod(~machinedg@207.253.244.210) (Ping timeout: 256 seconds)
2020-11-09 23:08:56 +0100\x2D(~Thunderbi@freenode/staff/grumble) (Quit: echo -e '\e#8')
2020-11-09 23:09:58 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 265 seconds)
2020-11-09 23:11:23 +0100grumble(~Thunderbi@freenode/staff/grumble)
2020-11-09 23:12:51 +0100 <dminuoso> bqv: with optics or with lens? And what do you mean with roundabout vote?
2020-11-09 23:13:08 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f)
2020-11-09 23:14:37 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 23:14:55 +0100 <dminuoso> 23:10:35 monochrom | [22:01:05] I am beginning to suspect that "These" is a poorly chosen name.
2020-11-09 23:15:25 +0100 <dminuoso> I think it's a good name because it's somewhat suggestive, but not too concretely so.
2020-11-09 23:15:56 +0100nuruuu(6dced5cb@109.206.213.203) (Remote host closed the connection)
2020-11-09 23:15:59 +0100 <dminuoso> Maybe as a type constructor is a dumb name as well, you wouldn't say "I have maybe apple"
2020-11-09 23:16:43 +0100 <monochrom> But I say "Maybe I have an apple" all the time.
2020-11-09 23:17:21 +0100 <Rembane> monochrom: Are Schrödinger apples an important part of the food you eat?
2020-11-09 23:18:49 +0100 <dminuoso> monochrom: Strangely, if you have an issue with naming, why not complain about MonadChronicle ;)
2020-11-09 23:19:09 +0100 <dminuoso> Nothing but cute workplay
2020-11-09 23:19:10 +0100 <monochrom> I haven't heard of MonadChronicle.
2020-11-09 23:19:13 +0100 <dminuoso> https://hackage.haskell.org/package/monad-chronicle-1.0.0.1/docs/Control-Monad-Chronicle.html#t:Mo…
2020-11-09 23:19:22 +0100 <dminuoso> It's essentially an mtl style for These
2020-11-09 23:19:27 +0100 <dminuoso> as a monad transformer
2020-11-09 23:19:32 +0100jakob_(~textual@p200300f49f162200d485fdd402f900db.dip0.t-ipconnect.de)
2020-11-09 23:19:46 +0100 <dminuoso> Or rather, there's ChroncicleT that is essentially a TheseT, and MonadChronicle as a tagless final encoding
2020-11-09 23:20:53 +0100sagax(~sagax_nb@213.138.71.146)
2020-11-09 23:22:02 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-11-09 23:22:25 +0100enoq(~textual@194-208-146-143.lampert.tv) (Quit: Textual IRC Client: www.textualapp.com)
2020-11-09 23:22:25 +0100Ariakenom(~Ariakenom@h-82-196-111-76.NA.cust.bahnhof.se) (Quit: Leaving)
2020-11-09 23:23:55 +0100machinedgod(~machinedg@207.253.244.210)
2020-11-09 23:27:10 +0100texasmynsted(~texasmyns@64.44.55.28) (Remote host closed the connection)
2020-11-09 23:29:34 +0100solonarv(~solonarv@astrasbourg-653-1-263-62.w92-161.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-11-09 23:30:17 +0100ystael(~ystael@209.6.50.55)
2020-11-09 23:30:38 +0100falafel_(~falafel@2601:247:c400:1390:7811:313f:d0f3:f9f4)
2020-11-09 23:32:33 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl) (Remote host closed the connection)
2020-11-09 23:32:40 +0100jonatanb(~jonatanb@83.24.9.26.ipv4.supernova.orange.pl)
2020-11-09 23:33:35 +0100dhouthoo(~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2020-11-09 23:35:00 +0100Franciman(~francesco@host-82-56-223-169.retail.telecomitalia.it) (Quit: Leaving)
2020-11-09 23:35:42 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-09 23:37:06 +0100Guest41(50a46f47@gateway/web/cgi-irc/kiwiirc.com/ip.80.164.111.71) (Quit: Connection closed)
2020-11-09 23:37:21 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-09 23:38:38 +0100thecoffemaker(~thecoffem@unaffiliated/thecoffemaker) (Max SendQ exceeded)
2020-11-09 23:38:38 +0100conal(~conal@64.71.133.70)
2020-11-09 23:39:02 +0100thecoffemaker(~thecoffem@unaffiliated/thecoffemaker)
2020-11-09 23:39:12 +0100texasmynsted(~texasmyns@64.44.55.28)
2020-11-09 23:39:44 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 240 seconds)
2020-11-09 23:39:50 +0100jneira(5127ac76@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.118)
2020-11-09 23:40:33 +0100texasmynsted(~texasmyns@64.44.55.28) (Read error: Connection reset by peer)
2020-11-09 23:42:37 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net)
2020-11-09 23:43:22 +0100son0p(~son0p@181.136.122.143) (Remote host closed the connection)
2020-11-09 23:47:26 +0100ensyde(~ensyde@99-185-235-117.lightspeed.chrlnc.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-09 23:49:49 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Read error: Connection reset by peer)
2020-11-09 23:50:43 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-11-09 23:51:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2020-11-09 23:51:34 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-09 23:52:11 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-09 23:53:03 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
2020-11-09 23:54:05 +0100 <jackdk> I have used These in the past, and said to people "I either have This thing, That thing, or These things" and it doesn't seem too bad
2020-11-09 23:55:42 +0100britva(~britva@2a02:aa13:7240:2980:8973:b5bc:951d:7f1f) (Quit: This computer has gone to sleep)
2020-11-09 23:57:45 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 2.8)
2020-11-09 23:58:36 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-09 23:59:39 +0100invaser(~Thunderbi@31.148.23.125)