Home freenode/#haskell: Logs Calendar

Logs on 2021-01-08 (freenode/#haskell)

00:00:18 bi_functor looks at ski
00:02:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:04:11 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:05:00 pedrorubster[m] sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/vqSDqSbqUByHKrNbBUOSHZqU/message.txt >
00:05:27 <pedrorubster[m]> My question is, what does that M does after data, and how do I search inside that data Mariosca? Sorry, but I'm a bit of a newbie to Haskell
00:05:54 <pie_> bi_functor: a bunch of half-assed nix crap :P
00:06:21 <pie_> well, not really half-assed, more like half-working because i never get around to finishing anythng and I dont manage to KISS it :P
00:06:22 <ephemient> pedrorubster[m]: https://wiki.haskell.org/Constructor#Data_constructor
00:07:10 <monochrom> Branco, Azul, Vermelho, Verde, M are all data constructors.
00:07:45 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
00:08:16 <pedrorubster[m]> I understand that, but I'm not sure what M is, since all the examples just use the M for no reason, at least I can't understand why
00:08:40 <ephemient> you can pattern match to destructure
00:08:46 <pedrorubster[m]> <ephemient "pedrorubster: https://wiki.haske"> if I try to do:
00:08:46 <monochrom> To be fair you should also not know what Azul is.
00:09:05 dfeuer joins (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net)
00:09:08 <pedrorubster[m]> <monochrom "To be fair you should also not k"> Ok, true, let me put the expected output here
00:09:20 pedrorubster[m] sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/kaVOSbxVqtMeCoilkBvMhHnF/message.txt >
00:09:24 <monochrom> except that you know it is a data constructor and that someone thought it was cute to use Azul for the name.
00:09:29 pedrorubster[m] sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/tPcEBayjlCnyqtwaEljCxVMA/message.txt >
00:10:30 <pedrorubster[m]> Ok ye, I'll take that, I'm just confused because that M is always static on the example output (static I mean, it's just M, doesn't change anything), but I can't understand how I should do the function, since I always get Not in scope, not sure why
00:10:50 pedrorubster[m] uploaded an image: image.png (21KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/bwlReHosRzNYSZgFUjOTPykE/image.png >
00:11:15 <monochrom> Change that to M.
00:11:26 <monochrom> Matriwhatever is not a data constructor.
00:11:48 <pedrorubster[m]> OHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH GOT IT OKKKKKK
00:11:53 <monochrom> And when coding up "f (??? x y z) = ..." the ??? has to be a data constructor.
00:12:03 <pedrorubster[m]> Now I understand, thanks!
00:12:24 <pedrorubster[m]> Just 1 more question, if it's nothing, what do I return?
00:12:26 pedrorubster[m] uploaded an image: image.png (38KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/tkngjsgyHMRIWkmyLHBeJmqZ/image.png >
00:12:34 <pedrorubster[m]> I can't return Nothing
00:12:58 <ephemient> @define data Cor = Branco | Azul | Vermelho | Verde deriving Show
00:13:00 <lambdabot> Defined.
00:13:06 <ephemient> @define data Matriosca = M Cor (Maybe Matriosca) deriving Show
00:13:07 <monochrom> the empty list?
00:13:08 <lambdabot> Defined.
00:13:25 × lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Ping timeout: 264 seconds)
00:13:31 <ephemient> @define paraLista = Data.List.NonEmpty.unfoldr $ \(M cor filho) -> (cor, filho)
00:13:32 xirhtogal joins (~lagothrix@unaffiliated/lagothrix)
00:13:32 xirhtogal is now known as lagothrix
00:13:32 <lambdabot> .L.hs:183:5: error:
00:13:33 <lambdabot> Not in scope: ‘Data.List.NonEmpty.unfoldr’
00:13:33 <lambdabot> No module named ‘Data.List.NonEmpty’ is imported.
00:13:48 <ephemient> hmm, what does lambdabot have that imported as
00:13:58 <ephemient> @define paraLista = NE.unfoldr $ \(M cor filho) -> (cor, filho)
00:13:59 <lambdabot> .L.hs:182:13: error:
00:13:59 <lambdabot> Not in scope: ‘NE.unfoldr’
00:13:59 <lambdabot> Perhaps you meant one of these:
00:14:02 <bi_functor> :t NE.fromList
00:14:04 <lambdabot> error:
00:14:04 <lambdabot> Not in scope: ‘NE.fromList’
00:14:04 <lambdabot> Perhaps you meant one of these:
00:14:06 <pedrorubster[m]> I can only use Prelude functions for this btw
00:14:18 edrx parts (~Eduardo@2804:56c:d2ef:cf00:67de:bc02:9559:c5c1) ("Killed buffer")
00:14:24 × NGravity quits (csp@gateway/shell/xshellz/x-zzfgzhhirbsduhrr) (Ping timeout: 256 seconds)
00:14:47 Tario joins (~Tario@201.192.165.173)
00:14:50 <ephemient> @define import qualified Data.List.NonEmpty as NE
00:14:52 <lambdabot> Defined.
00:15:01 <ephemient> @define paraLista = NE.unfoldr $ \(M cor filho) -> (cor, filho)
00:15:04 <lambdabot> Defined.
00:15:20 NGravity joins (csp@gateway/shell/xshellz/x-wudhqfssegtlqiwc)
00:15:22 <bi_functor> :t NE.unfoldr
00:15:24 <lambdabot> (a -> (b, Maybe a)) -> a -> NE.NonEmpty b
00:15:24 <ephemient> > paraLista $ M Branco (Just (M Azul (Just (M Vermelho (Just (M Verde Nothing))))))
00:15:27 <lambdabot> Branco :| [Azul,Vermelho,Verde]
00:15:28 <bi_functor> :t unfoldr
00:15:29 <lambdabot> (b -> Maybe (a, b)) -> b -> [a]
00:15:37 <bi_functor> interesting
00:15:41 <ephemient> NE.unfoldr matches this data type better than List.unfoldr
00:15:49 <ephemient> (as it's never headless)
00:16:10 <pedrorubster[m]> But I'm guessing this doesn't belong to Prelude right?
00:16:26 <pedrorubster[m]> Because I can only use Prelude
00:16:27 <ephemient> no, but you can figure out how that works
00:16:39 <ephemient> it's unrelated to your challenges with data types and constructors
00:17:08 <pedrorubster[m]> Yes, I was just making sure
00:19:05 fosterite joins (~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
00:20:14 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving)
00:20:47 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Remote host closed the connection)
00:21:39 <pedrorubster[m]> Just 1 more question, sorry for being annoying, I'm trying to use it recursevely, but I'm using a Maybe Matriosca instead of Matriosca, I'm having issues solving that, I know I should use case of, but somehow I'm not doing it right
00:22:01 <pedrorubster[m]> Again, thanks for the help, sorry for all this newbie questions, I was stuck on this exercise for 10 minutes and I got really frustrated
00:22:18 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
00:22:28 pedrorubster[m] sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/MDXyLFFZVjtspRVZVxbgfKvt/message.txt >
00:22:37 <pedrorubster[m]> I think I did it, let me test
00:23:09 <pedrorubster[m]> yes, it worked, thank you ephemient for all the help, you really got me unstuck from this
00:23:14 <ephemient> you don't need the case:
00:23:36 <ephemient> you can use (M a Nothing) in one branch and (M a (Just b)) in another branch
00:23:55 <ephemient> or prelude functions,
00:24:02 <pedrorubster[m]> Ye, I just realized that, I was about to edit, thanks!
00:24:07 <pedrorubster[m]> Oh, that's a good idea, thanks!
00:24:07 <ephemient> > let paraLista (M a b) = a : maybe [] paraLista b in paraLista $ M Branco (Just (M Azul (Just (M Vermelho (Just (M Verde Nothing))))))
00:24:10 <lambdabot> [Branco,Azul,Vermelho,Verde]
00:24:54 <ephemient> but it all works out to be the same in the end :)
00:25:05 <pedrorubster[m]> Ye, but that's way smarter haha
00:25:24 <pedrorubster[m]> Haskell is so different, I'm mainly a .net dev, but learning haskell will help me so much with lambda's
00:29:53 justsomeguy joins (~justsomeg@216.186.218.241)
00:29:53 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
00:29:53 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
00:30:20 <aldum> interesting
00:30:29 <aldum> have you checked out F#?
00:30:38 × fosterite quits (~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) (Ping timeout: 264 seconds)
00:30:39 <aldum> and/or F*?
00:30:46 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
00:30:49 × Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 264 seconds)
00:35:40 <pedrorubster[m]> I did not, but I want to
00:36:03 <monochrom> F* would be too far out, no?
00:36:19 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
00:36:54 <monochrom> Generally, as usual, I'm always concerned when people here suggest too-advanced things to obvious beginners.
00:37:45 <monochrom> "Oh you're just beginning with very basic algebraic data type and very basic recursion, let me suggest you something that assumes you have already aced higher-order functions and dependent types"
00:38:17 <monochrom> Frankly I don't understand the logic.
00:38:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:38:44 <monochrom> Unless the logic is "to be a show-off".
00:40:59 × plutoniix quits (~q@node-ujf.pool-125-24.dynamic.totinternet.net) (Quit: Leaving)
00:41:52 × alx741 quits (~alx741@186.178.110.141) (Ping timeout: 246 seconds)
00:45:01 <bi_functor> how often do lambdabot and yahb "reset", if ever?
00:45:46 <bi_functor> and is there an easy way to inspect their current configuration?
00:45:55 <monochrom> lambdabot probably doesn't. yahb can be reset by a :quit, and knowing that there is a meta-level watchdog that goes "you have died, I'll restart you"
00:46:16 <monochrom> No, they aren't inspectable.
00:46:46 <monochrom> Ah, lambdabot can also be almost-reset by an @undefine
00:47:31 <monochrom> But it is not going to be as clean as :quit
00:47:44 <bi_functor> thanks! good to know :)
00:48:21 × DavidEichmann quits (~david@98.27.93.209.dyn.plus.net) (Ping timeout: 265 seconds)
00:48:31 <monochrom> The way @undefine works is this:
00:49:25 <monochrom> You can issue an @let command. It causes adding code to lambdabot's L.hs file. This file is :load'ed every so often (like at every @let and @undefine, I think?)
00:49:57 <monochrom> @undefine erases that file, or reset it to default content, I forgot which.
00:49:57 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
00:51:00 <monochrom> So it is not as clean as :quit but it is good enough until you realize that ghc can leak space just by repeating :load
00:51:02 <ephemient> looking at the sources, seems that it copies Pristine.hs over it
00:51:11 <ephemient> which is https://github.com/lambdabot/lambdabot/blob/master/lambdabot/State/Pristine.hs.default ?
00:51:14 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 256 seconds)
00:51:15 <monochrom> yeah
00:52:43 <aldum> monochrom: I wasn't suggesting, I was just curious about the path from .net to haskell
00:53:37 <aldum> reading it back, it is ambiguous phrasing, I did not mean "hey, check out these"
00:54:57 alx741 joins (~alx741@181.196.69.12)
00:55:18 × infinisil quits (~infinisil@NixOS/user/infinisil) (Quit: Configuring ZNC, sorry for the joins/quits!)
00:55:27 <ephemient> interesting. https://www.cin.ufpe.br/~haskell/papers/Scripting_.NET_using_Mondrian-Meijer&Perry&Yzendoorn.pdf is quite Haskell-like
00:55:37 <ephemient> doesn't look like it went any further though
00:56:23 <monochrom> Ah Mondrian, yeah a forgotten name.
00:56:53 <monochrom> But even F# is much less heard of than Haskell.
00:57:56 <pedrorubster[m]> I'm mainly a C# dev, but I like to learn new languages, etc
00:58:04 <pedrorubster[m]> But .NET is what pays the bills haha
01:00:06 infinisil joins (~infinisil@NixOS/user/infinisil)
01:03:05 Jd007 joins (~Jd007@d154-5-83-24.bchsia.telus.net)
01:04:56 <monochrom> w00t https://well-typed.com/blog/2021/01/first-look-at-hi-profiling-mode/ sounds pretty neat.
01:05:24 × infinisil quits (~infinisil@NixOS/user/infinisil) (Quit: Configuring ZNC, sorry for the joins/quits!)
01:06:12 <monochrom> Because instead of "values of your homebrew type T is occupying 1GB" you really want "but which line of code is creating all those values?"
01:06:19 <monochrom> likewise for thunks
01:06:19 mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
01:07:24 × conal quits (~conal@143.244.61.230) (Quit: Computer has gone to sleep.)
01:07:31 fosterite joins (~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
01:07:51 infinisil joins (~infinisil@NixOS/user/infinisil)
01:08:17 <monochrom> but haha "this work is not yet merged into GHC"
01:08:46 × zaquest quits (~notzaques@5.128.210.178) (Remote host closed the connection)
01:08:53 <monochrom> well, it's already under review, I think it'll get accepted soon.
01:09:21 conal joins (~conal@143.244.61.230)
01:09:31 <ephemient> also relatedly… strict tuples would be a nice thing to have sometimes
01:09:33 × conal quits (~conal@143.244.61.230) (Client Quit)
01:09:53 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
01:10:06 × Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 265 seconds)
01:10:25 <ephemient> GHC has unboxed tuples but it's not really nice to use
01:10:50 × mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 264 seconds)
01:11:01 <monochrom> In that case, consider the packages "strict" and "strict-data" :)
01:11:35 zaquest joins (~notzaques@5.128.210.178)
01:12:13 × bitmapper quits (uid464869@gateway/web/irccloud.com/x-twbakplhwmmiboua) (Quit: Connection closed for inactivity)
01:12:50 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
01:13:27 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
01:13:31 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Client Quit)
01:13:48 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
01:14:00 <ephemient> true, that exists... it's just that in any individual situation, I'm more likely to create a strict data type than pull in an external dependency. something standard would be nice
01:14:24 conal joins (~conal@209.58.139.51)
01:14:39 <monochrom> "strict" is not too bad in that regard
01:14:47 <Axman6> @check \n (d : Integer) -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) = divMod n d
01:14:47 <lambdabot> <unknown>.hs:1:108:Parse error: =
01:14:49 <monochrom> "just one more package"
01:14:59 <Axman6> @check \n (d : Integer) -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n d
01:15:01 <lambdabot> error:
01:15:01 <lambdabot> Not in scope: data constructor ‘Integer’ Perhaps you meant one of these: var...
01:15:12 <Axman6> @check \n (d : Int) -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n d
01:15:15 <lambdabot> error:
01:15:15 <lambdabot> Not in scope: data constructor ‘Int’ Perhaps you meant one of these: ‘In’ (i...
01:15:20 <monochrom> (I am aware of the slippery slope of "just one more turn" when playing Civ 5 or 6 :) )
01:15:26 <Axman6> excusemewhat?
01:15:27 <ephemient> @check \n (d :: Int) -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n d
01:15:28 <lambdabot> <unknown>.hs:1:15:ScopedTypeVariables language extension is not enabled. Ple...
01:15:35 <Axman6> uh, too much DAML!
01:16:00 <Axman6> @check \n d -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n (d :: Integer)
01:16:04 <lambdabot> error:
01:16:04 <lambdabot> • Couldn't match expected type ‘Integer’ with actual type ‘Test.QuickCheck.S...
01:16:31 <ephemient> there was a proposal to swap : and :: https://github.com/halfaya/ghc-proposals/blob/master/proposals/0000-colonectomy.rst
01:17:10 <ephemient> not accepted, but it is an interesting point that Hashell's : and :: are reversed from most other languages using the same tokens
01:17:10 <Axman6> yeah it's one of the many changes in DAML I'd like to see in Haskell, but it would be a difficult thing to migrate
01:17:47 <monochrom> I understand : vs :: from the POV of Huffman coding.
01:18:15 <monochrom> In SML, you write more type signatures than list nodes. In Haskell, it's the other way round.
01:18:17 <Axman6> any idea what I'm doing wrong with that @check above?
01:19:17 <monochrom> You write more type signatures in SML because you write a lot of module signatures. There is no module signature to write in Haskell. Unless you go Backpack.
01:19:44 <ephemient> also personal opinion, but 1:2:3:[] looks better than 1::2::3::Nil (a la caml), and it seems more natural to put spaces around the longer :: than the shorter :
01:19:45 dansho joins (~dansho@ec2-52-196-57-214.ap-northeast-1.compute.amazonaws.com)
01:20:12 × fosterite quits (~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) (Ping timeout: 260 seconds)
01:20:19 <Axman6> :t \n d -> d /= 0 ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n (d :: Integer)
01:20:21 <lambdabot> error:
01:20:21 <lambdabot> • Couldn't match expected type ‘Integer’
01:20:21 <lambdabot> with actual type ‘Test.QuickCheck.Safe.SProperty’
01:21:01 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:21:04 <monochrom> :type \n d -> divMod n d
01:21:13 <monochrom> Um
01:21:16 <monochrom> @type \n d -> divMod n d
01:21:17 <lambdabot> Integral a => a -> a -> (a, a)
01:21:35 <monochrom> @type (==>)
01:21:37 <lambdabot> STestable prop => Bool -> prop -> Test.QuickCheck.Safe.SProperty
01:22:01 <ephemient> :t property
01:22:03 <lambdabot> error: Variable not in scope: property
01:22:06 <Axman6> there's an instance for STestable Bool
01:22:43 <monochrom> OK, next...
01:22:46 <Axman6> and (..., STestable prop) => STestable (a -> prop)
01:22:59 <Axman6> and Arbitrary Integer
01:23:03 <monochrom> @type \n d -> d/=0 ==> n == d
01:23:04 <lambdabot> error:
01:23:04 <lambdabot> Precedence parsing error
01:23:05 <lambdabot> cannot mix ‘/=’ [infix 4] and ‘==’ [infix 4] in the same infix expression
01:23:10 <Axman6> ah
01:23:21 <Axman6> @check \n d -> (d /= 0) ==> let (q,r) = quotRem n d in if r < 0 then (q-1,d-r) == divMod n d else (q,r) == divMod n (d :: Integer)
01:23:23 <lambdabot> *** Failed! Falsifiable (after 3 tests and 4 shrinks):
01:23:24 <lambdabot> -4 -3
01:23:24 <monochrom> No, yours does not suffer from precedence.
01:23:34 <monochrom> Oh, yours do.
01:23:45 <Axman6> yeah
01:24:07 <Axman6> so, assuming I have quot and rem, how do I implement divMod?
01:24:30 <Axman6> @check \n d -> (d /= 0) ==> let (q,r) = quotRem n d in if r < 0 then (q-signum q,d-r) == divMod n d else (q,r) == divMod n (d :: Integer)
01:24:32 <lambdabot> *** Failed! Falsifiable (after 4 tests and 5 shrinks):
01:24:32 <lambdabot> -3 -5
01:24:53 Axman6 heads to ghci since this isn't as simple as he first thought
01:25:52 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
01:25:55 <monochrom> OK, so quot rounds towards zero, div rounds towards -oo
01:26:15 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
01:26:34 <monochrom> hrm, does "round towards zero" and "truncate towards zero" mean the same thing?
01:26:54 <monochrom> because Haskell Report uses "truncate". I butchered it to "round".
01:27:55 <bi_functor> monochrom, round is almost always toward the nearest integer, regardless of direction
01:29:12 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
01:29:32 × redkite quits (~redkite@s91904423.blix.com) (Quit: Lost terminal)
01:29:34 × columbarius1 quits (~columbari@i5E86B3D0.versanet.de) (Ping timeout: 260 seconds)
01:29:38 <bi_functor> but i think they're interchangeable if you specify, like you did baove
01:29:45 <bi_functor> s/ba/ab
01:29:46 Tario joins (~Tario@201.192.165.173)
01:30:11 <arahael> Hmm, I don't understand monad transformers yet, but I have a 'StateT A IO ()', and I want to map a 'State A ()' into that StateT, what can I do?
01:30:29 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
01:30:45 <bi_functor> arahael: State A () ~ StateT A Identity ()
01:30:50 <Axman6> @hoogle State s a -> StateT s m a
01:30:51 <lambdabot> No results found
01:30:59 <arahael> bi_functor: Ah, of course.
01:31:40 columbarius1 joins (~columbari@mue-88-130-54-078.dsl.tropolys.de)
01:31:50 <arahael> bi_functor: Which means I need to transform that second type parameter.
01:32:15 <arahael> (Ie, how do I modify the stack so that it changes the 'Identity' into 'IO'?)
01:32:20 <Axman6> ( \(StateT f) -> StateT (pure . runIdentity . f)
01:32:30 <Axman6> :t \(StateT f) -> StateT (pure . runIdentity . f)
01:32:31 <lambdabot> Applicative m => StateT s Identity a -> StateT s m a
01:32:35 <ephemient> modify the stack so that it gives you a StateT A m () instead of a State A ()?
01:33:34 <bi_functor> % :t fmap ((pure . runIdentity) .) @StateT
01:33:34 <yahb> bi_functor: ; <interactive>:1:1: error:; * Cannot apply expression of type `f0 (a0 -> Identity a1) -> f0 (a0 -> f1 a1)'; to a visible type argument `StateT'; * In the expression: fmap ((pure . runIdentity) .) @StateT
01:33:50 <monochrom> Axman6: I think you're on the right track, except your condition should not be r<0, it should be "n and q have opposite signs", i.e., n/q would be negative
01:33:50 <jackdk> % :t hoist generalize
01:33:51 <yahb> jackdk: ; <interactive>:1:7: error:; * Variable not in scope: generalize :: Base s a -> Base t a; * Perhaps you meant `Q.generate' (imported from Test.QuickCheck)
01:34:06 <bi_functor> % :t fmap ((pure . runIdentity) .) @(StateT s IO)
01:34:06 <yahb> bi_functor: ; <interactive>:1:40: error: Not in scope: type variable `s'
01:34:09 <jackdk> from package mmorph
01:34:14 <bi_functor> % :t fmap ((pure . runIdentity) .) @(StateT Bool IO)
01:34:14 <yahb> bi_functor: ; <interactive>:1:1: error:; * Cannot apply expression of type `f0 (a0 -> Identity a1) -> f0 (a0 -> f1 a1)'; to a visible type argument `(StateT Bool IO)'; * In the expression: fmap ((pure . runIdentity) .) @(StateT Bool IO)
01:34:31 <monochrom> err, "n and d have opposite signs, n/d would be negative"
01:34:38 <monochrom> I guess it means q<0
01:34:46 <Axman6> bi_functor: fmail is never going to be able to do it
01:34:51 <Axman6> fmap*
01:34:53 × tomku quits (~tomku@unaffiliated/tomku) (Ping timeout: 256 seconds)
01:35:39 <jackdk> arahel: use the mmorph package. `StateT s` has an `MFunctor` instance. https://www.irccloud.com/pastebin/xpHcxdDD/hoist-generalize.txt
01:36:17 tomku joins (~tomku@unaffiliated/tomku)
01:38:23 <Axman6> or, just the lambda I wrote above :)
01:38:36 <jackdk> yes
01:39:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:40:02 <monochrom> mapStateT can also help. You're looking at: mapStateT :: (Identity (a, s) -> IO (b, s)) -> StateT s Identity a -> StateT s IO b
01:41:11 × Entertainment quits (~entertain@104.246.132.210) (Ping timeout: 256 seconds)
01:41:31 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
01:42:10 <Axman6> :t StateT . (pure .) . (runIdentity .) . runStateT
01:42:12 <lambdabot> Applicative m => StateT s Identity a -> StateT s m a
01:42:57 <arahael> bi_functor: It looks obvious, but I seem to be failing to see it. :( I created two functions `bar :: State Int ()` and `foo :: StateT Int IO ()`, but `foo = do runIdentity <$> bar` just doesn't seem to do the trick. I also tried `foo = do (pure . runIdentity) <$> bar`
01:43:17 <arahael> bi_functor: I *do* want to do it within the do block as this is a simplified example of what I'm trying to do.
01:43:32 <Axman6> arahael: you cannot use fmap to do this
01:43:35 <arahael> (Though, being only one expression, that 'do' is superflurous)
01:43:44 <Axman6> the code I wrote above does exactly what you want
01:44:10 <bi_functor> arahael: use the lambda function outside of the monad
01:44:13 <arahael> Axman6: I'm still looking at how to apply your suggestion.
01:44:20 <arahael> bi_functor: Ah, I want to do it within the monad.
01:44:57 <Axman6> the code I gave you literally does exactly what you asked for :\
01:45:18 <Axman6> \(StateT f) -> StateT (pure . runIdentity . f) is probably the easiest to understand
01:45:18 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
01:45:47 <bi_functor> arahael: you can't change the monad's parameters from within the monad
01:46:04 <arahael> Axman6: I've got: `foo = do StateT ( pure . runIdentity . bar)`, but that doesn't work either.
01:46:10 <arahael> bi_functor: I can't?
01:46:18 <Axman6> :t let promoteState (StateT f) = StateT (\s -> pure . runIdentity . f $ s) in promoteState
01:46:19 <lambdabot> Applicative m => StateT s Identity a -> StateT s m a
01:46:26 <bi_functor> @let s = put 1 :: State Int ()
01:46:28 <lambdabot> Defined.
01:46:34 <bi_functor> > runState s 0
01:46:37 <lambdabot> error:
01:46:37 <lambdabot> Ambiguous occurrence ‘s’
01:46:37 <lambdabot> It could refer to
01:46:43 <bi_functor> > runState L.s 0
01:46:45 <lambdabot> ((),1)
01:47:09 <bi_functor> @let promoteState (StateT f) = StateT (\s -> pure . runIdentity . f $ s)
01:47:10 <lambdabot> Defined.
01:47:17 <Axman6> :t let promoteState (StateT f) = StateT (\s -> pure . runIdentity . f $ s) in promoteState (put 1 :: State Int ()) :: StateT Int IO ()
01:47:20 <lambdabot> StateT Int IO ()
01:48:17 <bi_functor> > runState (promoteState s) 0
01:48:20 <lambdabot> error:
01:48:20 <lambdabot> Ambiguous occurrence ‘s’
01:48:20 <lambdabot> It could refer to
01:48:23 <bi_functor> > runState (promoteState L.s) 0
01:48:26 <lambdabot> ((),1)
01:49:00 <bi_functor> you can't see the difference from the result, but this one's in IO
01:49:12 <bi_functor> as Axman6 demonstrated :)
01:50:14 <bi_functor> so, if you had foo :: State A (), then (promoteState foo) :: StateT A IO ()
01:50:53 <bi_functor> promoteState isn't done inside the do block, it's done outside the monad, because you're effectively changing the monad itself
01:51:07 <arahael> Axman6: promoteState as cut&pasted works, just needing to understand it now; it seems you manually unwrap the state monad, then create a new StateT, I was looking purely at the get/set and other functions.
01:51:13 <bi_functor> even though you're not changing the computation
01:51:31 <arahael> bi_functor: It compiles *fine* inside the `foo` do block.
01:51:49 <Uniaika> bi_functor: hey Melanie, it's Hécate :)
01:52:00 fosterite joins (~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
01:52:11 <arahael> bi_functor: Ie, `foo = do promoteState bar` works fine.
01:52:11 <bi_functor> bonsoir Hecate, il est quelle heure ou tu es? :p
01:52:23 <Uniaika> bi_functor: bientôt 3h du matin :(
01:52:26 <Uniaika> et toi ?
01:52:31 <bi_functor> arahael: sure, foo and bar have different types
01:52:39 <arahael> bi_functor: Yes, they do.
01:52:56 <bi_functor> i'm saying you can't do promoteState inside bar's do block
01:53:01 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
01:53:05 Tario joins (~Tario@201.192.165.173)
01:53:16 <arahael> bi_functor: `foo :: StateT Int IO ()` and ... Oh, I was never trying to do it inside bar. I wanted to keep bar *simple* and ignorant of IO.
01:53:29 <bi_functor> Uniaika: c'est tard!
01:54:14 <bi_functor> Uniaika: qu'est-ce que tu fais ~debout~ assis maintenant!!
01:54:28 <arahael> Axman6: Thanks for the help.
01:54:55 <monochrom> "bar :: MonadState Int m => m ()" is ignorant of everything, and directly usable as-is inside foo.
01:55:28 <monochrom> By hardcoding "State" you destroyed the beauty of it.
01:55:54 <Uniaika> bi_functor: j'étais justement en train d'aller me coucher :P
01:55:56 <monochrom> It is not ignorant of IO. It is aware of IO in the sense that "but I refuse IO".
01:56:01 <arahael> monochrom: Sure, but I _barely_ understand MonadTransformers at all, I have to start somewhere!
01:56:06 <Uniaika> nacht, #haskell!
01:56:22 <monochrom> Don't stay where you start.
01:56:27 <monochrom> Never stay where you start.
01:57:09 _bin joins (~bin@2600:1700:10a1:38d0:b49e:5cc4:aa1c:81d9)
01:57:40 <arahael> monochrom: MonadState is "just" a typeclass, though. It isn't itself part of the monad transformer. State, which is really StateT in this case, _is_ a MonadTransformer, and that's what I was trying to figure out. :)
01:57:50 <arahael> monochrom: By using MonadState, I could've avoided this mental excercise.
01:58:28 <bi_functor> arahael: the nice thing about monad transformers is that the monad typeclasses get lifted up the stack!
01:59:17 <arahael> Indeed.
01:59:38 <monochrom> In term of "just learning about monad transformers", converting StateT X I to StateT X J is largely outside the syllabus.
01:59:48 <arahael> monochrom: I'm intrigued that you suggest that 'State Int ()' is still aware of IO but just refuses to do IO...
02:00:03 <monochrom> Yes.
02:00:17 <arahael> monochrom: Well, if you don't know how to do that, you'd need to ensure you absolutely use the *same* monad transformer stack everywhere in the entire application...
02:00:24 <arahael> monochrom: Which seems limiting?
02:00:39 <monochrom> "f :: Int -> Int; f x = x" is not ignorant of Double. It is positively refusing Double, and (), and Bool, and everything except Int.
02:00:47 <monochrom> "f :: a -> a" is the ignorant one.
02:00:59 <arahael> Oh, that interpretation of ignorant.
02:01:45 <arahael> (A more accurate interpretation, admittably)
02:02:02 × fosterite quits (~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) (Remote host closed the connection)
02:02:21 fosterite joins (~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8)
02:03:35 <arahael> I think part of my mistake was ignoring the actual definition of StateT, and relying only on the typeclass definition.
02:04:14 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
02:04:49 Kaeipi joins (~Kaiepi@47.54.252.148)
02:04:55 × Kaiepi quits (~Kaiepi@47.54.252.148) (Read error: Connection reset by peer)
02:05:23 notzmv joins (~user@unaffiliated/zmv)
02:06:29 <_bin> Good evening, question for y'all: I'm wondering if anyone has advice on the best way to manage an Arch Haskell development environment. The Archpackaging story appears to be a disaster and I couldn't get it working, so I tried using Nix and that appears to do nicely; I can install stuff and compile with Cabal. How does this compare to Haskell Platform and ghcup?
02:07:05 <maerwald> _bin: ghcup is simple, nix is complex
02:07:08 <monochrom> Haskell Platform is stepping down.
02:08:00 <maerwald> the only problem ppl have with ghcup is "how do I adjust PATH"... the problem ppl have with nix, well... you could fill a summer school course with it
02:08:24 <ephemient> primarily, use whatever you want that isn't Arch's native Haskell packages
02:08:49 <_bin> Yep, Nix definitely is complex, but I figure I want to learn it anyway. Thanks for the help.
02:09:05 <_bin> And yeah, I tried the Arch packages first... did not go well.
02:09:50 × bi_functor quits (~Melanie@192-0-134-138.cpe.teksavvy.com) (Quit: leaving)
02:11:13 <maerwald> well, then nix seems like a reasonable choice, if you intended to learn it anyway
02:11:49 <_bin> I'm debating between three different books to start out; I have solid knowledge in imperative languages but none in functional. The candidates are Haskell Programming from First Principles, Learn You a Haskell for Great Good, and Real World Haskell. The third seems to be regarded as a more intermediate to advanced text; any thoughts on the pros/cons of each?
02:12:02 × shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:8c45:faa1:a31d:b462) (Ping timeout: 264 seconds)
02:12:54 <maerwald> there's a refactor of Real World Haskell
02:13:10 <maerwald> https://github.com/tssm/up-to-date-real-world-haskell
02:13:37 <maerwald> LYAH is not recommended
02:14:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
02:14:41 <_bin> Got it, appreciate the recommendation.
02:15:03 × acidjnk_new quits (~acidjnk@p200300d0c704e71938399a79d0a041ac.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
02:15:53 <monochrom> HPFFP is the least worst of the three.
02:16:32 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
02:16:56 <_bin> Are there better options? "Least worst" doesn't sound encouraging.
02:17:52 <arahael> As it turns out, I needed FlexibleContexts for bi_functor's suggestion to just use the MonadState constraint restriction, why's that?
02:18:18 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:8c45:faa1:a31d:b462)
02:18:55 <monochrom> https://en.wikibooks.org/wiki/Haskell , Hutton's book, Bird's book.
02:19:37 <monochrom> But depending on your traits, HPFFP can still be the best.
02:21:49 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Ping timeout: 264 seconds)
02:22:14 <maerwald> does servant support http pipelining?
02:22:20 <monochrom> LYAH is The Gentle Introduction made longer by fillers not substance.
02:22:37 <arahael> (What makes 'MonadState Int m => m ()' a complex constraint that requires FlexibleConstraints?)
02:23:00 <monochrom> the "Int" part, which is not a type variable.
02:23:03 <arahael> LYAH set me backwards, actually - I tried to follow it, but couldn't get past the broken english. :(
02:23:11 <arahael> monochrom: Ah!
02:24:13 <arahael> monochrom: Am I correct to assume it's an entirely harmless language extension, or am I better off avoiding it?
02:24:30 <monochrom> It is a harmless extension. It is a good extension.
02:24:42 <arahael> Awesome. I realise that wasn't an exclusive OR. :D
02:24:59 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
02:25:11 Tario joins (~Tario@201.192.165.173)
02:25:47 <maerwald> LYAH is good if you had two or three glasses of wine and still want to do some haskell
02:26:24 <monochrom> No. I would use The Gentle Introduction for that.
02:27:03 <monochrom> Same amount of Shannon information and shorter. I.e., not a waste of time.
02:27:22 <arahael> maerwald: It's funny how one suddenly gets the urge to do some haskell. :D I was playing nethack, then suddenly had the urge to write a random C function in haskell, just for kicks. Unfortunately it's horribly full of side effects and crap, which made me look for monad transformers.
02:27:33 <ephemient> there's plenty of extensions that can be enabled without affecting code that doesn't use them, FlexibleContexts included
02:27:42 <maerwald> arahael: you don't need monad transformers at all
02:28:00 <arahael> maerwald: What do you suggest?
02:28:04 <maerwald> IO
02:28:11 <_bin> Got it, no LYAH. Thanks monochrom, maerwald, arahael for the info.
02:28:29 × cyphase quits (~cyphase@unaffiliated/cyphase) (Ping timeout: 260 seconds)
02:28:29 <arahael> Just doing it all in IO? Sure, and using mvar's?
02:29:00 <maerwald> arahael: State monad is just parameter passing in disguise, you can do that without mvars
02:29:02 <arahael> _bin: No need to credit me, I didn't really contribute anything. :)
02:29:38 <arahael> maerwald: The function has a _lot_ of state - it comes from nethack.
02:29:40 <maerwald> for small codebases, there's really no good argument to be made for most transformers... and even in big code bases you can avoid most of them
02:29:42 <ephemient> well sure, all of mtl can be replaced with non-monadic code achieving the same effect explicitly
02:29:46 × jlamothe quits (~jlamothe@198.251.55.207) (Quit: leaving)
02:29:54 <maerwald> arahael: what does "a lot of state" mean?
02:30:08 <maerwald> ephemient: and often more efficiently
02:30:13 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds)
02:30:20 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
02:30:38 <ephemient> eh, if it doesn't cross module boundaries GHC should be able to inline pretty effectively
02:30:45 <maerwald> "should"
02:30:47 <arahael> maerwald: The entire world is known and every single branch in the code has side effects.
02:31:01 <sm[m]> @where HTAC , _bin ?
02:31:01 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
02:31:07 × Jd007 quits (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
02:31:07 notzmv joins (~user@unaffiliated/zmv)
02:31:13 <maerwald> arahael: MonadState has one state
02:31:25 <maerwald> if you user parameters, it's also one
02:31:39 <arahael> maerwald: I was using a State WorldState ()
02:31:59 <maerwald> arahael: then now you do: foo :: WorldState -> IO (WorldState, a)
02:32:05 × robotmay quits (~beepboop@80.172.187.81.in-addr.arpa) (Ping timeout: 240 seconds)
02:32:28 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
02:32:42 <arahael> maerwald: Yes, that'd be simpler.
02:32:56 <ephemient> in the same vein, we could write everything as C-like code. I don't think that's what I like to write when I'm using Haskell though
02:33:06 arahael probably should stop trying to avoid IO as much as he does.
02:33:32 <maerwald> ephemient: that's not even a close comparison
02:33:40 <maerwald> transformers aren't inherent to haskell at all
02:33:50 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
02:33:52 <fosterite> sometimes when I'm writing C I'd like to be writing really verbose imperative haskell instead
02:33:57 <maerwald> and there's a lot of work going on to remove them once and for all
02:34:35 <arahael> maerwald: Could you elaborate as to why?
02:34:36 <maerwald> but not sure the alternative will really save us
02:34:43 <monochrom> Sometimes when I'm in C, I want partial application, so I FFI to Haskell...
02:34:55 <monochrom> Fortunately, lately I learned that libffi can do that.
02:35:05 <maerwald> arahael: https://www.youtube.com/watch?v=0jI-AlWEwYI
02:35:16 <arahael> maerwald: I don't really learn from videos. :( (I'm deaf, too)
02:35:21 plutoniix joins (~q@184.82.195.253)
02:35:31 <maerwald> https://github.com/hasura/eff
02:35:33 <monochrom> Although, FFIing to Haskell is still less code to write by hand :)
02:35:50 <maerwald> arahael: there should be captions
02:36:23 cyphase joins (~cyphase@unaffiliated/cyphase)
02:36:30 <monochrom> No, that one has only auto-generated English.
02:36:52 <maerwald> the slides itself are quite useful though
02:37:01 <monochrom> Ah, that one yes.
02:37:21 <monochrom> Yeah sometimes I ignore everything except the slides.
02:37:54 <arahael> Wonder why they didn't just put the slides up then - sorry, I just have a knee-jerk reaction to youtube because more often then not, the captions are crap, or missing, or the video is "too new" (so doesn't even have the autogenerated english), or just very very slow in general when it could've been a nice, elegant article. :(
02:38:33 <monochrom> Usually the slides are up somewhere else.
02:38:46 <monochrom> The speaker's own home page for example.
02:39:07 <maerwald> sometimes she's on IRC, but not right now I think
02:39:13 <arahael> And it's very tedious to wait through the first advetisement... The second advertisement... And then skip to the middle to check the captions quality... Then skip back to the start to let it run through.
02:40:10 <_bin> disconnect znc_snoonet
02:40:19 <ephemient> slides with speakers notes to page through at your own rate would be ideal. I can't find either for this presentation though
02:40:43 × xff0x quits (~fox@2001:1a81:5319:4600:de4d:e10d:2b58:a372) (Ping timeout: 260 seconds)
02:41:06 <maerwald> the videos should be *in the slides* :)
02:41:20 <maerwald> and when you switch to a slide, you can watch the section for that slide
02:41:37 <arahael> Yeah, this video is terrible - the slides are possibly good, but very very slow. The captions seem to be good, actually, but can't read the slides at the same time as they dont' give enough time.
02:42:25 × conal quits (~conal@209.58.139.51) (Ping timeout: 265 seconds)
02:42:29 xff0x joins (~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d)
02:42:54 <monochrom> maerwald, that's a great idea.
02:43:33 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
02:43:48 <arahael> Oh, wow. Youtube provides *transcripts* now.
02:43:52 <maerwald> 50 years of programming, millions of codebases, but we still suck at usability
02:44:09 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
02:44:26 <arahael> I can click on a line in the transcript, and it'll jump to that section in the video - this might be usable.
02:44:35 <monochrom> The fundamental limitation is coder mindset.
02:44:46 <ephemient> it's as usable as the automatic captions are
02:44:57 <ephemient> in this case, probably pretty good, as it's a clean recording
02:44:58 <monochrom> Coder mindset means thinking "what I can code up" not "what people really need".
02:45:23 <arahael> ephemient: I assume she probably has a "good accent" and that there's no background noise, it does seem a clean recording.
02:45:43 <maerwald> monochrom: well... we had a usability course in university, but I don't think anyone realised that it's probably the most important course. The rest you can easily teach yourself, imo.
02:46:03 <arahael> monochrom: I think it's also that disabilities are pushed down. Videos as the trendy form of expression puts the bar to intellegibility higher.
02:46:21 <maerwald> But programmers are unlikely to teach themselves usability theory
02:46:35 <monochrom> And I'm careful to word it not as "programmer mindset" because now I broaden "programmer" to include, for example, artists who use a CAD system to build 3D models for movies. And those people actually make sense in terms of needs.
02:46:46 conal joins (~conal@64.71.133.70)
02:47:10 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
02:48:35 <maerwald> Some things you have to hammer into their faces
02:48:49 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
02:51:39 <maerwald> But then again, from the companies I worked at only one hired a "usability engineer" and only because the product was internal and ppl were leaving because it sucked so hard :D
02:52:45 × jmchael quits (~jmchael@81.174.205.210) (Ping timeout: 240 seconds)
02:57:01 <arahael> Copied transcript. Reformatted to fit a sane line length. It's now 1000 lines, without any punctuation whatsoever. :D
02:57:58 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
03:01:00 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
03:03:28 × sajith_ quits (~sajith@fsf/member/nonzen) (Disconnected by services)
03:03:58 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 246 seconds)
03:04:46 lagothrix is now known as Guest2830
03:04:46 xirhtogal joins (~lagothrix@unaffiliated/lagothrix)
03:04:46 × Guest2830 quits (~lagothrix@unaffiliated/lagothrix) (Killed (barjavel.freenode.net (Nickname regained by services)))
03:04:46 xirhtogal is now known as lagothrix
03:05:50 Jd007 joins (~Jd007@d154-5-83-24.bchsia.telus.net)
03:06:01 <arahael> maerwald: Thanks for the talk, going to reformat the transcript as I go through it but it does seem that there's loads of good stuff in there.
03:06:07 <arahael> Will do that in the arvo.
03:06:15 mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
03:07:25 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 264 seconds)
03:11:03 × mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds)
03:12:58 × urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna)
03:19:59 × dddddd quits (~dddddd@unaffiliated/dddddd) (Remote host closed the connection)
03:22:37 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Quit: WeeChat 2.3)
03:22:52 maroloccio joins (~marolocci@pousada3ja.mma.com.br)
03:23:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:25:25 × juri_ quits (~juri@178.63.35.222) (Ping timeout: 264 seconds)
03:28:08 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:28:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
03:30:07 petersen_ joins (~petersen@redhat/juhp)
03:30:44 × _bin quits (~bin@2600:1700:10a1:38d0:b49e:5cc4:aa1c:81d9) (Quit: ZNC - https://znc.in)
03:30:54 _bin joins (~bin@2600:1700:10a1:38d0:4c18:8b30:99af:ec29)
03:31:25 × petersen quits (~petersen@redhat/juhp) (Ping timeout: 264 seconds)
03:31:39 petersen_ is now known as petersen
03:32:22 × xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection)
03:32:43 dddddd joins (~dddddd@unaffiliated/dddddd)
03:32:46 xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar)
03:34:36 × Varis quits (~Tadas@unaffiliated/varis) (Ping timeout: 272 seconds)
03:36:15 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
03:36:35 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:38:33 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
03:38:54 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
03:39:24 bitmapper joins (uid464869@gateway/web/irccloud.com/x-dhvdirleecffuxmg)
03:39:38 Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-134-138.cust.tzulo.com)
03:44:01 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
03:46:54 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
03:51:42 × theDon quits (~td@muedsl-82-207-238-201.citykom.de) (Ping timeout: 272 seconds)
03:52:08 Stanley00 joins (~stanley00@unaffiliated/stanley00)
03:52:50 theDon joins (~td@muedsl-82-207-238-128.citykom.de)
03:56:13 × MidAutumnHotaru quits (~MidAutumn@unaffiliated/midautumnhotaru) (Quit: Quit 啾)
03:56:47 MidAutumnHotaru joins (~MidAutumn@unaffiliated/midautumnhotaru)
03:58:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:58:37 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
04:00:29 Rudd0 joins (~Rudd0@185.189.115.103)
04:05:04 × cassim- quits (~cassim@51.194.80.91) (Ping timeout: 265 seconds)
04:07:08 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
04:09:35 × dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds)
04:09:43 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
04:10:17 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
04:10:30 dddddd joins (~dddddd@unaffiliated/dddddd)
04:13:49 × Sheilong quits (uid293653@gateway/web/irccloud.com/x-xrvpventptxcogxg) ()
04:14:21 drbean joins (~drbean@TC210-63-209-157.static.apol.com.tw)
04:14:48 christo joins (~chris@81.96.113.213)
04:18:35 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
04:18:38 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
04:22:29 × fosterite quits (~fosterite@2600:6c46:7800:fecf:18b:441f:651b:fcc8) ()
04:22:48 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
04:23:09 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
04:23:14 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
04:23:39 × Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-134-138.cust.tzulo.com) (Quit: Leaving)
04:24:25 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 240 seconds)
04:24:32 notzmv joins (~user@unaffiliated/zmv)
04:25:42 thunderrd joins (~thunderrd@183.182.115.136)
04:25:59 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
04:27:05 jedws joins (~jedws@121.209.189.201)
04:27:42 thunderrd joins (~thunderrd@183.182.115.136)
04:27:58 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
04:29:12 dyeplexer joins (~lol@unaffiliated/terpin)
04:32:14 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
04:33:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
04:35:15 × jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:35:55 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
04:39:56 Tario joins (~Tario@201.192.165.173)
04:40:09 conal joins (~conal@64.71.133.70)
04:41:25 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Remote host closed the connection)
04:41:27 × conal quits (~conal@64.71.133.70) (Client Quit)
04:41:52 conal joins (~conal@64.71.133.70)
04:42:08 × conal quits (~conal@64.71.133.70) (Client Quit)
04:44:04 × Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds)
04:44:05 conal joins (~conal@64.71.133.70)
04:44:17 × conal quits (~conal@64.71.133.70) (Client Quit)
04:44:41 conal joins (~conal@64.71.133.70)
04:44:41 × conal quits (~conal@64.71.133.70) (Client Quit)
04:49:32 thunderrd joins (~thunderrd@183.182.115.136)
04:49:51 new_haskeller joins (ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com)
04:49:58 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
04:51:28 notzmv joins (~user@unaffiliated/zmv)
04:53:36 lep-delete is now known as Guest18945
04:53:37 Guest18945 is now known as test
04:53:37 test is now known as Guest18945
04:53:37 Guest18945 is now known as test
04:53:37 test is now known as Guest18945
04:55:02 Guest18945 is now known as lep-delete
04:59:20 Cassim joins (~cassim@51.194.80.91)
05:01:24 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:02:37 × dfeuer quits (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net) (Ping timeout: 264 seconds)
05:04:51 × spopejoy quits (~stuart@ool-44c5f8c9.dyn.optonline.net) (Quit: spopejoy)
05:07:22 mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
05:08:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:10:25 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
05:10:46 × Jd007 quits (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
05:11:47 notzmv joins (~user@unaffiliated/zmv)
05:11:47 × mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds)
05:12:29 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
05:12:53 × stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Excess Flood)
05:13:14 stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net)
05:14:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
05:14:43 × notzmv quits (~user@unaffiliated/zmv) (Remote host closed the connection)
05:16:03 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
05:17:33 matryoshka` joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
05:17:40 × matryoshka quits (~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
05:18:29 hololeap joins (~hololeap@unaffiliated/hololeap)
05:19:10 Jd007 joins (~Jd007@d154-5-83-24.bchsia.telus.net)
05:22:40 Varis joins (~Tadas@unaffiliated/varis)
05:22:47 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
05:23:07 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
05:24:22 Tops21 joins (~Tobias@dyndsl-095-033-088-067.ewe-ip-backbone.de)
05:27:32 × petersen quits (~petersen@redhat/juhp) (Quit: petersen)
05:27:49 × Tops2 quits (~Tobias@dyndsl-095-033-017-251.ewe-ip-backbone.de) (Ping timeout: 246 seconds)
05:28:13 petersen joins (~petersen@redhat/juhp)
05:28:51 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
05:29:06 thunderrd joins (~thunderrd@183.182.115.136)
05:30:09 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Client Quit)
05:30:33 ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net)
05:31:51 heatsink joins (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
05:32:27 × kupi quits (uid212005@gateway/web/irccloud.com/x-zsinuyuwufxnleoc) (Quit: Connection closed for inactivity)
05:33:33 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
05:36:54 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 260 seconds)
05:38:08 × ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) (Remote host closed the connection)
05:40:05 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:40:59 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
05:41:22 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
05:41:25 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
05:46:08 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
05:51:23 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
05:53:43 thunderrd joins (~thunderrd@183.182.115.136)
05:55:08 × Tops21 quits (~Tobias@dyndsl-095-033-088-067.ewe-ip-backbone.de) (Quit: Leaving.)
05:57:04 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:00:42 cfricke joins (~cfricke@unaffiliated/cfricke)
06:01:31 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Remote host closed the connection)
06:01:51 × dansho quits (~dansho@ec2-52-196-57-214.ap-northeast-1.compute.amazonaws.com) (Ping timeout: 256 seconds)
06:02:13 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
06:03:19 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Remote host closed the connection)
06:03:27 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
06:03:28 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Remote host closed the connection)
06:03:58 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
06:04:27 × rlaager1 quits (~rlaager@84.39.117.57) (Remote host closed the connection)
06:10:17 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 272 seconds)
06:12:17 nineonine joins (~nineonine@50.216.62.2)
06:13:48 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
06:14:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
06:18:25 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 240 seconds)
06:19:21 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:19:56 spopejoy joins (~stuart@ool-44c5f8c9.dyn.optonline.net)
06:20:46 nineonin_ joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
06:21:05 jespada joins (~jespada@90.254.245.49)
06:22:48 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
06:23:07 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
06:23:56 × nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 256 seconds)
06:24:40 × spopejoy quits (~stuart@ool-44c5f8c9.dyn.optonline.net) (Ping timeout: 256 seconds)
06:26:37 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 246 seconds)
06:29:24 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds)
06:29:26 thunderrd joins (~thunderrd@183.182.115.136)
06:37:12 thevishy joins (~Nishant@103.210.43.19)
06:39:54 rembo10 joins (~rembo10@wally.codeshy.com)
06:41:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:44:24 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
06:46:35 jedws joins (~jedws@121.209.189.201)
06:46:59 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
06:49:19 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
06:49:25 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds)
06:52:51 × jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…)
06:54:48 jedws joins (~jedws@121.209.189.201)
06:54:53 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
06:56:12 × jedws quits (~jedws@121.209.189.201) (Client Quit)
07:02:43 grey_owl joins (~Harry@c-98-248-252-181.hsd1.ca.comcast.net)
07:05:24 × grey_owl quits (~Harry@c-98-248-252-181.hsd1.ca.comcast.net) (Quit: Leaving)
07:07:42 × tsrt^ quits (~hph@ip98-184-89-2.mc.at.cox.net) ()
07:08:35 mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
07:08:36 <gnumonic> Hello. I'm trying to figure out how to do basic arithmetic with singletons, but I'm stuck on how to work with existential GADTs. Could anyone tell me why https://gist.github.com/gnumonik/2bbda78c261cb36fcc492d33d2f0a54e doesn't work? I'm lost.
07:09:20 ArsenArsen_ joins (~Arsen@fsf/member/ArsenArsen)
07:09:57 × ArsenArsen quits (~Arsen@fsf/member/ArsenArsen) (Ping timeout: 260 seconds)
07:12:35 × new_haskeller quits (ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com) (Ping timeout: 245 seconds)
07:12:40 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
07:13:37 × mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds)
07:15:22 mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
07:18:47 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:20:09 danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
07:21:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:22:47 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
07:22:48 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
07:23:03 × ericsagnes quits (~ericsagne@2405:6580:0:5100:e26e:cf9:1dd6:9615) (Ping timeout: 260 seconds)
07:23:07 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
07:23:56 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Remote host closed the connection)
07:24:11 heatsink joins (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
07:27:38 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 264 seconds)
07:28:26 justinthong joins (~justintho@2001:e68:5442:bb98:d4be:58e5:d005:c53b)
07:28:31 nrh^ joins (~hph@ip98-184-89-2.mc.at.cox.net)
07:29:37 jkjf joins (af88139f@175.136.19.159)
07:30:28 <justinthong> hi how do you set a fork of a repo in the dependency for dependency of building a package?
07:30:51 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
07:31:27 christo joins (~chris@81.96.113.213)
07:31:56 × Jd007 quits (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
07:32:21 <justinthong> i figured it was just as simple as specifying it in extra-deps specifying github and commit key
07:32:39 <justinthong> does this pull the package and build on my local automatically??
07:34:44 × MarcelineVQ quits (~anja@198.254.202.72) (Ping timeout: 260 seconds)
07:36:03 MarcelineVQ joins (~anja@198.254.202.72)
07:40:15 × jkjf quits (af88139f@175.136.19.159) (Remote host closed the connection)
07:41:01 × christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
07:45:14 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
07:45:50 unlink_ joins (~unlink2@p200300ebcf259600e4593ff5d42812d3.dip0.t-ipconnect.de)
07:47:11 justinthong is now known as tintinthong
07:47:19 <tintinthong> l
07:48:15 <xerox_> tintinthong: you use the project file to describe overrides
07:48:59 <xerox_> https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=packages#specifying-the-local-packages
07:50:23 × Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer)
07:50:53 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
07:51:20 × tintinthong quits (~justintho@2001:e68:5442:bb98:d4be:58e5:d005:c53b) (Remote host closed the connection)
07:51:31 rmk236 joins (~lcampos@2a02:908:3616:b100:b46b:967f:fa10:7f63)
07:52:42 tintinthong joins (af88139f@175.136.19.159)
07:53:50 guest15` joins (~user@49.5.6.87)
07:54:00 × guest15 quits (~user@49.5.6.87) (Read error: Connection reset by peer)
07:54:22 × eacameron quits (uid256985@gateway/web/irccloud.com/x-ruzyobnhrnktduyo) (Quit: Connection closed for inactivity)
07:54:53 matijja joins (~matijja@193.77.181.208)
07:55:06 × poljar1 quits (~poljar@93-139-24-194.adsl.net.t-com.hr) (Remote host closed the connection)
07:55:33 poljar1 joins (~poljar@93-139-24-194.adsl.net.t-com.hr)
07:55:52 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
08:00:56 × thevishy quits (~Nishant@103.210.43.19) (Ping timeout: 265 seconds)
08:01:14 <ephemient> extra-deps sounds like stack, not cabal https://docs.haskellstack.org/en/stable/yaml_configuration/#extra-deps
08:01:25 <ephemient> yes, it'll pull the package and build locally
08:02:53 thunderrd joins (~thunderrd@183.182.115.136)
08:04:09 jokester joins (~mono@unaffiliated/jokester)
08:08:01 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)
08:08:29 × nineonin_ quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
08:09:22 <tintinthong> @ephemie
08:09:23 <lambdabot> Unknown command, try @list
08:09:51 <tintinthong> @ephemient thanks. I noticed i wrote github in the key rather than git
08:09:51 <lambdabot> Unknown command, try @list
08:10:32 michalz joins (~user@185.246.204.79)
08:11:35 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
08:11:41 <gentauro> I think I found a solution to do CI/CD for windows binaries :)
08:12:45 <gentauro> https://hub.docker.com/_/microsoft-windows-servercore or https://hub.docker.com/_/microsoft-windows-nanoserver
08:12:52 <gentauro> «License > CONTAINER OS IMAGE > The Container Image may only be used with a validly licensed copy of: … Microsoft Windows Operating System (version 10) software (“Client Host Software”), or …»
08:13:06 <gentauro> I have a Windows 10 license from my laptop that I don't use :) (nixos)
08:13:40 jmchael joins (~jmchael@87.112.235.234)
08:15:49 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 246 seconds)
08:16:45 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
08:18:59 ericsagnes joins (~ericsagne@2405:6580:0:5100:f3f3:dcc0:7739:4a38)
08:19:02 × mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 260 seconds)
08:19:07 pera joins (~pera@unaffiliated/pera)
08:22:48 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
08:23:08 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
08:25:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:30:25 dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be)
08:32:48 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
08:35:31 thevishy joins (~Nishant@103.210.43.144)
08:36:00 coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
08:38:50 × coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Client Quit)
08:39:09 coot joins (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl)
08:41:52 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
08:42:51 <idnar> gentauro: note that you need a Windows host to run those
08:45:30 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
08:46:28 mpereira joins (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654)
08:48:08 <tintinthong> im a little confused. If im using hpack with package.yaml how do I specify a repo to clone and build with git?? or even just a local repo?? I suppose all of this should be under dependencies
08:48:58 <merijn> tintinthong: ok, you are, I think, conflating a number of things
08:49:16 × drbean quits (~drbean@TC210-63-209-157.static.apol.com.tw) (Ping timeout: 265 seconds)
08:49:48 <tintinthong> yes probably
08:50:03 <tintinthong> this is the slick rep
08:50:05 <tintinthong> repo
08:50:07 <tintinthong> ultimately
08:50:07 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
08:50:07 <merijn> tintinthong: package.yaml is an alternative (and imo *bad*) way to specify the cabal file of a package. Cabal files cannot specify how/where to get dependencies. Presumably you're using stack, in which case overriding "where to get things" should be part of the stack configuration file (stack.yaml?)
08:50:21 <merijn> See also: https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07
08:50:55 × howdoi quits (uid224@gateway/web/irccloud.com/x-tiblbupceujnheos) (Quit: Connection closed for inactivity)
08:51:16 <tintinthong> uhmmm but i dont get when I update stack with the dependency with git. It clones but it doesn't recognize the repo under the name "Slick"
08:51:48 <merijn> I don't actually use stack, so not really sure how to make it use anything else
08:51:52 <ephemient> stack.yaml tells stack where to get packages and which versions; *.cabal (generated from package.yaml) tells cabal (which stack calls) which packages are needed
08:52:13 da39a3ee5e6b4b0d joins (~da39a3ee5@67.23.55.162)
08:52:25 × mpereira quits (~mpereira@2a02:810d:f40:d96:a13a:4248:e827:5654) (Ping timeout: 272 seconds)
08:53:03 <ephemient> if you want to make use of a custom package, pin it in stack.yaml and make sure it's a dep in package.yaml/*.cabal
08:54:01 <tintinthong> yes. so there is where im at now. I have got it to clone. but I dont know how to specify package that was cloned so that cabal knows about it
08:54:40 × jmchael quits (~jmchael@87.112.235.234) (Ping timeout: 256 seconds)
08:54:46 <tintinthong> im just unsure how to modify the dependencies key in package.yaml
08:55:15 <ephemient> if you're replacing an existing package, it shouldn't need to change
08:55:27 <tintinthong> oh
08:55:34 <tintinthong> so I can just use the same name??
08:55:46 <tintinthong> dependencies:
08:55:54 <tintinthong> - slick
08:55:59 <tintinthong> in my package.yaml
08:56:02 undergroundclove joins (~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net)
08:56:12 <tintinthong> im replacing slick with my own fork of it
08:56:21 <ephemient> yes, as long as your fork keeps the package name slick
08:56:35 <tintinthong> hmmmm fishy then something unusual is happening
08:56:42 <tintinthong> probably a bug on y side then
08:56:58 <tintinthong> my*
08:57:30 <tintinthong> gees haskell breaks my soul when I manage packages
08:59:16 × carlomagno quits (~cararell@148.87.23.11) (Remote host closed the connection)
09:00:06 carlomagno joins (~cararell@148.87.23.11)
09:00:33 nij joins (~user@24-124-119-167-dynamic.midco.net)
09:01:24 × rmk236 quits (~lcampos@2a02:908:3616:b100:b46b:967f:fa10:7f63) (Quit: Leaving.)
09:01:52 <nij> Hello! Just installed xmonad and xmonad-contrib from cabal, and ran `xmonad --recompile`. An error popped out asking me to enable some hidden packages: "You can run `:set -package xmonad` to expose it." How to do this without ghci?
09:02:12 <nij> Or.. if there's a way to do this with ghci, I'll also be happy to know.
09:03:01 × undergroundclove quits (~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net) ()
09:03:09 <ephemient> tintinthong: you can try checking the package out in some local directory, and adding it to the packages section in stack.yaml (e.g. git clone ... slick; modify stack.yaml with packages: ⏎ - . ⏎ - slick). this will be a local build instead of fetching from git, may help you debug whatever is going on
09:03:18 undergroundclove joins (~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net)
09:03:53 <tintinthong> cool that sounds like a very reasonable solution
09:04:09 <tintinthong> thanks!
09:04:30 × undergroundclove quits (~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net) (Client Quit)
09:05:09 ubert joins (~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de)
09:05:36 bitmagie joins (~Thunderbi@200116b806b0fe00759218703f44b452.dip.versatel-1u1.de)
09:05:58 <idnar> merijn: what's the .cabal equivalent of listing all your sources in exposed/other-modules automatically?
09:07:02 <merijn> idnar: There is none, because that is an explicit anti-feature
09:07:04 <ephemient> the cabal equivalent of listing all your sources is… listing all your sources
09:07:50 <merijn> idnar: Like, I get that programmers (me included) are lazy and that everyone (me not included) wants that, but cabal intentionally does not support that
09:08:02 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
09:08:44 <ephemient> nij: I don't use xmonad but sounds like https://github.com/xmonad/xmonad/issues/199
09:09:02 <idnar> merijn: for executables it's _really_ tedious :/
09:09:16 <merijn> idnar: The *main* purpose of cabal files is to *explicitly* specify exactly what's in a package, because long term packaging/package management is *hell* without explicit specifications
09:09:58 <idnar> merijn: I'm fine with it for public packages
09:10:03 ADG1089__ joins (~aditya@171.79.107.193)
09:10:03 <merijn> idnar: tbh, I find it only a minor inconvenience, in practice you just don't add modules *that* often. And whenever I get annoyed by doing it I just remind myself it's "for the greater good" :p
09:10:13 <merijn> idnar: There's some beta-quality tools for automating things
09:10:15 <nij> ephemient: I was about to try the info in your link.
09:10:22 <nij> But another method worked..
09:10:25 × pera quits (~pera@unaffiliated/pera) (Ping timeout: 246 seconds)
09:10:35 <nij> I have to use `cabal new-install` instead of `cabal install`
09:10:51 <nij> Weird... I thought they are made to be the same already.
09:11:04 <merijn> nij: Which version of cabal-install do you have?
09:11:21 <ephemient> for the record you should be writing v2-install instead of new-install, but... as of cabal 3 they should be the same, odd
09:11:21 ericsagn1 joins (~ericsagne@2405:6580:0:5100:bc30:81f5:400c:ad5c)
09:12:06 <merijn> ephemient: Several distros still ship 2.4 (or even older!)
09:12:07 <nij> merijn: 3.2.0.0
09:12:49 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
09:13:15 <merijn> idnar: https://github.com/haskell/cabal/issues/5343#issuecomment-520140470
09:13:36 <gentauro> 09:42 < idnar> gentauro: note that you need a Windows host to run those
09:13:44 Boomerang joins (~Boomerang@2a05:f6c7:2179:0:8da5:2e46:f1e1:ab48)
09:13:51 <gentauro> idnar: can't they run on a *nix with `docker`?
09:13:54 <merijn> nij: install should be equal to v2-install there
09:14:15 <merijn> nij: What's the difference you see?
09:14:35 × ericsagnes quits (~ericsagne@2405:6580:0:5100:f3f3:dcc0:7739:4a38) (Ping timeout: 272 seconds)
09:15:04 <nij> I first used install, and then `xmonad --recompile` failed.
09:15:28 <nij> Then I ran `cabal new-install --lib xmonad xmonad-contrib`. After this, `xmonad --recompile` worked.
09:15:41 <nij> I should do it all again and see what the problem is.
09:15:59 <ephemient> the --lib part is what made the difference, not the new-install part
09:16:09 <merijn> --lib is kinda wonky, though
09:16:19 <merijn> You probably wanna follow hvr's recommendation here: https://github.com/xmonad/xmonad/issues/199
09:16:26 <ephemient> and it's global state, so it'll stick around...
09:16:27 <merijn> oh, that was already linked xD
09:16:46 <nij> Sorry, I did run --lib with install.
09:17:05 <nij> ephemient: what's global state?
09:17:48 <ephemient> --lib writes ~/.ghc/$ARCH-$OS-$GHCVER/environments/default
09:18:59 <idnar> gentauro: no, Docker for Windows runs actual Windows images in actual Windows containers (unlike Docker for Mac which runs Linux images in a VM)
09:19:22 ericsagnes joins (~ericsagne@2405:6580:0:5100:8a75:732f:61a9:9dfb)
09:20:05 undergro_ joins (~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net)
09:20:05 undergroundclove joins (~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net)
09:20:11 <nij> ephemient: is it discouraged to add that to global env?
09:20:11 × undergroundclove quits (~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net) (Client Quit)
09:20:17 × ericsagn1 quits (~ericsagne@2405:6580:0:5100:bc30:81f5:400c:ad5c) (Ping timeout: 272 seconds)
09:20:45 <ephemient> in general, yes. agree with merijn that hvr's suggestion is better
09:20:54 <ephemient> *I agree
09:20:55 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
09:22:23 <nij> I'm not sure I understand hvr's code block. But at the end hvr suggested:
09:22:32 <nij> `cabal install -z --lib --package-env=$HOME/.xmonad/ xmonad xmonad-contrib`
09:22:32 <nij>
09:22:34 thunderrd joins (~thunderrd@183.182.115.136)
09:22:37 <nij> is this also recommended?
09:22:47 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
09:23:09 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
09:23:13 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
09:23:15 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
09:23:17 <ephemient> yes, that writes ~/.xmonad/.ghc.environment... instead of the global env, in such a way that xmonad should pick it up
09:23:28 pera joins (~pera@unaffiliated/pera)
09:23:37 <ephemient> as long as your GHC version is the same
09:23:49 <nij> I will give it a try! Thanks :D
09:24:09 nij parts (~user@24-124-119-167-dynamic.midco.net) ("ERC (IRC client for Emacs 27.1)")
09:24:19 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
09:24:31 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
09:24:36 thunderrd joins (~thunderrd@183.182.115.136)
09:25:28 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
09:26:07 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
09:26:11 yhsiveht joins (~Nishant@103.210.43.128)
09:28:45 × thevishy quits (~Nishant@103.210.43.144) (Ping timeout: 240 seconds)
09:28:47 thunderrd joins (~thunderrd@183.182.115.136)
09:30:02 thevishy joins (~Nishant@103.210.43.130)
09:30:32 × pera quits (~pera@unaffiliated/pera) (Ping timeout: 272 seconds)
09:30:40 pera joins (pera@gateway/vpn/mullvad/pera)
09:30:47 × undergro_ quits (~undergrou@pool-70-19-56-246.nycmny.fios.verizon.net) ()
09:30:50 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
09:32:07 × yhsiveht quits (~Nishant@103.210.43.128) (Ping timeout: 246 seconds)
09:32:13 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
09:33:43 daaaamien joins (~damien@2a01:e34:ef93:9a60:1adb:f2ff:fe40:717b)
09:33:51 × daaaamien quits (~damien@2a01:e34:ef93:9a60:1adb:f2ff:fe40:717b) (Client Quit)
09:34:10 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Remote host closed the connection)
09:36:39 × RusAlex quits (~Chel@unaffiliated/rusalex) (Ping timeout: 260 seconds)
09:37:35 × hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-atpmuzdscbrrptko) (Quit: Connection closed for inactivity)
09:38:08 RusAlex joins (~Chel@unaffiliated/rusalex)
09:41:41 × tintinthong quits (af88139f@175.136.19.159) (Remote host closed the connection)
09:42:55 Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
09:46:25 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
09:46:56 __monty__ joins (~toonn@unaffiliated/toonn)
09:47:14 fradet joins (~pi@216.252.75.247)
09:48:03 hekkaidekapus{ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
09:49:16 chele joins (~chele@ip5b40237d.dynamic.kabel-deutschland.de)
09:49:23 × hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
09:57:51 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:01:18 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
10:05:01 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
10:05:01 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
10:05:01 mouseghost joins (~draco@wikipedia/desperek)
10:07:37 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
10:07:40 worc3131 joins (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20)
10:11:43 fendor joins (~fendor@77.119.129.169.wireless.dyn.drei.com)
10:11:47 juri_ joins (~juri@79.140.115.159)
10:12:40 × juri_ quits (~juri@79.140.115.159) (Read error: Connection reset by peer)
10:14:17 Deide joins (~Deide@217.155.19.23)
10:15:10 × pera quits (pera@gateway/vpn/mullvad/pera) (Ping timeout: 246 seconds)
10:15:18 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
10:16:45 juri_ joins (~juri@178.63.35.222)
10:17:07 pera joins (~pera@unaffiliated/pera)
10:17:07 × pera quits (~pera@unaffiliated/pera) (Client Quit)
10:17:52 DavidEichmann joins (~david@98.27.93.209.dyn.plus.net)
10:19:05 × shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:8c45:faa1:a31d:b462) (Remote host closed the connection)
10:20:43 acidjnk_new joins (~acidjnk@p200300d0c704e77345042c8b5bd54d99.dip0.t-ipconnect.de)
10:21:34 christo joins (~chris@81.96.113.213)
10:22:47 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
10:23:07 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
10:24:55 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
10:25:37 kritzefitz joins (~kritzefit@212.86.56.80)
10:26:23 shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:5a:c3a4:5df0:660c)
10:29:48 × guest15` quits (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1))
10:33:10 thc202 joins (~thc202@unaffiliated/thc202)
10:34:33 heatsink joins (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
10:36:09 kuribas joins (~user@ptr-25vy0i9wm95xppa9w26.18120a2.ip6.access.telenet.be)
10:39:38 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Ping timeout: 264 seconds)
10:40:33 rajivr joins (uid269651@gateway/web/irccloud.com/x-ynaufapxkeljugpz)
10:45:43 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
10:48:37 nij joins (~user@24-124-119-167-dynamic.midco.net)
10:49:43 <nij> I have my xmobarrc put in ~/.config/xmobar . It has worked nicely as I used to rely on pacman (arch's package manager).
10:49:43 vilpan joins (~0@212.117.1.172)
10:50:20 <__monty__> nij: #xmonad may be more appropriate.
10:50:22 <nij> I decided to switch to cabal completely, so I got it from `cabal install xmobar`, and removed that from pacman.
10:50:36 <nij> However, my config stops working..
10:50:53 <nij> __monty__: I think this is again a dependency issue.. which is more related to cabal.
10:51:36 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
10:52:32 <nij> But sure.. I will try there.
10:54:23 <__monty__> nij: If it's a constraint issue feel free to ask here but I do expect the intersection of haskeller's that know about xmobar and haskell will be in #xmonad.
10:55:05 christo joins (~chris@81.96.113.213)
10:55:15 <nij> __monty__: thanks :)
10:55:33 madjest13 joins (~Android@188-207-107-141.mobile.kpn.net)
10:59:05 <nij> In short, I got xmobar from two different place. One from pacman, build recipe given below, and the other from `cabal new-install xmobar-0.36`. The former parses my xmobarrc correctly, but the later does not. The build recipe for the former is given here: https://github.com/archlinux/svntogit-community/blob/packages/xmobar/trunk/PKGBUILD --- Question: I wonder how I should use `cabal new-install` to get xmobar that behaves like the
10:59:06 <nij> former.
10:59:06 × nij quits (~user@24-124-119-167-dynamic.midco.net) (Remote host closed the connection)
10:59:22 nij joins (~user@24-124-119-167-dynamic.midco.net)
11:00:31 <nij> ,ping
11:00:51 <nij> Got disconnected.. not sure if it sent through.. sorry if it did.
11:01:01 <mouseghost> huh
11:01:19 <nij> I got xmobar from two different places. One from pacman (build recipe given below), and the other from `cabal new-install xmobar-0.36`. The former parses my xmobarrc correctly, while the later does not. --- Question: How should should use `cabal new-install` to get xmobar that behaves like the former. BUILD RECIPE of the former: https://github.com/archlinux/svntogit-community/blob/packages/xmobar/trunk/PKGBUILD
11:01:53 <mouseghost> yeah that sent through
11:03:01 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:03:50 × nij quits (~user@24-124-119-167-dynamic.midco.net) (Remote host closed the connection)
11:03:59 × da39a3ee5e6b4b0d quits (~da39a3ee5@67.23.55.162) (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:04:05 nij joins (~user@24-124-119-167-dynamic.midco.net)
11:12:20 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
11:13:51 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
11:14:12 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:15:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
11:15:28 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:15:55 Franciman joins (~francesco@host-82-48-174-127.retail.telecomitalia.it)
11:16:18 jmchael joins (~jmchael@87.112.235.234)
11:16:40 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit)
11:16:57 × ubert quits (~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
11:17:02 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:18:28 esp32_prog joins (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127)
11:19:21 × worc3131 quits (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Ping timeout: 272 seconds)
11:23:01 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
11:23:07 × phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 260 seconds)
11:23:23 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:24:19 × madjest13 quits (~Android@188-207-107-141.mobile.kpn.net) (Quit: -a- Connection Timed Out)
11:24:29 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
11:24:36 madjestic joins (~Android@188-207-107-141.mobile.kpn.net)
11:25:54 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Remote host closed the connection)
11:25:59 <__monty__> nij: I think `cabal install --constraint='xmobar == 0.36' xmobar` should work.
11:27:24 gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh)
11:28:05 <nij> __monty__: It asks for xrandr: https://bpa.st/X2CQ
11:28:10 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
11:28:21 <nij> I do have libxrandr on my arch.. not sure how to let cabal see it.
11:28:41 thunderrd joins (~thunderrd@183.182.115.136)
11:29:06 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:29:12 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 260 seconds)
11:29:38 <__monty__> Not familiar with Arch's system packages. Check whether there's a libxrandr-dev package or something?
11:30:07 phaul joins (~phaul@ruby/staff/phaul)
11:31:03 da39a3ee5e6b4b0d joins (~da39a3ee5@67.23.55.162)
11:35:57 heatsink joins (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
11:36:50 <ephemient> Archlinux doesn't have separate dev packages
11:40:50 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Ping timeout: 264 seconds)
11:42:19 × hololeap quits (~hololeap@unaffiliated/hololeap) (Ping timeout: 246 seconds)
11:45:56 <ephemient> xmobar builds fine for me on archlinux, not sure what is different with your setup
11:46:05 Vaxu joins (~vaxaren@melkki.cs.helsinki.fi)
11:46:25 <dibblego> I was having trouble with it a couple of hours ago, gave up, and copied config from a similar machine setup
11:46:39 <dibblego> and it was the problem described above ^^
11:46:41 <nij> ephemient: I think I narrow down the problem more.
11:46:51 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
11:47:10 <nij> For my config, I need xmobar to be compiled with more flags : with_xft with_utf8 with_inotify with_mpd with_alsa with_nl80211 with_datezone with_mpris with_dbus with_xpm with_threaded with_rtsopts with_weather
11:47:36 <nij> With some standard config, it compiled ran without problem indeed.
11:47:42 <nij> *compiled and ran
11:49:21 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
11:49:47 <__monty__> nij: --flags='with_xft,with_utf8...'?
11:50:10 <__monty__> I don't actually know whether you need to provide values or how to provide multiple flags though tbh.
11:50:13 <nij> __monty__: Yes, but then it complains that it cannot access to some dir (without specifying), and therefore lacks of xrandr.
11:50:42 <nij> Without any flag, xrandr is fine.. so I think i need to teach cabal where my libs are.
11:51:15 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
11:51:31 <__monty__> I suspect it doesn't need xrandr if you don't pass those flags. Cabal wouldn't suddenly not look in a libdir because you pass some flags afaik.
11:51:37 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:51:43 <nij> A hint is given in the arch build recipe.. which at the end works for me. I'm still experimenting: https://github.com/archlinux/svntogit-community/blob/packages/xmobar/trunk/PKGBUILD#L34
11:52:35 <ephemient> https://github.com/jaor/xmobar/blob/master/xmobar.cabal
11:52:47 <ephemient> it always wants Xrandr and Xrender, some other native libraries are optional depending on flags
11:52:52 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
11:53:46 <nij> Wow. Compiling programs are really difficult (but fun)!
11:55:28 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
11:55:56 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
11:59:07 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
11:59:34 thunderrd joins (~thunderrd@183.182.115.136)
12:00:04 ubert joins (~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de)
12:00:07 <sshine> nij, what part of the process do you think is the difficult part?
12:00:39 <nij> sshine: I'm trying to `cabal install --flag="with_xft` xmobar`.
12:00:47 <nij> But it gives error.
12:00:56 <dminuoso> Should `cabal gen-bounds` take my cabal.project into accounts? It doesn't seem to find packages vendored via cabal.projects packages stanza
12:01:13 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds)
12:01:13 <nij> sshine: I think it either does not know where my system lib is, or it cannot read the lib somehow.
12:02:13 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
12:04:12 × ph88^ quits (~ph88@2a02:8109:9e00:7e5c:f964:d8d4:1ec3:146c) (Quit: Leaving)
12:06:16 knupfer joins (~Thunderbi@200116b82c8bca00a01b46fffe79591f.dip.versatel-1u1.de)
12:06:23 × esp32_prog quits (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Remote host closed the connection)
12:06:56 × knupfer quits (~Thunderbi@200116b82c8bca00a01b46fffe79591f.dip.versatel-1u1.de) (Remote host closed the connection)
12:07:10 knupfer joins (~Thunderbi@200116b82c8bca00b8bd6ca10a864d4f.dip.versatel-1u1.de)
12:07:30 <merijn> dminuoso: cabal.project doesn't affect bounds
12:08:05 <dminuoso> merijn: No, but it affects the build plan.
12:08:15 <merijn> dminuoso: It just affects whether packages are local. If you have bounds incompatible with the local version your code just doesn't build
12:08:15 <dminuoso> It's failing to generate a build plan because I have locally vendored packages
12:08:32 <merijn> dminuoso: Well, fix your bounds to match the vendored package then? :p
12:08:35 <dminuoso> huh?
12:08:37 <dminuoso> You misunderstand
12:08:51 Entertainment joins (~entertain@104.246.132.210)
12:09:00 <dminuoso> I have a local package, not available on hackage. It's being vendored through cabal.project
12:09:13 <dminuoso> When I type `cabal gen-bounds` it fails because it cant find my local package on hackage.
12:09:33 <merijn> I think gen-bounds only consults the index, which doesn't have your package
12:10:07 <merijn> You'd have to extend gen-bounds to somehow consider the union of the index and vendor packages, but that seems non-trivial
12:10:08 <dminuoso> Mmm, so perhaps just remove the dependency on the local package while running gen-bounds?
12:10:19 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
12:10:32 <dminuoso> Dunno, Id expect gen-bounds to use the same build plan building code that the rest of cabal uses.
12:11:03 <dminuoso> It *does* consider sub-components after all
12:11:14 <dminuoso> Which might not be on the index
12:12:28 cfricke joins (~cfricke@unaffiliated/cfricke)
12:14:37 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 264 seconds)
12:16:43 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
12:18:34 sord937 joins (~sord937@gateway/tor-sasl/sord937)
12:19:34 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
12:20:09 Tario joins (~Tario@201.192.165.173)
12:21:08 × ericsagnes quits (~ericsagne@2405:6580:0:5100:8a75:732f:61a9:9dfb) (Ping timeout: 260 seconds)
12:22:47 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
12:23:00 <kuribas> for my database library I have a query type: Query database a
12:23:02 × Franciman quits (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving)
12:23:08 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
12:23:25 <nij> Just couldn't get it right @_@
12:24:00 <kuribas> To apply a query, you have to return the selector which will extract rows and convert them to haskell: Query database (Selector database a)
12:24:10 Franciman joins (~francesco@host-82-48-174-127.retail.telecomitalia.it)
12:24:24 <kuribas> They are "inside" the query, because they depend on joined rows.
12:25:36 <kuribas> Now, to be able to modify the query, you need access to the joined tables, so Query database (joinedTables, Selector database a).
12:26:04 <kuribas> My question is, to "generate" the query string, should I use the last type, or just the one returning the selector?
12:26:52 <kuribas> the joinTables aren't really necessary to generate a query, but they are necessary to be able to modify it...
12:29:58 drbean joins (~drbean@TC210-63-209-63.static.apol.com.tw)
12:30:17 <kuribas> However not everyone may want to modify the query...
12:32:36 <kuribas> hmm, maybe I'll keep it simple, but add documentation on how to modify the query...
12:33:24 ulidtko|k joins (~ulidtko@193.111.48.79)
12:33:24 ericsagnes joins (~ericsagne@2405:6580:0:5100:cd75:ef91:6f71:5ba7)
12:36:22 <dminuoso> merijn: but fair enough, Ill just do it by hand using cabal-plan :)
12:36:39 <merijn> kuribas: Sounds like you're slowly converging on the same sorta opaleye mess you wanted to avoid :p
12:36:40 heatsink joins (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7)
12:36:57 <kuribas> merijn: erm, I think my library is vastly simpler than opaleye...
12:37:04 <merijn> For now :p
12:37:14 <kuribas> :-)
12:37:21 <kuribas> it's more like esqueleto perhaps
12:38:14 <kuribas> In fact, I find that reworking my types makes the thing simpler.
12:38:42 <kuribas> IMO the need for making a custom database with the joined tables, if you want to compose queries, is a good thing.
12:38:55 <kuribas> because adds information about your queries.
12:40:18 usr25 joins (~usr25@unaffiliated/usr25)
12:41:01 <kuribas> Going back to haskell from a dynmic language is such a relief. The more I write haskell, the more I like it, and the less I like other language.
12:41:12 <kuribas> Just being able to change a type, then follow the red lines...
12:41:21 <nij> I almost gave up.. cannot compile xmonad with flags successfully by `cabal install` :( Here is the command and error.. I'd appreciate your kind help. https://dpaste.org/9VMX
12:41:21 × madjestic quits (~Android@188-207-107-141.mobile.kpn.net) (Read error: Connection reset by peer)
12:41:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:e0a4:3836:b19:3d7) (Ping timeout: 264 seconds)
12:41:42 <nij> s/xmonad/xmobar
12:42:49 geekosaur joins (ac3a3bdd@172.58.59.221)
12:43:58 <kuribas> merijn: it seems that types have a will of their own, and when you don't resist it, things start to fall in place, and the code becomes cleaner.
12:44:09 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
12:44:30 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:44:50 <kuribas> merijn: more like "discovering" the patterns, than creating them.
12:45:59 <dminuoso> nij: You seem to have permission problems in your cabal store
12:46:22 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
12:46:34 Alleria joins (~textual@mskresolve-a.mskcc.org)
12:46:35 <dminuoso> or.. I dont know
12:46:42 <dminuoso> its hard to chase through thousands of lines of log
12:46:58 Alleria is now known as Guest43451
12:47:03 christo joins (~chris@81.96.113.213)
12:47:07 <kuribas> merijn: in fact, returning the Selector from the Query, instead of keeping it separate, simplified the API by a lot.
12:47:10 × geekosaur quits (ac3a3bdd@172.58.59.221) (Ping timeout: 245 seconds)
12:47:30 usr25_tm joins (~usr25@unaffiliated/usr25)
12:47:55 royal_screwup217 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
12:48:42 × srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
12:48:42 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
12:48:52 × usr25 quits (~usr25@unaffiliated/usr25) (Ping timeout: 256 seconds)
12:49:00 srk joins (~sorki@gateway/tor-sasl/sorki)
12:49:00 hexo joins (~hexo@gateway/tor-sasl/hexo)
12:50:17 <nij> dminuoso: It seems so! I tried prefixing it by sudo, but it goes instead to /root/.cabal..
12:50:29 <kuribas> merijn: because it acknowledges the fact that the fields you return depend on the query body.
12:50:34 <nij> How to use `sudo..` but still install it in /home/nij/.cabal?
12:51:18 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 272 seconds)
12:51:20 <merijn> Why are you using sudo?
12:51:25 × christo quits (~chris@81.96.113.213) (Ping timeout: 265 seconds)
12:51:27 geekosaur joins (ac3a3be6@172.58.59.230)
12:51:46 <nij> To get all permissions.. as dminuoso remarked.
12:51:46 <dminuoso> Gah, that moment when GHC reports an error on a type, that alone when pretty printed exceeds your terminal buffer length...
12:52:06 dminuoso stares at this in dismay
12:52:08 <merijn> nij: sudo'ing random commands is...certainly adventuruos
12:52:19 <nij> merijn: oh...
12:52:25 × usr25_tm quits (~usr25@unaffiliated/usr25) (Ping timeout: 264 seconds)
12:52:26 <merijn> dminuoso: lol
12:52:32 <nij> I'm desperate :D :D :D
12:52:35 <merijn> dminuoso: Increase your buffer length :p
12:52:44 <nij> I did this in eshell.
12:52:51 <dminuoso> merijn: It's already at 1000 lines!
12:53:06 <nij> so.. any idea? Can I use some other verbose option to make the rant smaller?
12:53:53 <dminuoso> Oh yeah this is priceless, a type that prettyprints to roughly 6k lines !
12:56:12 <merijn> dminuoso: I mean, half this code is C++, 1k lines doesn't sound like *remotely* enough for error output
12:56:35 <nij> I feel that I should ditch xmonad until I am comfortable with the tool chain
12:57:55 <nij> tool*
13:02:43 <dminuoso> merijn: Hold on. Not the error, just a single type!
13:02:53 <dminuoso> Can C++ do that easily? :D
13:02:57 <merijn> Sure
13:03:22 <merijn> dminuoso: https://codegolf.stackexchange.com/questions/1956/generate-the-longest-error-message-in-c ;)
13:04:24 <dminuoso> mmm, not sure whether template instantiations exactly count as types..
13:04:24 <merijn> dminuoso: See also: https://tgceec.tumblr.com/post/107429634033/the-results-thus-far?is_related_post=1 :p
13:04:35 <merijn> dminuoso: What else would they be?
13:04:38 <dminuoso> Sure, that one is old news to me
13:05:27 ArConan joins (9de62a69@157.230.42.105)
13:08:55 × cgfbee quits (~bot@oc1.itim-cj.ro) (Ping timeout: 272 seconds)
13:10:23 × p-core quits (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56) (Quit: p-core)
13:10:42 p-core joins (~Thunderbi@2001:718:1e03:5128:3697:eeda:19aa:8e56)
13:10:50 <ArConan> I want to sign up ,but how?
13:13:57 SvenG1 joins (~SvenG@s91904426.blix.com)
13:14:56 × ArConan quits (9de62a69@157.230.42.105) (Remote host closed the connection)
13:15:55 × plutoniix quits (~q@184.82.195.253) (Quit: Leaving)
13:17:21 urodna joins (~urodna@unaffiliated/urodna)
13:18:48 bi_functor joins (~Melanie@192-0-134-138.cpe.teksavvy.com)
13:19:27 ArConan joins (9de62a69@157.230.42.105)
13:19:43 <ArConan> so,how can i sign up?
13:20:33 christo joins (~chris@81.96.113.213)
13:23:35 esp32_prog joins (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127)
13:23:41 <kuribas> is a nullary class considered bad?
13:23:55 <merijn> Seems rather pointless
13:24:01 <merijn> You can have only one instance
13:24:10 <merijn> So what's the point then
13:24:27 <kuribas> multiparameter class
13:24:32 <kuribas> to specify a relationship
13:24:39 <kuribas> between types
13:24:43 <merijn> How can a multiparam class be nullary?
13:24:47 LKoen joins (~LKoen@185.61.176.203)
13:25:04 <kuribas> I mean no methods
13:25:14 <merijn> That's not the same :p
13:25:15 <bi_functor> class Multi a b where ;
13:25:36 <kuribas> what's it called then?
13:25:52 <merijn> I dunno, but nullary class would be "class Foo where ..."
13:26:13 × da39a3ee5e6b4b0d quits (~da39a3ee5@67.23.55.162) (Ping timeout: 265 seconds)
13:26:21 <kuribas> ah I see...
13:26:26 <hpc> if you squint, (~) might count
13:26:46 × lazyshrk quits (~lazyshrk@128.199.58.13) (Quit: ZNC 1.8.2 - https://znc.in)
13:26:47 <merijn> Which is in standard Haskell since Haskell2010 and was the NullaryTypeclass (or something like that) extension before
13:27:12 <kuribas> hmm, I could also make a Bool type family
13:27:17 <kuribas> then check using ~
13:27:30 lazyshrk joins (~lazyshrk@128.199.58.13)
13:27:51 <kuribas> MyRelation type1 type2 ~ Bool => F type1 -> G type2
13:28:25 <merijn> kuribas: Why not just use MyRelation directly simply return an error constraint?
13:28:43 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
13:28:43 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
13:28:43 mouseghost joins (~draco@wikipedia/desperek)
13:29:12 <kuribas> what do you mean?
13:29:16 <merijn> kuribas: https://hackage.haskell.org/package/persistent-2.11.0.2/docs/Database-Persist-Class.html#t:NoUniqueKeysError
13:29:27 <merijn> You can return custom type errors from type families
13:29:50 <merijn> https://hackage.haskell.org/package/base-4.14.1.0/docs/GHC-TypeLits.html#v:Text
13:30:09 cgfbee joins (~bot@oc1.itim-cj.ro)
13:30:20 <kuribas> so a type family returning an error?
13:30:28 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
13:30:58 <kuribas> I can do that with my class as well...
13:31:37 × nij quits (~user@24-124-119-167-dynamic.midco.net) (Quit: ERC (IRC client for Emacs 27.1))
13:32:39 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
13:32:50 <kuribas> merijn: how do you return the valid relation?
13:32:58 <merijn> Empty constraint?
13:33:12 <merijn> https://gist.github.com/merijn/6130082
13:33:38 <kuribas> ah, that's possible.
13:33:40 × ArConan quits (9de62a69@157.230.42.105) (Remote host closed the connection)
13:33:42 <merijn> That example predates custom error messages
13:34:01 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
13:34:29 <merijn> (In fact, I requested to add custom error messages as a result of the example, which was deemed "not useful" at the time! Clearly I have the gift of foresigh for desirable features!)
13:36:12 <kuribas> merijn: cool, you should have a look at my library when it's documented then :)
13:36:23 <kuribas> maybe you can foresee desirable features...
13:37:23 × ADG1089__ quits (~aditya@171.79.107.193) (Remote host closed the connection)
13:37:24 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
13:38:20 jollygood2 joins (~bc812391@217.29.117.252)
13:38:31 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
13:38:49 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
13:39:20 <kuribas> why do I get "not in scope, Type or class Constraint"?
13:39:29 <kuribas> I enabled {-# LANGUAGE ConstraintKinds #-}
13:39:38 <merijn> Constraint is defined in GHC.Exts
13:42:08 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
13:42:41 × royal_screwup217 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
13:43:03 royal_screwup217 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
13:43:05 × coot quits (~coot@37.30.55.132.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
13:45:31 × cgfbee quits (~bot@oc1.itim-cj.ro) (Ping timeout: 246 seconds)
13:46:29 geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr)
13:47:36 × royal_screwup217 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
13:47:37 × drbean quits (~drbean@TC210-63-209-63.static.apol.com.tw) (Ping timeout: 246 seconds)
13:50:51 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:51:20 × philopsos quits (~caecilius@45.133.192.204) (Quit: Lost terminal)
13:52:11 philopsos joins (~caecilius@gateway/tor-sasl/caecilius)
13:52:53 ADG1089__ joins (~aditya@171.79.107.193)
13:53:27 × SvenG1 quits (~SvenG@s91904426.blix.com) (Remote host closed the connection)
13:54:04 Blackraider joins (~Blackraid@46.6.204.81)
13:54:06 mirrorbird joins (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
13:56:35 son0p joins (~son0p@181.136.122.143)
13:57:30 × Blackraider quits (~Blackraid@46.6.204.81) (Remote host closed the connection)
13:58:32 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.0)
13:59:09 tlockney joins (~tlockney@185.204.1.185)
13:59:28 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
13:59:28 elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
13:59:57 hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net)
14:00:43 royal_screwup217 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:01:19 thunderrd joins (~thunderrd@183.182.115.136)
14:02:03 × ubert quits (~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
14:02:53 × thunderrd quits (~thunderrd@183.182.115.136) (Client Quit)
14:07:25 × knupfer quits (~Thunderbi@200116b82c8bca00b8bd6ca10a864d4f.dip.versatel-1u1.de) (Remote host closed the connection)
14:07:34 knupfer joins (~Thunderbi@200116b82c8bca001074114868df5954.dip.versatel-1u1.de)
14:08:28 × thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 260 seconds)
14:09:15 thc202 joins (~thc202@unaffiliated/thc202)
14:13:06 × LKoen quits (~LKoen@185.61.176.203) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
14:14:00 AnDrEs4 joins (~AnDrEs@2.154.216.137.dyn.user.ono.com)
14:14:15 × errst quits (~errst@unaffiliated/tirej) (Quit: Lost terminal)
14:14:20 <AnDrEs4> Over 40.000$ BitCoin https://cryptotabbrowser.com/16879401 Earn Your BitCoin Now!!!
14:14:46 ChanServ sets mode +o geekosaur
14:14:55 <__monty__> @ops
14:14:55 <lambdabot> Maybe you meant: pl oeis docs
14:14:59 <__monty__> @mods
14:14:59 <lambdabot> Maybe you meant: todo more docs
14:15:03 <__monty__> >.<
14:16:48 × geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds)
14:17:07 <geekosaur> sigh, webchat apparently doesn't support it
14:17:53 × esp32_prog quits (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Remote host closed the connection)
14:18:10 esp32_prog joins (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127)
14:18:16 <__monty__> I'm not connected via web. I just always forget the proper incantation to summon ops : )
14:18:27 ArConan joins (9de62a69@157.230.42.105)
14:18:35 geekosaur sets mode +b *!~AnDrEs@2.154.216.137.dyn.user.ono.com
14:18:40 AnDrEs4 is kicked by geekosaur (Your behaviour is not conducive to the desired environment.)
14:19:04 <geekosaur> hidden in th user detail stuff, apparently
14:19:15 <geekosaur> where's my commands? pfeh
14:19:31 geekosaur sets mode -o geekosaur
14:20:52 × mirrorbird quits (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Quit: Leaving)
14:21:04 <ArConan> how to use ghc in command line?
14:21:15 <ArConan> i try to add it to path
14:21:23 <ArConan> but not works
14:22:19 × royal_screwup217 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
14:22:42 royal_screwup217 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
14:22:46 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
14:23:03 <yushyin> so what is your problem? you don't have it in PATH or you don't know how to use ghc cli?
14:23:07 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
14:23:33 <geekosaur> how did you install it?
14:23:45 <ArConan> emmmm
14:24:02 <ArConan> geekosaur :use stack
14:24:17 <geekosaur> if you used stack then you have to use stack to run it
14:24:27 <geekosaur> stack exec -- ghc ...
14:25:15 <ArConan> yushyin: but if i want to use ghci
14:25:19 <ArConan> directly
14:25:28 <ArConan> what should i do?
14:25:28 cgfbee joins (~bot@oc1.itim-cj.ro)
14:26:17 <yushyin> I guess just like geekosaur example with ghc, stack exec -- ghci ?
14:26:47 <yushyin> or stack repl ?
14:27:10 × royal_screwup217 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds)
14:27:37 <ArConan> sure stack exec--ghci works
14:27:43 × maroloccio quits (~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
14:27:59 maroloccio_ joins (~marolocci@pousada3ja.mma.com.br)
14:28:02 <int-e> __monty__: @where ops (but I'm not sure whether it's up-to-date)
14:28:21 <ArConan> but i heard it can be worked by only inputing ghci
14:28:46 <geekosaur> if you use stack, you must do everything through stack
14:29:00 <geekosaur> you can use ghcup to install a command line ghc
14:29:01 × maroloccio_ quits (~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
14:29:29 maroloccio_ joins (~marolocci@pousada3ja.mma.com.br)
14:29:45 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
14:30:28 <ArConan> so where can i get a ghcup for windows?
14:30:31 <yushyin> adding arbitrary paths from stack installed binaries to $PATH is not a sensible approach imo
14:30:46 × maroloccio_ quits (~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
14:31:08 maroloccio_ joins (~marolocci@pousada3ja.mma.com.br)
14:31:56 <ArConan> orz,but i did it'=D
14:32:05 <geekosaur> I thought ghcup worked on windows these days
14:34:14 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 264 seconds)
14:34:57 × cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0)
14:35:43 × maroloccio_ quits (~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
14:35:55 maroloccio__ joins (~marolocci@pousada3ja.mma.com.br)
14:36:29 × hiroaki quits (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
14:36:37 × carlomagno quits (~cararell@148.87.23.11) (Ping timeout: 246 seconds)
14:36:51 × maroloccio__ quits (~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
14:36:58 hiroaki joins (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
14:37:13 × geekosaur quits (ac3a3be6@172.58.59.230) (Remote host closed the connection)
14:37:14 maroloccio__ joins (~marolocci@pousada3ja.mma.com.br)
14:37:26 × stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
14:37:44 stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net)
14:37:52 × hiroaki quits (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Remote host closed the connection)
14:38:43 hiroaki joins (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
14:38:54 × maroloccio__ quits (~marolocci@pousada3ja.mma.com.br) (Read error: Connection reset by peer)
14:39:13 <ArConan> geekosaur: ummmm,i think i manage to do
14:39:18 <ArConan> it
14:39:22 × darjeeling_ quits (~darjeelin@122.245.218.97) (Ping timeout: 256 seconds)
14:39:26 <ArConan> hhhh
14:39:33 maroloccio__ joins (~marolocci@pousada3ja.mma.com.br)
14:39:41 <ArConan> it should use GHCi
14:39:43 <ArConan> not
14:39:47 <ArConan> ghc
14:39:53 <__monty__> int-e: Thanks. And to geekosaur but they seem to have parted.
14:40:41 <gentauro> 10:18 < idnar> gentauro: no, Docker for Windows runs actual Windows images in actual Windows containers (unlike Docker for Mac which runs Linux images in a VM
14:41:00 <gentauro> but I'm not using neither of those. I'm running `docker` from a linux box.
14:41:06 thunderrd joins (~thunderrd@183.182.115.136)
14:41:44 <gentauro> idnar: idnar: so you are saying that a windows based container can't be runned from a `docker` on linux?
14:42:00 × ArConan quits (9de62a69@157.230.42.105) (Remote host closed the connection)
14:42:27 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:43:01 × hiroaki quits (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Remote host closed the connection)
14:44:23 hiroaki joins (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
14:45:17 acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
14:46:07 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
14:48:13 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
14:48:16 <ephemient> that is the statement, yes.
14:49:11 × pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!)
14:49:12 <kuribas> merijn: can I give a type constraint on a type family?
14:49:41 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
14:49:42 <merijn> Maybe?
14:50:34 <gentauro> ephemient: are you responding to my `docker` question?
14:50:40 <kuribas> merijn: for example: type family Insertable (fieldNullable :: Nullable) fieldType insert :: Constraint
14:50:40 <ephemient> gentauro: yes. to use Windows Docker containers, you need a Windows host running Docker for Windows. it could be Windows in a VM on Linux, but it can't be run directly by Docker for not-Windows
14:50:44 <gentauro> if yes, then it's not really docker :(
14:50:52 <kuribas> merijn: this implies H.ToSql insert
14:51:26 <gentauro> ephemient: well then, let me re-phrase it, I don't have CI/CD for my win binaries :(
14:51:53 ArConan joins (9de62a69@157.230.42.105)
14:52:12 darjeeling_ joins (~darjeelin@115.215.40.96)
14:52:40 ubert joins (~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de)
14:54:39 × ADG1089__ quits (~aditya@171.79.107.193) (Remote host closed the connection)
14:54:52 <gentauro> I think somebody suggested it here. Just setup a vm with windows and build there. I guess that's what I'm going to end up doing :|
14:57:14 yhsiveht joins (~Nishant@103.210.43.20)
14:59:19 carlomagno joins (~cararell@148.87.23.7)
14:59:30 × thevishy quits (~Nishant@103.210.43.130) (Ping timeout: 265 seconds)
15:00:54 <ephemient> at some point in the distant past, I did manage to cross-compile on Linux targeting Windows. I don't remember if I built a cross-compiling GHC or ran the whole thing under Wine
15:01:17 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
15:02:26 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
15:03:30 thunderrd joins (~thunderrd@183.182.115.136)
15:04:02 Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net)
15:05:12 justanotheruser joins (~justanoth@unaffiliated/justanotheruser)
15:07:06 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
15:07:16 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
15:08:49 thevishy joins (~Nishant@103.210.43.13)
15:10:36 carlomagno1 joins (~cararell@148.87.23.7)
15:10:37 × carlomagno quits (~cararell@148.87.23.7) (Remote host closed the connection)
15:10:57 × yhsiveht quits (~Nishant@103.210.43.20) (Ping timeout: 256 seconds)
15:12:24 thunderrd joins (~thunderrd@183.182.115.136)
15:14:37 ADG1089__ joins (~aditya@171.79.107.193)
15:15:11 × ArConan quits (9de62a69@157.230.42.105) (Remote host closed the connection)
15:15:30 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
15:16:06 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
15:17:23 <__monty__> Doesn't GHActions have windows runners? Might be an option.
15:18:31 shinobi joins (~shinobi@c-24-147-48-162.hsd1.ma.comcast.net)
15:19:44 × Vulfe quits (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246) (Ping timeout: 240 seconds)
15:21:58 Vulfe joins (~vulfe@2600:1702:31b0:34e0:c5ef:3e8a:389d:3246)
15:22:25 × systemfault quits (sid267009@gateway/web/irccloud.com/x-gdfwilpwbdeyfdvr) (Quit: Updating details, brb)
15:22:25 × m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Quit: WeeChat 2.7.1)
15:23:28 fendor_ joins (~fendor@77.119.128.254.wireless.dyn.drei.com)
15:24:37 m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de)
15:24:39 systemfault joins (sid267009@gateway/web/irccloud.com/x-doohdrkwzcmqbspf)
15:26:05 × fendor quits (~fendor@77.119.129.169.wireless.dyn.drei.com) (Ping timeout: 265 seconds)
15:27:08 × _bin quits (~bin@2600:1700:10a1:38d0:4c18:8b30:99af:ec29) (Quit: ZNC - https://znc.in)
15:27:36 _bin joins (~bin@2600:1700:10a1:38d0:4c18:8b30:99af:ec29)
15:28:41 Jd007 joins (~Jd007@d154-5-83-24.bchsia.telus.net)
15:30:17 <shinobi> I'm trying to load a haskell file into the ghci and it gives me a parse error on the where clause of the below function. The error is not too verbose. Can anyone tell me what it doesn't like.
15:30:26 <shinobi> initCube :: Cube
15:30:26 <shinobi> initCube = Map.fromList $ map zipWith (\d ft -> (d, initFace ft) ds fts
15:30:26 <shinobi> where fts = faceTypes
15:30:26 <shinobi> ds = directions
15:31:20 <merijn> Are you using tabs?
15:31:52 <shinobi> I was, I shut them off. It looks like all tabs have been removed and replaced with spaces
15:32:10 <merijn> oh, wait, duh
15:32:19 <merijn> shinobi: You're missing a closing parenthesis
15:32:29 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
15:32:45 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
15:32:49 avdb joins (~avdb@gateway/tor-sasl/avdb)
15:32:52 <shinobi> my bad. I was so focused on using the where correctly I completely missed it
15:32:54 <shinobi> thanks!
15:33:12 <ski> initCube = Map.fromList (zip ds (map initFace fts))
15:33:20 mirrorbird joins (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
15:33:38 × knupfer quits (~Thunderbi@200116b82c8bca001074114868df5954.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
15:33:43 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
15:33:54 <merijn> Or!
15:34:06 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
15:34:09 <merijn> "initFace <$> Map.fromList (zip ds fts)" :p
15:34:10 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
15:34:13 <ezzieyguywuf> y'all ever heard of or used 'fay'?
15:34:20 <ezzieyguywuf> some sort of haskell/javascript thingy
15:34:23 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds)
15:34:46 <merijn> ezzieyguywuf: The "Haskell" to JS compiler?
15:34:52 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
15:34:56 <ezzieyguywuf> merijn: yea something like that.
15:34:57 <ski> (.. or did you really mean `map zipWith' ? as the code stands (adding the second closing bracket just after the first), that would be a type error)
15:35:28 rkbeach joins (31cfde25@49.207.222.37)
15:35:30 <ezzieyguywuf> I'm thinking of submitting a PR to update some things, but don't really want to bother if it's one of the nich, dark-corner-of-the-haskellverse type of things
15:35:35 ski looks at shinobi
15:35:42 <ezzieyguywuf> s/one of the/one of those/
15:35:52 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:36:03 <ski> @hoogle those
15:36:04 <lambdabot> No results found
15:36:25 <shinobi> ski: no I hadn't hit that error yet.
15:36:28 × mirrorbird quits (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Client Quit)
15:36:40 <ski> @type map zipWith
15:36:42 <lambdabot> [a -> b -> c] -> [[a] -> [b] -> [c]]
15:36:44 <shinobi> I was revising a file and trying to get it parsed by GHCI
15:36:48 <merijn> ezzieyguywuf: I don't think anyone is really using Fay, tbh :p
15:36:55 <ezzieyguywuf> merijn: lol forrill?
15:36:57 × ADG1089__ quits (~aditya@171.79.107.193) (Ping timeout: 256 seconds)
15:37:02 <ezzieyguywuf> if that's the case I'll just move on.
15:37:09 thunderrd joins (~thunderrd@183.182.115.136)
15:37:13 <ski> (so `map zipWith x y z' is a type error)
15:37:19 plutoniix joins (~q@node-uru.pool-125-24.dynamic.totinternet.net)
15:37:26 × plutoniix quits (~q@node-uru.pool-125-24.dynamic.totinternet.net) (Max SendQ exceeded)
15:37:27 <ezzieyguywuf> I came across it when updating some of the gentoo packages to support newer aeson and quickcheck, and it has some quirks that makes running the test suite 'interesting'
15:37:31 <merijn> ezzieyguywuf: I think people are either using PureScript, Elm, or GHC web assembly
15:37:31 × juri_ quits (~juri@178.63.35.222) (Ping timeout: 246 seconds)
15:37:41 <ezzieyguywuf> i'll just turn off tests and fuhgetaboutit
15:37:48 <ezzieyguywuf> ahhh elm
15:37:52 plutoniix joins (~q@node-uru.pool-125-24.dynamic.totinternet.net)
15:37:55 <ezzieyguywuf> yea I came across elm the other day
15:38:03 <ezzieyguywuf> that's another interesting one their test suite requires network access
15:38:34 <ezzieyguywuf> purescript is another one that needs some TLC in gentoo, but based on your input I'll shift my focus there away from fay
15:38:48 heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
15:39:07 juri_ joins (~juri@178.63.35.222)
15:39:44 <shinobi> Are special characters allowed in Value Constuctor names? e.g. - or '
15:39:49 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Ping timeout: 264 seconds)
15:40:20 <hpc> ' is valid in lettery names, - is valid in symbolic names
15:40:30 <hpc> both are considered lowercase
15:40:49 rayyyy joins (~nanoz@gateway/tor-sasl/nanoz)
15:41:37 <ski> @let data Clause = Fact' AtomicGoal | AtomicGoal :- Goal
15:41:40 <lambdabot> Defined.
15:43:05 × heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
15:44:41 nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net)
15:45:11 spopejoy joins (~stuart@ool-44c5f8c9.dyn.optonline.net)
15:45:12 × thunderrd quits (~thunderrd@183.182.115.136) (Remote host closed the connection)
15:45:30 <ezzieyguywuf> what about this thing? http://clckwrks.com/page/view-page-slug/1/clckwrks-com
15:46:14 <ezzieyguywuf> i usually check git history etc for activity but his is hosted on darcs and I dunno how to use that, lol
15:46:32 thunderrd joins (~thunderrd@183.182.115.136)
15:46:37 <ezzieyguywuf> oh shoot nvm they have a github thingy!
15:49:49 <sm[m]> ezzieyguywuf: never discussed it used but updated regularly by author AFAICT
15:49:50 <sm[m]> discussed or used
15:50:38 <sm[m]> are you trawling hackage for things to package ? That's generous, way to go! :)
15:51:02 <ezzieyguywuf> sm[m]: yea now that I found the github I can see that it and its ecosystem are kept up-to-date
15:51:18 <ezzieyguywuf> sm[m]: he said on his blog that it was with sadness he moved from darcs to github (in 2014!), but honestly I'm glad he did
15:51:47 <ezzieyguywuf> (except his hackage page still links to darcs...)
15:51:57 <sm[m]> clckwrks must be pretty good by now you would think..
15:52:45 <ezzieyguywuf> i've come across a bunch of neat haskell projects I want to try out, while working with the gentoo-haskell team to update our packages
15:52:49 <merijn> ezzieyguywuf: Cheap PR to make ;)
15:52:50 <ezzieyguywuf> clckwrks is one of them
15:53:00 <ezzieyguywuf> merijn: where does the PR for hackage stuff go though?
15:53:11 <merijn> ezzieyguywuf: The hackage data is just from the cabal file
15:53:15 <ezzieyguywuf> i've never done anything in hackage except use/abuse/love it
15:53:20 <sm[m]> the cabal file, yup
15:53:20 <ezzieyguywuf> doh!
15:53:27 <ezzieyguywuf> I'll make a note
15:53:48 <sm[m]> and files it references, like the changelog
15:53:49 <merijn> cabal file has a website/issue tracker/etc. field, so they presumably forgot to update that
15:54:13 <ezzieyguywuf> but it wouldn't reflect in hackage until they release the new version, right?
15:54:19 <merijn> Yeah
15:54:40 <merijn> Might be possible to change with a revision, but probably not
15:54:46 <sm[m]> although some metadata can be updated without a release
15:55:41 <ezzieyguywuf> heh, one of my pet peeves is that revisions are often used to relax dependency bounds (yay!!) but the release tarball remains unchanged, with the old bounds in the cabal file (booooo!)
15:56:07 <dcoutts> ezzieyguywuf: if you cabal unpack the tarball, by default it'll patch the .cabal file.
15:56:17 <dcoutts> And the revisions are also used by default by cabal.
15:56:24 <ephemient> Hackage website warns about that exact case too
15:56:35 <ezzieyguywuf> I fetch the tarball directly though, not using cabal-install
15:57:03 <dcoutts> You have the choice to use the revised .cabal file or not. Totally up to you.
15:57:06 <ezzieyguywuf> hrm
15:57:08 <__monty__> I believe it works that way because the stack folks wanted it?
15:57:38 <ephemient> > Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
15:57:41 <lambdabot> <hint>:1:43: error: <hint>:1:43: error: parse error on input ‘in’
15:57:44 <ezzieyguywuf> dcoutts: > "you have the choice to used the revised .cabal file or not", ok I want the revised cabal file. How do I fetch it?
15:57:51 <merijn> __monty__: No, it's because you can't update the tarball without changing the signature
15:58:03 <ephemient> ezzieyguywuf: it says right after
15:58:06 <merijn> ezzieyguywuf: The revision should be in the index
15:58:22 <ezzieyguywuf> so _only_ by using cabal-the-executable, not using cabal-the-library directly?
15:58:26 <merijn> ezzieyguywuf: You really don't want tarballs for long term archiving to be mutable
15:58:27 × rkbeach quits (31cfde25@49.207.222.37) (Remote host closed the connection)
15:58:47 <merijn> ezzieyguywuf: Cabal the library doesn't know anything about "getting" stuff (I think?)
15:58:54 <dcoutts> ezzieyguywuf: so you're writing your own tooling that fetches packages from hackage? If so, you can use the hackage-security package to get it, which includes the hackage index which includes the revised .cabal files. Or extract the latest revision from the hackage index tar file. Or fetch the latest revision directly from the hackage webiste.
15:59:44 × ericsagnes quits (~ericsagne@2405:6580:0:5100:cd75:ef91:6f71:5ba7) (Ping timeout: 240 seconds)
16:00:20 <ezzieyguywuf> dcoutts: yea, `wget url-to-release-tarball`
16:00:42 <ezzieyguywuf> dcoutts: merijn: ephemient: these are all great ideas and good info, thanks so much :)
16:00:50 <merijn> ezzieyguywuf: Right, but that tarball never changes. Revisions are meta data in the index (i.e. index-01.tar)
16:01:03 <ezzieyguywuf> also, merijn I agree that release tarballs should be immutable, I guess I was more thinking "why not release a new tarball with a -r1 or something"
16:01:07 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
16:01:16 <dcoutts> ezzieyguywuf: ok, so if you prefer working with fetching things directly, rather than extracting it from the local index-01.tar, then you can grab them like so: http://hackage.haskell.org/package/attoparsec-0.13.2.4/attoparsec.cabal
16:01:26 <merijn> ezzieyguywuf: Because it's cheaper to have to only host/download the new .cabal file in the index? :p
16:01:43 <dcoutts> ezzieyguywuf: compare that example to e.g. http://hackage.haskell.org/package/attoparsec-0.13.2.4/revision/0.cabal
16:01:53 <merijn> ezzieyguywuf: Rather than having 8 copies of the same tar ball with slightly different cabal files
16:01:59 <ezzieyguywuf> what is this index-01.tar? maybe *that's* what I need to be fetching
16:02:08 <dcoutts> So it's easy to get the tarball and get the latest .cabal file
16:02:17 <ezzieyguywuf> merijn: makes sense regarding cheaper to host new cabal
16:02:18 <merijn> ezzieyguywuf: index-01.tar is the index that holds *all* metadata for everything on hackage
16:02:38 <merijn> ezzieyguywuf: Since cabal-install needs to know everything that exists to compute a buildplan
16:02:47 <ezzieyguywuf> ah, yikes, not sure if I can use that directly then. maybe some version of what dcoutts said.
16:03:02 <merijn> ezzieyguywuf: The index is just the metadata, not the actual packages
16:03:02 <ezzieyguywuf> hrm, actually I guess I probably *do* have it somewhere
16:03:10 <ezzieyguywuf> except we don't use cabal-install
16:03:25 <ezzieyguywuf> yea, I imagine the index gets updated with `cabal update`
16:03:31 <merijn> yeah
16:04:06 <dcoutts> cabal uses the hackage-security lib to do the indexing update (incrementally!) with the security checks.
16:04:26 Wuzzy joins (~Wuzzy@p5790e648.dip0.t-ipconnect.de)
16:05:20 <dcoutts> /package/${name}-${ver}/${name}-${ver}.tar.gz
16:05:21 <dcoutts> /package/${name}-${ver}/${name}.cabal
16:05:35 <dcoutts> is otherwise the urls for all the package tarballs and latest .cabal files
16:08:38 × acidjnk_new quits (~acidjnk@p200300d0c704e77345042c8b5bd54d99.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
16:08:48 <ezzieyguywuf> hrm, what happens if, say, attoparsec updates to v0.14, how to I fetch the revised cabal file from v0.13.2.4?
16:09:24 <dcoutts> That's latest revision for that version of the package. Not latest version of the package.
16:09:36 <ezzieyguywuf> ah hah
16:09:39 <ezzieyguywuf> yes I see it in the url now
16:09:50 <dcoutts> Honestly if you want to do it properly, getting the hackage index is the right way to do it.
16:10:30 <dcoutts> But for ad-hoc, "just grab one" then getting the urls above is fine.
16:10:57 <dcoutts> Using the index lets you get all the changes across all packages, and get it incrementally.
16:11:12 <dcoutts> This is how the hackage mirror tools work for example.
16:12:13 <ezzieyguywuf> dcoutts: yea, but I guess in this case I'm using portage, the gentoo package manager, to solve the dependencies etc, so I don't really need the index
16:12:30 ericsagnes joins (~ericsagne@2405:6580:0:5100:e508:d43e:e329:fdb5)
16:12:30 <ezzieyguywuf> although it begs the question - can I use the index to update all of the gentoo stuff in one fell swoop...
16:13:23 <merijn> ezzieyguywuf: In theory, yes
16:13:30 <ezzieyguywuf> interesting
16:13:34 <dcoutts> ezzieyguywuf: yes exactly!
16:13:46 <ezzieyguywuf> that would make life easier, today we bump packages one at a time, manually fixing dependency issues as the arise
16:14:04 <merijn> ezzieyguywuf: At the very least you can use it to check "are any of our packages out of date?"
16:14:08 <dcoutts> ezzieyguywuf: it's not just for solvers. It'd be perfect for portage tools, to update a tree of all gentoo Haskell packages in one go, based on the latest hackage index.
16:14:15 <ezzieyguywuf> merijn: yes exactly what I was thinking .that's done manually today
16:14:26 <ezzieyguywuf> dcoutts: yes I'm thinking the same
16:14:30 ezzieyguywuf scratches chin hairs
16:14:31 worc3131 joins (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20)
16:14:59 <dcoutts> ezzieyguywuf: then you may well want to use the hackage-security lib and do it properly, so you also benefit from the security checks. Particularly important if you're doing this as an official gentoo dev.
16:15:10 <ezzieyguywuf> honestly it makes no sense not to pursue this - we may as well leverage the work done by the hackage team (or whoever) that's already solved lots of these issues
16:15:18 ezzieyguywuf nods
16:15:19 <dcoutts> ezzieyguywuf: are you on the gentoo Haskell dev team? :-)
16:15:22 <merijn> ezzieyguywuf: There's still a bunch of rough patches, but overall Hackage/Cabal's design are much more amenable to packaging than, say, npm :p
16:15:32 <ezzieyguywuf> dcoutts: I'm not on the dev team *yet*, i'm working towards becoming a gentoo dev
16:15:39 <ezzieyguywuf> dcoutts: but I've been contributing rather furiously the past month or so
16:15:50 <dcoutts> ezzieyguywuf: nice. Check the git history, you'll find me there from years ago :-)
16:16:05 <dcoutts> at least if they preserved the history when they converted from csv :-)
16:16:05 <ezzieyguywuf> dcoutts: oooh I saw someone in there that contributed a bunch then seemed to disappear, I bet it was you :)
16:16:25 <dcoutts> this was like 15 years ago
16:16:32 <ezzieyguywuf> dcoutts: I looked at the whole history :)
16:16:45 <ezzieyguywuf> also, pretty sure things have gotten better since 15 years ago
16:17:23 <ezzieyguywuf> anywho, this is all very good food for thought. I have a feeling I'll be back asking more about this hackage-security thing, but right now I want to close out the project I have open which is updated the gentoo-haskell ecosystem for newer aeson and quickcheck
16:17:29 <ezzieyguywuf> but this seems like a very worthwhile project for right after that
16:18:12 <dcoutts> ezzieyguywuf: it may also make sense to use the cabal solver to help pick the compatible versions to put into portage.
16:18:35 <ezzieyguywuf> dcoutts: yea exactly. I was just pondering a few days ago how we might leverage cabal to make our lives easier
16:18:38 <ezzieyguywuf> there seems to be a clear path.
16:19:18 <merijn> ezzieyguywuf: Have you seen cabal-plan?
16:19:44 × thunderrd quits (~thunderrd@183.182.115.136) (Ping timeout: 246 seconds)
16:20:08 <ezzieyguywuf> merijn: I updated the gentoo ebuild for it
16:20:09 <ezzieyguywuf> :)
16:20:10 <ezzieyguywuf> but that's it
16:20:32 <merijn> ezzieyguywuf: It lets you visualise/inspect the buildplans that cabal-install creates
16:21:09 <ezzieyguywuf> ah, I was doing `cabal build --dry-run`
16:21:10 sdressel_ joins (~sdressel@pwning.de)
16:21:10 × sdressel_ quits (~sdressel@pwning.de) (Client Quit)
16:21:15 <merijn> ezzieyguywuf: So when you do "cabal build" you'll get dist-newstyle with in it the buildplan. cabal-plan lets you get human-readable access to that
16:22:46 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
16:23:07 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
16:23:45 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:27:24 da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1)
16:29:06 <bollu> If I have a file that contains raw doubles (ie, the 64-bit IEEE754 represenation), how do I slurp the data into a Data.Vector.Unboxed Double
16:29:13 pera joins (~pera@unaffiliated/pera)
16:30:08 <bollu> Ah, it seems vector-binary-instances is what I need
16:31:03 × whataday quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
16:31:42 <ezzieyguywuf> lol, "slurp"
16:31:46 <merijn> bollu: Oh, you can do it even more efficient!
16:32:09 whataday joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
16:32:13 <merijn> bollu: Do you, too, like incredibly cursed code? Do you, too, wish you could just read a ByteString and make it a vector?
16:32:18 <merijn> Do I have the code for you!
16:32:27 royal_screwup217 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
16:32:29 thunderrd joins (~thunderrd@183.182.115.7)
16:32:36 <merijn> https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Utils/Vector.hs
16:32:41 <merijn> #WarrantyUntilTheDoor
16:33:27 <merijn> actually, I think I can simplify that and make it slightly less cursed
16:36:19 ubert1 joins (~Thunderbi@p200300ecdf1ee0eee6b318fffe838f33.dip0.t-ipconnect.de)
16:36:38 × ubert quits (~Thunderbi@p200300ecdf1ee0efe6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
16:36:38 ubert1 is now known as ubert
16:38:08 Stanley00 joins (~stanley00@unaffiliated/stanley00)
16:40:10 heatsink joins (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
16:41:15 coot joins (~coot@37.30.56.46.nat.umts.dynamic.t-mobile.pl)
16:41:42 × quintasan quits (~quassel@ubuntu/member/quintasan) (Quit: quintasan)
16:41:49 quintasan joins (~quassel@quintasan.pl)
16:41:49 × quintasan quits (~quassel@quintasan.pl) (Changing host)
16:41:49 quintasan joins (~quassel@ubuntu/member/quintasan)
16:42:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Remote host closed the connection)
16:42:37 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 246 seconds)
16:42:38 heatsink joins (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
16:43:44 × hiroaki quits (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
16:44:58 Icewing joins (~Icewing@unaffiliated/icewing)
16:45:49 × pera quits (~pera@unaffiliated/pera) (Ping timeout: 264 seconds)
16:46:16 kyali joins (~kyali@APN-123-248-168-gprs.simobil.net)
16:47:06 <merijn> bollu: There you go: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/Utils/Vector.hs
16:47:20 <merijn> Even less cursed now! Doesn't even require MagicHash anymore :p
16:48:19 <hpc> SufficientlyAdvancedTechnologyHash
16:50:26 <merijn> Hell, it doesn't even use Addr anymore...boring
16:50:26 ADG1089__ joins (~aditya@223.236.164.57)
16:50:35 geekosaur joins (ac3a8f61@172.58.143.97)
16:51:17 × chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:51:34 dandels joins (~dandels@unaffiliated/dandels)
16:52:55 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
16:53:04 <merijn> Random internet people: "You can't get anything done in Haskell, because it's so safe the type system stops you!" Me: *quickly nudges -XMagicHash, unsafeCoerce, and friends out of sight*
16:53:19 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
16:53:20 × srk quits (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection)
16:53:32 hexo joins (~hexo@gateway/tor-sasl/hexo)
16:53:37 srk joins (~sorki@gateway/tor-sasl/sorki)
16:54:31 × da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:12e2:1db3:d5d3:fa35:5ac1) (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:54:52 hiroaki joins (~hiroaki@ip4d16b6b9.dynamic.kabel-deutschland.de)
16:57:13 × darjeeling_ quits (~darjeelin@115.215.40.96) (Ping timeout: 264 seconds)
16:58:16 × worc3131 quits (~quassel@2a02:c7f:dcc4:6500:cf0e:3346:8766:ab20) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
16:59:06 conal joins (~conal@64.71.133.70)
16:59:06 fangyrn joins (uid481529@gateway/web/irccloud.com/x-qtoesenwjedcxvhm)
17:00:13 christo joins (~chris@81.96.113.213)
17:00:25 × conal quits (~conal@64.71.133.70) (Client Quit)
17:01:06 chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com)
17:01:37 <kuribas> merijn: you forgot unsafePerformIO
17:02:07 <merijn> naah, unsafePerformIO is boring
17:02:14 <merijn> I need harder stuff to get me going
17:02:28 <merijn> inject that realyUnsafePtrEquality# directly into my veins ;)
17:03:42 <kuribas> merijn: I get it, real men use unsafeDupablePerformIO
17:04:15 × Boomerang quits (~Boomerang@2a05:f6c7:2179:0:8da5:2e46:f1e1:ab48) (Remote host closed the connection)
17:05:56 × ADG1089__ quits (~aditya@223.236.164.57) (Remote host closed the connection)
17:06:03 <fangyrn> I want to see if haskell is good for my project. It is basically about creating a state machine. I understand that haskell aims to be as typesafe as possible, but does a good type system help against writing incorrect state transitions?
17:06:32 × dandels quits (~dandels@unaffiliated/dandels) (Ping timeout: 272 seconds)
17:06:51 mukherjeea joins (~am@106.201.53.107)
17:07:02 × NGravity quits (csp@gateway/shell/xshellz/x-wudhqfssegtlqiwc) (Remote host closed the connection)
17:07:17 <__monty__> Sounds a bit like streaming (conduit, pipes, machines) so I'd take a stab at yes.
17:07:30 jamm joins (~jamm@unaffiliated/jamm)
17:08:07 fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net)
17:08:36 conal joins (~conal@64.71.133.70)
17:10:58 × maroloccio__ quits (~marolocci@pousada3ja.mma.com.br) (Ping timeout: 246 seconds)
17:10:59 <fangyrn> oops, sorry, solved my question with a query to hn.algolia. It looks like 'motor' is the library to look like, and it looks like it is a port of a library from Idris.
17:11:11 ADG1089__ joins (~aditya@223.236.164.57)
17:11:47 gioyik joins (~gioyik@186.118.234.246)
17:12:49 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 264 seconds)
17:13:22 × fradet quits (~pi@216.252.75.247) (Quit: leaving)
17:13:46 × nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection)
17:14:35 nineonine joins (~nineonine@50.216.62.2)
17:14:46 × nineonine quits (~nineonine@50.216.62.2) (Read error: Connection reset by peer)
17:15:10 nineonine joins (~nineonine@50.216.62.2)
17:16:47 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:23:44 maroloccio__ joins (~marolocci@pousada3ja.mma.com.br)
17:24:34 <ADG1089__> when i have multiple files (7-8) xmonad --recompile using cabal install takes 15-20 sec, whereas if i put everything into 1 file it takes 1.31 sec using ghc
17:24:56 <ADG1089__> even the binary loads up quicker with single file
17:25:01 <ADG1089__> any idea why this might be?
17:25:19 kupi joins (uid212005@gateway/web/irccloud.com/x-xikvdfvfkemgovqv)
17:26:13 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
17:26:22 berberman joins (~berberman@unaffiliated/berberman)
17:26:23 <shinobi> I have a data type of Map.Map Type1 Type2 where Type 1 and Type 2 are concrete types. I have implemented it with the data key word, but realized I could have used the type keyword as well. Is there any benefit of one over the other?
17:27:33 × berberman quits (~berberman@unaffiliated/berberman) (Max SendQ exceeded)
17:28:06 berberman joins (~berberman@unaffiliated/berberman)
17:28:45 dfeuer joins (~dfeuer@pool-173-79-253-62.washdc.fios.verizon.net)
17:29:01 <ADG1089__> data can have more properties i think whereas type is just an alias
17:29:19 <ADG1089__> properties like instances
17:29:42 <gentauro> can this be written in `point-free-style`? -> `g x y = (== EQ) $ f x y`?
17:29:49 <gentauro> s/written/refactored/
17:30:34 <kuribas> is it possible to contramap (Void -> a)?
17:30:44 × conal quits (~conal@64.71.133.70) (Read error: Connection reset by peer)
17:30:51 <ADG1089__> @pl \x y -> (== EQ) $ f x y
17:30:51 <lambdabot> ((EQ ==) .) . f
17:31:16 <kuribas> I mean (contramap (f :: Void -> a))
17:31:56 × royal_screwup217 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
17:32:18 royal_screwup217 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:32:27 conal joins (~conal@64.71.133.70)
17:32:52 × kini quits (~kini@unaffiliated/kini) (Quit: bye)
17:33:27 kini joins (~kini@unaffiliated/kini)
17:33:53 × jespada quits (~jespada@90.254.245.49) (Quit: Leaving)
17:34:42 <dsal> shinobi: `data` and `type` do quite different things. `type` is helpful for making things readable, but doesn't offer any protection, just gives another name to the same thing. `data` creates a data type.
17:35:04 × conal quits (~conal@64.71.133.70) (Client Quit)
17:36:37 <kupi> Is there a haskell-like language without syntax sugar which is intented to be written by human?
17:36:40 <shinobi> So I suppose my question is: Is it worth making a separate data type for a specific type of Map?
17:36:40 × chele quits (~chele@ip5b40237d.dynamic.kabel-deutschland.de) (Remote host closed the connection)
17:37:02 <dsal> shinobi: Not enough information.
17:37:04 × royal_screwup217 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds)
17:37:12 × rajivr quits (uid269651@gateway/web/irccloud.com/x-ynaufapxkeljugpz) (Quit: Connection closed for inactivity)
17:37:17 <shinobi> data Cube = Cube (Map.Map Direction Face)
17:37:17 <shinobi> deriving (Show, Eq)
17:37:19 <dsal> kupi: what would a language without syntax be?
17:37:31 <hpc> dsal: if you're my old AI professor, lisp
17:37:49 <dsal> hpc: lisp has like, that one syntax.
17:37:53 <kupi> It has syntax but no sugar
17:38:04 <dsal> What is sugar?
17:38:14 <geekosaur> readmacros?
17:38:17 <hpc> dsal: yeah, he had some funny ideas
17:38:31 <kupi> e.g. (:) 1 Nil instead of [1]
17:38:35 <dsal> shinobi: I'd probably just `type Cube = Map Direction Face` but it really depends on things.
17:38:56 <hpc> kupi: i don't think anything that stripped down exists
17:39:24 <hpc> at all, not just in the category of stuff like haskell
17:39:45 <bi_functor> shinobi: newtypes and data wrappers are usually for making custom instances of things
17:39:49 × revprez_1nzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 264 seconds)
17:40:00 <aldum> isn't that the whole ethos of lisps?
17:40:06 <aldum> no syntax, just the tree?
17:40:19 <hpc> aldum: how do you serialize and parse the tree? :P
17:40:23 darjeeling_ joins (~darjeelin@115.215.40.96)
17:40:27 ski . o O ( Liskell )
17:41:16 × esp32_prog quits (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Ping timeout: 240 seconds)
17:41:33 <aldum> dunno, I can't into compilers
17:41:37 <ski> preflex: xseen therp
17:41:58 revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
17:41:58 <dfeuer> Point-free fun: isJust . f . guard
17:42:39 <ski> @type (isJust .) . (. guard)
17:42:39 <kupi> I once saw a github repo for a sttipped down haskell but forgot it's name. It knows everything vanilla haskell does but without features which only gives abbility to write shorter code
17:42:40 <lambdabot> Alternative f => (f () -> Maybe a) -> Bool -> Bool
17:43:12 <dfeuer> ski: oops, I meant fmap isJust . f . guard
17:43:37 notzmv joins (~user@unaffiliated/zmv)
17:43:43 <ski> @where Helium
17:43:44 <lambdabot> http://www.cs.uu.nl/research/projects/helium/
17:44:24 <ski> @type (fmap isJust .) . (. guard)
17:44:26 <lambdabot> (Alternative f1, Functor f2) => (f1 () -> f2 (Maybe a)) -> Bool -> f2 Bool
17:44:31 royal_screwup217 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
17:45:17 mirrorbird joins (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
17:46:02 <dfeuer> ski: this is for turning a Contains lens into an At lens.
17:48:20 justsomeguy joins (~justsomeg@072-186-136-238.biz.spectrum.com)
17:48:20 × justsomeguy quits (~justsomeg@072-186-136-238.biz.spectrum.com) (Changing host)
17:48:20 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
17:48:43 <ski> mhm
17:48:47 <dfeuer> Too bad lambdabot doesn't understand TypeApplications
17:49:05 <hpc> yahb does, iirc
17:49:43 × mirrorbird quits (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d) (Client Quit)
17:50:06 <ski> % :t (=<<) @[]
17:50:06 <yahb> ski: (a -> [b]) -> [a] -> [b]
17:50:44 ADG1089_ joins (~aditya@171.76.136.168)
17:50:44 × ADG1089__ quits (~aditya@223.236.164.57) (Ping timeout: 256 seconds)
17:53:21 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
17:53:48 conal joins (~conal@64.71.133.70)
17:55:07 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
17:55:23 × ADG1089_ quits (~aditya@171.76.136.168) (Remote host closed the connection)
18:00:30 pavonia joins (~user@unaffiliated/siracusa)
18:04:55 × mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew)
18:05:36 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
18:06:00 × thevishy quits (~Nishant@103.210.43.13) (Quit: Leaving)
18:06:28 × heatsink quits (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Remote host closed the connection)
18:07:10 × madjestic quits (~Android@86-88-72-244.fixed.kpn.net) (Quit: -a- Connection Timed Out)
18:07:27 madjestic joins (~Android@86-88-72-244.fixed.kpn.net)
18:08:25 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 240 seconds)
18:10:22 Tario joins (~Tario@201.192.165.173)
18:11:43 XinYaanZyoy joins (6a423406@106.66.52.6)
18:11:44 × mukherjeea quits (~am@106.201.53.107) (Ping timeout: 260 seconds)
18:13:49 × dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection)
18:18:30 × XinYaanZyoy quits (6a423406@106.66.52.6) (Remote host closed the connection)
18:18:40 × stree quits (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
18:18:58 leungbk joins (~user@2603-8000-f144-2028-4098-2613-36d5-de42.res6.spectrum.com)
18:18:59 stree joins (~stree@50-108-70-224.adr01.mskg.mi.frontiernet.net)
18:20:09 XinYaanZyoy joins (6a423406@106.66.52.6)
18:20:57 × XinYaanZyoy quits (6a423406@106.66.52.6) (Remote host closed the connection)
18:22:46 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
18:23:08 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
18:23:08 × kuribas quits (~user@ptr-25vy0i9wm95xppa9w26.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
18:24:07 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
18:24:51 × jpds_ quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
18:25:26 jpds_ joins (~jpds@gateway/tor-sasl/jpds)
18:25:47 niekvandepas joins (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
18:26:21 mukherjeea joins (~am@106.201.53.107)
18:27:01 × kayvan quits (~user@52-119-115-160.PUBLIC.monkeybrains.net) (Ping timeout: 256 seconds)
18:27:59 wlritchi_ joins (~wlritchi@li1016-87.members.linode.com)
18:33:58 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 256 seconds)
18:34:12 × leah2 quits (~leah@vuxu.org) (Ping timeout: 260 seconds)
18:34:25 × matryoshka` quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
18:34:30 × Franciman quits (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving)
18:35:00 matryoshka joins (~matryoshk@184.75.223.227)
18:35:07 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
18:36:28 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
18:36:33 electricityZZZZ joins (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net)
18:37:13 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
18:37:20 christo joins (~chris@81.96.113.213)
18:38:00 leah2 joins (~leah@vuxu.org)
18:38:33 hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-lngzfeghcpflmhlc)
18:38:39 livvy joins (~livvy@gateway/tor-sasl/livvy)
18:38:44 × niekvandepas quits (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Remote host closed the connection)
18:38:48 × vilpan quits (~0@212.117.1.172) (Quit: Leaving.)
18:39:17 niekvandepas joins (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
18:39:30 sord937 joins (~sord937@gateway/tor-sasl/sord937)
18:40:20 × jollygood2 quits (~bc812391@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout))
18:41:37 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
18:42:11 usr25 joins (~usr25@unaffiliated/usr25)
18:42:15 usr25 parts (~usr25@unaffiliated/usr25) ()
18:43:01 <wlritchi_> I'm trying to get cabal and friends working on aarch64 in Arch Linux ARM. ghc has a binary for the architecture, and I've been able to run the cabal-install bootstrap successfully.
18:43:25 <wlritchi_> The bootstrap script then suggests using the new cabal-install to build itself, which also looks like it's working.
18:43:50 × niekvandepas quits (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 264 seconds)
18:43:51 conal joins (~conal@64.71.133.70)
18:43:59 <wlritchi_> I noticed, though, that Arch Linux's (non-ARM) cabal-install package doesn't use the bootstrap, and is instead built using `runhaskell Setup configure` and `runhaskell Setup build`
18:44:17 <wlritchi_> I'm very new to the Haskell ecosystem, so I don't know the implications of one over the other.
18:44:19 × royal_screwup217 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
18:44:40 royal_screwup217 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
18:44:44 <wlritchi_> Is there a reason why one of these would be the "correct" approach for me on a distro/architecture without a readily available existing cabal-install binary?
18:45:16 <merijn> wlritchi_: Well, step 1 (on Arch) is to basically ignore literally everything the official packages do :)
18:45:25 <[exa]> I'm not an arch user but you might soon receive a slightly categorical explanation
18:45:28 <[exa]> oh here it is
18:46:06 <koz_> Yep, basically this.
18:46:07 <merijn> wlritchi_: If the bootstrap script for cabal-install works, then you should already be done?
18:46:15 <koz_> Use ghcup and you'll be happier for it.
18:46:19 × leungbk quits (~user@2603-8000-f144-2028-4098-2613-36d5-de42.res6.spectrum.com) (Quit: ERC (IRC client for Emacs 28.0.50))
18:46:21 <merijn> koz_: Not sure that works on ARM
18:46:26 <wlritchi_> ghcup isn't (yet) supported on aarch64
18:46:39 <koz_> Ah, OK. TIL.
18:46:47 <koz_> Maybe we should ask maerwald about it?
18:46:56 <merijn> wlritchi_: Basically, if the bootstrap script works and cabal-install was able to build itself, well, what exactly is the issue, then? :)
18:47:16 <wlritchi_> merijn: Mostly just checking that there isn't some compelling reason to do it the other way
18:47:26 × eager_lambda quits (~gdrvnl@cpe-76-94-36-134.socal.res.rr.com) (Remote host closed the connection)
18:47:58 <merijn> wlritchi_: There is *a* compelling reason to do it the other way, which is: If for some reason using cabal-install is unacceptable/impossible :)
18:48:40 <merijn> wlritchi_: Basically, the actual *building* is handled by Cabal (the library) which you can either invoke the painful way (runhaskell Setup.hs) or the pleasant way (cabal-install, which is just a fancy wrapper for the library)
18:48:43 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
18:48:49 <merijn> wlritchi_: See also https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07
18:49:34 × royal_screwup217 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 265 seconds)
18:50:18 Ben88 joins (aec00c12@18.sub-174-192-12.myvzw.com)
18:50:31 <merijn> wlritchi_: Distro packages are generally opinionated about stuff like "where should things be installed", "can we avoid custom tools like cabal-install?", etc. as programmer/user there's little reason not to use cabal-install if you don't object to where it installs things (and even then you can change that via ~/.cabal/config)
18:51:56 <wlritchi_> Well, I'm considering turning whatever I do into an Arch User Repository package so to some extent I'll have to be mindful of distro conventions (AUR frequently plays fast and loose with those though)
18:52:46 <wlritchi_> Many thanks for the explanation/clarification though - I'll stick with the route that's already working unless discussion with the Arch folks gives me a good reason to do otherwise.
18:53:18 <xerox_> at least apple m1 does work, but that's different I guess
18:53:19 <merijn> wlritchi_: I mean, the Arch folks also knowingly ship a completely broken Haskell ecosystem by default, so...eh...maybe take their opinions with a grain of salt :)
18:53:37 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 264 seconds)
18:53:53 gxt joins (~gxt@gateway/tor-sasl/gxt)
18:54:14 <Ben88> Hey folks, I wanted to share an early version of a new library I'm working on: https://github.com/benweitzman/hooks. It's basically a port of React Hooks to Haskell, to support writing programs which produce streams of values, in a FRP-ish sort of style
18:54:58 × catern quits (~catern@104.131.201.120) (Quit: catern)
18:56:13 <wlritchi_> merijn: Hah, I've run into the breakage enough times on my own. That's how I knew it was probably better to ask here first ;)
18:56:44 × matryoshka quits (~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
18:56:59 matryoshka joins (~matryoshk@184.75.223.227)
18:57:43 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
18:57:43 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
18:57:43 neiluj joins (~jco@unaffiliated/neiluj)
18:58:03 × philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds)
18:58:04 Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362)
18:58:13 × mukherjeea quits (~am@106.201.53.107) (Quit: leaving)
18:58:28 matryoshka` joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
18:58:35 × matryoshka quits (~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
18:58:38 × Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 272 seconds)
18:59:24 Lord_of_Life_ is now known as Lord_of_Life
18:59:55 ezrakilty joins (~ezrakilty@75-172-99-84.tukw.qwest.net)
19:00:18 × matryoshka` quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
19:00:41 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
19:02:08 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
19:02:28 matryoshka joins (~matryoshk@184.75.223.227)
19:02:37 niekvandepas joins (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
19:02:55 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
19:03:29 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
19:03:30 berberman_ joins (~berberman@unaffiliated/berberman)
19:04:16 × keltono quits (~keltono@x-160-94-179-178.acm.umn.edu) (Ping timeout: 240 seconds)
19:04:25 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
19:04:50 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
19:05:11 × ezrakilty quits (~ezrakilty@75-172-99-84.tukw.qwest.net) ()
19:05:28 × jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection)
19:06:05 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
19:06:51 heatsink joins (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
19:07:07 × niekvandepas quits (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 260 seconds)
19:09:41 × matryoshka quits (~matryoshk@184.75.223.227) (Quit: ZNC 1.8.2 - https://znc.in)
19:10:03 matryoshka joins (~matryoshk@184.75.223.227)
19:11:08 × Rudd0 quits (~Rudd0@185.189.115.103) (Ping timeout: 256 seconds)
19:11:26 × heatsink quits (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
19:12:26 × matryoshka quits (~matryoshk@184.75.223.227) (Client Quit)
19:12:46 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
19:12:48 <fresheyeball> Servant question
19:12:55 <fresheyeball> I had a function like so
19:13:12 <fresheyeball> myHandler :: MonadStuff m => UserId -> m Thing
19:13:25 × geekosaur quits (ac3a8f61@172.58.143.97) (Ping timeout: 245 seconds)
19:13:25 <fresheyeball> and it worked great with servant for a route that looks like this
19:13:25 Sheilong joins (uid293653@gateway/web/irccloud.com/x-hbgqrvvjcuvgthgl)
19:13:39 howdoi joins (uid224@gateway/web/irccloud.com/x-lmcddsyzezhgbtrc)
19:13:49 <fresheyeball> "getThing" :> Capture "userId" UserId :> Get '[JSON] Thing
19:14:04 <fresheyeball> but now, for reasons I wont go into
19:14:11 <fresheyeball> the route has changed to this
19:14:20 <fresheyeball> "getThing" :> Capture "userId" UserId :> Raw
19:14:40 <fresheyeball> It really needs to be `Raw` a the end there
19:14:56 <fresheyeball> problem is how to refactor the `myHandler` function to compile with this?
19:15:18 hololeap joins (~hololeap@unaffiliated/hololeap)
19:15:22 <fresheyeball> I was able to write a function `Thing -> Application` that should serve the way I want it to
19:15:32 <fresheyeball> but the `m` is getting in the way here
19:16:01 <fresheyeball> Servant wants this to be `Tagged m Application` but the closed I can get here is `Tagged m (m Application)` or `m (Taggged m Application`
19:16:15 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
19:16:24 <fresheyeball> I can't find any way to write `m Thing -> Tagged m Application`
19:16:37 <fresheyeball> but I think this should be possible, since it worked fine with `Get` as the combinator here
19:16:56 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
19:17:40 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 246 seconds)
19:18:23 <koz_> fresheyeball: This 'Tagged'? https://hackage.haskell.org/package/tagged-0.8.6.1/docs/Data-Tagged.html#t:Tagged
19:19:17 Tario joins (~Tario@201.192.165.173)
19:21:20 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Quit: ZNC 1.8.2 - https://znc.in)
19:21:38 matryoshka joins (~matryoshk@184.75.223.227)
19:21:44 <c_wraith> fresheyeball: `m Thing -> Tagged m Application` seems a very unlikely type
19:21:50 niekvandepas joins (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
19:22:15 <c_wraith> fresheyeball: unless Application happens to be some sort of wrapper around m already
19:23:07 jneira joins (5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156)
19:23:35 geekosaur joins (ac3a8f61@172.58.143.97)
19:25:12 × matryoshka quits (~matryoshk@184.75.223.227) (Client Quit)
19:25:36 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
19:26:58 × rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Quit: Leaving)
19:27:27 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Read error: Connection reset by peer)
19:27:38 × niekvandepas quits (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 264 seconds)
19:27:45 matryoshka joins (~matryoshk@184.75.223.227)
19:29:06 × matryoshka quits (~matryoshk@184.75.223.227) (Read error: Connection reset by peer)
19:29:27 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
19:30:02 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) (Ping timeout: 264 seconds)
19:32:20 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
19:32:41 matryoshka joins (~matryoshk@184.75.223.227)
19:35:59 × matryoshka quits (~matryoshk@184.75.223.227) (Client Quit)
19:36:18 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
19:36:41 <fresheyeball> koz_: sorry stepped way, yes
19:36:52 <fresheyeball> c_wraith: it's the Application type from wai
19:38:38 × hololeap quits (~hololeap@unaffiliated/hololeap) (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/)
19:39:46 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
19:40:25 × maroloccio__ quits (~marolocci@pousada3ja.mma.com.br) (Ping timeout: 264 seconds)
19:41:01 niekvandepas joins (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
19:41:02 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:42:00 × bitmagie quits (~Thunderbi@200116b806b0fe00759218703f44b452.dip.versatel-1u1.de) (Quit: bitmagie)
19:44:44 ADG1089__ joins (~aditya@122.163.165.143)
19:49:09 new_haskeller joins (ae72a197@cpe00fc8d386d93-cm00fc8d386d90.cpe.net.cable.rogers.com)
19:49:24 × niekvandepas quits (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 240 seconds)
19:52:26 × troydm quits (~troydm@unaffiliated/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
19:53:12 troydm joins (~troydm@unaffiliated/troydm)
19:55:12 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye)
19:57:07 cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
19:57:12 × Ben88 quits (aec00c12@18.sub-174-192-12.myvzw.com) (Remote host closed the connection)
19:57:54 × jneira quits (5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156) (Ping timeout: 260 seconds)
20:01:39 niekvandepas joins (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
20:02:32 × xff0x quits (~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d) (Ping timeout: 260 seconds)
20:04:20 xff0x joins (~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d)
20:05:14 jneira joins (5127ac9c@gateway/web/cgi-irc/kiwiirc.com/ip.81.39.172.156)
20:07:41 heatsink joins (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
20:08:18 Stanley00 joins (~stanley00@unaffiliated/stanley00)
20:08:52 <topos> exarkun:
20:08:59 <topos> base32 is now up to date in the most recent LTS
20:09:06 <topos> You shouldn't have problems anymore: https://github.com/emilypi/Base32/issues/11#issuecomment-756968751
20:09:41 <exarkun> topos: Just saw the github notification :) Thank you for chasing that down.
20:09:44 <gentauro> 18:30 < ADG1089__> @pl \x y -> (== EQ) $ f x y
20:09:51 <gentauro> ADG1089__: what is this magic?
20:09:52 <gentauro> :o
20:11:23 × gxt quits (~gxt@gateway/tor-sasl/gxt) (Ping timeout: 240 seconds)
20:11:25 <gentauro> btw, `distinctBy f = map head . groupBy g . sortBy f where g = ((== EQ) . ) . f` :)
20:12:27 gxt joins (~gxt@gateway/tor-sasl/gxt)
20:12:37 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 246 seconds)
20:14:35 <topos> exarkun: no worries, glad you raised it :)
20:15:15 knupfer joins (~Thunderbi@200116b82c8bca009019dffffe833b29.dip.versatel-1u1.de)
20:15:24 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
20:15:44 × knupfer quits (~Thunderbi@200116b82c8bca009019dffffe833b29.dip.versatel-1u1.de) (Remote host closed the connection)
20:15:53 knupfer joins (~Thunderbi@200116b82c8bca001188403fbf05108c.dip.versatel-1u1.de)
20:17:25 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:18:13 × cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
20:22:46 × zebrag quits (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr) (Quit: Konversation terminated!)
20:23:08 mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl)
20:23:08 × mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host)
20:23:08 mouseghost joins (~draco@wikipedia/desperek)
20:23:09 zebrag joins (~inkbottle@aaubervilliers-654-1-158-67.w86-212.abo.wanadoo.fr)
20:29:23 × niekvandepas quits (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Ping timeout: 260 seconds)
20:29:23 × avdb quits (~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds)
20:30:39 avdb joins (~avdb@gateway/tor-sasl/avdb)
20:32:35 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
20:33:34 _linker_ joins (~linker@185-12-21-77.sigma.jaslo.pl)
20:36:14 maroloccio__ joins (~marolocci@pousada3ja.mma.com.br)
20:36:23 × knupfer quits (~Thunderbi@200116b82c8bca001188403fbf05108c.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
20:39:38 Franciman joins (~francesco@host-82-48-174-127.retail.telecomitalia.it)
20:41:31 niekvandepas joins (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
20:42:14 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
20:43:17 × neiluj quits (~jco@unaffiliated/neiluj) (Remote host closed the connection)
20:43:49 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
20:47:22 × avdb quits (~avdb@gateway/tor-sasl/avdb) (Remote host closed the connection)
20:47:42 avdb joins (~avdb@gateway/tor-sasl/avdb)
20:49:43 Major_Biscuit joins (~Major_Bis@82-169-100-198.biz.kpn.net)
20:49:59 × xff0x quits (~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d) (Ping timeout: 272 seconds)
20:53:04 <bi_functor> is it possible (obviously with different syntax) to get something close to this: (a -> a -> Ordering) -> instance Ord (WrappedOrd a) ...?
20:53:20 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
20:53:57 christo joins (~chris@81.96.113.213)
20:53:58 xff0x joins (~fox@2001:1a81:5351:7000:be64:5f30:b1c2:aa2d)
20:54:01 BuboBubo joins (~BuboBubo@rezo-mtrg2-17.ens.fr)
20:54:03 <bi_functor> to derive a typeclass from a function that determines it?
20:54:18 <merijn> No, typeclasses are static
20:54:34 <merijn> You can *maybe* do something like that with "reflection"
20:54:41 <merijn> But that's some dark voodoo magic nonsense
20:55:23 bi_functor makes a devious face
20:56:35 <Rembane> bi_functor: Out of curiosity, why do you want to do this?
20:57:26 g_ joins (~g@80-237-235-201.fibertel.com.ar)
20:57:59 × Major_Biscuit quits (~Major_Bis@82-169-100-198.biz.kpn.net) (Ping timeout: 260 seconds)
20:57:59 dcbdnl joins (~dcbdnl@2601:2c6:4e00:2d20:4685:ff:fecf:3992)
20:58:12 × g_ quits (~g@80-237-235-201.fibertel.com.ar) (Client Quit)
20:58:25 × christo quits (~chris@81.96.113.213) (Ping timeout: 264 seconds)
20:59:40 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
21:00:47 <hpc> maybe when haskell gets dependent types
21:01:38 × cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
21:01:54 <Uniaika> I say burn the witch
21:03:34 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
21:03:35 <Rembane> Build a bridge out of her!
21:04:06 × heatsink quits (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Remote host closed the connection)
21:04:06 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
21:04:24 <dolio> The issue is that type classes aren't just arguments you don't have to pass. They're supposed to be uniquely determined.
21:04:40 × niekvandepas quits (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Remote host closed the connection)
21:05:03 × avdb quits (~avdb@gateway/tor-sasl/avdb) (Ping timeout: 240 seconds)
21:05:09 × Jd007 quits (~Jd007@d154-5-83-24.bchsia.telus.net) (Quit: Jd007)
21:05:09 <bi_functor> dolio: Ord is certainly not uniquely determined
21:05:19 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
21:05:20 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Changing host)
21:05:20 neiluj joins (~jco@unaffiliated/neiluj)
21:05:38 <merijn> bi_functor: It is, by the typeclass
21:05:47 <merijn> if you want multiple instances, use a newtype
21:06:11 <bi_functor> merijn: well yes, hence the WrappedOrd in my example
21:06:37 <bi_functor> i want to know if that's something that can be generated
21:06:41 <merijn> bi_functor: That's not unique, it'd have an instance per input as you describe it
21:06:46 <merijn> bi_functor: no
21:06:55 shf joins (~sheaf@2a01:cb19:80cc:7e00:85b4:a3a3:cabb:438d)
21:07:17 <bi_functor> then, if i can't generate the instance for a newtype, could i generate a newtype to use that particular instance?
21:07:20 <kupi> what's the best comonad guide?
21:07:22 <merijn> bi_functor: Also, you can trivially rewrite anything that accepts your proposed WrappedOrd into something that, just, takes "a -> a -> Ordering" as argument instead like sortBy
21:07:38 <merijn> bi_functor: Well, that, or just don't use a typeclass :p
21:07:55 <bi_functor> merijn: I was thinking of how to make sortBy less clumsy, actually :p
21:07:57 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
21:07:58 raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
21:08:03 <merijn> How is it clumsy?
21:08:07 <merijn> :t sortBy
21:08:09 <lambdabot> (a -> a -> Ordering) -> [a] -> [a]
21:08:16 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
21:08:19 cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net)
21:08:24 <bi_functor> i meant in the definition! just speculating :)
21:08:28 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds)
21:09:05 <merijn> bi_functor: Even if you hypothetically could improve the definition using newtypes that's never happening anyway
21:10:18 <merijn> sortBy is in Prelude, getting uncontroversial changes into Prelude is already a nigh impossible task with a bunch of naysayers. Incompatibly redefining a commonly used Prelude function is "when pigs fly" territory :p
21:10:58 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
21:11:16 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
21:11:33 <hpc> it was bad enough when State became StateT, and that's not even in base
21:12:06 niekvandepas joins (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9)
21:12:35 <hpc> that was around when i was learning haskell, and it made a lot of examples stop compiling
21:13:21 <merijn> hpc: It took well over a decade to overrule the naysayers and make sum strict
21:14:17 <hpc> look at how long it took to add unsigned Integer too
21:14:27 mirrorbird joins (~psutcliff@2a00:801:236:570e:b1f2:acf6:e570:218d)
21:14:28 justsomeguy joins (~justsomeg@216.186.218.241)
21:14:28 × justsomeguy quits (~justsomeg@216.186.218.241) (Changing host)
21:14:28 justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311)
21:14:31 <hpc> that one should have been obvious from the beginning
21:15:09 shapr hops cheerfully
21:15:14 × matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Client Quit)
21:15:35 matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809)
21:17:23 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Ping timeout: 240 seconds)
21:18:13 × srk quits (~sorki@gateway/tor-sasl/sorki) (Quit: ZNC 1.8.2 - https://znc.in)
21:18:13 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
21:19:14 Stanley00 joins (~stanley00@unaffiliated/stanley00)
21:19:22 srk joins (~sorki@gateway/tor-sasl/sorki)
21:19:24 hexo joins (~hexo@gateway/tor-sasl/hexo)
21:19:28 knupfer joins (~Thunderbi@200116b82c8bca008807cefffee21155.dip.versatel-1u1.de)
21:19:43 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds)
21:19:44 × jpds_ quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
21:20:23 sord937 joins (~sord937@gateway/tor-sasl/sord937)
21:20:33 × knupfer quits (~Thunderbi@200116b82c8bca008807cefffee21155.dip.versatel-1u1.de) (Remote host closed the connection)
21:20:47 knupfer joins (~Thunderbi@200116b82c8bca00044d4676b93175a0.dip.versatel-1u1.de)
21:20:58 × spopejoy quits (~stuart@ool-44c5f8c9.dyn.optonline.net) (Quit: spopejoy)
21:21:08 jpds_ joins (~jpds@gateway/tor-sasl/jpds)
21:23:33 × niekvandepas quits (~niekvande@2001:985:bebc:1:4462:213b:d04f:6dc9) (Remote host closed the connection)
21:23:53 kayvan joins (~user@52-119-115-160.PUBLIC.monkeybrains.net)
21:24:13 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 264 seconds)
21:24:47 kayvan parts (~user@52-119-115-160.PUBLIC.monkeybrains.net) ()
21:26:25 Jd007 joins (~Jd007@d154-5-83-24.bchsia.telus.net)
21:28:37 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection)
21:30:03 × knupfer quits (~Thunderbi@200116b82c8bca00044d4676b93175a0.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
21:31:11 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
21:33:18 <__monty__> Why can't the monad and the transformer coexist?
21:33:53 <merijn> __monty__: They can
21:33:56 <hpc> it went from data State s a = ... to type State s a = StateT s Identity a
21:34:01 <merijn> __monty__: But they used to be different datatypes
21:37:21 <__monty__> Ah, misunderstood. Why did that cause examples to break though?
21:37:30 christo joins (~chris@81.96.113.213)
21:37:34 <merijn> __monty__: Because the State constructor stopped existing
21:38:46 <__monty__> Ah
21:40:27 × geekosaur quits (ac3a8f61@172.58.143.97) (Remote host closed the connection)
21:41:04 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:41:52 × christo quits (~chris@81.96.113.213) (Ping timeout: 246 seconds)
21:44:16 acidjnk_new joins (~acidjnk@p200300d0c704e77345042c8b5bd54d99.dip0.t-ipconnect.de)
21:44:21 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:49:19 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
21:53:23 × ubert quits (~Thunderbi@p200300ecdf1ee0eee6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
21:53:43 kayvan joins (~user@52-119-115-160.PUBLIC.monkeybrains.net)
21:53:50 × neiluj quits (~jco@unaffiliated/neiluj) (Ping timeout: 256 seconds)
21:55:20 neiluj joins (~jco@91-167-203-101.subs.proxad.net)
21:57:16 <monochrom> But easy fix: change "S" to "s".
21:58:28 × kayvan quits (~user@52-119-115-160.PUBLIC.monkeybrains.net) (Quit: ERC (IRC client for Emacs 28.0.50))
22:01:28 × nrh^ quits (~hph@ip98-184-89-2.mc.at.cox.net) ()
22:02:25 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
22:03:46 <ski> % let State f = replicateM_ 5 (modify (2 *)) in f 1
22:03:46 <yahb> ski: ((),32)
22:04:20 Rudd0 joins (~Rudd0@185.189.115.108)
22:04:30 heatsink joins (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
22:04:36 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 240 seconds)
22:09:02 × heatsink quits (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Ping timeout: 264 seconds)
22:10:15 fradet joins (~pi@216.252.75.247)
22:10:16 × __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving)
22:10:54 × justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) ()
22:12:34 re6 joins (5434a07f@tm.84.52.160.127.dc.cable.static.telemach.net)
22:12:40 × hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 246 seconds)
22:13:43 <re6> How is it possible for modify to do anything in the State monad if it returns a "m ()"
22:14:25 <koala_man> try implementing it yourself and see
22:14:28 <merijn> re6: Why would that make it impossible?
22:14:53 Tops2 joins (~Tobias@dyndsl-095-033-088-067.ewe-ip-backbone.de)
22:15:07 <merijn> And yeah, implementing it yourself is good practice, see: https://gist.github.com/merijn/098106abd45c940dab09
22:15:41 <re6> Ok, I'll try that
22:16:08 <Franciman> does anybody use arrows nowadays?
22:16:18 <merijn> Franciman: "no"
22:16:32 <merijn> Franciman: They're pretty much a historical relic at this point
22:16:37 <Franciman> sad!
22:16:44 <Franciman> did monads take over totally?
22:16:47 <merijn> Superceded by a mix of Category, Applicative, and Profunctor
22:16:52 <Franciman> oh
22:16:58 <Franciman> arrows are categories in disguise?
22:17:29 <merijn> Arrows are category theory inspired, by the class makes it hard to make any of the interesting members
22:17:45 <merijn> Category and Profunctor have a lot of similarities to Arrow while being overall more useful
22:18:12 <Franciman> I remember that some of the coolnes of Arrows was that you had static inputs, and do preprocessing
22:18:23 <Franciman> I mean you couldn't alter the flow of code at runtime
22:18:34 <merijn> Franciman: Right, but Applicative has that too :p
22:18:38 <Franciman> yes!
22:18:41 × BuboBubo quits (~BuboBubo@rezo-mtrg2-17.ens.fr) ()
22:18:49 <Franciman> what do we use profunctor to?
22:18:55 <merijn> Lens? :p
22:18:55 <Franciman> apart from lens :S
22:18:57 <Franciman> lewl
22:19:11 <Franciman> and categories?
22:19:49 <merijn> Not sure, tbh, I'm just parroting the gospel of edwardk and some others :p
22:20:43 <Franciman> thanks
22:20:51 heatsink joins (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34)
22:20:54 <Franciman> for now I think about CT as a tool to think about the structure of my programs
22:21:10 <Franciman> if something fits into a CT framework, I can get a lot of theorems about my programs
22:21:18 <Franciman> not sure what y'all use categories for, if you do
22:21:45 christo joins (~chris@81.96.113.213)
22:25:46 <maralorn> Franciman: I think the question "what do you people use categories for" is a bit like "so what do you people do with these 'molecules' any practical advantages in using them?"
22:26:06 <Franciman> nono
22:26:11 <Franciman> I don't mean pratical advantages
22:26:18 × christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds)
22:26:22 <Franciman> I just want to know what you have used categorical understanding for
22:26:25 <Franciman> plain curiosity
22:26:30 <Franciman> I don't want to buy anything :P
22:26:32 geowiesnot joins (~user@87-89-181-157.abo.bbox.fr)
22:27:46 <maralorn> Well, I think I mostly use categorical understanding to understand what a function does when it‘s named like something from ct.^^
22:28:45 <Franciman> :D
22:28:59 × Lowl3v3l quits (~Lowl3v3l@dslb-084-062-101-233.084.062.pools.vodafone-ip.de) (Quit: Leaving.)
22:30:56 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
22:34:32 nucranium joins (~nucranium@2a02:8010:6173:0:34f4:f022:f40c:bc2c)
22:37:09 <pie_> i dont know C, structs and unions are like product and sum types but worse somehow? (how? no tags?)
22:38:21 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:39:08 <Uniaika> yes, C has untagged unions
22:39:41 <monochrom> And uses more space, asymptotically.
22:39:59 <pie_> oh right, no pattern matching
22:40:34 <pie_> im just wondering if i have to rething kings, because my criteria for "good" language roughly starts with having ADTs
22:40:44 <monochrom> union { one-byte-struct here; 10000-byte struct here } always uses 10000 bytes, even when you're in case #1.
22:40:46 <pie_> *rethink things
22:41:01 × ulidtko|k quits (~ulidtko@193.111.48.79) (Ping timeout: 246 seconds)
22:41:16 Codaraxis joins (Codaraxis@gateway/vpn/mullvad/codaraxis)
22:41:22 <monochrom> "data X = C1 one-word-here | C2 10000-bytes-here" uses 2 words in case #1.
22:41:56 <monochrom> I wouldn't have "good language" in my vocab.
22:43:44 <monochrom> except very casually and undefinedly.
22:44:16 <pie_> yeah
22:44:26 × fendor_ quits (~fendor@77.119.128.254.wireless.dyn.drei.com) (Remote host closed the connection)
22:44:38 <pie_> ok, so lets say, "language I would want to work with"
22:45:06 <pie_> and by ADTs half of what I mean is probably even just "enums that arent shit"
22:46:18 ph88 joins (~ph88@2a02:8109:9e00:7e5c:4c51:83e:647e:c991)
22:46:26 <monochrom> Let me see if I can probe your boundary.
22:46:38 × geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 272 seconds)
22:46:38 <pie_> hm I guess you actually have to put the union's tag in the struct, which seems a little funky
22:47:09 <ph88> does anyone know how to make instead of ['a'..] after z make it go to "aa" like excel ?
22:47:13 <monochrom> Imagine I have a language that "does not have" sum types, but it has really good record/product types, and really good support for higher-order functions, maybe even rank-n functions.
22:47:13 × eruditass quits (uid248673@gateway/web/irccloud.com/x-qhjyzbcwmhhifert) (Quit: Connection closed for inactivity)
22:47:32 <pie_> Im not very gung-ho about my skills so my boundaries are probabyl fuzzy and clueless :P
22:48:13 <pie_> I dont know my way around the rank N stuff
22:48:14 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
22:48:48 <merijn> RankN stuff is ununderstandable, until you need it for something, then you go "ooooh!"
22:48:50 <pie_> I need to find time to have another go at isov*ctors book at some point...
22:49:15 <merijn> pie_: See also https://gist.github.com/merijn/77e3fa9757658e59b01d
22:49:29 <pie_> my intervals between using things are way too long and i forget :I
22:51:08 <pie_> merijn: surely there's more to it than putting foralls in the right place?
22:51:28 <merijn> pie_: It's not about "putting foralls in the right place"
22:51:37 <pie_> if rank2 has anything to do with rankn, wouldnt rank2 be enough
22:51:49 <merijn> It's about *who* gets to decide what type is used for type variables
22:52:04 pie_ looks harder
22:52:04 <merijn> pie_: You know how every haskell function has an implicit forall?
22:52:10 <pie_> yeah vaguely
22:52:17 <merijn> i.e. "id :: forall a . a -> a"
22:52:29 <merijn> the rank just refers to "how much do you nest"
22:52:40 <pie_> all the type variables get a top level forall right?
22:52:46 <pie_> righ tthat
22:53:04 <merijn> "forall x . (forall a . a -> a) -> Foo x -> Foo x" is Rank2, another nesting is rank 3, etc.
22:53:20 <merijn> So RankN is just generalised Rank2
22:53:28 × eyenx quits (~eyenxeyen@unaffiliated/eye/x-1653358) (Remote host closed the connection)
22:53:49 <pie_> ok
22:53:50 eyenx joins (~eyenxeyen@unaffiliated/eye/x-1653358)
22:54:02 <merijn> pie_: Note that the reason you need the Rank2 type in my gist is because the "mangle" function (internally) gets to pick whether you call the function on Int or on Double
22:54:45 × danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
22:54:45 <merijn> Whereas with the non-Rank2 version the *user* of "mangle" gets to pick what type is used. i.e. without rank2 passing "Int -> Int" is valid, because Int is an instance of Num, but that's not what you need
22:55:05 <merijn> What you need isn't a function that works *a* instance of Num. You need a function that works on *all* instances of Num
22:58:47 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
22:59:07 <monochrom> So my language doesn't allow "data X = C1 Int | C2 Bool", but it allows "data XE = forall r. {c1 :: Int -> r, c2 :: Bool -> r}". Or maybe "data XE r = {c1 :: Int -> r, c2 :: Bool -> r}" if rank-n is not supported.
22:59:56 <monochrom> err no.
23:00:17 <monochrom> data XE = forall r. {c1 :: Int -> r, c2 :: Bool -> r} -> r
23:00:36 <pie_> merijn: aha
23:00:48 <ph88> how can i write a function that generates an infinite list from "a" to "z" and then "aa" to "zz", "aaa" to "zzz" and so on ?
23:01:16 keltono joins (~keltono@x-160-94-179-178.acm.umn.edu)
23:01:23 <pie_> ph88: i dont know but that sounds like generating numbers, so how would you generate numbers
23:01:44 <ph88> divide by 26 for all letters of alphabet
23:02:51 <monochrom> So I can't write "C1 4 :: X" but I can write "(\o -> o.c1 4) :: XE". Similarly for C2.
23:03:23 × dcbdnl quits (~dcbdnl@2601:2c6:4e00:2d20:4685:ff:fecf:3992) (Quit: dcbdnl)
23:03:42 <monochrom> And I can't write "f (C1 i) = show i; f (C2 b) = show b", but I can write:
23:04:16 <monochrom> f xe = xe {c1 = show, c2 = show}
23:04:33 <monochrom> Does my language count as "has sum types" or not?
23:04:59 × kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection)
23:05:06 <monochrom> How would you feel about using my language? Is it good enough?
23:06:15 <ph88> when a list comprehension becomes a bit too bit with the [ ] can i write it in do notation ?
23:06:22 HarveyPwca joins (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net)
23:06:47 <monochrom> Yes. Or use very nice indentation.
23:06:54 <monochrom> [ f x y
23:07:01 <monochrom> | x <- list1
23:07:05 <monochrom> , y <- list2
23:07:09 <ph88> oki
23:07:13 <monochrom> , x > 0
23:07:15 <monochrom> , y < 0
23:07:16 <monochrom> ]
23:09:11 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
23:11:02 × Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer)
23:12:34 _deepfire joins (~user@80.92.100.69)
23:12:38 × nucranium quits (~nucranium@2a02:8010:6173:0:34f4:f022:f40c:bc2c) (Ping timeout: 264 seconds)
23:14:53 <ski> ph88 : so first all lists of one length, then all of the next larger length, &c. ?
23:15:06 <ph88> yes
23:15:26 <ski> perhaps you could start by picking the length, then ?
23:15:37 <ph88> yes working on it
23:16:15 × ADG1089__ quits (~aditya@122.163.165.143) (Remote host closed the connection)
23:16:21 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
23:17:53 knupfer joins (~Thunderbi@200116b82c8bca0018e1e3fffeba4133.dip.versatel-1u1.de)
23:18:34 <ski> > take 15 (allCombinations "01")
23:18:37 <lambdabot> ["","0","1","00","01","10","11","000","001","010","011","100","101","110","1...
23:18:48 × knupfer quits (~Thunderbi@200116b82c8bca0018e1e3fffeba4133.dip.versatel-1u1.de) (Remote host closed the connection)
23:19:03 knupfer joins (~Thunderbi@200116b82c8bca00ad1bd0c74650766d.dip.versatel-1u1.de)
23:23:02 <ph88> ski, a, b, c to z then aa, ab, ac .. az, ba, bb, bc .. zz, aaa, aab
23:23:36 <ph88> i have this now, work in progress https://bpa.st/SPQQ
23:24:32 ski . o O ( `combination(Letters,Word) :- between(0,inf,N),length(Word,N),maplist(has_element(Letters),Word). has_element(List,Element) :- member(Element,List).' )
23:24:56 <ph88> is that prolog ??
23:25:01 <ski> yes
23:25:07 conal joins (~conal@64.71.133.70)
23:25:13 <ph88> cool =)
23:25:25 × neiluj quits (~jco@91-167-203-101.subs.proxad.net) (Quit: leaving)
23:25:33 <ph88> i'm programming in haskell however, trying to use list comprehension on infinite list
23:25:38 <pie_> monochrom: well the representation feels pretty alien and unergonomic :p but im not used to it
23:26:06 <pie_> still just trying to process it but it kind of looks like sum types given that i know its supposed to be sum types :
23:26:08 <pie_> :P
23:27:11 <pie_> ski: nice
23:27:53 × son0p quits (~son0p@181.136.122.143) (Quit: Lost terminal)
23:28:00 nnst^ joins (~hph@ip98-184-89-2.mc.at.cox.net)
23:28:07 <ski> hm, afaics, you're not picking length
23:28:42 <ph88> are you talking to me ?
23:28:49 ski idly wonders whether pie_'s heard of the Visitor Pattern
23:28:51 <ski> yes
23:29:11 <pie_> yes but me "hearing" about something sadly doesnt mean much
23:29:29 ski nods
23:29:55 × Franciman quits (~francesco@host-82-48-174-127.retail.telecomitalia.it) (Quit: Leaving)
23:29:58 <glguy> number `rem` (26 ^ divisor) -- is probably supposed to be -- (number `div` (26^divisor) `rem` 26)
23:30:19 <pie_> it would probably be good to learn more about encoding oop in haskell
23:31:41 <ski> (we don't know how `getLetter' is intended to be called, yet)
23:32:40 <glguy> ski: at the moment it's best not to call it
23:33:15 <ski> i'd prefer to iteratively use `divMod', if i was taking this approach, yes
23:33:47 × michalz quits (~user@185.246.204.79) (Remote host closed the connection)
23:34:05 <monochrom> I might use https://www.cs.dartmouth.edu/~doug/nfa.pdf , its "union" and "xprod" functions, and write "az = ['a'..'z'] ++ xprod (:) ['a'..'z'] az"
23:34:34 <glguy> > let column n = showIntAtBase 26 (\i -> chr (ord 'a' + i)) n "" in map column [0,10,26,30]
23:34:36 <lambdabot> ["a","k","ba","be"]
23:34:40 <monochrom> err, no, need LOL wrappers
23:34:54 <glguy> and then pad out the 'a's
23:35:41 <monochrom> az = map LOL ['a'..'z'] ++ xprod (\c (LOL cs) -> LOL (c : cs)) ['a'..'z'] az
23:35:42 carthia joins (~carthia@gateway/tor-sasl/carthia)
23:36:04 <ephemient> > let as = [] : (flip (:) <$> as <*> ['a'..'z']) in as
23:36:07 <lambdabot> ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r",...
23:36:37 × ericsagnes quits (~ericsagne@2405:6580:0:5100:e508:d43e:e329:fdb5) (Ping timeout: 244 seconds)
23:36:57 <monochrom> > let as = [] : (flip (:) <$> as <*> ['a'..'z']) in drop (26+26) as
23:37:01 <lambdabot> ["za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb",...
23:37:10 <ski> > let as = [] : (flip (:) <$> as <*> "01") in take 15 as
23:37:14 <lambdabot> ["","0","1","00","10","01","11","000","100","010","110","001","101","011","1...
23:37:52 × kyali quits (~kyali@APN-123-248-168-gprs.simobil.net) (Remote host closed the connection)
23:38:38 <pie_> LOL wrappers 'xD
23:39:00 <pie_> im too neurotypical to not be hung up on that
23:39:22 fcortesi joins (~fcortesi@78-66-245-190.fibertel.com.ar)
23:42:49 <ski> monochrom : i guess you want singletons there
23:42:52 <ph88> updated version, still work in progress https://bpa.st/3H5A
23:43:37 × knupfer quits (~Thunderbi@200116b82c8bca00ad1bd0c74650766d.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
23:43:47 <ski> @type \div number -> number `div` (26 ^ div)
23:43:49 <lambdabot> (Integral (t1 -> t2 -> t3), Num t2) => (t1 -> t2 -> t3) -> t1 -> t3
23:47:01 × fcortesi quits (~fcortesi@78-66-245-190.fibertel.com.ar) (Ping timeout: 264 seconds)
23:48:04 × dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
23:49:19 ericsagnes joins (~ericsagne@2405:6580:0:5100:ff66:bb34:7221:2b3d)
23:49:20 <ephemient> ph88: fwiw excel stops at 2^14 columns, not an infinite sequence of names. probably not relevant to your exercise though :P
23:49:37 <ph88> ye
23:49:53 <ph88> it's not really for excel either i just need a similar naming scheme
23:50:03 <ph88> not that i need that long sequence .. but ye haskell lol
23:53:02 fcortesi joins (~fcortesi@78-66-245-190.fibertel.com.ar)
23:55:06 × Icewing quits (~Icewing@unaffiliated/icewing) (Remote host closed the connection)
23:55:45 × heatsink quits (~heatsink@2600:1700:bef1:5e10:f1bd:cd9d:94c1:2c34) (Remote host closed the connection)
23:56:01 × maroloccio__ quits (~marolocci@pousada3ja.mma.com.br) (Ping timeout: 264 seconds)
23:56:21 rajivr joins (uid269651@gateway/web/irccloud.com/x-dmdothxqoypgdjpl)
23:56:32 <ephemient> one problem with this number approach is that a, aa, aaa... etc. cannot all be generated from 0 = 00 = 000...

All times are in UTC on 2021-01-08.