2020/11/21

2020-11-21 00:00:40 +0100minimario(2fe3e53b@047-227-229-059.res.spectrum.com)
2020-11-21 00:01:03 +0100 <minimario> why does Data.List.init exist if take already exists?
2020-11-21 00:02:31 +0100 <glguy> > init (repeat 'a')
2020-11-21 00:02:33 +0100 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
2020-11-21 00:02:36 +0100 <monochrom> How would you take to emulate init? You will run into an annoyance and an insurmountable problem.
2020-11-21 00:02:42 +0100 <monochrom> err
2020-11-21 00:02:44 +0100 <monochrom> How would you use take to emulate init? You will run into an annoyance and an insurmountable problem.
2020-11-21 00:03:18 +0100 <glguy> monochrom: is the answer timeouts? ^_^
2020-11-21 00:03:54 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-21 00:04:27 +0100 <minimario> oh i guess if the list is infinite
2020-11-21 00:04:37 +0100 <minimario> but for finite lists they're equivalent, no?
2020-11-21 00:04:53 +0100 <minimario> if i do something like init xs = take (length xs-1) xs or something
2020-11-21 00:04:55 +0100 <glguy> it's undesirable to have to complete the whole length first before producing any list elements
2020-11-21 00:05:03 +0100 <johnw> dminuoso: thanks for looking
2020-11-21 00:05:12 +0100 <monochrom> Your "equivalence" probably ignores very important time and space complexities.
2020-11-21 00:05:13 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 00:05:26 +0100Guest42(56ca6780@gateway/web/cgi-irc/kiwiirc.com/ip.86.202.103.128) (Quit: Connection closed)
2020-11-21 00:05:30 +0100 <minimario> can you explain that?
2020-11-21 00:05:35 +0100 <minimario> they're both O(n) right?
2020-11-21 00:05:40 +0100 <minimario> at least time
2020-11-21 00:05:44 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 00:05:44 +0100 <minimario> i'm not sure how to reason about space
2020-11-21 00:05:51 +0100 <monochrom> You are also ignoring lazy evaluation.
2020-11-21 00:06:16 +0100 <monochrom> Suppose length xs = 10^10
2020-11-21 00:06:36 +0100 <monochrom> "print (init xs)" can start printing the early elements right away.
2020-11-21 00:06:48 +0100 <monochrom> It also stays in O(1) spacee.
2020-11-21 00:07:24 +0100 <glguy> > head (init (1:2:undefined))
2020-11-21 00:07:26 +0100 <lambdabot> 1
2020-11-21 00:07:53 +0100 <monochrom> "print (take (length xs -1) xs)" will take its time to count the list length. Also when the counting is done, you're occupying 10^10 units of space memoizing the whole bloody list.
2020-11-21 00:08:10 +0100hlisp(~hlisp@114.246.35.11)
2020-11-21 00:08:15 +0100 <minimario> oh i see
2020-11-21 00:08:27 +0100 <monochrom> Factoring in thrashing, it is as good as taking forever.
2020-11-21 00:09:00 +0100 <monochrom> Lt. Cmd. Data says, "believe me, for an android, 4.2 seconds feels like forever"
2020-11-21 00:09:43 +0100 <monochrom> Now marvel at how I could pun on "take" so many times.
2020-11-21 00:09:47 +0100 <minimario> haha makes sense, thanks guys:)
2020-11-21 00:10:14 +0100 <minimario> just starting to learn these constructs, always feels very weird seeing what is inside Data.List and what is not
2020-11-21 00:10:25 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 00:10:57 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Ping timeout: 260 seconds)
2020-11-21 00:12:41 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:4914:be02:68a7:933e) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 00:13:05 +0100hlisp(~hlisp@114.246.35.11) (Ping timeout: 265 seconds)
2020-11-21 00:14:31 +0100hackagetart 0.3 - Terminal Art https://hackage.haskell.org/package/tart-0.3 (JonathanDaugherty)
2020-11-21 00:14:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-11-21 00:15:14 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com) (Ping timeout: 256 seconds)
2020-11-21 00:16:05 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:154:88ea:8f88:a5f)
2020-11-21 00:19:22 +0100christo(~chris@81.96.113.213)
2020-11-21 00:19:25 +0100son0p(~son0p@181.136.122.143) (Quit: Lost terminal)
2020-11-21 00:19:56 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-21 00:22:17 +0100conal(~conal@64.71.133.70)
2020-11-21 00:22:31 +0100hlisp(~hlisp@114.246.35.11)
2020-11-21 00:24:12 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 265 seconds)
2020-11-21 00:24:37 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-11-21 00:25:03 +0100 <texasmynsted> How does overloaded strings work? Specifically right here --> https://gist.github.com/mmynsted/7a7d365b20159bfcbb02f5e8371f1c82#file-gistfile1-txt-L48
2020-11-21 00:25:14 +0100 <texasmynsted> I do not think that I should need toText
2020-11-21 00:25:23 +0100 <texasmynsted> But I do.
2020-11-21 00:25:35 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-21 00:25:36 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-11-21 00:25:52 +0100 <monochrom> overloaded strings is for string literals only. You have a variable.
2020-11-21 00:26:37 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:11e6:1867:44b7:d623)
2020-11-21 00:26:50 +0100 <texasmynsted> well snap, that makes perfect sense then
2020-11-21 00:27:02 +0100cawfee(chiya@2406:3003:2077:2341::babe) (Ping timeout: 260 seconds)
2020-11-21 00:27:06 +0100jneira(02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) (Ping timeout: 265 seconds)
2020-11-21 00:27:18 +0100hlisp(~hlisp@114.246.35.11) (Ping timeout: 260 seconds)
2020-11-21 00:28:14 +0100cawfee(chiya@2406:3003:2077:2341::babe)
2020-11-21 00:30:02 +0100ph88^(~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2020-11-21 00:32:12 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 00:33:31 +0100minimario(2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
2020-11-21 00:34:11 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 00:34:22 +0100 <texasmynsted> I forget where that toText came from
2020-11-21 00:35:56 +0100 <texasmynsted> oooh I bet from relude
2020-11-21 00:36:19 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 246 seconds)
2020-11-21 00:36:46 +0100neiluj(~jco@unaffiliated/neiluj) (Ping timeout: 265 seconds)
2020-11-21 00:36:54 +0100hlisp(~hlisp@114.246.35.11)
2020-11-21 00:37:01 +0100revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-21 00:37:53 +0100 <moet> glguy: picking up on our discussion from a few days ago: i'm embedding an external runtime in haskell via a c api and the Boolean package
2020-11-21 00:38:24 +0100 <moet> eventually i settled on a type family to map haskell types to their representation in the external thing
2020-11-21 00:38:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-21 00:38:26 +0100hekkaidekapus}(~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-21 00:38:40 +0100 <moet> and then i just implement all the numeric classes against the representation tiype
2020-11-21 00:38:41 +0100revprez_stg(~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-11-21 00:38:46 +0100 <moet> ish
2020-11-21 00:40:23 +0100hekkaidekapus{(~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-21 00:41:16 +0100hlisp(~hlisp@114.246.35.11) (Ping timeout: 240 seconds)
2020-11-21 00:41:39 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:154:88ea:8f88:a5f) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 00:42:52 +0100 <Axman6> monochrom: aww, you never showed ths zipWith const xs (drop 2 xs)
2020-11-21 00:42:52 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-21 00:43:01 +0100Tario(~Tario@201.192.165.173)
2020-11-21 00:44:33 +0100 <texasmynsted> okay. why would relude's toText be found in the main app but not for the test?
2020-11-21 00:45:13 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 00:46:10 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-21 00:47:26 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 00:48:46 +0100 <texasmynsted> yes. Okay that was it.
2020-11-21 00:48:54 +0100 <texasmynsted> :-)
2020-11-21 00:49:16 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-21 00:51:35 +0100hlisp(~hlisp@114.246.35.11)
2020-11-21 00:53:30 +0100enoq(~textual@194-208-146-143.lampert.tv) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 00:55:47 +0100 <texasmynsted> How does this ./test work for tasty? https://github.com/feuerbach/tasty#readme
2020-11-21 00:56:07 +0100 <texasmynsted> I can run `cabal test`.
2020-11-21 00:56:13 +0100kokwok(2fe3e53b@047-227-229-059.res.spectrum.com)
2020-11-21 00:56:17 +0100 <kokwok> how can i write sumNumbers x = sum (map read (wordsBy (not . isDigit) x)) with point free notation?
2020-11-21 00:56:19 +0100 <texasmynsted> But I see no way to pass the parameters to the tests
2020-11-21 00:56:38 +0100hlisp(~hlisp@114.246.35.11) (Ping timeout: 272 seconds)
2020-11-21 00:58:00 +0100 <monochrom> sum . map read . wordsBy (not . isDigit)
2020-11-21 00:58:48 +0100 <jcd> I humbly come back in search of assistance.
2020-11-21 01:00:05 +0100Tario(~Tario@201.192.165.173)
2020-11-21 01:00:43 +0100 <texasmynsted> What is "When using the standard console runner," that is referenced in the Tasty readme?
2020-11-21 01:01:00 +0100 <texasmynsted> I mean what is the "standard console runner"?
2020-11-21 01:01:08 +0100Cthalupa(~cthulhu@47.186.47.75) (Ping timeout: 256 seconds)
2020-11-21 01:01:14 +0100 <texasmynsted> I would expect it to be "cabal test"
2020-11-21 01:01:42 +0100solonarv(~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-11-21 01:01:54 +0100LittleFox(~littlefox@rondra.lf-net.org) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
2020-11-21 01:01:54 +0100beng-nl1(~beng-nl@217.146.82.202) (Remote host closed the connection)
2020-11-21 01:02:05 +0100LittleFox(~littlefox@rondra.lf-net.org)
2020-11-21 01:02:26 +0100LittleFox(~littlefox@rondra.lf-net.org) (Client Quit)
2020-11-21 01:02:36 +0100LittleFox(~littlefox@rondra.lf-net.org)
2020-11-21 01:02:42 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-21 01:02:46 +0100 <dsal> texasmynsted: You can think of OverloadedStrings as replacing every occurrence of `"x"` with `fromString "x'`
2020-11-21 01:02:49 +0100 <dsal> :t fromString
2020-11-21 01:02:50 +0100 <lambdabot> IsString a => String -> a
2020-11-21 01:03:08 +0100 <dsal> It doesn't mess up your quotes like I did, though.
2020-11-21 01:03:15 +0100 <texasmynsted> gotcha
2020-11-21 01:06:01 +0100hlisp(~hlisp@114.246.35.11)
2020-11-21 01:07:12 +0100Cthalupa(~cthulhu@47.186.47.75)
2020-11-21 01:07:54 +0100bbro(~bbro@c-24-4-176-204.hsd1.ca.comcast.net)
2020-11-21 01:07:59 +0100kokwok(2fe3e53b@047-227-229-059.res.spectrum.com) (Ping timeout: 245 seconds)
2020-11-21 01:10:06 +0100 <texasmynsted> I can get the tasty options to be honored at compile-time but not at run time. I do not know where the runtime they describe exists.
2020-11-21 01:10:19 +0100 <texasmynsted> I can only execute the Tasty tests via "cabal test"
2020-11-21 01:10:28 +0100hlisp(~hlisp@114.246.35.11) (Ping timeout: 260 seconds)
2020-11-21 01:12:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 01:12:32 +0100cawfee(chiya@2406:3003:2077:2341::babe) (Ping timeout: 260 seconds)
2020-11-21 01:14:04 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 240 seconds)
2020-11-21 01:14:32 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-11-21 01:16:56 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2020-11-21 01:17:09 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
2020-11-21 01:17:56 +0100bbro(~bbro@c-24-4-176-204.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-11-21 01:18:26 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-21 01:19:26 +0100cosimone(~cosimone@5.170.240.6)
2020-11-21 01:19:26 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 01:19:27 +0100moet(~moet@mobile-166-137-178-165.mycingular.net) (Quit: leaving)
2020-11-21 01:20:04 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 01:20:31 +0100cawfee(chiya@2406:3003:2077:2341::babe)
2020-11-21 01:22:09 +0100vsiddharth(~user@135-180-144-154.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds)
2020-11-21 01:26:14 +0100Feuermagier(~Feuermagi@213.178.26.41)
2020-11-21 01:27:03 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-21 01:29:36 +0100 <jcd> How do you loop over a list of IO actions?
2020-11-21 01:30:36 +0100 <monochrom> the same way I loop over a list.
2020-11-21 01:32:26 +0100christo(~chris@81.96.113.213)
2020-11-21 01:33:45 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2020-11-21 01:34:18 +0100julm(~julm@revolt129.abo.ilico.org) (Quit: Reconnecting)
2020-11-21 01:34:34 +0100julm(~julm@revolt129.abo.ilico.org)
2020-11-21 01:35:25 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-21 01:36:24 +0100 <sm[m]> texasmynsted: have a look at cabal test --help, there is --test-option[s]
2020-11-21 01:36:55 +0100 <sm[m]> or you can probably run the test executable directly with something like cabal exec -- NAMEOFTESTEXE ...
2020-11-21 01:39:40 +0100 <sm[m]> incidentally, you can also build your test suite into your main app: https://github.com/simonmichael/hledger/blob/master/hledger/Hledger/Cli/Commands.hs#L270
2020-11-21 01:40:34 +0100vhs_(~vhs@41.46.228.159)
2020-11-21 01:40:53 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:154:88ea:8f88:a5f)
2020-11-21 01:41:46 +0100vhs(~vhs@41.239.254.104) (Ping timeout: 246 seconds)
2020-11-21 01:42:20 +0100minimario(2fe3e53b@047-227-229-059.res.spectrum.com)
2020-11-21 01:42:36 +0100 <minimario> tooling question: anyone come across the issue where "quick fix" on vscode loops and never fixes anything
2020-11-21 01:43:13 +0100sh91(~sh9@softbank060116136158.bbtec.net)
2020-11-21 01:43:26 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving)
2020-11-21 01:43:34 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-21 01:44:24 +0100revprez_anzio(~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net)
2020-11-21 01:44:29 +0100sh91(~sh9@softbank060116136158.bbtec.net) (Client Quit)
2020-11-21 01:45:24 +0100sh9(~sh9@softbank060116136158.bbtec.net) (Ping timeout: 265 seconds)
2020-11-21 01:48:28 +0100da39a3ee5e6b4b0d(~da39a3ee5@mx-ll-171.5.161-165.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 01:49:27 +0100MasseR(~MasseR@51.15.143.128) (Ping timeout: 256 seconds)
2020-11-21 01:51:48 +0100MasseR(~MasseR@51.15.143.128)
2020-11-21 01:52:56 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:f0fd:283a:1f37:de16)
2020-11-21 01:53:22 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
2020-11-21 01:54:26 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 01:55:26 +0100xnt14(~xnt14@185.204.1.185)
2020-11-21 01:55:54 +0100 <jcd> I have an list of IO-contexted values, '[IO a]'. I have a function that removes a context 'B'. According to the documentation, I should be able to use the context-removing function on the list, but I can't. The IO context remains intact. Is there a special function/method/technique that I'm not using?
2020-11-21 01:57:05 +0100 <glguy> jcd: You can't "remove" IO, you can only sequence IO actions together to make more interesting IO actions
2020-11-21 01:57:23 +0100 <glguy> I don't know what context 'B' is though
2020-11-21 01:58:40 +0100 <Ariakenom> " the documentation" "the context-removing function"
2020-11-21 01:58:45 +0100 <Ariakenom> what are these?
2020-11-21 01:58:51 +0100 <jcd> https://paste.tomsmeding.com/k8d1Va08
2020-11-21 01:59:05 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-uhdfbowqpmvzztxz) (Quit: Connection closed for inactivity)
2020-11-21 01:59:33 +0100 <jcd> The library I'm using is Network.HTTP.Client.
2020-11-21 01:59:48 +0100 <glguy> jcd: let responses = map (get_response manager) search_urls -- becomes -- responses <- mapM (get_response manager) search_urls
2020-11-21 02:00:07 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-11-21 02:00:10 +0100 <monochrom> You should be looking into mapM_ or mapM, instead of map.
2020-11-21 02:00:15 +0100vicfred(~vicfred@unaffiliated/vicfred) (Quit: Leaving)
2020-11-21 02:00:47 +0100todda7(~torstein@ppp-2-84-17-53.home.otenet.gr) (Read error: Connection reset by peer)
2020-11-21 02:00:47 +0100 <Ariakenom> you can use ghci to do things interactively
2020-11-21 02:01:16 +0100todda7(~torstein@ppp-2-84-17-53.home.otenet.gr)
2020-11-21 02:02:06 +0100 <Sose> is Data.List.intersect really slow on long lists? any alternatives? I have two lists that are both around 150k elements and I'm trying to find the intersections :D
2020-11-21 02:03:08 +0100 <monochrom> Or even better, write your own recursion, so you understand why map doesn't cut it.
2020-11-21 02:03:30 +0100 <glguy> Sose: it's checking elements together pairwise, so yes it'll be quite slow for anything more than a handful of elements
2020-11-21 02:03:42 +0100 <glguy> Sose: to do better you'll need something like Data.Set
2020-11-21 02:03:58 +0100 <monochrom> intersect is quadratic time
2020-11-21 02:04:10 +0100hlisp(~hlisp@114.246.35.11)
2020-11-21 02:04:28 +0100 <glguy> or to sort the lists and write a function that takes advantage of the fact that the lists are sorted to do it in one pass through the two lists
2020-11-21 02:04:28 +0100 <Sose> alright, I'll look into Data.Set
2020-11-21 02:04:33 +0100 <monochrom> My list is below two hundread, it's fast enough for me.
2020-11-21 02:05:30 +0100 <jcd> I see! mapM is under 'Basic Monad functions'. Ouch haha. Okay thank you!
2020-11-21 02:05:48 +0100bbro(~bbro@c-24-4-176-204.hsd1.ca.comcast.net)
2020-11-21 02:06:07 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-21 02:08:37 +0100hlisp(~hlisp@114.246.35.11) (Ping timeout: 264 seconds)
2020-11-21 02:10:54 +0100christo(~chris@81.96.113.213)
2020-11-21 02:13:05 +0100hlisp(~hlisp@114.246.35.11)
2020-11-21 02:13:54 +0100bbro(~bbro@c-24-4-176-204.hsd1.ca.comcast.net) (Ping timeout: 272 seconds)
2020-11-21 02:15:21 +0100christo(~chris@81.96.113.213) (Ping timeout: 260 seconds)
2020-11-21 02:15:21 +0100tabemann(~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 02:17:12 +0100christo(~chris@81.96.113.213)
2020-11-21 02:18:21 +0100hlisp(~hlisp@114.246.35.11) (Ping timeout: 256 seconds)
2020-11-21 02:18:33 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2020-11-21 02:19:22 +0100 <Sose> okay, just doing a dumb fromList, intersection and toList with Set takes the time required from minutes to seconds.. thanks again
2020-11-21 02:20:35 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 02:21:25 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.)
2020-11-21 02:23:30 +0100chele(~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2020-11-21 02:23:44 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-11-21 02:24:45 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-11-21 02:26:01 +0100Maxdamantus(~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 264 seconds)
2020-11-21 02:27:12 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:154:88ea:8f88:a5f) (Ping timeout: 260 seconds)
2020-11-21 02:27:31 +0100minimario(2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
2020-11-21 02:27:48 +0100fubu(2fe3e53b@047-227-229-059.res.spectrum.com)
2020-11-21 02:27:52 +0100 <fubu> Hello!
2020-11-21 02:28:13 +0100 <fubu> Why doesn't this function work?
2020-11-21 02:28:14 +0100 <fubu> fibs2 = 1 : 1 : (head $ zipWith (+) fibs2 (tail fibs2))
2020-11-21 02:29:07 +0100sh9(~sh9@softbank060116136158.bbtec.net)
2020-11-21 02:29:41 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee)
2020-11-21 02:29:42 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-21 02:30:52 +0100Tario(~Tario@201.192.165.173)
2020-11-21 02:32:02 +0100 <Ariakenom> fubu: head takes the first element out of a list. while : adds an element to a list. so in x : (y : z) x is an element, y is an element, but z is a list.
2020-11-21 02:32:27 +0100 <Ariakenom> so z shouldnt be an element, it should be a list
2020-11-21 02:32:45 +0100nados(~dan@69-165-210-185.cable.teksavvy.com) (Ping timeout: 240 seconds)
2020-11-21 02:33:56 +0100Lord_of_Life(~Lord@46.217.217.57)
2020-11-21 02:34:22 +0100 <Ariakenom> z in my exanple is your (head $ zipWith (+) fibs2 (tail fibs2))
2020-11-21 02:34:56 +0100Lord_of_Life_(~Lord@46.217.218.71) (Ping timeout: 240 seconds)
2020-11-21 02:35:50 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”)
2020-11-21 02:38:21 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-21 02:39:25 +0100 <fubu> thank you. I fixed the function, but now i'm failing to see how it works
2020-11-21 02:39:30 +0100 <fubu> fibs2 = 1 : 1 : (zipWith (+) fibs2 (tail fibs2))
2020-11-21 02:40:04 +0100 <fubu> I kind of get it, but I don't see how the evaluation works in terms of what is on the stack at each point in time
2020-11-21 02:41:03 +0100 <dsal> What's "the stack"?
2020-11-21 02:41:07 +0100 <Ariakenom> you can do the step by step evaluation on paper
2020-11-21 02:41:59 +0100 <fubu> hm, evaluation stack?
2020-11-21 02:42:14 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-21 02:42:45 +0100 <dsal> That's a list, not a stack, though. Thinking of a stack will be rather confusing.
2020-11-21 02:43:01 +0100 <fubu> i'm also not sure how the two instances of fibs2 on the right hand side are connected
2020-11-21 02:43:08 +0100conal(~conal@64.71.133.70)
2020-11-21 02:43:12 +0100 <dsal> zipWith does that.
2020-11-21 02:43:13 +0100 <dsal> :t zipWith
2020-11-21 02:43:14 +0100 <lambdabot> (a -> b -> c) -> [a] -> [b] -> [c]
2020-11-21 02:43:14 +0100 <fubu> because i know if we do something like f x = g x x, then x only gets evaluated once
2020-11-21 02:43:28 +0100 <fubu> oh yeah, i know how the terms are being added
2020-11-21 02:43:38 +0100 <fubu> i'mi not too sure how it's getting evaluated though
2020-11-21 02:43:52 +0100 <fubu> like you start with 1 : 1 : (zipWith (+) fibs2 (tail fibs2))
2020-11-21 02:44:08 +0100 <fubu> and then it calls the first fib2 on the RHS to evaluate it
2020-11-21 02:44:14 +0100stree(~stree@50-108-97-52.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-11-21 02:44:14 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-21 02:44:21 +0100 <Ariakenom> fubu, once or twice, like that, doesnt matter in this case
2020-11-21 02:44:31 +0100stree(~stree@50-108-97-52.adr01.mskg.mi.frontiernet.net)
2020-11-21 02:44:32 +0100 <dsal> > zipWith (+) [a, b, c, d] (tail [a, b, c, d]) :: [Expr]
2020-11-21 02:44:34 +0100 <lambdabot> [a + b,b + c,c + d]
2020-11-21 02:44:48 +0100 <Ariakenom> you can start with a simpler version
2020-11-21 02:45:13 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-11-21 02:45:35 +0100kupi(uid212005@gateway/web/irccloud.com/x-vjlwewutkgmnxvxr)
2020-11-21 02:45:40 +0100 <Ariakenom> nat = 0 : (map (+1) nat)
2020-11-21 02:45:41 +0100star_cloud(~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2020-11-21 02:45:45 +0100 <dsal> So once you get past the [1,1] at the beginning. It's just an infinite stream of numbers added to the same infinite stream of numbers after dropping the first one.
2020-11-21 02:45:53 +0100 <Ariakenom> or even simpler
2020-11-21 02:46:02 +0100 <Ariakenom> zeroes = 0: zeroes
2020-11-21 02:46:14 +0100 <fubu> yeah i understand the nat case
2020-11-21 02:46:51 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 02:47:13 +0100 <dsal> > let fibs2 = a : b : zipWith (+) fibs2 (tail fibs2) in fibs2 :: [Expr]
2020-11-21 02:47:15 +0100 <lambdabot> [a,b,a + b,b + (a + b),a + b + (b + (a + b)),b + (a + b) + (a + b + (b + (a ...
2020-11-21 02:47:47 +0100 <dsal> It's not super easy to think about that in terms of Peano numbers...
2020-11-21 02:48:08 +0100 <dsal> > zipWith (+) [1..5] [2..6]
2020-11-21 02:48:10 +0100 <lambdabot> [3,5,7,9,11]
2020-11-21 02:48:32 +0100 <dsal> That's all it's doing.
2020-11-21 02:48:41 +0100 <fubu> ok, i understand the zipWith now
2020-11-21 02:48:52 +0100 <fubu> but what's the order in which things get evaluated?
2020-11-21 02:48:57 +0100 <fubu> because at the first stage, you have something like
2020-11-21 02:49:12 +0100 <fubu> 1 : 1 : (zipWith (+) [1,1,???] [1,???]) right
2020-11-21 02:49:19 +0100 <fubu> where you only know the 1 : 1 exists
2020-11-21 02:49:35 +0100 <fubu> so does it then lazily do the 1+1?
2020-11-21 02:49:41 +0100 <fubu> and attach it to the list
2020-11-21 02:49:45 +0100 <fubu> and then fill in the next step?
2020-11-21 02:50:02 +0100 <fubu> and now it's 1 : 1 : (zipWith (+) [1, 1, 2, ...] [1, 2, ...] )
2020-11-21 02:50:46 +0100 <Ariakenom> well you know the first value of the two zipWith lists. so you know the first value of that result
2020-11-21 02:51:15 +0100 <fubu> but isn't + lazy?
2020-11-21 02:51:23 +0100 <fubu> so the result will be stored as 1+1 right
2020-11-21 02:51:45 +0100 <Ariakenom> zipWith (+) [1,1,..] [1,..] = 2: zipWith (+) [1,..] [..]
2020-11-21 02:51:58 +0100 <Ariakenom> fubu, sure
2020-11-21 02:52:28 +0100 <Ariakenom> if you print (show) 1+1 then you will get the string "2"
2020-11-21 02:52:54 +0100 <dsal> "stored" is kind of a weird word. I don't think it's "stored" anywhere.
2020-11-21 02:52:59 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee)
2020-11-21 02:53:32 +0100 <fubu> how does the evaluation process work?
2020-11-21 02:53:40 +0100 <dsal> > let fibs2 = a : b : zipWith (+) fibs2 (tail fibs2) in fibs2 :: [Expr]
2020-11-21 02:53:43 +0100 <lambdabot> [a,b,a + b,b + (a + b),a + b + (b + (a + b)),b + (a + b) + (a + b + (b + (a ...
2020-11-21 02:54:14 +0100 <fubu> like after compilation how does haskell know what order to do the lazy evaluation in?
2020-11-21 02:54:46 +0100 <dsal> I'm not sure what you mean. There's a clear dependency.
2020-11-21 02:55:00 +0100 <Ariakenom> the things that are computed are forced by main::IO ()
2020-11-21 02:55:19 +0100 <fubu> like
2020-11-21 02:55:21 +0100 <dsal> Yeah, if you don't ever use the value, it's never computed, so it's not relevant.
2020-11-21 02:55:42 +0100 <fubu> you have fibs2 = 1 : 1 : (zipWith (+) fibs2 (tail fibs2))
2020-11-21 02:55:55 +0100 <fubu> are all 3 fibs2 variables linked to each other
2020-11-21 02:56:13 +0100 <dsal> > let fibs2 = 1 : 1 : (zipWith (+) fibs2 (tail fibs2)) in head fibs2
2020-11-21 02:56:15 +0100 <lambdabot> 1
2020-11-21 02:56:19 +0100 <fubu> so that when you compute a new value in fibs2, all 3 variables are automatically updated?
2020-11-21 02:56:30 +0100 <Ariakenom> yeah, same variable
2020-11-21 02:56:40 +0100 <Ariakenom> same memory object
2020-11-21 02:57:17 +0100 <dsal> i.e., it's not a variable at all, and you're not so much computing values or updating things. It's just a list.
2020-11-21 02:57:58 +0100 <Ariakenom> note that things are always updated from less information to more information. they dont change previous information
2020-11-21 02:58:11 +0100 <dsal> > let as = 1 : 2 : 3 : as in take 11 as -- it just happens to include itself
2020-11-21 02:58:12 +0100 <lambdabot> [1,2,3,1,2,3,1,2,3,1,2]
2020-11-21 02:58:41 +0100 <dsal> But if you were to evaluate this concept manually without thinking about how you'd do it in C or something, it'd be pretty clear.
2020-11-21 02:58:49 +0100falafel_(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-21 02:58:53 +0100 <fubu> ah yes, i come from C :P
2020-11-21 02:59:13 +0100 <dsal> Dropping some of that baggage can be hard. :)
2020-11-21 02:59:32 +0100 <dsal> You don't tell Haskell how to do things (mostly). You tell Haskell what you want done.
2020-11-21 03:00:01 +0100 <dsal> You want a list that's made up of itself? You express it in the most simple way, and the runtime does the thing it could do to make that happen.
2020-11-21 03:00:17 +0100 <Ariakenom> so (zeroes = 0: zeroes) the tail of the list actual is the same pointer as the beginning
2020-11-21 03:00:17 +0100 <dsal> > let a = a in a -- of course, it has to at least make sense
2020-11-21 03:00:21 +0100 <lambdabot> *Exception: <<loop>>
2020-11-21 03:01:12 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-11-21 03:01:15 +0100toorevitimirp(~tooreviti@117.182.180.118)
2020-11-21 03:01:26 +0100 <dsal> But lists aren't necessarily slots of discrete values. They can just be an infinite recipe list for producing values.
2020-11-21 03:01:33 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 2.9)
2020-11-21 03:01:36 +0100 <dsal> > [ x^2 | x <- [1..] ]
2020-11-21 03:01:38 +0100 <lambdabot> [1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484...
2020-11-21 03:01:50 +0100 <dsal> That's all the squares. If you want the sum of all squares...
2020-11-21 03:01:54 +0100 <dsal> > sum [ x^2 | x <- [1..] ]
2020-11-21 03:02:00 +0100 <lambdabot> mueval-core: Time limit exceeded
2020-11-21 03:02:11 +0100 <dsal> lambdabot times out, but if you did that yourself and waited long enough, you'd know the sum of all squares.
2020-11-21 03:02:22 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-eizsscpohqhxizqc) (Quit: Connection closed for inactivity)
2020-11-21 03:02:47 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 260 seconds)
2020-11-21 03:02:58 +0100 <Ariakenom> (!) this claim is unverified
2020-11-21 03:03:02 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 260 seconds)
2020-11-21 03:03:33 +0100Codaraxis(~Codaraxis@91.193.4.24)
2020-11-21 03:03:57 +0100 <dsal> That's true, I personally lack the patience to wait for it to finish.
2020-11-21 03:04:21 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-11-21 03:05:17 +0100cosimone_(~cosimone@5.170.240.6)
2020-11-21 03:05:42 +0100 <Ariakenom> (I just used a twitter.com meme in IRC)
2020-11-21 03:05:50 +0100 <dsal> > sum . take 1000 $ [ x^2 | x <- [1..] ] -- but you can get a taste by just grabbing the first 1000
2020-11-21 03:05:52 +0100 <lambdabot> 333833500
2020-11-21 03:06:19 +0100 <dsal> Oh wow, I didn't even get the reference out of context. heh
2020-11-21 03:06:28 +0100 <Ariakenom> :D
2020-11-21 03:08:06 +0100 <dsal> While it is true that that's what I asked the computer to do, it's also an example of a poorly selected algorithm.
2020-11-21 03:08:46 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-frcalbfvnpyatyuv)
2020-11-21 03:13:00 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 03:13:39 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-11-21 03:14:08 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt)
2020-11-21 03:14:42 +0100cosimone_(~cosimone@5.170.240.6) (Quit: cosimone_)
2020-11-21 03:15:47 +0100jchia__(~jchia@58.32.37.146) (Ping timeout: 265 seconds)
2020-11-21 03:17:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds)
2020-11-21 03:17:43 +0100jchia__(~jchia@58.32.37.146)
2020-11-21 03:18:37 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-11-21 03:19:59 +0100fubu(2fe3e53b@047-227-229-059.res.spectrum.com) (Remote host closed the connection)
2020-11-21 03:20:01 +0100toorevitimirp(~tooreviti@117.182.180.118) (Remote host closed the connection)
2020-11-21 03:20:54 +0100 <ski> dminuoso : ok
2020-11-21 03:21:42 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-21 03:23:37 +0100Jonkimi727406120(~Jonkimi@115.44.7.41)
2020-11-21 03:23:45 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-21 03:24:23 +0100 <kupi> > 1
2020-11-21 03:24:25 +0100 <lambdabot> 1
2020-11-21 03:24:43 +0100ph88_(~ph88@2a02:8109:9e00:7e5c:11e6:1867:44b7:d623) (Ping timeout: 272 seconds)
2020-11-21 03:25:00 +0100 <kupi> >foldl (+) 0 [0..]
2020-11-21 03:25:05 +0100Entertainment(~entertain@104.246.132.210) ()
2020-11-21 03:25:50 +0100 <kupi> oh no
2020-11-21 03:26:10 +0100 <dsal> You should've used foldl'
2020-11-21 03:26:36 +0100 <kupi> i intentionally used the lazy version
2020-11-21 03:26:50 +0100 <kupi> wanted to see how does it respond
2020-11-21 03:27:30 +0100Maxdamantus(~Maxdamant@unaffiliated/maxdamantus)
2020-11-21 03:27:54 +0100 <kupi> >"still alive"
2020-11-21 03:28:31 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-21 03:28:55 +0100 <texasmynsted> sm[m]: Okay I will try your suggestions. Thank you.
2020-11-21 03:29:11 +0100 <dsal> kupi: lambdabot supports private intimate chats as well.
2020-11-21 03:29:19 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-11-21 03:29:29 +0100 <Ariakenom> kupi, space after >
2020-11-21 03:29:36 +0100vicfred(~vicfred@unaffiliated/vicfred) (Max SendQ exceeded)
2020-11-21 03:29:37 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-21 03:29:47 +0100luke(~luke@bitnomial/staff/luke)
2020-11-21 03:30:05 +0100Jonkimi727406120(~Jonkimi@115.44.7.41) (Ping timeout: 240 seconds)
2020-11-21 03:30:06 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-21 03:30:47 +0100 <dsal> Oh, my client doesn't render it that way. It automatically puts it into some kind of markdown quote format.
2020-11-21 03:31:32 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 03:31:36 +0100Chi1thangoo(~Chi1thang@87.112.60.168) (Ping timeout: 240 seconds)
2020-11-21 03:32:32 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Read error: Connection reset by peer)
2020-11-21 03:33:17 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 03:33:52 +0100Tario(~Tario@201.192.165.173)
2020-11-21 03:34:57 +0100Deide(~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-11-21 03:35:44 +0100toorevitimirp(~tooreviti@117.182.180.118)
2020-11-21 03:35:45 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-11-21 03:37:23 +0100xff0x(~fox@2001:1a81:5385:e100:f695:2019:7725:a87d) (Ping timeout: 272 seconds)
2020-11-21 03:38:01 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:f0fd:283a:1f37:de16) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 03:38:03 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-11-21 03:38:57 +0100xff0x(~fox@2001:1a81:53c2:b800:6e69:5f46:fae4:631a)
2020-11-21 03:47:29 +0100luke(~luke@bitnomial/staff/luke) (Quit: sleep)
2020-11-21 03:53:38 +0100et09(~et09@unaffiliated/endolphin)
2020-11-21 03:54:11 +0100sand_dul1(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-11-21 03:57:04 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Quit: Lost terminal)
2020-11-21 03:58:09 +0100siloxid(~user@unaffiliated/siloxid) (Remote host closed the connection)
2020-11-21 03:58:25 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 03:58:42 +0100sand_dul1(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Client Quit)
2020-11-21 04:03:27 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
2020-11-21 04:03:27 +0100falafel_(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
2020-11-21 04:05:50 +0100 <Axman6> lambdabot also doesn't respond if you use the wrong syntax...
2020-11-21 04:05:56 +0100cosimone(~cosimone@5.170.240.6) (Quit: cosimone)
2020-11-21 04:09:18 +0100jedws(~jedws@101.184.150.93) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 04:10:25 +0100alp(~alp@88.126.45.36) (Ping timeout: 240 seconds)
2020-11-21 04:13:44 +0100 <siraben> Anyone working with GHC 8.12's linear types with a Nix overlay?
2020-11-21 04:15:04 +0100drbean(~drbean@TC210-63-209-164.static.apol.com.tw)
2020-11-21 04:15:16 +0100nineonine(~nineonine@50.216.62.2) (Ping timeout: 240 seconds)
2020-11-21 04:16:13 +0100day(~Unknown@unaffiliated/day) (Ping timeout: 256 seconds)
2020-11-21 04:18:01 +0100hackageZ-IO 0.1.8.1 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.1.8.1 (winterland)
2020-11-21 04:23:22 +0100jedai42(~jedai@lfbn-dij-1-708-251.w90-100.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2020-11-21 04:25:39 +0100shatriff(~vitaliish@176.52.219.10) (Remote host closed the connection)
2020-11-21 04:27:05 +0100day(~Unknown@unaffiliated/day)
2020-11-21 04:29:42 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 04:31:09 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2020-11-21 04:33:18 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net)
2020-11-21 04:34:37 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
2020-11-21 04:35:32 +0100acidjnk_new2(~acidjnk@p200300d0c719ff68f4d20d2f20034438.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-21 04:38:28 +0100machinedgod(~machinedg@24.105.81.50)
2020-11-21 04:40:18 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55)
2020-11-21 04:40:33 +0100boxscape(54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Client Quit)
2020-11-21 04:43:17 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2020-11-21 04:43:22 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 272 seconds)
2020-11-21 04:43:40 +0100lagothrixGuest39499
2020-11-21 04:43:40 +0100Guest39499(~lagothrix@unaffiliated/lagothrix) (Killed (tepper.freenode.net (Nickname regained by services)))
2020-11-21 04:43:46 +0100lagothrix(~lagothrix@unaffiliated/lagothrix)
2020-11-21 04:44:10 +0100n0042(d055ed89@208.85.237.137)
2020-11-21 04:47:55 +0100n0042(d055ed89@208.85.237.137) (Remote host closed the connection)
2020-11-21 04:49:00 +0100fresheyeball(~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1)
2020-11-21 04:50:45 +0100theDon(~td@94.134.91.165) (Ping timeout: 260 seconds)
2020-11-21 04:52:27 +0100theDon(~td@94.134.91.87)
2020-11-21 04:55:08 +0100wei2912(~wei2912@unaffiliated/wei2912)
2020-11-21 04:56:14 +0100maroloccio(~marolocci@2a02:8084:221:ce00:164f:8aff:fed8:411d) (Quit: WeeChat 2.3)
2020-11-21 04:56:56 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-21 04:57:13 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds)
2020-11-21 04:58:24 +0100Jonkimi727406120(~Jonkimi@115.44.7.41)
2020-11-21 05:00:00 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-11-21 05:02:18 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 05:02:53 +0100Jonkimi727406120(~Jonkimi@115.44.7.41) (Ping timeout: 260 seconds)
2020-11-21 05:04:08 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 05:06:00 +0100hoker(2fe3e53b@047-227-229-059.res.spectrum.com)
2020-11-21 05:06:18 +0100 <hoker> hi, so I was going through CIS194 and got stuck on this last part, "supply monad": https://www.seas.upenn.edu/~cis194/fall16/hw/07-laziness.html
2020-11-21 05:06:39 +0100 <hoker> i was able to write the monad functions, but didn't understand how to label the leaves of a tree with natural numbers
2020-11-21 05:07:37 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
2020-11-21 05:08:01 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee)
2020-11-21 05:08:35 +0100crdrost(~crdrost@2601:646:8280:85f0:90f7:1b03:f01f:afae) (Quit: This computer has gone to sleep)
2020-11-21 05:13:19 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 05:14:39 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 05:17:49 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-21 05:21:37 +0100nineonine(~nineonine@50.216.62.2)
2020-11-21 05:23:02 +0100nineonine(~nineonine@50.216.62.2) (Client Quit)
2020-11-21 05:26:08 +0100howdoi(uid224@gateway/web/irccloud.com/x-mmsjxvzuqvfjlnly) (Quit: Connection closed for inactivity)
2020-11-21 05:27:20 +0100christo(~chris@81.96.113.213)
2020-11-21 05:28:13 +0100rprije(~rprije@124.148.131.132) (Remote host closed the connection)
2020-11-21 05:28:34 +0100rprije(~rprije@124.148.131.132)
2020-11-21 05:30:14 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-21 05:30:37 +0100Jonkimi727406120(~Jonkimi@115.44.7.41)
2020-11-21 05:31:30 +0100 <c_wraith> hoker: the idea is to use the supply to generate a list of natural numbers. Then recurse through the tree, replacing the node value with the next value from the supply when you hit a leaf.
2020-11-21 05:31:52 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving)
2020-11-21 05:32:00 +0100 <hoker> yeah, so I didn't actually understand the point of mapSupply, mapSupply2, and bindSupply
2020-11-21 05:32:31 +0100 <c_wraith> those are the implementation for the Functor/Applicative/Monad instances
2020-11-21 05:32:43 +0100 <c_wraith> Since you have those, you can just use do notation.
2020-11-21 05:34:36 +0100 <c_wraith> The next section shows using do notation in a similar way. With a different type, but it shows the same ideas.
2020-11-21 05:34:45 +0100Jonkimi727406120(~Jonkimi@115.44.7.41) (Ping timeout: 240 seconds)
2020-11-21 05:35:00 +0100 <hoker> yeah, can you explain intuitively what the functor/applicative/monad instances mean?
2020-11-21 05:35:29 +0100christo(~chris@81.96.113.213)
2020-11-21 05:35:39 +0100 <hoker> like i guess mapSupply is like taking some stream labeler and returning a new stream labeler
2020-11-21 05:35:46 +0100 <hoker> where the transformation comes from the function
2020-11-21 05:35:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 05:35:51 +0100 <c_wraith> not quickly. They're... more abstract than most people are ready to grasp the first time they run into them.
2020-11-21 05:36:41 +0100mozzarella(~sam@unaffiliated/sam113101) (Ping timeout: 256 seconds)
2020-11-21 05:37:01 +0100jedai42(~jedai@lfbn-dij-1-708-251.w90-100.abo.wanadoo.fr)
2020-11-21 05:37:07 +0100 <c_wraith> at an extremely vague level - Functor lets you modify inside a type. Applicative lets you combine values in a fixed way. Monad lets you combine them in a context-sensitive way.
2020-11-21 05:37:16 +0100 <c_wraith> But that's really too vague to mean much.
2020-11-21 05:37:32 +0100 <hoker> oh i've seen them a few times, i just meant in the context of supply specifically
2020-11-21 05:37:38 +0100 <hoker> i'm not too comfortable
2020-11-21 05:37:42 +0100 <hoker> but i'm familiar
2020-11-21 05:38:25 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
2020-11-21 05:39:41 +0100 <c_wraith> the only interesting part from the perspective of using it is the value named get. (It's not a function, at least from the outside)
2020-11-21 05:39:49 +0100christo(~chris@81.96.113.213) (Ping timeout: 265 seconds)
2020-11-21 05:39:55 +0100 <c_wraith> You can bind the result of get to fetch the next value from the supply
2020-11-21 05:40:17 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 260 seconds)
2020-11-21 05:41:14 +0100 <c_wraith> The various instances you have take care of chaining the new value forward afterwards. The nice thing there is that you don't have to handle parameters carefully to make sure you don't mess up the handling of the stream. They're just taken care of for you.
2020-11-21 05:43:00 +0100 <c_wraith> Given the starting point in the last exercise, you should be able to do something like runSupply nats (do x <- get ; y <- get ; return (x, y)) and get a result of (0,1)
2020-11-21 05:44:30 +0100 <c_wraith> Does that make it any clearer what's going on there?
2020-11-21 05:45:29 +0100Sheilong(uid293653@gateway/web/irccloud.com/x-fgwigxpmxrbdsiil) ()
2020-11-21 05:45:36 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds)
2020-11-21 05:47:45 +0100jedws(~jedws@101.184.150.93)
2020-11-21 05:48:24 +0100hoker(2fe3e53b@047-227-229-059.res.spectrum.com) (Ping timeout: 245 seconds)
2020-11-21 05:48:29 +0100borne(~fritjof@200116b86455d000f1dc39039d201adf.dip.versatel-1u1.de) (Ping timeout: 272 seconds)
2020-11-21 05:53:10 +0100mozzarella(~sam@unaffiliated/sam113101)
2020-11-21 06:01:53 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 06:05:45 +0100SanchayanMaity(~Sanchayan@122.167.90.144)
2020-11-21 06:07:23 +0100Tario(~Tario@201.192.165.173) (Ping timeout: 260 seconds)
2020-11-21 06:07:29 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 272 seconds)
2020-11-21 06:09:41 +0100conal(~conal@64.71.133.70)
2020-11-21 06:09:56 +0100texasmynsted(~texasmyns@212.102.45.109) (Remote host closed the connection)
2020-11-21 06:10:33 +0100texasmynsted(~texasmyns@212.102.45.109)
2020-11-21 06:11:30 +0100gxt(~gxt@gateway/tor-sasl/gxt) (Remote host closed the connection)
2020-11-21 06:12:02 +0100berberman_(~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds)
2020-11-21 06:12:10 +0100gxt(~gxt@gateway/tor-sasl/gxt)
2020-11-21 06:12:30 +0100berberman(~berberman@unaffiliated/berberman)
2020-11-21 06:13:05 +0100conal(~conal@64.71.133.70) (Client Quit)
2020-11-21 06:13:44 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 06:15:00 +0100texasmynsted(~texasmyns@212.102.45.109) (Ping timeout: 256 seconds)
2020-11-21 06:15:20 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-21 06:17:27 +0100xnt14(~xnt14@185.204.1.185) (Remote host closed the connection)
2020-11-21 06:19:02 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
2020-11-21 06:20:22 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
2020-11-21 06:21:09 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-21 06:23:43 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds)
2020-11-21 06:36:13 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 260 seconds)
2020-11-21 06:36:44 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds)
2020-11-21 06:37:22 +0100drbean(~drbean@TC210-63-209-164.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in)
2020-11-21 06:39:16 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca)
2020-11-21 06:39:34 +0100gproto023(~gproto23@unaffiliated/gproto23) (Remote host closed the connection)
2020-11-21 06:40:01 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-21 06:41:33 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-11-21 06:42:31 +0100hackageoptparse-applicative 0.16.1.0 - Utilities and combinators for parsing command line options https://hackage.haskell.org/package/optparse-applicative-0.16.1.0 (huw)
2020-11-21 06:43:26 +0100toorevitimirp(~tooreviti@117.182.180.118) (Remote host closed the connection)
2020-11-21 06:43:54 +0100texasmynsted(~texasmyns@212.102.45.109)
2020-11-21 06:45:29 +0100nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-11-21 06:46:42 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 06:46:47 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 06:47:32 +0100perry69420(6ee39737@110.227.151.55)
2020-11-21 06:49:07 +0100 <perry69420> I found a minor error here - https://wiki.haskell.org/Dynamic_programming_example . How can I edit the page? (I do not have an account, making the account is a long process)
2020-11-21 06:50:45 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-11-21 06:53:53 +0100 <perry69420> This line "Optional: If you know Applicatives and that Maybe is an Applicative, you can write it in a more regular way: " should be using Alternative, not Applicative
2020-11-21 06:55:11 +0100day_(~Unknown@unaffiliated/day)
2020-11-21 06:57:34 +0100vhs_(~vhs@41.46.228.159) (Ping timeout: 256 seconds)
2020-11-21 06:58:16 +0100day(~Unknown@unaffiliated/day) (Ping timeout: 240 seconds)
2020-11-21 06:58:16 +0100day_day
2020-11-21 07:00:00 +0100gproto023gproto23
2020-11-21 07:00:17 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-21 07:01:00 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 07:03:56 +0100darjeeling_(~darjeelin@122.245.211.11) (Ping timeout: 240 seconds)
2020-11-21 07:04:31 +0100Alleria_(~AllahuAkb@69.202.254.168) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 07:04:52 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 256 seconds)
2020-11-21 07:05:08 +0100et09(~et09@unaffiliated/endolphin) (Ping timeout: 260 seconds)
2020-11-21 07:05:10 +0100bbro(~bbro@c-24-4-176-204.hsd1.ca.comcast.net)
2020-11-21 07:06:05 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
2020-11-21 07:06:10 +0100pfurla(~pfurla@64.145.79.196)
2020-11-21 07:06:14 +0100urodna(~urodna@unaffiliated/urodna) (Quit: urodna)
2020-11-21 07:08:16 +0100SanchayanMaity(~Sanchayan@122.167.90.144) (Ping timeout: 256 seconds)
2020-11-21 07:08:31 +0100SanchayanMaity(~Sanchayan@106.200.237.128)
2020-11-21 07:09:04 +0100jamestmartin(james@jtmar.me) (Quit: ZNC 1.8.2+deb1 - https://znc.in)
2020-11-21 07:10:41 +0100johnw(~johnw@haskell/developer/johnw) (Quit: ZNC - http://znc.in)
2020-11-21 07:13:00 +0100jamestmartin(~james@jtmar.me)
2020-11-21 07:13:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 07:16:47 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 07:17:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-21 07:18:43 +0100 <ski> perry69420 : what wording do you think would be more appropriate ?
2020-11-21 07:18:58 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Quit: Ping timeout (120 seconds))
2020-11-21 07:19:18 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-21 07:19:18 +0100nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-11-21 07:20:15 +0100nados(~dan@107-190-41-58.cpe.teksavvy.com)
2020-11-21 07:20:34 +0100 <ski> replacing both occurances of "Applicative" with "Alternative" ?
2020-11-21 07:20:57 +0100Sarma(~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds)
2020-11-21 07:21:47 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
2020-11-21 07:21:52 +0100darjeeling_(~darjeelin@122.245.211.11)
2020-11-21 07:22:24 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-11-21 07:24:48 +0100 <perry69420> ski yeah, I think both should be swapped. I guess it should be mentioned that Alternative required Applicative for clarity but that's a secondary issue
2020-11-21 07:25:50 +0100 <ski> perhaps saying "If you know Applicatives & Alternatives and ..." for the first one ?
2020-11-21 07:26:10 +0100darjeeling_(~darjeelin@122.245.211.11) (Ping timeout: 246 seconds)
2020-11-21 07:26:58 +0100jedws(~jedws@101.184.150.93) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 07:27:55 +0100 <perry69420> That seems good. But should it mention Functor as well then?
2020-11-21 07:28:36 +0100 <ski> could say "Applicative and Alternative functors", i suppose
2020-11-21 07:28:37 +0100SanchayanM(~Sanchayan@223.226.47.98)
2020-11-21 07:28:49 +0100 <perry69420> That sounds better!
2020-11-21 07:29:31 +0100andos(~dan@107-190-41-58.cpe.teksavvy.com)
2020-11-21 07:29:48 +0100nados(~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer)
2020-11-21 07:30:26 +0100SanchayanMaity(~Sanchayan@106.200.237.128) (Ping timeout: 256 seconds)
2020-11-21 07:33:12 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a4db:c497:ce73:79ee) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 07:34:00 +0100 <ski> ("is an Alternative" or "is Alternative" ?)
2020-11-21 07:35:01 +0100 <perry69420> I'm not sure, sorry! English isn't my first language
2020-11-21 07:35:10 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2020-11-21 07:35:37 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds)
2020-11-21 07:36:36 +0100 <perry69420> "If you know Applicative and Alternative Functor classes and that Maybe is an Alternative". Is this fine?
2020-11-21 07:36:38 +0100 <ski> i think people tend to say "Applicative functor", and not just "Applicative", as a noun. but "Applicative"/"Alternative" as an adjective could work
2020-11-21 07:37:45 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
2020-11-21 07:38:54 +0100darjeeling_(~darjeelin@122.245.211.11)
2020-11-21 07:38:55 +0100 <ski> i think i'd lean towards the adjectival form here. if someone objects, they can change it
2020-11-21 07:38:57 +0100 <perry69420> then "is Alternative" makes more sense
2020-11-21 07:39:01 +0100 <perry69420> Sounds good
2020-11-21 07:40:09 +0100 <ski> (for "Monad", i don't think it works using it as an adjective. "monadic" is used, but not for quite the corresponding thing)
2020-11-21 07:41:30 +0100 <ski> (now i'm wondering whether to say "know about" or just "know")
2020-11-21 07:41:30 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 07:41:41 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 07:41:52 +0100 <perry69420> haha I think you're overthinking.
2020-11-21 07:42:34 +0100 <ski> perry69420 : refresh
2020-11-21 07:43:12 +0100 <perry69420> Thanks ski. I'll mail them to make me an account as well
2020-11-21 07:44:57 +0100skinods
2020-11-21 07:49:34 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 272 seconds)
2020-11-21 07:52:49 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-21 07:57:38 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-21 08:03:00 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 08:07:40 +0100conal(~conal@64.71.133.70)
2020-11-21 08:08:10 +0100pfurla(~pfurla@64.145.79.196) (Ping timeout: 260 seconds)
2020-11-21 08:10:03 +0100lemmih(~lemmih@2406:3003:2072:44:1424:8740:3970:71a)
2020-11-21 08:11:52 +0100n0042(d055ed89@208.85.237.137)
2020-11-21 08:12:06 +0100pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2020-11-21 08:13:20 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-21 08:15:08 +0100jedws(~jedws@101.184.150.93)
2020-11-21 08:15:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 08:17:31 +0100jedws(~jedws@101.184.150.93) (Client Quit)
2020-11-21 08:18:20 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-21 08:19:20 +0100alx741(~alx741@181.196.68.156) (Ping timeout: 256 seconds)
2020-11-21 08:19:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-21 08:19:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds)
2020-11-21 08:20:36 +0100aarvar(~foewfoiew@50.35.43.33) (Ping timeout: 240 seconds)
2020-11-21 08:23:09 +0100bbro(~bbro@c-24-4-176-204.hsd1.ca.comcast.net) (Quit: Leaving)
2020-11-21 08:24:16 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 08:25:16 +0100AIM`(~AIM`@185.163.110.116)
2020-11-21 08:25:16 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 08:25:47 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 08:26:16 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 240 seconds)
2020-11-21 08:28:12 +0100falafel__(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-21 08:28:29 +0100isBEKaml(~isBEKaml@unaffiliated/isbekaml)
2020-11-21 08:29:30 +0100newbeee(6c1d4e90@pool-108-29-78-144.nycmny.fios.verizon.net)
2020-11-21 08:31:30 +0100hackagepandora 0.3.2 - A box of patterns and paradigms https://hackage.haskell.org/package/pandora-0.3.2 (iokasimovmt)
2020-11-21 08:31:45 +0100vicfred(~vicfred@unaffiliated/vicfred) (Ping timeout: 240 seconds)
2020-11-21 08:32:21 +0100alx741(~alx741@181.196.69.47)
2020-11-21 08:35:10 +0100n0042(d055ed89@208.85.237.137) (Remote host closed the connection)
2020-11-21 08:37:02 +0100chkno_(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 08:37:02 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 08:37:52 +0100wei2912(~wei2912@unaffiliated/wei2912) (Remote host closed the connection)
2020-11-21 08:38:27 +0100 <Sose> is there a way to make "brittany" always format "where" the same way? funnily enough in my current file it seems to alternate every time and it looks a bit funny imo...
2020-11-21 08:39:36 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
2020-11-21 08:40:42 +0100edaou(~elie@178.135.1.49)
2020-11-21 08:40:46 +0100 <Sose> wait a sec.. it just did that suddenly, or atleast left them alone after I made them all look similar
2020-11-21 08:41:42 +0100falafel__(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
2020-11-21 08:45:09 +0100edaou(~elie@178.135.1.49) ("Using Circe, the loveliest of all IRC clients")
2020-11-21 08:51:55 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-21 08:53:38 +0100Sarma(~Amras@unaffiliated/amras0000)
2020-11-21 08:54:48 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-21 08:56:57 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 08:57:00 +0100bitmagie(~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de)
2020-11-21 08:57:12 +0100jcd(~user@2601:282:1300:7cb0::5be7) (Remote host closed the connection)
2020-11-21 09:01:37 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-21 09:02:17 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 272 seconds)
2020-11-21 09:02:55 +0100 <jophish> Woo, got some vulkan ray tracing running!
2020-11-21 09:03:14 +0100 <jophish> 60Hz of blue background!
2020-11-21 09:08:47 +0100johnw(~johnw@haskell/developer/johnw)
2020-11-21 09:16:47 +0100bitmagie(~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-21 09:32:10 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
2020-11-21 09:37:17 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 09:39:44 +0100bitmagie(~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de)
2020-11-21 09:40:21 +0100chaosmasttter(~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de)
2020-11-21 09:41:50 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 256 seconds)
2020-11-21 09:42:20 +0100Varis(~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-21 09:42:52 +0100dansho(~dansho@ip68-108-167-185.lv.lv.cox.net)
2020-11-21 09:43:26 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-21 09:44:14 +0100Varis(~Tadas@unaffiliated/varis)
2020-11-21 09:45:36 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
2020-11-21 09:48:24 +0100newbeee(6c1d4e90@pool-108-29-78-144.nycmny.fios.verizon.net) (Ping timeout: 245 seconds)
2020-11-21 09:49:37 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-11-21 09:49:38 +0100gproto0023(~gproto23@unaffiliated/gproto23)
2020-11-21 09:50:56 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-11-21 09:51:08 +0100Lord_of_Life(~Lord@46.217.217.57) (Changing host)
2020-11-21 09:51:08 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-11-21 09:51:24 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2020-11-21 09:51:45 +0100gproto023(~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
2020-11-21 09:52:04 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-11-21 09:53:24 +0100shangxiao(~davids@101.181.159.140)
2020-11-21 09:54:37 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit)
2020-11-21 09:55:19 +0100dansho(~dansho@ip68-108-167-185.lv.lv.cox.net) (Quit: Leaving)
2020-11-21 09:55:22 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 09:55:54 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-11-21 09:56:35 +0100mananamenos(~mananamen@84.122.202.215.dyn.user.ono.com)
2020-11-21 09:57:28 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:8500:38e7:4522:4d5)
2020-11-21 09:59:36 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-21 10:00:22 +0100alp(~alp@2a01:e0a:58b:4920:487a:c7d8:cfd9:16b5)
2020-11-21 10:01:47 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa)
2020-11-21 10:02:22 +0100bitlord(5b5a2c1b@s91904427.blix.com)
2020-11-21 10:02:46 +0100bitlordGuest24698
2020-11-21 10:06:32 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-11-21 10:13:38 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-21 10:13:54 +0100bitmagie(~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-21 10:15:04 +0100perry69420(6ee39737@110.227.151.55) (Ping timeout: 245 seconds)
2020-11-21 10:15:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 10:16:44 +0100da39a3ee5e6b4b0d(~da39a3ee5@2403:6200:8876:6c06:8500:38e7:4522:4d5) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 10:18:57 +0100mbomba(~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0)
2020-11-21 10:19:47 +0100 <siraben> jophish: using what library?
2020-11-21 10:20:01 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
2020-11-21 10:22:37 +0100Guest24698(5b5a2c1b@s91904427.blix.com) (Remote host closed the connection)
2020-11-21 10:23:16 +0100infinity0(~infinity0@freenet/developer/infinity0) (Ping timeout: 240 seconds)
2020-11-21 10:23:49 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-21 10:23:54 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 10:26:08 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 10:26:16 +0100shangxiao(~davids@101.181.159.140) (Ping timeout: 240 seconds)
2020-11-21 10:26:22 +0100Tuplanolla(~Tuplanoll@91-159-68-239.elisa-laajakaista.fi)
2020-11-21 10:29:01 +0100shangxiao(~davids@101.181.159.140)
2020-11-21 10:30:00 +0100pavonia(~user@unaffiliated/siracusa) (Quit: Bye!)
2020-11-21 10:32:32 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-21 10:32:58 +0100Graypup_(Graypup@lfcode.ca) (Ping timeout: 272 seconds)
2020-11-21 10:34:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 10:35:29 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-11-21 10:38:14 +0100codedmart(~codedmart@149.28.9.205) (Quit: ZNC 1.7.5 - https://znc.in)
2020-11-21 10:38:20 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-11-21 10:38:25 +0100Codaraxis(~Codaraxis@91.193.4.24) (Remote host closed the connection)
2020-11-21 10:38:33 +0100codedmart(~codedmart@149.28.9.205)
2020-11-21 10:38:47 +0100Codaraxis(~Codaraxis@91.193.4.24)
2020-11-21 10:39:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-21 10:39:56 +0100andos(~dan@107-190-41-58.cpe.teksavvy.com) (Ping timeout: 240 seconds)
2020-11-21 10:40:38 +0100Graypup_(Graypup@lfcode.ca)
2020-11-21 10:40:39 +0100avdb(~avdb@ip-213-49-103-194.dsl.scarlet.be)
2020-11-21 10:46:09 +0100avdb(~avdb@ip-213-49-103-194.dsl.scarlet.be) (Quit: avdb)
2020-11-21 10:50:18 +0100avdb(~avdb@ip-213-49-103-194.dsl.scarlet.be)
2020-11-21 10:50:48 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-11-21 10:51:16 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 10:52:32 +0100wwwww(~wwwww@unaffiliated/wwwww) (Ping timeout: 265 seconds)
2020-11-21 10:54:19 +0100wwwww(~wwwww@unaffiliated/wwwww)
2020-11-21 10:56:52 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 10:57:51 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 10:59:29 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 11:00:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-21 11:01:32 +0100 <jophish> siraben: mine :D (vulkan)
2020-11-21 11:02:22 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-frcalbfvnpyatyuv) (Quit: Connection closed for inactivity)
2020-11-21 11:02:52 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 260 seconds)
2020-11-21 11:04:30 +0100infinity0(~infinity0@freenet/developer/infinity0)
2020-11-21 11:08:25 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:c0a0:dc60:ea9e:fbab)
2020-11-21 11:08:38 +0100avdb(~avdb@ip-213-49-103-194.dsl.scarlet.be) (Quit: avdb)
2020-11-21 11:09:41 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer)
2020-11-21 11:10:07 +0100 <siraben> jophish: nice!
2020-11-21 11:10:19 +0100perry69420(6ee39737@110.227.151.55)
2020-11-21 11:11:56 +0100xlei(znc@unaffiliated/xlei) (Quit: ZNC - https://znc.in)
2020-11-21 11:11:56 +0100jophish(~jophish@2400:8901::f03c:91ff:fe39:7a9) (Quit: WeeChat 2.4)
2020-11-21 11:13:13 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-21 11:14:19 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl)
2020-11-21 11:14:28 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Client Quit)
2020-11-21 11:15:01 +0100kupi(uid212005@gateway/web/irccloud.com/x-vjlwewutkgmnxvxr) (Quit: Connection closed for inactivity)
2020-11-21 11:15:02 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:c0a0:dc60:ea9e:fbab) (Ping timeout: 264 seconds)
2020-11-21 11:18:12 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 11:20:18 +0100xlei(znc@unaffiliated/xlei)
2020-11-21 11:21:00 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-21 11:21:11 +0100jophish(~jophish@2400:8901::f03c:91ff:fe39:7a9)
2020-11-21 11:23:15 +0100 <jophish> siraben: thanks, next up actually tracing the rays against something other than the background :)
2020-11-21 11:23:25 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 11:23:42 +0100 <jophish> although technically I'm not even generating any rays at the moment. but the blue is being generated by a shader in a ray tracing pipeline :)
2020-11-21 11:24:37 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-21 11:29:05 +0100 <tomsmeding> 07:34:00 ski | ("is an Alternative" or "is Alternative" ?)
2020-11-21 11:29:16 +0100 <tomsmeding> I have some more alternatives for you: "implements Alternative" and "is an instance of Alternative"
2020-11-21 11:30:19 +0100borne(~fritjof@200116b864bc9600f1dc39039d201adf.dip.versatel-1u1.de)
2020-11-21 11:30:36 +0100ben_m(~ben@unaffiliated/ben-m/x-8385872)
2020-11-21 11:31:14 +0100shangxiao(~davids@101.181.159.140) (Quit: WeeChat 3.0)
2020-11-21 11:32:17 +0100chaosmasttter(~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-21 11:34:57 +0100fendor_(~fendor@91.141.1.146.wireless.dyn.drei.com)
2020-11-21 11:37:16 +0100fendor(~fendor@77.119.129.57.wireless.dyn.drei.com) (Ping timeout: 240 seconds)
2020-11-21 11:38:45 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-21 11:41:46 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.)
2020-11-21 11:42:18 +0100 <Orbstheorem> When pantry finds a git extra-dep in stack.yaml, where does it clone it to? Does it keep a copy of the repo or just compiles the lib and deletes it afterwards?
2020-11-21 11:43:54 +0100day(~Unknown@unaffiliated/day) (Ping timeout: 272 seconds)
2020-11-21 11:50:42 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 260 seconds)
2020-11-21 11:53:27 +0100tomsmedingalways uses his best friend `find` to find out where programs put things
2020-11-21 11:53:39 +0100christo(~chris@81.96.113.213)
2020-11-21 11:57:30 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 12:00:40 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 256 seconds)
2020-11-21 12:01:31 +0100alp(~alp@2a01:e0a:58b:4920:487a:c7d8:cfd9:16b5) (Ping timeout: 272 seconds)
2020-11-21 12:02:01 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-21 12:06:33 +0100Lycurgus(~niemand@cpe-45-46-142-188.buffalo.res.rr.com)
2020-11-21 12:08:30 +0100Franciman(~francesco@host-79-27-199-238.retail.telecomitalia.it)
2020-11-21 12:08:37 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 264 seconds)
2020-11-21 12:10:14 +0100shadowdao(~user@unaffiliated/shadowdaemon) (Ping timeout: 264 seconds)
2020-11-21 12:10:32 +0100borne(~fritjof@200116b864bc9600f1dc39039d201adf.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-21 12:17:31 +0100 <ziman> what's the recommended build system these days (preferably with a future perspective)? stack+hpack? cabal-install-v2?
2020-11-21 12:18:15 +0100cads(~cads@ip-64-72-99-232.lasvegas.net)
2020-11-21 12:18:54 +0100Lycurgusrecommends ur own judgment
2020-11-21 12:19:19 +0100Lycurgus(~niemand@cpe-45-46-142-188.buffalo.res.rr.com) (Quit: Exeunt)
2020-11-21 12:20:34 +0100 <Franciman> ziman, it depends, the thing is that probably cabal is good enough
2020-11-21 12:21:10 +0100 <Franciman> so you wouldn't need the extra things stack gives to you (but also consider that sometimes you need some features not supported by stack, for example backpack)
2020-11-21 12:21:43 +0100 <Franciman> for me the most attractive thing of stack is stackage, i.e. a curated set of packages which somebody^{TM} guarantees that work well toghether
2020-11-21 12:21:44 +0100 <Franciman> together
2020-11-21 12:22:00 +0100 <Franciman> but you should probably consider your own judgment
2020-11-21 12:22:22 +0100 <Franciman> as Lycurgus said
2020-11-21 12:22:26 +0100 <xerox_> I like the stackage site to do hoogle searches, very clean
2020-11-21 12:23:17 +0100 <Franciman> soon^{TM} vabal will support stackage files (which are essentially cabal freeze files) and you will use them without stack
2020-11-21 12:23:50 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 12:24:18 +0100 <ziman> thank you :)
2020-11-21 12:24:33 +0100 <Franciman> but since vabal is not really useful to anyone, I am considering first rewriting part of its logic in prolog
2020-11-21 12:24:46 +0100Jonkimi727406120(~Jonkimi@113.87.161.66)
2020-11-21 12:25:07 +0100 <ziman> i find it tricky to find sufficiently up-to-date information on the various build systems because the landscape keeps changing
2020-11-21 12:25:19 +0100 <Franciman> I understand
2020-11-21 12:25:36 +0100 <Franciman> my personal approach is: go with cabal until you find something incredibly wrong you can't fix
2020-11-21 12:25:42 +0100 <Franciman> and this has never happened to me lately
2020-11-21 12:25:51 +0100 <Franciman> especially after the v2-thing became the default behavior
2020-11-21 12:26:06 +0100gproto0023(~gproto23@unaffiliated/gproto23) (Remote host closed the connection)
2020-11-21 12:26:08 +0100 <ziman> since i like "simple" things (as in fewest dependencies etc.), i'll go for cabal and see what happens
2020-11-21 12:26:18 +0100 <Franciman> yes that's my base motive too
2020-11-21 12:26:31 +0100gproto0023(~gproto23@unaffiliated/gproto23)
2020-11-21 12:26:33 +0100 <ziman> assuming that cabal is the "simplest" choice here
2020-11-21 12:26:58 +0100cads(~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 272 seconds)
2020-11-21 12:27:33 +0100 <Franciman> for me it is true
2020-11-21 12:28:11 +0100 <Franciman> anybody has their preferences, tho
2020-11-21 12:28:50 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 264 seconds)
2020-11-21 12:29:09 +0100siloxid(~user@unaffiliated/siloxid)
2020-11-21 12:31:19 +0100enoq(~textual@194-208-146-143.lampert.tv)
2020-11-21 12:32:35 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-21 12:33:12 +0100 <jophish> I use hpack+cabal
2020-11-21 12:33:41 +0100 <jophish> listing modules manually is work for a computer, not a human
2020-11-21 12:33:43 +0100acidjnk_new2(~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de)
2020-11-21 12:33:49 +0100 <jophish> but cabal works much better with nix
2020-11-21 12:34:56 +0100gproto0023(~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
2020-11-21 12:35:48 +0100Fractalis(~Fractalis@2601:987:280:8d40:ddfc:6164:f3c:5c24)
2020-11-21 12:36:16 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 246 seconds)
2020-11-21 12:36:55 +0100 <ski> tomsmeding : hm, yea. i guess i didn't want to change it too much
2020-11-21 12:37:33 +0100 <tomsmeding> ski: I wasn't entirely serious, I agree with your assessment :p
2020-11-21 12:38:22 +0100 <srk> 7/81
2020-11-21 12:38:30 +0100srkoop
2020-11-21 12:38:31 +0100 <tomsmeding> > 7/81
2020-11-21 12:38:34 +0100 <lambdabot> 8.641975308641975e-2
2020-11-21 12:38:58 +0100robotmay(~beepboop@2001:8b0:7af0:2580:9618:82ff:fe37:d2b0) (Quit: Be excellent to each other)
2020-11-21 12:44:04 +0100rprije(~rprije@124.148.131.132) (Ping timeout: 272 seconds)
2020-11-21 12:46:32 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf) (Ping timeout: 244 seconds)
2020-11-21 12:47:01 +0100sw1nn(~sw1nn@host81-131-191-165.range81-131.btcentralplus.com)
2020-11-21 12:47:18 +0100epsilonhalbe(~epsilonha@89.34.165.94)
2020-11-21 12:49:21 +0100rprije(~rprije@124.148.131.132)
2020-11-21 12:50:49 +0100isBEKaml(~isBEKaml@unaffiliated/isbekaml) (Read error: Connection reset by peer)
2020-11-21 12:52:11 +0100larou(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145)
2020-11-21 12:52:11 +0100m0rphism(~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de)
2020-11-21 12:52:32 +0100acidjnk_new2(~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2020-11-21 12:54:35 +0100sw1nn(~sw1nn@host81-131-191-165.range81-131.btcentralplus.com) (Quit: WeeChat 2.9)
2020-11-21 12:55:46 +0100sw1nn(~sw1nn@host81-131-191-165.range81-131.btcentralplus.com)
2020-11-21 12:55:53 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:2574:1856:b0b0:22f)
2020-11-21 12:58:21 +0100 <maerwald> jophish: cabal-fmt can automatically add modules
2020-11-21 12:58:56 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:2574:1856:b0b0:22f) (Client Quit)
2020-11-21 12:59:35 +0100epsilonhalbe(~epsilonha@89.34.165.94) ()
2020-11-21 13:01:14 +0100raichoo(~raichoo@dslb-178-009-023-219.178.009.pools.vodafone-ip.de)
2020-11-21 13:05:08 +0100ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net)
2020-11-21 13:05:18 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net)
2020-11-21 13:05:21 +0100ClaudiusMaximus(~claude@198.123.199.146.dyn.plus.net) (Changing host)
2020-11-21 13:05:21 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus)
2020-11-21 13:07:15 +0100Ariakenom(~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se)
2020-11-21 13:07:18 +0100acidjnk_new2(~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de)
2020-11-21 13:12:22 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-11-21 13:15:23 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-21 13:17:01 +0100 <jophish> maerwald: TIL! thanks
2020-11-21 13:17:10 +0100 <jophish> although I do also like how hpack uses yaml
2020-11-21 13:19:00 +0100 <maerwald> yeah, cabal file format is weird
2020-11-21 13:19:18 +0100 <maerwald> you can't change anything without reformatting the entire file
2020-11-21 13:19:26 +0100 <jophish> I wonder how well a PR to cabal which adds yaml support would go down...
2020-11-21 13:19:35 +0100 <jophish> well, I don't wonder lol. It would be panned
2020-11-21 13:20:02 +0100 <jophish> but I'd like to see it happen, and then for the .cabal format to be phased out over the next infinity years
2020-11-21 13:20:12 +0100 <maerwald> anything would be better than current format, but you have to support both forever and that's additional maintenance burden
2020-11-21 13:20:22 +0100 <jophish> or, for cabal to be able to run hpack behind the scenes
2020-11-21 13:20:29 +0100 <maerwald> that's never gonna happen :p
2020-11-21 13:20:30 +0100 <jophish> I think stack can do this
2020-11-21 13:20:50 +0100 <jophish> yeah, for sure the .cabal format will be preserved forever
2020-11-21 13:20:54 +0100 <jophish> :(
2020-11-21 13:21:00 +0100hackagebeam-automigrate 0.1.0.1 - DB migration library for beam, targeting Postgres. https://hackage.haskell.org/package/beam-automigrate-0.1.0.1 (abrar)
2020-11-21 13:21:19 +0100 <jophish> but it could be frozen, and any new features solely added to the yaml/hpack interface
2020-11-21 13:22:02 +0100 <jophish> maerwald: thanks for all the hard work you do for Haskell in nixpkgs BTW, it's appreciated!
2020-11-21 13:22:22 +0100 <maerwald> I wasn't aware I'm contributing to nixpkgs
2020-11-21 13:22:34 +0100 <jophish> oops!
2020-11-21 13:22:52 +0100 <jophish> I've become confused with maralorn
2020-11-21 13:23:03 +0100 <maerwald> I gave up on nix 6 years ago, when I realized the community has no quality standards.
2020-11-21 13:23:06 +0100 <jophish> too much decaf in my coffee
2020-11-21 13:24:20 +0100 <maerwald> now I'm just glad when I'm not pestered with it at work :p
2020-11-21 13:25:27 +0100AIM`(~AIM`@185.163.110.116) (Remote host closed the connection)
2020-11-21 13:26:14 +0100gproto023gproto23
2020-11-21 13:29:25 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2020-11-21 13:29:30 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2020-11-21 13:29:30 +0100neiluj(~jco@unaffiliated/neiluj)
2020-11-21 13:29:40 +0100xangri(bab7275a@186.183.39.90)
2020-11-21 13:31:05 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-21 13:33:07 +0100jb55(~jb55@gateway/tor-sasl/jb55) (Remote host closed the connection)
2020-11-21 13:33:30 +0100jb55(~jb55@gateway/tor-sasl/jb55)
2020-11-21 13:34:48 +0100Jonkimi727406120(~Jonkimi@113.87.161.66) (Ping timeout: 260 seconds)
2020-11-21 13:36:00 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 13:36:17 +0100knupfer(~Thunderbi@200116b82ce1e1003ca956fffe6ed6fc.dip.versatel-1u1.de)
2020-11-21 13:36:59 +0100knupfer(~Thunderbi@200116b82ce1e1003ca956fffe6ed6fc.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-21 13:37:08 +0100knupfer(~Thunderbi@200116b82ce1e10080928bee7ad1b338.dip.versatel-1u1.de)
2020-11-21 13:38:13 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 13:42:02 +0100__monty__(~toonn@unaffiliated/toonn)
2020-11-21 13:42:53 +0100geekosaur(ac3a3b08@172.58.59.8)
2020-11-21 13:43:58 +0100edwardk(sid47016@haskell/developer/edwardk) (Read error: Connection reset by peer)
2020-11-21 13:44:06 +0100runeks(sid21167@gateway/web/irccloud.com/x-tsqpbadbudnfxfmt) (Read error: Connection reset by peer)
2020-11-21 13:44:08 +0100edwardk(sid47016@haskell/developer/edwardk)
2020-11-21 13:44:29 +0100pepeiborra(sid443799@gateway/web/irccloud.com/x-qimnexanhdwpswoz) (Read error: Connection reset by peer)
2020-11-21 13:44:29 +0100ProofTechnique(sid79547@gateway/web/irccloud.com/x-eksujsicoqugirny) (Read error: Connection reset by peer)
2020-11-21 13:44:33 +0100alexknvl(sid259568@gateway/web/irccloud.com/x-hdmczryidxkpwdtp) (Read error: Connection reset by peer)
2020-11-21 13:44:36 +0100pepeiborra(sid443799@gateway/web/irccloud.com/x-pndolohhnspnwqav)
2020-11-21 13:44:50 +0100alexknvl(sid259568@gateway/web/irccloud.com/x-jnvjyffojwxkuwuh)
2020-11-21 13:45:05 +0100runeks(sid21167@gateway/web/irccloud.com/x-ryjozvleeapnxzus)
2020-11-21 13:45:06 +0100rprije(~rprije@124.148.131.132) (Ping timeout: 260 seconds)
2020-11-21 13:45:20 +0100ProofTechnique(sid79547@gateway/web/irccloud.com/x-svkesokyijyfonih)
2020-11-21 13:45:45 +0100Chi1thangoo(~Chi1thang@87.112.60.168)
2020-11-21 13:46:32 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2020-11-21 13:48:31 +0100robbiet480(~robbiet48@178.162.212.214)
2020-11-21 13:50:01 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 264 seconds)
2020-11-21 13:52:07 +0100xangri(bab7275a@186.183.39.90) ()
2020-11-21 13:56:16 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-21 13:59:03 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 13:59:39 +0100geekosaur(ac3a3b08@172.58.59.8) (Ping timeout: 245 seconds)
2020-11-21 14:01:30 +0100Lord_of_Life_(~Lord@46.217.217.57)
2020-11-21 14:02:01 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 264 seconds)
2020-11-21 14:03:08 +0100Lord_of_Life_Lord_of_Life
2020-11-21 14:03:22 +0100salumu(~sMuNiX@vlnsm8-montreal02-142-122-8-233.internet.virginmobile.ca) (Quit: WeeChat 3.0)
2020-11-21 14:03:51 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-21 14:04:39 +0100alp(~alp@2a01:e0a:58b:4920:49a7:8d86:1a2b:64a5)
2020-11-21 14:04:56 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-21 14:05:58 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-21 14:08:21 +0100 <maralorn> jophish: Funny, this is the second time someone confused our nix in few days.
2020-11-21 14:08:22 +0100 <maralorn> jophish: And thank you!
2020-11-21 14:09:07 +0100DirefulSalt(DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection)
2020-11-21 14:09:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-21 14:09:56 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 240 seconds)
2020-11-21 14:09:59 +0100gproto0023(~gproto23@unaffiliated/gproto23)
2020-11-21 14:10:44 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 240 seconds)
2020-11-21 14:11:13 +0100Rudd0(~Rudd0@185.189.115.103) (Ping timeout: 260 seconds)
2020-11-21 14:12:37 +0100geekosaur(ac3a3e89@172.58.62.137)
2020-11-21 14:13:53 +0100siloxid(~user@unaffiliated/siloxid) (Ping timeout: 272 seconds)
2020-11-21 14:16:25 +0100xff0x(~fox@2001:1a81:53c2:b800:6e69:5f46:fae4:631a) (Ping timeout: 272 seconds)
2020-11-21 14:16:56 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-21 14:17:08 +0100xff0x(~fox@2001:1a81:53c2:b800:23a4:8a65:fdbc:e15b)
2020-11-21 14:20:13 +0100bitmagie(~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de)
2020-11-21 14:20:18 +0100_mecairS`(~st_ars@110.54.187.248)
2020-11-21 14:20:41 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net)
2020-11-21 14:24:16 +0100cyphase(~cyphase@unaffiliated/cyphase) (Ping timeout: 240 seconds)
2020-11-21 14:24:23 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.161.165)
2020-11-21 14:24:45 +0100aplainzetakind(~johndoe@captainludd.powered.by.lunarbnc.net)
2020-11-21 14:25:48 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds)
2020-11-21 14:28:31 +0100Lord_of_Life(~Lord@46.217.217.57) (Read error: Connection reset by peer)
2020-11-21 14:29:24 +0100Lord_of_Life(~Lord@46.217.217.57)
2020-11-21 14:29:24 +0100Lord_of_Life(~Lord@46.217.217.57) (Changing host)
2020-11-21 14:29:24 +0100Lord_of_Life(~Lord@unaffiliated/lord-of-life/x-0885362)
2020-11-21 14:30:03 +0100perohig(~user@dsl-212-23-31-113.zen.co.uk)
2020-11-21 14:30:04 +0100perry69420(6ee39737@110.227.151.55) (Ping timeout: 245 seconds)
2020-11-21 14:30:47 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 14:31:22 +0100_mecairS`(~st_ars@110.54.187.248) (Quit: Hi. If i ever be an Angel of Light to guide you, to lead you in every way, will you also think of me at night and day.. https://bit.ly/36blphN)
2020-11-21 14:32:10 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-21 14:32:53 +0100perry69420(6ee39737@110.227.151.55)
2020-11-21 14:32:56 +0100perohig(~user@dsl-212-23-31-113.zen.co.uk) ()
2020-11-21 14:34:14 +0100bgamari(~bgamari@72.65.101.76) (Ping timeout: 256 seconds)
2020-11-21 14:34:28 +0100cyphase(~cyphase@unaffiliated/cyphase)
2020-11-21 14:35:42 +0100bgamari(~bgamari@2001:470:e438::1)
2020-11-21 14:37:23 +0100 <jophish> maralorn: I made a test for HLS (in vim, but doesn't have to be). It works quite reliably now I've worked the kinks out. Do you think that this would make a reasonable addition to the nixos tests in nixpkgs: https://github.com/expipiplus1/dotfiles/blob/f41836bb61d98502236a7ea6522dbc24830af439/tests/vim-di…
2020-11-21 14:37:26 +0100 <jophish> it's quite niche
2020-11-21 14:37:32 +0100 <jophish> but it would be good to get HLS tested there
2020-11-21 14:37:53 +0100SanchayanM(~Sanchayan@223.226.47.98) (Quit: SanchayanM)
2020-11-21 14:39:06 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net)
2020-11-21 14:39:31 +0100gproto023(~gproto23@unaffiliated/gproto23)
2020-11-21 14:41:45 +0100cosimone(~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8)
2020-11-21 14:42:30 +0100gproto0023(~gproto23@unaffiliated/gproto23) (Ping timeout: 272 seconds)
2020-11-21 14:50:01 +0100jedws(~jedws@101.184.150.93)
2020-11-21 14:50:51 +0100wygulmage(d4662d5d@212.102.45.93)
2020-11-21 14:51:38 +0100 <wygulmage> Question about Async: When would I want to use `cancel` rather than `uninterruptibleCancel`?
2020-11-21 14:52:57 +0100 <merijn> "It Depends"
2020-11-21 14:53:05 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-11-21 14:53:32 +0100robbiet480(~robbiet48@178.162.212.214) (Remote host closed the connection)
2020-11-21 14:54:16 +0100aj2(~aj@193.56.252.12)
2020-11-21 14:54:32 +0100 <wygulmage> I was trying to think of a use case for `cancel` and I couldn't think of one, but I'm not very good at thinking in terms of concurrency.
2020-11-21 14:55:00 +0100 <merijn> wygulmage: Well, when waiting for succesful cancellation isn't important
2020-11-21 14:55:35 +0100 <merijn> wygulmage: The cancellation always happens (since async exceptions are blocked during "throwTo")
2020-11-21 14:56:03 +0100 <wygulmage> Doesn't `cancel` also wait?
2020-11-21 14:56:54 +0100 <merijn> wygulmage: cancel waits without exceptions masked, so with cancel the final "waitCatch" (which confirms the termination of the cancelled thread) can itself be interrupted by a cancel of the thread
2020-11-21 14:57:09 +0100 <merijn> Suppose thread A spawns async B, which spawn async C
2020-11-21 14:57:14 +0100 <merijn> B cancels C
2020-11-21 14:57:29 +0100 <merijn> "cancel" waits to receive the exception C got (via waitCatch)
2020-11-21 14:57:30 +0100hackageheap-console 0.1.0.1 - interactively inspect Haskell values at runtime https://hackage.haskell.org/package/heap-console-0.1.0.1 (TheMatten)
2020-11-21 14:57:51 +0100 <merijn> wygulmage: The difference between cancel and uninterruptibleCancel is that the latter masks async exceptions during the wait
2020-11-21 14:58:14 +0100 <merijn> so with uninterruptibleCancel, A can't cancel B while B waits for the final exception from C
2020-11-21 14:58:30 +0100 <wygulmage> Oh, I see. That makes sense. So if you want to immediately kill the thread waiting for the other to cancel, you you plain `cancel`. Thanks!
2020-11-21 14:58:32 +0100 <merijn> With cancel, A can cancel B while before it receives the final exception of C
2020-11-21 14:59:17 +0100 <merijn> wygulmage: The reason for uninterruptibleCancel might be if you care about races with cancellation of C
2020-11-21 14:59:22 +0100knupfer(~Thunderbi@200116b82ce1e10080928bee7ad1b338.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-21 14:59:33 +0100 <merijn> i.e. imagine I cancel C, but C gets killed by another exception before it receives the cancel
2020-11-21 14:59:51 +0100 <merijn> If it's important that I check that final exception, then you need uninterruptibleCancel to guarantee you will see it
2020-11-21 15:00:00 +0100 <merijn> If you just need C dead and don't care, cancel should be fine
2020-11-21 15:00:11 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 15:02:39 +0100 <wygulmage> Thanks, merijn; that's much more straightforward than I expected.
2020-11-21 15:04:54 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2020-11-21 15:05:09 +0100 <merijn> wygulmage: Basically, there's two levels of masking interrupts. "mask" which blocks async exceptions but unblocks them while blocking on (say) MVars, etc. (to help make it easier to avoid deadlocks)
2020-11-21 15:05:34 +0100 <merijn> And then there's uninterruptibleMask which will blocks them, even when the code blocks on stuff like MVars
2020-11-21 15:08:05 +0100 <wygulmage> Right. I got the use of 'uninterruptibleMask' for cleanup/finalizers, but I wasn't thinking of the return from the child thread in those terms.
2020-11-21 15:08:05 +0100carlomagno1(~cararell@148.87.23.6) (Remote host closed the connection)
2020-11-21 15:09:42 +0100machinedgod(~machinedg@24.105.81.50)
2020-11-21 15:12:01 +0100HugoDan(~semba@a109-49-47-155.cpe.netcabo.pt)
2020-11-21 15:12:47 +0100HugoDan(~semba@a109-49-47-155.cpe.netcabo.pt) ()
2020-11-21 15:13:56 +0100 <merijn> iirc, async just has an outer handler that writes any exceptions to a TVar/MVar that the parent thread can access
2020-11-21 15:14:16 +0100 <Uniaika> I should use 'ki' one day
2020-11-21 15:15:18 +0100 <Feuermagier> how can i check if number is contained at most once in a list?
2020-11-21 15:15:43 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
2020-11-21 15:15:54 +0100wygulmage(d4662d5d@212.102.45.93) (Ping timeout: 245 seconds)
2020-11-21 15:16:43 +0100 <merijn> Turn it into a map with numbers as keys and counts as values?
2020-11-21 15:16:49 +0100 <merijn> :t M.fromListWith
2020-11-21 15:16:50 +0100 <lambdabot> Ord k => (a -> a -> a) -> [(k, a)] -> M.Map k a
2020-11-21 15:17:32 +0100 <merijn> > M.fromListWith (+) . map (,1) $ "Hello World!"
2020-11-21 15:17:34 +0100 <lambdabot> fromList [(' ',1),('!',1),('H',1),('W',1),('d',1),('e',1),('l',3),('o',2),('...
2020-11-21 15:17:38 +0100 <Feuermagier> merijn, intersting idea! - that should even allow me to check multiple numbers for occurance without additional cost
2020-11-21 15:17:39 +0100 <fendor_> > ((< 2) . length . filter (== 1)) [1,2,3,4,1]
2020-11-21 15:17:41 +0100 <lambdabot> False
2020-11-21 15:18:04 +0100 <fendor_> > (\x -> (< 2) . length . filter (== x)) [1,2,3,4,1] 4
2020-11-21 15:18:06 +0100 <lambdabot> error:
2020-11-21 15:18:06 +0100 <lambdabot> • No instance for (Num [[Integer]]) arising from the literal ‘4’
2020-11-21 15:18:06 +0100 <lambdabot> • In the second argument of ‘\ x
2020-11-21 15:18:18 +0100 <fendor_> > (\x -> (< 2) . length . filter (== x)) 4 [1,2,3,4,1]
2020-11-21 15:18:20 +0100 <lambdabot> True
2020-11-21 15:18:23 +0100 <merijn> fendor_: Mine is more robust and cheaper for repeated queries ;)
2020-11-21 15:18:29 +0100 <fendor_> absolutely
2020-11-21 15:18:40 +0100fendor_fendor
2020-11-21 15:18:52 +0100 <merijn> It could've been even easier if we didn't have a bad Monoid instance for Map >.<
2020-11-21 15:19:03 +0100merijnhisses at containers
2020-11-21 15:19:30 +0100 <merijn> No clue which monkey decided on that nonsense
2020-11-21 15:19:36 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
2020-11-21 15:19:51 +0100 <merijn> But I have no hopes if it ever getting fixed :\
2020-11-21 15:20:35 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-11-21 15:20:50 +0100polyphem(~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889)
2020-11-21 15:21:49 +0100 <Feuermagier> where in my dependencies do i have to add map to use it? (the import says "could not load map; is member f hidden package")
2020-11-21 15:21:50 +0100cosimone(~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Read error: Connection reset by peer)
2020-11-21 15:22:41 +0100 <merijn> Feuermagier: Add "containers" to build-depends in your cabal file
2020-11-21 15:23:19 +0100larou(5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed)
2020-11-21 15:24:53 +0100sondre(~sondre@cm-84.211.56.132.getinternet.no)
2020-11-21 15:25:19 +0100 <Feuermagier> tgrl wsgi• build-depends:
2020-11-21 15:25:19 +0100 <Feuermagier> base == 4.*
2020-11-21 15:25:19 +0100 <Feuermagier> containers
2020-11-21 15:25:22 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de)
2020-11-21 15:25:36 +0100 <Feuermagier> like this? build-depends:
2020-11-21 15:25:36 +0100 <Feuermagier> base == 4.*
2020-11-21 15:25:36 +0100 <Feuermagier> containers:
2020-11-21 15:25:48 +0100 <merijn> you need a comma between them, iirc
2020-11-21 15:26:01 +0100SanchayanMaity(~Sanchayan@223.226.47.98)
2020-11-21 15:30:29 +0100SanchayanMaity(~Sanchayan@223.226.47.98) (Client Quit)
2020-11-21 15:31:10 +0100sondre(~sondre@cm-84.211.56.132.getinternet.no) (Quit: sondre)
2020-11-21 15:31:57 +0100 <Feuermagier> ah, that was it
2020-11-21 15:31:59 +0100 <Feuermagier> thx
2020-11-21 15:33:30 +0100aldessa(~hugh@host-92-27-117-235.static.as13285.net)
2020-11-21 15:33:50 +0100Audentity(~Audentity@4e69b241.skybroadband.com) (Ping timeout: 265 seconds)
2020-11-21 15:36:10 +0100Audentity(~Audentity@4e69b241.skybroadband.com)
2020-11-21 15:37:13 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 246 seconds)
2020-11-21 15:37:17 +0100 <Feuermagier> merijn, how would I check every entry in the map for my "only once" condition?
2020-11-21 15:37:52 +0100 <merijn> Feuermagier: Pretty sure there are some index maps/folds
2020-11-21 15:38:00 +0100 <merijn> and also filters?
2020-11-21 15:38:05 +0100 <Feuermagier> rgr. will take a look at those
2020-11-21 15:38:16 +0100darjeeling_(~darjeelin@122.245.211.11) (Ping timeout: 246 seconds)
2020-11-21 15:38:17 +0100 <merijn> Feuermagier: Just filter out everything with value 1 and check if the result is empty
2020-11-21 15:38:49 +0100czwartyeon(4d2d3763@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 15:39:13 +0100mputz(~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 264 seconds)
2020-11-21 15:39:23 +0100texasmynsted(~texasmyns@212.102.45.109) (Remote host closed the connection)
2020-11-21 15:39:38 +0100texasmynsted(~texasmyns@212.102.45.109)
2020-11-21 15:40:35 +0100zyklotomic(~ethan@unaffiliated/chocopuff)
2020-11-21 15:40:45 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds)
2020-11-21 15:40:56 +0100 <zyklotomic> is there any reason why ghc doesn't automatically derive functor and applicative
2020-11-21 15:40:56 +0100 <aldessa> are there any haskell libraries for dynamic programming or integer programming that can be recommended? i'm trying to pack n cuboids and think i can formulate it as an integer programming problem
2020-11-21 15:41:18 +0100 <zyklotomic> *if you define monad
2020-11-21 15:41:45 +0100 <Uniaika> hmm
2020-11-21 15:41:57 +0100 <Uniaika> maybe we could put a rule for Monad
2020-11-21 15:42:03 +0100 <maralorn> jophish: Well, more tests are better tests! Of course the first step would be to get the hls unit tests working in nixpkgs, (as well as dependencies like ghcide, etc,.) I am nearly there for hls but there are two tests which run into timeouts so I disabled them for now.
2020-11-21 15:42:20 +0100 <Uniaika> zyklotomic: historically, Applicative was not so tightly linked to Monad
2020-11-21 15:42:25 +0100 <Uniaika> now it is the case
2020-11-21 15:42:29 +0100 <Uniaika> this could indeed change
2020-11-21 15:42:30 +0100 <zyklotomic> yeah, I am following the historical aspect of it
2020-11-21 15:42:43 +0100 <zyklotomic> is it a matter of not having gotten to it yet?
2020-11-21 15:42:53 +0100 <zyklotomic> or is there a reason why we might not want it to behave that way
2020-11-21 15:42:57 +0100 <Uniaika> zyklotomic: can you open a ticket on https://gitlab.haskell.org/ghc/ghc/-/issues/new ?
2020-11-21 15:43:32 +0100 <zyklotomic> I'm just a beginner, I'm not very confident on how valid this opinion is though lol
2020-11-21 15:44:11 +0100 <geekosaur> deriving applicative might be because some types have more than one valid applicative (see ZipList)
2020-11-21 15:44:21 +0100Tario(~Tario@201.192.165.173)
2020-11-21 15:44:21 +0100 <merijn> zyklotomic: You can't automatically derive Applicative
2020-11-21 15:44:46 +0100 <merijn> Functors are possible because lawful functors are unique
2020-11-21 15:45:13 +0100 <zyklotomic> I understand that they might not be unique, but what if you just wanted to use the Monad definition
2020-11-21 15:45:14 +0100lucasb(uid333435@gateway/web/irccloud.com/x-ssbbedmexymeqbgx)
2020-11-21 15:45:17 +0100 <merijn> Uniaika: What would that ticket be for?
2020-11-21 15:45:25 +0100 <merijn> zyklotomic: You can
2020-11-21 15:45:36 +0100bitmagie(~Thunderbi@200116b806771200992cad3b603b96ee.dip.versatel-1u1.de) (Quit: bitmagie)
2020-11-21 15:45:51 +0100 <zyklotomic> It is just a minor question, I was wondering why it wasn't the default to be able to do something like filling that boiler plate in fro you
2020-11-21 15:45:51 +0100 <merijn> If you implement Monad you can just define Applicative as "<*> = ap"
2020-11-21 15:45:52 +0100sondr3_(~sondr3@cm-84.211.56.132.getinternet.no)
2020-11-21 15:46:00 +0100 <zyklotomic> the "pure = return", "(<*>) = ap"
2020-11-21 15:46:06 +0100 <Uniaika> merijn: become a URL we can link to people where GHC developers explain why we can or cannot automagically derive Applicative and Functor when one only derives Monad
2020-11-21 15:46:18 +0100 <merijn> zyklotomic: Because it'd 1) break things and 2) return is planned to be removed from the class
2020-11-21 15:46:43 +0100 <merijn> Uniaika: You can derive functor even without Monad :p
2020-11-21 15:46:49 +0100 <merijn> Just enable -XDeriveFunctor
2020-11-21 15:46:57 +0100 <maralorn> jophish: I am not very experienced with nixos tests, but the test you suggested seems a bit brittle. It looks like it would fail if e.g. the error message was improved or something in the plugin layouts.
2020-11-21 15:47:12 +0100 <Uniaika> merijn: but can you derive Monad without Functor? :P
2020-11-21 15:47:21 +0100 <jophish> yeah, I certainly wouldn't want to use it as it is!
2020-11-21 15:47:26 +0100 <Uniaika> that's what I was talking about
2020-11-21 15:47:28 +0100 <sondr3_> I'm writing a parser in Haskell to practice and want to test private parts of the code, in Rust this is easy by either testing in the same file as the code, or declaring things to be pub(crate). How can I do something like this in Haskell?
2020-11-21 15:47:28 +0100 <zyklotomic> yeah my question isnt' the automagically part
2020-11-21 15:47:43 +0100 <jophish> tbh, posting the link to my specific test was irrelevant,
2020-11-21 15:48:02 +0100 <zyklotomic> but like why it can't fill in the "(<*>) = ap" for you by default, how would it break things merijn
2020-11-21 15:48:03 +0100 <merijn> sondr3_: Are you using cabal-install or stack?
2020-11-21 15:48:16 +0100 <sondr3_> merijn: cabal
2020-11-21 15:48:28 +0100 <zyklotomic> i'm asking cause i dont see where, not that i disagree
2020-11-21 15:48:30 +0100 <merijn> sondr3_: Ok, then you can't quite do the same, but there's some tricks
2020-11-21 15:48:46 +0100 <merijn> sondr3_: So, in recent versions of the cabal spec you can define multiple internal libraries
2020-11-21 15:48:59 +0100 <sondr3_> I'm open to move to Stack tbh, I've had a bunch of annoyances with cabal
2020-11-21 15:49:03 +0100 <merijn> sondr3_: So you could define the core logic in an internal library that exports all internals
2020-11-21 15:49:29 +0100 <merijn> sondr3_: then your public library can re-export the "public" parts of the internal lib and your tests can depend on the internal version
2020-11-21 15:49:46 +0100 <sondr3_> merijn: Ooh, that's clever, thanks
2020-11-21 15:50:18 +0100urodna(~urodna@unaffiliated/urodna)
2020-11-21 15:50:36 +0100 <merijn> sondr3_: I'm just not sure how well/if stack supports that, hence the question :)
2020-11-21 15:51:05 +0100 <merijn> sondr3_: https://cabal.readthedocs.io/en/latest/cabal-package.html#sublibs
2020-11-21 15:51:07 +0100et09(~et09@unaffiliated/endolphin)
2020-11-21 15:51:26 +0100 <sondr3_> merijn: Ah, fair. Thanks for the pointer, I'll give it a go
2020-11-21 15:51:36 +0100 <yushyin> are multiple *internal* libraries that recent?
2020-11-21 15:51:49 +0100geekosaur(ac3a3e89@172.58.62.137) (Remote host closed the connection)
2020-11-21 15:51:49 +0100 <yushyin> oh 2.0
2020-11-21 15:51:50 +0100neiluj(~jco@unaffiliated/neiluj) (Quit: leaving)
2020-11-21 15:51:55 +0100Deide(~Deide@217.155.19.23)
2020-11-21 15:52:02 +0100darjeeling_(~darjeelin@122.245.219.209)
2020-11-21 15:53:07 +0100czwartyeon(4d2d3763@77-45-55-99.sta.asta-net.com.pl) (Remote host closed the connection)
2020-11-21 15:53:12 +0100 <merijn> yushyin: No, but stack is...opinionated on what part of Cabal they wish to support
2020-11-21 15:53:21 +0100 <merijn> sondr3_: btw, I'm curious which annoyances you had with cabal-install?
2020-11-21 15:53:38 +0100aldessa(~hugh@host-92-27-117-235.static.as13285.net) (Read error: Connection reset by peer)
2020-11-21 15:54:33 +0100 <Uniaika> merijn: I think you can insert verbatim stuff in package.yaml?
2020-11-21 15:55:00 +0100 <merijn> package.yaml /= stack
2020-11-21 15:55:04 +0100 <sondr3_> merijn: Mostly getting cabal repl to properly use my project local .ghci file, I want to set OverloadedStrings and load a module
2020-11-21 15:55:26 +0100 <merijn> sondr3_: Oh, I just have those extensions set in my global .ghci file :)
2020-11-21 15:55:27 +0100 <yushyin> merijn: yes :/ I switched back from stack to cabal because of similar reasons
2020-11-21 15:55:53 +0100 <merijn> package.yaml is hpack and hpack is a huge mistake, imo
2020-11-21 15:56:10 +0100 <sondr3_> merijn: Yeah I'm considering doing the same, it'd just be nice to have it work locally
2020-11-21 15:56:28 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4)
2020-11-21 15:56:33 +0100 <Uniaika> merijn: my bad indeed
2020-11-21 15:57:13 +0100czwartyeon(4d2d3763@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 15:57:16 +0100 <merijn> Uniaika: stack automatically uses hpack if needed, leading many people to consider it part of stack, but even Snoyman now recommends against relying on only package.yaml and recommends committing the generated .cabal file
2020-11-21 15:58:02 +0100Fractalis(~Fractalis@2601:987:280:8d40:ddfc:6164:f3c:5c24) (Ping timeout: 260 seconds)
2020-11-21 15:58:11 +0100 <Uniaika> merijn: oh yeah we do it at work now
2020-11-21 15:58:28 +0100 <Uniaika> latest stack versions give you a warning
2020-11-21 15:58:49 +0100perry69420(6ee39737@110.227.151.55) (Ping timeout: 245 seconds)
2020-11-21 15:59:46 +0100 <merijn> Like, I get why people like hpack, because they get to be lazy. But there's a reason why cabal-install doesn't allow you to be lazy. Being lazy turns your package management, distribution, and archiving into a huge unfixable clusterfuck
2020-11-21 15:59:54 +0100 <merijn> This is why pip and npm are such insane messes
2020-11-21 16:00:02 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 260 seconds)
2020-11-21 16:00:18 +0100 <zyklotomic> huh what makes npm and pip bad
2020-11-21 16:00:30 +0100p-core(~Thunderbi@2a0e:1c80:4:1024::1007)
2020-11-21 16:00:55 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-21 16:01:15 +0100 <merijn> zyklotomic: Have you ever worked on code locally and tried to reproduce that environment on another machine?
2020-11-21 16:01:38 +0100 <merijn> It's so bad everyone now just uses dockers, because it's easier to just copy your entire machine then figuring out how to package/distribute things
2020-11-21 16:01:39 +0100 <zyklotomic> yeah, nix
2020-11-21 16:02:19 +0100 <zyklotomic> i was on that boat too until nixOS
2020-11-21 16:02:24 +0100 <zyklotomic> or is that a different issue
2020-11-21 16:02:35 +0100 <zyklotomic> have you heard of nix?
2020-11-21 16:02:37 +0100 <merijn> zyklotomic: Right, but the reason Nix works is the same thing cabal insists on
2020-11-21 16:02:38 +0100 <et09> i need to fully wipe my stack installation i think
2020-11-21 16:02:47 +0100 <merijn> zyklotomic: "rigidly specify exactly everything you depend on"
2020-11-21 16:02:59 +0100 <zyklotomic> wait pip doesn't?
2020-11-21 16:03:07 +0100 <merijn> zyklotomic: Which is the exact thing people complain about
2020-11-21 16:03:11 +0100 <et09> getting these errors like uh, ghc failed a sanity check, cannot find snapshot
2020-11-21 16:03:15 +0100 <zyklotomic> that's kinda shocking, I never realized
2020-11-21 16:03:20 +0100 <merijn> et09: eh...that's bad :D
2020-11-21 16:03:24 +0100 <et09> but deleting .stack, .ghc, /usr/local/bin/stack doesn't seem like enough
2020-11-21 16:04:08 +0100 <Uniaika> peculiar
2020-11-21 16:04:09 +0100 <et09> my core problem is that i'm trying to install a recompile-able xmonad + xmobar + xmonad-contrib + xmonad-utils
2020-11-21 16:04:16 +0100 <Uniaika> HAHAHA
2020-11-21 16:04:18 +0100 <Uniaika> :D
2020-11-21 16:04:26 +0100 <merijn> zyklotomic: If you manually install something into your virtualenv (another massive hack!), pip will happily let you use it without you adding it to requirements.txt
2020-11-21 16:04:40 +0100 <et09> i.e. xmonad --recompile
2020-11-21 16:05:30 +0100 <zyklotomic> merijn: i've kinda forgotten it works that way
2020-11-21 16:06:27 +0100 <zyklotomic> like manually installing, declaratively installing gives such a peace of mind
2020-11-21 16:06:59 +0100 <merijn> v2-build is lightyears ahead of pip/virtualenv/npm :)
2020-11-21 16:07:46 +0100 <zyklotomic> i *think* cargo also uses this saner behavior
2020-11-21 16:08:16 +0100Lycurgus(~niemand@cpe-45-46-142-188.buffalo.res.rr.com)
2020-11-21 16:08:20 +0100 <sondr3_> Cargo is really nice, my absolute favorite package manager
2020-11-21 16:08:46 +0100 <zyklotomic> i like rustc more than i like cargo, not that it is bad
2020-11-21 16:08:54 +0100 <zyklotomic> the enumerated warnings are really user friendly
2020-11-21 16:09:13 +0100kamilbeker(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:10:18 +0100 <sondr3_> My favorite part of using Rust is that with rustup I get a package manager, formatter, linter and auto-updating all in one
2020-11-21 16:10:53 +0100kamilbeker(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
2020-11-21 16:10:58 +0100 <zyklotomic> rustup is really nice, even with nixos, i still prefer rustup
2020-11-21 16:11:13 +0100czwartye1(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:11:19 +0100 <merijn> boo to autoformatters
2020-11-21 16:11:30 +0100czwartye1(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
2020-11-21 16:11:46 +0100 <zyklotomic> my first experience with autoformatters was Go
2020-11-21 16:11:48 +0100czwartye1(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:11:49 +0100 <zyklotomic> and I thought I was crazy
2020-11-21 16:11:55 +0100 <yushyin> with ghcup we ahve a similar toolchain installer
2020-11-21 16:11:56 +0100 <zyklotomic> or going bonkers
2020-11-21 16:12:05 +0100 <sondr3_> Yay to autoformatters, now I don't have to think about formatting and the whole ecosystem feels much more cohesive
2020-11-21 16:12:13 +0100 <merijn> My argument against autoformatters: https://twitter.com/comerijn/status/1257804634833420292
2020-11-21 16:12:42 +0100czwartyeon(4d2d3763@77-45-55-99.sta.asta-net.com.pl) (Remote host closed the connection)
2020-11-21 16:12:52 +0100 <merijn> "not thinking about formatting" is just as bad as "not thinking about naming"
2020-11-21 16:12:52 +0100 <zyklotomic> that's valid, though i'll give Go a free pass
2020-11-21 16:12:57 +0100alp(~alp@2a01:e0a:58b:4920:49a7:8d86:1a2b:64a5) (Ping timeout: 272 seconds)
2020-11-21 16:13:16 +0100 <merijn> It's on brand for Go
2020-11-21 16:13:28 +0100 <sondr3_> I see both sides, I personally don't care, I like not having to think about it
2020-11-21 16:13:38 +0100 <hpc> my first experience with autoformatters was java, where to be fair, i wasn't thinking about naming either :P
2020-11-21 16:13:40 +0100 <Feuermagier> how do I zipWith, but only with one of the arguments changeing?
2020-11-21 16:13:42 +0100 <zyklotomic> yeah, like I can say Go is the only language it would seem to make sense for
2020-11-21 16:13:44 +0100 <merijn> Which is "solve every problem by making the exact opposite of the right choice" :p
2020-11-21 16:13:53 +0100 <sondr3_> Especially when contributing to other peoples packages
2020-11-21 16:13:57 +0100 <merijn> Go got 2 things right
2020-11-21 16:14:00 +0100 <maerwald> merijn: it's twice as bad if you're one of those people who memorize code based on the structure and someone else decides to run an autoformatter over it
2020-11-21 16:14:04 +0100 <merijn> 1) cross-compilation support from day 1
2020-11-21 16:14:10 +0100 <merijn> 2) lightweight threading
2020-11-21 16:14:31 +0100 <merijn> Possibly 3? I think they default link static too?
2020-11-21 16:14:39 +0100 <maerwald> I think more important than reading code is... navigating code :)
2020-11-21 16:14:48 +0100 <maerwald> (because most stuff you don't actually wanna read)
2020-11-21 16:14:49 +0100 <merijn> that too
2020-11-21 16:14:52 +0100da39a3ee5e6b4b0d(~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 16:15:02 +0100 <hpc> 2 is kind of iffy as well, doesn't their lightweight threading not give you very much control over the threads themselves?
2020-11-21 16:15:07 +0100Lycurgus(~niemand@cpe-45-46-142-188.buffalo.res.rr.com) ("Deus Ex")
2020-11-21 16:15:38 +0100 <merijn> hpc: Well, at least even *they* designers of "the most backwards language since the 80s" realised that OS threading as default was dumb
2020-11-21 16:15:44 +0100 <merijn> Gotta give them credit for that :p
2020-11-21 16:15:53 +0100 <zyklotomic> Feuermagier: what do you mean
2020-11-21 16:15:58 +0100 <hpc> yeah true
2020-11-21 16:15:59 +0100 <zyklotomic> could you give an ex
2020-11-21 16:16:09 +0100 <yushyin> zyklotomic: sondr3_: hls uses ormolu, so there you go.
2020-11-21 16:16:28 +0100 <sondr3_> I use ormolu too,
2020-11-21 16:16:29 +0100 <Feuermagier> zyklotomic, compine x with every argument out of [list] by function f - cycle through the list, keep x
2020-11-21 16:17:00 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 16:17:14 +0100 <sondr3_> It's my absolute least favorite formatter, Britanny looks better but I get the feeling that it has some deep architectural problems
2020-11-21 16:17:52 +0100 <merijn> Feuermagier: Can you give an example of an input and output
2020-11-21 16:18:40 +0100 <yushyin> sondr3_: just don't think/care about it :P you said it yourself
2020-11-21 16:19:14 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 16:19:17 +0100czwartyeon(4d2d3763@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:19:28 +0100 <Feuermagier> merijn, x=3, [0,1,2] function = "*" result=[0,3,6]
2020-11-21 16:19:37 +0100czwartye1(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Quit: WeeChat 3.0)
2020-11-21 16:19:53 +0100czwartye1(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:20:02 +0100 <merijn> You don't need zipWith, just map :p
2020-11-21 16:20:04 +0100 <sondr3_> yushyin: Haha, I know, at least I mostly agree with rustfmt, I just don't like how ormolu puts the comma at the end of lines and not the beginning :(
2020-11-21 16:20:13 +0100 <Feuermagier> merijn, essentially zipWith, but with one argument just being [x,x,x,x,x...]
2020-11-21 16:20:26 +0100 <merijn> > map (3*) [0,1,2]
2020-11-21 16:20:28 +0100 <lambdabot> [0,3,6]
2020-11-21 16:20:29 +0100 <Feuermagier> *oh*
2020-11-21 16:20:46 +0100 <Feuermagier> THX!
2020-11-21 16:20:46 +0100 <zyklotomic> wait you can do that?
2020-11-21 16:20:56 +0100 <zyklotomic> i've been doing (*3) the entire time
2020-11-21 16:21:00 +0100 <zyklotomic> oh right
2020-11-21 16:21:05 +0100 <merijn> zyklotomic: you can do both
2020-11-21 16:21:11 +0100 <zyklotomic> yeah it never occured to me
2020-11-21 16:21:18 +0100 <merijn> It matters, actually
2020-11-21 16:21:28 +0100 <merijn> > map (/2) [1..10]
2020-11-21 16:21:31 +0100 <lambdabot> [0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0]
2020-11-21 16:21:36 +0100 <merijn> > map (2/) [1..10]
2020-11-21 16:21:38 +0100 <lambdabot> [2.0,1.0,0.6666666666666666,0.5,0.4,0.3333333333333333,0.2857142857142857,0....
2020-11-21 16:21:42 +0100 <zyklotomic> oh or the ugly
2020-11-21 16:21:47 +0100 <zyklotomic> > map ((/) 2) [1..10]
2020-11-21 16:21:49 +0100 <lambdabot> [2.0,1.0,0.6666666666666666,0.5,0.4,0.3333333333333333,0.2857142857142857,0....
2020-11-21 16:21:57 +0100 <zyklotomic> lol
2020-11-21 16:22:03 +0100 <zyklotomic> but (*) is ass
2020-11-21 16:22:14 +0100 <zyklotomic> *comm
2020-11-21 16:22:45 +0100 <sondr3_> be nice to (*)
2020-11-21 16:22:50 +0100czwartyeon(4d2d3763@77-45-55-99.sta.asta-net.com.pl) (Disconnected by services)
2020-11-21 16:23:20 +0100czwartye1czwartyeon
2020-11-21 16:23:53 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
2020-11-21 16:24:12 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:24:29 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 16:24:58 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-21 16:27:17 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
2020-11-21 16:27:35 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:27:42 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
2020-11-21 16:28:20 +0100 <Feuermagier> how do I elegantly check if an entire list of bools is true if I "and" it?
2020-11-21 16:28:31 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 16:28:51 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:28:52 +0100 <merijn> :t and
2020-11-21 16:28:53 +0100 <lambdabot> Foldable t => t Bool -> Bool
2020-11-21 16:29:09 +0100 <ski> Feuermagier : did the list come from `map' ?
2020-11-21 16:29:13 +0100 <merijn> :t getAll . foldMap All
2020-11-21 16:29:14 +0100 <lambdabot> Foldable t => t Bool -> Bool
2020-11-21 16:30:25 +0100 <ski> @type all
2020-11-21 16:30:26 +0100 <lambdabot> Foldable t => (a -> Bool) -> t a -> Bool
2020-11-21 16:30:40 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Client Quit)
2020-11-21 16:30:50 +0100 <sondr3_> How do I combine parsers in Megaparsec? I have `char '<' *> takeWhile1P Nothing (== '=') <* char '>'` which discards the chars, and I can't figure out how to combine them
2020-11-21 16:30:57 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 16:30:59 +0100carlomagno(~cararell@148.87.23.4)
2020-11-21 16:31:01 +0100 <Feuermagier> ski, yes. I have 3 seperate lists generated by 3 seperate functions
2020-11-21 16:31:09 +0100 <dminuoso> all p = getAll #. foldMap (All #. p)
2020-11-21 16:31:13 +0100 <ski> @src all
2020-11-21 16:31:13 +0100 <lambdabot> all p = and . map p
2020-11-21 16:31:15 +0100Tario(~Tario@201.192.165.173)
2020-11-21 16:31:15 +0100 <ski> @src any
2020-11-21 16:31:15 +0100 <lambdabot> any p = or . map p
2020-11-21 16:31:22 +0100 <dminuoso> Curious that this uses foldMap
2020-11-21 16:31:41 +0100 <ski> Feuermagier : if you have `and (map p xs)', you can say `all p xs'
2020-11-21 16:31:42 +0100 <dminuoso> sondr3_: In what way do you want to combine then?
2020-11-21 16:31:49 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-21 16:31:50 +0100 <ski> > liftA2 (^) [0,1,2,3] [0,1,2,3]
2020-11-21 16:31:52 +0100 <lambdabot> [1,0,0,0,1,1,1,1,1,2,4,8,1,3,9,27]
2020-11-21 16:31:53 +0100 <merijn> dminuoso: "getAll (coerce fold)" :p
2020-11-21 16:31:57 +0100 <merijn> eh
2020-11-21 16:32:01 +0100 <merijn> add a . there
2020-11-21 16:32:09 +0100 <sondr3_> dminuoso: so the output becomes "<===>", now it is just "==="
2020-11-21 16:32:13 +0100 <ski> > [m ^ n | m <- [0,1,2,3],n <- [0,1,2,3]]
2020-11-21 16:32:16 +0100 <lambdabot> [1,0,0,0,1,1,1,1,1,2,4,8,1,3,9,27]
2020-11-21 16:32:17 +0100 <dminuoso> ski: The "output"?
2020-11-21 16:32:20 +0100 <dminuoso> Err sondr3_.
2020-11-21 16:32:25 +0100 <zyklotomic> won't a regular fold work?
2020-11-21 16:32:27 +0100 <ski> > [[m ^ n | n <- [0,1,2,3]] | m <- [0,1,2,3]]
2020-11-21 16:32:30 +0100 <lambdabot> [[1,0,0,0],[1,1,1,1],[1,2,4,8],[1,3,9,27]]
2020-11-21 16:32:36 +0100 <merijn> :t fold
2020-11-21 16:32:37 +0100 <lambdabot> (Foldable t, Monoid m) => t m -> m
2020-11-21 16:32:40 +0100 <merijn> :t foldMap
2020-11-21 16:32:42 +0100 <lambdabot> (Foldable t, Monoid m) => (a -> m) -> t a -> m
2020-11-21 16:32:52 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-21 16:32:56 +0100 <merijn> zyklotomic: You can do it with a regular fold, sure. But monoids are cool
2020-11-21 16:33:07 +0100 <ski> > let pam = flip map in [0,1,2,3] `pam` \m -> [0,1,2,3] `pam` \n -> m ^ n
2020-11-21 16:33:09 +0100 <lambdabot> [[1,0,0,0],[1,1,1,1],[1,2,4,8],[1,3,9,27]]
2020-11-21 16:33:19 +0100 <merijn> zyklotomic: Also, monoids compose better
2020-11-21 16:33:20 +0100 <dminuoso> sondr3_: Also, your `takeWhile1P Nothing (== '=')` should just be `some (char '=')`
2020-11-21 16:33:25 +0100 <sondr3_> dminuoso: I meant what it returns x) the signature is `parser :: Parser Text`
2020-11-21 16:33:48 +0100 <dminuoso> sondr3_: Ah. So the most naive way is to use the monadic interface.
2020-11-21 16:33:59 +0100 <dminuoso> But that's not necessary
2020-11-21 16:34:59 +0100 <sondr3_> I've never done parser combinators before, so the code is surely weird :P
2020-11-21 16:35:12 +0100 <dminuoso> sondr3_: https://gist.github.com/dminuoso/6fcd4ffac6afc5a7a4ec9f39052dd986
2020-11-21 16:35:22 +0100 <dminuoso> Note that its usually awkward to return exactly what you parsed.
2020-11-21 16:36:05 +0100 <Feuermagier> ski, thx! - that works for me
2020-11-21 16:36:12 +0100 <dminuoso> I want to emphasize that you dont have to use the do/monadic interface here, you can do this with applicative too, but this is probably more readable
2020-11-21 16:36:41 +0100 <dminuoso> Oh, actually that code is off..
2020-11-21 16:36:53 +0100 <sondr3_> dminuoso: I'm all ears for suggestions and tips
2020-11-21 16:37:08 +0100 <dminuoso> takeWhile1P is right after all
2020-11-21 16:37:20 +0100 <zyklotomic> oh foldMap is essentialy Writer?
2020-11-21 16:37:33 +0100 <ski> Feuermagier : it sounded like perhaps, by "how do I zipWith, but only with one of the arguments changeing?","compine x with every argument out of [list] by function f - cycle through the list, keep x", you also had in mind possibly choosing `x' in each possible way, from a list. (hence the above lambdabot queries)
2020-11-21 16:37:48 +0100 <dminuoso> sondr3_: reload my gist
2020-11-21 16:38:19 +0100 <dminuoso> sondr3_: So I dont know what you're doing exactly, why do you need the parser to return the exact string it just parsed?
2020-11-21 16:39:03 +0100 <et09> ugh i don't get this
2020-11-21 16:39:18 +0100 <et09> xmonad --recompile, stack exec xmonad -- --recompile show it can't find XMonad, Xmonad.Util, etc.
2020-11-21 16:39:29 +0100 <sondr3_> dminuoso: I'm learning parsing?Haskell by parsing a format called HRX, and it requires "boundaries" (the <===>) to be the same width in the same document
2020-11-21 16:39:30 +0100 <et09> even after i just installed all of them with stack install
2020-11-21 16:39:52 +0100 <dminuoso> sondr3_: I see! :)
2020-11-21 16:40:55 +0100neiluj(~jco@91-167-203-101.subs.proxad.net)
2020-11-21 16:40:55 +0100neiluj(~jco@91-167-203-101.subs.proxad.net) (Changing host)
2020-11-21 16:40:55 +0100neiluj(~jco@unaffiliated/neiluj)
2020-11-21 16:42:26 +0100 <dminuoso> sondr3_: Perhaps you could write two combinators, firstBoundary :: Parser Int; and boundary :: Int -> Parser ()
2020-11-21 16:42:57 +0100 <dminuoso> Alternatively, you could bury the boundary length inside the state of your parser
2020-11-21 16:43:21 +0100 <dminuoso> say some `Maybe Int` that starts at Nothing, and `boundary :: Parser ()` then, if its Nothing, would determine the length, and if its `Just n` demand exactly n equals.
2020-11-21 16:44:09 +0100 <sondr3_> Yeah, I've been thinking about doing that, seems to be the easiest way in my head
2020-11-21 16:44:12 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-21 16:44:20 +0100son0p(~son0p@181.58.39.182)
2020-11-21 16:44:35 +0100aarvar(~foewfoiew@50.35.43.33)
2020-11-21 16:45:04 +0100ddellacosta(dd@gateway/vpn/mullvad/ddellacosta)
2020-11-21 16:45:16 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 16:45:19 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 16:46:00 +0100kish`(~oracle@unaffiliated/oracle) (Remote host closed the connection)
2020-11-21 16:47:10 +0100kish`(~oracle@unaffiliated/oracle)
2020-11-21 16:49:33 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 16:50:57 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection)
2020-11-21 16:51:10 +0100tremon(~aschuring@217-63-61-89.cable.dynamic.v4.ziggo.nl)
2020-11-21 16:51:25 +0100ChaiTRex(~ChaiTRex@gateway/tor-sasl/chaitrex)
2020-11-21 16:51:50 +0100aarvar(~foewfoiew@50.35.43.33) (Quit: Leaving.)
2020-11-21 16:52:07 +0100Gurkenglas(~Gurkengla@unaffiliated/gurkenglas)
2020-11-21 16:55:22 +0100aarvar(~foewfoiew@50.35.43.33)
2020-11-21 16:55:38 +0100aarvar(~foewfoiew@50.35.43.33) (Client Quit)
2020-11-21 16:56:00 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-11-21 16:56:14 +0100christo(~chris@81.96.113.213)
2020-11-21 16:57:13 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 264 seconds)
2020-11-21 16:57:50 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds)
2020-11-21 17:00:29 +0100Rudd0(~Rudd0@185.189.115.108)
2020-11-21 17:01:31 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 17:01:45 +0100 <idnar> @hoogle (a -> b -> c -> d) -> (a, b, c) -> d
2020-11-21 17:01:46 +0100 <lambdabot> Data.Tuple.Extra uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
2020-11-21 17:01:46 +0100 <lambdabot> Extra uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
2020-11-21 17:01:46 +0100 <lambdabot> Data.Tuple.HT uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
2020-11-21 17:05:26 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
2020-11-21 17:05:58 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds)
2020-11-21 17:06:25 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis)
2020-11-21 17:06:36 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a5b5:1f7c:6ea:f5a4)
2020-11-21 17:06:44 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net)
2020-11-21 17:07:32 +0100Fractalis(~Fractalis@2601:987:280:8d40:ddfc:6164:f3c:5c24)
2020-11-21 17:08:16 +0100Codaraxis(~Codaraxis@91.193.4.24) (Ping timeout: 240 seconds)
2020-11-21 17:08:43 +0100tsrt^(tsrt@ip98-184-89-2.mc.at.cox.net) ()
2020-11-21 17:09:47 +0100caef^(caef@ip98-184-89-2.mc.at.cox.net)
2020-11-21 17:11:51 +0100p-core(~Thunderbi@2a0e:1c80:4:1024::1007) (Ping timeout: 272 seconds)
2020-11-21 17:12:02 +0100gproto0023(~gproto23@unaffiliated/gproto23)
2020-11-21 17:12:35 +0100avdb(~avdb@ip-213-49-103-194.dsl.scarlet.be)
2020-11-21 17:12:39 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-21 17:14:15 +0100gproto023(~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds)
2020-11-21 17:14:51 +0100gproto0023gproto23
2020-11-21 17:16:15 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection)
2020-11-21 17:17:23 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-21 17:17:30 +0100xerox_(~xerox@unaffiliated/xerox) (Ping timeout: 256 seconds)
2020-11-21 17:19:40 +0100Codaraxis_(Codaraxis@gateway/vpn/mullvad/codaraxis) (Read error: Connection reset by peer)
2020-11-21 17:19:45 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a5b5:1f7c:6ea:f5a4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 17:20:25 +0100xerox_(~xerox@unaffiliated/xerox)
2020-11-21 17:20:26 +0100 <sondr3_> dminuoso: when using State in megaparsec do I need the `mtl` package? I can't figure out how to modify state with the examples
2020-11-21 17:21:07 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 17:21:19 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-21 17:21:56 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a5b5:1f7c:6ea:f5a4)
2020-11-21 17:21:56 +0100chkno_(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 17:22:10 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 17:22:36 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 256 seconds)
2020-11-21 17:24:42 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 17:25:42 +0100alp(~alp@2a01:e0a:58b:4920:b173:4b4d:a0b6:acac)
2020-11-21 17:27:13 +0100dorkside(~tdbgamer@208.190.197.222)
2020-11-21 17:28:20 +0100 <sm[m]> et09: you need to ask #xmonad, but I'm guessing xmonad --recompile is special/not smart enough to detect the environment provided by stack exec
2020-11-21 17:30:40 +0100Codaraxis(Codaraxis@gateway/vpn/mullvad/codaraxis)
2020-11-21 17:31:35 +0100 <et09> i got it working after following these steps - https://brianbuccola.com/how-to-install-xmonad-and-xmobar-via-stack/
2020-11-21 17:32:01 +0100avdb(~avdb@ip-213-49-103-194.dsl.scarlet.be) (Ping timeout: 264 seconds)
2020-11-21 17:32:26 +0100acidjnk_new2(~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-21 17:32:36 +0100foursaph(~foursaph@dynamic-095-116-060-225.95.116.pool.telefonica.de)
2020-11-21 17:33:59 +0100 <sm[m]> et09: nice, that should be made prominent for xmonad users
2020-11-21 17:35:22 +0100vicfred(~vicfred@unaffiliated/vicfred)
2020-11-21 17:38:08 +0100shf(~sheaf@2a01:cb19:80cc:7e00:b8bb:ef68:fc1c:f951)
2020-11-21 17:38:15 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net)
2020-11-21 17:38:28 +0100 <et09> man 15gb hard drive on this and 11gb already used after install, 4gb for stack
2020-11-21 17:41:24 +0100 <et09> and i think the hd is soldered into the motherboard lol. doomed
2020-11-21 17:41:27 +0100 <sm[m]> maybe there's a ghc version/old-ghc libs in there you can delete ? ncdu is good
2020-11-21 17:41:45 +0100 <et09> ncdu?
2020-11-21 17:41:53 +0100acarrico(~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Remote host closed the connection)
2020-11-21 17:42:05 +0100 <sm[m]> yup, great tool
2020-11-21 17:42:10 +0100 <et09> oo nice
2020-11-21 17:42:15 +0100 <et09> i have cli scripts that do similar
2020-11-21 17:42:28 +0100 <et09> well it's 2.2gb /programs, 1.3gb /pantry, 442mb /snapshots
2020-11-21 17:42:44 +0100 <et09> only one ghc version i think ...
2020-11-21 17:42:51 +0100 <sm[m]> rats
2020-11-21 17:43:08 +0100 <et09> no matter
2020-11-21 17:43:14 +0100 <et09> this is a random toy project anyway
2020-11-21 17:43:28 +0100andos(~dan@69-165-210-185.cable.teksavvy.com)
2020-11-21 17:43:29 +0100 <MarcelineVQ> sounds about right: ghc, hackage index, libraries
2020-11-21 17:43:31 +0100 <et09> ill dig up like a 32/64gb ssd if i wanna throw snes games on here or something
2020-11-21 17:43:41 +0100 <sm[m]> what kind of machine has a 15G drive ?
2020-11-21 17:43:46 +0100chaosmasttter(~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de)
2020-11-21 17:43:52 +0100 <et09> you don't want to know
2020-11-21 17:44:20 +0100 <et09> hp chromebook 11 g5, ~2015
2020-11-21 17:44:25 +0100Saukk(~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection)
2020-11-21 17:44:51 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-11-21 17:45:09 +0100 <MarcelineVQ> You could probably compile on a larger computer and move the executable +​ settings to your smaller storage device
2020-11-21 17:45:48 +0100cole-h(~cole-h@c-73-48-197-220.hsd1.ca.comcast.net)
2020-11-21 17:46:11 +0100 <MarcelineVQ> dunno how reasonable that is for xmonad in terms of seeing the effects of particular changes
2020-11-21 17:46:32 +0100xff0x(~fox@2001:1a81:53c2:b800:23a4:8a65:fdbc:e15b) (Ping timeout: 260 seconds)
2020-11-21 17:47:20 +0100xff0x(~fox@2001:1a81:53c2:b800:5bdf:9233:5c1b:206)
2020-11-21 17:48:22 +0100foursaph(~foursaph@dynamic-095-116-060-225.95.116.pool.telefonica.de) (Quit: leaving)
2020-11-21 17:48:36 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-11-21 17:48:40 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-21 17:49:39 +0100f-a(~f-a@151.36.70.173)
2020-11-21 17:50:08 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-21 17:50:43 +0100 <sm[m]> "suboptimal" I think we could say
2020-11-21 17:51:50 +0100 <merijn> stack generally installs multiple GHC's, so that quickly racks up space
2020-11-21 17:52:02 +0100melkor(~melkor@31.31.76.126)
2020-11-21 17:53:07 +0100 <maerwald> merijn: if it had a way to garbage collect, but...
2020-11-21 17:53:21 +0100 <sm[m]> et09 checked, and only has the one
2020-11-21 17:54:08 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net)
2020-11-21 17:56:43 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 18:00:44 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 272 seconds)
2020-11-21 18:01:26 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 18:01:53 +0100renzhi(~renzhi@2607:fa49:655f:e600::28da)
2020-11-21 18:02:16 +0100elfets(~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de)
2020-11-21 18:03:41 +0100Fractalis(~Fractalis@2601:987:280:8d40:ddfc:6164:f3c:5c24) (Quit: Leaving)
2020-11-21 18:04:21 +0100christo(~chris@81.96.113.213)
2020-11-21 18:06:01 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 18:07:18 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-21 18:08:34 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Remote host closed the connection)
2020-11-21 18:08:54 +0100conal(~conal@64.71.133.70)
2020-11-21 18:10:52 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 18:11:15 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 18:12:22 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 265 seconds)
2020-11-21 18:13:52 +0100bitmapper(uid464869@gateway/web/irccloud.com/x-pcjsdqzlpwhjwdiy)
2020-11-21 18:14:18 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137)
2020-11-21 18:14:40 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 256 seconds)
2020-11-21 18:14:50 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-21 18:16:27 +0100alp(~alp@2a01:e0a:58b:4920:b173:4b4d:a0b6:acac) (Ping timeout: 272 seconds)
2020-11-21 18:16:47 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-11-21 18:18:27 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 18:18:28 +0100 <et09> if it were that serious i'd just use a c tiling window manager hah
2020-11-21 18:18:52 +0100 <et09> i just got this chromebook for free like 5 years ago and had to do a hardware mod (removing a screw -_-) to install linux on it
2020-11-21 18:19:00 +0100 <et09> and never got around to it until this week
2020-11-21 18:19:14 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137) (Ping timeout: 264 seconds)
2020-11-21 18:19:27 +0100 <maerwald> just use i3 then
2020-11-21 18:20:21 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-21 18:21:50 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 18:23:11 +0100HarveyPwca(~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net)
2020-11-21 18:24:04 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 18:24:21 +0100 <zyklotomic> huh? why do you have to roll your own xmonad
2020-11-21 18:24:26 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Remote host closed the connection)
2020-11-21 18:24:34 +0100 <zyklotomic> i've been ok enough with the ones in my distro's repos
2020-11-21 18:25:03 +0100FreeBirdLjj(~freebirdl@101.228.42.108)
2020-11-21 18:25:13 +0100 <maerwald> the entire point of xmonad is "code as configuration", no?
2020-11-21 18:25:24 +0100 <zyklotomic> and if I really needed to, i would feel comfortable enough directly changing the package manager build-file, not sure about your use case though
2020-11-21 18:25:41 +0100 <zyklotomic> maerwald: yeah, but it can still read my xmonad.hs file in my home dir
2020-11-21 18:26:23 +0100 <zyklotomic> i'm not sure about its inner workings, but it has always been able to read my ~/xmonad/xmonad.hs file
2020-11-21 18:27:21 +0100alp(~alp@2a01:e0a:58b:4920:a8cc:de6c:bd5c:69eb)
2020-11-21 18:27:40 +0100 <zyklotomic> so i don't think it's as intense/hard core as some other WM's where you have to modify the actual source code
2020-11-21 18:29:11 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Quit: WeeChat 3.0)
2020-11-21 18:29:45 +0100FreeBirdLjj(~freebirdl@101.228.42.108) (Ping timeout: 260 seconds)
2020-11-21 18:30:31 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 18:35:25 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-21 18:36:24 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Quit: WeeChat 3.0)
2020-11-21 18:36:53 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:a5b5:1f7c:6ea:f5a4) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-21 18:37:01 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 18:42:56 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net) (Ping timeout: 240 seconds)
2020-11-21 18:43:46 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 246 seconds)
2020-11-21 18:44:58 +0100knupfer(~Thunderbi@i5E86B4AF.versanet.de)
2020-11-21 18:45:49 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-11-21 18:46:15 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-21 18:46:26 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-21 18:46:34 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 18:47:06 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-21 18:47:11 +0100jonatanb_(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 18:47:39 +0100oish(~charlie@228.25.169.217.in-addr.arpa)
2020-11-21 18:49:12 +0100f-a(~f-a@151.36.70.173) (Quit: leaving)
2020-11-21 18:49:13 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 18:49:33 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-21 18:50:03 +0100solonarv(~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr)
2020-11-21 18:50:05 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds)
2020-11-21 18:50:37 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 264 seconds)
2020-11-21 18:51:36 +0100czwartyeon(~czwartyeo@77-45-55-99.sta.asta-net.com.pl)
2020-11-21 18:51:39 +0100christo(~chris@81.96.113.213)
2020-11-21 18:53:26 +0100chaosmasttter(~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2020-11-21 18:53:46 +0100knupfer(~Thunderbi@i5E86B4AF.versanet.de) (Quit: knupfer)
2020-11-21 18:55:17 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 18:55:36 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-21 18:55:36 +0100christo(~chris@81.96.113.213) (Ping timeout: 240 seconds)
2020-11-21 18:55:50 +0100jonatanb_(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-11-21 18:56:37 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds)
2020-11-21 18:57:03 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds)
2020-11-21 18:57:51 +0100 <dminuoso> sondr3_: It's easiest with mtl.
2020-11-21 18:58:32 +0100 <sondr3_> dminuoso: Yeah, managed to get it to work with it :)
2020-11-21 18:58:40 +0100 <dminuoso> Great! :)
2020-11-21 19:00:34 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-11-21 19:00:37 +0100gehmehgeh(~ircuser1@gateway/tor-sasl/gehmehgeh)
2020-11-21 19:01:29 +0100knupfer(~Thunderbi@200116b82ce1e1004151d196bd118340.dip.versatel-1u1.de)
2020-11-21 19:01:59 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137)
2020-11-21 19:02:21 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 19:03:13 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
2020-11-21 19:04:56 +0100raichoo(~raichoo@dslb-178-009-023-219.178.009.pools.vodafone-ip.de) (Quit: Lost terminal)
2020-11-21 19:06:52 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-21 19:07:43 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 19:08:29 +0100christo(~chris@81.96.113.213)
2020-11-21 19:08:49 +0100christo(~chris@81.96.113.213) (Remote host closed the connection)
2020-11-21 19:08:50 +0100cosimone(~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8)
2020-11-21 19:08:55 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-11-21 19:12:49 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 264 seconds)
2020-11-21 19:16:44 +0100cosimone(~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Ping timeout: 240 seconds)
2020-11-21 19:16:53 +0100Inoperable(~PLAYER_1@fancydata.science) (Excess Flood)
2020-11-21 19:21:37 +0100alp(~alp@2a01:e0a:58b:4920:a8cc:de6c:bd5c:69eb) (Ping timeout: 260 seconds)
2020-11-21 19:25:25 +0100 <merijn> maerwald: Not really
2020-11-21 19:25:25 +0100gproto23(~gproto23@unaffiliated/gproto23)
2020-11-21 19:25:56 +0100 <merijn> maerwald: The point of xmonad is more like "we made a DSL/library for writing custom window managers and are suckering people into writing Haskell window managers by telling them its configuration"
2020-11-21 19:26:38 +0100Inoperable(~PLAYER_1@fancydata.science)
2020-11-21 19:27:13 +0100 <zyklotomic> thats a pretty hilarious take
2020-11-21 19:27:30 +0100 <merijn> zyklotomic: It's true, though :)
2020-11-21 19:28:05 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 260 seconds)
2020-11-21 19:29:32 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-21 19:31:29 +0100 <zyklotomic> I will admit that is what exposed me to Haskell
2020-11-21 19:31:42 +0100 <zyklotomic> so inadvertently or not (idk tbh), Xmonad did its purpose
2020-11-21 19:31:48 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-21 19:31:55 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-11-21 19:32:03 +0100 <zyklotomic> it definitely is good publicity for the language
2020-11-21 19:32:06 +0100 <monochrom> My view is they were too lazy to design and implement a proper config format.
2020-11-21 19:32:10 +0100neiluj(~jco@unaffiliated/neiluj) (Quit: leaving)
2020-11-21 19:32:17 +0100 <zyklotomic> ...and called it a feature
2020-11-21 19:32:19 +0100 <merijn> monochrom: Compromise: It was both
2020-11-21 19:32:35 +0100 <merijn> monochrom: Can you blame them? Dhall hadn't been invented yet!
2020-11-21 19:32:53 +0100 <monochrom> They could have invented dhall or better.
2020-11-21 19:33:22 +0100 <geekosaur> the problem with monochrom's view is that spencer was a dwm user and explicitly cloned dwm
2020-11-21 19:33:32 +0100 <dsal> et09: I have a chromebook pixel I pulled the screw out of. It runs nixos+xmonad now.
2020-11-21 19:33:36 +0100 <geekosaur> "because haskell was better at doing edsls"
2020-11-21 19:33:41 +0100 <merijn> geekosaur: That's the suckless one?
2020-11-21 19:33:47 +0100 <geekosaur> yeh
2020-11-21 19:34:15 +0100 <zyklotomic> i guess theres dozens of us! dsal
2020-11-21 19:34:16 +0100 <merijn> I wonder if they're still around, or if they've given up in the onslaught of terrible software :p
2020-11-21 19:34:34 +0100 <geekosaur> dunno
2020-11-21 19:35:01 +0100 <geekosaur> they've not exactly lived up to their name at times, thoguh; they've had some pretty terrible bugs
2020-11-21 19:35:42 +0100 <merijn> To be fair, the main motivation/ideology wasn't "less buggy"
2020-11-21 19:36:01 +0100 <merijn> It was simpler, clearer, and less resource intensive
2020-11-21 19:36:16 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 240 seconds)
2020-11-21 19:36:25 +0100Sgeo(~Sgeo@ool-18b982ad.dyn.optonline.net)
2020-11-21 19:36:27 +0100 <zyklotomic> and have it "suck less"
2020-11-21 19:36:27 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 19:36:31 +0100 <monochrom> All three were destroyed by migrating to Haskell and GHC.
2020-11-21 19:36:37 +0100 <merijn> monochrom: ;)
2020-11-21 19:37:03 +0100 <merijn> monochrom: And yet Haskell still sucks less than C :p
2020-11-21 19:37:14 +0100 <merijn> Hell, Haskell is a better C than C :p
2020-11-21 19:38:00 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2020-11-21 19:38:22 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4)
2020-11-21 19:39:01 +0100p-core(~Thunderbi@2a0e:1c80:4:1023::1004)
2020-11-21 19:40:24 +0100hidedagger(~nate@unaffiliated/hidedagger) (Client Quit)
2020-11-21 19:40:56 +0100hidedagger(~nate@unaffiliated/hidedagger)
2020-11-21 19:41:10 +0100DavidEichmann(~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection)
2020-11-21 19:42:25 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4) (Client Quit)
2020-11-21 19:42:43 +0100hnOsmium0001(uid453710@gateway/web/irccloud.com/x-bxutlphfkqmfvhzw)
2020-11-21 19:44:02 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4)
2020-11-21 19:44:04 +0100robotmay(~beepboop@80.172.187.81.in-addr.arpa)
2020-11-21 19:44:39 +0100dfaiv(44f9e9e4@68-249-233-228.lightspeed.okcbok.sbcglobal.net)
2020-11-21 19:45:07 +0100dftxbs3e(~dftxbs3e@unaffiliated/dftxbs3e) (Ping timeout: 272 seconds)
2020-11-21 19:46:26 +0100 <tomsmeding> I'm happily using suckless' st terminal
2020-11-21 19:46:36 +0100 <tomsmeding> one datapoint :p
2020-11-21 19:46:43 +0100 <merijn> There's no way to make terminals suck less :p
2020-11-21 19:46:58 +0100 <tomsmeding> ¯\_(ツ)_/¯
2020-11-21 19:47:37 +0100 <tomsmeding> would be interesting to meet a person that actually uses ii
2020-11-21 19:47:56 +0100 <merijn> tomsmeding: Out of morbid curiosity? :p
2020-11-21 19:48:01 +0100 <tomsmeding> yes :p
2020-11-21 19:48:40 +0100 <merijn> tomsmeding: There's two kinds of people. People who like terminals, and people who've read the APUE chapter on terminals and know how they work and what kinda weird abomination they are >.>
2020-11-21 19:48:44 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 256 seconds)
2020-11-21 19:48:55 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4) (Client Quit)
2020-11-21 19:49:15 +0100tomsmedingdoesn't know what APUE is, but I know how ansi escape sequences work, does that count?
2020-11-21 19:49:39 +0100son0p(~son0p@181.58.39.182) (Quit: leaving)
2020-11-21 19:49:45 +0100 <merijn> tomsmeding: Advanced Programming in the UNIX Environment
2020-11-21 19:50:01 +0100 <merijn> The bible for anyone who wants any hope of writing remotely robust portable posix code :)
2020-11-21 19:51:25 +0100 <dolio> Seems to me the problem is that people generally want to replace terminals with something worse, rather than better.
2020-11-21 19:51:42 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 19:51:43 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4)
2020-11-21 19:52:16 +0100 <merijn> dolio: Doesn't that hold for basically every technology? :p
2020-11-21 19:52:51 +0100 <dolio> Probably.
2020-11-21 19:52:52 +0100 <merijn> dolio: See TypeInType ;)
2020-11-21 19:57:09 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Ping timeout: 245 seconds)
2020-11-21 19:59:00 +0100qqqqqq(~Me@185.142.40.159)
2020-11-21 19:59:03 +0100 <qqqqqq> 6Lets praise Allah; 3he is our God, thee one; he is the god of Moses; Noah; Jesus & Mohammed; he sent us our Book 7 Quran, 10Monotheism is cleared by all prophets ~ 6 We get heaven & happiness on earth by praying to the one god 6& by Saying No God except Allah & that Mohammed is the messenger of Allah. 4 treat others as u like to be treated 10---------;{@
2020-11-21 19:59:05 +0100qqqqqq(~Me@185.142.40.159) ()
2020-11-21 19:59:55 +0100 <Uniaika> *sigh*
2020-11-21 20:00:34 +0100 <tomsmeding> well it is nice and colourful
2020-11-21 20:00:45 +0100 <[exa]> the last part actually made some sense
2020-11-21 20:00:54 +0100 <tomsmeding> except for the ;{@
2020-11-21 20:00:57 +0100 <[exa]> I give 3 stars out of 5 and ban
2020-11-21 20:01:03 +0100 <merijn> [exa]: Agreed, we should bring back ascii roses
2020-11-21 20:01:05 +0100 <Uniaika> nah the rose was decent, [exa]
2020-11-21 20:01:08 +0100 <Uniaika> I've seen worse
2020-11-21 20:01:10 +0100 <[exa]> lol
2020-11-21 20:01:12 +0100 <tomsmeding> oh that's a rose?
2020-11-21 20:01:15 +0100 <Uniaika> yeah
2020-11-21 20:01:22 +0100tomsmedingis too young for this shit
2020-11-21 20:01:29 +0100 <Uniaika> lol, how old are you? tomsmeding
2020-11-21 20:01:31 +0100 <merijn> tomsmeding: Usually in MUDs they'd use that for flowers/roses
2020-11-21 20:01:33 +0100 <hpc> all i saw was an unmatched squiggly brace
2020-11-21 20:01:42 +0100 <merijn> Man...I miss MUDs...
2020-11-21 20:01:44 +0100 <dolio> Missed an opportunity to color the rose correctly.
2020-11-21 20:01:52 +0100 <tomsmeding> lol I'm 22 Uniaika
2020-11-21 20:02:02 +0100 <Uniaika> tomsmeding: :D
2020-11-21 20:02:03 +0100 <Uniaika> nice
2020-11-21 20:02:06 +0100 <merijn> they were like MMOs, but before the massive exploitation of the modern games industry
2020-11-21 20:02:06 +0100 <Uniaika> some young blood
2020-11-21 20:02:07 +0100Jeanne-Kamikaze(~Jeanne-Ka@66.115.189.174)
2020-11-21 20:02:08 +0100 <tomsmeding> I didn't have IRC in my life until recently
2020-11-21 20:02:11 +0100 <hpc> but it's in a comment so i guess that's fine :P
2020-11-21 20:02:14 +0100 <[exa]> merijn: let's waste a month playing ishar?
2020-11-21 20:02:26 +0100 <Uniaika> tomsmeding: I'm 25 myself
2020-11-21 20:02:52 +0100 <merijn> [exa]: I don't know ishar. I mostly played Aardwolf which was a *heavily* (to the point of unrecognisability) modified ROM 2.4
2020-11-21 20:03:14 +0100 <[exa]> tomsmeding: Uniaika: worry not, I'm 33 and I have no idea whether there's any correlation between age and knowledge of MUDs :D
2020-11-21 20:03:16 +0100 <merijn> It's still up (or was a year ago), but I got kicked out of the clan :(
2020-11-21 20:03:23 +0100berberman_(~berberman@unaffiliated/berberman)
2020-11-21 20:03:27 +0100 <[exa]> o noes
2020-11-21 20:03:27 +0100 <Uniaika> [exa]: :D
2020-11-21 20:03:39 +0100 <merijn> [exa]: I'm 34, so that's about the tail end of the MUD era in terms of age :p
2020-11-21 20:04:07 +0100berberman(~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds)
2020-11-21 20:04:30 +0100hackagecandid 0.1 - Candid integration https://hackage.haskell.org/package/candid-0.1 (JoachimBreitner)
2020-11-21 20:04:52 +0100alp(~alp@2a01:e0a:58b:4920:4e0f:6ea:5e4e:a140)
2020-11-21 20:07:13 +0100 <[exa]> merijn: like, my mud carreer peaked at like 16--18
2020-11-21 20:07:30 +0100son0p(~son0p@181.136.122.143)
2020-11-21 20:07:33 +0100 <merijn> Mine probably right before WoW :p
2020-11-21 20:07:38 +0100 <merijn> From one drug to another ;)
2020-11-21 20:07:38 +0100 <[exa]> lol
2020-11-21 20:07:48 +0100 <[exa]> that may correspond well, yes
2020-11-21 20:07:50 +0100hidedagger(~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9)
2020-11-21 20:07:51 +0100acidjnk_new2(~acidjnk@p200300d0c719ff54e8f13b1c4a3f9bcc.dip0.t-ipconnect.de)
2020-11-21 20:10:34 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-21 20:10:36 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 240 seconds)
2020-11-21 20:12:32 +0100chaosmasttter(~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de)
2020-11-21 20:12:57 +0100nbloomf(~nbloomf@2600:1700:ad14:3020:6de0:da61:3bf0:e8b4) (Quit: Textual IRC Client: www.textualapp.com)
2020-11-21 20:15:13 +0100kritzefitz(~kritzefit@212.86.56.80) (Ping timeout: 260 seconds)
2020-11-21 20:21:26 +0100Lycurgus(~niemand@98.4.114.74)
2020-11-21 20:22:35 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu)
2020-11-21 20:26:18 +0100elliott__(~elliott@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-21 20:28:00 +0100Guest42(56ca6780@gateway/web/cgi-irc/kiwiirc.com/ip.86.202.103.128)
2020-11-21 20:29:28 +0100ezzieyguywuf(~Unknown@unaffiliated/ezzieyguywuf)
2020-11-21 20:30:25 +0100 <Feuermagier> %C08,13 how does one actually write in color here?
2020-11-21 20:31:46 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2020-11-21 20:32:41 +0100kupi(uid212005@gateway/web/irccloud.com/x-zjfftffhhqbtimeu)
2020-11-21 20:33:32 +0100 <hpc> depends on the client
2020-11-21 20:33:39 +0100 <geekosaur> that %C thing is specific to xchat and only if color is enabled (check its settings). at low level it's control-C,and up to the client to specify how to get that (the webchat I'm using doesn't seem to support it at all)
2020-11-21 20:33:56 +0100 <Feuermagier> hexchat here
2020-11-21 20:35:25 +0100 <geekosaur> then you needto enable the color escapes. I don't recall where that is in the settings
2020-11-21 20:35:54 +0100 <geekosaur> (I usually edit the settings files directly while it's not running, there are a lot of settings it doesn't expose in the ui)
2020-11-21 20:36:37 +0100Lycurgus(~niemand@98.4.114.74) (Quit: Exeunt)
2020-11-21 20:36:40 +0100 <Feuermagier> IRC really has everything one could need
2020-11-21 20:37:05 +0100_linker_(~linker@185.12.21.77)
2020-11-21 20:41:14 +0100 <[exa]> Feuermagier: pls don't color
2020-11-21 20:41:29 +0100alp(~alp@2a01:e0a:58b:4920:4e0f:6ea:5e4e:a140) (Ping timeout: 272 seconds)
2020-11-21 20:41:45 +0100 <Feuermagier> [exa], why?
2020-11-21 20:42:20 +0100 <[exa]> one shall typeset with a single ink, even IRC
2020-11-21 20:46:17 +0100Uniaikacan show why colourful IRC can be a pain :>
2020-11-21 20:46:45 +0100Feuermagieris interested
2020-11-21 20:47:01 +0100 <Uniaika> 14,6 KIKOO FEUERMAGIER !!!!!! :o))))))))))))))))
2020-11-21 20:47:01 +0100 <Uniaika> 10,3 KIKOOOOOOOOOOOO FEUERMAGIER !!!!!!!! :o))))))))))))
2020-11-21 20:47:02 +0100 <Uniaika> 7,4 KIKOO FEUERMAGIER !!!!!! :o))))))))))
2020-11-21 20:47:03 +0100 <Uniaika> 13,11 KIKOOOOOOO FEUERMAGIER !!!!!!!!!!!!! :o))))))))
2020-11-21 20:47:05 +0100 <Uniaika> 12,2 KIKOOOOOOOOO FEUERMAGIER !!! :o))))))))))))))))
2020-11-21 20:47:05 +0100Uniaika(~uniaika@163.172.211.189) (Killed (Sigyn (Spam is off topic on freenode.)))
2020-11-21 20:47:20 +0100Feuermagieris amused
2020-11-21 20:47:49 +0100 <maerwald> lol
2020-11-21 20:47:57 +0100 <monochrom> Yikes Uniaika sacrified themselves to show you.
2020-11-21 20:48:10 +0100 <Feuermagier> how honorful
2020-11-21 20:48:25 +0100 <Feuermagier> may he rest in peace
2020-11-21 20:50:46 +0100Uniaika(~uniaika@163.172.211.189)
2020-11-21 20:50:50 +0100 <zyklotomic> wait woah you can do that?
2020-11-21 20:50:56 +0100 <zyklotomic> that worked for me, i was not ready for that
2020-11-21 20:51:14 +0100 <merijn> You can do that, but clearly you shouldn't >.>
2020-11-21 20:51:27 +0100 <Uniaika> Feuermagier: that's the last time I'm helpful :>
2020-11-21 20:51:28 +0100 <zyklotomic> i have never ever seen colored in my 4 (albeit short) years of irc
2020-11-21 20:51:38 +0100 <ben_m> what's next, embedded images, emoji and voice chat?
2020-11-21 20:51:45 +0100 <zyklotomic> woah woah slow down
2020-11-21 20:51:59 +0100 <zyklotomic> maybe a few decades down the road
2020-11-21 20:52:12 +0100 <zyklotomic> i don't think that's possible right now
2020-11-21 20:52:45 +0100 <zyklotomic> is there a clean way to compose functions that share tails?
2020-11-21 20:52:57 +0100 <geekosaur> some clients translate emoji
2020-11-21 20:52:57 +0100 <zyklotomic> f: a -> b -> c, g: b -> c -> d
2020-11-21 20:53:10 +0100 <geekosaur> (it's a bad idea here, it'll do weird things to code)
2020-11-21 20:53:16 +0100 <zyklotomic> where the b and the c arguments are the same
2020-11-21 20:53:32 +0100 <zyklotomic> where the tail is the head of the next*
2020-11-21 20:53:40 +0100 <Feuermagier> can I use emojis for variable or function names in haskell?
2020-11-21 20:53:44 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-21 20:54:03 +0100 <maerwald> like haskell isn't obscure enough already
2020-11-21 20:54:11 +0100 <Uniaika> ben_m: you could have avatars with Hexchat I think
2020-11-21 20:54:19 +0100 <Uniaika> emojis are already here
2020-11-21 20:54:42 +0100 <geekosaur> also there's emoji in unicode which probably pass through and are displayed by Unicode-capable clients
2020-11-21 20:54:45 +0100 <merijn> > let x ☃ y = x*y + x + y in 3 ☃ 4 -- I dunno, can you?
2020-11-21 20:54:48 +0100 <lambdabot> 19
2020-11-21 20:54:59 +0100 <geekosaur> depends on the character class. I suspect they're symbols so would have to be operator syntax
2020-11-21 20:55:21 +0100 <Feuermagier> merijn, my god, what have I done...
2020-11-21 20:55:30 +0100 <merijn> > generalCategory '💩'
2020-11-21 20:55:32 +0100 <lambdabot> OtherSymbol
2020-11-21 20:55:40 +0100 <merijn> Symbol, so valid operator :)
2020-11-21 20:55:53 +0100jneira(02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192)
2020-11-21 20:55:54 +0100 <merijn> > let x 💩 y = x*y + x + y in 3 💩 4 -- I dunno, can you?
2020-11-21 20:55:55 +0100hexfive(~hexfive@50-47-142-195.evrt.wa.frontiernet.net)
2020-11-21 20:55:56 +0100 <lambdabot> 19
2020-11-21 20:56:05 +0100 <Feuermagier> *oh god*
2020-11-21 20:56:14 +0100knupfer(~Thunderbi@200116b82ce1e1004151d196bd118340.dip.versatel-1u1.de) (Remote host closed the connection)
2020-11-21 20:56:16 +0100 <zyklotomic> oh right i was reading the other the day, almost any unicode is a valid operator
2020-11-21 20:56:21 +0100 <merijn> Feuermagier: For details see chapter 2 of the Haskell 2010 report :p
2020-11-21 20:56:23 +0100knupfer(~Thunderbi@200116b82ce1e1001cbbbad91fc51f3d.dip.versatel-1u1.de)
2020-11-21 20:56:28 +0100 <merijn> zyklotomic: Not really
2020-11-21 20:56:39 +0100 <merijn> zyklotomic: Only the unicode characters with "symbol" class
2020-11-21 20:57:06 +0100 <merijn> > generalCategory '∑'
2020-11-21 20:57:08 +0100 <lambdabot> MathSymbol
2020-11-21 20:57:15 +0100 <Feuermagier> 🐧
2020-11-21 20:57:18 +0100 <zyklotomic> ah
2020-11-21 20:57:22 +0100 <merijn> > generalCategory 'Σ'
2020-11-21 20:57:23 +0100 <lambdabot> UppercaseLetter
2020-11-21 20:57:26 +0100 <zyklotomic> and then there's this abomination https://github.com/vasilevp/aboriginal lol
2020-11-21 20:57:59 +0100 <merijn> Note how the sum symbol is an operator, but capital sigma is a letter and thus only in function names
2020-11-21 20:59:14 +0100 <zyklotomic> that makes sense
2020-11-21 20:59:15 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-21 20:59:28 +0100 <Feuermagier> KDE replaces each one of those emjois with high-res color-images, which do not fit one bit into IRC
2020-11-21 20:59:31 +0100 <zyklotomic> i'm surprised they thought to make this distinction
2020-11-21 20:59:41 +0100 <merijn> zyklotomic: Fun related trivia
2020-11-21 20:59:42 +0100henninb(~henninb@63.226.173.161)
2020-11-21 20:59:50 +0100Tario(~Tario@201.192.165.173)
2020-11-21 21:00:04 +0100 <Feuermagier> we don't have lambda, but we have 🦙
2020-11-21 21:00:16 +0100 <merijn> The fact that GHC compiles this package https://hackage.haskell.org/package/acme-lookofdisapproval-0.1/docs/Acme-LookOfDisapproval.html is technically a violation of the Haskell Report
2020-11-21 21:00:33 +0100kritzefitz(~kritzefit@212.86.56.80)
2020-11-21 21:01:23 +0100 <merijn> Constructor names must start with a capital letter and non-constructor names must start with a lowercase letter or _
2020-11-21 21:01:30 +0100 <merijn> Notice the flaw?
2020-11-21 21:01:47 +0100 <gentauro> anybody here using `xmobar`?
2020-11-21 21:02:03 +0100 <gentauro> I would like to hide it for one of my `workspaces`
2020-11-21 21:02:04 +0100 <gentauro> :)
2020-11-21 21:02:32 +0100 <gentauro> (by default, but maybe show it with some Xmonad shortcut)
2020-11-21 21:02:34 +0100 <merijn> GHC (technically wrongly) lets non-constructor names start with "non-uppercase letters or _", rather than lowercase letter of _ :p
2020-11-21 21:02:38 +0100 <merijn> > isUpper 'ಠ'
2020-11-21 21:02:40 +0100 <lambdabot> False
2020-11-21 21:02:42 +0100 <merijn> > isLower 'ಠ'
2020-11-21 21:02:44 +0100 <lambdabot> False
2020-11-21 21:03:03 +0100 <gentauro> merijn: you can't use lowercase greek letters for constructors
2020-11-21 21:03:04 +0100 <merijn> > isLetter 'ಠ'
2020-11-21 21:03:07 +0100 <lambdabot> True
2020-11-21 21:03:09 +0100 <gentauro> but you can use the uppercase
2020-11-21 21:03:43 +0100conal(~conal@64.71.133.70)
2020-11-21 21:03:43 +0100 <merijn> gentauro: 1) you can use lowercase greek letters for constructors, just not the first one, 2) I didn't say that? :)
2020-11-21 21:04:09 +0100 <zyklotomic> gentauro: if you want immediate relief, i think the default is modifier-b
2020-11-21 21:05:04 +0100 <geekosaur> gentauro, I think https://github.com/geekosaur/xmonad.hs/blob/pyanfar/xmonad.hs#L142 is as close as you get
2020-11-21 21:05:06 +0100 <zyklotomic> i'm not sure about how to make it a rule though
2020-11-21 21:05:15 +0100 <zyklotomic> oh ^ maybe geekosaur has it
2020-11-21 21:05:32 +0100 <zyklotomic> merijn: that is one great hidden gem lol
2020-11-21 21:05:50 +0100 <geekosaur> (note also the avoidStruts on the following line, for all the other workspaces)
2020-11-21 21:07:00 +0100 <zyklotomic> is there a way around this following pattern? "segment str . viterbi hd $ str"
2020-11-21 21:07:17 +0100 <zyklotomic> where str has to be used as an argument for both `segment' and `viterbi'
2020-11-21 21:08:07 +0100 <dminuoso> liftA2 (.) segmetn (viterbi hd) $ str
2020-11-21 21:08:12 +0100 <dminuoso> Not sure that's any better though.
2020-11-21 21:08:36 +0100 <dminuoso> Or: (.) <$> segment <*> vierbi hd $ str
2020-11-21 21:08:52 +0100 <dminuoso> no wait, that's not the same
2020-11-21 21:08:52 +0100 <merijn> or...crazy idea
2020-11-21 21:08:53 +0100 <zyklotomic> yeah I have liftA2 ominously imported before I asked
2020-11-21 21:08:59 +0100 <gentauro> geekosaur: thanks, I will give it a try :)
2020-11-21 21:09:00 +0100 <merijn> Write a lambda/put it into a let/where binding
2020-11-21 21:09:13 +0100daGrevis(~daGrevis@unaffiliated/dagrevis) (Ping timeout: 260 seconds)
2020-11-21 21:09:33 +0100 <zyklotomic> but is `liftA2 (.)' kinda a bit too crazy?
2020-11-21 21:09:34 +0100 <dminuoso> or.. it is the same. I really dislike using the monadic interface of Reader
2020-11-21 21:09:37 +0100 <merijn> I know, I know...it's outrageous...but it's so crazy it just might work!
2020-11-21 21:09:43 +0100 <gentauro> geekosaur: funny enough, it's to run a vm with `win 10` xD
2020-11-21 21:09:47 +0100 <dminuoso> zyklotomic: It is.
2020-11-21 21:09:48 +0100 <zyklotomic> i think i abuse `liftA2 (.)' too much
2020-11-21 21:10:01 +0100 <merijn> zyklotomic: Probably
2020-11-21 21:10:25 +0100 <dminuoso> One of the issues with overusing Applicative in the middle of code, is that it's sometimes not immediate obvious which instance is being used.
2020-11-21 21:10:33 +0100 <merijn> Here's a great tip from coming back to a huge codebase with 6 month to 1 year intervals: Putting stuff in let/where and giving stuff names is a pretty great idea
2020-11-21 21:11:01 +0100 <merijn> liftA2 (.) is a great way to hate yourself
2020-11-21 21:11:34 +0100 <zyklotomic> yeah ok, I sane-ed up a lil and deleted it
2020-11-21 21:11:42 +0100 <zyklotomic> thanks y'all
2020-11-21 21:11:45 +0100 <dminuoso> zyklotomic: Personally Id just write parens.
2020-11-21 21:11:57 +0100 <dminuoso> segment str (vierbi hd str)
2020-11-21 21:12:02 +0100 <dminuoso> perhaps with a let/where binding
2020-11-21 21:12:10 +0100 <dminuoso> There's no need to try and get cute her
2020-11-21 21:12:12 +0100magma(~magma@host-87-20-128-180.retail.telecomitalia.it)
2020-11-21 21:12:16 +0100 <dminuoso> It certainly doesnt *improve* readability
2020-11-21 21:12:29 +0100 <zyklotomic> yeah, I was just wondering if there was a way to avoid that double invoctaion of str somehow
2020-11-21 21:12:40 +0100 <dminuoso> zyklotomic: since its named, it will be shared anyhow.
2020-11-21 21:12:43 +0100daGrevis(~daGrevis@unaffiliated/dagrevis)
2020-11-21 21:12:46 +0100 <dminuoso> (likely)
2020-11-21 21:13:02 +0100 <zyklotomic> yeah, but aesthectically.... think about the a e s t h
2020-11-21 21:13:03 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving)
2020-11-21 21:13:12 +0100 <dminuoso> aesth?
2020-11-21 21:13:25 +0100 <zyklotomic> i'm jokin tho /s
2020-11-21 21:13:29 +0100 <tomsmeding> @pf \str -> segment str (viterbi hd str)
2020-11-21 21:13:30 +0100 <lambdabot> Maybe you meant: pl bf
2020-11-21 21:13:33 +0100 <tomsmeding> @pl \str -> segment str (viterbi hd str)
2020-11-21 21:13:33 +0100 <lambdabot> ap segment (viterbi hd)
2020-11-21 21:14:01 +0100 <dminuoso> 21:10:33 merijn | Here's a great tip from coming back to a huge codebase with 6 month to 1 year intervals: Putting stuff in let/where and giving stuff names is a pretty great idea
2020-11-21 21:14:05 +0100 <dminuoso> This.
2020-11-21 21:14:17 +0100 <tomsmeding> also if you use ap, think thrice and make a sacrifice
2020-11-21 21:14:17 +0100 <zyklotomic> yah, i'm going to stick with that
2020-11-21 21:14:28 +0100 <dminuoso> There's no single better general purpose technique to improve readability than to move things into let/where bindings.
2020-11-21 21:14:37 +0100 <dminuoso> If the code becomes too complex, use more bindings.
2020-11-21 21:15:16 +0100 <dsal> A lot of my programming was in RPL ("reverse polish lisp", a forth-like language on my HP48). I almost never used variables. heh
2020-11-21 21:15:28 +0100 <zyklotomic> i tihnk i'm at the stage of learning in haskell where I want to know whether there are "better" ways to do what I'm doing
2020-11-21 21:15:37 +0100 <zyklotomic> whether going out of my way to worry about that is a worthwhile pursuit idk
2020-11-21 21:15:41 +0100 <dsal> Never leave that stage.
2020-11-21 21:15:48 +0100 <tomsmeding> zyklotomic: http://pointfree.io/
2020-11-21 21:15:56 +0100 <tomsmeding> infinite supply of unreadability
2020-11-21 21:16:14 +0100 <dsal> But sometimes something like liftA2 is obviously beneficial. Something obscuring things doesn't help much.
2020-11-21 21:16:35 +0100magma(~magma@host-87-20-128-180.retail.telecomitalia.it) (Client Quit)
2020-11-21 21:16:51 +0100 <dsal> making things pointfree is helpful when you have `\f x -> g 3 x` or something.
2020-11-21 21:17:19 +0100ski. o O ( s/pointfree/pointless/ )
2020-11-21 21:17:35 +0100 <tomsmeding> hence the naming of @pl
2020-11-21 21:17:43 +0100 <zyklotomic> tomsmeding: ohhh
2020-11-21 21:17:55 +0100 <dsal> In that case, you look and see the x on both sides, and you remove it. Then you see `\f -> g 3` and then you're like, why did I even have a lambda there?
2020-11-21 21:17:56 +0100 <dminuoso> tomsmeding: Oh.. haha really?
2020-11-21 21:17:59 +0100 <dminuoso> I always wondered about that one
2020-11-21 21:18:16 +0100 <ski> @help pl
2020-11-21 21:18:16 +0100 <lambdabot> pointless <expr>. Play with pointfree code.
2020-11-21 21:18:33 +0100 <dminuoso> zyklotomic: I found GHC to be a great source for ideas how to make readable code
2020-11-21 21:18:50 +0100 <dsal> Actually, I'm being a bit dumb. But in general, you can try a couple things and whichever makes the most sense to you wins.
2020-11-21 21:18:55 +0100 <dminuoso> It is surprisingly readable
2020-11-21 21:19:00 +0100 <dsal> Also, that metric will change over time.
2020-11-21 21:19:13 +0100 <zyklotomic> yeah, because like idk how to describe the feeling, but the cliche adage
2020-11-21 21:19:20 +0100 <zyklotomic> "the more you know, the more you don't know"
2020-11-21 21:19:33 +0100 <dminuoso> Perhaps this is a process people need to go through
2020-11-21 21:19:50 +0100knupfer(~Thunderbi@200116b82ce1e1001cbbbad91fc51f3d.dip.versatel-1u1.de) (Ping timeout: 264 seconds)
2020-11-21 21:19:53 +0100 <dminuoso> You dont know why certain styles are unmaintainable unless you use them. Or it teaches why they could be useful
2020-11-21 21:20:02 +0100henninb(~henninb@63.226.173.161) (Quit: leaving)
2020-11-21 21:20:06 +0100 <zyklotomic> yup fair, no shortcut
2020-11-21 21:20:09 +0100 <dminuoso> Without it, you'd just be a victim to do whatever random folks on freenode told you
2020-11-21 21:20:38 +0100 <geekosaur> that said, "a little knowledge is a dangerous thing"
2020-11-21 21:21:08 +0100 <merijn> So is a lot of knowledge ;)
2020-11-21 21:22:17 +0100ski. o O ( <https://www.vex.net/~trebla/humour/tautologies.html#6> )
2020-11-21 21:22:34 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 21:22:34 +0100 <merijn> I saw Vanessa's tweet over "being the Dickens of code" and my initial reaction was "I'm the H.P. Lovecraft of code", in that my code describes a slow descent into gibbering madness that unsettles the reader and makes them question their place in the universe... >.>
2020-11-21 21:24:35 +0100 <merijn> monochrom: I've got an addendum to your xkcd link on that page ;)
2020-11-21 21:24:44 +0100oish(~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 265 seconds)
2020-11-21 21:24:54 +0100 <merijn> monochrom: https://www.smbc-comics.com/comic/2014-09-02
2020-11-21 21:25:43 +0100falafel__(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4)
2020-11-21 21:26:27 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2020-11-21 21:26:44 +0100guest29(5f4965a4@95.73.101.164)
2020-11-21 21:28:42 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 21:29:19 +0100 <dsal> zyklotomic: I ask @pl for suggestions sometimes and if they're obviously better, I use them. hlint also gives good recommendations sometimes. Only rarely does it give really bad advice, IMO.
2020-11-21 21:29:42 +0100 <zyklotomic> yeah hlint has really helped
2020-11-21 21:29:58 +0100 <zyklotomic> i, just seconds ago, as a matter of fact, wondered
2020-11-21 21:30:07 +0100 <dsal> hlint got mad at me for using [Char] somewhere. I said what I meant.
2020-11-21 21:30:07 +0100 <merijn> hlint's advice is contentious :p
2020-11-21 21:30:09 +0100 <zyklotomic> how did I write such a clean loc, "oh wait hlint did"
2020-11-21 21:30:15 +0100danvet(~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds)
2020-11-21 21:30:23 +0100 <dsal> Yeah, all opinions are bad. Code formatters can be pretty awful.
2020-11-21 21:30:23 +0100Jesin(~Jesin@pool-72-66-101-18.washdc.fios.verizon.net)
2020-11-21 21:30:48 +0100 <dsal> But when I had no idea what I was doing, some opinions were better than my own much of the time.
2020-11-21 21:30:49 +0100 <dminuoso> I dont linters at all.
2020-11-21 21:31:14 +0100 <dminuoso> They tend to create noise for disagreeing on my style, and then I spend more time tweaking the linter rules than it improves my code
2020-11-21 21:31:25 +0100 <dminuoso> Because I refuse to blindly obey hlint
2020-11-21 21:31:51 +0100 <dsal> I run it on occasion and it sometimes points out a dumb thing I did in refactoring.
2020-11-21 21:31:58 +0100 <merijn> hlint is great
2020-11-21 21:32:03 +0100 <merijn> If you're Neil Mitchell :)
2020-11-21 21:32:16 +0100 <glguy> hlint is great for adding cpp noise to your code as you block out regions that it can't handle
2020-11-21 21:32:39 +0100 <dsal> I think it's pretty good if you're learning and you want some degree of code review without bugging humans constantly.
2020-11-21 21:32:40 +0100 <zyklotomic> as long as it's easy to tell the linter to shut up where you want to? i haven't gotten to the stage where I trust my style more
2020-11-21 21:32:46 +0100 <zyklotomic> yeah
2020-11-21 21:32:49 +0100ski. o O ( "He is also known for crediting his computer \"Shalosh B. Ekhad\" as a co-author" <https://en.wikipedia.org/wiki/Shalosh_B._Ekhad> )
2020-11-21 21:33:03 +0100 <glguy> The problem with leaning on it as a new user is you don't know which suggestions are ones you should have avoided
2020-11-21 21:34:48 +0100 <dsal> I guess it depends on how you approach it. I never look at it to ask if my code is good. Just another opinion. Sometimes interesting ones.
2020-11-21 21:35:22 +0100 <hpc> the trouble with hlint is there's not much it can do to catch things that matter
2020-11-21 21:35:35 +0100 <hpc> compared to say, shellcheck which is almost compiler levels of valuable
2020-11-21 21:36:04 +0100cr3(~cr3@192-222-143-195.qc.cable.ebox.net)
2020-11-21 21:36:04 +0100 <zyklotomic> i think at least as a very very novice, doing things like map (\x -> x+3), it was invaluable
2020-11-21 21:36:32 +0100 <zyklotomic> it should get recommended more
2020-11-21 21:36:41 +0100alp(~alp@2a01:e0a:58b:4920:c8af:eb98:65bc:27e4)
2020-11-21 21:36:52 +0100 <dminuoso> zyklotomic: As you can see there's a lot of disagreement in the past few minutes already.
2020-11-21 21:36:55 +0100 <zyklotomic> and well, you'll know when you don't need it
2020-11-21 21:36:56 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 21:37:03 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 21:37:31 +0100 <zyklotomic> dminuoso: :p, well specifically from the perspective of a complete noob though
2020-11-21 21:37:48 +0100 <[exa]> hlint is GREAT for newbies
2020-11-21 21:38:02 +0100 <monochrom> hlint is a very misleading name.
2020-11-21 21:38:12 +0100 <monochrom> hlint is hardly comparable to C lint.
2020-11-21 21:38:14 +0100 <[exa]> yeah, hhint
2020-11-21 21:38:21 +0100 <dminuoso> At work I have a colleague who runs his python linter in the CI. So if you submit a merge request, and you use an underscore in a place that the linter things is "terrible style", it is undeployable.
2020-11-21 21:38:34 +0100 <maerwald> hlint is annoying in CI
2020-11-21 21:38:41 +0100 <monochrom> Whereas C lint points out very real mistakes, hlint is merely style nitpicking.
2020-11-21 21:38:41 +0100 <dsal> Yeah, it never tells me my code is wrong, just stuff like, "Hey, `fmap f . fmap g` is `fmap (f . g)`
2020-11-21 21:38:43 +0100 <dminuoso> So Im fairly allergic to linters. Beginners trust them too much
2020-11-21 21:38:43 +0100 <dsal> "
2020-11-21 21:38:48 +0100 <sszark> has hackage always not had a SSL certificate? or is that a mistake
2020-11-21 21:39:09 +0100 <dminuoso> sszark: What do you mean? The website?
2020-11-21 21:39:13 +0100 <monochrom> The damage is that beginners look at the name "hlint" and don't know it's a blatant lie.
2020-11-21 21:39:17 +0100 <zyklotomic> yah i was going to say that double fmap rule was eye opening
2020-11-21 21:39:25 +0100 <glguy> I agree they're annoying in CI, but if you accept the assumption that it's a good idea to use it at all it doesn't seem like a bad idea to enforce people clean up the suggestions
2020-11-21 21:39:35 +0100 <hpc> sszark: it just doesn't redirect to https
2020-11-21 21:39:41 +0100 <zyklotomic> dsal: i notice that when i'm writing javascript too now, it's crazy
2020-11-21 21:39:46 +0100 <glguy> having long-running lint suggestions clouds seeing the new arguably useful ones, right?
2020-11-21 21:40:14 +0100 <sszark> oh i see, that makes sense i guess hpc
2020-11-21 21:40:21 +0100 <maerwald> well, the problem is if you disagree with most hlint suggestions and the ones that I don't disagree with are not worth the time
2020-11-21 21:40:30 +0100 <monochrom> Like, there is a reason I write "\x -> f x" when teaching beginners. Shut up, hlint.
2020-11-21 21:40:49 +0100 <merijn> sszark: hackage does have SSL, but there's no autoforward
2020-11-21 21:41:00 +0100 <monochrom> No, actually, I should speak like hlint does. Why don't you shut the f* up, hlint.
2020-11-21 21:41:13 +0100 <glguy> relying on autoforward isn't a great plan. explicitly use https if that's what you want
2020-11-21 21:41:13 +0100 <dminuoso> Also, you should name it TLS. SSL is usually used to refer to the old versions of the protocol suite. :)
2020-11-21 21:41:14 +0100 <merijn> sszark: There was an email about setting up an autoforward the past week
2020-11-21 21:41:25 +0100 <merijn> sszark: Anyway, hackage doesn't need SSL for security anyway
2020-11-21 21:41:38 +0100 <merijn> (well, assuming you got cabal-install from a trusted source :p)
2020-11-21 21:42:05 +0100guest29(5f4965a4@95.73.101.164) (Remote host closed the connection)
2020-11-21 21:42:09 +0100 <maerwald> merijn: and how do you verify the hackage index?
2020-11-21 21:42:15 +0100 <merijn> maerwald: It's signed
2020-11-21 21:42:33 +0100 <maerwald> with a human key?
2020-11-21 21:42:33 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer)
2020-11-21 21:42:38 +0100 <merijn> maerwald: You need an uncompromised cabal-install first, but you can't download that from Hackage anyway
2020-11-21 21:42:50 +0100 <dsal> Transport isn't going to verify your index
2020-11-21 21:42:50 +0100triteraflops(~triterafl@host-148-170-141-28.public.eastlink.ca)
2020-11-21 21:43:04 +0100chkno(~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net)
2020-11-21 21:43:12 +0100 <merijn> maerwald: Hackage uses TUF, so, eh, look up the details yourself? https://theupdateframework.io/
2020-11-21 21:43:22 +0100justanotheruser(~justanoth@unaffiliated/justanotheruser)
2020-11-21 21:44:17 +0100 <triteraflops> I decided linear programming is a good idea, and would like to experiment further with it. How "ready" is linear haskell? Could it plausibly be used on a real world project without anything catching fire?
2020-11-21 21:44:38 +0100 <merijn> triteraflops: Considering it requires an unreleased GHC "no" :p
2020-11-21 21:44:55 +0100 <triteraflops> lol
2020-11-21 21:44:58 +0100 <triteraflops> irp
2020-11-21 21:44:59 +0100 <triteraflops> rip
2020-11-21 21:45:40 +0100Tario(~Tario@201.192.165.173) (Read error: Connection reset by peer)
2020-11-21 21:45:40 +0100 <merijn> You could, conceivably, build something non-trivial by grabbing a build from CI and using head-hackages, but it's very much a "DIY ductape and wire" kinda stage"
2020-11-21 21:46:28 +0100 <triteraflops> "
2020-11-21 21:47:30 +0100 <triteraflops> Well, what about Idris? I know I should ask #idris, but what the hey.
2020-11-21 21:47:41 +0100 <merijn> Does Idris even have linear types?
2020-11-21 21:47:48 +0100 <triteraflops> idris2 does
2020-11-21 21:50:24 +0100xsperry(~as@unaffiliated/xsperry) ()
2020-11-21 21:50:27 +0100 <MarcelineVQ> there's no no-fire gurantees on any software
2020-11-21 21:50:37 +0100 <merijn> MarcelineVQ: Of course
2020-11-21 21:50:42 +0100Volt_(~Volt_@c-73-145-164-70.hsd1.mi.comcast.net)
2020-11-21 21:50:46 +0100 <merijn> MarcelineVQ: There's no guarantees for your hardware either :p
2020-11-21 21:51:07 +0100 <merijn> At some point you need to settle for a realistic threat model
2020-11-21 21:51:21 +0100 <hpc> that's the nice thing about hardware, the fires are literal
2020-11-21 21:51:24 +0100 <merijn> I would recommend following James Mickens' threat model :p
2020-11-21 21:52:10 +0100 <monochrom> Just use a nitrogen chamber.
2020-11-21 21:52:13 +0100 <merijn> I refer to the threat model table on page 2 of https://www.usenix.org/system/files/1401_08-12_mickens.pdf (although, in all honestly I highly recommend reading the entire thing)
2020-11-21 21:52:25 +0100 <merijn> s/honestly/honesty
2020-11-21 21:53:10 +0100 <monochrom> Use the subtraction method. s/in all// is a more efficient fix. :)
2020-11-21 21:54:30 +0100hackagezio 0.1.0.2 - App-centric Monad-transformer based on Scala ZIO (UIO + ReaderT + ExceptT). https://hackage.haskell.org/package/zio-0.1.0.2 (bebarker)
2020-11-21 21:54:32 +0100 <hpc> oh man, that pdf is great
2020-11-21 21:55:01 +0100 <merijn> hpc: Good news for you
2020-11-21 21:55:13 +0100 <merijn> hpc: He wrote like 10 more editorials and gave several equally amazing talks
2020-11-21 21:55:38 +0100 <merijn> The Night Watch is especially nice if you've ever done any systems stuff
2020-11-21 21:56:18 +0100zyklotomic(~ethan@unaffiliated/chocopuff) (Ping timeout: 256 seconds)
2020-11-21 21:58:30 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection)
2020-11-21 21:58:50 +0100xsperry(~as@unaffiliated/xsperry)
2020-11-21 21:59:42 +0100falafel__(~falafel@2601:547:1303:b30:7811:313f:d0f3:f9f4) (Ping timeout: 260 seconds)
2020-11-21 22:00:09 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64) (Read error: Connection reset by peer)
2020-11-21 22:01:04 +0100tomboy64(~tomboy64@gateway/tor-sasl/tomboy64)
2020-11-21 22:03:00 +0100hackagepandoc-crossref 0.3.8.4 - Pandoc filter for cross-references https://hackage.haskell.org/package/pandoc-crossref-0.3.8.4 (lierdakil)
2020-11-21 22:03:11 +0100p-core(~Thunderbi@2a0e:1c80:4:1023::1004) (Ping timeout: 272 seconds)
2020-11-21 22:03:49 +0100AlterEgo-(~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving)
2020-11-21 22:04:08 +0100 <triteraflops> I just learned about Clean. Looks like that's the way to go for building a real thing today using linear types.
2020-11-21 22:04:27 +0100 <merijn> Clean doesn't have linear types, I don't think?
2020-11-21 22:04:35 +0100 <merijn> Pretty sure they only have uniqueness types, no?
2020-11-21 22:04:41 +0100 <ski> correct
2020-11-21 22:04:43 +0100 <triteraflops> isn't that the same thing?
2020-11-21 22:04:43 +0100 <c_wraith> Uniqueness types are a lot more useful anyway
2020-11-21 22:04:49 +0100 <ski> triteraflops, nope
2020-11-21 22:04:53 +0100 <merijn> Although, if you wanna built CRUD applications for Windows, Clean is good ;)
2020-11-21 22:05:25 +0100pavonia(~user@unaffiliated/siracusa)
2020-11-21 22:06:19 +0100 <triteraflops> ski: so what's the difference?
2020-11-21 22:07:21 +0100 <c_wraith> a linear function says "this function uses this argument exactly once". A function with a unique constraint says "this value is passed to this function and not use anywhere else"
2020-11-21 22:07:54 +0100 <ski> (Mercury's another language with uniqueness. although, in that case, not put into the types, but rather the "insts" (instatiation states). Rust also has stuff that is of a somewhat similar ilk)
2020-11-21 22:08:48 +0100 <triteraflops> hm, kind of moves the bubble over.
2020-11-21 22:09:27 +0100 <triteraflops> uniqueness puts constraints on other functions and linearity is a constraint only on that function
2020-11-21 22:09:38 +0100 <ski> triteraflops : with uniqueness, you know that the value haven't been duplicated in the past (but you're allowed to duplicate in the future). with linearity/affinity, you're promising not to duplicate it in the future (but it might already have been duplicated in the past)
2020-11-21 22:09:47 +0100 <c_wraith> more generally, uniqueness puts the constraint on the caller. But yes.
2020-11-21 22:11:12 +0100 <triteraflops> But they're kinda solving the same problem, of compile-time duplication awareness and avoidance
2020-11-21 22:11:38 +0100 <ski> (difference between linearity and affinity is that affinity allows you to (implicitly) discard, while linearity doesn't (you could still pass explicitly to a waste disposal facility))
2020-11-21 22:12:18 +0100 <triteraflops> Then there's C++'s move semantics, which are just silly.
2020-11-21 22:12:29 +0100 <triteraflops> I still don't understand them.
2020-11-21 22:12:40 +0100 <triteraflops> too complicated
2020-11-21 22:13:34 +0100 <[exa]> there's no move
2020-11-21 22:14:52 +0100alx741(~alx741@181.196.69.47) (Ping timeout: 260 seconds)
2020-11-21 22:15:06 +0100 <merijn> move semantics are ok, they're pretty straightforward it's the rvalue reference stuff that's a confusing mess :)
2020-11-21 22:15:12 +0100 <ski> it seems to me there's an interesting language trapped inside C++ lvalue & rvalue references, move semantics, perfect forwarding, wanting to be released
2020-11-21 22:15:35 +0100 <c_wraith> C++ is long past mere lvalues and rvalues. now it has a whole hierarchy
2020-11-21 22:15:40 +0100 <merijn> pvalues!
2020-11-21 22:15:59 +0100 <merijn> lvalue references, rvalue references!
2020-11-21 22:15:59 +0100 <ski> (wg 70
2020-11-21 22:16:04 +0100 <triteraflops> copy elision
2020-11-21 22:16:08 +0100 <merijn> I think we have like prvalues too?
2020-11-21 22:16:15 +0100 <triteraflops> yeah that too
2020-11-21 22:16:25 +0100 <merijn> triteraflops: copy elision is obsoleted by move semantics and rvalue references
2020-11-21 22:16:43 +0100 <triteraflops> well, good for C++
2020-11-21 22:16:46 +0100 <triteraflops> lol
2020-11-21 22:16:54 +0100 <triteraflops> I gave up on it a while ago
2020-11-21 22:17:04 +0100 <[exa]> there are 3 in fact, standard section 7.2.1 specifies just lvalue, xvalue and prvalue
2020-11-21 22:17:16 +0100 <merijn> move semantics are just a more formal and structured way of considering copy elision without worrying whether copy elision will trigger by the compiler, since it's now specified
2020-11-21 22:17:28 +0100 <[exa]> copy&move elision are completely orthogonal concepts related to function call semantics
2020-11-21 22:17:41 +0100 <merijn> anyhoo
2020-11-21 22:17:54 +0100 <merijn> This conversation is triggering, so time to stop coding/ircing ;)
2020-11-21 22:18:00 +0100knupfer(~Thunderbi@200116b82ce1e10028bb8f758d5216f6.dip.versatel-1u1.de)
2020-11-21 22:19:06 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-21 22:21:00 +0100LKoen(~LKoen@169.244.88.92.rev.sfr.net)
2020-11-21 22:21:40 +0100 <triteraflops> wth, there's like 5 people in #cleanlang. Why isn't this language more popular?
2020-11-21 22:23:38 +0100 <merijn> Because I think the only people using it are all at the Radboud Universiteit :p
2020-11-21 22:24:16 +0100 <merijn> It's mostly a research language, I don't think there's a very big community working on libraries, packages, etc.
2020-11-21 22:24:17 +0100 <ski> Clean isn't bad
2020-11-21 22:24:37 +0100 <merijn> ski: I didn't say it was, I just said it didn't have any users ;)
2020-11-21 22:24:44 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-11-21 22:25:01 +0100 <merijn> You need critical mass for libraries and you need libraries for users
2020-11-21 22:25:15 +0100 <[exa]> Evil me: Clean isn't popular because it didn't target the web. Realistic me: Well, yeah
2020-11-21 22:25:29 +0100ski. o O ( "Recently, researchers have experimented with new I/O combinators based on monads." -- <https://web.archive.org/web/20140303101716/http://www-fp.dcs.st-and.ac.uk/%7Ekh/papers/io-tutorial…> )
2020-11-21 22:25:56 +0100 <merijn> Every year at the NL-FP day we still have the mandatory one or two Clean talks :p
2020-11-21 22:26:28 +0100 <dsal> How many days of dirty talks?
2020-11-21 22:26:52 +0100 <ski> merijn : ah, sorry. i didn't mean that to sound like being an opposing point to what you said, just as a general sentiment response to triteraflops
2020-11-21 22:28:11 +0100geekosaur(82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection)
2020-11-21 22:28:15 +0100coot(~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
2020-11-21 22:28:45 +0100gproto23(~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds)
2020-11-21 22:28:50 +0100Tario(~Tario@201.192.165.173)
2020-11-21 22:29:57 +0100conal(~conal@64.71.133.70)
2020-11-21 22:32:09 +0100 <ski> Clean has an interesting integration of `Dynamic' with pattern-matching, allowing them to trivially implement e.g. `dynApply'; <https://clean.cs.ru.nl/download/html_report/CleanRep.2.2_10.htm#_Toc311798086>
2020-11-21 22:32:54 +0100 <monochrom> As a general heuristic, if you language doesn't use C syntax, it won't be popular.
2020-11-21 22:33:15 +0100 <merijn> monochrom: SQL? :P
2020-11-21 22:33:50 +0100 <monochrom> Hey, that's a great idea, perhaps the no-sql movement started with hating SQL syntax!
2020-11-21 22:33:52 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2020-11-21 22:35:05 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb)
2020-11-21 22:35:09 +0100ClaudiusMaximus(~claude@unaffiliated/claudiusmaximus) (Quit: ->)
2020-11-21 22:35:13 +0100 <monochrom> Also it's just a heuristic. Python deviates partly from C syntax, and it's still popular. Although, Python probably shows you the largest extent of deviation you can afford.
2020-11-21 22:36:17 +0100 <monochrom> Namely, if you still stick to the "f(x,y,z)" syntax, if you only replace {;} by layout, you will be OK.
2020-11-21 22:36:53 +0100 <monochrom> Whereas Lisp's "(f x y z)" and SML's "f x y z" prove to be going too far.
2020-11-21 22:39:51 +0100invaser(~Thunderbi@31.148.23.125)
2020-11-21 22:41:34 +0100 <ski> perhaps we just have to draw it out more
2020-11-21 22:41:49 +0100Volt_(~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) (Quit: )
2020-11-21 22:41:54 +0100alx741(~alx741@186.178.110.117)
2020-11-21 22:43:38 +0100sand_dull(~theuser@c-73-149-95-105.hsd1.ct.comcast.net)
2020-11-21 22:44:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-21 22:44:33 +0100invaser(~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds)
2020-11-21 22:45:39 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-11-21 22:46:53 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds)
2020-11-21 22:49:40 +0100p-core1(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515)
2020-11-21 22:49:56 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Client Quit)
2020-11-21 22:49:56 +0100p-core1p-core
2020-11-21 22:53:34 +0100Franciman(~francesco@host-79-27-199-238.retail.telecomitalia.it) (Quit: Leaving)
2020-11-21 22:54:15 +0100 <c_wraith> I think this is why codeworld doesn't expose the Prelude at all. It provides a set of base functionality that uncurries everything so that people don't have to not use commas
2020-11-21 22:57:10 +0100 <ski> :(
2020-11-21 23:00:18 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 272 seconds)
2020-11-21 23:01:34 +0100 <monochrom> Haha this is great. My wild guess theory is right on.
2020-11-21 23:02:17 +0100 <monochrom> Perhaps I really understand human nature! Long live cynicism!
2020-11-21 23:05:02 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-21 23:07:49 +0100tabemann(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net)
2020-11-21 23:08:13 +0100dfaiv(44f9e9e4@68-249-233-228.lightspeed.okcbok.sbcglobal.net) (Remote host closed the connection)
2020-11-21 23:09:30 +0100hackagetimerep 2.0.1.0 - Parse and display time according to some RFCs (RFC3339, RFC2822, RFC822) https://hackage.haskell.org/package/timerep-2.0.1.0 (koral)
2020-11-21 23:10:32 +0100knupfer(~Thunderbi@200116b82ce1e10028bb8f758d5216f6.dip.versatel-1u1.de) (Ping timeout: 260 seconds)
2020-11-21 23:10:38 +0100 <maerwald> I wonder how long the haskell survey results take
2020-11-21 23:10:48 +0100 <maerwald> it's been a week since it's closed I think
2020-11-21 23:12:55 +0100Tops2(~Tobias@dyndsl-095-033-092-149.ewe-ip-backbone.de)
2020-11-21 23:16:32 +0100__monty__(~toonn@unaffiliated/toonn) (Quit: leaving)
2020-11-21 23:16:46 +0100cheater(~user@unaffiliated/cheater) (Ping timeout: 272 seconds)
2020-11-21 23:17:33 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 23:18:04 +0100jonatanb(jonatanb@gateway/vpn/protonvpn/jonatanb) (Remote host closed the connection)
2020-11-21 23:19:14 +0100inkbottle(~inkbottle@aaubervilliers-654-1-104-55.w86-212.abo.wanadoo.fr)
2020-11-21 23:19:48 +0100GuerrillaMonkey(~Jeanne-Ka@66.115.189.194)
2020-11-21 23:20:40 +0100jneira(02896ac0@gateway/web/cgi-irc/kiwiirc.com/ip.2.137.106.192) (Ping timeout: 256 seconds)
2020-11-21 23:21:40 +0100Jeanne-Kamikaze(~Jeanne-Ka@66.115.189.174) (Ping timeout: 246 seconds)
2020-11-21 23:22:11 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds)
2020-11-21 23:26:32 +0100GuerrillaMonkey(~Jeanne-Ka@66.115.189.194) (Ping timeout: 265 seconds)
2020-11-21 23:28:16 +0100inkbottle(~inkbottle@aaubervilliers-654-1-104-55.w86-212.abo.wanadoo.fr) (Ping timeout: 240 seconds)
2020-11-21 23:28:57 +0100mrchampion(~mrchampio@216-26-218-246.dynamic.tbaytel.net) (Ping timeout: 265 seconds)
2020-11-21 23:29:24 +0100chaosmasttter(~chaosmast@p200300c4a72cf8017c557ee44a5933bf.dip0.t-ipconnect.de) (Quit: WeeChat 2.9)
2020-11-21 23:31:40 +0100xerox_(~xerox@unaffiliated/xerox) (Quit: leaving)
2020-11-21 23:34:27 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net)
2020-11-21 23:34:59 +0100mrchampion(~mrchampio@216-26-218-246.dynamic.tbaytel.net)
2020-11-21 23:36:02 +0100cheater(~user@unaffiliated/cheater)
2020-11-21 23:36:17 +0100alp(~alp@2a01:e0a:58b:4920:c8af:eb98:65bc:27e4) (Ping timeout: 272 seconds)
2020-11-21 23:37:22 +0100conal(~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-21 23:38:56 +0100heatsink(~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2020-11-21 23:40:28 +0100cosimone(~cosimone@93-47-228-249.ip115.fastwebnet.it)
2020-11-21 23:41:00 +0100Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2020-11-21 23:44:44 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2020-11-21 23:45:37 +0100 <texasmynsted> sounds like somebody needs to write a haskell program to tabulate the results
2020-11-21 23:48:27 +0100sondr3_(~sondr3@cm-84.211.56.132.getinternet.no) (Quit: Leaving)
2020-11-21 23:49:00 +0100conal(~conal@64.71.133.70)
2020-11-21 23:50:22 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Quit: Leaving)
2020-11-21 23:50:23 +0100avoandmayo(~textual@122-58-109-105-adsl.sparkbb.co.nz)
2020-11-21 23:50:41 +0100redmp(~redmp@mobile-166-137-178-147.mycingular.net)
2020-11-21 23:51:08 +0100 <redmp> is there a way to define a relation on types, such that i can query either side and get the other?
2020-11-21 23:51:16 +0100Fractalis(~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7)
2020-11-21 23:51:40 +0100 <redmp> i'm contemplating storing a list of pairs of types and then defining lookup for the left item and lookup for the right item..
2020-11-21 23:53:05 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-21 23:53:40 +0100 <texasmynsted> redmp: How would you use this? I am curious
2020-11-21 23:54:02 +0100p-core(~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Ping timeout: 260 seconds)
2020-11-21 23:55:29 +0100hyperisco(~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Ping timeout: 260 seconds)
2020-11-21 23:55:30 +0100 <texasmynsted> You could make a list of two-item ring buffers.
2020-11-21 23:56:21 +0100 <texasmynsted> hmm. maybe that is not helpful. I really do not know what you want to do
2020-11-21 23:56:30 +0100hackagerowdy-yesod 0.0.1.1 - An EDSL for web application routes. https://hackage.haskell.org/package/rowdy-yesod-0.0.1.1 (parsonsmatt)
2020-11-21 23:56:49 +0100 <ski> redmp : how about a multi-parameter type class (possibly with functional dependencies) ?
2020-11-21 23:56:53 +0100olligobber(olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-21 23:57:32 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137) (Ping timeout: 260 seconds)
2020-11-21 23:58:06 +0100 <redmp> ah, sorry, i was unclear.. the querying is a type level thing. I'm going to be querying at compile time
2020-11-21 23:58:20 +0100Alleria_(~AllahuAkb@2604:2000:1484:26:b060:c081:3394:137)
2020-11-21 23:59:06 +0100 <ski> so do you think MPTCs, perhaps with FDs, could be helpful ?
2020-11-21 23:59:37 +0100 <redmp> it might be? i'm not usually very successful when i try to use MPTCs
2020-11-21 23:59:59 +0100 <redmp> i was thinking of a type level list and a type level lookup function because i think of that as being simpler