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.