Home liberachat/#haskell: Logs Calendar

Logs on 2021-12-22 (liberachat/#haskell)

00:00:37 × chomwitt quits (~chomwitt@94.66.63.187) (Ping timeout: 240 seconds)
00:01:23 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds)
00:01:42 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
00:03:20 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
00:08:29 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
00:08:57 × slaydr quits (~seriley@45.131.194.254) (Quit: leaving)
00:09:43 Guest4242 joins (~Guest4242@78.198.4.122)
00:11:01 hololeap joins (~hololeap@user/hololeap)
00:11:15 × Morrow quits (~quassel@bzq-110-168-31-106.red.bezeqint.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
00:14:49 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
00:15:01 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:15:01 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
00:15:01 wroathe joins (~wroathe@user/wroathe)
00:16:11 <EvanR> is there something weird about how defining equations sometimes require this idea of "what order do you try them in" to make sense
00:16:12 × euandreh quits (~euandreh@2804:14c:33:9fe5:1bce:ba7c:3f01:c9f3) (Ping timeout: 268 seconds)
00:16:28 <EvanR> other times they don't
00:16:57 <EvanR> in math they would call bullshit on such definitions
00:17:26 <geekosaur> patternmatching can't be smart like humans, it has to rely on humans to order things
00:19:12 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds)
00:24:03 <yin> EvanR: how long did it take you to calc part2 ?
00:24:18 <EvanR> what day
00:24:30 <yin> the pathfinding day
00:24:33 <yin> huh..
00:24:35 <yin> 15
00:24:50 <EvanR> it took a second or two
00:25:12 <yin> well i'm doing something wrong then
00:26:06 <EvanR> oh part 2, it took a little longer, iirc
00:26:30 <EvanR> not so long that I did this \o/ cancelled it and looked for some other solution
00:26:39 <yin> tests ok for both parts, part1 is fast but part2 is going on 7 minutes and counting... i tried both libraries aStar and dijkstra
00:26:42 <EvanR> which doesn't take long
00:27:01 <EvanR> when stuff may take a while I make sure to put print out of progress somehow
00:27:42 <EvanR> the performance of astar apparently depends on the quality of the h function
00:27:50 <yin> tbf i'm on 32bit 1G Ram
00:29:56 <dsal> My day 15 various timing things: https://www.irccloud.com/pastebin/SFN8Et1K/day15.txt
00:30:45 <dsal> c is A* Data.Graph.AStar where b is my own Dijkstra implementation.
00:31:29 <dsal> (These tests are concurrent, so the timing interfere)
00:31:37 × jkaye quits (~jkaye@2601:281:8300:7530:e0f7:dc28:dd0d:f0d5) (Ping timeout: 240 seconds)
00:32:36 <dsal> part 2 spoiler: part2 = part1b . embiggen . gridToMap
00:33:28 <dsal> I don't even remember this one. I should sleep more.
00:33:32 <EvanR> spoiler: print =<< solve =<< getData
00:36:43 <monochrom> Haha that's like Feynman's method written in Haskell.
00:36:48 <dsal> haha
00:37:05 <monochrom> 1. Read the input carefully. 2. Compute very hard. 3. Print the output.
00:37:16 <hpc> i have that on my whiteboard
00:37:25 <zero> i suffer from aoc amnesia, where my memory resets every 2 stars
00:37:37 <dsal> If I switch from lazy map to strict map, it goes from almost instantly to just hangs.
00:37:38 <hpc> along with "every impossible problem has an impossible cause" and "asking for help is the original proof of work protocol"
00:37:59 <dsal> zero: I keep seeing people say, "This is exactly probably X from year Y" and I don't even remember there being a year Y.
00:38:27 <monochrom> Yeah if you use Map for lazy person's dynamic programming, it is imperative to use lazy Map.insert.
00:38:57 <zero> dsal: that might be cause for concern
00:39:15 <dsal> I'm just using Map.fromList with Map.! inside a list comprehension.
00:39:21 <dsal> (for The Embiggening)
00:39:55 <monochrom> Yeah, that.
00:39:59 <dsal> I've wasted time trying to get lazy maps to do my bidding on a couple of these problems where there were loops.
00:40:02 <zero> my embiggening: unions [ S.map (\((x,y),c) -> ((x + side * x',y + side * y'),iterate suc c !! (x'+y'))) g | let ss = [0..4] , x' <- ss , y' <- ss ]
00:40:13 <monochrom> byorgey really likes to promote that simple trick.
00:40:32 <dsal> zero: Mine's way more lines than yours. I wrote a minivan.
00:41:18 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
00:41:18 <zero> the trick is to own one wide screen
00:46:24 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
00:46:37 × ksqsf quits (~user@134.209.106.31) (Ping timeout: 240 seconds)
00:49:58 Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net)
00:53:32 × pfurla quits (~pfurla@2804:14d:5c5a:9a78:dc7f:5982:796e:a1e5) (Quit: gone to sleep. ZZZzzz…)
00:54:25 <EvanR> One Wide Trick
00:54:47 <EvanR> your monitor will hate it
00:57:15 <zero> i'm not too ashamed of my day 14 solution (protein insertion)
00:57:17 <zero> https://paste.jrvieira.com/1640134606624
00:58:45 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:00:20 pfurla joins (~pfurla@189.60.63.81)
01:04:04 euandreh joins (~euandreh@2804:14c:33:9fe5:157f:fad:702e:d7a)
01:10:17 ksqsf joins (~user@134.209.106.31)
01:13:13 <EvanR> I feel like I'm playing clue or mastermind reading this pattern matching code
01:13:37 <EvanR> https://paste.tomsmeding.com/Bcx0Usru after the first line, c is not Air... after the second d is not Air...
01:15:18 × ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds)
01:16:30 <EvanR> I hope I'm accurately appreciating how much if then statements it's not
01:18:32 mk-fg joins (~mk-fg@46.48.96.28)
01:18:59 Axma99203 joins (~Axman6@user/axman6)
01:19:37 mk-fg parts (~mk-fg@46.48.96.28) ()
01:21:14 jkaye joins (~jkaye@2601:281:8300:7530:6da5:b4a4:e0e4:a76e)
01:21:16 × Axman6 quits (~Axman6@user/axman6) (Ping timeout: 260 seconds)
01:22:12 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
01:22:14 qrpnxz joins (abc4f95c31@user/qrpnxz)
01:23:27 <geekosaur> Guest|47, have you tried loading the URL curl can't open with a browser and saving it to a file?
01:27:45 × waleee quits (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 250 seconds)
01:28:11 waleee joins (~waleee@h-98-128-229-110.NA.cust.bahnhof.se)
01:30:23 <Guest|47> geekosaur, I had updates on my OS turn off.
01:30:24 <Guest|47> I just finished:
01:30:25 <Guest|47> updating OS
01:30:25 <Guest|47> installing haskell package with curl
01:30:38 <Guest|47> ghcup tui does nothing in bash
01:30:53 <geekosaur> did you add it to your PATH?
01:31:10 <Guest|47> and  running ghci still shows version 8.4.2
01:31:21 <geekosaur> export PATH=$HOME/.ghcup/bin:$PATH
01:31:25 × doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
01:31:31 <Guest|47> I don't quite understand your question...
01:32:28 <geekosaur> run the command I just gave you, in bash. the one starting with "export"
01:32:31 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
01:32:31 qrpnxz joins (abc4f95c31@user/qrpnxz)
01:32:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
01:32:55 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
01:32:56 qrpnxz joins (abc4f95c31@user/qrpnxz)
01:33:38 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
01:33:38 qrpnxz joins (abc4f95c31@user/qrpnxz)
01:33:52 <Guest|47> okay that worked
01:34:40 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
01:34:40 qrpnxz joins (abc4f95c31@user/qrpnxz)
01:34:44 <geekosaur> then you'll want to edit ~/.bash_profile to add that command to it, so future shells you open know about ghcup
01:36:59 × jeetelongname quits (~jeet@88-111-159-26.dynamic.dsl.as9105.com) (Ping timeout: 268 seconds)
01:38:37 × incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 240 seconds)
01:38:37 <Guest|47> >> ~/.bash_profile
01:38:37 <Guest|47> -bash: /Users/mainUser/.bash_profile: Permission denied
01:39:28 <geekosaur> it's not generally runnable. you want to *edit* it
01:39:56 incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com)
01:39:59 ksqsf joins (~user@134.209.106.31)
01:40:11 <Guest|47> okay i'll give it a go
01:40:19 <yin> how do i tell ghc what i want my literal types to default to?
01:41:09 <yin> `default Num Int` ?
01:41:50 <geekosaur> `default (Int, Double)` or similar
01:43:40 <zero> what does it mean?
01:43:48 <geekosaur> Guest|47, open -e ~/.bash_profile
01:44:19 <Guest|47> then paste,
01:44:19 <Guest|47>  export PATH=$HOME/.ghcup/bin:$PATH
01:44:20 <Guest|47> into the file?
01:44:25 <geekosaur> yes
01:44:37 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:84c9:5514:9bd3:b2f5) (Remote host closed the connection)
01:44:58 <geekosaur> zero, it means, for any typeclass instance it has not yet managed to resolve to a type, first try Int, then Double
01:45:20 × ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds)
01:45:29 <geekosaur> with various ghc extensions this list gets extended
01:47:51 <geekosaur> https://www.haskell.org/onlinereport/haskell2010/haskellch4.html#x10-790004.3.4 discusses the default declaration
01:48:18 × angerman quits (sid209936@id-209936.ilkley.irccloud.com) ()
01:48:51 <dsal> I usually just tell it what I want, but I can see a few places that might help.
01:51:06 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection)
01:51:29 <Guest|47> geekosaur, can you recommend resource for better understanding the PATH business you led me through? How did you even come up with
01:51:29 <Guest|47> "export PATH=$HOME/.ghcup/bin:$PATH"? was it a lucky guess?
01:52:05 <geekosaur> I've been using systems like this for, uh, over 35 years :) and I know where ghcup installs itself
01:52:14 × danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds)
01:52:19 × Tuplanolla quits (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) (Quit: Leaving.)
01:52:51 <geekosaur> https://www.cs.purdue.edu/homes/bb/cs348/www-S08/unix_path.html is one resource
01:53:20 × ph88 quits (~ph88@ip5f5af068.dynamic.kabel-deutschland.de) (Quit: Leaving)
01:53:53 <geekosaur> mm, actually I'm up to 40 years now
01:54:11 <zero> thanks! dsal i just want various list of strings (show <$> [n..m]) and it get's annoying
01:54:12 <Guest|47> Okay, experience is sensible reason. thanks for the extra resource though
01:56:08 <pfurla-matrix> geekosaur: I got my first copy of Linux in 40 floppy disks in '95
01:57:02 <zero> i copied the binary from a radio transmission in morse code
01:57:06 <geekosaur> so did I. I started out on a dialup TRS-80 Model 16 running Xenix though
01:58:18 <EvanR> 40 years ... dang so since the 60s
01:58:20 <sm> Commodore PET and Sinclair ZX80 user checking in!
01:58:33 <zero> EvanR: right?
01:58:35 <EvanR> lol
01:58:40 × shailangsa_ quits (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) ()
01:59:40 <geekosaur> mm?
01:59:44 <geekosaur> > 2021 - 1981
01:59:45 <lambdabot> 40
02:00:01 <EvanR> forgot it was the future for a second
02:00:09 <geekosaur> 60s would be when I was born :)
02:00:19 <EvanR> :tron:
02:00:31 ksqsf joins (~user@134.209.106.31)
02:03:34 <EvanR> I also regularly think of the 80s when anyone says "20 years ago"
02:03:44 <zero> > let _ !- y = 2000 - y in 2021 - 40
02:03:46 <lambdabot> 1981
02:04:00 <zero> > let _ !- y = 2000 - y in 2021 !- 40
02:04:02 <lambdabot> 1960
02:04:59 <EvanR> what in the
02:05:07 <EvanR> math
02:05:23 <dsal> Math and time were generally easier around 2000
02:05:35 <zero> no no no
02:05:38 <zero> Y2k
02:05:44 × ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds)
02:06:07 <dsal> Yeah, that had a bit of an effect, I guess
02:06:20 <zero> people arguing about when was it *really* the turn of the millennium
02:06:33 <zero> was there year 0 ?
02:06:42 <zero> did it really matter?
02:06:51 <zero> all the calendar patches
02:07:19 <zero> then somehow a single second was added to a random year
02:07:20 <EvanR> lambdabot doesn't have Data.Time :(
02:07:49 <zero> like wtf? i miss the 90s
02:07:53 <zero> simpler times
02:07:55 <EvanR> said no one ever
02:08:10 ksqsf joins (~user@134.209.106.31)
02:08:43 <zero> anyways it's now T-what? to Metaverse?
02:09:15 <zero> maybe we should start cunting backwards
02:09:34 <zero> counting
02:09:48 <zero> damned 'o' key..
02:09:53 <zero> i should shut up
02:10:08 <Guest|47> Do the creators of haskell hang out here?
02:10:26 <Guest|47> vague question
02:10:48 <geekosaur> I don't think any of them are on IRC
02:11:08 <Guest|47> Sounds like something a creator would say...
02:11:31 <yin> lol what's happening today? :D
02:11:44 geekosaur didn't discover haskell until 2006
02:12:26 <zero> > 2021 - 2006 -- just so you know
02:12:27 <lambdabot> 15
02:12:37 × ksqsf quits (~user@134.209.106.31) (Ping timeout: 240 seconds)
02:12:37 × mvk quits (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds)
02:12:59 <EvanR> like 20 years ago
02:13:16 <int-e> 20 years ago, 2006 was in the far future
02:14:34 Guest|47 is now known as AlpacaPrince
02:15:01 <int-e> . o O ( "far future" = "after the next general election" )
02:15:37 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 240 seconds)
02:16:04 dsal sings “in the year two thousand…”
02:16:29 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
02:18:49 geekosaur joins (~geekosaur@xmonad/geekosaur)
02:19:36 euouae joins (~euouae@user/euouae)
02:20:39 <yin> dsal: read my mind. love how he kept doing it years after
02:21:07 <dsal> yin: ha, yeah, that just made it better
02:22:17 mvk joins (~mvk@2607:fea8:5cdd:f000::917a)
02:22:42 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:84c9:5514:9bd3:b2f5)
02:24:57 × jkaye quits (~jkaye@2601:281:8300:7530:6da5:b4a4:e0e4:a76e) (Ping timeout: 240 seconds)
02:26:25 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
02:29:42 <AlpacaPrince> upon updating haskell, the final prompt says:
02:29:42 <AlpacaPrince> "If you are new to Haskell, check out https://www.haskell.org/ghcup/install/#first-steps"
02:30:06 <AlpacaPrince> then:
02:30:07 <dsal> AlpacaPrince: What does "updating haskell" mean?
02:30:20 <AlpacaPrince> This will generate the following files:
02:30:21 <AlpacaPrince> tree
02:30:21 <AlpacaPrince> .
02:30:22 <AlpacaPrince> ├── app
02:30:22 <AlpacaPrince> │ └── Main.hs
02:30:23 <AlpacaPrince> ├── CHANGELOG.md
02:30:23 <AlpacaPrince> └── myfirstapp.cabal
02:30:24 <AlpacaPrince> app/Main.hs is where your package’s code lives.
02:30:42 <AlpacaPrince> by updating haskell I mean:
02:30:43 <AlpacaPrince> curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
02:31:06 <dsal> You mean installing ghcup?
02:31:11 <zero> ha!
02:31:20 <zero> AlpacaPrince: run ghcup tui
02:31:51 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
02:31:52 <AlpacaPrince> Yes, only I already had it installed, so it felt more like updating to me- though computers don't share my sentiment of feelings.
02:32:00 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
02:32:21 <AlpacaPrince> The point I'm getting at, is that my tree lacks app >> main.hs
02:32:24 jpds joins (~jpds@gateway/tor-sasl/jpds)
02:32:33 <zero> AlpacaPrince: it can be confusing having multiple installations of ghc or whatever in different places
02:33:11 <AlpacaPrince> ...after running :
02:33:11 <AlpacaPrince> cabal init -n
02:33:12 <AlpacaPrince> ...that is
02:33:18 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 276 seconds)
02:34:03 azimut joins (~azimut@gateway/tor-sasl/azimut)
02:35:17 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
02:36:33 <euouae> Are you saying that `cabal init` doesn't generate an app/Main.hs for you?
02:36:58 ksqsf joins (~user@134.209.106.31)
02:37:02 <AlpacaPrince> Yes.
02:37:29 <EvanR> I think I've had that happen
02:37:29 <zero> what's the -n flag?
02:37:50 <euouae> zero just use `cabal init --help` and see for yourself
02:38:10 <AlpacaPrince> Also, I'm uncertain why ghcup prompts me to use `cabal init` when it is an overly complicated way to just save a text.hs and run that instead?
02:38:12 <euouae> AlpacaPrince can you pastebin an example invocation? `mkdir foo; cd foo; cabal init; ls *`
02:38:38 shailangsa joins (~shailangs@host109-159-108-207.range109-159.btcentralplus.com)
02:38:45 <zero> oops i was looking in the wrong place
02:38:54 <euouae> Use https://paste.tomsmeding.com to paste
02:42:00 × ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds)
02:42:36 <AlpacaPrince> euouae what do you want me to paste into that?
02:43:02 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
02:43:03 <euouae> AlpacaPrince the output of the commands I wrote above
02:43:52 ksqsf joins (~user@134.209.106.31)
02:47:10 <AlpacaPrince> it says that foo is already in use by another package on Hackage
02:47:29 <euouae> Please paste the output of the commands in the link
02:47:47 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
02:48:07 fef joins (~thedawn@user/thedawn)
02:48:25 khumba joins (~khumba@user/khumba)
02:49:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
02:50:49 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:50:51 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 276 seconds)
02:51:00 danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
02:52:05 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:52:10 <AlpacaPrince> I did
02:52:25 <euouae> and now you can share the generated link here
02:53:22 <AlpacaPrince> https://paste.tomsmeding.com/DceZ4mht/raw/1
02:53:54 <euouae> That's not the command I told you to run
02:53:54 × waleee quits (~waleee@h-98-128-229-110.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
02:54:46 <AlpacaPrince> euouae 18:38:13
02:54:47 <AlpacaPrince> AlpacaPrince can you pastebin an example invocation? `mkdir foo; cd foo; cabal init; ls *`
02:55:02 × xff0x quits (~xff0x@port-92-195-26-37.dynamic.as20676.net) (Ping timeout: 256 seconds)
02:55:04 <euouae> There is no need to repeat messages on IRC
02:55:21 <AlpacaPrince> good point.
02:56:20 <AlpacaPrince> this command?cabal init --help
02:56:38 <euouae> You used the -n flag and I did not include ti
02:56:44 xff0x joins (~xff0x@2001:1a81:5290:1c00:7707:2a36:9641:195d)
02:57:19 <euouae> In any case, you may delete the `foo` directory and instead do `mkdir foo665; cd foo665; cabal init; ls *` and paste the results as before in the website linked
02:58:54 <AlpacaPrince> oh I see, I tried that too (without -n) and got:
02:58:55 <AlpacaPrince> https://paste.tomsmeding.com/tnaJZ5pW/raw/1
02:59:46 <int-e> pfffffffft, read the error
03:01:51 <AlpacaPrince> Using cabal init seems like it over complicates learning to write haskell code. I don't want to blindly brush `cabal init` off as being "useless to me" before I know for sure that it is.
03:01:51 <AlpacaPrince> Basically I'm just going through "learn you a haskell for great good" and for the first four chapters I was just making new .hs files for each chapter to practice code for easy execution, now I'm prompted by haskell  (after reinstallation, in hopes to be able to download Euterpea and HSoM libraries) to try this `cabal init' method that seems
03:01:52 <AlpacaPrince> overly complicated with no benefit. Should I just continue with my clunky method of making .hs files and practicing haskell that way, or is cabal init something I should be using now?
03:02:07 <int-e> oh, it's just a warning
03:02:58 <int-e> what's the version of that cabal-install?
03:03:13 <monochrom> Most favourite toy Haskell package name: foo. Most favourite toy Unix program name: test.
03:04:08 <euouae> AlpacaPrince if you plan to share a program with the world at some point, you need to do it through a distribution channel; those channels in the programming world are typically utilizing package managers and servers that packages may be uploaded/downloaded to/from.
03:05:22 <euouae> AlpacaPrince `Cabal is a system for building and packaging Haskell libraries and programs.` (from haskell.org/cabal) and https://hackage.haskell.org/ is the server where packages may be downloaded from and uploaded to
03:06:09 <euouae> AlpacaPrince the fun of learning programming doesn't compare to the "fun" of learning how to share your code, and is obviously a more advanced topic. So you can be the judge of when it is necessary to learn these things.
03:06:38 <int-e> (Works for me with cabal-install 3.6.2.0 on Linux.)
03:07:38 <AlpacaPrince> >> cabal -V
03:07:39 <AlpacaPrince> cabal-install version 3.6.2.0
03:07:39 <AlpacaPrince> compiled using version 3.6.2.0 of the Cabal library
03:09:47 <AlpacaPrince> thanks euouae, that makes it clear that I currently don't need the cabal service (despite it not making the app directory and main.hs like the main tutorial said it should).
03:10:07 <euouae> It's because you're using a name that is already in use
03:10:35 <euouae> but since you don't need cabal, that's good.
03:10:58 <int-e> Ah, no, it doesn't work for me. I suck at testing, evidently.
03:11:24 <int-e> So that name clash is a fatal error.
03:12:02 <int-e> well, that is ridiculous
03:12:31 <AlpacaPrince> hmm, yeah I don't need it so I don't want to occupy available public names for the sake of practice.... but maybe now is the time to acquire AlpacaPrince while it's available...
03:13:30 <AlpacaPrince> (...dry humor)
03:13:51 <int-e> the thing is, it's not really difficult to rename a package after the fact. a bit annoying (you have to both rename and edit the .cabal file, and possibly other packages if you depend on it yourself)
03:13:56 <euouae> int-e My main beef with languages and package managers is that there's no security framework in place for updates
03:14:29 <euouae> so hijacking an account and pushing malware is possible in python, haskell, rust etc
03:14:53 <AlpacaPrince> you mean false updates could happen?
03:14:56 <int-e> Oh, I'm missing that the hackage package will conflict with build planning.
03:14:58 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
03:15:38 <monochrom> Yeah, suppose you depend on xxx, and xxx depends on foo. Um, which foo again? :)
03:15:50 <euouae> AlpacaPrince If you're interested in the topic, see https://theupdateframework.io/
03:16:27 <int-e> So you wouldn't be able to depend on it anyway. Now who was the evil person to upload a package with that name... dons? :-/
03:16:37 <euouae> I'm somewhat interested but I'm just learning about cryptography and related things, so I don't know how much I can involve myself in this stuff. But it's notable that the above languages lack mechanisms to ensure the esecurity of the users
03:16:56 <int-e> (it's funny that uploader != author here)
03:17:12 <monochrom> Perhaps someone should create https://hackage.haskell.org/package/test , too >:)
03:18:03 <euouae> cybersquatting is fun and games until you can't compile your package
03:18:03 <int-e> and bar and fred and barney and xyzzy and frotz and... uh... I forget what others
03:18:13 <euouae> quux
03:18:40 <monochrom> Paper soccer. Interesting.
03:18:46 <AlpacaPrince> so in layman terms, is cabal a pipeline for sharing and updating programs to publicly executable locations?
03:18:56 Axma99203 is now known as Axman6
03:19:24 × td_ quits (~td@muedsl-82-207-238-131.citykom.de) (Ping timeout: 256 seconds)
03:20:00 <euouae> AlpacaPrince they're called software repositories and they contain various peoples' programming projects. There's some automation for quickly downloading them and so on
03:20:56 td_ joins (~td@94.134.91.68)
03:20:57 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot)
03:21:22 <monochrom> No, Hackage is the software repository.
03:21:47 <int-e> Ah, http://www.catb.org/jargon/html/M/metasyntactic-variable.html looks like a proper late 90s website.
03:25:20 <int-e> Oh I didn't remember the jab at Python in there :)
03:26:57 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
03:28:00 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:28:00 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
03:28:00 wroathe joins (~wroathe@user/wroathe)
03:28:33 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
03:28:38 waleee joins (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4)
03:29:38 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:32:13 chozorho joins (~chozorho@2601:146:300:c30::d1a0)
03:32:32 <AlpacaPrince> do you know how to exit this situation:
03:32:32 <AlpacaPrince> >> cd "folder name with spaces               --forgot to add closing parentheses
03:32:33 <AlpacaPrince> >                                                               -- now we are in nebulous single > territory...
03:32:48 <AlpacaPrince> without closing terminal...
03:33:02 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
03:33:03 lavaman joins (~lavaman@98.38.249.169)
03:33:04 <EvanR> you could try control C
03:33:22 <EvanR> or Escape
03:33:22 <AlpacaPrince> That is the solution, thank you
03:33:41 <AlpacaPrince> what is the point of:
03:33:41 <AlpacaPrince> >
03:34:00 <chozorho> It probably indicates that they're quoting somebody else's post
03:34:09 <chozorho> wait
03:34:14 <chozorho> maybe not
03:34:18 <chozorho> forgive me, I'm new
03:34:19 <AlpacaPrince> I mean inside of bash
03:34:23 <dsal> > print "It's OK"
03:34:24 <lambdabot> <IO ()>
03:34:26 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
03:34:29 <chozorho> ohh that's redirected output
03:34:44 <chozorho> like... if instead of outputting stuff to stdout, you can redirect it to a file
03:34:56 <euouae> bash is off topic and your answer is wrong chozorho
03:34:58 <AlpacaPrince> is <|O ()> and emoji?
03:35:00 <chozorho> you can also use `tee` to -
03:35:02 <AlpacaPrince> an*
03:35:28 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
03:35:45 <chozorho> erm... I don't see how it's wrong but ok
03:35:48 <EvanR> the shell... big topic
03:36:20 <monochrom> No one reads the question, eh?
03:37:07 <monochrom> In bash, the prompt > means bash thinks your previous line didn't finish your command, it now invites you to go on.
03:37:08 <EvanR> AlpacaPrince, does your font really make <IO ()> look like <|O ()>
03:37:10 <euouae> chozorho well it's wrong because the original issue was about multiline input, but it's also wrong that you participate in offtopic discussion... the original issue simply should not had been brought up here and the proper response is to point out that it is off topic
03:37:32 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
03:37:54 <EvanR> shit the topic police showed up, run
03:38:10 euouae parts (~euouae@user/euouae) ( )
03:39:31 <AlpacaPrince> Monochrom that is enlightening, thank you. I'll be more cognizant of topic.
03:40:03 <AlpacaPrince> EvanR, yes.
03:40:37 × jespada quits (~jespada@87.74.33.157) (Ping timeout: 240 seconds)
03:40:37 <EvanR> you should fix your font, since I in IO is a capital I
03:40:38 <monochrom> No worries, it was a fair question in the midst of using the "cd sakldjf; cabal init" idiom.
03:40:41 <EvanR> um... Eye
03:40:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:40:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
03:40:48 wroathe joins (~wroathe@user/wroathe)
03:40:56 fef joins (~thedawn@user/thedawn)
03:41:30 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
03:42:34 <AlpacaPrince> Well it is the brow of the emoji, but I now get your point. capital i, not a vertical bar.
03:43:06 jespada joins (~jespada@87.74.33.157)
03:43:06 <EvanR> also personally I didn't see any emoji
03:43:28 <EvanR> unlike this one 😎
03:43:52 <EvanR> some irc client friction going on I presume
03:45:51 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
03:53:50 Erutuon joins (~Erutuon@user/erutuon)
03:56:08 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
03:56:09 qrpnxz joins (abc4f95c31@user/qrpnxz)
03:56:20 × xff0x quits (~xff0x@2001:1a81:5290:1c00:7707:2a36:9641:195d) (Ping timeout: 268 seconds)
03:56:50 xff0x joins (~xff0x@2001:1a81:5290:1c00:7789:5df4:4cdc:7899)
03:58:53 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
03:58:53 qrpnxz joins (abc4f95c31@user/qrpnxz)
04:01:32 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds)
04:04:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
04:05:06 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
04:05:06 qrpnxz joins (abc4f95c31@user/qrpnxz)
04:14:56 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
04:17:19 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
04:17:57 notzmv joins (~zmv@user/notzmv)
04:21:03 jinsun__ joins (~quassel@user/jinsun)
04:21:20 × jinsun__ quits (~quassel@user/jinsun) (Client Quit)
04:21:37 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
04:22:57 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 240 seconds)
04:24:42 × yin quits (~yin@user/zero) (Ping timeout: 268 seconds)
04:26:13 deadmarshal joins (~deadmarsh@95.38.229.128)
04:26:14 × ksqsf quits (~user@134.209.106.31) (Ping timeout: 252 seconds)
04:29:05 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
04:29:15 <AlpacaPrince> take 2 [1,13..]
04:30:19 <pfurla-matrix> [1,13]
04:30:23 <AlpacaPrince> > take 2 [1,13..]
04:30:24 <lambdabot> [1,13]
04:33:58 <ChaiTRex> Is there some nice way to do `filter ((== 8) . sum) . sequence` on a [[Word]] (i.e., everything is nonnegative) such that it short circuits lists that begin with a sum that's too high. Like if the elements produced by sequence are [1, 9, ...], when it sees 1, 9 are the first elements, it should stop processing elements that start with 1, 9 and go to some other starting two elements?
04:34:39 <ChaiTRex> I could write a function to do it, but I was wondering if there's something built in that I don't know about.
04:37:04 <EvanR> how would you ever write a function like that that will work from within the filter callback
04:37:07 <EvanR> even*
04:37:28 x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
04:37:56 <EvanR> you mean it looks ahead before you even sum
04:38:30 <ChaiTRex> I don't mean it has to use sequence or filter.
04:39:27 <ChaiTRex> I mean to replace that with something that short circuits instead. It would look ahead. If the first element in the [Word]s produced by sequence is higher than 8, it throws away that first element.
04:39:43 <ChaiTRex> If the first two elements sum to higher than 8, it goes to the next second element.
04:39:50 × obfusk quits (~quassel@a82-161-150-56.adsl.xs4all.nl) (Quit: No Ping reply in 180 seconds.)
04:39:59 <ChaiTRex> Let me see if I can write the function.
04:41:08 obfusk joins (~quassel@a82-161-150-56.adsl.xs4all.nl)
04:46:16 <int-e> > map reverse $ filter ((== 8) . sum) . foldM (\b -> filter ((<= 8) . sum) . fmap (:b)) [] $ [[0,1,2],[0,2,4],[0,3,9]]
04:46:17 <lambdabot> [[1,4,3]]
04:48:49 <EvanR> you can also just stick another filter in front
04:48:56 <int-e> I don't know. I tend to write manual recursions for these things
04:49:27 <int-e> which make it easier to stick in things like partial sums
04:50:18 <int-e> also, for a fixed sum in particular I'd probably do some meet-in-the-middle stuff.
04:50:35 <int-e> (if performance of that enumeration is critical)
04:50:54 sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909)
04:54:57 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds)
04:55:13 deadmarshal joins (~deadmarsh@95.38.229.128)
04:56:37 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
04:57:13 yauhsien joins (~yauhsien@2402:7500:5e5:1e81:bd32:4029:4cc:7e5a)
04:58:53 <AlpacaPrince> Anyone here have experience with Euterpea or HSoM?
05:00:11 <AlpacaPrince> As a new user to Haskell, I'm trying to figure out if these libraries are evening functioning/operational.
05:09:17 × yauhsien quits (~yauhsien@2402:7500:5e5:1e81:bd32:4029:4cc:7e5a) (Ping timeout: 240 seconds)
05:11:06 × acidsys quits (~LSD@2.lsd.systems) (Excess Flood)
05:11:40 acidsys joins (~LSD@2.lsd.systems)
05:14:42 <ChaiTRex> int-e: Thanks! I was able to reduce the partial sum repeated calculations.
05:14:45 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:14:50 <ChaiTRex> > map (reverse . tail) . filter ((== 8) . head) . foldM (\ (sum:ys) xs -> filter ((<= 8) . head) . fmap (\ x -> (sum + x):x:ys) $ xs) [0] $ [[0,1,2],[0,2,4],[0,3,9]]
05:14:51 <lambdabot> [[1,4,3]]
05:16:35 <Square> could you write a standalone deriving statement for all members of a type family?
05:16:41 analognoise joins (~analognoi@185.202.221.238)
05:19:03 × fef quits (~thedawn@user/thedawn) (Ping timeout: 276 seconds)
05:25:32 × x_kuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer)
05:25:32 × statusbot4 quits (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Read error: Connection reset by peer)
05:25:40 statusbot joins (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com)
05:26:20 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds)
05:28:39 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
05:28:43 <lyxia> uh, you might want to be more specific because deriving is commonly associated with data, not type families.
05:30:54 fizbin_ joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
05:31:35 <Square> lyxia, Atm, i feel unable to be more specific. Struggling with create a Show-like class and make it fly using generics and I somehow end up needing to specify things for the URec data family. =D
05:31:45 <Square> creating*
05:31:49 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Read error: Connection reset by peer)
05:32:22 <Square> specify things = provide instances
05:33:08 pfurla_ joins (~pfurla@2804:18:5822:8094:5d30:a5f7:fbaf:167c)
05:33:08 × pfurla quits (~pfurla@189.60.63.81) (Ping timeout: 256 seconds)
05:33:24 × analognoise quits (~analognoi@185.202.221.238) (Quit: Leaving)
05:34:16 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
05:38:07 analognoise joins (~analognoi@185.202.221.238)
05:39:45 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
05:45:45 <int-e> ChaiTRex: oh abusing (:) as an ordered pair, nasty :P
05:47:51 × xff0x quits (~xff0x@2001:1a81:5290:1c00:7789:5df4:4cdc:7899) (Ping timeout: 245 seconds)
05:49:04 xff0x joins (~xff0x@2001:1a81:5290:1c00:9996:3caa:8169:8a61)
05:50:01 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
05:51:44 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
05:51:45 qrpnxz joins (abc4f95c31@user/qrpnxz)
05:52:16 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed)
05:52:25 qrpnxz joins (abc4f95c31@user/qrpnxz)
05:53:39 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
05:53:39 emf joins (~emf@2620:10d:c091:480::1:3408)
05:53:43 pfurla joins (~pfurla@2804:14d:5c5a:9a78:1daa:99f1:8d08:c258)
05:53:53 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
05:54:59 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:55:15 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
05:55:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
05:56:43 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
05:56:45 qrpnxz joins (abc4f95c31@user/qrpnxz)
05:57:14 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed)
05:57:16 pfurla__ joins (~pfurla@2804:18:5822:8094:2d64:e7e1:c381:269f)
05:57:17 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
05:57:18 qrpnxz joins (abc4f95c31@user/qrpnxz)
05:57:43 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
05:57:44 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
05:57:49 × pfurla_ quits (~pfurla@2804:18:5822:8094:5d30:a5f7:fbaf:167c) (Ping timeout: 268 seconds)
05:58:37 × pfurla quits (~pfurla@2804:14d:5c5a:9a78:1daa:99f1:8d08:c258) (Ping timeout: 240 seconds)
05:59:17 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
05:59:37 × emf quits (~emf@2620:10d:c091:480::1:3408) (Ping timeout: 240 seconds)
05:59:51 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:00:03 deadmarshal joins (~deadmarsh@95.38.229.128)
06:00:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:01:26 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:01:32 × pfurla__ quits (~pfurla@2804:18:5822:8094:2d64:e7e1:c381:269f) (Ping timeout: 240 seconds)
06:01:57 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:03:32 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:03:49 pfurla joins (~pfurla@2804:14d:5c5a:9a78:74e3:e9be:881c:edd5)
06:03:59 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
06:04:03 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:04:04 dibblego joins (~dibblego@122-199-1-30.ip4.superloop.com)
06:04:04 × dibblego quits (~dibblego@122-199-1-30.ip4.superloop.com) (Changing host)
06:04:04 dibblego joins (~dibblego@haskell/developer/dibblego)
06:05:36 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:06:12 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:07:45 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:08:22 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:09:56 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:10:15 × phma quits (phma@2001:5b0:211f:1938:f16a:3063:a09d:1c4c) (Read error: Connection reset by peer)
06:10:17 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:10:35 ksqsf joins (~user@134.209.106.31)
06:11:09 phma joins (~phma@2001:5b0:210d:e448:bd04:4091:a4d4:4fae)
06:11:15 dirtcastle joins (~dirtcastl@103.43.203.229)
06:11:54 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:12:21 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:13:55 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:14:20 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:15:56 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:16:24 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:17:59 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:18:30 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:20:04 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:20:37 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:21:39 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
06:22:11 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:22:36 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:24:10 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:24:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:26:15 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:26:45 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:27:17 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
06:28:21 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:28:48 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:30:24 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:30:45 × fizbin_ quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
06:30:51 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:32:29 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:32:52 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:33:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
06:34:28 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
06:34:32 × dirtcastle quits (~dirtcastl@103.43.203.229) (Remote host closed the connection)
06:35:04 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
06:38:14 mbuf joins (~Shakthi@171.61.232.157)
06:38:19 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
06:38:32 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds)
06:39:12 Morrow joins (~quassel@bzq-110-168-31-106.red.bezeqint.net)
06:39:47 × khumba quits (~khumba@user/khumba) ()
06:40:51 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:42:14 × shailangsa quits (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) (Ping timeout: 268 seconds)
06:42:20 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
06:45:50 zaquest joins (~notzaques@5.130.79.72)
06:50:22 Erutuon joins (~Erutuon@user/erutuon)
06:50:57 <AlpacaPrince> > xs = [(1,1), (1,2), (1,3)]
06:50:57 <AlpacaPrince> >sumxs = [a+b | (a,b) <- xs]
06:50:58 <lambdabot> <hint>:1:4: error: parse error on input ‘=’
06:52:05 <AlpacaPrince> I suppose lambda bot cannot have user defined variables...
06:52:23 <AlpacaPrince> > foo = 7
06:52:24 <AlpacaPrince> > foo
06:52:25 <lambdabot> <hint>:1:5: error: parse error on input ‘=’
06:52:26 <lambdabot> error:
06:52:26 <lambdabot> • Variable not in scope: foo
06:52:26 <lambdabot> • Perhaps you meant ‘for’ (imported from Data.Traversable)
06:54:41 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
06:56:54 <AlpacaPrince> regarding pattern matching in list comprehension, "Learn you a haskell for great good" says:
06:56:55 <AlpacaPrince> "Should a pattern match fail, it will just move on to the next element."
06:56:55 <AlpacaPrince> so I try to put it to the test by putting a pair of strings in a list of pairs, and the module does not even load.
06:57:15 <AlpacaPrince> ghci> let xs = [(1,3), (4,3), (2,4), (5,3), (5,6), (3,1)]
06:57:16 <AlpacaPrince> ghci> [a+b | (a,b) <- xs]
06:57:16 <AlpacaPrince> [4,7,6,8,11,4]
06:58:37 <AlpacaPrince> that is the code that does work, but replace one pair from xs with (Char, Char) or even (Char, Int) and it does not run. It seems like it should just be a False pair and get skipped.
06:59:20 <pavonia> The elements all still have to have the same type
06:59:59 × puke quits (~puke@user/puke) (Quit: puke)
07:00:04 <pavonia> But try something like [ (a, 3) | (a, 3) <- xs ]
07:01:33 × ksqsf quits (~user@134.209.106.31) (Ping timeout: 256 seconds)
07:01:41 puke joins (~puke@user/puke)
07:02:00 pfurla_ joins (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf)
07:03:14 <int-e> does this exist somewhere in base? xs <||> ys = if null xs then xs else ys
07:03:34 <int-e> uh
07:03:49 <int-e> I swapped xs and ys in the results: xs <||> ys = if null xs then ys else xs
07:05:37 × pfurla quits (~pfurla@2804:14d:5c5a:9a78:74e3:e9be:881c:edd5) (Ping timeout: 240 seconds)
07:08:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:09:29 <AlpacaPrince> pavonia yes this seems to produce the effect the author indicates
07:12:15 <AlpacaPrince> int-e I'm not sure how to even test your code. I did type it into ghci and it gave no error, but it also produced no return.
07:12:57 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
07:13:56 deadmarshal joins (~deadmarsh@95.38.229.128)
07:15:09 <int-e> AlpacaPrince: that wasn't for you. but when you typed that into ghci, it defined an infix operator <||>, so for example :t (<||>) will print its type.
07:15:40 <g> int-e: in readp it's like <++, biased choice
07:15:57 <g> I think LogicT has an operator for it
07:16:09 <int-e> > let xs <||> ys = if null xs then ys else xs in ([] <||> [1,2,3], [42] <||> [1,2,3])
07:16:11 <lambdabot> ([1,2,3],[42])
07:16:38 jinsun joins (~quassel@user/jinsun)
07:18:17 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds)
07:19:05 phma_ joins (~phma@2001:5b0:210d:e448:bd04:4091:a4d4:4fae)
07:19:31 <int-e> Oh I guess I could cobble it together with Data.Monoid.First
07:19:50 × phma quits (~phma@2001:5b0:210d:e448:bd04:4091:a4d4:4fae) (Ping timeout: 260 seconds)
07:20:12 shailangsa_ joins (~shailangs@host109-159-108-207.range109-159.btcentralplus.com)
07:21:56 gehmehgeh joins (~user@user/gehmehgeh)
07:21:57 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
07:23:36 deadmarshal joins (~deadmarsh@95.38.229.128)
07:24:46 × deech` quits (~user@024-217-244-075.res.spectrum.com) (Ping timeout: 256 seconds)
07:27:08 deech` joins (~user@024-217-244-075.res.spectrum.com)
07:28:41 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
07:28:58 img joins (~img@user/img)
07:30:13 <dsal> I'm always surprised when <|> or <!> don't do that.
07:32:05 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
07:32:29 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
07:34:47 lavaman joins (~lavaman@98.38.249.169)
07:37:15 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds)
07:38:57 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
07:41:21 × shailangsa_ quits (~shailangs@host109-159-108-207.range109-159.btcentralplus.com) ()
07:41:25 × perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 268 seconds)
07:41:39 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
07:42:08 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
07:42:42 × sagax quits (~sagax_nb@user/sagax) (Ping timeout: 260 seconds)
07:44:28 deadmarshal joins (~deadmarsh@95.38.229.128)
07:45:40 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:84c9:5514:9bd3:b2f5) (Remote host closed the connection)
07:56:52 <int-e> > _2 (\x -> [x, x+1]) (1,2,3)
07:56:54 <lambdabot> [(1,2,3),(1,3,3)]
07:59:58 × pfurla_ quits (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) (Ping timeout: 260 seconds)
08:02:33 chomwitt joins (~chomwitt@ppp-2-85-245-134.home.otenet.gr)
08:03:41 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
08:05:41 perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
08:08:35 jonathanx joins (~jonathan@217-210-129-139-no2450.tbcn.telia.com)
08:11:13 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection)
08:11:59 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
08:14:17 pfurla joins (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf)
08:17:47 × jonathanx quits (~jonathan@217-210-129-139-no2450.tbcn.telia.com) (Ping timeout: 252 seconds)
08:21:19 shailangsa joins (~shailangs@host109-159-108-207.range109-159.btcentralplus.com)
08:21:52 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
08:21:57 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection)
08:27:45 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
08:31:02 × darchitect quits (~darchitec@2a00:23c6:3584:df00:7dec:bf13:8fa:748c) (Ping timeout: 240 seconds)
08:31:16 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
08:35:04 × pfurla quits (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) (Quit: gone to sleep. ZZZzzz…)
08:35:17 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 240 seconds)
08:45:51 neurocyte0132889 joins (~neurocyte@IP-045014189127.dynamic.medianet-world.de)
08:45:51 × neurocyte0132889 quits (~neurocyte@IP-045014189127.dynamic.medianet-world.de) (Changing host)
08:45:51 neurocyte0132889 joins (~neurocyte@user/neurocyte)
08:46:04 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4)
08:46:09 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:46:49 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
08:48:17 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds)
08:50:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds)
08:51:22 max22- joins (~maxime@2a01cb08833598002412bf121caf815d.ipv6.abo.wanadoo.fr)
08:51:28 × chozorho quits (~chozorho@2601:146:300:c30::d1a0) (Quit: WeeChat 3.0)
08:57:53 darchitect joins (~darchitec@82-132-213-95.dab.02.net)
08:59:47 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
09:01:35 × danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 268 seconds)
09:03:57 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 256 seconds)
09:05:38 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
09:06:29 cosimone joins (~user@93-47-230-208.ip115.fastwebnet.it)
09:08:12 neurocyte0132889 joins (~neurocyte@IP-045014189127.dynamic.medianet-world.de)
09:08:12 × neurocyte0132889 quits (~neurocyte@IP-045014189127.dynamic.medianet-world.de) (Changing host)
09:08:12 neurocyte0132889 joins (~neurocyte@user/neurocyte)
09:09:37 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 268 seconds)
09:11:01 pfurla joins (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf)
09:12:13 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
09:13:02 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
09:13:02 dirtcastle joins (~dirtcastl@103.43.203.229)
09:14:37 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
09:15:02 <AlpacaPrince> is there a way to convert a pair into a list?
09:15:23 <AlpacaPrince> (1,3) into [1,3]
09:16:06 danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
09:16:47 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
09:17:49 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
09:17:50 allbery_b joins (~geekosaur@xmonad/geekosaur)
09:17:53 allbery_b is now known as geekosaur
09:20:17 × danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds)
09:21:19 danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
09:22:32 deadmarshal joins (~deadmarsh@95.38.229.128)
09:22:57 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection)
09:27:31 acidjnk joins (~acidjnk@p200300d0c7271e256ce23fbe5bf2eea3.dip0.t-ipconnect.de)
09:28:53 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 256 seconds)
09:29:06 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
09:31:02 Codaraxis joins (~Codaraxis@user/codaraxis)
09:32:29 <carbolymer> AlpacaPrince: Not really, unless you mean type level list, then it should
09:32:34 Bartol joins (~Bartol@user/Bartol)
09:32:59 <carbolymer> AlpacaPrince: you'd need to make sure that all tuple elements are of the same type
09:33:38 <carbolymer> AlpacaPrince: well... I assumed you don't want `[fst pair, snd pair`
09:33:44 <carbolymer> ]
09:34:17 × wolfshappen quits (~waff@irc.furworks.de) (Ping timeout: 240 seconds)
09:34:57 × mvk quits (~mvk@2607:fea8:5cdd:f000::917a) (Ping timeout: 240 seconds)
09:35:14 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot)
09:35:54 <AlpacaPrince> carbolymer: that would probably work. I'm trying to pattern match with lists comprehension.
09:36:31 <AlpacaPrince> carbolymer: basically trying to use x:xs in the case where xs is a list of pairs
09:36:46 nckx is now known as nckxmas
09:43:13 × dirtcastle quits (~dirtcastl@103.43.203.229) (Quit: Quit)
09:43:35 Erutuon joins (~Erutuon@user/erutuon)
09:44:05 <AlpacaPrince> > zip [1..] [10,20..90]
09:44:06 <lambdabot> [(1,10),(2,20),(3,30),(4,40),(5,50),(6,60),(7,70),(8,80),(9,90)]
09:44:28 <AlpacaPrince> into:
09:44:29 <AlpacaPrince> > [[fst a, snd a] | a <- zip [1..] [10,20..90]]
09:44:30 <lambdabot> [[1,10],[2,20],[3,30],[4,40],[5,50],[6,60],[7,70],[8,80],[9,90]]
09:46:22 × danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds)
09:49:50 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
10:03:01 × sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 240 seconds)
10:05:20 <int-e> > zipWith (\a b -> [a,b]) [1..] "Hello"
10:05:21 <lambdabot> error:
10:05:21 <lambdabot> • No instance for (Num Char) arising from the literal ‘1’
10:05:21 <lambdabot> • In the expression: 1
10:05:22 <int-e> :P
10:05:28 <int-e> > zipWith (\a b -> [a,b]) [1..] [2,3,5]
10:05:29 <lambdabot> [[1,2],[2,3],[3,5]]
10:11:51 irfan joins (~irfan@user/irfan)
10:15:12 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
10:16:22 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection)
10:18:03 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
10:19:16 <xsperry> @pl (\a b -> [a,b])
10:19:16 <lambdabot> (. return) . (:)
10:19:22 <xsperry> ^_^
10:19:24 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection)
10:19:38 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
10:20:31 <AlpacaPrince> From Learn you a haskell for great good:
10:20:31 <AlpacaPrince> "If you want to bind, say, the first three elements to variables and the rest of the list to another variable, you can use something like x:y:z:zs. It will only match against lists that have three elements or more."
10:20:44 <AlpacaPrince> what is a simple example of this?
10:21:01 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
10:21:01 Lord_of_Life_ is now known as Lord_of_Life
10:21:21 Tuplanolla joins (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi)
10:22:01 <Taneb> > let shuffleFirstThree (x:y:z:zs) = (z:x:y:zs); shuffleFirstThree zs = zs in shuffleFirstThree "lpAacaPrince"
10:22:02 <lambdabot> "AlpacaPrince"
10:22:58 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection)
10:23:22 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
10:28:48 danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
10:29:00 <AlpacaPrince> Taneb
10:29:01 <AlpacaPrince> *Main> zs = [7,8,9]
10:29:01 <AlpacaPrince> *Main> shuffleFirstThree zs = zs in shuffleFirstThree
10:29:02 <AlpacaPrince> <interactive>:110:27: error: parse error on input ‘in’
10:29:36 <geekosaur> "let" is not optional if you're using "in"
10:30:24 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
10:30:25 <AlpacaPrince> I first did:
10:30:26 <AlpacaPrince> *Main> shuffleFirstThree (2:4:6:[7,8,9])
10:30:26 <AlpacaPrince> [6,2,4,7,8,9]
10:30:35 <AlpacaPrince> *Main> let shuffleFirstThree (x:y:z:zs) = (z:x:y:zs)
10:30:56 <AlpacaPrince> let command was first in my order of operations
10:31:57 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds)
10:33:33 <xsperry> either write that definition in a file, where you can use newlines, or copy/paste entire Taneb's line to ghci
10:33:50 <geekosaur> "let <bindings> in <expression>" is an expression, not a command that can be split up like that
10:34:16 <xsperry> this works too:
10:34:24 <xsperry> GHCI> let shuffleFirstThree (x:y:z:zs) = (z:x:y:zs); shuffleFirstThree zs = zs
10:34:29 <xsperry> GHCI> shuffleFirstThree [1,2,3,4]
10:35:17 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
10:38:32 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
10:38:47 <AlpacaPrince> I see now, thanks.
10:38:57 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:39:16 <AlpacaPrince> The part that i'm focusing on is:
10:39:16 <AlpacaPrince> "x:y:z:zs. It will only match against lists that have three elements or more."
10:39:30 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:40:15 kranius joins (~kranius@user/kranius)
10:40:56 <geekosaur> % shuffleFirstThree (x:y:z:xs) = (z:x:y:zs)
10:40:56 <yahb> geekosaur: ; <interactive>:220:39: error:; * Variable not in scope: zs :: [a]; * Perhaps you meant one of these: `z' (line 220), `xs' (line 220), `s' (line 206)
10:41:04 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:41:04 <geekosaur> % shuffleFirstThree (x:y:z:xs) = (z:x:y:xs)
10:41:04 <yahb> geekosaur:
10:41:18 <geekosaur> % shuffleFirstThree [1,2]
10:41:18 <yahb> geekosaur: *** Exception: <interactive>:221:1-41: Non-exhaustive patterns in function shuffleFirstThree
10:41:39 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:42:11 <geekosaur> to understand this, you have to understand that a list like [1,2,3] is internally represented as (1:2:3:[])
10:43:01 <geekosaur> > 1 : [2,3]
10:43:02 <lambdabot> [1,2,3]
10:43:13 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:43:48 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection)
10:44:54 <geekosaur> > (1:2:3:[])
10:44:56 <lambdabot> [1,2,3]
10:45:00 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
10:45:05 <xsperry> AlpacaPrince, do you understand this function? isZero 0 = True; isZero _ = False
10:45:24 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:45:52 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:47:29 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:47:57 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:48:05 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4)
10:48:08 <AlpacaPrince> I see they are both Bool
10:48:36 <AlpacaPrince> They seem like a long way to write True and False
10:48:52 <AlpacaPrince> xsperry
10:49:32 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:50:07 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:51:24 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:51:41 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:52:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds)
10:52:18 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:53:52 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:54:25 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:54:39 <geekosaur> well, except (a) it's "backwards" (b) you cannot use a number in place of a Bool in Haskell
10:54:58 <geekosaur> > if 1 then "a" else "b" -- type error
10:54:59 <lambdabot> error:
10:54:59 <lambdabot> • No instance for (Num Bool) arising from the literal ‘1’
10:54:59 <lambdabot> • In the expression: 1
10:55:34 <geekosaur> (numbers are handled specially in Haskell so you get a slightly weird error)
10:56:01 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:56:34 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:58:11 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
10:58:24 deadmarshal joins (~deadmarsh@95.38.229.128)
10:58:43 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
10:59:22 × Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 268 seconds)
11:00:18 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:00:46 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:01:52 × pfurla quits (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) (Quit: gone to sleep. ZZZzzz…)
11:02:22 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:02:57 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:03:18 × m1dnight quits (~christoph@christophe.dev) (Quit: WeeChat 3.1)
11:04:31 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:04:37 m1dnight joins (~christoph@christophe.dev)
11:05:05 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:05:45 <xsperry> AlpacaPrince, it is a single function, not two functions. top definition is executed only if passed argument is 0, second matches everything else. pattern matching is checked from top to bottom
11:06:41 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:07:09 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:07:24 <xsperry> s/executed/evaluated
11:08:04 zardoz2 joins (~bc8147f2@cerf.good1.com)
11:08:32 zer0bitz joins (~zer0bitz@2001:2003:f444:a000:e954:6a22:3202:5b23)
11:08:42 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:09:17 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:10:46 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:10:51 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:11:27 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:12:00 <AlpacaPrince> xsperry, I see, it is only false if order switches.
11:13:02 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:13:17 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
11:13:39 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection)
11:14:15 <AlpacaPrince> I was expecting 1==True would evaluate True.
11:15:15 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:15:16 <geekosaur> it's possible to arrange for that, but it just makes for more silent type mismatches without adding any useful functionality so we don't
11:15:43 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:17:16 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:17:50 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:18:34 <AlpacaPrince> is isZero 0=True; isZero_ = False  useful outside of being instructional?
11:18:40 <zardoz2> AlpacaPrince, yes isZero _ matches every value, so isZero 0 = True is never reached
11:18:49 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 256 seconds)
11:19:26 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:19:34 <zardoz2> the concept is. pattern matching is used all the time in haskell
11:19:53 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:21:11 ProfSimm joins (~ProfSimm@87.227.196.109)
11:21:27 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:21:30 yin joins (~yin@user/zero)
11:21:58 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:23:32 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:23:37 <geekosaur> note the space between "isZero" and "_"
11:23:48 <geekosaur> the "_" is a wildcard pattern that matches anything
11:23:51 <AlpacaPrince> geekosaur it was helpful to see (1:2:3:[4,5,6,7]), the parentheses solved some confusion.
11:23:59 <AlpacaPrince> there is no space
11:24:06 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:24:28 <geekosaur> [22 10:45:06] <xsperry> AlpacaPrince, do you understand this function? isZero 0 = True; isZero _ = False
11:24:50 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot)
11:25:16 <AlpacaPrince> oh I noticed it wrong
11:25:41 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:26:17 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:26:18 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds)
11:27:52 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:28:16 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:29:51 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:30:23 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:31:00 <zero> True
11:31:08 <AlpacaPrince> without a space it is just part of the function name, _
11:31:56 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:32:23 <AlpacaPrince> xsperry i'm now prepared to answer your question.
11:32:24 <AlpacaPrince> yes, I do understand this function.
11:32:30 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:32:39 <zardoz2> AlpacaPrince try this: https://paste.tomsmeding.com/lQa26HTa
11:32:56 <zardoz2> and then try putting line 3 (f x = "value is " ++ show 0) at the top
11:33:24 <zardoz2> that should have been f x = "value is " ++ show x
11:34:06 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:34:08 × kranius quits (~kranius@user/kranius) (Ping timeout: 252 seconds)
11:34:21 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
11:34:33 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:35:52 jkaye joins (~jkaye@2601:281:8300:7530:6aeb:18f5:2700:2624)
11:36:08 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:36:08 <AlpacaPrince> it would always be "value is 0"
11:36:12 lavaman joins (~lavaman@98.38.249.169)
11:36:21 machinedgod joins (~machinedg@24.105.81.50)
11:36:22 <AlpacaPrince> Why can the x not be replaced with _
11:36:29 kranius joins (~kranius@162.19.149.77.rev.sfr.net)
11:36:40 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:36:44 <zardoz2> it can, but I wanted to write this: f x = "value is " ++ show x
11:36:48 <zardoz2> show x, not show 0
11:36:53 <geekosaur> because _ is anonymous. you need to name it to use it
11:37:10 <zardoz2> if you use the value you need a name
11:37:19 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Client Quit)
11:37:31 <AlpacaPrince> okay i'll try those things
11:38:13 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:38:22 × yin quits (~yin@user/zero) (Ping timeout: 260 seconds)
11:38:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:40:13 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
11:40:16 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:40:17 × jkaye quits (~jkaye@2601:281:8300:7530:6aeb:18f5:2700:2624) (Ping timeout: 240 seconds)
11:40:44 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:40:55 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
11:42:18 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:42:37 × kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 240 seconds)
11:42:56 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:44:31 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:44:56 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:45:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:46:33 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:46:56 sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909)
11:47:06 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:47:44 <AlpacaPrince> is it possible to open the source code for the definition of _ in haskell?
11:48:03 kranius joins (~kranius@162.19.149.77.rev.sfr.net)
11:48:04 <AlpacaPrince> ...or any function for that matter.
11:48:41 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:49:12 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:50:48 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:50:53 <sshine> AlpacaPrince, yes?
11:51:20 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:51:21 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
11:51:31 <sshine> AlpacaPrince, _ isn't a function, but since it is defined in the compiler, you can find either the place it is defined as a syntactic element, or the places that refer to it in the process of compilation.
11:52:04 <AlpacaPrince> zardoz2 https://paste.tomsmeding.com/eFgi1uCb/raw/1
11:52:57 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:53:22 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:54:56 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:55:31 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:55:57 × xff0x quits (~xff0x@2001:1a81:5290:1c00:9996:3caa:8169:8a61) (Ping timeout: 240 seconds)
11:56:03 <zardoz2> AlpacaPrince, ghci tells you that other two matches are redundant, because "g x" matches everything. put it at the bottom
11:56:34 <AlpacaPrince> I've tried a bunch of variations on:
11:56:34 <AlpacaPrince> :browse _
11:56:35 <AlpacaPrince> and
11:56:35 <AlpacaPrince> :def [_]
11:57:06 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:57:13 xff0x joins (~xff0x@2001:1a81:5290:1c00:5bd7:cadf:8543:27d3)
11:57:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
11:57:59 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
11:59:15 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
11:59:25 × kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 240 seconds)
11:59:36 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds)
11:59:50 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection)
11:59:53 geekosaur joins (~geekosaur@xmonad/geekosaur)
12:00:25 × jespada quits (~jespada@87.74.33.157) (Ping timeout: 268 seconds)
12:01:23 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:02:04 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:02:35 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:02:49 <zardoz2> _ is a variable place holder name when you don't care about value, and just want to match everything. it avoids "unused variable" warning
12:02:55 jespada joins (~jespada@87.74.33.157)
12:03:13 <tomsmeding> AlpacaPrince: in haskell, patterns are tried from top to bottom. When calling e.g. `g 10`, we first try to match `10` against the pattern `x`; this succeeds, so we take that option. When calling `g 1`, we first try to match `1` against the pattern `x`; this succeeds, so we take that option.
12:03:29 <tomsmeding> If you want the other two cases to take precedence, you have to put then above the `g x` case.
12:03:31 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
12:03:38 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:04:13 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:04:20 <tomsmeding> and ghci is aware of this rule, and already sees that the `g 1` and `g 2` cases can never be reached in your code, because the `g x` case will already handle everything. So it gives you those warnings
12:05:46 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:06:21 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
12:06:24 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:06:33 Vajb joins (~Vajb@2001:999:62:f3d1:4390:fbed:1f9b:9d03)
12:07:38 mestre joins (~mestre@191.177.175.57)
12:07:58 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:08:28 <AlpacaPrince> Got it. I was trying the variation of mismatching the order; putting the catch all at the top of the pattern. Interesting that Ghci gives warnings for the pattern being defined in the wrong order while still letting the program execute.
12:08:36 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:08:43 <dminuoso> AlpacaPrince: Well its not defined in the "wrong order"
12:09:03 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
12:09:34 <dminuoso> In fact, there are some good reasons to have such "dead" code"
12:10:03 <AlpacaPrince> The program still runs, it just never reaches any definitions past g x
12:10:05 <AlpacaPrince> hmm
12:10:14 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:10:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:10:42 <AlpacaPrince> so g x could be overridden in certain cases, then allowing g 1 and g 2 to be "discovered" by the code?
12:11:23 <dminuoso> AlpacaPrince: Yeah. You could for example have some `f x | True = ... | otherwise = ...` style of code, where by commenting out the `| True` branch you alter the behavior for debugging.
12:11:29 <dminuoso> (Or perhaps via a C macro)
12:11:47 <dminuoso> Granted, for this particular usage we have a magical primitive to let GHC know not to report errors.
12:12:15 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:12:31 <zardoz2> there's no way to reach g 1 and g 2, unless you comment out g x, or move it to the bottom
12:12:43 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:12:47 <dminuoso> AlpacaPrince: Another thing is, pattern coverage checking has historically been very error prone because it's a very non-trivial problem, it was filled with false positives.
12:12:59 <dminuoso> So by default promoting this to an error would cause a lot of grief
12:13:20 <dminuoso> But since have drastically improved in recent GHC versions.
12:14:20 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:14:48 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:16:03 tewrdh^ joins (~tewrdh@64.253.22.77)
12:16:23 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:16:50 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:18:08 × danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 252 seconds)
12:18:23 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:18:37 × mestre quits (~mestre@191.177.175.57) (Remote host closed the connection)
12:18:39 danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
12:18:57 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:19:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
12:20:30 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:21:05 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:22:40 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:23:08 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:24:26 kranius joins (~kranius@162.19.149.77.rev.sfr.net)
12:24:30 × darchitect quits (~darchitec@82-132-213-95.dab.02.net) (Read error: Connection reset by peer)
12:24:40 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:25:12 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:26:46 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:26:56 × danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 268 seconds)
12:27:20 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:27:24 danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
12:28:35 × chomwitt quits (~chomwitt@ppp-2-85-245-134.home.otenet.gr) (Ping timeout: 252 seconds)
12:28:57 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:29:04 benin joins (~benin@183.82.27.57)
12:29:27 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:30:58 kuribas joins (~user@ptr-25vy0i6xaq2sd6gk5rt.18120a2.ip6.access.telenet.be)
12:31:04 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:31:37 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:32:57 × xff0x quits (~xff0x@2001:1a81:5290:1c00:5bd7:cadf:8543:27d3) (Ping timeout: 240 seconds)
12:33:13 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:33:37 × danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds)
12:33:44 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:33:52 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
12:33:55 xff0x joins (~xff0x@2001:1a81:5290:1c00:cc0:4c26:7636:4d9e)
12:34:59 deadmarshal joins (~deadmarsh@95.38.229.128)
12:35:18 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:35:37 danso joins (~danso@d67-193-121-2.home3.cgocable.net)
12:35:48 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:37:24 × synthmeat quits (~synthmeat@user/synthmeat) (Quit: WeeChat 3.0)
12:37:25 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:37:52 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:38:08 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 256 seconds)
12:39:26 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:39:57 × danso quits (~danso@d67-193-121-2.home3.cgocable.net) (Ping timeout: 240 seconds)
12:40:02 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:40:28 danso joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
12:41:35 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:42:03 ubert joins (~Thunderbi@p200300ecdf0994cb1dfd4ca95c98fa37.dip0.t-ipconnect.de)
12:42:14 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:43:48 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:44:17 chomwitt joins (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374)
12:44:27 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:46:01 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:46:38 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:48:12 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:48:50 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:49:44 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4)
12:50:24 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:51:01 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:52:14 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
12:52:38 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:52:38 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
12:53:04 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection)
12:53:57 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds)
12:54:38 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:55:14 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:56:18 × xff0x quits (~xff0x@2001:1a81:5290:1c00:cc0:4c26:7636:4d9e) (Ping timeout: 260 seconds)
12:56:49 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:57:08 xff0x joins (~xff0x@2001:1a81:5290:1c00:a0e1:b3e2:3952:22f)
12:57:28 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:59:00 × chomwitt quits (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
12:59:02 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
12:59:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
12:59:58 chomwitt joins (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374)
13:00:15 × max22- quits (~maxime@2a01cb08833598002412bf121caf815d.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
13:01:15 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:01:51 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:02:48 ub joins (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de)
13:03:04 × ubert quits (~Thunderbi@p200300ecdf0994cb1dfd4ca95c98fa37.dip0.t-ipconnect.de) (Remote host closed the connection)
13:03:04 ub is now known as ubert
13:03:26 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:03:28 sagax joins (~sagax_nb@user/sagax)
13:04:02 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:05:37 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:06:09 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:07:37 × Akiva quits (~Akiva@user/Akiva) (Ping timeout: 256 seconds)
13:07:37 × chomwitt quits (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds)
13:07:45 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:08:17 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:09:50 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:10:22 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:10:54 × coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity)
13:11:56 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:12:33 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:14:10 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:14:38 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:16:10 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:16:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:16:57 × rembo10 quits (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
13:17:17 pfurla joins (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf)
13:18:02 rembo10 joins (~rembo10@remulis.com)
13:18:15 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:18:45 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:19:21 × danso quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 268 seconds)
13:20:05 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds)
13:20:18 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:20:55 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Remote host closed the connection)
13:21:46 <AlpacaPrince> > :doc length
13:21:47 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
13:22:01 <AlpacaPrince> doc length
13:22:11 <AlpacaPrince> : doc length
13:22:19 <AlpacaPrince> >: doc length
13:22:29 <AlpacaPrince> > :doc length
13:22:30 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
13:22:31 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:22:58 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:23:23 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection)
13:23:58 <dminuoso> AlpacaPrince: Use % instead
13:24:28 <dminuoso> AlpacaPrince: > invokes lambdabot which is a rather custom thing. % invokes yahb on the other hand, which is an IRC client bolted onto GHCi
13:24:32 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:24:43 <dminuoso> Also, you can use a direct message/query to talk to yahb directly for experimentation
13:25:07 <AlpacaPrince> yahb %:doc length
13:25:10 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:25:19 <AlpacaPrince> yahb % :doc length
13:25:35 <AlpacaPrince> % :doc length yahb
13:25:35 <yahb> AlpacaPrince: ; <interactive>:1:8: error: parse error on input `yahb'
13:25:51 <AlpacaPrince> %:doc length yahb
13:26:03 <AlpacaPrince> % >:doc length yahb
13:26:03 <yahb> AlpacaPrince: ; <interactive>:227:1: error: parse error on input `>:'
13:26:14 <AlpacaPrince> % :browse length yahb
13:26:14 <yahb> AlpacaPrince: syntax: :browse <module>
13:26:22 <dminuoso> % :doc length
13:26:22 <yahb> dminuoso: Returns the size/length of a finite structure as an 'Int'. The; default implementation just counts elements starting with the left-most.; Instances for structures that can compute the element count faster; than via element-by-element counting, should provide a specialised; implementation.; ==== __Examples__; Basic usage:; >>> length []; 0; >>> length ['a', 'b', 'c']; 3; >>> length [1..]; * H
13:26:30 <AlpacaPrince> % :browse length yahb
13:26:30 <yahb> AlpacaPrince: syntax: :browse <module>
13:26:35 <dminuoso> AlpacaPrince: Try `/query yahb` to experiment without adding noise to the channel
13:26:44 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:26:47 <dminuoso> Also consider using `ghci` instead :)
13:26:53 <dminuoso> In your favourite terminal
13:27:21 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:28:54 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:29:05 dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
13:29:09 chomwitt joins (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374)
13:29:30 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:31:04 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:31:43 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:33:03 × irfan quits (~irfan@user/irfan) (Quit: leaving)
13:33:17 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:33:17 × dan-so quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 240 seconds)
13:33:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:34:03 dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
13:34:49 × kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 256 seconds)
13:35:14 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:35:49 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:36:02 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
13:36:53 × rembo10 quits (~rembo10@remulis.com) (Quit: ZNC 1.8.2 - https://znc.in)
13:37:22 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:37:58 rembo10 joins (~rembo10@remulis.com)
13:37:58 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:39:32 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:39:52 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
13:40:05 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
13:40:13 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:41:47 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:42:19 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:43:52 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:44:28 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:45:01 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
13:46:02 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:46:30 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:48:08 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:48:37 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:49:42 max22- joins (~maxime@2a01cb088335980001474809897dc97d.ipv6.abo.wanadoo.fr)
13:50:10 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:50:41 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:52:16 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:52:36 × AlpacaPrince quits (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) (Quit: Connection closed)
13:52:40 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:54:12 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:54:53 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:56:27 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:56:54 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:58:04 Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net)
13:58:28 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
13:59:06 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
13:59:10 Guest|47 is now known as pringlePie
13:59:42 neverfindme joins (~hayden@158.123.160.43)
14:00:15 deadmarshal joins (~deadmarsh@95.38.229.128)
14:00:39 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:00:59 × dan-so quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 252 seconds)
14:01:11 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:01:22 dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
14:02:44 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:03:11 × Vajb quits (~Vajb@2001:999:62:f3d1:4390:fbed:1f9b:9d03) (Read error: Connection reset by peer)
14:03:12 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
14:03:17 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:03:19 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:03:50 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
14:04:30 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:04:51 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:05:19 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:06:52 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:07:34 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:08:13 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot)
14:08:20 × zardoz2 quits (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Ping timeout))
14:09:10 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:09:50 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:09:56 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
14:09:57 <pringlePie> in the same way documentation can be called with
14:09:58 <pringlePie> :doc ++
14:09:58 <pringlePie> how can I add documentation for my own functions, that can be called by GHCi?
14:10:02 × dan-so quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 260 seconds)
14:10:19 arjun joins (~arjun@user/arjun)
14:10:29 dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
14:11:12 kranius joins (~kranius@162.19.149.77.rev.sfr.net)
14:11:25 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:11:52 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:13:26 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:14:00 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:15:34 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:16:05 × kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 268 seconds)
14:16:09 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:16:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
14:16:56 × dan-so quits (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009) (Ping timeout: 252 seconds)
14:17:09 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
14:17:42 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:17:53 × neverfindme quits (~hayden@158.123.160.43) (Ping timeout: 256 seconds)
14:18:19 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:19:54 betelgeuse9 joins (~betelgeus@94-225-47-8.access.telenet.be)
14:20:22 yin joins (~yin@user/zero)
14:20:32 × betelgeuse9 quits (~betelgeus@94-225-47-8.access.telenet.be) (Read error: Connection reset by peer)
14:22:59 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
14:24:14 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
14:24:41 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
14:24:57 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection)
14:25:53 geekosaur joins (~geekosaur@xmonad/geekosaur)
14:28:42 CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
14:28:53 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
14:30:37 × yin quits (~yin@user/zero) (Ping timeout: 240 seconds)
14:34:04 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
14:38:10 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection)
14:38:17 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
14:38:51 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds)
14:39:14 × pringlePie quits (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) (Quit: Connection closed)
14:42:37 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
14:43:24 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
14:44:27 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
14:45:12 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:45:12 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:45:12 wroathe joins (~wroathe@user/wroathe)
14:50:29 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
14:51:14 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
14:52:51 yin joins (~yin@user/zero)
14:52:57 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 240 seconds)
14:54:25 × pfurla quits (~pfurla@2804:14d:5c5a:9a78:6ce0:1b08:23ee:4eaf) (Quit: Textual IRC Client: www.textualapp.com)
14:55:25 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
14:58:08 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
14:58:26 ProfSimm joins (~ProfSimm@87.227.196.109)
14:59:35 dan-so joins (~danso@2001:1970:52e7:d000:96b8:6dff:feb3:c009)
14:59:50 × Guest4242 quits (~Guest4242@78.198.4.122) (Quit: Client closed)
15:01:16 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
15:04:37 × xff0x quits (~xff0x@2001:1a81:5290:1c00:a0e1:b3e2:3952:22f) (Ping timeout: 240 seconds)
15:07:21 darchitect joins (~darchitec@2a00:23c6:3584:df00:7dec:bf13:8fa:748c)
15:07:44 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:09:06 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
15:09:59 xff0x joins (~xff0x@2001:1a81:5290:1c00:a0e1:b3e2:3952:22f)
15:10:59 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
15:12:12 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
15:15:30 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection)
15:19:37 × x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Ping timeout: 240 seconds)
15:19:58 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
15:19:59 qrpnxz joins (abc4f95c31@user/qrpnxz)
15:20:29 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed)
15:20:53 qrpnxz joins (abc4f95c31@user/qrpnxz)
15:22:03 x88x88x joins (~x88x88x@149.28.53.172)
15:23:18 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 268 seconds)
15:25:55 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
15:26:36 gehmehgeh joins (~user@user/gehmehgeh)
15:30:08 Sgeo joins (~Sgeo@user/sgeo)
15:30:37 × yin quits (~yin@user/zero) (Ping timeout: 240 seconds)
15:30:53 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
15:31:03 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
15:31:30 jinsun joins (~quassel@user/jinsun)
15:37:20 evocatus joins (~evocatus@62.182.78.42)
15:37:51 lavaman joins (~lavaman@98.38.249.169)
15:40:16 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
15:40:16 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
15:40:16 wroathe joins (~wroathe@user/wroathe)
15:42:19 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
15:45:09 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
15:47:03 lavaman joins (~lavaman@98.38.249.169)
15:47:48 yin joins (~yin@user/zero)
15:48:37 × acidjnk quits (~acidjnk@p200300d0c7271e256ce23fbe5bf2eea3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
15:51:42 <gentauro> so I need to build `network-3.1.1.1` which is broken in `https://www.stackage.org/lts-18.19` but fixed in `nightly`. Is there a way to specify this in `stack.yaml`?
15:51:55 neverfindme joins (~hayden@158.123.160.43)
15:52:49 × neverfindme quits (~hayden@158.123.160.43) (Remote host closed the connection)
15:57:16 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection)
15:59:24 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Quit: coot)
15:59:50 coot joins (~coot@89-64-85-93.dynamic.chello.pl)
16:00:17 × yin quits (~yin@user/zero) (Ping timeout: 240 seconds)
16:01:43 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:01:44 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:02:22 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:02:23 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:02:51 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:02:51 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:05:00 × phma_ quits (~phma@2001:5b0:210d:e448:bd04:4091:a4d4:4fae) (Read error: Connection reset by peer)
16:06:08 phma_ joins (~phma@2001:5b0:210f:6808:2fd4:ecc8:b8ea:8fba)
16:08:35 phma_ is now known as phma
16:09:31 alfonsox joins (~quassel@103.92.42.192)
16:14:03 × jespada quits (~jespada@87.74.33.157) (Ping timeout: 256 seconds)
16:14:20 kranius joins (~kranius@162.19.149.77.rev.sfr.net)
16:14:51 ph88 joins (~ph88@ip5f5af068.dynamic.kabel-deutschland.de)
16:15:27 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4)
16:16:15 jespada joins (~jespada@87.74.33.157)
16:19:50 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:19:50 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:23:59 × arjun quits (~arjun@user/arjun) (Ping timeout: 252 seconds)
16:24:37 × x88x88x quits (~x88x88x@149.28.53.172) (Ping timeout: 240 seconds)
16:25:01 neverfindme joins (~hayden@158.123.160.43)
16:25:23 deadmarshal joins (~deadmarsh@95.38.229.128)
16:25:37 × kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Ping timeout: 240 seconds)
16:27:50 × mbuf quits (~Shakthi@171.61.232.157) (Quit: Leaving)
16:29:55 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:29:55 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:30:22 × ubert quits (~Thunderbi@p548c8cd6.dip0.t-ipconnect.de) (Remote host closed the connection)
16:31:55 x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
16:32:38 × neverfindme quits (~hayden@158.123.160.43) (Remote host closed the connection)
16:32:55 neverfindme joins (~hayden@158.123.160.43)
16:33:03 × neverfindme quits (~hayden@158.123.160.43) (Remote host closed the connection)
16:33:36 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
16:33:38 × evocatus quits (~evocatus@62.182.78.42) (Quit: Leaving)
16:35:35 doyougnu joins (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
16:36:14 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:36:14 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:36:54 timCF joins (~timCF@m91-129-100-224.cust.tele2.ee)
16:37:20 × timCF quits (~timCF@m91-129-100-224.cust.tele2.ee) (Client Quit)
16:38:02 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 240 seconds)
16:39:03 kranius joins (~kranius@162.19.149.77.rev.sfr.net)
16:39:16 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:39:17 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:40:03 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:40:03 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:40:42 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
16:41:04 stiell joins (~stiell@gateway/tor-sasl/stiell)
16:45:56 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
16:46:14 ProfSimm joins (~ProfSimm@87.227.196.109)
16:46:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:47:21 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:47:22 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:48:58 × xff0x quits (~xff0x@2001:1a81:5290:1c00:a0e1:b3e2:3952:22f) (Remote host closed the connection)
16:49:15 xff0x joins (~xff0x@2001:1a81:5290:1c00:1cc4:2a6e:2e3f:d394)
16:49:38 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
16:50:14 × kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Changing host)
16:50:14 kranius joins (~kranius@user/kranius)
16:52:18 yin joins (~yin@user/zero)
16:53:02 <sm> g'day all
16:53:40 <sm> gentauro:
16:53:40 <sm> extra-deps:
16:53:40 <sm> - network-3.1.1.1
16:53:56 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
16:54:51 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
16:55:34 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
16:55:35 qrpnxz joins (abc4f95c31@user/qrpnxz)
16:56:51 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
16:56:59 chexum_ joins (~quassel@gateway/tor-sasl/chexum)
16:56:59 × alfonsox quits (~quassel@103.92.42.192) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
16:57:41 × yin quits (~yin@user/zero) (Ping timeout: 256 seconds)
16:59:21 <EvanR> is there a cool way to do a cross join of two lists, like a list comprehension, but exclude the middle diagonal and one of the halves
16:59:42 <EvanR> ok middle is redundant
17:01:26 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
17:01:40 <monochrom> Which half of [(x,y) | x<-[1,2], y<-['a', 'b', 'c']] do you want to receive?
17:01:53 <EvanR> I guess x = y
17:01:58 <EvanR> xs = ys
17:02:08 <monochrom> But x==y is a type error.
17:02:10 <EvanR> not two different lists
17:02:13 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
17:02:19 <EvanR> same list with itself
17:03:49 × xff0x quits (~xff0x@2001:1a81:5290:1c00:1cc4:2a6e:2e3f:d394) (Ping timeout: 268 seconds)
17:04:37 xff0x joins (~xff0x@2001:1a81:5290:1c00:84df:602d:a0a9:8535)
17:05:14 × kuribas quits (~user@ptr-25vy0i6xaq2sd6gk5rt.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3))
17:05:25 <int-e> > [(x,y) | x:xs <- tails [1,2,3], y <- xs]
17:05:26 <lambdabot> [(1,2),(1,3),(2,3)]
17:05:48 <monochrom> Ah, nice.
17:06:10 <EvanR> i will now steal that and then understand it, in that order
17:06:17 × x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Ping timeout: 240 seconds)
17:09:41 yin joins (~yin@user/zero)
17:10:30 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
17:12:02 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds)
17:12:56 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:12:58 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection)
17:13:01 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
17:13:02 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:13:39 gehmehgeh joins (~user@user/gehmehgeh)
17:14:59 <glguy> I feel like today's problem deserves to be generalized to n-dimensions with a nice typed vector
17:15:41 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
17:15:41 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:16:05 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
17:16:05 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:16:23 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
17:16:59 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
17:18:24 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
17:18:25 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:18:50 geekosaur joins (~geekosaur@xmonad/geekosaur)
17:19:26 <EvanR> today's problem is kicking my ass
17:20:33 jeetelongname joins (~jeet@88-111-159-26.dynamic.dsl.as9105.com)
17:20:37 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
17:20:42 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
17:20:43 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:21:10 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
17:21:10 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:22:38 x88x88x joins (~x88x88x@149.28.53.172)
17:23:33 analognoise1 joins (~analognoi@ip98-176-154-48.sd.sd.cox.net)
17:23:42 × yin quits (~yin@user/zero) (Ping timeout: 260 seconds)
17:25:32 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
17:27:03 × Cale quits (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com) (Remote host closed the connection)
17:27:53 × analognoise quits (~analognoi@185.202.221.238) (Ping timeout: 268 seconds)
17:28:40 analognoise joins (~analognoi@91.196.220.236)
17:30:20 Cale joins (~cale@cpef48e38ee8583-cm30b7d4b3fc20.cpe.net.cable.rogers.com)
17:30:35 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:31:02 <sshine> can I, in any way, do pub const FOO: BigInt = ...? -- I feel like n.into() and BigInt::new(Sign::Plus, vec![n]) both complain about const-time allocation being a problem.
17:31:35 <sshine> I've found this thing: https://gitlab.com/hjiayz/const_num_bigint -- but it doesn't come with a lot of explanation, I'm not sure it's a good approach.
17:32:07 Midjak joins (~Midjak@may53-1-78-226-116-92.fbx.proxad.net)
17:32:15 × analognoise1 quits (~analognoi@ip98-176-154-48.sd.sd.cox.net) (Ping timeout: 256 seconds)
17:32:15 <geekosaur> channel?
17:32:17 <sshine> oops, wrong channel :)
17:33:24 × coot quits (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection)
17:33:51 emf joins (~emf@2620:10d:c091:480::1:44aa)
17:35:58 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed)
17:36:09 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:37:24 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Remote host closed the connection)
17:39:42 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
17:40:17 × Tuplanolla quits (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) (Ping timeout: 240 seconds)
17:40:31 emf_ joins (~emf@2620:10d:c091:480::1:44aa)
17:40:56 <glguy> OK, generalizing day 22 to n-dimensions actually made the program shorter
17:41:12 <glguy> (and a tiny bit faster in my benchmark)
17:41:14 <gentauro> sshine: what is that programming language?
17:41:24 <glguy> https://glguy.net/advent2021/Day22/Main.html
17:41:26 <gentauro> sshine: seems like a horrible syntax
17:41:57 × emf quits (~emf@2620:10d:c091:480::1:44aa) (Ping timeout: 240 seconds)
17:42:48 <sshine> gentauro, it's Haskell.
17:43:21 <gentauro> sshine: more like Hask-LEL
17:43:37 <sshine> gentauro, you just need {-# LANGUAGE RustySyntax #-}
17:43:55 BrokenClutch joins (~pioneer@2804:d41:c2a7:d800:e627:b00b:2c62:134)
17:44:23 <gentauro> sshine: is that the PRAGMA that when used, God kills a kitten? :'(
17:44:26 gentauro GG kittens
17:45:22 <BrokenClutch> After scheme, I've started to like these functional languages thingy. After haskell I'm actually addicted.
17:45:22 <BrokenClutch> Does haskell works well with reactive functional programming?
17:45:34 deadmarshal joins (~deadmarsh@95.38.229.128)
17:46:37 <EvanR> FRP's brand was stolen from the haskell sphere for nefarious purposes elsewhere, elm, etc
17:47:56 <BrokenClutch> oh my god, almost learned Elm, thanks brother for keeping me away from heresy.
17:48:04 <EvanR> lol
17:48:59 <EvanR> https://github.com/gelisam/frp-zoo
17:49:21 <gentauro> BrokenClutch: Do a Google on "Ivan Perez FRP" (he is currently a researcher at NASA)
17:49:23 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:49:23 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Remote host closed the connection)
17:49:24 <gentauro> ;)
17:49:37 slowButPresent joins (~slowButPr@user/slowbutpresent)
17:50:29 <gentauro> sm: `extra-deps: - network-3.1.1.1` why would this make any difference?
17:51:59 <sm> gentauro, formatting may not have come through accurately. The stack user guide makes it clear
17:52:41 <geekosaur> I do not understand "broken" vs. "fixed"
17:52:57 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
17:52:57 <sm> in short, if you want a version other than the one in your chosen snapshot, listing a different version in extra-deps often works
17:52:57 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:53:30 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed)
17:53:36 qrpnxz joins (abc4f95c31@user/qrpnxz)
17:53:50 Akiva joins (~Akiva@user/Akiva)
17:54:11 <BrokenClutch> EvanR: The guy has a fedora, should I trust him?
17:54:37 × emf_ quits (~emf@2620:10d:c091:480::1:44aa) (Ping timeout: 240 seconds)
17:56:05 <gentauro> sm: but the version is *broken* for the `lts`
17:56:11 <gentauro> but not for `nightly
17:56:31 <gentauro> my question was, is it possible to use `lts` but for a single package use the package from `nightly`?
17:56:34 <gentauro> :)
17:56:35 Tuplanolla joins (~Tuplanoll@91-159-69-214.elisa-laajakaista.fi)
17:56:52 gentauro perhaps point to a git repo or something like that?
17:56:54 <geekosaur> the versions will be the same, unless something is especially perverse (and I'd expect it'd have been rejected in that case)
17:57:10 <geekosaur> are you sure this brokenness is not because of compiler version?
17:57:22 <gentauro> geekosaur: that could be as well
17:57:51 <sm> not if it's broken.. what do you mean by that ?
17:58:12 <gentauro> sm: `-- While building package network-3.1.1.1 (scroll up to its section to see the error) using:`
17:58:24 <gentauro> like "not building" :)
17:58:26 <geekosaur> hm, on hackage 3.1.1.1 is marked as deprecated
17:58:43 <sm> you must be aware this is not enough information to help you :)
17:58:59 <sshine> BrokenClutch, while there are FRP libraries in Haskell, I can't think of any killer libraries except perhaps Brick: https://github.com/jtdaugherty/brick
17:59:02 <sm> @where paste
17:59:02 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
17:59:38 × x88x88x quits (~x88x88x@149.28.53.172) (Ping timeout: 260 seconds)
18:01:07 <geekosaur> I would suggest putting 3.1.2.0 in extra-deps and adjusting any other dependencies as needed
18:01:15 <gentauro> I have added `Latest on Hackage:3.1.2.5` instead of `https://www.stackage.org/lts-18.19/package/network-3.1.1.1`
18:01:21 <geekosaur> but yes, we need more information
18:01:22 <gentauro> as an extra-dep
18:01:34 <gentauro> pehaps that helps
18:01:46 <EvanR> sshine, BrokenClutch there's reflex
18:02:51 <geekosaur> I find it odd that a stackage lts depends on a deprecated package
18:02:55 <gentauro> perhaps using `allow-newer: true` in the `stack.yaml` would go for the newest packages?
18:03:29 emf joins (~emf@2620:10d:c091:480::1:44aa)
18:03:59 <sm> geekosaur yes that seems unfortunate, I guess it was found buggy and deprecated after the lts
18:04:13 <sm> I hit that too
18:04:38 <sm> lts's can be updated, I think, maybe it just hasn't happened
18:05:26 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
18:06:54 x88x88x joins (~x88x88x@149.28.53.172)
18:07:08 BenSimms[m] joins (~simmsb@2001:470:69fc:105::1:55c3)
18:07:08 econo joins (uid147250@user/econo)
18:07:15 <gentauro> geekosaur: I don't think an LTS should be updated as such without `bumping` a minor version number right?
18:07:35 <geekosaur> that's what I would expect
18:07:44 <gentauro> `lts-18.19` with deprecated package -> `lts-18.20` without deprecated?
18:07:45 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:08:18 <geekosaur> wondering if they got themselves stuck because nightly is already 9.0.1 which is buggy and probably going nowhere
18:08:27 coolnickname joins (uid531864@user/coolnickname)
18:08:47 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:09:22 <gentauro> is it `FP Complete` that decides over `stack` or is it "the community"?
18:09:26 BenSimms[m] is now known as simmsb
18:10:17 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
18:10:33 <geekosaur> the community, I gather, but they have specific guidelines as to how things are done
18:10:47 <geekosaur> so a new package has to be tested in the nightlies before it gets promoted to an lts
18:10:58 <geekosaur> but the nightly is stuck on 9.0.1
18:10:59 <gentauro> go it
18:11:11 <gentauro> I mean, "got it" :)
18:11:15 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:11:15 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:11:25 × benin quits (~benin@183.82.27.57) (Quit: The Lounge - https://thelounge.chat)
18:12:28 analognoise1 joins (~analognoi@2600:8801:8c26:9e00:9810:dcc2:3d73:bd7a)
18:12:34 <geekosaur> 8.10.5-8.10.7 really should never have happened
18:13:08 <geekosaur> they were released after 9.0.1 and added a major new feature, and completely hosed versioning for everyone else
18:13:26 benin joins (~benin@183.82.27.57)
18:13:28 <sm> gentauro: there's a bunch of stackage maintainers, working in the stackage repo. It's somewhat, not very active. I think as geekosaur said they are somewhat blocked by the state of ghc
18:13:28 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
18:13:43 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:13:43 <gentauro> sm: :o
18:13:43 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:13:48 <gentauro> good to know
18:14:12 <sm> and, the state of packages building with newer ghc.. it's kind of circular
18:14:42 <sm> still, I'm sure there's a solution for your build issue. It might be to use a newer nightly instead of lts, for now
18:16:07 × analognoise quits (~analognoi@91.196.220.236) (Ping timeout: 250 seconds)
18:17:34 analognoise joins (~analognoi@23.105.41.153)
18:18:10 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:18:11 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:19:37 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:19:38 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:20:03 yauhsien joins (~yauhsien@118-167-43-174.dynamic-ip.hinet.net)
18:20:30 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:20:30 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:20:53 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:20:53 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:20:57 × analognoise1 quits (~analognoi@2600:8801:8c26:9e00:9810:dcc2:3d73:bd7a) (Ping timeout: 240 seconds)
18:21:15 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:21:15 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:22:07 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:22:07 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:22:29 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:22:30 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:22:55 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:22:55 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:24:05 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:24:08 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:24:12 <jneira[m]> today i tried to use head.hackage with stack and no way, could be it even possible?
18:24:57 × yauhsien quits (~yauhsien@118-167-43-174.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
18:25:37 × CiaoSen quits (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
18:25:54 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:25:55 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:26:27 × kranius quits (~kranius@user/kranius) (Ping timeout: 268 seconds)
18:27:00 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:27:01 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:27:17 × emf quits (~emf@2620:10d:c091:480::1:44aa) (Ping timeout: 240 seconds)
18:27:34 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:27:35 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:27:42 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
18:27:52 eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
18:28:11 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
18:28:17 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:28:18 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:29:17 <geekosaur> https://github.com/commercialhaskell/stack/issues/3844 does this look familiar?
18:29:25 __monty__ joins (~toonn@user/toonn)
18:29:37 <geekosaur> otherwise I think you'll have to show what you tried and what went wrong
18:29:40 <geekosaur> @where paste
18:29:41 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
18:31:10 phma_ joins (phma@2001:5b0:211c:9c18:ac13:6342:6a86:65e4)
18:31:52 <jneira[m]> geekosaur: i tried something similar with 2 package indices, but stack told me you can use only one (although it is a list?)
18:32:02 <jneira[m]> maybe i misinterpreted the error msg
18:32:37 × eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds)
18:32:49 <jneira[m]> an then i rea in docs:
18:32:49 <jneira[m]> > Since Stack 1.11, this field may only be used to specify a single package index, which must use the Hackage Security format
18:32:50 <lambdabot> <hint>:1:17: error: parse error on input ‘,’
18:33:20 × phma quits (~phma@2001:5b0:210f:6808:2fd4:ecc8:b8ea:8fba) (Read error: Connection reset by peer)
18:34:02 <jneira[m]> if you set only head.hackage it does not find packages cause it is a overlay
18:35:32 × chomwitt quits (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374) (Ping timeout: 240 seconds)
18:35:37 emf joins (~emf@2620:10d:c091:480::1:44aa)
18:35:42 mvk joins (~mvk@2607:fea8:5cdd:f000::917a)
18:36:26 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
18:37:38 × jeetelongname quits (~jeet@88-111-159-26.dynamic.dsl.as9105.com) (Ping timeout: 252 seconds)
18:38:37 chomwitt joins (~chomwitt@2a02:587:dc1c:a00:12c3:7bff:fe6d:d374)
18:39:31 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 250 seconds)
18:40:28 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection)
18:43:47 pavonia joins (~user@user/siracusa)
18:44:15 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:44:16 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:44:47 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 256 seconds)
18:45:20 xkuru joins (~xkuru@user/xkuru)
18:47:09 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:47:18 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:47:18 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:47:38 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
18:47:38 qrpnxz joins (abc4f95c31@user/qrpnxz)
18:52:57 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 240 seconds)
18:53:15 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
18:53:52 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
18:54:11 ProfSimm joins (~ProfSimm@87.227.196.109)
18:54:26 neurocyte0132889 joins (~neurocyte@IP-045014189127.dynamic.medianet-world.de)
18:54:26 × neurocyte0132889 quits (~neurocyte@IP-045014189127.dynamic.medianet-world.de) (Changing host)
18:54:26 neurocyte0132889 joins (~neurocyte@user/neurocyte)
18:54:41 yin joins (~yin@user/zero)
18:54:49 <jneira[m]> hmm maybe adding the src tarballs from the repo in extra-deps? will try
18:56:04 kranius joins (~kranius@162.19.149.77.rev.sfr.net)
18:56:44 × kranius quits (~kranius@162.19.149.77.rev.sfr.net) (Changing host)
18:56:44 kranius joins (~kranius@user/kranius)
18:57:43 Maxdamantus joins (~Maxdamant@user/maxdamantus)
18:58:40 × BrokenClutch quits (~pioneer@2804:d41:c2a7:d800:e627:b00b:2c62:134) (Quit: Leaving.)
18:59:49 kaph joins (~kaph@net-2-47-236-216.cust.vodafonedsl.it)
19:03:09 × max22- quits (~maxime@2a01cb088335980001474809897dc97d.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds)
19:05:20 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
19:05:21 qrpnxz joins (abc4f95c31@user/qrpnxz)
19:05:45 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
19:05:45 qrpnxz joins (abc4f95c31@user/qrpnxz)
19:06:41 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
19:07:00 ProfSimm joins (~ProfSimm@87.227.196.109)
19:13:57 × yin quits (~yin@user/zero) (Ping timeout: 240 seconds)
19:13:57 × x88x88x quits (~x88x88x@149.28.53.172) (Ping timeout: 240 seconds)
19:15:00 × emf quits (~emf@2620:10d:c091:480::1:44aa) (Read error: Connection reset by peer)
19:17:40 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:18:07 <energizer> ghci seems like a reasonable repl. i assume it's missing something important so people don't want to use it for serious repling like they do with lisps. what is it missing?
19:18:56 <geekosaur> sane multiline handling, for one
19:19:28 <monochrom> I don't use a Lisp REPL for multiline, either.
19:19:35 <geekosaur> since haskell uses layout by default, you kinda want reasonable multiline input where you can use layout. ghci provides two ways to do this and both kinda suck
19:19:51 <monochrom> In fact I challenge the premise. What data do you have that says people don't use ghci?
19:19:51 <g> It's better to do multiple line stuff in an editor in both
19:19:58 <geekosaur> in particular you can't arrow up and edit a previous line
19:20:28 emf joins (~emf@2620:10d:c091:480::1:e0fe)
19:20:35 <geekosaur> I use ghci but I use it on something I've entered using an editor instead of typing definitions directly into it
19:21:06 <geekosaur> you also can't enter a bunch of definitions and then save the result to a file afterward
19:21:12 <monochrom> REPLing is so commonly demanded that "cabal repl" and "stack repl" exist and were implemented with great pain.
19:21:55 <energizer> geekosaur: yeah idk what the general name for "sending lines from editor to inferior repl process" is
19:22:46 <monochrom> OK so this is an echo chamber "conversation"
19:22:58 <energizer> monochrom?
19:23:15 <monochrom> "I will ignore all doubts against my premise."
19:23:49 <monochrom> Not the first time anyway.
19:23:50 <energizer> monochrom: you made your point, give it a minute to settle before attacking please
19:24:13 mimmy joins (~mimmy@69.174.8.146)
19:25:57 x88x88x joins (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb)
19:26:49 shapr awakens
19:26:53 <shapr> people not being nice?
19:26:56 <energizer> there are many livestreams of lisp/python/whatever developers interactively exploring data as part of their workflow. are there any such videos for haskell?
19:26:58 shapr hugs people
19:27:37 <shapr> energizer: have you seen https://las.rs/blog/haskell-as-shell.html ? could be related?
19:27:47 <geekosaur> possibly not, but that doesn't mean we don't do it
19:28:11 <Cale> energizer: People use ghci constantly... I don't know why you'd expect otherwise.
19:28:22 <shapr> I'd use GHCi for all my dev if I could easily file out definitions into a file, same as when I wrote python for a living.
19:28:36 <geekosaur> was in a discussion earlier today elsewhere where it was pointed out that lisp/python/clojure/etc. folks always think they invented that idea
19:28:46 <geekosaur> when it's been around for years
19:29:19 <geekosaur> we just don't see any need to pretend we invented the idea and need to advertise it
19:29:30 <shapr> energizer: does IHaskell fit into the repl box?
19:30:09 <energizer> when was ghci released?
19:30:20 × kranius quits (~kranius@user/kranius) (Quit: leaving)
19:30:34 <monochrom> IMO DrRacket, Mathematica notebooks, IPython, and IHaskell are no longer REPL. They exceed REPL by far.
19:31:00 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
19:31:50 <monochrom> REPL is when you are confined to a VT100.
19:31:58 max22- joins (~maxime@2a01cb0883359800bfc539327e2fa08b.ipv6.abo.wanadoo.fr)
19:33:16 <energizer> shapr: that post is nice. i often wonder why people dont use haskell for their system shell. based on that post i think the answer is that there's no good syntax for it
19:33:22 <monochrom> Mathematica already coined the name "notebook" for this, long before the rest of DrRacket and IPython IThis IThat. I say we can call this "notebook".
19:33:25 <geekosaur> looks like ghci was introduced in ghc5
19:33:39 <energizer> (which isn't the conclusion it arrives at but i do)
19:34:20 <energizer> monochrom: that is a good point
19:34:45 <monochrom> And exploring data during programming, I think it's already part of Jackson Structured Design way back.
19:35:08 <shapr> energizer: last I looked into GHCi, it works by compiling pieces and dynamically loading them. That needs extra support, so is often not present on uncommon architectures
19:35:08 <monochrom> No one is going to get the credit except Jackson.
19:35:25 <monochrom> BTW fun fact, his full name is Michael Jackson, no joke.
19:36:02 <monochrom> In 2000 I had the honour to meet him. Same summer school when SPJ gave the Awkward Squad lectures.
19:36:07 Erutuon joins (~Erutuon@user/erutuon)
19:36:34 <geekosaur> shapr, not quite. it compiles to bytecode by default, which works fine. what does not automatically work on weird architectures is anything that wants to load external libraries for FFI
19:36:48 <shapr> ah, thanks for the details
19:36:50 <monochrom> And stupid me, when I met him I failed to connect him to "wait, are you Jackson as in Jackson Structure Design/Programming?"
19:37:32 <energizer> geekosaur: what happens to the bytecode?
19:37:52 <shapr> energizer: seems reasonable to me that whitespace syntax makes multi-line repl difficult
19:38:22 <shapr> as far as I know the curly brace and semicolon syntax is still supported, maybe that'd be more repl friendly?
19:38:42 <geekosaur> it's executed and discarded. a way to save and load it has been a low priority ghc ticket for years; you can't even save source currently, what point is bytecode?
19:39:15 <shapr> energizer: at least for me, I write functions in emacs, and hit C-c C-l to dump the open buffer into ghci, that works well
19:39:18 <geekosaur> it's still supported but less familiar to most folks, especially since once you switch to it you can't stop using it
19:39:32 <shapr> haskell-language-server makes everything easier, I don't need ghci or ghcid much at all
19:39:36 <geekosaur> so you also have to use brace syntax with a let inside a do, for example
19:39:38 <energizer> geekosaur: i mean is there a bytecode vm or does the bytecode get compiled to native
19:39:47 <geekosaur> there is a bytecode vm
19:39:56 <geekosaur> it's also used by template haskell
19:40:41 <shapr> energizer: oh, have you tried haskell-language-server ? if not, it's really amazing
19:42:20 <energizer> i guess what i'm trying to get at is, what about lisp/python/whatever is more suitable for interactive exploration than what haskell offers
19:43:02 × x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Ping timeout: 240 seconds)
19:43:47 <shapr> I can't think of any reason that would be true?
19:44:05 <geekosaur> neither can I
19:44:08 <shapr> not saying it isn't, just seems like they're equally powerful to me?
19:44:18 <geekosaur> do you have a reason to think they are?
19:44:34 <shapr> I did ~20 years of professional python before doing professional Haskell, I'd prefer to use Haskell for data exploration for a variety of reasons
19:44:50 <shapr> mind you, python has lots of libraries that Haskell doesn't
19:44:53 <geekosaur> the only reasons I can think of are (a) compiled instead of interpreted by default (b) not dynamically typed
19:45:01 <energizer> one is that in python the compiler won't fail to infer, it'll just go
19:45:03 <geekosaur> but neither is actually a problem
19:45:28 <geekosaur> python will also happily accept unexpected Nones
19:45:34 <geekosaur> and give you garbage
19:45:40 <shapr> energizer: I think 'just go' has caused me the most problems in my professional python career.
19:45:54 <energizer> i'm not asking "why is haskell better for interactive" i'm asking "why is python better for interactive"
19:46:00 shapr thinks
19:46:10 <shapr> I guess I'm not convinced it is?
19:46:19 <shapr> What do you see that supports that hypothesis?
19:46:23 <energizer> s/why/in what ways is/
19:47:12 <shapr> I'd agree with what geekosaur just said
19:47:22 <shapr> Python will give you possibly incorrect results with less work
19:47:39 <energizer> that aint what im asking
19:47:56 shapr tries to read again
19:48:05 <energizer> gimme the python pros column
19:48:18 <energizer> not the python cons column
19:48:34 <shapr> python pros: jupyter, lots of libraries, easy to find on stackoverflow
19:48:57 <energizer> i'm not seeing how compiled/interpreted would matter
19:49:14 <shapr> matters a bunch when your dataset is large
19:49:40 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4)
19:49:45 <energizer> geekosaur gave it as a python pro i think
19:49:55 <monochrom> codeworld proves that python is not better for interactive.
19:50:09 <geekosaur> why are you asking haskell folks why python is better?
19:50:28 <energizer> cuz python folks dont know haskell
19:50:38 <shapr> ha, good point
19:51:01 <shapr> python has way more libraries for uncommon file formats and network protocols
19:51:11 <monochrom> Well, DrRacket already proves that. But I want a statically typed proof.
19:51:16 x88x88x joins (~x88x88x@149.28.53.172)
19:51:17 × emf quits (~emf@2620:10d:c091:480::1:e0fe) (Ping timeout: 240 seconds)
19:51:19 <shapr> that's the biggest python advantage I see
19:51:58 <shapr> energizer: do you write both Python and Haskell?
19:52:13 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
19:52:26 <shapr> Python was my favorite language for a long time, but Haskell has overtaken that
19:52:27 <monochrom> And there is also an interactive website that provides even a dependently typed proof. It uses Lean the math theorem prover.
19:53:13 <monochrom> https://leanprover.github.io/live/latest/
19:53:57 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds)
19:54:09 <monochrom> Although, when I first googled "try lean", I discovered that now we also have an abused drug called "lean".
19:54:16 <monochrom> What can't we have nice things.
19:54:19 <shapr> energizer: personally, I want to get more differential dataflow support in my every day life. I it'll be a better tool for many things I do.
19:54:43 <monochrom> You give a name to your hard-won theorem prover, now suddenly it is also the name of a drug.
19:55:02 <energizer> my experience with theorem provers is that they require enormous work to get results
19:56:13 <energizer> sure the results are correct but do i really need to cover all the cases in the first draft
19:56:21 <geekosaur> proofs are never easy, that's why we have tools to help with them
19:56:33 <monochrom> No no no...
19:56:47 <monochrom> proofs are never easy, that's why we let only humans check them >:)
19:56:52 <energizer> not needing a proof to get something running is even easier
19:57:26 <monochrom> I mean, correct programs are never easy, that's why we are complacent with incorrect programs.
19:57:39 <energizer> i think that's the answer to my question
19:57:56 <monochrom> And Curry-Howard says why the two phenomena are the two sides of the same coin.
19:57:57 deadmarshal joins (~deadmarsh@95.38.229.128)
19:58:32 <geekosaur> and why dynamic typed systems that don't warn you about an unexpected nil/None/whatever are so popular, you can pretend errors don't exist (right up until they bite you in the butt)
19:58:33 <energizer> when i'm developing interactively, i dont want to be interrupted by an annoying program asking for a proof of cases i dont care about
19:58:48 <energizer> or proof that ive satisfied all the properties
19:59:30 <energizer> i just want to roll, i'll clean it up after i verify i'm on the right track
20:00:00 <shapr> in my experience, GHC checking for unhandled cases is a sweet spot between a proof and a dynamic language like Python
20:00:02 <geekosaur> and then you never do because it works well enough
20:00:13 <geekosaur> see also: there is nothing so permanent as a temporary hack
20:01:01 <geekosaur> (is my sysadmin hat showing? :)
20:01:38 <shapr> they quickly become load bearing hacks
20:01:51 <pragma-> if it ain't broke
20:01:53 <shapr> we have several of those in the work codebase
20:02:17 × deadmarshal quits (~deadmarsh@95.38.229.128) (Ping timeout: 240 seconds)
20:02:20 <monochrom> A proof-heavy system is only as restrictive as what you promise it.
20:02:32 <shapr> energizer: will you do a write-up of your findings? I'd be interested in reading it.
20:02:51 <monochrom> So I relax that restriction by promising less at the beginning. I can promise more when I am ready for more.
20:03:18 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds)
20:03:55 <energizer> shapr: i'm sure i wont have any novel conclusions, i'm just trying to catch up
20:03:57 <monochrom> You don't want to prove that your function works for all cases? Well don't promise "all cases" in the first place.
20:04:07 <shapr> energizer: if you want to learn about languages further into proof land, agda is informative.
20:05:00 <energizer> shapr: yeah the whole family of fancy type systems seems interesting
20:05:15 × juhp quits (~juhp@128.106.188.82) (Ping timeout: 256 seconds)
20:05:15 <energizer> agda idris lean coq
20:05:17 zincy joins (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807)
20:05:20 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4)
20:05:56 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
20:06:35 × zincy quits (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection)
20:07:07 zincy joins (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807)
20:07:52 juhp joins (~juhp@128.106.188.82)
20:08:39 × nvmd quits (~nvmd@user/nvmd) (Quit: Later, nerds.)
20:08:42 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
20:08:52 justsomeguy joins (~justsomeg@user/justsomeguy)
20:10:51 × zincy quits (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection)
20:11:05 zincy joins (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807)
20:13:29 vicfred joins (~vicfred@user/vicfred)
20:15:02 × doyougnu quits (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 240 seconds)
20:15:37 wolfshappen joins (~waff@irc.furworks.de)
20:19:02 Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net)
20:21:26 darkstardevx joins (~darkstard@50.39.115.145)
20:22:53 × darkstardevx quits (~darkstard@50.39.115.145) (Remote host closed the connection)
20:23:17 darkstardevx joins (~darkstard@50.39.115.145)
20:23:59 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
20:24:23 Guest|47 is now known as space_llama
20:25:39 geekosaur joins (~geekosaur@xmonad/geekosaur)
20:36:49 × zincy quits (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection)
20:37:02 zincy joins (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807)
20:37:15 <EvanR> energizer, have you heard of this feature in ghc where type errors are delayed until some point at runtime
20:37:38 <EvanR> haven't used it, but it fits the problem of "I just want to run the program NOW"
20:37:54 notzmv joins (~zmv@user/notzmv)
20:38:11 <EvanR> i.e. part of your program could run but the whole thing is still broken
20:39:10 <EvanR> seems handy and appealing to pythonic sensibilities
20:39:47 × ph88 quits (~ph88@ip5f5af068.dynamic.kabel-deutschland.de) (Quit: Leaving)
20:42:58 <tomsmeding> -fdefer-type-errors
20:43:24 <tomsmeding> see also the more restricted -fdefer-typed-holes
20:44:10 <EvanR> oh that's a good one... I put a _ and now I don't even get other errors xD
20:44:57 × mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 240 seconds)
20:46:22 lavaman joins (~lavaman@98.38.249.169)
20:50:49 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 250 seconds)
20:53:03 × space_llama quits (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) (Quit: Connection closed)
20:53:19 × coot quits (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827) (Remote host closed the connection)
20:57:11 jackson99 joins (~bc8147f2@83.167.180.121)
20:57:17 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3)
21:05:00 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Remote host closed the connection)
21:05:21 × tewrdh^ quits (~tewrdh@64.253.22.77) (Remote host closed the connection)
21:05:45 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
21:06:49 × amk quits (~amk@109.255.169.126) (Remote host closed the connection)
21:08:17 amk joins (~amk@109.255.169.126)
21:10:30 coot joins (~coot@2a02:a310:e03f:8500:5cc8:47c:8ec0:b827)
21:10:40 <EvanR> I tried an algebraic solution to todays puzzle
21:10:46 <EvanR> did not work:tm:
21:11:03 CiaoSen joins (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
21:11:56 mimmy joins (~mimmy@69.174.8.146)
21:13:11 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:16:17 × benin quits (~benin@183.82.27.57) (Quit: The Lounge - https://thelounge.chat)
21:16:37 × mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 240 seconds)
21:16:48 jgeerds joins (~jgeerds@55d4ac73.access.ecotel.net)
21:17:43 benin joins (~benin@183.82.27.57)
21:22:04 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
21:22:22 whatsupdoc joins (uid509081@id-509081.hampstead.irccloud.com)
21:23:01 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Remote host closed the connection)
21:24:40 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:24:57 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:24:57 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:25:49 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:25:50 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:26:21 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:26:22 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:26:47 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:26:47 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:28:53 <d34df00d> Alrighty, I have a small problem where I need to foldMap over a list, but with access to not just the current element, but, potentially, left and right neightbour of each element (except the first and last one).
21:29:05 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:29:05 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:29:25 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
21:30:07 <d34df00d> zippers look relevant, but a couple of libraries I looked at don't provide the map-into-a-monoid-and-concat primitive.
21:31:12 <Rembane> d34df00d: zip3 xs (tail xs) (tail . tail $ xs)
21:31:25 mimmy joins (~mimmy@69.174.8.146)
21:32:11 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:32:11 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:32:13 <Rembane> d34df00d: That might help you, but it's not as fancy as what you were after.
21:32:38 <d34df00d> Hmm, I came up with zipping together xs, tail (inits xs) and init (tails xs)
21:33:03 <d34df00d> Yours looks somewhat similar, I think. Also, yep, I was curious if I'm reinventing the wheel, or if there is an abstraction I could use.
21:33:18 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:33:19 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:33:40 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:33:41 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:34:04 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:34:05 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:34:21 <justsomeguy> Haskellbook says "Haskell has native recursion based on the same principle as the Y combinator". (Source here: https://gist.github.com/kingparra/a0600fe64999c391c320058aa0072125) What does that mean?
21:35:05 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:35:05 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:35:19 <justsomeguy> In that gist, I added a comment with my stab at an explanation of that quote, but I feel like I'm missing something.
21:35:30 × Hafydd quits (~Hafydd@user/hafydd) (Quit: WeeChat 3.3)
21:35:35 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:35:36 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:35:55 × mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 256 seconds)
21:37:10 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:37:11 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:37:43 <monochrom> I think it is either false or requires a very postmodern definition of "same principles".
21:38:49 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:39:07 <monochrom> So let me start from the most anal and see if I can progress (regress?) to the most lax.
21:39:28 <monochrom> The Y combinator is untypable in Haskell. So it is irrelevant right there.
21:39:44 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:39:45 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:39:59 <justsomeguy> There are a lot of quotes like that in this book ... I think the intention is to relate how the evaluation strategy of LC is a useful mental model for how Haskell evaluates, but sometimes it's frustrating because it seems like some of these are factually incorrect.
21:40:07 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:40:08 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:40:50 <monochrom> But you can work around by introducing a few newtype wrappings and unwrappings. It is not too bad. Then you can have an edited version of the Y combinator in Haskell.
21:40:59 <justsomeguy> I did find a definition of Y in haskell, but it requires unsafeCoerce: y = \f -> (\x -> f (x' x)) (\x -> f (x' x))
21:41:01 <justsomeguy> where x' = unsafeCoerce x
21:41:03 <justsomeguy> y
21:41:10 <tomsmeding> I mean, the primary characteristic of the Y combinator is that Y f = f (Y f); and such a function does indeed exist: it's Data.Function.fix, defined as, you guessed it, fix f = f (fix f)
21:41:17 <monochrom> But then, this still doesn't mean that Haskell's native recursion is actually defined in terms of that.
21:41:44 <justsomeguy> Right, that what I'm wondering about. ...
21:42:16 <monochrom> OK right, the next laxation is "we just mean that the fixed-point equation is solvable, and Y is one way to solve that equation".
21:42:19 <tomsmeding> you need the weird structure of the standard Y combinator (which is untypeable in Haskell) because you don't have direct recursion in the standard lambda calculs
21:42:29 random-jellyfish joins (~random-je@user/random-jellyfish)
21:42:46 <monochrom> But Y is by far not the only solution, not even in the untyped lambda calculus in the book's chapter 1.
21:43:12 Hafydd joins (~Hafydd@user/hafydd)
21:43:14 <geekosaur> I have this feeling it's really talking about letrec
21:43:30 <geekosaur> but that's an odd way of putting it
21:43:44 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:43:45 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:43:47 <tomsmeding> geekosaur: yeah, then it's doing the reader a disservice by saying that it's the same principle as the Y combinator
21:43:52 <monochrom> This is a pretty broad disease. People cite Y as though it is the only solution. NO. There is an honest difference between "fixed point combinator" and Y.
21:44:00 <tomsmeding> it's not, though it can be used to the same end
21:44:14 × mcglk quits (~mcglk@131.191.49.120) (Read error: Connection reset by peer)
21:44:15 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:44:16 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:44:18 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
21:44:25 <monochrom> In the same sense as "white horse is not horse" (white horses don't stand for all horses), Y is not fixed-point combinator.
21:44:32 <tomsmeding> monochrom: are there any in the untyped lambda calculus that are typeable in Haskell?
21:44:49 <monochrom> No. They all rely on \x -> x x
21:44:56 <tomsmeding> makes sense
21:45:23 mcglk joins (~mcglk@131.191.49.120)
21:46:11 acidjnk joins (~acidjnk@p200300d0c7271e77d154eb1f1200bcdb.dip0.t-ipconnect.de)
21:46:19 <monochrom> Alternatively, if you delete recursive bindings and recursive data type definitions from Haskell, you end up with something less powerful than System F, and System F doesn't have \x -> x x, we know this because every program in System F terminates.
21:46:30 <tomsmeding> (are there any in the simply-typed lambda calculus? No, because STLC is total)
21:46:45 <tomsmeding> (or, perhaps, _therefore_ STLC is total)
21:46:45 <monochrom> Yeah, like that kind of arguments.
21:47:19 <tomsmeding> (not sure you can sensibly put a causality relation there)
21:47:41 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:47:42 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:48:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:48:21 <monochrom> The most lax level is to first acknowledge that Haskell has syntactic recursion, which is by far totally not the point of any fixed-point combinator (which spares you from syntactic recursion).
21:49:20 × burnsidesLlama quits (~burnsides@dhcp168-011.wadham.ox.ac.uk) (Ping timeout: 268 seconds)
21:49:22 <monochrom> And then the semantics of Haskell goes on to map syntactic recursion to the use of a fixed-point combinator (and we don't care which). As alluded in the Haskell Report.
21:49:54 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:49:55 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:50:15 <monochrom> So yeah, one point down for HFFP.
21:50:20 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:50:21 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:50:32 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Remote host closed the connection)
21:50:41 <monochrom> It uses a good pedogogical strategy, but it gets a couple of facts wrong.
21:51:24 <monochrom> Although, hiding behind the façade of "same" "principle" you can make any claim you like.
21:51:42 <monochrom> http://www.vex.net/~trebla/humour/tautologies.html #0
21:52:02 <justsomeguy> There are a few mroe like this. From ch1 "Functional programming languages are all based on the lambda calculus.". Apparently the original lisp is based on McCarthys thesis.
21:52:06 <justsomeguy> *more
21:52:40 <justsomeguy> Thank you for clearing that up, monochrom
21:52:54 Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net)
21:53:03 Guest|47 is now known as space_llama
21:53:18 <monochrom> Oh, that one I have no objection.
21:53:54 <monochrom> Lisp's primary concern was cons cell. FP is only its secondary concern.
21:54:04 <tomsmeding> though it's fairly easy to be "based on" the lambda calculus :p
21:54:20 <Rembane> Maybe it's harder to not be based on the lambda calculus?
21:54:32 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:54:33 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:54:41 <tomsmeding> C isn't in any reasonable way, I guess
21:54:42 <justsomeguy> So your position is that Lisp isn't a functional lanauge, then? (I would say it isn't purely functional, but it's still functional.)
21:55:23 regr joins (~regr@2a02:a466:cf4f:1:cbe9:8a75:f9d2:f3e4)
21:55:31 <monochrom> I would pin Backus language "FP" as the 1st functional programming language. And it uses so many ideas from lambda calculus that I would not object to "based on that".
21:55:35 <oats> you can write some really imperative code in some lisps
21:55:55 <monochrom> But if you don't accept that, I have a weaker stance.
21:55:59 × zincy quits (~zincy@2a00:23c8:970c:4801:bdb9:8c5f:3085:2807) (Remote host closed the connection)
21:55:59 <oats> lisp-family languages tend to be more expression-oriented, but idk if that can qualify it as functional
21:56:03 <tomsmeding> I mean, to be "based on" the lambda calculus, you need variables (only basically removes assembly and forth-likes from the list of candidates), function application (same), and inline functions (removes a couple more, but leaves almost any language that is still receiving updates today)
21:56:03 <geekosaur> you can write some really imperative code in haskell
21:56:31 <oats> new rule, lambda calculus is the only functional language :P
21:57:08 <Rembane> tomsmeding: So having a language that with some effort can be turned into lambda calculus doesn't count? :)
21:57:15 <tomsmeding> geekosaur: I wonder if our students, who are learning Haskell as a second language after an imperative one, would find that a consolation :p
21:57:16 <monochrom> Landin taught us to explain programming languages by a lambda calculus on steroid. ("The Next 700 Programming Languages.") So a revisionist would say that FPLs are based on that, retrospectively.
21:57:26 <tomsmeding> Rembane: such as?
21:57:47 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:57:47 qrpnxz joins (abc4f95c31@user/qrpnxz)
21:58:27 <monochrom> But Landin in that paper used lambda calculus to explain Algol, not very functional. So there. >:)
21:58:52 <tomsmeding> lol
21:59:07 <monochrom> Basically the paper covers everything except the Prolog camp...
21:59:27 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
21:59:27 qrpnxz joins (abc4f95c31@user/qrpnxz)
22:00:35 <space_llama> GHCi, version 8.10.7: https://www.haskell.org/ghc/ :? for help
22:00:36 <space_llama> Prelude> import Graphics.Glass
22:00:36 <space_llama> <no location info>: error:
22:00:37 <space_llama>     Could not find module ‘Graphics.Glass’
22:00:37 <space_llama>     It is not a module in the current program, or in any known package.
22:01:02 <tomsmeding> try Graphics.Gloss
22:01:08 <space_llama> where does Graphics need to reside on my computer for ghci to see it?
22:02:00 <tomsmeding> you need to create a project, either with stack or cabal, and add the 'gloss' package as a dependency; or you need to start a ghci shell via stack or cabal with the 'gloss' package as a dependency
22:02:35 <tomsmeding> or you use an old-fashioned way of using cabal and install the library globally :p
22:02:42 × darkstardevx quits (~darkstard@50.39.115.145) (Read error: Connection reset by peer)
22:03:04 <tomsmeding> space_llama: do you have experience with python virtualenv, or rust, or nodejs?
22:03:39 <space_llama> I did not use cabal. I downloaded a .tar.gz file directly from https://hackage.haskell.org/package/gloss
22:03:56 <tomsmeding> you should use cabal (or stack) :)
22:04:08 <tomsmeding> unless you have a good reason not to, and you probably don't
22:04:11 <space_llama> I have about 8 hours experience on python. Mostly have used Matlab
22:04:22 mimmy joins (~mimmy@69.174.8.146)
22:04:25 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
22:04:26 qrpnxz joins (abc4f95c31@user/qrpnxz)
22:04:41 <tomsmeding> I believe with python, you put dependencies in requirements.txt, right?
22:04:43 <tomsmeding> or something like that
22:04:58 <Rembane> tomsmeding: What monochrom said about Landin, Algol and lambda calculus. That should mean that C can be turned into lambda calculus too. Or explained by it.
22:05:00 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
22:05:01 qrpnxz joins (abc4f95c31@user/qrpnxz)
22:05:06 <tomsmeding> (actually virtualenv is not really a good example, forget that)
22:05:22 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
22:05:23 qrpnxz joins (abc4f95c31@user/qrpnxz)
22:05:34 <space_llama> so how do I know what command to type into shell to download the graphics.gloss package via cabal?
22:05:43 <tomsmeding> Rembane: not having read the paper (sorry), I wouldn't accept that as an argument why Algol/C is "based on" LC :p
22:06:36 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
22:06:37 qrpnxz joins (abc4f95c31@user/qrpnxz)
22:06:54 <tomsmeding> space_llama: the easiest way to start a ghci session with access to 'gloss', is 'cabal repl -b gloss'
22:07:07 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
22:07:08 qrpnxz joins (abc4f95c31@user/qrpnxz)
22:07:14 × space_llama quits (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net) (Quit: Connection closed)
22:07:17 <Rembane> tomsmeding: That's reasonable. I must admit that I did a silly amount of handwaving there.
22:07:21 <tomsmeding> if you want to actually write a .hs file that uses gloss, create a new directory and put a suitable yourprojct.cabal file in it
22:07:26 <oats> poor space_llama
22:07:26 <tomsmeding> oh by space_llama
22:07:28 <sclv> space_llama: downloading it won't help. you need to build it (and to build it you need to build and link its dependencies, and their dependencies, etc). so that's why we use package managers like cabal to manage all that
22:07:30 <tomsmeding> *bye
22:07:35 Guest|47 joins (~Guest|47@c-73-221-44-172.hsd1.wa.comcast.net)
22:07:39 Guest|47 is now known as space_llama
22:07:39 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
22:07:40 qrpnxz joins (abc4f95c31@user/qrpnxz)
22:07:41 <sclv> oh lol
22:07:48 <sclv> space_llama: downloading it won't help. you need to build it (and to build it you need to build and link its dependencies, and their dependencies, etc). so that's why we use package managers like cabal to manage all that
22:08:00 <tomsmeding> space llama is lost in space
22:08:08 <oats> space_llama, please trust us, it's worth it to learn to use the toolin
22:08:08 <space_llama> oops I just held power instead of delete key and logged off computer...
22:08:10 <oats> *tooling
22:08:10 <sclv> so `cabal repl -b gloss` as suggested starts an interactive ghci session with a build dependency on gloss
22:08:11 <oats> lol
22:08:27 <tomsmeding> oops :p
22:08:36 <tomsmeding> what sclv says
22:08:43 <sclv> and that fetches and build and brings into scope all the stuff gloss needs and builds gloss and makes it available to the ghci session
22:08:56 <sclv> and then to use it in a file, use a cabal project as suggested
22:08:57 × mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 240 seconds)
22:11:05 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
22:11:25 kmein joins (~weechat@user/kmein)
22:12:09 <tomsmeding> space_llama: can start with this I guess https://paste.tomsmeding.com/M70m4yk4
22:13:04 <tomsmeding> (sorry for the poor spacing in the cabal file, that tab should be 4 spaces)
22:13:25 <space_llama> well it did a bunch of installing, building, completed, starting, haddock business for 30+ lines
22:14:48 <justsomeguy> If your prefer stack, you can run stack ghci -package gloss for the same effect.
22:15:14 <justsomeguy> (Though, honestly, I think it makes more sense to learn cabal first.)
22:16:16 <space_llama> now the terminal browser is flickering its heading title between "ghc", "clang" and something else " ... cabal reple -b gloss" and all my typed commands do nothing.
22:16:31 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:16:31 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
22:16:31 wroathe joins (~wroathe@user/wroathe)
22:16:44 <tomsmeding> is it showing you a ghci prompt?
22:16:50 <space_llama> no
22:16:55 <sclv> if its still flickering between stuff thats because its still building?
22:17:05 <tomsmeding> sounds like it
22:17:08 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
22:17:18 <sclv> it might just not be printing loglines as frequently
22:17:22 <tomsmeding> what is the last line it printed space_llama
22:17:40 <space_llama> last4:
22:17:40 tomsmeding suspects "Building OpenGLRaw"
22:17:42 <space_llama> Building OpenGLRaw-3.3.4.1 (lib)
22:17:43 <space_llama> Haddock bmp-1.2.6.3 (all, legacy fallback)
22:17:43 <space_llama> Installing bmp-1.2.6.3 (all, legacy fallback)
22:17:44 <space_llama> Completed bmp-1.2.6.3 (all, legacy fallback)
22:17:46 <tomsmeding> bpp,
22:17:48 <tomsmeding> *boom
22:17:56 <tomsmeding> OpenGLRaw takes a while :p
22:18:03 darkstardevx joins (~darkstard@50.39.115.145)
22:18:05 <sclv> right its building all this stuff in parallel, and now everything left is blocked on a really big complicated package
22:18:13 mimmy joins (~mimmy@69.174.8.146)
22:18:23 <tomsmeding> (not sure if OpenGLRaw is _complicated_ per se, but it for sure is big)
22:20:38 <justsomeguy> geekosaur: I think you said that you have a feeling the book is talking about letrec indirectly, earlier. What do you mean by that? Also, what is letrec?
22:21:01 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
22:21:06 <tomsmeding> some languages make a distinction between recursive let (called letrec) and non-recursive let (callet let)
22:21:13 <tomsmeding> in haskell, all lets are recursive
22:21:20 <tomsmeding> IIRC scheme makes a distinction
22:21:42 <geekosaur> yes, that
22:22:04 <geekosaur> which means that if you refer to a binding on both sides of an equal sign, they're the same binding
22:22:17 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
22:22:20 <geekosaur> which means it's a recursive binding that refers to itself
22:22:38 <geekosaur> this is not the Y combinator, though
22:23:08 <tomsmeding> it's recursive bindings, with which you can implement a fixpoint combinator :)
22:23:26 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4)
22:24:18 <monochrom> Fortunately, you can define and use Y directly in Scheme.
22:24:45 <monochrom> Or better yet, another fixed-point combinator, one that is more friendly to eager languages.
22:25:06 doyougnu joins (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net)
22:25:37 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3)
22:26:00 <monochrom> You would still prefer letrec for efficiency.
22:26:17 yin joins (~yin@user/zero)
22:27:11 <monochrom> My idea of "the principle of Y" is not the fact that it solves the fixed-point equation, but how it does it, why it works.
22:27:28 <monochrom> It (and other solutions) come down to something like \x -> x x
22:27:37 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Ping timeout: 240 seconds)
22:27:50 <tomsmeding> probably if you would ask the author of that book this question, in isolation, they would agree
22:28:03 burnsidesLlama joins (~burnsides@dhcp168-011.wadham.ox.ac.uk)
22:28:38 <monochrom> That, in turn, comes down to: Let D be the semantic domain of your untyped lambda calculus. Then D is order-isomorphic to the CPO of continuous functions D->D.
22:29:33 timCF joins (~timCF@m91-129-100-224.cust.tele2.ee)
22:29:44 tomsmeding goes off to bed
22:30:27 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:32:50 <timCF> Hello! Does anybody have an idea how to write conditional type class constraints, based on Data.Type.Equality.== result? Something like if result is 'True then use one constraint, if result is 'False - use another constraint? Basically type-level if-then-else expression for constaints.
22:32:57 × sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 240 seconds)
22:41:39 × kmein quits (~weechat@user/kmein) (Ping timeout: 256 seconds)
22:42:57 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
22:44:08 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
22:45:56 regr parts (~regr@2a02:a466:cf4f:1:cbe9:8a75:f9d2:f3e4) (WeeChat 2.8)
22:46:20 sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909)
22:51:18 × sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 260 seconds)
22:52:53 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
22:52:55 qrpnxz joins (abc4f95c31@user/qrpnxz)
22:53:53 kmein joins (~weechat@user/kmein)
22:56:17 × yin quits (~yin@user/zero) (Ping timeout: 240 seconds)
22:57:54 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4)
23:00:17 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
23:00:43 sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909)
23:04:02 × coolnickname quits (uid531864@user/coolnickname) (Quit: Connection closed for inactivity)
23:04:50 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
23:05:29 × sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 252 seconds)
23:06:45 <dan-so> is there a canonical way to get an element out of a HashMap, without caring which it is?
23:06:57 × max22- quits (~maxime@2a01cb0883359800bfc539327e2fa08b.ipv6.abo.wanadoo.fr) (Quit: Leaving)
23:07:05 <dan-so> something like get_any :: HashMap k v -> Maybe (k,v)
23:08:18 ProfSimm joins (~ProfSimm@87.227.196.109)
23:08:21 <dan-so> lookupMin or lookupMax would be fine, if i were using a tree-based Map
23:08:45 × ProfSimm quits (~ProfSimm@87.227.196.109) (Remote host closed the connection)
23:08:48 <jackdk> `headMay . HashMap.toList`?
23:09:57 <dan-so> yes, that would do fine. so there's not really a "right" way then?
23:10:11 <jackdk> If you don't want to add the `safe` dep or similar, use something like `Map.foldrWithKey (\k v _ -> Just (k, v)) Nothing`
23:10:20 <jackdk> I'm not aware of a canonical name for this function
23:10:47 <dan-so> okay, thank you!
23:13:57 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
23:14:35 kmein joins (~weechat@user/kmein)
23:16:11 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: closed)
23:16:28 qrpnxz joins (abc4f95c31@user/qrpnxz)
23:16:39 × random-jellyfish quits (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds)
23:17:40 sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909)
23:21:57 × sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 240 seconds)
23:23:55 <dsal> :t maybeToList
23:23:57 <lambdabot> Maybe a -> [a]
23:24:05 <dsal> :t listToMaybe
23:24:06 <lambdabot> [a] -> Maybe a
23:24:41 <dsal> @src listToMaybe
23:24:42 <lambdabot> listToMaybe [] = Nothing
23:24:42 <lambdabot> listToMaybe (a:_) = Just a
23:24:51 <dsal> It's kind of weird those aren't defined for Foldable in general.
23:25:25 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:25:46 × darkstardevx quits (~darkstard@50.39.115.145) (Remote host closed the connection)
23:26:57 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:319d:53ed:6690:e5b4) (Remote host closed the connection)
23:26:59 <dan-so> hah, i wrote about that exact topic
23:27:08 <dan-so> https://danso.ca/blog/frommaybe-is-just-a-fold/
23:33:57 × cosimone quits (~user@93-47-230-208.ip115.fastwebnet.it) (Ping timeout: 240 seconds)
23:35:59 sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909)
23:36:37 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
23:40:17 × mimmy quits (~mimmy@69.174.8.146) (Ping timeout: 240 seconds)
23:40:58 × sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 268 seconds)
23:41:01 × tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:41:57 qrpnxz parts (abc4f95c31@user/qrpnxz) (Disconnected: Replaced by new connection)
23:41:58 qrpnxz joins (abc4f95c31@user/qrpnxz)
23:47:22 <space_llama> unable to find module 'Graphics.Gloss'
23:47:45 <space_llama> trying to follow https://mmhaskell.com/blog/2019/3/25/making-a-glossy-game-part-1
23:48:09 mimmy joins (~mimmy@38.142.1.26)
23:51:02 <space_llama> first I `cabal repl -b gloss`, then once downloaded. I 'mkdir newProject' -> 'cd newProject' -> 'cabal init'
23:51:24 <sm> fixing-the-internet: tell the author their example is hard to follow
23:52:11 <space_llama> am I the author or do you mean the author of mmhaskell?
23:52:21 sprout joins (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909)
23:52:30 <sm> likely-fix-for-you: add the gloss package to build-depends in your .cabal file
23:52:51 × mimmy quits (~mimmy@38.142.1.26) (Client Quit)
23:53:06 <sm> author = author of the blog post
23:54:02 falafel joins (~falafel@2603-8000-d800-688c-6093-c6e0-4810-959c.res6.spectrum.com)
23:54:59 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
23:56:57 × sprout quits (~quassel@2a02:a467:ccd6:1:bc5b:dbe0:79e5:a909) (Ping timeout: 240 seconds)
23:57:49 <space_llama> currently I have:
23:57:50 <space_llama>       build-depends:          base ^>=4.14.3.0
23:57:50 <space_llama>                                             gloss >= 1.33 && < 1.14
23:59:00 <space_llama> I was given this code, so I'm not really sure how to decipher if it is correct (I do not know what "base ^>= #'s  means
23:59:06 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)

All times are in UTC on 2021-12-22.