Home liberachat/#haskell: Logs Calendar

Logs on 2022-04-22 (liberachat/#haskell)

00:00:14 foul_owl joins (~kerry@23.82.193.89)
00:01:17 × jerry99 quits (~330f3999@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
00:02:31 × xff0x_ quits (~xff0x@om126194210237.10.openmobile.ne.jp) (Read error: Connection reset by peer)
00:05:05 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
00:05:22 azimut joins (~azimut@gateway/tor-sasl/azimut)
00:06:18 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
00:07:13 ec joins (~ec@gateway/tor-sasl/ec)
00:10:53 × DNH quits (~DNH@2a02:8109:b740:2c4:e19c:8cc4:dfdc:657b) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:13:07 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
00:13:07 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
00:13:07 wroathe joins (~wroathe@user/wroathe)
00:14:45 <Axman6> tvandinther: I'm probably the one who told you to use stack, but only because you mentioned you were already using it. I would recommend sticking with just cabal these days
00:14:47 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
00:15:47 × ralu1 quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 240 seconds)
00:16:22 DNH joins (~DNH@2a02:8109:b740:2c4:e19c:8cc4:dfdc:657b)
00:17:04 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
00:17:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
00:17:56 × DNH quits (~DNH@2a02:8109:b740:2c4:e19c:8cc4:dfdc:657b) (Client Quit)
00:18:20 redb joins (~nmh@136.49.49.211)
00:18:58 jpds joins (~jpds@gateway/tor-sasl/jpds)
00:19:01 DNH joins (~DNH@2a02:8109:b740:2c4:e19c:8cc4:dfdc:657b)
00:22:19 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
00:23:40 × DNH quits (~DNH@2a02:8109:b740:2c4:e19c:8cc4:dfdc:657b) (Ping timeout: 250 seconds)
00:23:41 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
00:25:54 × rekahsoft quits (~rekahsoft@cpe001b21a2fd89-cm64777ddc63a0.cpe.net.cable.rogers.com) (Remote host closed the connection)
00:28:34 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
00:28:57 × gurkenglas quits (~gurkengla@dslb-178-012-018-212.178.012.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
00:29:01 <jackdk> I agree with Axman6. Stack was a good improvement at the time, but that time has passed.
00:29:05 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Remote host closed the connection)
00:29:12 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
00:29:47 <Axman6> I still think that for application development, there is some benefit to the LTS approach, but that's about it
00:30:15 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
00:30:20 <jackdk> `cabal freeze` covers that these days IMHO
00:32:05 jpds joins (~jpds@gateway/tor-sasl/jpds)
00:34:19 × dka quits (~code-is-a@ns3059207.ip-193-70-33.eu) (Quit: My Ex-Girlfriend once told me: I'm not a slut, I'm just popular)
00:35:09 dka joins (~code-is-a@ns3059207.ip-193-70-33.eu)
00:35:13 renzhi joins (~xp@2607:fa49:6500:b100::19a0)
00:35:43 redb joins (~nmh@136.49.49.211)
00:35:46 <sm> stack will still be a smoother experience for most new users most of the time.
00:36:26 <sm> but that'll keep declining as long as it's not getting maintenance
00:39:15 <jackdk> I believe that is no longer true as of some time in the past, given that we now have ghcup, the v2-* commands are default, etc.
00:39:20 jerry99 joins (~330f3999@cerf.good1.com)
00:39:59 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
00:40:35 ralu1 joins (~ralu@static.211.245.203.116.clients.your-server.de)
00:41:18 <sm> I see one tool with fewer footguns as simpler than all that, again most of the time, it's highly dependent. But YMMV
00:41:34 <jerry99> is there a shorter way of doing this?
00:41:50 <jerry99> :t let f = undefined :: Int -> String -> IO (); g = undefined :: IO Int; h = undefined :: IO String in join $ f <$> g <*> h
00:41:51 <lambdabot> IO ()
00:42:29 × jerry99 quits (~330f3999@cerf.good1.com) (Client Quit)
00:42:53 jerry99 joins (~330f3999@cerf.good1.com)
00:43:52 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Remote host closed the connection)
00:44:50 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
00:45:03 <jackdk> jerry99: Nothing comes to mind. You could write it out in `do` notation if you feel that's clearer
00:46:04 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
00:46:24 frost joins (~frost@user/frost)
00:47:17 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
00:48:00 <sm> how could that really be much shorter ? I mean, come on :)
00:48:59 <sm> with a multiline paste maybe I'd see it
00:49:02 jpds joins (~jpds@gateway/tor-sasl/jpds)
00:49:42 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving)
00:49:55 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
00:50:12 notzmv joins (~user@user/notzmv)
00:52:35 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
00:53:50 <jerry99> I find it reasonably clean, I was just wondering if I missed some operators or functions
00:54:30 <jerry99> (it being join $ f <$> g <*> h)
00:54:33 × lbseale quits (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer)
00:54:40 × teo quits (~teo@user/teo) (Remote host closed the connection)
00:57:14 redb joins (~nmh@136.49.49.211)
00:57:21 xff0x_ joins (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
01:00:56 <sm> if you happen to be using any of these packages, they seem to define a helper: https://hoogle.haskell.org/?hoogle=(Int%20-%3E%20String%20-%3E%20IO%20())%20-%3E%20IO%20Int%20-%3E%20IO%20String%20-%3E%20IO%20()
01:02:08 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
01:09:50 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
01:10:51 × JordiGH quits (~jordi@user/jordigh) (Quit: Jacking out)
01:11:09 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:14:10 × neurocyte8614492 quits (~neurocyte@user/neurocyte) (Ping timeout: 272 seconds)
01:14:30 vysn joins (~vysn@user/vysn)
01:15:27 razetime joins (~quassel@117.254.34.164)
01:17:15 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:04 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
01:19:19 andrey_ joins (~andrey@p200300dbcf070c00b5dc7288fe0a9b15.dip0.t-ipconnect.de)
01:21:09 jpds joins (~jpds@gateway/tor-sasl/jpds)
01:21:39 × andrey quits (~andrey@p200300dbcf0d4c00ca7da127e9eab0e0.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
01:22:30 redb joins (~nmh@136.49.49.211)
01:23:16 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
01:25:17 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:25:32 califax joins (~califax@user/califx)
01:27:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
01:27:28 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
01:29:22 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds)
01:30:10 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:30:36 geekosaur joins (~geekosaur@xmonad/geekosaur)
01:39:30 redb joins (~nmh@136.49.49.211)
01:43:45 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
01:49:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
01:50:34 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
01:51:20 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
01:51:29 × euandreh quits (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Quit: WeeChat 3.5)
02:01:22 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
02:01:37 redb joins (~nmh@136.49.49.211)
02:05:56 × redb quits (~nmh@136.49.49.211) (Ping timeout: 250 seconds)
02:06:48 <hololeap> @pf join $ f <$> g <*> h
02:06:48 <lambdabot> Maybe you meant: pl bf
02:06:53 <hololeap> @pl join $ f <$> g <*> h
02:06:53 <lambdabot> join (f <$> g <*> h)
02:07:55 <hololeap> I think it would be more clear with do notation, but that's just me
02:12:26 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds)
02:12:32 <hololeap> I also tried to reduce it with the knowledge that (\f -> join . fmap f) = (=<<), but it doesn't actually reduce that way
02:15:30 <hololeap> you end up with: \f g h -> (join . ((<*>) . fmap f) g) h
02:16:25 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:17:23 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
02:23:20 nate1 joins (~nate@98.45.169.16)
02:23:47 redb joins (~nmh@136.49.49.211)
02:30:47 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
02:31:21 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
02:34:11 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
02:35:19 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
02:35:35 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
02:35:52 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:36:04 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
02:36:45 redb joins (~nmh@136.49.49.211)
02:37:04 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
02:37:30 jpds joins (~jpds@gateway/tor-sasl/jpds)
02:37:34 califax joins (~califax@user/califx)
02:37:55 <Axman6> join $ liftA2 f g h might be a little shorter
02:39:01 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
02:40:02 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:40:48 <tvandinther> Quick question, I have a function that returns `IO Int` and I want to create a list of tuples of these integers `n` long. How would I do that?
02:41:10 <Axman6> what result type do you want?
02:41:21 × redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds)
02:41:43 <hololeap> tvandinther: so your function returns a different `IO Int` each time and you want to collect a few of those results?
02:41:51 <tvandinther> `IO (Int, Int)`  I suppose for the return
02:42:03 <tvandinther> yeah, basically a list of random integer tuples
02:42:14 <Axman6> the first thing that somes to mind is replicateN n ((,) <$> f <*> f)
02:42:41 <Axman6> IO (Int, Int) or IO [(Int, Int)]?
02:42:56 <tvandinther> yeah the list one
02:43:04 <hololeap> :t replicateM
02:43:05 <lambdabot> Applicative m => Int -> m a -> m [a]
02:43:26 <Axman6> looks like you want what I said above then
02:44:12 <hololeap> % :t \(f :: IO Int) (n :: Int) -> replicateM n ((,) <$> f <*> f)
02:44:13 <yahb> hololeap: IO Int -> Int -> IO [(Int, Int)]
02:44:24 <Axman6> though there might be better solutionms if you tell us where that IO Int comes from
02:44:41 <tvandinther> Cool, I think I'm getting closer to what I want. Am I correct in that I should define my pipeline functions as pure and then use `fmap` to get them to work with the IO monad?
02:45:10 <Axman6> I don't think you've given us enough information to be able to answer that
02:45:52 <hololeap> it's almost always a good idea to use the purest functions possible and then lift them into IO (or whatever abstraction) when you need to
02:46:22 <tvandinther> I have transformations that take the int tuple and checks if the integers are equal and returns a boolean, then I count how many matches there are. Then there is another variation on that where I change one of the ints in the tuple before comparison
02:47:18 <hololeap> change it with something from IO or something pure?
02:47:31 <tvandinther> change based on something pure
02:48:43 <hololeap> then you should be fine writing your two functions purely and piping in the IO Ints at the end
02:49:13 <hololeap> "piping" meaning just regular haskell function stuff, not the pipes package or anything
02:51:18 <tvandinther> Yes, I mean just passing outputs into inputs
02:51:21 × hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection)
02:53:09 <hololeap> your first function would be something like: (Int, Int) -> Bool
02:53:22 <hololeap> second would be: (Int -> Int) -> (Int, Int) -> (Int, Int)
02:55:44 <hololeap> then you would just grab your (IO [(Int, Int)]) using relicateM or repeatM in a do block, and pass them to those functions and count the results
02:56:28 <hololeap> you would end up with (IO Int) because 1) you are counting the results (Int) and 2) once you enter the IO monad your results have to be (IO a)
02:57:19 <hololeap> does that make sense?
02:58:04 <tvandinther> That makes sense. I just have questions about how to enter the IO monad
02:58:05 <tvandinther> I have a function `createTuple :: Int -> Int -> (Int, Int)` and a function `randomInt :: IO Int` and I want to apply them so that I can call something like `createTuple randomInt randomInt`
02:59:08 <hololeap> the most idiomatic way is to call randomInt twice in a do block to catch the results, then just end with `return (createTuple x y)` to get a `IO (Int, Int)` result
02:59:14 <tvandinther> and then `replicateM n createTuple'`
02:59:34 <hololeap> I can write up a quick example if you want
02:59:38 <tvandinther> I see, let me try that
03:00:02 × haasn quits (~nand@haasn.dev) (Quit: ZNC 1.7.5+deb4 - https://znc.in)
03:00:24 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection)
03:00:44 redb joins (~nmh@136.49.49.211)
03:00:48 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
03:01:24 haasn joins (~nand@haasn.dev)
03:04:20 <tvandinther> I made `createTuple' :: IO (Int, Int)` and then used it `tuples <- replicateM n createTuple'` but apparently tuples is type `[(Int, Int)]` when I expect it to be `[IO (Int, Int)]`. What am I missing?
03:05:15 <Axman6> :t replicateM
03:05:17 <lambdabot> Applicative m => Int -> m a -> m [a]
03:05:30 <Axman6> why do you expect it to be [IO (Int, Int)]?
03:06:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
03:07:47 <tvandinther> Oh should it be `IO [(Int, Int)]`?
03:08:03 <Axman6> if you're using replicateM, yes
03:08:27 <Axman6> if, for some reason, you want [IO (Int, Int)] then you can use replicate, but I doube that's what you want
03:08:32 <tvandinther> the type hint still shows me the pure list
03:08:39 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
03:09:18 <jackdk> can you copy paste from your ghci exactly what you typed and what it returned?
03:09:31 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:10:00 <tvandinther> sure, I just have to fix my file cos its got some errors
03:10:50 <jackdk> no worries =)
03:12:11 <jackdk> Meanwhile, I think I understand what's going on. When you say you wrote `tuples <- replicateM n createTuple'` but apparently tuples is type `[(Int, Int)]`, was this in GHCi?
03:13:15 <tvandinther> it wasn't, so perhaps I am being misled by HLS.
03:13:32 <jackdk> It would've been inside a `do` block, then?
03:13:34 <hololeap> tvandinther: http://sprunge.us/b5BvyB?haskell
03:13:38 <tvandinther> Quick dumb question, how do I unpack a data record? Can I do that in a where clause?
03:14:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
03:14:25 hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com)
03:14:38 <jackdk> you can pattern-match like `let MyRecordConstructor { field1 = x, field2 = y } = myRecord in ..` (or the equivalent in a `where`)
03:15:02 <hololeap> you can give each field of the data record a name, which creates a function that unpacks that particular field
03:15:09 <jackdk> also that
03:15:11 <Axman6> you can also pattern match on it: let MyRecordConstructor x y z = myRecord
03:15:16 <jackdk> also also that
03:15:34 × califax quits (~califax@user/califx) (Ping timeout: 240 seconds)
03:15:44 <Axman6> or you can turn on record dot syntax and use myRecord.field1, myRecord.filed2 :P
03:15:56 <jackdk> also also also that but let's not get ahead of ourselves =P
03:16:08 <hololeap> Axman6: when was that implemented?
03:16:11 califax joins (~califax@user/califx)
03:16:20 <hololeap> is that a 9.2 thing?
03:16:36 <jackdk> hololeap: yeah https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/overloaded_record_dot.html#extension-OverloadedRecordDot
03:16:47 <hololeap> I mean, it's sorely needed
03:17:38 <hololeap> tvandinther: I never actually used the createTuple function in that example, but it wasn't really needed
03:18:19 <jackdk> tvandinther: so anyway, when you write `x <- expression`, if `expression :: m a` for some monad `m`, then `x` has type `a`. This is because `do`-notation transforms `x <- expression` into `expression >>= \x -> ...`
03:18:50 <tvandinther> hololeap thanks for the code snippet. I'll take a closer look at it
03:21:29 redb joins (~nmh@136.49.49.211)
03:24:53 <tvandinther> Ahh I see. Because when I ran the same expression in ghci with :t I got IO [tuple]
03:25:41 dyeplexer joins (~dyeplexer@user/dyeplexer)
03:26:32 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
03:26:35 <tvandinther> and to check my understanding >>= is the bind operator which allows connecting the expression monad to the next expression using the output x?
03:27:36 <tvandinther> equivalent to unwrapping x from IO and calling the next function x -> IO y?
03:27:49 <tvandinther> I'm probably wrong somewhere
03:28:17 redb joins (~nmh@136.49.49.211)
03:32:52 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
03:33:28 redb joins (~nmh@136.49.49.211)
03:34:11 <hololeap> no, you're right. unwrapping x from IO and passing it to (x -> IO y) is what (>>=) does
03:34:27 <hololeap> do notation is just syntactic sugar for that
03:34:49 <c_wraith> as long as you only think of the "unwrapping" on the type level.
03:35:07 <hololeap> right, it's a conceptual thing
03:35:33 <c_wraith> at the value level, "unwrapping" is way too limited of a perspective to explain what's going on in IO
03:38:29 <tvandinther> So then now I have a function which is `x -> y` how do I make it `x -> IO y` so that I can pass x into it in this do block?
03:38:47 <tvandinther> I thought thats what fmap did but it doesn't seem to change it
03:38:54 <Axman6> that is what fmap does
03:39:02 <Axman6> % :t fmap @IO
03:39:02 <yahb> Axman6: (a -> b) -> IO a -> IO b
03:40:02 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:40:08 <hololeap> well, what you're probably looking for is (return . f) or (pure . f) -- return and pure are synonyms
03:40:21 <tvandinther> Hmm. this is what it tells me:  Couldn't match type ‘[]’ with ‘IO’
03:40:21 <tvandinther>   Expected: IO [Bool]
03:40:22 <tvandinther>     Actual: [[Bool]]
03:40:25 <hololeap> return and pure take a pure function and lift it to an Applicative/Monad
03:40:36 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection)
03:40:44 <hololeap> *a pure value
03:41:01 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
03:41:09 × redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds)
03:41:22 <hololeap> when I said in the comment that you have to end with an IO action, you can use return or pure which are essentially "nullary" actions
03:42:57 <hololeap> you can also use a let statement in the do block which is a pure way to assign a variable in a do block
03:42:58 <tvandinther> okay I seemed to get it with `let y = map xToYFunc [x]`
03:43:08 <tvandinther> what is the let statement sugar for?
03:43:15 <Axman6> nothing
03:43:26 <Axman6> it defines names
03:43:40 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
03:43:45 <tvandinther> ooh right. I figured thats what `x <-` was
03:43:49 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
03:43:51 bob joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
03:44:04 <hololeap> no, <- is the syntactic sugar part of the do block
03:44:07 <Axman6> though in do notation, I guess we have the sugar: ...; let x = y; ... which is equivalent to ...; let x = y in ...
03:44:11 <hololeap> that's what maps to (>>=)
03:44:26 <Axman6> let and <- do different things (pun intended)
03:44:28 redb joins (~nmh@136.49.49.211)
03:44:54 <Axman6> x <- y; other ==> y >>= \x -> other
03:45:07 <Axman6> let x = y; other ==> let x = y in other
03:45:09 <tvandinther> so the token to the left of `<-` needs to be used immediately in the next statement? or can you use it twice?
03:45:15 <Axman6> no
03:45:23 <Axman6> it is in scope from then onwards
03:45:48 <tvandinther> does it "unsugar" into a mess of nested brackets?
03:45:55 <tvandinther> if you weave the usage of it
03:46:00 <Axman6> > do {x <- [1,2,3]; y <- [10,20,30]; pure (x+y) }
03:46:02 <lambdabot> [11,21,31,12,22,32,13,23,33]
03:46:16 <hololeap> @undo do {x <- [1,2,3]; y <- [10,20,30]; pure (x+y) }
03:46:16 <lambdabot> [1, 2, 3] >>= \ x -> [10, 20, 30] >>= \ y -> pure (x + y)
03:46:17 <Axman6> whether it does or not is irrelevant
03:47:04 <hololeap> you can write it out on pen and paper if you want, but do notation is there to save your brain cells and your sanity from all that
03:47:39 <dibblego> https://github.com/system-f/fp-course/blob/master/README.markdown?plain=1#L325
03:47:57 <tvandinther> yeah I can see that. I'm just trying to get my head around how the do block actually helps us. If you used x in that example do block again after the y, does it result in brackets?
03:48:39 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
03:48:59 <Axman6> I'm not sure how that's relevant
03:49:04 × mvk quits (~mvk@2607:fea8:5ce3:8500::46a8) (Ping timeout: 250 seconds)
03:49:13 <hololeap> yes, it can result in statements wrapped in parens, if it is complex enough
03:49:18 <dibblego> when the question is itself confused, in learning environment, we stop using do-notation altogether
03:49:25 <dibblego> go back to using functions >>=
03:49:48 <Axman6> do { x <- fx; y <- fy; g x y } ==> fx >>= (\x -> fy >>= \y -> g x y))
03:50:00 <hololeap> I think they understand the concept of (>>=) but want to make sure do notation works as they intend it to
03:50:15 redb joins (~nmh@136.49.49.211)
03:50:27 <Axman6> do { x <- fx; y <- fy; g x y } ==> fx >>= (\x -> fy >>= (\y -> g x y)) -- forgot a bracket
03:50:47 <tvandinther> Cool, I think it starts to make sense to me how the do block works
03:51:09 <hololeap> tvandinther: you can use @undo in the chat to convert a do statement to (>>=) spaghetti, or send a PM to lambdabot
03:51:17 <tvandinther> I can see it tries to turn procedural statements into nested and composed function calls
03:51:25 <tvandinther> thanks for the tip
03:52:20 <hololeap> do notation can look like procedural code, but you have to remember in haskell it's all function composition
03:52:38 <hololeap> there just happens to be a 1:1 correlation between the two
03:52:54 <tvandinther> makes sense
03:53:05 <tvandinther> thanks for all your help
03:53:17 <tvandinther> my program now works and compiles
03:53:47 <tvandinther> it runs n simulations of the monty all problem and reports how many times you win the car for swapping doors and not swapping doors
03:53:54 <tvandinther> monty hall*
03:54:03 <hololeap> nice
03:56:32 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
03:59:49 akurilin_ joins (uid322841@id-322841.ilkley.irccloud.com)
04:11:03 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
04:17:25 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Remote host closed the connection)
04:17:39 gabiruh joins (~gabiruh@vps19177.publiccloud.com.br)
04:18:46 cdman joins (~dcm@27.2.216.103)
04:18:46 × cdman quits (~dcm@27.2.216.103) (Changing host)
04:18:46 cdman joins (~dcm@user/dmc/x-4369397)
04:20:48 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 276 seconds)
04:21:01 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
04:21:16 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
04:22:45 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
04:24:16 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:26:09 <hololeap> @undo do { let x = 3; let y = 4; pure (x+y) }
04:26:09 <lambdabot> <unknown>.hs:1:17:Parse error: let
04:30:00 <int-e> @undo do let { x = 3 }; let { y = 4 }; pure (x + y)
04:30:01 <lambdabot> let { x = 3} in let { y = 4} in pure (x + y)
04:30:27 deadmarshal_ joins (~deadmarsh@95.38.119.71)
04:32:03 <hololeap> hm, I don't understand the distinction there
04:32:13 hsw_ joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
04:32:31 <int-e> you need braces for the let blocks; otherwise they extend as far to the right as it goes, leading to parse errors
04:32:49 <int-e> you /can/ put those outer braces as well, but those are optional.
04:33:25 hsw__ joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
04:33:52 <hololeap> @undo do { let x = 3; y = 4 }; pure (x + y)
04:33:52 <lambdabot> <unknown>.hs:1:24:Parse error: Last statement in a do-block must be an expression
04:33:53 <int-e> @undo do let { x = 3; y = 4 }; pure (x + y)
04:33:53 <lambdabot> let { x = 3; y = 4} in pure (x + y)
04:34:18 <hololeap> ok. good to know
04:34:53 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
04:34:54 × hsw__ quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Remote host closed the connection)
04:35:11 hsw__ joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
04:35:43 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 260 seconds)
04:36:18 <int-e> fortunately this doesn't come up when writing code with layout... indenting the let bindings happens naturally
04:37:07 × hsw_ quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 260 seconds)
04:39:03 <int-e> "those are optional" ... in this example, where the `do` block is the outermost block of interest.
04:39:38 <hololeap> @undo do { let { x = 3; y = 4 }; pure (x + y) }
04:39:38 <lambdabot> let { x = 3; y = 4} in pure (x + y)
04:39:42 <int-e> I suppose it's more common to run into this in the form of `> let foo = do { bar; baz } in blah`...
04:40:28 <hololeap> yeah this only comes up for me in chat with one-line code blocks
04:41:13 <int-e> Hmm. Actually that works without braces. But it stops working if you want to have a second binding in the `let`...
04:41:51 <int-e> so context matters a lot for which braces can be omitted
04:41:58 <hololeap> @undo do { let { x = 3 }; let { y = 4 }; pure (x+y) }
04:41:58 <lambdabot> let { x = 3} in let { y = 4} in pure (x + y)
04:42:04 <hololeap> seems to work
04:42:23 <hololeap> that could be useful
04:43:16 <hololeap> :t do { z <- { let { x = 3 }; let { y = 4 }; pure (x+y) }; pure z }
04:43:17 <lambdabot> error: parse error on input ‘{’
04:43:31 <int-e> @undo do let { x = 3; }; pure 42
04:43:31 <lambdabot> let { x = 3} in pure 42
04:44:03 <int-e> Hmm. I wonder why it puts the closing brace there without a space. Oh well.
04:44:39 × hsw__ quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 240 seconds)
04:45:03 <hololeap> the mystery of the prize
04:51:17 <hololeap> https://www.youtube.com/watch?v=BGPZMt3e4vM
04:51:37 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
04:52:06 × phma quits (~phma@host-67-44-209-28.hnremote.net) (Read error: Connection reset by peer)
04:52:51 phma joins (phma@2001:5b0:212a:c5f8:8d11:236a:885c:d94f)
04:54:34 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
04:54:47 adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan)
04:57:34 hololeap joins (~hololeap@user/hololeap)
04:59:33 Guest27 joins (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9)
05:05:03 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
05:06:18 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
05:16:19 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
05:16:42 gpncarl joins (~gpncarl@210.12.195.6)
05:16:48 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Quit: Leaving)
05:16:48 × bob quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Quit: Leaving)
05:18:12 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
05:18:18 bob joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
05:20:03 × bob quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Client Quit)
05:20:03 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Client Quit)
05:20:35 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
05:20:47 bob joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
05:21:21 × bob quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
05:21:21 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (K-Lined)
05:21:58 Midjak joins (~Midjak@82.66.147.146)
05:23:19 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
05:25:09 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
05:27:07 × monochrom quits (trebla@216.138.220.146) (Quit: NO CARRIER)
05:28:47 × notzmv quits (~user@user/notzmv) (Read error: Connection reset by peer)
05:29:33 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
05:31:23 zaquest joins (~notzaques@5.130.79.72)
05:34:15 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Remote host closed the connection)
05:34:39 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
05:34:42 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
05:34:46 jakalx parts (~jakalx@base.jakalx.net) ()
05:34:54 × deadmarshal_ quits (~deadmarsh@95.38.119.71) (Ping timeout: 276 seconds)
05:36:04 jakalx joins (~jakalx@base.jakalx.net)
05:36:55 gurkenglas joins (~gurkengla@178.12.18.212)
05:37:19 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
05:43:48 monochrom joins (trebla@216.138.220.146)
05:45:06 × Guest27 quits (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9) (Quit: Client closed)
05:48:12 michalz joins (~michalz@185.246.204.61)
05:50:48 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
05:53:41 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Remote host closed the connection)
05:54:20 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
05:58:44 coot joins (~coot@213.134.190.95)
05:59:36 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
06:01:52 × jerry99 quits (~330f3999@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
06:04:29 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
06:13:54 × cheategg quits (~Username@user/cheater) (Ping timeout: 276 seconds)
06:15:13 Guest84 joins (~Guest84@157-131-110-151.fiber.dynamic.sonic.net)
06:17:06 cheategg joins (~Username@user/cheater)
06:24:51 Guest|58 joins (~Guest|58@cpe-70-124-134-106.austin.res.rr.com)
06:25:34 × Guest|58 quits (~Guest|58@cpe-70-124-134-106.austin.res.rr.com) (Client Quit)
06:28:26 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
06:29:44 <dminuoso> Anyone with nix flakes experience? Im trying to override a dependency in callCabal2nix, which appears to work in principle, except it doesnt appear to recognize the version of the replaced dependency.
06:30:33 acidjnk joins (~acidjnk@p200300d0c722df45a954244a97abeb7b.dip0.t-ipconnect.de)
06:31:08 <dminuoso> Initially I thought I could just swap out a haskell dependency `dep` by providing it in the attrset in `callCabal2nix "foo" self { dep = dep; }`
06:34:42 × raym quits (~raym@user/raym) (Quit: kernel update, rebooting...)
06:34:44 jinsun__ joins (~jinsun@user/jinsun)
06:35:27 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
06:36:30 raym joins (~raym@user/raym)
06:38:36 × jinsun quits (~jinsun@user/jinsun) (Ping timeout: 276 seconds)
06:39:58 mikoto-chan joins (~mikoto-ch@84.199.144.235)
06:40:32 dut joins (~dut@user/dut)
06:40:51 gehmehgeh joins (~user@user/gehmehgeh)
06:43:12 deadmarshal_ joins (~deadmarsh@95.38.119.71)
06:49:31 codedmart parts (codedmart@2600:3c01::f03c:92ff:fefe:8511) ()
06:51:06 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
06:52:26 fendor joins (~fendor@178.165.175.241.wireless.dyn.drei.com)
06:52:35 hsw joins (~hsw@112-104-144-236.adsl.dynamic.seed.net.tw)
06:54:28 <Axman6> TIL it's actually alowable to indent all top level definitions in a Haskell module: https://stackoverflow.com/questions/71963606/indented-import-statement-causes-parsing-error-in-stylish-haskell
06:54:32 <Axman6> I'm not ok with this
06:55:50 <dminuoso> On second thought this seems quite consistent.
06:56:18 <dminuoso> For the most part, there's not really a difference between top level declaration groups and nested declaration groups
06:56:29 <Axman6> I won't stand for it!
06:56:44 <Axman6> Up with this I will not put!
06:56:50 <dminuoso> The real question just becomes, why cant we have multiple modules per file!
06:56:59 × Guest84 quits (~Guest84@157-131-110-151.fiber.dynamic.sonic.net) (Quit: Client closed)
06:57:40 <dminuoso> But yeah, this will break my regular flow of `rg ^foo`
06:57:53 <dminuoso> I wonder whether hasktags plays nice with this
07:01:49 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
07:04:29 × hsw quits (~hsw@112-104-144-236.adsl.dynamic.seed.net.tw) (Quit: Leaving)
07:07:35 <[Leary]> dminuoso: You could always overlay the override into the haskell package set you pull callCabal2nix from. I'm not sure if there's a nicer way to do it using the final argument.
07:10:03 <dminuoso> [Leary]: I think I finally figured it out. I kept writing `outputs = { self, powerdns }: ... callCabal2nix "powerdns-gerd" self { inherit powerdns; }`, but I should have referred to the correct powerdns output.
07:10:23 <dminuoso> This is the price for not having a nominal or even structural type system.
07:10:48 <dminuoso> As long as the attrvalues in that set are sets themselves, callCabal2nix is happy.
07:11:28 × gpncarl quits (~gpncarl@210.12.195.6) (Ping timeout: 246 seconds)
07:11:30 gpncarl_ joins (~gpncarl@222.249.231.3)
07:12:52 × jinsun__ quits (~jinsun@user/jinsun) (Ping timeout: 246 seconds)
07:13:09 jinsun joins (~jinsun@user/jinsun)
07:14:44 × cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving)
07:21:13 odnes joins (~odnes@5-203-234-96.pat.nym.cosmote.net)
07:24:35 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Remote host closed the connection)
07:25:11 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
07:26:03 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
07:27:14 gehmehgeh joins (~user@user/gehmehgeh)
07:29:36 zeenk joins (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94)
07:30:36 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Ping timeout: 276 seconds)
07:31:38 × awpr quits (uid446117@id-446117.lymington.irccloud.com) (Quit: Connection closed for inactivity)
07:32:28 anomal joins (~anomal@87.227.196.109)
07:34:31 × yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 256 seconds)
07:36:14 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
07:38:19 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 240 seconds)
07:40:59 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
07:41:35 jgeerds joins (~jgeerds@d53604b0.access.ecotel.net)
07:41:39 × zyklotomic quits (~ethan@r4-128-61-95-197.res.gatech.edu) (Ping timeout: 276 seconds)
07:42:12 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 250 seconds)
07:42:16 × mniip_ quits (mniip@libera/staff/mniip) (Ping timeout: 620 seconds)
07:43:22 CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
07:43:26 zyklotomic joins (~ethan@res380d-128-61-80-194.res.gatech.edu)
07:44:55 michalz joins (~michalz@185.246.204.61)
07:45:56 cdman joins (~dcm@27.2.216.103)
07:45:57 × cdman quits (~dcm@27.2.216.103) (Changing host)
07:45:57 cdman joins (~dcm@user/dmc/x-4369397)
07:45:57 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:47:23 chele joins (~chele@user/chele)
07:49:16 machinedgod joins (~machinedg@24.105.81.50)
07:50:03 × machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection)
07:51:12 machinedgod joins (~machinedg@24.105.81.50)
07:51:13 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
07:51:53 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
07:56:21 michalz joins (~michalz@185.246.204.45)
07:56:58 × coot quits (~coot@213.134.190.95) (Ping timeout: 272 seconds)
07:58:19 × michalz quits (~michalz@185.246.204.45) (Read error: Connection reset by peer)
08:02:32 × acidjnk quits (~acidjnk@p200300d0c722df45a954244a97abeb7b.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
08:02:57 vpan joins (~0@212.117.1.172)
08:03:17 michalz joins (~michalz@185.246.204.57)
08:03:55 × zeenk quits (~zeenk@2a02:2f04:a313:d600:8d26:ec9f:3ff6:fc94) (Quit: Konversation terminated!)
08:04:28 frost joins (~frost@user/frost)
08:06:22 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
08:07:47 × michalz quits (~michalz@185.246.204.57) (Read error: Connection reset by peer)
08:09:10 acidjnk joins (~acidjnk@p200300d0c722df458c295d85833d4515.dip0.t-ipconnect.de)
08:09:56 × vysn quits (~vysn@user/vysn) (Ping timeout: 250 seconds)
08:10:49 geekosaur joins (~geekosaur@xmonad/geekosaur)
08:12:55 michalz joins (~michalz@185.246.204.45)
08:15:20 × michalz quits (~michalz@185.246.204.45) (Read error: Connection reset by peer)
08:15:38 chomwitt joins (~chomwitt@2a02:587:dc1b:da00:499a:9af7:6bda:a228)
08:16:26 EvanR_ joins (~EvanR@user/evanr)
08:17:05 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:17:23 × EvanR quits (~EvanR@user/evanr) (Ping timeout: 260 seconds)
08:19:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
08:19:51 michalz joins (~michalz@185.246.204.43)
08:20:28 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
08:21:22 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
08:22:28 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
08:23:50 ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:1aaa:c763:5b18:efae)
08:23:50 × michalz quits (~michalz@185.246.204.43) (Read error: Connection reset by peer)
08:26:06 × jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 272 seconds)
08:26:15 × acidjnk quits (~acidjnk@p200300d0c722df458c295d85833d4515.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
08:29:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
08:29:07 michalz joins (~michalz@185.246.204.61)
08:30:11 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
08:33:48 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
08:34:11 michalz joins (~michalz@185.246.204.57)
08:34:27 Pickchea joins (~private@user/pickchea)
08:36:27 × michalz quits (~michalz@185.246.204.57) (Read error: Connection reset by peer)
08:36:45 michalz joins (~michalz@185.246.204.43)
08:39:07 × deadmarshal_ quits (~deadmarsh@95.38.119.71) (Ping timeout: 256 seconds)
08:39:42 deadmarshal_ joins (~deadmarsh@95.38.229.172)
08:41:27 × michalz quits (~michalz@185.246.204.43) (Read error: Connection reset by peer)
08:43:17 × xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
08:45:15 pagnol joins (~user@014198154145.ctinets.com)
08:45:33 MajorBiscuit joins (~MajorBisc@145.94.234.148)
08:46:09 kimjetwav joins (~user@2607:fea8:2362:b400:96b1:77a5:e350:efea)
08:46:19 michalz joins (~michalz@185.246.204.57)
08:47:52 × michalz quits (~michalz@185.246.204.57) (Read error: Connection reset by peer)
08:49:27 × dminuoso quits (~dminuoso@user/dminuoso) (Quit: ZNC 1.7.5 - https://znc.in)
08:49:31 × m1dnight quits (~christoph@78-22-9-5.access.telenet.be) (Quit: WeeChat 3.5)
08:50:04 dminuoso joins (~dminuoso@static.88-198-218-68.clients.your-server.de)
08:50:53 m1dnight joins (~christoph@78-22-9-5.access.telenet.be)
08:51:39 michalz joins (~michalz@185.246.204.61)
08:52:50 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
08:56:33 × phma quits (phma@2001:5b0:212a:c5f8:8d11:236a:885c:d94f) (Read error: Connection reset by peer)
08:56:46 michalz joins (~michalz@185.246.204.57)
08:57:05 phma joins (~phma@host-67-44-208-95.hnremote.net)
08:58:06 × michalz quits (~michalz@185.246.204.57) (Remote host closed the connection)
08:58:29 <albet70> % :t join @((->)(a->b))
08:59:17 <albet70> :t join @((->)(_->_))
08:59:18 <lambdabot> error: parse error on input ‘->’
09:00:10 × AdamConner-Sax[m quits (~adamcsmat@2001:470:69fc:105::1:e2c8) (Quit: You have been kicked for being idle)
09:01:01 <albet70> join :: ((a->b) -> (a->b)->c) -> (a->b)->c
09:01:14 AdamConner-Sax[m joins (~adamcsmat@2001:470:69fc:105::1:e2c8)
09:01:14 AdamConner-Sax[m parts (~adamcsmat@2001:470:69fc:105::1:e2c8) ()
09:01:22 <albet70> which senecio would use this join?
09:04:13 michalz joins (~michalz@185.246.204.61)
09:05:37 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
09:05:39 × cosimone quits (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 240 seconds)
09:08:24 × ikke quits (~kevin@alpine/developer/ikke) (Quit: WeeChat 3.2)
09:10:19 cosimone joins (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20)
09:10:34 michalz joins (~michalz@185.246.204.43)
09:11:51 zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:f495:2a2b:7341:cd42)
09:13:13 briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl)
09:14:35 × michalz quits (~michalz@185.246.204.43) (Read error: Connection reset by peer)
09:18:08 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
09:19:46 michalz joins (~michalz@185.246.204.61)
09:23:09 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
09:28:10 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds)
09:31:34 mmhat joins (~mmh@55d4d532.access.ecotel.net)
09:32:32 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
09:32:59 × deadmarshal_ quits (~deadmarsh@95.38.229.172) (Ping timeout: 240 seconds)
09:34:59 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
09:37:02 × chomwitt quits (~chomwitt@2a02:587:dc1b:da00:499a:9af7:6bda:a228) (Ping timeout: 250 seconds)
09:42:53 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
09:43:15 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 260 seconds)
09:44:00 × xff0x_ quits (~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 272 seconds)
09:47:29 michalz joins (~michalz@185.246.204.45)
09:48:02 cyphase joins (~cyphase@user/cyphase)
09:48:42 chomwitt joins (~chomwitt@94.66.60.112)
09:50:50 × michalz quits (~michalz@185.246.204.45) (Read error: Connection reset by peer)
09:52:57 × Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds)
09:55:43 odnes_ joins (~odnes@5-203-161-139.pat.nym.cosmote.net)
09:55:58 × odnes quits (~odnes@5-203-234-96.pat.nym.cosmote.net) (Read error: Connection reset by peer)
09:56:08 michalz joins (~michalz@185.246.204.57)
09:57:11 × dminuoso quits (~dminuoso@static.88-198-218-68.clients.your-server.de) (Quit: ZNC 1.7.5 - https://znc.in)
09:58:19 × oxide quits (~lambda@user/oxide) (Ping timeout: 240 seconds)
09:58:19 × michalz quits (~michalz@185.246.204.57) (Read error: Connection reset by peer)
09:58:40 zebrag joins (~chris@user/zebrag)
10:00:33 oxide joins (~lambda@user/oxide)
10:01:45 acidjnk joins (~acidjnk@p200300d0c722df45b88c221642ee616c.dip0.t-ipconnect.de)
10:03:02 michalz joins (~michalz@185.246.204.45)
10:03:14 akegalj joins (~akegalj@78-3-37-199.adsl.net.t-com.hr)
10:03:33 × mikoto-chan quits (~mikoto-ch@84.199.144.235) (Ping timeout: 256 seconds)
10:04:14 __monty__ joins (~toonn@user/toonn)
10:06:31 redb joins (~nmh@136.49.49.211)
10:09:28 × michalz quits (~michalz@185.246.204.45) (Read error: Connection reset by peer)
10:09:54 michalz joins (~michalz@185.246.204.45)
10:10:55 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
10:11:47 <akegalj> Do I remember correctly that there were 1200 active users in this channel 5+ years ago (on freenode network at that time)? Did this drop happen when #haskell changed networks or is there some other dynamics at play? I really enjoy reading discussion and tips and tricks shered in this channel and I hope it stays healthy :)
10:12:18 <geekosaur> happened with the cutover from freenode
10:12:30 <geekosaur> we figure there were never 1200 *active* users
10:14:04 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:14:04 × michalz quits (~michalz@185.246.204.45) (Read error: Connection reset by peer)
10:14:13 <akegalj> yeah, I am mostly in read only mode as well. But if I feel confident contributing (which i rarelly do :D) I step in
10:14:48 <akegalj> ok, so freenode cutover is main reason
10:18:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
10:18:48 michalz joins (~michalz@185.246.204.45)
10:20:39 × michalz quits (~michalz@185.246.204.45) (Read error: Connection reset by peer)
10:22:04 × tvandinther quits (~tvandinth@2406:e002:6815:1801:f923:49c9:3df2:db52) (Quit: Client closed)
10:25:05 × crameleon quits (~LSD@2a03:4000:55:d20::3) (Quit: I love you.)
10:25:15 michalz joins (~michalz@185.246.204.43)
10:28:27 × michalz quits (~michalz@185.246.204.43) (Read error: Connection reset by peer)
10:28:29 <sm> in two ways: cleaning out of inactive nicks, and people taking the opportunity to try newer chat systems
10:30:34 × haskl[error] quits (~haskl@user/haskl) (Read error: Connection reset by peer)
10:30:50 <yushyin> i still see all the regulars from before the network change (and also lots of new nicks) ^^
10:33:04 haskl joins (~haskl@user/haskl)
10:33:42 michalz joins (~michalz@185.246.204.43)
10:35:38 × Batzy quits (~quassel@user/batzy) (Quit: No Ping reply in 180 seconds.)
10:36:54 × odnes_ quits (~odnes@5-203-161-139.pat.nym.cosmote.net) (Remote host closed the connection)
10:37:04 Batzy joins (~quassel@user/batzy)
10:37:13 odnes_ joins (~odnes@5-203-161-139.pat.nym.cosmote.net)
10:37:36 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:38:08 acidsys joins (~crameleon@2a03:4000:6:b666:6666::)
10:38:19 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
10:39:10 coot joins (~coot@213.134.190.95)
10:39:38 jgeerds joins (~jgeerds@d53604b0.access.ecotel.net)
10:40:18 Lord_of_Life_ is now known as Lord_of_Life
10:40:40 redb joins (~nmh@136.49.49.211)
10:48:05 × michalz quits (~michalz@185.246.204.43) (Read error: Connection reset by peer)
10:49:19 jakalx parts (~jakalx@base.jakalx.net) ()
10:49:43 jakalx joins (~jakalx@base.jakalx.net)
10:49:52 × redb quits (~nmh@136.49.49.211) (Ping timeout: 272 seconds)
10:50:51 deadmarshal_ joins (~deadmarsh@95.38.229.172)
10:51:21 × odnes_ quits (~odnes@5-203-161-139.pat.nym.cosmote.net) (Quit: Leaving)
10:52:52 michalz joins (~michalz@185.246.204.61)
10:54:04 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
10:54:04 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
10:55:34 × deadmarshal_ quits (~deadmarsh@95.38.229.172) (Ping timeout: 272 seconds)
10:56:17 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
10:59:05 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 256 seconds)
10:59:09 michalz joins (~michalz@185.246.204.45)
10:59:43 Vajb joins (~Vajb@2001:999:504:1dda:267d:6860:bdf7:f68b)
10:59:44 × akegalj quits (~akegalj@78-3-37-199.adsl.net.t-com.hr) (Quit: leaving)
11:00:15 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
11:01:12 × chenqisu1 quits (~chenqisu1@183.217.200.38) (Ping timeout: 276 seconds)
11:03:11 abastro joins (~abab9579@220.75.216.63)
11:04:23 × michalz quits (~michalz@185.246.204.45) (Read error: Connection reset by peer)
11:06:26 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Remote host closed the connection)
11:07:10 redb joins (~nmh@136.49.49.211)
11:07:57 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
11:08:47 mikoto-chan joins (~mikoto-ch@213.177.151.239)
11:09:38 michalz joins (~michalz@185.246.204.61)
11:10:27 × acidjnk quits (~acidjnk@p200300d0c722df45b88c221642ee616c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
11:11:13 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
11:21:39 × xcombelle quits (~xavie@176-139-252-198.abo.bbox.fr) (Ping timeout: 240 seconds)
11:26:00 × joo-_ quits (~joo-_@fsf/member/joo--) (Quit: leaving)
11:26:14 joo-_ joins (~joo-_@87-49-147-113-mobile.dk.customer.tdc.net)
11:26:14 × joo-_ quits (~joo-_@87-49-147-113-mobile.dk.customer.tdc.net) (Changing host)
11:26:14 joo-_ joins (~joo-_@fsf/member/joo--)
11:27:24 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
11:32:30 michalz joins (~michalz@185.246.204.61)
11:33:44 × Vajb quits (~Vajb@2001:999:504:1dda:267d:6860:bdf7:f68b) (Read error: Connection reset by peer)
11:34:34 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
11:35:28 acidjnk joins (~acidjnk@p200300d0c722df45b88c221642ee616c.dip0.t-ipconnect.de)
11:35:52 redb joins (~nmh@136.49.49.211)
11:43:39 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
11:44:59 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
11:48:36 michalz joins (~michalz@185.246.204.43)
11:48:46 × jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 272 seconds)
11:49:54 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:52:17 × michalz quits (~michalz@185.246.204.43) (Read error: Connection reset by peer)
11:53:38 × califax quits (~califax@user/califx) (Remote host closed the connection)
11:54:37 califax joins (~califax@user/califx)
11:56:11 × zer0bitz quits (~zer0bitz@2001:2003:f444:8f00:f495:2a2b:7341:cd42) (Read error: Connection reset by peer)
11:57:33 michalz joins (~michalz@185.246.204.61)
11:57:39 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
11:57:56 img joins (~img@user/img)
11:59:16 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:59:36 euandreh joins (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174)
12:01:52 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
12:06:55 michalz joins (~michalz@185.246.204.57)
12:08:42 × euandreh quits (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Ping timeout: 250 seconds)
12:08:42 × michalz quits (~michalz@185.246.204.57) (Read error: Connection reset by peer)
12:09:54 ubert1 joins (~Thunderbi@2a02:8109:9880:303c:64b2:910f:832:8385)
12:12:01 michalz joins (~michalz@185.246.204.57)
12:13:49 redb joins (~nmh@136.49.49.211)
12:13:49 × michalz quits (~michalz@185.246.204.57) (Read error: Connection reset by peer)
12:17:08 michalz joins (~michalz@185.246.204.57)
12:17:59 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
12:18:39 × acidjnk quits (~acidjnk@p200300d0c722df45b88c221642ee616c.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
12:21:37 × razetime quits (~quassel@117.254.34.164) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:23:47 × michalz quits (~michalz@185.246.204.57) (Read error: Connection reset by peer)
12:24:14 michalz joins (~michalz@185.246.204.43)
12:25:18 euandreh joins (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174)
12:25:18 × michalz quits (~michalz@185.246.204.43) (Read error: Connection reset by peer)
12:26:25 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Remote host closed the connection)
12:27:01 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
12:28:26 xff0x_ joins (~xff0x@om126194210237.10.openmobile.ne.jp)
12:28:55 abrantesasf joins (~abrantesa@177.25.190.164)
12:28:56 redb joins (~nmh@136.49.49.211)
12:29:00 michalz joins (~michalz@185.246.204.61)
12:29:19 × abrantesasf quits (~abrantesa@177.25.190.164) (Remote host closed the connection)
12:31:12 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
12:31:38 michalz joins (~michalz@185.246.204.61)
12:32:01 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
12:33:07 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
12:36:16 × michalz quits (~michalz@185.246.204.61) (Read error: Connection reset by peer)
12:40:43 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
12:42:36 × cheategg quits (~Username@user/cheater) (Ping timeout: 272 seconds)
12:42:50 cheategg joins (~Username@user/cheater)
12:50:27 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 240 seconds)
12:54:28 × abastro quits (~abab9579@220.75.216.63) (Remote host closed the connection)
12:55:15 × Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 256 seconds)
12:57:17 fluxit joins (~fluxit@techsmix.net)
13:02:44 Pickchea joins (~private@user/pickchea)
13:03:34 stef204 joins (~stef204@user/stef204)
13:03:57 redb joins (~nmh@136.49.49.211)
13:04:01 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
13:04:12 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 240 seconds)
13:08:07 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
13:09:27 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
13:10:17 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Remote host closed the connection)
13:10:51 meinside joins (uid24933@id-24933.helmsley.irccloud.com)
13:11:34 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
13:13:08 zer0bitz joins (~zer0bitz@2001:2003:f444:8f00:c820:105d:e1c4:cead)
13:14:53 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
13:17:32 × coot quits (~coot@213.134.190.95) (Quit: coot)
13:19:53 deadmarshal_ joins (~deadmarsh@95.38.229.172)
13:21:04 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 246 seconds)
13:23:19 mikoto-chan joins (~mikoto-ch@213.177.151.239)
13:24:17 <carter> Matrix channels have those accidental conference notifications
13:24:51 × deadmarshal_ quits (~deadmarsh@95.38.229.172) (Ping timeout: 276 seconds)
13:26:01 abrantesasf joins (~abrantesa@177.25.190.176)
13:26:11 × abrantesasf quits (~abrantesa@177.25.190.176) (Remote host closed the connection)
13:27:12 coot joins (~coot@213.134.190.95)
13:27:47 abastro joins (~abab9579@220.75.216.63)
13:28:31 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 3.5)
13:29:20 × rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
13:30:10 × gpncarl_ quits (~gpncarl@222.249.231.3) (Ping timeout: 250 seconds)
13:30:13 rembo10 joins (~rembo10@main.remulis.com)
13:36:09 Ram-Z joins (~Ram-Z@li1814-254.members.linode.com)
13:36:22 redb joins (~nmh@136.49.49.211)
13:39:23 × frost quits (~frost@user/frost) (Quit: Client closed)
13:40:53 × abastro quits (~abab9579@220.75.216.63) (Remote host closed the connection)
13:41:06 × redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds)
13:41:30 abastro joins (~abab9579@220.75.216.63)
13:41:40 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Read error: Connection reset by peer)
13:41:50 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
13:42:14 redb joins (~nmh@136.49.49.211)
13:42:37 × ubert1 quits (~Thunderbi@2a02:8109:9880:303c:64b2:910f:832:8385) (Quit: ubert1)
13:42:55 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
13:42:55 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
13:42:55 wroathe joins (~wroathe@user/wroathe)
13:45:38 × anomal quits (~anomal@87.227.196.109) (Remote host closed the connection)
13:45:57 anomal joins (~anomal@87.227.196.109)
13:46:05 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:46:57 × redb quits (~nmh@136.49.49.211) (Ping timeout: 276 seconds)
13:49:11 abrantesasf joins (~abrantesa@179.217.49.34)
13:49:27 × abrantesasf quits (~abrantesa@179.217.49.34) (Remote host closed the connection)
13:49:54 abrantesasf joins (~abrantesa@179.217.49.34)
13:50:05 × abrantesasf quits (~abrantesa@179.217.49.34) (Remote host closed the connection)
13:54:10 × Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds)
13:54:43 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Quit: Leaving)
13:55:24 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 276 seconds)
13:56:11 Sgeo joins (~Sgeo@user/sgeo)
13:56:17 geekosaur joins (~geekosaur@xmonad/geekosaur)
13:56:37 mikoto-chan joins (~mikoto-ch@213.177.151.239)
13:59:04 deadmarshal_ joins (~deadmarsh@95.38.229.172)
14:00:39 gpncarl_ joins (~gpncarl@120.244.220.254)
14:00:42 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
14:01:08 × Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 272 seconds)
14:02:04 vysn joins (~vysn@user/vysn)
14:03:51 × deadmarshal_ quits (~deadmarsh@95.38.229.172) (Ping timeout: 276 seconds)
14:05:00 img joins (~img@user/img)
14:09:52 Sgeo joins (~Sgeo@user/sgeo)
14:11:42 redb joins (~nmh@136.49.49.211)
14:12:35 × ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec)
14:15:36 × mmhat quits (~mmh@55d4d532.access.ecotel.net) (Quit: WeeChat 3.5)
14:16:01 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
14:17:30 frost joins (~frost@user/frost)
14:18:59 × off^ quits (~off@50-192-56-193-static.hfc.comcastbusiness.net) (Remote host closed the connection)
14:22:42 redb joins (~nmh@136.49.49.211)
14:25:42 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
14:25:50 lagash is mostly lurking these days.
14:26:05 <shapr> hi lagash, writing any cool code?
14:26:14 × berberman quits (~berberman@user/berberman) (Quit: ZNC 1.8.2 - https://znc.in)
14:26:35 berberman joins (~berberman@user/berberman)
14:27:39 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:28:17 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
14:31:10 jmdaemon joins (~jmdaemon@user/jmdaemon)
14:31:33 justsomeguy joins (~justsomeg@user/justsomeguy)
14:31:43 <lagash> sadly no, at least, not in Haskell.. although I was thinking of writing a dictionary conversion tool using some Haskell XML library..
14:32:09 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
14:37:15 waleee joins (~waleee@h-155-4-221-82.NA.cust.bahnhof.se)
14:38:33 abrantesasf joins (~abrantesa@179.217.49.34)
14:38:43 × abrantesasf quits (~abrantesa@179.217.49.34) (Remote host closed the connection)
14:43:23 × coot quits (~coot@213.134.190.95) (Quit: coot)
14:50:33 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:55:27 jakalx parts (~jakalx@base.jakalx.net) ()
14:55:54 redb joins (~nmh@136.49.49.211)
14:56:02 <oak-> at least hxt is somewhat reasonable XML-library for Haskell
14:56:09 jakalx joins (~jakalx@base.jakalx.net)
14:57:20 × Ram-Z quits (~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 246 seconds)
15:03:16 × redb quits (~nmh@136.49.49.211) (Ping timeout: 246 seconds)
15:05:43 redb joins (~nmh@136.49.49.211)
15:06:32 × ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:1aaa:c763:5b18:efae) (Ping timeout: 248 seconds)
15:07:40 × cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving)
15:09:30 tfeb joins (~tfb@88.98.95.237)
15:09:59 × redb quits (~nmh@136.49.49.211) (Ping timeout: 240 seconds)
15:10:42 redb joins (~nmh@136.49.49.211)
15:12:05 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:12:13 Ram-Z joins (~Ram-Z@li1814-254.members.linode.com)
15:14:37 jakalx parts (~jakalx@base.jakalx.net) ()
15:14:47 jakalx joins (~jakalx@base.jakalx.net)
15:16:09 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
15:16:46 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Remote host closed the connection)
15:16:57 azimut joins (~azimut@gateway/tor-sasl/azimut)
15:17:13 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
15:17:55 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
15:21:15 <raehik> When I try generating Haddocks with `cabal haddock`, I get a haddock internal error telling me one of the dependencies is missing a file `<pkg>/share/doc/html/doc-index.json`
15:21:41 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
15:21:43 <raehik> I can't figure out how to either generate that file, or not require it
15:22:01 <raehik> (this is GHC 9.2, Cabal 3.6, but it occurred with Cabal 3.4 also)
15:23:26 <monochrom> I don't know how to unrequire it. But I would have built all dependencies with library docs enabled. Hell, I do, my .cabal/config has "documentation: True", which is sadly non-default.
15:23:30 <geekosaur> generally you have to install all dependencies with 'documentation: True'
15:23:59 <monochrom> cabal has a lot of wrong defaults
15:24:11 <geekosaur> if you don't do what monochrom says, you can add it to cabal.package as a stanza 'package *\n documentation: True'
15:24:15 tfeb joins (~tfb@88.98.95.237)
15:24:27 <monochrom> Well, they are the right defaults for xmonad users who otherwise wouldn't use Haskell, really.
15:24:29 <raehik> I'm running `cabal haddock --enable-documentation` - does that not do the same?
15:24:56 <monochrom> That does not say "do it for dependencies too".
15:25:07 <geekosaur> it doesn't go back and run haddock for dependencies
15:25:33 <monochrom> "cabal build" is usually the deadline for saying how to build dependencies.
15:25:56 <monochrom> "That ship has sailed"
15:25:58 <raehik> gotcha. thanks
15:26:00 <sclv> hrm, so would `cabal build --enable-documentation` and then `cabal haddock --enable-documentation` then work?
15:26:17 <monochrom> Then that second command is redundant.
15:26:18 <sclv> in general cabal v2-haddock has a lot of rough edges iirc
15:26:22 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
15:26:49 <sclv> do you think this would warrant a patch to cabal to make `cabal haddock --enable-documentation` recursively ensure dep docs are built too?
15:27:39 <monochrom> Yeah "cabal haddock" came from even before v1 time. When the workflow was analogous to C people, a "make configure", "make build", "make build docs", "make install".
15:27:49 <raehik> checking exact behaviour for build -> haddock, haddock with a cabal.project
15:28:12 <monochrom> I would remove "cabal haddock" altogether.
15:28:15 <raehik> should I just do a `cabal build --enable-docs --haddock-for-hackage`, is that better? (does that last flag work?)
15:28:41 <sclv> the last flag does something, but it may not be what you want for local, i don't recall
15:28:50 <sclv> it sets a bunch of default flags to make things the way hackage expects
15:29:02 <raehik> (this is for a CI run that generates Haddock artifacts so I don't have to do locally)
15:30:27 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4)
15:31:39 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:34:11 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
15:34:17 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
15:34:38 × euandreh quits (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174) (Quit: WeeChat 3.5)
15:34:52 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 272 seconds)
15:35:43 mikoto-chan joins (~mikoto-ch@213.177.151.239)
15:36:55 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:37:59 × MajorBiscuit quits (~MajorBisc@145.94.234.148) (Ping timeout: 240 seconds)
15:41:16 <raehik> I'm still not generating that doc-index.json file. I get doc-index.html s, and the Haddock is certainly built, but when the dependencies are finished, it fails with the same error
15:42:28 × chomwitt quits (~chomwitt@94.66.60.112) (Ping timeout: 272 seconds)
15:43:04 yauhsien joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
15:45:00 × xff0x_ quits (~xff0x@om126194210237.10.openmobile.ne.jp) (Read error: Connection reset by peer)
15:45:22 × CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
15:47:16 <raehik> I've solved it by adding `haddock-options: --quickjump` to my cabal.project . My setup is super barebones, tiny project, GHC 9.2 via ghcup, latest everything. Is this a bug?
15:47:58 <sclv> its certainly a bad user interface experience
15:48:05 <raehik> without that --quickjump, the dependencies apparently don't build with it, even though the main project will (and so errors)
15:48:06 romesrf joins (~romes@185.5.8.134)
15:48:13 <sclv> I'm not sure if the fault lies with haddock here or how cabal invokes haddock
15:48:30 <sclv> Ah -- I think I see the problem.
15:48:31 <raehik> I think the latter
15:48:37 <sclv> haddock-for-hackage implies quickjump
15:48:45 chomwitt joins (~chomwitt@94.66.63.97)
15:48:49 <monochrom> :)
15:49:10 <sclv> but documentation: true does not
15:49:13 <raehik> I see, thanks! why has it only recently broken? :/
15:49:41 <sclv> well v2 haddock was effectively not working for quite some time, i don't think it ever worked well
15:50:12 <raehik> I'm using `cabal build` now, same issue
15:50:30 <sclv> right, by "cabal haddock" i meant v2 support for haddock in general
15:50:38 <raehik> ah, understand
15:50:43 <raehik> s/and/ood/
15:52:04 <sclv> I think we need three things here -- A) make `cabal haddock` ensure haddocks of dependencies exist, B) make `--haddock-for-hackage` imply the quickjump flag for dependencies of the package being haddocked, and C) make haddock not fail when quickjump doesn't find that file
15:52:54 <raehik> yes, sounds about right
15:53:10 <sclv> feel free to open some tickets in both repos about this
15:53:27 <raehik> A) might not be a problem -- dependencies were having their docs built. but, might be because of --enable-docs
15:53:58 <raehik> cheers sclv , I'll make an issue for cabal
15:54:02 <sclv> ah so if it weren't for quicjump, the `haddock` workflow might work correctly? nice
15:54:18 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.5)
15:54:24 <sclv> also i do think haddock should not hard fail if it can't find the quickjump index-doc whatever
15:54:48 <sclv> in general i didn't think quikjump jumped to dependencies as well, so its a bit confusing
15:56:01 tfeb joins (~tfb@88.98.95.237)
15:57:02 Guest6488 joins (~Guest64@77.67.160.175)
15:57:29 euandreh joins (~euandreh@2804:14c:33:9fe5:2165:73d6:1630:f174)
15:59:45 × Guest6488 quits (~Guest64@77.67.160.175) (Client Quit)
16:00:19 <romesrf> Could someone help me fix a GHC error on the `notes` test?
16:00:39 <romesrf> The output says a note was deleted, but it wasn't ;_;
16:00:58 <romesrf> What's the formatting for notes?
16:02:12 <geekosaur> did you want to ask that in #ghc? most of us are end users
16:03:53 <romesrf> geekosaur: my mistake
16:04:43 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:05:05 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds)
16:05:16 wootehfoot joins (~wootehfoo@user/wootehfoot)
16:05:56 lbseale joins (~ep1ctetus@user/ep1ctetus)
16:07:00 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:07:05 mikoto-chan joins (~mikoto-ch@213.177.151.239)
16:07:23 notzmv joins (~zmv@user/notzmv)
16:08:25 × tfeb quits (~tfb@88.98.95.237) (Remote host closed the connection)
16:08:39 × abastro quits (~abab9579@220.75.216.63) (Ping timeout: 276 seconds)
16:10:48 <monochrom> IMO "cabal build --appropriate-options-and-or-cabal.project-settings" already supercedes "cabal haddock" so "cabal haddock" should be removed to eliminate confusion rather than stay and get fixed and be a time sink.
16:11:24 titibandit joins (~titibandi@xdsl-87-78-211-190.nc.de)
16:11:27 × Techcable quits (~Techcable@user/Techcable) (Ping timeout: 240 seconds)
16:12:11 <monochrom> The command came from an ancient workflow metaphor that no longer applies today.
16:14:55 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
16:15:14 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:17:11 econo joins (uid147250@user/econo)
16:18:12 <sclv> i don't think that resolves either of the two underlying issues here, but i'd probably be ok with that.
16:18:20 neceve joins (~quassel@2.29.116.221)
16:19:36 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
16:20:45 × pagnol quits (~user@014198154145.ctinets.com) (Remote host closed the connection)
16:23:28 × dut quits (~dut@user/dut) (Quit: Leaving)
16:23:30 × vysn quits (~vysn@user/vysn) (Ping timeout: 250 seconds)
16:23:58 dcoutts_ joins (~duncan@host86-150-41-186.range86-150.btcentralplus.com)
16:26:07 × dcoutts__ quits (~duncan@host213-122-143-81.range213-122.btcentralplus.com) (Ping timeout: 240 seconds)
16:30:41 × titibandit quits (~titibandi@xdsl-87-78-211-190.nc.de) (Remote host closed the connection)
16:30:50 titibandit joins (~titibandi@xdsl-87-78-211-190.nc.de)
16:31:51 ec joins (~ec@gateway/tor-sasl/ec)
16:32:16 vicfred joins (~vicfred@user/vicfred)
16:34:22 × romesrf quits (~romes@185.5.8.134) (Quit: WeeChat 3.4.1)
16:40:02 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
16:40:08 × titibandit quits (~titibandi@xdsl-87-78-211-190.nc.de) (Remote host closed the connection)
16:40:18 titibandit joins (~titibandi@xdsl-87-78-211-190.nc.de)
16:42:43 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Read error: Connection reset by peer)
16:43:06 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
16:47:46 stackdroid18 joins (~stackdroi@user/stackdroid)
16:49:21 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
16:49:46 <abastro[m]> What does `-haddock` ghc-option do?
16:50:02 <abastro[m]> + What is documentation: True
16:50:58 coot joins (~coot@213.134.190.95)
16:51:04 <geekosaur> "documentation: True" is a cabal configuration option to generate documentation for a groupof packages (in cabal.project) or all packages (in ~/.cabal/config)
16:52:20 <geekosaur> hm. does ghc even have a -haddock option any more? I thought haddock was offloaded instead of being built in these days
16:52:48 <geekosaur> I guess it does. it must run haddock for you
16:52:57 Tuplanolla joins (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi)
16:53:07 <abastro[m]> I cannot see the documentation with -haddock flag off.
16:53:11 <geekosaur> (haddock wants access to the typechecker so it can generate documentation for types)
16:54:20 <abastro[m]> So ye it works, and I do not know of any other way to view haddock
16:59:34 romesrf joins (~romes@185.5.8.134)
16:59:40 × vpan quits (~0@212.117.1.172) (Quit: Leaving.)
16:59:54 × titibandit quits (~titibandi@xdsl-87-78-211-190.nc.de) (Ping timeout: 250 seconds)
17:00:00 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds)
17:04:13 Core1633 joins (~Core1633@106.211.72.183)
17:09:25 <sclv> "By default, GHC ignores Haddock comments (-- | ... and -- ^ ...) and does not check that they’re associated with a valid term, such as a top-level type-signature. With this flag GHC will parse Haddock comments and include them in the interface file it produces."
17:10:03 <sclv> so ghc doesn't run haddock for you, but haddock requires its interface file output, and that flag is necessary to generate that output such that haddock can consume it
17:10:48 <geekosaur> guess that explains the discussions about fat interface files in #ghc
17:11:15 <geekosaur> where was that hidden? it's not in the flag reference
17:11:29 <geekosaur> (sadly that seems to be true of a number of flags)
17:13:24 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
17:13:55 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:14:11 cafkafk joins (~cafkafk@user/cafkafk)
17:18:44 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:20:27 × redb quits (~nmh@136.49.49.211) (Ping timeout: 256 seconds)
17:24:20 redb joins (~nmh@136.49.49.211)
17:24:59 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
17:24:59 × waleee quits (~waleee@h-155-4-221-82.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
17:26:36 acidjnk joins (~acidjnk@p200300d0c722df45b88c221642ee616c.dip0.t-ipconnect.de)
17:29:30 × romesrf quits (~romes@185.5.8.134) (Ping timeout: 272 seconds)
17:31:03 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
17:32:14 ec joins (~ec@gateway/tor-sasl/ec)
17:34:57 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
17:34:57 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
17:34:57 wroathe joins (~wroathe@user/wroathe)
17:37:34 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
17:38:24 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:38:32 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
17:39:12 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:39:32 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:40:55 <sclv> geekosaur: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/using.html#haddock
17:43:10 geekosaur wonders if a PR would be accepted that gathered up all those flags missing from the master flag reference and at least pointed to the places where they're explained
17:43:12 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
17:45:05 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
17:45:48 Vajb joins (~Vajb@2001:999:504:1dda:267d:6860:bdf7:f68b)
17:48:14 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:53:32 titibandit joins (~titibandi@xdsl-87-78-211-190.nc.de)
17:54:51 ec joins (~ec@gateway/tor-sasl/ec)
17:54:51 × yauhsien quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
17:54:53 yauhsien_ joins (~yauhsien@61-231-27-3.dynamic-ip.hinet.net)
17:56:45 romesrf joins (~romes@185.5.8.134)
17:59:00 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
18:02:59 jakalx joins (~jakalx@base.jakalx.net)
18:08:31 × cafkafk quits (~cafkafk@user/cafkafk) (Quit: WeeChat 3.3)
18:09:24 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:14:37 × nek0 quits (~nek0@nek0.eu) (Quit: The Lounge - https://thelounge.chat)
18:17:10 <shapr> Huh, I can't find an ics parser on hackage
18:17:32 <shapr> oh wait, looks like iCalendar handles ics?
18:19:07 × oxide quits (~lambda@user/oxide) (Quit: oxide)
18:19:33 <shapr> huh, looks kinda dead https://github.com/chrra/iCalendar/pulls
18:19:39 shapr checks the license
18:25:28 × Vajb quits (~Vajb@2001:999:504:1dda:267d:6860:bdf7:f68b) (Read error: Connection reset by peer)
18:25:37 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
18:28:00 <geekosaur> I think iCal/iCalendar is the old name for the ics spec? got renamed because of Apple
18:28:53 <shapr> it's bsd3, I can fork and NMU
18:28:57 <shapr> but not today
18:30:15 × yauhsien_ quits (~yauhsien@61-231-27-3.dynamic-ip.hinet.net) (Quit: Leaving...)
18:31:16 napping joins (~brandon@65.128.49.110)
18:32:47 lifter joins (~lifter@2600:1702:37d0:4310:28aa:b2eb:751d:e929)
18:33:54 shapr hugs napping
18:34:10 <napping> Hi
18:35:52 <napping> I'm looking into UnflitedDatatypes. Looks like it still doesn't allow polymorphism between packed unboxed fields and boxed data. Was hoping to make a single AST definition accept any type of variable names for parsing, and then intern them to Int# or so
18:36:06 <napping> I guess I'll need two definitions
18:36:45 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
18:37:56 <c_wraith> you can use levity polymorphism for that
18:38:34 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
18:39:01 <c_wraith> Hmm. Not actually sure if levity polymorphism can apply to fields of a data type.
18:39:17 <napping> I get "A levity-polymorphic type is not allowed here" on the constructor
18:39:25 <geekosaur> I thought it was only functions, yeh
18:39:34 <napping> data Term (r :: RuntimeRep) (var :: TYPE r) where ... Var :: var -> Term r var
18:40:10 <c_wraith> Ah yes. there's a restriction that it only applies in function *results* specifically. weird that it's so specific
18:42:59 Guest12 joins (~Guest12@24.133.121.223)
18:44:36 Guest27 joins (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9)
18:50:11 × Guest12 quits (~Guest12@24.133.121.223) (Quit: Client closed)
18:52:39 Guest12 joins (~Guest12@24.133.121.223)
18:53:24 × Guest12 quits (~Guest12@24.133.121.223) (Client Quit)
18:53:44 Guest12 joins (~Guest12@24.133.121.223)
18:54:22 × Guest12 quits (~Guest12@24.133.121.223) (Client Quit)
18:55:17 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
18:55:19 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
19:01:33 × julian quits (~julian@20.83.116.49) (Remote host closed the connection)
19:02:40 julian joins (~julian@20.83.116.49)
19:05:38 pavonia joins (~user@user/siracusa)
19:06:39 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
19:10:02 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
19:12:18 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
19:12:20 bob joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
19:12:55 ss- joins (~ss-@2001:18e8:2:28b9:f000::72a0)
19:14:19 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
19:21:42 × joo-_ quits (~joo-_@fsf/member/joo--) (Ping timeout: 276 seconds)
19:23:11 joo-_ joins (~joo-_@87-49-44-131-mobile.dk.customer.tdc.net)
19:23:11 × joo-_ quits (~joo-_@87-49-44-131-mobile.dk.customer.tdc.net) (Changing host)
19:23:11 joo-_ joins (~joo-_@fsf/member/joo--)
19:27:04 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:28:28 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
19:28:57 <ss-> obviously this feels slightly like defeating the purpose but is there any way to have haddock generate documentation but hide function signatures (i.e. everything after the ::)? this is local documentation for a project where my function type signatures are generated with a pre-processor + template haskell. they're unreadably long after the
19:28:57 <ss-> preprocessor + template haskell runs, so I'd rather hide them if I can
19:30:30 xkuru joins (~xkuru@user/xkuru)
19:30:34 <monochrom> I think no.
19:34:27 <geekosaur> it more or less is defeating the purpose: the types tell the story
19:35:14 <Sgeo> Does there exist a monad f such that I can take an (a->b)->s->t and make an s->f a out of it? (What I'm trying to do: Evaluate a whole bunch of semi-plausible optics encodings for another language >.>)
19:35:35 <napping> To f?
19:36:47 <Sgeo> (The encoding I'm playing with: Effectively (Monad v, Monad r) => (s -> v a, b -> r t)
19:36:56 <monochrom> If it could be done, then it could be done for f=Identity, therefore you had "forall a b s t . ((a->b)->s->t) -> (s -> a)", contradiction.
19:37:38 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:37:48 <Sgeo> Where are you getting that f=Identity needs to work?
19:38:04 <monochrom> Oh, right, nevermind.
19:38:04 <geekosaur> exists, not forall
19:38:15 <monochrom> Works for f = Proxy then.
19:38:29 <napping> Are b and t fixed? I don't see how you could do anything interesting if they are hidden
19:38:32 <geekosaur> seems to me that you have only a -> b, so you can't have an a?
19:39:20 <napping> if they are allowed to vary because they are hidden existentially, that is
19:40:40 × ss- quits (~ss-@2001:18e8:2:28b9:f000::72a0) (Ping timeout: 252 seconds)
19:42:08 × Guest27 quits (~Guest27@2601:281:d47f:1590:768c:7129:aa80:96d9) (Ping timeout: 252 seconds)
19:43:09 <napping> If you want F so (s -> F b t a) is isomorphic to ((a -> b) -> s -> t), the Kleisli composition should have type ((yy -> b) -> xx -> t) -> ((zz -> b) -> yy -> t) -> ((zz -> b) -> xx -> t)
19:45:26 <Sgeo> Doesn't need to be isomorphic. The tuple I'm trying to make has two parts, I need a `v a` I think to feed into the `b -> r t` part... I think
19:46:13 <Sgeo> (Monad v, Monad r) => (s -> v a, b -> r t) depending on the monads, this can afaict encode iso, getters (r is Reader Void), lenses
19:47:03 × gpncarl_ quits (~gpncarl@120.244.220.254) (Ping timeout: 276 seconds)
19:48:26 <Sgeo> Also what I would call setters, but that's not a thing afaict, and modifiers are where I'm stuck
19:53:27 gpncarl_ joins (~gpncarl@120.244.220.254)
19:53:43 <napping> ss-: Do you have other type signatures you would like to use? Perhaps you could generate a dummy file like GHC.Prim that produces reasonable documentation: https://hackage.haskell.org/package/ghc-prim-0.8.0/docs/src/GHC.Prim.html
19:56:31 <napping> It's a dummy file full of definitions like {-| docs -} foo :: Type; foo = foo
19:58:20 × gpncarl_ quits (~gpncarl@120.244.220.254) (Ping timeout: 272 seconds)
20:02:38 <napping> Otherwise is writing some code, but perhaps it could be implemented against haddock-api without actually modifying haddock's source: https://hackage.haskell.org/package/haddock-api-2.24.2
20:03:24 <napping> (It wasn't obvious from a quick glance whether it's possible to strip out type information)
20:03:47 × coot quits (~coot@213.134.190.95) (Quit: coot)
20:09:08 <sm> HAPPY EARTH DAY all 🌏️
20:14:43 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:18:05 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
20:18:54 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
20:21:03 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:21:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
20:21:08 fendor_ joins (~fendor@178.115.59.61.wireless.dyn.drei.com)
20:22:05 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:23:48 Topsi joins (~Tobias@dyndsl-095-033-021-190.ewe-ip-backbone.de)
20:24:18 × fendor quits (~fendor@178.165.175.241.wireless.dyn.drei.com) (Ping timeout: 272 seconds)
20:26:50 × mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 272 seconds)
20:27:42 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
20:28:04 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
20:29:02 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
20:29:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:30:36 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
20:32:47 <tomsmeding> ooh almost over already here
20:35:28 <briandaed> how should we celebrate?
20:36:57 jgeerds joins (~jgeerds@d53604b0.access.ecotel.net)
20:38:24 mvk joins (~mvk@2607:fea8:5ce3:8500::c90f)
20:44:13 × zer0bitz quits (~zer0bitz@2001:2003:f444:8f00:c820:105d:e1c4:cead) (Read error: Connection reset by peer)
20:45:22 tfeb joins (~tfb@88.98.95.237)
20:48:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
20:48:49 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
20:50:32 × tfeb quits (~tfb@88.98.95.237) (Quit: died)
20:52:30 <sm> breathe deep.. go outside.. say thank you
21:00:24 × briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Ping timeout: 272 seconds)
21:02:21 justsomeguy joins (justsomegu@user/justsomeguy)
21:05:36 vicfred joins (~vicfred@user/vicfred)
21:07:40 <monochrom> Delete all social network accounts to incentivize closing down data centres.
21:07:51 <monochrom> Dump and crash the cryptocurrency market.
21:08:05 <tomsmeding> if only it were so easy
21:09:44 × neceve quits (~quassel@2.29.116.221) (Remote host closed the connection)
21:10:24 <monochrom> Block all ads to incentivize social networks going out of business. >:)
21:11:19 × lifter quits (~lifter@2600:1702:37d0:4310:28aa:b2eb:751d:e929) ()
21:13:46 <monochrom> Upgrade hardware less often. 99.999% of the carbon footprint of using computers is in manufacturing the hardware.
21:14:06 <monochrom> OK, "99.999%" is exaggerated. But definitely >= 99%.
21:14:32 <monochrom> OK I'll stop.
21:14:43 <hpc> 100% of the carbon footprint of using computers is in manufacturing the infinite turing tape :D
21:15:17 <hpc> that's the nice thing about lambda calculus - its computers run infinitely fast because reducing expressions is a noop
21:15:28 <monochrom> OK I can't resist, this is the last one. Use C instead of Haskell for higher efficiency, both run time and build time, especially build time haha >:)
21:15:49 <tomsmeding> but less programmer efficiency ;)
21:16:09 <hpc> programmers are a renewable resource
21:16:16 slack1256 joins (~slack1256@186.11.98.12)
21:16:19 td_ joins (~td@94.134.91.204)
21:16:23 <hpc> they're like trees, it's a neutral carbon cycle :P
21:16:26 <monochrom> Well yeah programmer inefficiency probably causes much less carbon footprint...
21:17:42 <monochrom> To be fair, I don't have evidence for that one. You could examine programmer coffee consumption and find out that may be a huge impact, I don't know. :)
21:17:49 × slack1256 quits (~slack1256@186.11.98.12) (Remote host closed the connection)
21:18:09 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.)
21:18:16 <sm> oh yeah that's one: do something to reduce your CI's carbon emissions today
21:18:38 <monochrom> Use C instead of shell scripts. >:)
21:19:36 chexum joins (~quassel@gateway/tor-sasl/chexum)
21:22:16 briandaed joins (~briandaed@109.95.142.93.r.toneticgroup.pl)
21:22:25 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
21:22:25 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
21:22:25 wroathe joins (~wroathe@user/wroathe)
21:23:48 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
21:25:48 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Read error: Connection reset by peer)
21:26:02 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
21:36:55 × titibandit quits (~titibandi@xdsl-87-78-211-190.nc.de) (Remote host closed the connection)
21:37:39 neurocyte8614492 joins (~neurocyte@IP-212232080040.dynamic.medianet-world.de)
21:37:39 × neurocyte8614492 quits (~neurocyte@IP-212232080040.dynamic.medianet-world.de) (Changing host)
21:37:39 neurocyte8614492 joins (~neurocyte@user/neurocyte)
21:39:41 × sndr quits (~sander@user/sander) (Quit: So long! :))
21:40:27 <EvanR_> C vs haskell carbon footprint
21:40:31 × mvk quits (~mvk@2607:fea8:5ce3:8500::c90f) (Ping timeout: 260 seconds)
21:41:09 × FragByte quits (~christian@user/fragbyte) (Quit: Quit)
21:43:05 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Quit: Lost terminal)
21:43:07 FragByte joins (~christian@user/fragbyte)
21:43:49 sander joins (~sander@user/sander)
21:47:02 <jhagborg> I'd be curious if anyone has some research on how much things like using binary nix caches in CI, sharing those caches with dev machines, or re-organizing dependencies to reduce recompilation can reduce energy use
21:49:10 <jhagborg> also, for different software projects: total energy use for devs and CI to compile the code vs. energy use to actually run the code (vs. energy use to buy better hardware to make up for poor perf)
21:53:35 × cheategg quits (~Username@user/cheater) (Ping timeout: 256 seconds)
21:56:08 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 272 seconds)
21:56:43 cheategg joins (~Username@user/cheater)
21:57:50 × justsomeguy quits (justsomegu@user/justsomeguy) (Quit: WeeChat 3.4)
21:58:22 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:59:26 × Topsi quits (~Tobias@dyndsl-095-033-021-190.ewe-ip-backbone.de) (Read error: Connection reset by peer)
22:01:10 <abastro[m]> Oh so -haddock is indeed necessary to see documentation!
22:01:29 <abastro[m]> Interesting how it is enough for me to see documentation when hovering with HLS
22:01:48 <abastro[m]> Now how to make the documentation link come up tho..
22:04:20 <ManofLetters[m]> puzzle:
22:04:29 <ManofLetters[m]> > f :: (forall a. a -> a) -> (); f _ = ()
22:04:30 <lambdabot> <hint>:1:30: error: parse error on input ‘;’
22:04:40 <ManofLetters[m]> doh
22:05:06 <ManofLetters[m]> it wasn't supposed to be that puzzle
22:05:16 <abastro[m]> :P lambdabot
22:05:27 <ManofLetters[m]> in ghci this works
22:06:33 <ManofLetters[m]> scratch that
22:06:36 <ManofLetters[m]> > f (_ :: forall a. a -> a) = ()
22:06:39 <lambdabot> <hint>:1:27: error: parse error on input ‘=’
22:06:45 <ManofLetters[m]> > f id
22:06:47 <lambdabot> error:
22:06:47 <lambdabot> • Could not deduce (Typeable a0) arising from a use of ‘f’
22:06:47 <lambdabot> from the context: FromExpr t
22:07:16 <ManofLetters[m]> I'm sorry; this works in ghci, too ;(
22:07:56 <ManofLetters[m]> anyway
22:08:02 ManofLetters[m] sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/58261ff14bb7e532c42758b693851e93f2f6fe9e
22:08:12 <ManofLetters[m]> puzzle ^^^
22:08:24 <ManofLetters[m]> argh, sorry, wrong puzzle
22:08:50 <ManofLetters[m]> again:
22:08:57 ManofLetters[m] sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/f3022b39778575dd92b57cb874befbe565596f81
22:09:03 <ManofLetters[m]> puzzle ^^^
22:09:08 <ManofLetters[m]> why so?
22:09:32 <monochrom> What does ":type id f" say?
22:09:38 <ManofLetters[m]> how do I make it work? (in real life, the `id` is `inline`)
22:10:06 <ManofLetters[m]> hmm, it fail
22:10:29 ManofLetters[m] sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/2bc2a877a9b00f9b00334a98fed4856dd9169164
22:10:59 <abastro[m]> Yea that explains it
22:11:00 <ManofLetters[m]> good catch, but I still don't understand
22:11:07 <abastro[m]> id is not sufficiently powerful for rhis
22:11:43 <ManofLetters[m]> what is? how to make `inline` sufficienty powerful so that I can do `inline f foo`?
22:12:19 <ManofLetters[m]> (GHC.Exts.inline)
22:12:54 <geekosaur> % :set ImpredicativeTypes
22:13:04 <geekosaur> uh, did we lose yahb?
22:13:19 <geekosaur> yep :(
22:13:57 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:14:37 <geekosaur> https://paste.tomsmeding.com/z0DyQwhU
22:15:02 <abastro[m]> Oh right, that was impredicativetypes
22:15:38 <abastro[m]> I thought impredicativetypes is on by default in ghc 9.2.2 - so it doesn't?
22:15:56 <monochrom> No. Instead, the claim is "it actually works".
22:16:15 <monochrom> "it finally actually works"
22:16:38 <monochrom> Not even GHC2021 is on by default.
22:17:21 <monochrom> maerwald would have left, not merely voicing objections, if GHC ever turns on any substantial extension by default. :)
22:17:28 <geekosaur> ImpredicativeTypes has been a bit harum-scarum for a long time because there was no actual definition of how it ought to work, just hacks. but as of 9.0 it got a real, consistent definition
22:17:58 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 246 seconds)
22:19:06 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
22:20:07 <abastro[m]> Aha, now it actually works
22:21:01 <abastro[m]> Hmm I'd personally love new haskell standard..
22:21:27 <abastro[m]> So that some are no longer left as extensions
22:21:33 <ManofLetters[m]> geekosaur: thank you; the puzzle award goes to you; now I need a better example, because it still fails in the real life code ;)
22:21:35 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:21:41 <geekosaur> the problem is,someone needs to go through and document all the additions and how they interact with each other
22:21:49 <geekosaur> ManofLetters[m], what version of ghc?
22:21:56 <ManofLetters[m]> 9.2.2
22:22:21 <ManofLetters[m]> but it's a bit more complex in real life
22:22:48 <geekosaur> hm, so you have QuickLook. (I don't, at least not without a little work; I'm on 8.10.7) can you pastebin your actual code or at least enough to reproduce the issue?
22:23:09 <ManofLetters[m]> yep, working on it
22:24:44 <geekosaur> hm, actually no work needed, I can specify it directly by version. yay ghcup :)
22:25:32 <monochrom> "inline f id" is still OK.
22:25:58 <geekosaur> actually I'd wonder if this might be the opposite
22:26:11 <geekosaur> QuickLook made some eta expansions mandatory
22:26:20 <geekosaur> and ytiou get odd type errors otherwise
22:26:26 <geekosaur> *you
22:26:33 <ManofLetters[m]> got it:
22:26:38 × briandaed quits (~briandaed@109.95.142.93.r.toneticgroup.pl) (Remote host closed the connection)
22:26:40 <ManofLetters[m]> f :: forall r. (forall a. Either a r -> Either a r) -> (); f _ = ()
22:26:40 <ManofLetters[m]> id f
22:28:43 × toulene quits (~toulene@user/toulene) (Quit: The Lounge - https://thelounge.chat)
22:30:27 × Midjak quits (~Midjak@82.66.147.146) (Quit: Leaving)
22:31:08 mikoto-chan joins (~mikoto-ch@213.177.151.239)
22:31:31 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
22:32:17 Midjak joins (~Midjak@82.66.147.146)
22:32:28 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
22:32:46 × Midjak quits (~Midjak@82.66.147.146) (Remote host closed the connection)
22:33:58 <geekosaur> mm, I think this might be a question for #ghc or even filing a ticket. seems odd that the one works but the other doesn't
22:34:03 Midjak joins (~Midjak@82.66.147.146)
22:34:20 <geekosaur> (repeated here, and getting `it` out of the way didn't help)
22:36:23 <monochrom> Yeah a bit strange.
22:37:00 <ManofLetters[m]> ok, thank you, will go molest the #ghc guys
22:41:23 toluene joins (~toluene@user/toulene)
22:43:10 vorpuni joins (~pvorp@2001:861:3881:c690:8ca8:5172:4dfd:44de)
22:57:02 × romesrf quits (~romes@185.5.8.134) (Quit: WeeChat 3.4.1)
23:11:19 × acidjnk quits (~acidjnk@p200300d0c722df45b88c221642ee616c.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
23:12:54 × vorpuni quits (~pvorp@2001:861:3881:c690:8ca8:5172:4dfd:44de) (Quit: bye)
23:13:19 × jhagborg quits (~jhagborg@068-187-237-099.res.spectrum.com) (Ping timeout: 240 seconds)
23:15:10 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:19:38 justsomeguy joins (~justsomeg@user/justsomeguy)
23:31:46 × chomwitt quits (~chomwitt@94.66.63.97) (Ping timeout: 272 seconds)
23:32:24 × jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 272 seconds)
23:39:35 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
23:40:56 acidjnk joins (~acidjnk@p200300d0c722df1519a6bfb968fb5bce.dip0.t-ipconnect.de)
23:41:46 × Tuplanolla quits (~Tuplanoll@91-159-69-98.elisa-laajakaista.fi) (Quit: Leaving.)
23:43:15 chenqisu1 joins (~chenqisu1@183.217.200.38)
23:45:16 Everything joins (~Everythin@37.115.210.35)
23:46:36 Everything parts (~Everythin@37.115.210.35) ()
23:54:50 jhagborg joins (~jhagborg@068-187-237-099.res.spectrum.com)
23:56:33 × gurkenglas quits (~gurkengla@178.12.18.212) (Ping timeout: 256 seconds)
23:57:20 × bob quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
23:57:20 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)

All times are in UTC on 2022-04-22.