2020-11-29 00:00:03 +0100 | <cads> | shapr, ah, there's a note to test maintainers - that takes us to the project documentation site, where we learn that these are indeed the golden standard "this is what the CLI should output" style of test |
2020-11-29 00:00:04 +0100 | whataday | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2020-11-29 00:00:16 +0100 | <cads> | the unit tests live in the haskell module hierarchy |
2020-11-29 00:00:40 +0100 | kritzefitz | (~kritzefit@212.86.56.80) (Remote host closed the connection) |
2020-11-29 00:01:02 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-29 00:01:39 +0100 | ChanServ | (ChanServ@services.) |
2020-11-29 00:01:39 +0100 | kornbluth.freenode.net | +o ChanServ |
2020-11-29 00:02:19 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) |
2020-11-29 00:02:24 +0100 | <texasmynsted> | :-) |
2020-11-29 00:02:46 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-29 00:04:29 +0100 | <shapr> | cads: this sounds like academia-ware |
2020-11-29 00:04:52 +0100 | <shapr> | or perhaps written by those who speak Haskell as a tertiary language? |
2020-11-29 00:05:21 +0100 | hackage | phonetic-languages-simplified-lists-examples 0.1.0.0 - Simplified and somewhat optimized version of the phonetic-languages-examples. https://hackage.haskell.org/package/phonetic-languages-simplified-lists-examples-0.1.0.0 (OleksandrZhabenko) |
2020-11-29 00:10:12 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0) |
2020-11-29 00:10:35 +0100 | tmciver | (~tmciver@cpe-172-101-40-226.maine.res.rr.com) |
2020-11-29 00:11:35 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 00:12:25 +0100 | <merijn> | I wonder if that guy knows you're allowed to have more than 5 functions per package... |
2020-11-29 00:13:13 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2020-11-29 00:15:17 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 260 seconds) |
2020-11-29 00:16:46 +0100 | <jackhill> | win 43 |
2020-11-29 00:17:21 +0100 | hackage | xcffib 0.11.0 - A cffi-based python binding for X https://hackage.haskell.org/package/xcffib-0.11.0 (TychoAndersen) |
2020-11-29 00:17:24 +0100 | <shapr> | 43 WINS! |
2020-11-29 00:17:30 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 00:18:08 +0100 | hiroaki | (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
2020-11-29 00:18:17 +0100 | <sm[m]> | cads: I keep unit tests in the haskell modules under test. Files containing functional tests are in per-command subdirectories, under a subdirectory, but I'm thinking about moving these into the module directories |
2020-11-29 00:20:52 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: Lost terminal) |
2020-11-29 00:21:24 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
2020-11-29 00:24:41 +0100 | carlomagno | (~cararell@148.87.23.8) (Remote host closed the connection) |
2020-11-29 00:25:50 +0100 | shutdown_-h_now | (~arjan@2001:1c06:2d0b:2312:7167:dae3:3033:6c61) (Ping timeout: 264 seconds) |
2020-11-29 00:26:16 +0100 | exlipse | (~exlipse@4e69b241.skybroadband.com) (Ping timeout: 240 seconds) |
2020-11-29 00:26:23 +0100 | actuallybatman | (~sam@S010664777dafd303.cg.shawcable.net) (Ping timeout: 265 seconds) |
2020-11-29 00:26:46 +0100 | carlomagno | (~cararell@148.87.23.5) |
2020-11-29 00:27:47 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 00:34:13 +0100 | julm | (~julm@revolt129.abo.ilico.org) (Remote host closed the connection) |
2020-11-29 00:34:48 +0100 | falafel_ | (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) |
2020-11-29 00:34:58 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov) |
2020-11-29 00:35:35 +0100 | shutdown_-h_now | (~arjan@2001:1c06:2d0b:2312:4c42:47db:3d8a:3c9a) |
2020-11-29 00:39:08 +0100 | Deide | (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
2020-11-29 00:40:22 +0100 | shutdown_-h_now | (~arjan@2001:1c06:2d0b:2312:4c42:47db:3d8a:3c9a) (Ping timeout: 260 seconds) |
2020-11-29 00:42:28 +0100 | exlipse | (~exlipse@4e69b241.skybroadband.com) |
2020-11-29 00:43:42 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2020-11-29 00:43:42 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2020-11-29 00:43:42 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-11-29 00:46:08 +0100 | shutdown_-h_now | (~arjan@2001:1c06:2d0b:2312:4c42:47db:3d8a:3c9a) |
2020-11-29 00:47:58 +0100 | <sm[m]> | don't know cads, just saw your recent comment |
2020-11-29 00:48:01 +0100 | coot | (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) |
2020-11-29 00:48:24 +0100 | knupfer | (~Thunderbi@200116b82c34fc00092785e1f1ef8791.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
2020-11-29 00:48:25 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-29 00:49:09 +0100 | falafel_ | (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 256 seconds) |
2020-11-29 00:50:23 +0100 | hekkaidekapus | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
2020-11-29 00:50:53 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2020-11-29 00:50:56 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds) |
2020-11-29 00:51:17 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-29 00:54:47 +0100 | falafel_ | (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) |
2020-11-29 01:01:07 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 01:02:07 +0100 | aneksteind | (~anekstein@pool-108-7-199-207.bstnma.fios.verizon.net) |
2020-11-29 01:02:48 +0100 | coot | (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
2020-11-29 01:03:09 +0100 | cosimone_ | (~cosimone@5.170.241.230) |
2020-11-29 01:03:25 +0100 | falafel_ | (~falafel@pool-71-182-130-97.pitbpa.fios.verizon.net) (Ping timeout: 240 seconds) |
2020-11-29 01:03:31 +0100 | <aneksteind> | does there exist a generalization of `Either`, something like `OneOf a b c d` ... that can have an arbitrary number of constructors? |
2020-11-29 01:04:17 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Ping timeout: 260 seconds) |
2020-11-29 01:04:33 +0100 | cosimone_ | cosimone |
2020-11-29 01:04:48 +0100 | <dminuoso> | aneksteind: Well Either is that already. |
2020-11-29 01:04:56 +0100 | <dminuoso> | Since you can do `Either (Either Int String) Char` and so forth |
2020-11-29 01:05:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
2020-11-29 01:05:39 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
2020-11-29 01:05:58 +0100 | <dminuoso> | Or just plain ADTs. |
2020-11-29 01:06:31 +0100 | <dminuoso> | That is, `Either (Either Int String) Char` is equivalent to `data T = T1 Int | T2 String | T3 Char` |
2020-11-29 01:06:43 +0100 | <dminuoso> | (Or the better term here is isomorphic) |
2020-11-29 01:07:03 +0100 | mikevdg | (73bd80f5@115-189-128-245.mobile.spark.co.nz) |
2020-11-29 01:07:58 +0100 | acarrico | (~acarrico@68.142.39.249) |
2020-11-29 01:09:33 +0100 | <sm[m]> | I'm not missing a capitalize function in base, am I ? |
2020-11-29 01:09:36 +0100 | <nshepperd> | i think aneksteind is asking for anonymous cotuples, the dual of (a,b,c,d) |
2020-11-29 01:09:49 +0100 | <dminuoso> | Well, (a,b,c,d) is not generalized either. |
2020-11-29 01:10:01 +0100 | <dminuoso> | We just have all these tuple constructors hacked in manually... |
2020-11-29 01:11:04 +0100 | <nshepperd> | sure |
2020-11-29 01:11:19 +0100 | <nshepperd> | it's non generalised with fancy uniform syntax |
2020-11-29 01:11:50 +0100 | <erisco> | aneksteind, you can get hacking with variants and row types, unadvisable without a high payoff |
2020-11-29 01:11:53 +0100 | <dminuoso> | Even if we had some fancy uniform syntax for coproducts, pattern matching wouldn't be as pretty |
2020-11-29 01:12:58 +0100 | mikevdg | (73bd80f5@115-189-128-245.mobile.spark.co.nz) (Remote host closed the connection) |
2020-11-29 01:13:27 +0100 | <aneksteind> | where can I look into variants (is that similar to C++ variants?) I'm mostly curious what can be done, this isn't for anything in particular |
2020-11-29 01:14:02 +0100 | <nshepperd> | there's unboxed sums but that syntax feels a bit janky |
2020-11-29 01:14:10 +0100 | <aneksteind> | I found this: https://hackage.haskell.org/package/haskus-utils-variant |
2020-11-29 01:14:26 +0100 | <nshepperd> | https://gitlab.haskell.org/ghc/ghc/-/wikis/unpacked-sum-types |
2020-11-29 01:14:56 +0100 | <dminuoso> | Gah that wiki is so awfully slow |
2020-11-29 01:15:06 +0100 | dminuoso | hates gitlab with a passion |
2020-11-29 01:17:54 +0100 | <erisco> | aneksteind, there seem to be a few packages floating around for it |
2020-11-29 01:18:01 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Quit: mputz) |
2020-11-29 01:18:45 +0100 | irc_user | (uid423822@gateway/web/irccloud.com/x-bjmhyxzylfubvsgp) |
2020-11-29 01:21:26 +0100 | <koz_> | nshepperd: "NOTE (osa): This part is not yet implemented, but the patch is trivial and I'm going to submit it soon)" |
2020-11-29 01:21:26 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-29 01:21:28 +0100 | koz_ | laughs. |
2020-11-29 01:21:36 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 01:25:12 +0100 | jchia__ | (~jchia@58.32.37.146) (Ping timeout: 256 seconds) |
2020-11-29 01:26:27 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff59c0fa403c32c1f5ec.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-29 01:27:28 +0100 | <aneksteind> | found this as well for those curious: https://github.com/i-am-tom/learn-me-a-haskell/blob/master/src/OneOf.hs |
2020-11-29 01:27:34 +0100 | <Uniaika> | koz_: hahaha |
2020-11-29 01:28:52 +0100 | <nshepperd> | ah yes, the mythical trivial patch |
2020-11-29 01:29:10 +0100 | <Uniaika> | nshepperd: that is arriving as soon as you have time |
2020-11-29 01:29:15 +0100 | <Uniaika> | we've all done that |
2020-11-29 01:30:25 +0100 | p-core | (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
2020-11-29 01:30:35 +0100 | mivael | (c16e4caa@193.110.76.170) (Quit: ::::: see you, bye :::::) |
2020-11-29 01:31:21 +0100 | DTZUZU_ | (~DTZUZU@205.ip-149-56-132.net) |
2020-11-29 01:31:37 +0100 | wayne | (~wayne@unaffiliated/wayne) (Remote host closed the connection) |
2020-11-29 01:32:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 01:33:25 +0100 | DTZUZU | (~DTZUZU@207.81.171.116) (Ping timeout: 240 seconds) |
2020-11-29 01:37:16 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 240 seconds) |
2020-11-29 01:38:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-11-29 01:41:16 +0100 | acarrico | (~acarrico@68.142.39.249) (Ping timeout: 240 seconds) |
2020-11-29 01:42:29 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-29 01:42:33 +0100 | Inoperable | (~PLAYER_1@fancydata.science) (Excess Flood) |
2020-11-29 01:43:42 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-29 01:45:48 +0100 | Inoperable | (~PLAYER_1@fancydata.science) |
2020-11-29 01:46:57 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2020-11-29 01:53:05 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) |
2020-11-29 01:55:39 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
2020-11-29 02:00:30 +0100 | frdg | (~nick@pool-71-184-143-249.bstnma.fios.verizon.net) |
2020-11-29 02:01:39 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 02:03:47 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) |
2020-11-29 02:05:45 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-11-29 02:06:03 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 02:09:27 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-29 02:10:45 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
2020-11-29 02:12:00 +0100 | AndreasK | (sid320732@gateway/web/irccloud.com/x-jisuwtkhbrktjxky) (Quit: Connection closed for inactivity) |
2020-11-29 02:17:25 +0100 | cosimone | (~cosimone@5.170.241.230) (Quit: cosimone) |
2020-11-29 02:17:33 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 256 seconds) |
2020-11-29 02:20:48 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) |
2020-11-29 02:25:41 +0100 | texasmyn_ | (~texasmyns@212.102.45.106) |
2020-11-29 02:26:05 +0100 | texasmynsted | (~texasmyns@212.102.45.103) (Ping timeout: 240 seconds) |
2020-11-29 02:27:16 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-29 02:29:17 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
2020-11-29 02:30:17 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
2020-11-29 02:33:01 +0100 | unlink__ | (~unlink2@p200300ebcf179a00278fd81c0246cc89.dip0.t-ipconnect.de) (Remote host closed the connection) |
2020-11-29 02:33:14 +0100 | unlink__ | (~unlink2@p200300ebcf179a00278fd81c0246cc89.dip0.t-ipconnect.de) |
2020-11-29 02:33:16 +0100 | _linker_ | (~linker@2a02:a31a:a041:9a80:51cd:d8f1:9cea:4020) (Remote host closed the connection) |
2020-11-29 02:35:07 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 256 seconds) |
2020-11-29 02:38:40 +0100 | Lord_of_Life | (~Lord@46.217.217.219) |
2020-11-29 02:40:13 +0100 | Lord_of_Life_ | (~Lord@46.217.216.13) (Ping timeout: 256 seconds) |
2020-11-29 02:40:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-29 02:42:41 +0100 | <MarcelineVQ> | hey you |
2020-11-29 02:42:46 +0100 | <MarcelineVQ> | good job today |
2020-11-29 02:43:00 +0100 | <MarcelineVQ> | it was a tough day but you got through it |
2020-11-29 02:43:10 +0100 | texasmyn_ | (~texasmyns@212.102.45.106) (Ping timeout: 265 seconds) |
2020-11-29 02:44:21 +0100 | iqubic | (~user@2601:602:9500:4870:71ac:d28d:5123:4cbd) |
2020-11-29 02:44:59 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 02:45:28 +0100 | aneksteind | (~anekstein@pool-108-7-199-207.bstnma.fios.verizon.net) () |
2020-11-29 02:46:06 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 02:46:06 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 02:47:20 +0100 | hackage | polysemy-resume 0.1.0.1 - Polysemy error tracking https://hackage.haskell.org/package/polysemy-resume-0.1.0.1 (tek) |
2020-11-29 02:48:41 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 02:49:10 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) |
2020-11-29 02:52:08 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-11-29 02:52:14 +0100 | a-kiwi3 | (61664b96@gateway/web/cgi-irc/kiwiirc.com/ip.97.102.75.150) |
2020-11-29 02:52:20 +0100 | Volt_ | (~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) |
2020-11-29 02:54:14 +0100 | wayne | (~wayne@unaffiliated/wayne) |
2020-11-29 02:57:27 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-29 02:58:20 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
2020-11-29 02:58:30 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Ping timeout: 260 seconds) |
2020-11-29 03:00:23 +0100 | reallymemorable | (~quassel@ip68-9-215-56.ri.ri.cox.net) |
2020-11-29 03:00:39 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 03:00:42 +0100 | jchia__ | (~jchia@45.63.70.29) |
2020-11-29 03:01:43 +0100 | jchia__ | (~jchia@45.63.70.29) (Remote host closed the connection) |
2020-11-29 03:02:44 +0100 | jchia__ | (~jchia@45.63.70.29) |
2020-11-29 03:03:46 +0100 | jchia__ | (~jchia@45.63.70.29) (Remote host closed the connection) |
2020-11-29 03:03:47 +0100 | <iqubic> | jle`: It seems that your advent-of-code-api library has broken. I'm trying to compile it with Cabal and GHC 8.10.2 and I'm getting this error: https://dpaste.com/A64ZXSQZS |
2020-11-29 03:04:45 +0100 | jchia__ | (~jchia@45.63.70.29) |
2020-11-29 03:04:51 +0100 | a-kiwi3 | (61664b96@gateway/web/cgi-irc/kiwiirc.com/ip.97.102.75.150) () |
2020-11-29 03:05:18 +0100 | <MarcelineVQ> | jle`: you monster |
2020-11-29 03:05:30 +0100 | <iqubic> | What's the issue now? |
2020-11-29 03:06:30 +0100 | jchia__ | (~jchia@45.63.70.29) (Remote host closed the connection) |
2020-11-29 03:06:41 +0100 | joaj | (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) (Ping timeout: 272 seconds) |
2020-11-29 03:06:53 +0100 | jchia__ | (~jchia@58.32.37.146) |
2020-11-29 03:07:21 +0100 | <Ariakenom> | MarcelineVQ: hey |
2020-11-29 03:07:26 +0100 | <Ariakenom> | you even encouraged others |
2020-11-29 03:07:30 +0100 | joaj | (~joaj@138.104.115.89.rev.vodafone.pt) |
2020-11-29 03:07:43 +0100 | <Ariakenom> | you wrecked today! |
2020-11-29 03:10:41 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 03:11:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 03:12:16 +0100 | <iqubic> | From what I can tell, some package updated, and now jle` has a broken package |
2020-11-29 03:16:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-29 03:18:02 +0100 | <ezzieyguywuf> | can you all recommend any packages for handling configuration files? |
2020-11-29 03:18:09 +0100 | <ezzieyguywuf> | or you you typically just roll your own? |
2020-11-29 03:18:56 +0100 | <ezzieyguywuf> | s/you you/do you / |
2020-11-29 03:21:24 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) (Quit: Leaving) |
2020-11-29 03:21:56 +0100 | livvy_ | (~livvy@gateway/tor-sasl/livvy) |
2020-11-29 03:22:12 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) (Remote host closed the connection) |
2020-11-29 03:22:55 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
2020-11-29 03:23:26 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-29 03:23:39 +0100 | reallymemorable | (~quassel@ip68-9-215-56.ri.ri.cox.net) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-11-29 03:25:49 +0100 | reallymemorable | (~quassel@ip68-9-215-56.ri.ri.cox.net) |
2020-11-29 03:26:01 +0100 | ambidextrose | (~fut-learn@mobile-166-171-123-173.mycingular.net) |
2020-11-29 03:26:22 +0100 | <koz_> | ezzieyguywuf: Depends on format. |
2020-11-29 03:27:19 +0100 | <dsal> | ezzieyguywuf: It's not a recommendation, but I typically just write the thing I want to express into a file, then I write a parser for that thing that made sense to me. |
2020-11-29 03:27:25 +0100 | <dsal> | I used dhall once. |
2020-11-29 03:27:38 +0100 | xff0x | (~fox@2001:1a81:5212:df00:d7cf:4a87:a54b:9a9b) (Ping timeout: 264 seconds) |
2020-11-29 03:27:40 +0100 | ambidextrose | (~fut-learn@mobile-166-171-123-173.mycingular.net) (Client Quit) |
2020-11-29 03:27:46 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 03:28:38 +0100 | <ezzieyguywuf> | dsal: I was thinking of something along those lines honestly |
2020-11-29 03:28:51 +0100 | revprez_stg | (~revprez_s@pool-108-49-213-40.bstnma.fios.verizon.net) (Quit: Lost terminal) |
2020-11-29 03:29:18 +0100 | Digitteknohippie | (~user@fsf/member/digit) (Ping timeout: 260 seconds) |
2020-11-29 03:29:19 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 03:29:24 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:8105:569c:1b26:2c3d) |
2020-11-29 03:29:41 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 03:30:50 +0100 | <ezzieyguywuf> | koz_: I don't have a set format. mostly just "git yur data into my code" |
2020-11-29 03:31:18 +0100 | <koz_> | ezzieyguywuf: Then just pick one. There's a few conf-like thingoes floating around, or you can use like, YAML, or TOML, or JSON, or w/e. |
2020-11-29 03:31:48 +0100 | <koz_> | (why do all these formats have four-letter acronyms rofl) |
2020-11-29 03:32:50 +0100 | <ezzieyguywuf> | I've heard of yaml and json |
2020-11-29 03:33:34 +0100 | <hololeap> | i've seen toml around in my system config files |
2020-11-29 03:34:27 +0100 | <ezzieyguywuf> | maybe i'll try that |
2020-11-29 03:34:31 +0100 | <ezzieyguywuf> | thanks for the tips y'all |
2020-11-29 03:34:43 +0100 | <koz_> | I think there's a Haskell package for TOML parsing? |
2020-11-29 03:34:45 +0100 | koz_ | shruggoes. |
2020-11-29 03:34:54 +0100 | <koz_> | Dhall is an option, but a pretty nuclear one. |
2020-11-29 03:35:18 +0100 | <koz_> | (it's a heavy dep, and I'm _still_ not 100% clear on what it does or doesn't do because it keeps moving around and the docs are lacking) |
2020-11-29 03:35:56 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) (Ping timeout: 240 seconds) |
2020-11-29 03:36:10 +0100 | <ezzieyguywuf> | koz_: I like to avoid heavy deps, haven't learned lens yet for that reason |
2020-11-29 03:36:29 +0100 | <koz_> | Hmm. |
2020-11-29 03:36:44 +0100 | <koz_> | Someone (I think it was glguy?) wrote something for parsing a conf-like format, but I forget. |
2020-11-29 03:36:49 +0100 | <koz_> | It was pretty lightweight IIRC. |
2020-11-29 03:37:12 +0100 | <nshepperd> | you can use a plain old ini file |
2020-11-29 03:37:16 +0100 | <ezzieyguywuf> | I see some configparser-clones |
2020-11-29 03:37:20 +0100 | <ezzieyguywuf> | but toml sounds nice. |
2020-11-29 03:37:22 +0100 | <glguy> | Yeah, "config-value" has minimal dependencies |
2020-11-29 03:37:41 +0100 | <koz_> | That was the one. |
2020-11-29 03:38:13 +0100 | <glguy> | "config-schema" has a couple more but it's still pretty light. (It's a helper for making it easy to process configurations) |
2020-11-29 03:39:04 +0100 | <glguy> | There's a live demo https://glguy.net/config-demo/ |
2020-11-29 03:39:33 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 03:39:35 +0100 | LKoen | (~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-29 03:39:59 +0100 | <ezzieyguywuf> | 4 dependencies, nice. https://hackage.haskell.org/package/toml-parser-0.1.0.0 |
2020-11-29 03:40:12 +0100 | <ezzieyguywuf> | lol, one of which is base. |
2020-11-29 03:40:21 +0100 | <koz_> | ezzieyguywuf: Those are all boot packages. |
2020-11-29 03:40:24 +0100 | <koz_> | So it's actually 0. :P |
2020-11-29 03:40:40 +0100 | <ezzieyguywuf> | but also v 0.1.0.0 |
2020-11-29 03:40:42 +0100 | <ezzieyguywuf> | so *shrug* |
2020-11-29 03:41:03 +0100 | <koz_> | glguy: config-schema is great and so are you. |
2020-11-29 03:41:09 +0100 | <ezzieyguywuf> | hey it's his! |
2020-11-29 03:41:19 +0100 | <ezzieyguywuf> | glguy made it (the toml parser I linked) |
2020-11-29 03:41:57 +0100 | <ezzieyguywuf> | glguy: isyour toml parser good to go? repo looks stale and the version number suggests to me perhaps its incomplete? |
2020-11-29 03:42:02 +0100 | <glguy> | I need to fix a bug in that toml parser that was pointed out here |
2020-11-29 03:42:29 +0100 | <koz_> | ezzieyguywuf: Sub 1.0 version numbers mean basically nothing. |
2020-11-29 03:42:34 +0100 | <ezzieyguywuf> | glguy: is it one of the two issues listed on github? |
2020-11-29 03:42:36 +0100 | <glguy> | I don't use it for anything, I prefer the config-value stuff I made for my own work |
2020-11-29 03:42:44 +0100 | <koz_> | (vector is sub-1.0 for example, and I doubt anyone would seriously suggest it's somehow incomplete) |
2020-11-29 03:44:15 +0100 | machinedgod | (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds) |
2020-11-29 03:44:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 03:44:42 +0100 | <glguy> | Sub-1 doesn't mean anything special in pvp |
2020-11-29 03:45:09 +0100 | <iqubic> | So jle`'s Advent Of Code API library is not compiling for me. I'm getting this error: https://dpaste.com/A64ZXSQZS |
2020-11-29 03:45:19 +0100 | <iqubic> | Anyone know what's going on there? |
2020-11-29 03:45:39 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2020-11-29 03:45:51 +0100 | hackage | tweet-hs 1.0.2.2 - Command-line tool for twitter https://hackage.haskell.org/package/tweet-hs-1.0.2.2 (vmchale) |
2020-11-29 03:47:56 +0100 | <hololeap> | can you run megaparsec "in reverse"? i'd like to grab the extentions of some files, and some have two-part extensions. if it parsed the string in reverse, it could save me a headache. |
2020-11-29 03:48:44 +0100 | <koz_> | hololeap: Two-part meaning something like .tar.gz? |
2020-11-29 03:49:16 +0100 | <hololeap> | koz_: correct, and some of the filename bodies have '.' in them, so System.Posix.Files is getting a little confused |
2020-11-29 03:49:36 +0100 | <hololeap> | rather, System.FilePath.Posix |
2020-11-29 03:49:52 +0100 | acarrico | (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 272 seconds) |
2020-11-29 03:51:06 +0100 | <ezzieyguywuf> | or reeverse the string is try to parse gz.rat. |
2020-11-29 03:51:15 +0100 | <koz_> | zg.rat :P |
2020-11-29 03:51:17 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 03:51:22 +0100 | <ezzieyguywuf> | lol yea |
2020-11-29 03:51:25 +0100 | <hololeap> | i know i could do someting like `parse (string (reverse ".tar.gz") <|> string (reverse ".log")) f (reverse s)` |
2020-11-29 03:51:28 +0100 | <koz_> | And you'd have to re-reverse (verse?) it again. |
2020-11-29 03:51:41 +0100 | <ezzieyguywuf> | lol, verse. |
2020-11-29 03:51:46 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) |
2020-11-29 03:52:59 +0100 | <ezzieyguywuf> | the config-value stuff looks really neat, per the live demo. |
2020-11-29 03:53:04 +0100 | <ezzieyguywuf> | but also seems like a lot of work, lol. |
2020-11-29 03:53:21 +0100 | <koz_> | ezzieyguywuf: In what sense? To use, or to implement? |
2020-11-29 03:53:56 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) (Ping timeout: 240 seconds) |
2020-11-29 03:54:35 +0100 | <ezzieyguywuf> | use. |
2020-11-29 03:54:48 +0100 | <ezzieyguywuf> | i.e. b/c of the schema thingy. |
2020-11-29 03:54:57 +0100 | <ezzieyguywuf> | i mean, once you learn it it's probs not that hard |
2020-11-29 03:55:16 +0100 | <koz_> | ezzieyguywuf: You don't have to use config-schema though? |
2020-11-29 03:55:35 +0100 | <ezzieyguywuf> | koz_: oh forrill? maybe I misunderstood tho point of the live demo then |
2020-11-29 03:56:21 +0100 | <koz_> | ezzieyguywuf: http://hackage.haskell.org/package/config-value-0.8/docs/Config.html#v:parse |
2020-11-29 03:56:59 +0100 | <koz_> | config-schema makes it more user-friendly and safe, but you can use just that to get 'whatever the hell', and take it apart by hand if you so wish. |
2020-11-29 03:57:04 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
2020-11-29 03:57:36 +0100 | joaj | (~joaj@138.104.115.89.rev.vodafone.pt) (Ping timeout: 240 seconds) |
2020-11-29 03:58:03 +0100 | <ezzieyguywuf> | hrm, I'll take a deeper look. |
2020-11-29 04:01:08 +0100 | Volt_ | (~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) (Quit: ) |
2020-11-29 04:01:12 +0100 | <ezzieyguywuf> | blahh, but config-schema makes it user-friendly and safe, why would I avoid. |
2020-11-29 04:01:24 +0100 | <ezzieyguywuf> | lol, ok I'll spend moar than 2 seconds on this |
2020-11-29 04:01:33 +0100 | <ezzieyguywuf> | I am, after all, on my adhd meds |
2020-11-29 04:05:20 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 04:06:23 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 04:07:33 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 04:07:37 +0100 | <glguy> | ezzieyguywuf, just ping me if you have questions about how to use either |
2020-11-29 04:07:58 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 04:08:20 +0100 | <glguy> | If you end up using the config-schema stuff I have examples in https://hackage.haskell.org/package/config-schema-1.2.1.0/docs/Config-Schema-Spec.html |
2020-11-29 04:09:13 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 264 seconds) |
2020-11-29 04:09:18 +0100 | <ezzieyguywuf> | glguy: thanks I appreciate the offer. |
2020-11-29 04:10:38 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 04:13:51 +0100 | <ezzieyguywuf> | glguy: what file extension do you use for conf files? lol. |
2020-11-29 04:13:51 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 04:13:59 +0100 | <glguy> | .cfg :) |
2020-11-29 04:14:04 +0100 | <ezzieyguywuf> | nice. |
2020-11-29 04:14:33 +0100 | <glguy> | I have vim syntax highlighting, but that's about it |
2020-11-29 04:15:56 +0100 | <ezzieyguywuf> | glguy: yea I saw that, that's what had me wondering about file extension |
2020-11-29 04:16:08 +0100 | <glguy> | I put this at the bottom so vim picks it up -- vim: filetype=config-value |
2020-11-29 04:17:05 +0100 | justsomeguy | has a random thought -- syntax highlighting emphasizes the wrong things: keywords and punctuation rather than names. |
2020-11-29 04:17:51 +0100 | <glguy> | That probably doesn't apply to a configuration language |
2020-11-29 04:18:04 +0100 | <ezzieyguywuf> | justanotheruser: I've been using nofrils colorscheme in vim for a few months now, pretty happy |
2020-11-29 04:18:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-29 04:18:28 +0100 | <ezzieyguywuf> | glguy: vim recognises that at the bottom of the file?! I didn't know vim could do that... |
2020-11-29 04:19:27 +0100 | <glguy> | https://ibb.co/26yfm2y example from my IRC client configuration |
2020-11-29 04:20:04 +0100 | <glguy> | highlighting helps notice escapes in string literals, distinguish strings from atoms, etc |
2020-11-29 04:21:07 +0100 | <ezzieyguywuf> | altought I modified it to highlight strings https://i.imgur.com/yaAppbE.png |
2020-11-29 04:21:32 +0100 | <iqubic> | I wish I knew why this fails to build with GHC 8.10.2 https://hackage.haskell.org/package/advent-of-code-api |
2020-11-29 04:21:58 +0100 | <glguy> | iqubic, that packages doesn't list any package bounds; it's intended to decay and fail to build |
2020-11-29 04:22:11 +0100 | <iqubic> | Really? |
2020-11-29 04:22:34 +0100 | <iqubic> | So, will I just have to wait for jle` to come around and fix it? |
2020-11-29 04:23:02 +0100 | <glguy> | or guess at the bounds and submit a PR |
2020-11-29 04:23:12 +0100 | <iqubic> | Hmm, that sounds difficult. |
2020-11-29 04:25:07 +0100 | <iqubic> | I was planning on using this to download my data for AOC, as I did last year, but that doesn't look like it will work. |
2020-11-29 04:26:05 +0100 | <iqubic> | AOC = Advent of Code. I'm planning on making a toolkit of functions for use this year, and I wanted this to be part of it, like it was last year. |
2020-11-29 04:28:55 +0100 | <iqubic> | Now, seeing as that might not be working this year, I'm going to ask a different question: what does readFile return? I know it's an IO String, but does that string contain a trailing new line or not? |
2020-11-29 04:31:17 +0100 | <iqubic> | jle`: Do you have any plans on updating you AoC-API that's on Hackage anytime soon? |
2020-11-29 04:31:35 +0100 | <iqubic> | glguy: Are you going to be creating a haskell leaderboard this year? |
2020-11-29 04:31:41 +0100 | ambidextrose | (~fut-learn@mobile-166-171-122-120.mycingular.net) |
2020-11-29 04:32:27 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2020-11-29 04:33:18 +0100 | ambidextrose | (~fut-learn@mobile-166-171-122-120.mycingular.net) (Client Quit) |
2020-11-29 04:33:33 +0100 | <glguy> | It's the same one every year |
2020-11-29 04:33:58 +0100 | <glguy> | 43100-84040706 |
2020-11-29 04:34:11 +0100 | <iqubic> | Do I need to do anything special to join it for this year, if I was on the leaderboard last year? |
2020-11-29 04:34:17 +0100 | <glguy> | nuh uh |
2020-11-29 04:34:32 +0100 | <glguy> | You're still there |
2020-11-29 04:34:43 +0100 | <iqubic> | Oh, you can just see that? |
2020-11-29 04:35:09 +0100 | <iqubic> | s/that/me/ |
2020-11-29 04:37:03 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) (Killed (adams.freenode.net (Nickname regained by services))) |
2020-11-29 04:37:11 +0100 | lagothrix | (~lagothrix@unaffiliated/lagothrix) |
2020-11-29 04:39:24 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-hiccaslramtbqzdd) |
2020-11-29 04:39:48 +0100 | Wuzzy | (~Wuzzy@p549c9976.dip0.t-ipconnect.de) (Quit: Wuzzy) |
2020-11-29 04:39:49 +0100 | reallymemorable | (~quassel@ip68-9-215-56.ri.ri.cox.net) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2020-11-29 04:39:55 +0100 | <kupi> | is it a good decision to write this function? if' :: a -> a -> Bool -> a |
2020-11-29 04:40:14 +0100 | <glguy> | :t Data.Bool.bool |
2020-11-29 04:40:15 +0100 | <lambdabot> | a -> a -> Bool -> a |
2020-11-29 04:40:27 +0100 | <kupi> | thanks |
2020-11-29 04:40:33 +0100 | <glguy> | kupi, 1) it's already defined 2) it generally leads to less-readable code |
2020-11-29 04:41:03 +0100 | theDon | (~td@muedsl-82-207-238-090.citykom.de) (Ping timeout: 272 seconds) |
2020-11-29 04:41:14 +0100 | <kupi> | what else you recommend when I >>= a Monad Bool? |
2020-11-29 04:42:30 +0100 | theDon | (~td@94.134.91.51) |
2020-11-29 04:43:08 +0100 | <glguy> | except in perhaps the most trivial cases: do usefulName <- something; if usefulName then this else that |
2020-11-29 04:43:29 +0100 | trepanger | (~z@ics141-225.icsincorporated.com) |
2020-11-29 04:45:00 +0100 | hughjfchen | (81221413@129.34.20.19) |
2020-11-29 04:46:06 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 04:46:06 +0100 | hughjfchen | (81221413@129.34.20.19) (Remote host closed the connection) |
2020-11-29 04:47:31 +0100 | <solonarv> | if you don't want to name the thing you can turn on LambdaCase and write: something >>= \case True -> this; False -> that |
2020-11-29 04:48:29 +0100 | <kupi> | or something >>= \case True -> this; _ -> that |
2020-11-29 04:48:36 +0100 | andi- | (~andi-@NixOS/user/andi-) (Remote host closed the connection) |
2020-11-29 04:49:29 +0100 | caecilius | philopsos |
2020-11-29 04:50:19 +0100 | lxsameer | (~lxsameer@unaffiliated/lxsameer) (Ping timeout: 246 seconds) |
2020-11-29 04:51:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-11-29 04:53:57 +0100 | <kupi> | but I prefer >>= bool this that |
2020-11-29 04:55:34 +0100 | andi- | (~andi-@NixOS/user/andi-) |
2020-11-29 04:58:09 +0100 | lxsameer | (~lxsameer@unaffiliated/lxsameer) |
2020-11-29 04:59:18 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
2020-11-29 04:59:30 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
2020-11-29 05:00:05 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
2020-11-29 05:02:18 +0100 | trepanger | (~z@ics141-225.icsincorporated.com) (Quit: leaving) |
2020-11-29 05:03:03 +0100 | urodna | (~urodna@unaffiliated/urodna) (Quit: urodna) |
2020-11-29 05:04:33 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 05:04:36 +0100 | alx741 | (~alx741@181.196.69.215) (Ping timeout: 240 seconds) |
2020-11-29 05:05:18 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0) |
2020-11-29 05:06:30 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 05:09:52 +0100 | <ezzieyguywuf> | glguy: so I hvaen't gotten to config-schema yet, but I made a basic config file, and parsed it succesfully. but I'm at a bit of a loss as to what to do next. This `Value Position` data I have seems very handy, but how do I interogate it? i.e. "give my the list in section 2" |
2020-11-29 05:10:58 +0100 | <glguy> | You either write functions to take apart the Value type and find what you wnt |
2020-11-29 05:11:04 +0100 | <glguy> | or you use the ones I provide for you in config-schema |
2020-11-29 05:11:19 +0100 | <ezzieyguywuf> | ah hah! config-schema rears its head! |
2020-11-29 05:11:21 +0100 | <ezzieyguywuf> | thanks |
2020-11-29 05:12:22 +0100 | actuallybatman | (~sam@S010664777dafd303.cg.shawcable.net) |
2020-11-29 05:13:04 +0100 | <glguy> | ezzieyguywuf, but on its own you interrogate with pattern matching |
2020-11-29 05:14:05 +0100 | <glguy> | There are some helpers defined for if you're using lens: https://hackage.haskell.org/package/config-value-0.8/docs/Config-Lens.html |
2020-11-29 05:14:28 +0100 | <ezzieyguywuf> | glguy: I don't really gr0k lens at the moment |
2020-11-29 05:14:36 +0100 | <glguy> | Well, then ignore that |
2020-11-29 05:16:44 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 05:17:16 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) (Ping timeout: 240 seconds) |
2020-11-29 05:17:44 +0100 | alx741 | (~alx741@186.178.110.99) |
2020-11-29 05:19:38 +0100 | <koz_> | ezzieyguywuf: Pattern matching in general gets you surprisingly far with everything. |
2020-11-29 05:20:56 +0100 | jedws | (~jedws@pa49-181-235-217.pa.nsw.optusnet.com.au) |
2020-11-29 05:23:05 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 05:24:55 +0100 | actuallybatman | (~sam@S010664777dafd303.cg.shawcable.net) (Quit: leaving) |
2020-11-29 05:25:03 +0100 | marek | (~mmahut@209.250.249.245) (Ping timeout: 260 seconds) |
2020-11-29 05:26:09 +0100 | <glguy> | Prelude Config.Schema Config Data.Functor.Alt> let spec :: ValueSpec [Int]; spec = listSpec (0 <$ atomSpec "default" <!> numSpec) in case parse "[1,default,4]" of Right v -> print (loadValue spec v) >> print (generateDocs spec) |
2020-11-29 05:26:10 +0100 | <glguy> | Right [1,0,4] |
2020-11-29 05:26:10 +0100 | <glguy> | Top-level configuration file format: |
2020-11-29 05:26:11 +0100 | <glguy> | list of (`default` or integral number) |
2020-11-29 05:30:33 +0100 | marek | (~mmahut@209.250.249.245) |
2020-11-29 05:33:01 +0100 | <ezzieyguywuf> | the schema stuff seems to pretty much document itself, after reading the examples |
2020-11-29 05:33:23 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
2020-11-29 05:33:47 +0100 | <glguy> | If you'll tell me anything that seems poorly explained I'd use that to improve the explanations |
2020-11-29 05:35:02 +0100 | <ezzieyguywuf> | glguy: I'll let you know |
2020-11-29 05:35:18 +0100 | vg | (~vg@139.59.59.230) (Read error: Connection reset by peer) |
2020-11-29 05:35:36 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 05:35:43 +0100 | actuallybatman | (~sam@S010664777dafd303.cg.shawcable.net) |
2020-11-29 05:35:45 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 05:35:52 +0100 | <MarcelineVQ> | glguy: hey, good job. you're a great guy, doing all your helpfuol stiff all the time |
2020-11-29 05:36:17 +0100 | <glguy> | That's nice of you to say, MarcelineVQ. |
2020-11-29 05:36:33 +0100 | <MarcelineVQ> | you're worth it |
2020-11-29 05:37:22 +0100 | JJ15 | (~JJ@94.197.17.236.threembb.co.uk) (Ping timeout: 256 seconds) |
2020-11-29 05:38:09 +0100 | nek0 | (~nek0@mail.nek0.eu) (Quit: The Lounge - https://thelounge.chat) |
2020-11-29 05:38:14 +0100 | <koz_> | MarcelineVQ, the L'Oreal rep. :P |
2020-11-29 05:39:25 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 05:41:23 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2020-11-29 05:43:15 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) (Ping timeout: 256 seconds) |
2020-11-29 05:44:14 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 256 seconds) |
2020-11-29 05:45:50 +0100 | <MarcelineVQ> | l' gariet frucitis o la config |
2020-11-29 05:46:12 +0100 | <MarcelineVQ> | zhuehuee' |
2020-11-29 05:47:38 +0100 | <koz_> | I think MarcelineVQ is malfunctioning. |
2020-11-29 05:48:28 +0100 | <MarcelineVQ> | wwww |
2020-11-29 05:48:36 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff597d005cd8d9846e4e.dip0.t-ipconnect.de) |
2020-11-29 05:49:07 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
2020-11-29 05:49:13 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 05:51:18 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-29 05:56:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-29 05:58:55 +0100 | solonarv | (~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr) (Ping timeout: 265 seconds) |
2020-11-29 05:59:39 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 06:03:27 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
2020-11-29 06:04:51 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) |
2020-11-29 06:06:49 +0100 | vg | (~vg@139.59.59.230) (Ping timeout: 264 seconds) |
2020-11-29 06:08:52 +0100 | petersen | (~petersen@redhat/juhp) |
2020-11-29 06:09:51 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 06:09:56 +0100 | xpika | (~alan@2001:8003:5d32:1f00:a5ad:52a6:3658:edb9) |
2020-11-29 06:11:28 +0100 | <xpika> | does anyone know a library that handles creations of Lists of Lists that makes it easy to apply breakpoints? |
2020-11-29 06:11:42 +0100 | <xpika> | > let single = (\y ys -> (\(x:xs)->(y:x):xs) ys) ; break = [("":)] in foldr ($) [""] (map single "hello"++break++map single "world") |
2020-11-29 06:11:45 +0100 | <lambdabot> | ["hello","world"] |
2020-11-29 06:13:29 +0100 | <xpika> | perhaps could be used with the writer monad eg. tall (single 1) ; tell break |
2020-11-29 06:15:21 +0100 | hackage | store 0.7.8 - Fast binary serialization https://hackage.haskell.org/package/store-0.7.8 (MichaelSloan) |
2020-11-29 06:15:41 +0100 | <koz_> | xpika: What do you mean by 'breakpoints' here? |
2020-11-29 06:16:21 +0100 | hackage | store-core 0.4.4.4 - Fast and lightweight binary serialization https://hackage.haskell.org/package/store-core-0.4.4.4 (MichaelSloan) |
2020-11-29 06:16:22 +0100 | <xpika> | koz_: the boundaries between lists |
2020-11-29 06:17:20 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Quit: WeeChat 3.0) |
2020-11-29 06:17:27 +0100 | Zao_ | (~Zao_@185.204.1.185) (Remote host closed the connection) |
2020-11-29 06:17:35 +0100 | <xpika> | koz_: I don't mean debug breakpoints if that's what you were thinking |
2020-11-29 06:17:44 +0100 | <koz_> | xpika: Yeah, I was a bit confused there. |
2020-11-29 06:18:24 +0100 | irc_user | (uid423822@gateway/web/irccloud.com/x-bjmhyxzylfubvsgp) (Quit: Connection closed for inactivity) |
2020-11-29 06:18:28 +0100 | jedws | (~jedws@pa49-181-235-217.pa.nsw.optusnet.com.au) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-29 06:18:57 +0100 | <xpika> | char 'a' ; char 'b' ; break ; char '1' ; break ; char '4' |
2020-11-29 06:18:58 +0100 | <xpika> | => ["ab","1",4"] |
2020-11-29 06:19:53 +0100 | <koz_> | Are you dealing with general lists? Or are you really dealing with lists of strings? Do you care that it's expressly _lists_? |
2020-11-29 06:20:16 +0100 | <xpika> | anything that I can convert to a list would be fine |
2020-11-29 06:20:45 +0100 | trepanger | (~z@ics141-225.icsincorporated.com) |
2020-11-29 06:21:14 +0100 | remexre | (~nathan@207-153-38-50.fttp.usinternet.com) (Ping timeout: 272 seconds) |
2020-11-29 06:23:07 +0100 | <koz_> | Assuming the 'lists of strings' case, you could work with some wrapper around Seq Builder, then write some ops around that? |
2020-11-29 06:23:23 +0100 | <koz_> | If it's general stuff, Seq (Seq a) maybe? |
2020-11-29 06:23:30 +0100 | ambidextrose | (~fut-learn@mobile-166-171-122-147.mycingular.net) |
2020-11-29 06:25:05 +0100 | <xpika> | Yeah I could roll my own. But I'm interested if others made a library to do what seems very basic. |
2020-11-29 06:25:33 +0100 | <koz_> | It's a pretty niche thing honestly. |
2020-11-29 06:25:40 +0100 | <koz_> | I've yet to ever see need for such a thing. |
2020-11-29 06:29:56 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
2020-11-29 06:30:11 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 06:31:25 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 256 seconds) |
2020-11-29 06:31:35 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving) |
2020-11-29 06:31:51 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-29 06:35:37 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
2020-11-29 06:37:25 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 240 seconds) |
2020-11-29 06:37:58 +0100 | Kaiepi | (~Kaiepi@nwcsnbsc03w-47-55-225-82.dhcp-dynamic.fibreop.nb.bellaliant.net) |
2020-11-29 06:41:44 +0100 | remexre | (~nathan@207-153-38-50.fttp.usinternet.com) |
2020-11-29 06:49:25 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2020-11-29 06:49:28 +0100 | pavonia | (~user@unaffiliated/siracusa) (Quit: Bye!) |
2020-11-29 06:50:07 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds) |
2020-11-29 06:50:53 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-29 06:53:03 +0100 | <xpika> | > let single = (\y ys -> (\(x:xs)->(y:x):xs) ys) ; break = ([]:) in foldr ($) [[]] (concatMap (\x -> if odd x then [single x ,break] else [single x]) [1..10]) |
2020-11-29 06:53:06 +0100 | <lambdabot> | [[1],[2,3],[4,5],[6,7],[8,9],[10]] |
2020-11-29 06:53:07 +0100 | petersen | (~petersen@redhat/juhp) |
2020-11-29 06:54:21 +0100 | hackage | th-utilities 0.2.4.1 - Collection of useful functions for use with Template Haskell https://hackage.haskell.org/package/th-utilities-0.2.4.1 (MichaelSloan) |
2020-11-29 06:55:51 +0100 | hackage | calamity 0.1.22.1 - A library for writing discord bots in haskell https://hackage.haskell.org/package/calamity-0.1.22.1 (nitros12) |
2020-11-29 07:00:42 +0100 | <xpika> | > let single = (\y ys -> (\(x:xs)->(y:x):xs) ys) ; break = (\xs -> if head xs /= [] then []:xs else xs) in foldr ($) [[]] (concatMap (\x -> if rem x 5 == 0 || rem x 3 == 0 then [break,single "fizzOrbuzz",break ] else [single (show x)]) [1..16]) |
2020-11-29 07:00:45 +0100 | <lambdabot> | [["1","2"],["fizzOrbuzz"],["4"],["fizzOrbuzz"],["fizzOrbuzz"],["7","8"],["fi... |
2020-11-29 07:01:30 +0100 | alp | (~alp@2a01:e0a:58b:4920:85ab:9e1c:e4ae:787d) |
2020-11-29 07:02:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 07:02:41 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 07:03:13 +0100 | pieguy128 | (~pieguy128@bras-base-mtrlpq5031w-grc-39-70-27-244-102.dsl.bell.ca) (Quit: ZNC 1.7.5 - https://znc.in) |
2020-11-29 07:04:10 +0100 | drbean | (~drbean@TC210-63-209-156.static.apol.com.tw) |
2020-11-29 07:05:17 +0100 | <jle`> | iqubic: it works for ghc 8.8 :) |
2020-11-29 07:05:28 +0100 | <jle`> | but you're welcome to submit a pr too :) |
2020-11-29 07:05:41 +0100 | <iqubic> | I'm not going to do that. |
2020-11-29 07:05:47 +0100 | <iqubic> | I know what I'll be doing. |
2020-11-29 07:07:43 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 260 seconds) |
2020-11-29 07:07:55 +0100 | <iqubic> | I'll just downgrade to 8.8. Is there any easy way to get cabal to do that? |
2020-11-29 07:08:00 +0100 | actuallybatman | (~sam@S010664777dafd303.cg.shawcable.net) () |
2020-11-29 07:08:17 +0100 | <jle`> | hm, i looked at the error and it seems like it's more likely a servant version mismatch |
2020-11-29 07:08:26 +0100 | <jle`> | iqubic: yeah, cabal just uses whatever GHC is in your PATH |
2020-11-29 07:08:37 +0100 | <iqubic> | Cool. That's what I like to hear. |
2020-11-29 07:08:38 +0100 | <jle`> | so if you have GHC 8.8 in your path then it'll use that atuomatically |
2020-11-29 07:08:44 +0100 | <glguy> | You'd do: cabal configure -w ghc-8.8 |
2020-11-29 07:08:45 +0100 | <jle`> | but it looks like the problem is probably a servant update that broke it |
2020-11-29 07:09:08 +0100 | <iqubic> | Now I just have to tell Nix to use GHC 8.8 instead of 8.10.2. That's not too big a deal. |
2020-11-29 07:09:17 +0100 | stree | (~stree@50-108-97-52.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception) |
2020-11-29 07:09:35 +0100 | stree | (~stree@50-108-97-52.adr01.mskg.mi.frontiernet.net) |
2020-11-29 07:09:53 +0100 | <jle`> | looks like it's using servant 0.16 |
2020-11-29 07:09:58 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 246 seconds) |
2020-11-29 07:09:59 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-29 07:10:05 +0100 | <jle`> | so if you use servant 0.16.x with ghc 8.10 it should be ok too |
2020-11-29 07:10:25 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 07:10:36 +0100 | <jle`> | i wonder what changed |
2020-11-29 07:11:21 +0100 | <iqubic> | Oh, it should? Is there a way to get a particular Servant version? |
2020-11-29 07:11:37 +0100 | <siraben> | What should I use to derive Arbitrary instances? |
2020-11-29 07:11:46 +0100 | <siraben> | I have a tree and want to generate arbitrary trees for use in QuickCheck |
2020-11-29 07:11:47 +0100 | <jle`> | iqubic: you can specify in your cabal file or package.yaml |
2020-11-29 07:12:15 +0100 | <iqubic> | I'm not sure how to do that? Can you tell me what I should add to my .cabal file? |
2020-11-29 07:14:22 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
2020-11-29 07:14:25 +0100 | <jle`> | 'servant ==0.16.2' where you are listing your servant dependency, i think |
2020-11-29 07:14:26 +0100 | <xpika> | ok question: A HTML table (without rowspans) has an equal number of fields per row. Would a list of fixed length Vectors be a good option for constructing a table like this safely? |
2020-11-29 07:15:01 +0100 | <jle`> | xpika: it depends on what sort of operations you'd want to do, i think. but yeah, having something like [Vector n a] would keep each row the same length |
2020-11-29 07:15:03 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2020-11-29 07:15:28 +0100 | <iqubic> | jle`: I'm not listing a servant dependency, I'm letting Cabal get that for me. |
2020-11-29 07:16:07 +0100 | <jle`> | ah hm. you can add that in as a dep then. but also i guess i should have made stricter upper bounds for the library D: |
2020-11-29 07:16:39 +0100 | <iqubic> | Are you going to update the library, or not? |
2020-11-29 07:17:09 +0100 | darjeeling_ | (~darjeelin@112.16.171.8) |
2020-11-29 07:17:49 +0100 | <iqubic> | Also, will your OCR library be broken too, or not. |
2020-11-29 07:17:51 +0100 | Amras | (~Amras@unaffiliated/amras) |
2020-11-29 07:17:52 +0100 | <iqubic> | ? |
2020-11-29 07:18:21 +0100 | hughjfchen | (81221413@129.34.20.19) |
2020-11-29 07:19:04 +0100 | <ambidextrose> | keep rockin' that single-quote, iqubic |
2020-11-29 07:19:17 +0100 | <koz_> | siraben: You can just write the instance by hand, surely? |
2020-11-29 07:19:17 +0100 | ambidextrose | (~fut-learn@mobile-166-171-122-147.mycingular.net) () |
2020-11-29 07:19:19 +0100 | <iqubic> | What single quote? |
2020-11-29 07:19:35 +0100 | <siraben> | koz_: `arbitrary = oneof [pure Leaf, Node <$> arbitrary <*> arbitrary <*> arbitrary]` |
2020-11-29 07:19:36 +0100 | <siraben> | yeah |
2020-11-29 07:19:45 +0100 | <koz_> | siraben: That's gonna have issues. |
2020-11-29 07:19:50 +0100 | <jle`> | the ocr library doesn't use servant, so i think it should be fine. but i haven't tested all the bounds for all the deps |
2020-11-29 07:19:52 +0100 | <koz_> | Mostly because it'll possibly loop forever. |
2020-11-29 07:19:56 +0100 | <siraben> | koz_: why? |
2020-11-29 07:20:02 +0100 | <siraben> | data Tree = Node Int Tree Tree | Leaf deriving Show |
2020-11-29 07:20:13 +0100 | <koz_> | Because a possible path through that Arbitrary instance is 'Node for all eternity'. |
2020-11-29 07:20:16 +0100 | <koz_> | So it'll never stop. |
2020-11-29 07:20:38 +0100 | <koz_> | So you need to bound its depth, probably by using resize. |
2020-11-29 07:20:47 +0100 | <koz_> | (`div` 2) is a good way to do that. |
2020-11-29 07:21:04 +0100 | <koz_> | Every time you make a recursive call to 'arbitrary', ensure you wrap it in 'resize'. |
2020-11-29 07:21:12 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) |
2020-11-29 07:21:37 +0100 | <koz_> | And also check for the size (by using getSize) before you recurse - if you're at 0 or lower, ensure you get a Leaf. |
2020-11-29 07:23:57 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 07:24:44 +0100 | <siraben> | koz_: ok |
2020-11-29 07:25:23 +0100 | miuchan | (2d880087@45.136.0.135) |
2020-11-29 07:27:10 +0100 | <siraben> | koz_: s <- getSize then |
2020-11-29 07:27:12 +0100 | <siraben> | `if s <= 0 then pure Leaf else Node <$> arbitrary <*> resize (s `div` 2) arbitrary <*> resize (s `div` 2) arbitrary` |
2020-11-29 07:27:14 +0100 | <siraben> | Right? |
2020-11-29 07:27:41 +0100 | <koz_> | Almost. |
2020-11-29 07:28:05 +0100 | <koz_> | In the 'else' arm, you want to use oneOf to pick between Leaf and Node. |
2020-11-29 07:28:15 +0100 | <koz_> | Otherwise you end up with a tree that's perfectly balanced every time. |
2020-11-29 07:28:34 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 07:28:42 +0100 | <siraben> | koz_: Ah, I see. |
2020-11-29 07:28:57 +0100 | <siraben> | How do I force shrinking of the tests to make the smallest counterexample? |
2020-11-29 07:29:35 +0100 | <koz_> | Did you define 'shrink'? |
2020-11-29 07:29:46 +0100 | <koz_> | If you didn't define the shrink method, nothing gets shrunk. |
2020-11-29 07:30:04 +0100 | <siraben> | Ah |
2020-11-29 07:30:20 +0100 | <siraben> | How do I define shrink? |
2020-11-29 07:30:36 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-29 07:30:38 +0100 | <siraben> | Oh it's in the arbitrary class |
2020-11-29 07:30:43 +0100 | <koz_> | Leaf is not shrinkable. |
2020-11-29 07:30:46 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving) |
2020-11-29 07:30:54 +0100 | <koz_> | Node shrinks to its subtrees. |
2020-11-29 07:31:07 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-29 07:31:43 +0100 | <siraben> | Nice, works great. |
2020-11-29 07:31:47 +0100 | <siraben> | `shrink Leaf = []; shrink (Node x l r) = [Leaf] ++ [l, r] ++ [Node x' l' r' | (x', l', r') <- shrink (x, l, r)]` |
2020-11-29 07:32:02 +0100 | <koz_> | Nah, you don't want to shrink Node to Leaf like that. |
2020-11-29 07:32:08 +0100 | <koz_> | It's not a shrink - you're inventing data. |
2020-11-29 07:32:24 +0100 | <koz_> | shrink (Node _ l r) = [l, r] is fine. |
2020-11-29 07:32:41 +0100 | <siraben> | Interesting, the QuickCheck docs uses this tree example |
2020-11-29 07:33:09 +0100 | <iqubic> | jle`: Are you going to update the AoC-API to have strict bounds, or should I just make the required modifications on my end? |
2020-11-29 07:33:11 +0100 | <siraben> | Hm, using that for shrink seems to produce worse results |
2020-11-29 07:33:21 +0100 | <koz_> | siraben: In what sense? |
2020-11-29 07:33:36 +0100 | <siraben> | koz_: longer counterexamples after quickCheck |
2020-11-29 07:33:40 +0100 | <koz_> | Hmm. |
2020-11-29 07:33:44 +0100 | adm | (~adm@117.223.63.167) (Remote host closed the connection) |
2020-11-29 07:33:49 +0100 | <koz_> | Well, in that case, use your original. |
2020-11-29 07:33:56 +0100 | <koz_> | I guess it's a more aggressive search |
2020-11-29 07:34:08 +0100 | <siraben> | taking away [Leaf] ++ doesn't seem to make a difference though |
2020-11-29 07:34:10 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 07:34:32 +0100 | <koz_> | I always thought 'shrink' was meant to be a reduction, rather than a search. |
2020-11-29 07:34:34 +0100 | adm | (~adm@117.223.63.167) (Remote host closed the connection) |
2020-11-29 07:34:39 +0100 | <koz_> | But I guess a search _would_ produce better results. |
2020-11-29 07:34:40 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 07:35:04 +0100 | <siraben> | I wish I could pretty print trees... |
2020-11-29 07:35:44 +0100 | <koz_> | siraben: Like, define a prettyprinter, pass that into (a variant of) forAll? |
2020-11-29 07:35:49 +0100 | <siraben> | Ah there's already Data.Trees, d'oh |
2020-11-29 07:35:53 +0100 | <koz_> | (there's one letting you specify the string conversion) |
2020-11-29 07:36:31 +0100 | bitmagie | (~Thunderbi@200116b806516200c8ecaee7ade9dd01.dip.versatel-1u1.de) |
2020-11-29 07:36:39 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2020-11-29 07:38:00 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-29 07:39:49 +0100 | nkatte_ | (~nkatte@2804:14c:7982:10c9:4e1d:96ff:fe53:98e1) (Quit: nkatte_) |
2020-11-29 07:40:04 +0100 | hughjfchen | (81221413@129.34.20.19) (Ping timeout: 245 seconds) |
2020-11-29 07:40:53 +0100 | <jle`> | iqubic: i might be updating it to make it work with 0.18, it seems like i was just doing a small thing unsafe before |
2020-11-29 07:41:15 +0100 | <iqubic> | Ah. I see. It's fine if you don't update it. |
2020-11-29 07:41:46 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-29 07:43:23 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds) |
2020-11-29 07:44:31 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-11-29 07:45:59 +0100 | alp | (~alp@2a01:e0a:58b:4920:85ab:9e1c:e4ae:787d) (Ping timeout: 272 seconds) |
2020-11-29 07:46:45 +0100 | adm | (~adm@117.223.63.167) (Remote host closed the connection) |
2020-11-29 07:46:54 +0100 | hackplan | (~hackplan@2408:8221:4b1e:80d0:8041:ecd2:ffb8:82bc) |
2020-11-29 07:48:10 +0100 | hackplan | (~hackplan@2408:8221:4b1e:80d0:8041:ecd2:ffb8:82bc) (Client Quit) |
2020-11-29 07:48:12 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 07:48:19 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-29 07:49:23 +0100 | hackplan | (~miuchan@2408:8221:4b1e:80d0:8041:ecd2:ffb8:82bc) |
2020-11-29 07:49:27 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Client Quit) |
2020-11-29 07:49:49 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-29 07:53:21 +0100 | hackage | advent-of-code-api 0.2.7.1 - Advent of Code REST API bindings and servant API https://hackage.haskell.org/package/advent-of-code-api-0.2.7.1 (jle) |
2020-11-29 07:57:26 +0100 | urek | (~urek@2804:7f1:e10a:5ac1:9da8:e4f6:9638:96bd) (Quit: urek) |
2020-11-29 07:57:59 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-29 07:58:45 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-hiccaslramtbqzdd) (Quit: Connection closed for inactivity) |
2020-11-29 07:58:46 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 272 seconds) |
2020-11-29 07:59:38 +0100 | adm | (~adm@117.223.63.167) (Remote host closed the connection) |
2020-11-29 07:59:56 +0100 | coot | (~coot@37.30.53.191.nat.umts.dynamic.t-mobile.pl) |
2020-11-29 07:59:58 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 08:01:19 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Quit: leaving) |
2020-11-29 08:04:36 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-29 08:07:05 +0100 | <iqubic> | Oh, you just updated it. |
2020-11-29 08:07:11 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Ping timeout: 256 seconds) |
2020-11-29 08:07:27 +0100 | <iqubic> | jle`: Does this now work with 8.10.2? |
2020-11-29 08:08:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 08:08:59 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-29 08:09:45 +0100 | andyrtr1 | (~andyrtr@195.140.213.38) |
2020-11-29 08:09:59 +0100 | larou | (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
2020-11-29 08:10:56 +0100 | adm | (~adm@117.223.63.167) (Remote host closed the connection) |
2020-11-29 08:11:09 +0100 | Rudd0 | (~Rudd0@185.189.115.103) (Ping timeout: 256 seconds) |
2020-11-29 08:13:59 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-29 08:16:16 +0100 | darjeeling_ | (~darjeelin@112.16.171.8) (Ping timeout: 240 seconds) |
2020-11-29 08:20:24 +0100 | jsomedon | (~jsomedon@111.197.236.178) |
2020-11-29 08:20:52 +0100 | <iqubic> | Actually, that the wrong question. The question should be: does this now work with the latest servant API, to which the answer is "Yes" |
2020-11-29 08:21:12 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:8105:569c:1b26:2c3d) (Ping timeout: 260 seconds) |
2020-11-29 08:21:34 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:4922:8a11:2fad:afb4) |
2020-11-29 08:23:07 +0100 | jsomedon | (~jsomedon@111.197.236.178) (Client Quit) |
2020-11-29 08:23:10 +0100 | hidedagger | (~nate@unaffiliated/hidedagger) (Quit: WeeChat 2.9) |
2020-11-29 08:23:19 +0100 | <jle`> | hooray :D |
2020-11-29 08:24:16 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 240 seconds) |
2020-11-29 08:24:18 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 08:24:33 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) |
2020-11-29 08:24:35 +0100 | bitmagie | (~Thunderbi@200116b806516200c8ecaee7ade9dd01.dip.versatel-1u1.de) (Quit: bitmagie) |
2020-11-29 08:25:22 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2020-11-29 08:25:27 +0100 | alp | (~alp@2a01:e0a:58b:4920:c928:701f:1376:41b8) |
2020-11-29 08:26:37 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 08:27:03 +0100 | electricityZZZZ | (~electrici@108-216-157-17.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 08:30:58 +0100 | <iqubic> | I don't actually know if it works. I haven't tested it. I'm just going by what your commit messages say. I trust you to have tested the thing before releasing it. |
2020-11-29 08:31:54 +0100 | petersen | (~petersen@redhat/juhp) |
2020-11-29 08:32:03 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2020-11-29 08:32:06 +0100 | Digit | (~user@fsf/member/digit) |
2020-11-29 08:35:19 +0100 | danvet | (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
2020-11-29 08:36:43 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
2020-11-29 08:37:31 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-29 08:38:33 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-29 08:39:39 +0100 | christo | (~chris@81.96.113.213) |
2020-11-29 08:40:54 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection) |
2020-11-29 08:41:37 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) (Ping timeout: 264 seconds) |
2020-11-29 08:42:34 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-29 08:44:17 +0100 | johnw | (~johnw@haskell/developer/johnw) |
2020-11-29 08:48:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 08:48:43 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-29 08:49:43 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2020-11-29 08:53:18 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
2020-11-29 08:59:16 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
2020-11-29 09:00:16 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-11-29 09:01:01 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-29 09:01:16 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-11-29 09:01:32 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-29 09:01:37 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
2020-11-29 09:02:17 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
2020-11-29 09:03:47 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-29 09:05:39 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-29 09:06:34 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-29 09:07:03 +0100 | alp | (~alp@2a01:e0a:58b:4920:c928:701f:1376:41b8) (Ping timeout: 272 seconds) |
2020-11-29 09:07:12 +0100 | nek0 | (~nek0@mail.nek0.eu) |
2020-11-29 09:07:39 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Max SendQ exceeded) |
2020-11-29 09:08:11 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-29 09:08:57 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 272 seconds) |
2020-11-29 09:09:13 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 264 seconds) |
2020-11-29 09:12:03 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-29 09:12:22 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 09:13:03 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) |
2020-11-29 09:16:58 +0100 | christo | (~chris@81.96.113.213) |
2020-11-29 09:17:37 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 264 seconds) |
2020-11-29 09:22:25 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-29 09:28:35 +0100 | Amras | (~Amras@unaffiliated/amras) (Ping timeout: 272 seconds) |
2020-11-29 09:29:51 +0100 | Amras | (~Amras@unaffiliated/amras) |
2020-11-29 09:32:01 +0100 | Lord_of_Life | (~Lord@46.217.217.219) (Changing host) |
2020-11-29 09:32:01 +0100 | Lord_of_Life | (~Lord@unaffiliated/lord-of-life/x-0885362) |
2020-11-29 09:39:26 +0100 | asheshambasta | (~user@ptr-e1lysauiv50il654lwl.18120a2.ip6.access.telenet.be) |
2020-11-29 09:40:48 +0100 | raichoo | (~raichoo@dslb-092-073-220-084.092.073.pools.vodafone-ip.de) |
2020-11-29 09:41:15 +0100 | oxide | (~lambda@unaffiliated/mclaren) (Ping timeout: 260 seconds) |
2020-11-29 09:41:36 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-29 09:41:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 09:42:25 +0100 | alp | (~alp@2a01:e0a:58b:4920:449d:95d8:faaa:919f) |
2020-11-29 09:43:43 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds) |
2020-11-29 09:45:01 +0100 | aarvar | (~foewfoiew@50.35.43.33) (Ping timeout: 246 seconds) |
2020-11-29 09:45:26 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2020-11-29 09:47:20 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-29 09:56:02 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-29 09:57:41 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-29 09:58:03 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Ping timeout: 260 seconds) |
2020-11-29 10:00:13 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
2020-11-29 10:00:25 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds) |
2020-11-29 10:01:05 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-jxbrpiggxmywaele) (Quit: Connection closed for inactivity) |
2020-11-29 10:08:21 +0100 | hackage | ede 0.3.0.0 - Templating language with similar syntax and features to Liquid or Jinja2. https://hackage.haskell.org/package/ede-0.3.0.0 (BrendanHay) |
2020-11-29 10:14:03 +0100 | shangxiao | (~davids@101.181.159.140) |
2020-11-29 10:19:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 10:21:42 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:9156:94db:6381:b8e1:921c) |
2020-11-29 10:24:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-29 10:26:23 +0100 | livvy_ | (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
2020-11-29 10:27:13 +0100 | toorevitimirp | (~tooreviti@117.182.183.16) |
2020-11-29 10:27:50 +0100 | raichoo | (~raichoo@dslb-092-073-220-084.092.073.pools.vodafone-ip.de) (Quit: Lost terminal) |
2020-11-29 10:28:46 +0100 | em1n | (~user@2401:4900:33a0:9423:35c5:7032:f69d:635c) |
2020-11-29 10:29:00 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-29 10:30:40 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) |
2020-11-29 10:31:09 +0100 | ddere | (uid110888@gateway/web/irccloud.com/x-ummpgtznmkpsetvj) |
2020-11-29 10:33:56 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) (Ping timeout: 265 seconds) |
2020-11-29 10:34:03 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) |
2020-11-29 10:35:11 +0100 | knupfer | (~Thunderbi@200116b82c7f88004886d9fffe889d05.dip.versatel-1u1.de) |
2020-11-29 10:35:13 +0100 | knupfer | (~Thunderbi@200116b82c7f88004886d9fffe889d05.dip.versatel-1u1.de) (Client Quit) |
2020-11-29 10:35:28 +0100 | knupfer | (~Thunderbi@i5E86B463.versanet.de) |
2020-11-29 10:36:38 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-jbnazvtdsyymenum) (Quit: Connection closed for inactivity) |
2020-11-29 10:37:59 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
2020-11-29 10:39:05 +0100 | asheshambasta | (~user@ptr-e1lysauiv50il654lwl.18120a2.ip6.access.telenet.be) ("ERC (IRC client for Emacs 28.0.50)") |
2020-11-29 10:40:05 +0100 | drbean | (~drbean@TC210-63-209-156.static.apol.com.tw) (Ping timeout: 240 seconds) |
2020-11-29 10:41:24 +0100 | em1n | (~user@2401:4900:33a0:9423:35c5:7032:f69d:635c) (Ping timeout: 240 seconds) |
2020-11-29 10:45:08 +0100 | notzmv | (~user@unaffiliated/zmv) (Ping timeout: 256 seconds) |
2020-11-29 10:46:12 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
2020-11-29 10:47:07 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) |
2020-11-29 10:47:25 +0100 | mbomba | (~mbomba@bras-base-toroon2719w-grc-49-142-114-9-241.dsl.bell.ca) (Client Quit) |
2020-11-29 10:47:34 +0100 | notzmv | (~user@unaffiliated/zmv) |
2020-11-29 10:49:44 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Quit: WeeChat 2.9) |
2020-11-29 10:49:59 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) |
2020-11-29 10:50:04 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-29 10:50:28 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Ping timeout: 246 seconds) |
2020-11-29 10:55:12 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 11:00:21 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Quit: WeeChat 3.0) |
2020-11-29 11:00:38 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) |
2020-11-29 11:01:03 +0100 | rprije | (~rprije@14-202-129-120.static.tpgi.com.au) |
2020-11-29 11:04:29 +0100 | Rudd0 | (~Rudd0@185.189.115.108) |
2020-11-29 11:05:05 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) |
2020-11-29 11:14:21 +0100 | alp | (~alp@2a01:e0a:58b:4920:449d:95d8:faaa:919f) (Ping timeout: 272 seconds) |
2020-11-29 11:14:21 +0100 | hackage | implicit-hie 0.1.2.5 - Auto generate hie-bios cradles & hie.yaml https://hackage.haskell.org/package/implicit-hie-0.1.2.5 (Avi_Dessauer) |
2020-11-29 11:15:44 +0100 | miuchan | (2d880087@45.136.0.135) (Remote host closed the connection) |
2020-11-29 11:16:12 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff597d005cd8d9846e4e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-29 11:18:39 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Quit: mputz) |
2020-11-29 11:20:26 +0100 | hackplan | (~miuchan@2408:8221:4b1e:80d0:8041:ecd2:ffb8:82bc) (Ping timeout: 264 seconds) |
2020-11-29 11:21:34 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-29 11:22:59 +0100 | marek | (~mmahut@209.250.249.245) (Ping timeout: 260 seconds) |
2020-11-29 11:23:26 +0100 | marek | (~mmahut@209.250.249.245) |
2020-11-29 11:23:43 +0100 | hackplan | (~miuchan@2408:8221:4b1e:80d0:8041:ecd2:ffb8:82bc) |
2020-11-29 11:29:08 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Quit: WeeChat 3.0) |
2020-11-29 11:29:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2020-11-29 11:29:24 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) |
2020-11-29 11:29:35 +0100 | Varis | (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
2020-11-29 11:33:01 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) (Remote host closed the connection) |
2020-11-29 11:33:31 +0100 | tomboy64 | (~tomboy64@gateway/tor-sasl/tomboy64) |
2020-11-29 11:34:03 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-29 11:36:38 +0100 | hexfive | (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.) |
2020-11-29 11:36:52 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 11:36:54 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 11:38:00 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-29 11:43:39 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
2020-11-29 11:44:27 +0100 | fendor | (~fendor@178.115.128.128.wireless.dyn.drei.com) |
2020-11-29 11:45:46 +0100 | alp | (~alp@2a01:e0a:58b:4920:89fd:4813:7f86:5e18) |
2020-11-29 11:47:43 +0100 | vg | (~vg@139.59.59.230) (Ping timeout: 260 seconds) |
2020-11-29 11:55:19 +0100 | adm | (~adm@117.223.63.167) (Remote host closed the connection) |
2020-11-29 11:55:26 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-29 11:56:39 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 11:59:01 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) |
2020-11-29 11:59:29 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-11-29 11:59:35 +0100 | joaj | (~joaj@2001:818:e326:8200:5273:55b7:3a86:e6ca) |
2020-11-29 12:01:20 +0100 | adm | (~adm@117.223.63.167) (Ping timeout: 272 seconds) |
2020-11-29 12:03:04 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:9156:94db:6381:b8e1:921c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-29 12:03:16 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-29 12:04:21 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 12:07:02 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 272 seconds) |
2020-11-29 12:09:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-29 12:09:51 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-29 12:10:05 +0100 | alp | (~alp@2a01:e0a:58b:4920:89fd:4813:7f86:5e18) (Ping timeout: 272 seconds) |
2020-11-29 12:10:45 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) |
2020-11-29 12:14:03 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2020-11-29 12:15:14 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 256 seconds) |
2020-11-29 12:15:46 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-29 12:21:25 +0100 | marek | (~mmahut@209.250.249.245) (Ping timeout: 240 seconds) |
2020-11-29 12:21:29 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Ping timeout: 272 seconds) |
2020-11-29 12:21:37 +0100 | marek | (~mmahut@209.250.249.245) |
2020-11-29 12:25:20 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) |
2020-11-29 12:26:04 +0100 | hackplan | (~miuchan@2408:8221:4b1e:80d0:8041:ecd2:ffb8:82bc) (Ping timeout: 240 seconds) |
2020-11-29 12:26:40 +0100 | tolt | (~weechat-h@li219-154.members.linode.com) (Quit: WeeChat 2.9) |
2020-11-29 12:26:50 +0100 | alp | (~alp@2a01:e0a:58b:4920:e556:aa6f:40c2:461e) |
2020-11-29 12:26:58 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-29 12:30:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 12:30:36 +0100 | tolt | (~weechat-h@li219-154.members.linode.com) |
2020-11-29 12:31:50 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
2020-11-29 12:33:36 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 240 seconds) |
2020-11-29 12:35:48 +0100 | f-a | (~f-a@151.68.155.243) |
2020-11-29 12:37:16 +0100 | theorbtwo | (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) (Ping timeout: 256 seconds) |
2020-11-29 12:39:34 +0100 | joaoh82 | (~joaoh82@ip-213-127-88-241.ip.prioritytelecom.net) (Remote host closed the connection) |
2020-11-29 12:40:07 +0100 | joaoh82 | (~joaoh82@157-131-134-210.dedicated.static.sonic.net) |
2020-11-29 12:40:36 +0100 | phaul | (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds) |
2020-11-29 12:41:10 +0100 | hackplan | (~miuchan@2408:8221:4b1e:80d0:1c28:9d6f:fae6:d558) |
2020-11-29 12:41:48 +0100 | rprije | (~rprije@14-202-129-120.static.tpgi.com.au) (Ping timeout: 256 seconds) |
2020-11-29 12:42:02 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:9156:94db:6381:b8e1:921c) |
2020-11-29 12:43:26 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-11-29 12:43:43 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds) |
2020-11-29 12:44:39 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 260 seconds) |
2020-11-29 12:45:25 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2020-11-29 12:45:44 +0100 | phaul | (~phaul@ruby/staff/phaul) |
2020-11-29 12:45:47 +0100 | joaoh82 | (~joaoh82@157-131-134-210.dedicated.static.sonic.net) () |
2020-11-29 12:45:57 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-29 12:45:59 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2020-11-29 12:46:33 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) |
2020-11-29 12:46:36 +0100 | sh91 | (~sh9@softbank060116136158.bbtec.net) |
2020-11-29 12:46:46 +0100 | vg_ | (~vg@139.59.59.230) |
2020-11-29 12:46:52 +0100 | vg_ | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-29 12:47:01 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 246 seconds) |
2020-11-29 12:47:16 +0100 | vg_ | (~vg@139.59.59.230) |
2020-11-29 12:47:25 +0100 | sh9 | (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 240 seconds) |
2020-11-29 12:48:54 +0100 | vg_ | (~vg@139.59.59.230) (Client Quit) |
2020-11-29 12:52:31 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 272 seconds) |
2020-11-29 12:54:46 +0100 | __monty__ | (~toonn@unaffiliated/toonn) |
2020-11-29 12:54:51 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-29 12:56:15 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-29 12:56:56 +0100 | petersen | (~petersen@redhat/juhp) |
2020-11-29 13:00:12 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 13:04:11 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Quit: Leaving) |
2020-11-29 13:04:36 +0100 | adm | (~adm@117.223.63.167) (Ping timeout: 240 seconds) |
2020-11-29 13:05:03 +0100 | JJ15 | (~JJ@94.197.17.236.threembb.co.uk) |
2020-11-29 13:05:11 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) (Ping timeout: 260 seconds) |
2020-11-29 13:05:18 +0100 | olligobber | (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds) |
2020-11-29 13:05:25 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-29 13:06:10 +0100 | Iolen | (~Iolen@82.131.38.59.cable.starman.ee) |
2020-11-29 13:07:04 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) |
2020-11-29 13:07:15 +0100 | <Iolen> | ░▓░▓░▓░▓░▓░▓░▓░▓░▓░ Hello ..... ░▓░▓░▓░▓░▓░▓░▓░▓░▓░ |
2020-11-29 13:07:40 +0100 | lpy | (~nyd@unaffiliated/elysian) (Quit: lpy) |
2020-11-29 13:08:13 +0100 | muzzle | (~user@2001:a62:1506:3101:844e:2920:a6de:5dd4) |
2020-11-29 13:10:43 +0100 | muzzle | (~user@2001:a62:1506:3101:844e:2920:a6de:5dd4) (Remote host closed the connection) |
2020-11-29 13:10:47 +0100 | vg_ | (~vg@139.59.59.230) |
2020-11-29 13:10:49 +0100 | vg_ | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-29 13:11:32 +0100 | pavonia | (~user@unaffiliated/siracusa) |
2020-11-29 13:12:38 +0100 | <Iolen> | ░▓░▓░▓░▓░▓░▓░▓░▓░▓░ Everyone invited to new chat place at: http://iaaaaa.mywebcommunity.org/ |
2020-11-29 13:12:38 +0100 | <Iolen> | Thank You for attention ! ░▓░▓░▓░▓░▓░▓░▓░▓░▓░ |
2020-11-29 13:14:07 +0100 | <__monty__> | ,where mods |
2020-11-29 13:14:54 +0100 | <__monty__> | @ops |
2020-11-29 13:14:54 +0100 | <lambdabot> | Maybe you meant: pl oeis docs |
2020-11-29 13:15:31 +0100 | <__monty__> | Anyone remember the correct command? |
2020-11-29 13:15:34 +0100 | <__monty__> | @where ops |
2020-11-29 13:15:34 +0100 | <lambdabot> | byorgey Cale conal copumpkin dcoutts dibblego dolio edwardk geekosaur glguy jmcarthur johnw mniip monochrom quicksilver shachaf shapr ski |
2020-11-29 13:15:42 +0100 | <__monty__> | Success \o/ |
2020-11-29 13:15:49 +0100 | <siraben> | it's a bot, spammed multiple channels |
2020-11-29 13:16:06 +0100 | <f-a> | yup, multiple people reporting on #freenode |
2020-11-29 13:16:30 +0100 | <dcoutts> | hmm, I don't seem to have my op rights |
2020-11-29 13:16:55 +0100 | Ariakenom | (~Ariakenom@h-98-128-229-104.NA.cust.bahnhof.se) |
2020-11-29 13:17:45 +0100 | <__monty__> | dcoutts: You can always have chanserv op you if you have the correct flags. |
2020-11-29 13:19:12 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-29 13:21:03 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 260 seconds) |
2020-11-29 13:23:46 +0100 | petersen | (~petersen@redhat/juhp) |
2020-11-29 13:24:10 +0100 | m0rphism | (~m0rphism@HSI-KBW-095-208-098-207.hsi5.kabel-badenwuerttemberg.de) |
2020-11-29 13:24:48 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 13:26:05 +0100 | awk | (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds) |
2020-11-29 13:26:06 +0100 | drbean | (~drbean@TC210-63-209-81.static.apol.com.tw) |
2020-11-29 13:27:08 +0100 | dcoutts | (~duncan@33.14.75.194.dyn.plus.net) (Quit: Leaving) |
2020-11-29 13:27:23 +0100 | dcoutts | (~dcoutts@33.14.75.194.dyn.plus.net) |
2020-11-29 13:27:23 +0100 | dcoutts | (~dcoutts@33.14.75.194.dyn.plus.net) (Changing host) |
2020-11-29 13:27:23 +0100 | dcoutts | (~dcoutts@unaffiliated/dcoutts) |
2020-11-29 13:27:50 +0100 | ChanServ | +o dcoutts |
2020-11-29 13:27:54 +0100 | <dcoutts> | yay |
2020-11-29 13:28:04 +0100 | Iolen | dcouttsIolen |
2020-11-29 13:28:08 +0100 | ChanServ | -o dcoutts |
2020-11-29 13:30:20 +0100 | ggole | (~ggole@2001:8003:8119:7200:69c3:3fe:81:8dbf) |
2020-11-29 13:33:45 +0100 | jzl | (~jzl@unaffiliated/jzl) (Remote host closed the connection) |
2020-11-29 13:33:56 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 240 seconds) |
2020-11-29 13:34:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-11-29 13:36:52 +0100 | hackage | ede 0.3.1.0 - Templating language with similar syntax and features to Liquid or Jinja2. https://hackage.haskell.org/package/ede-0.3.1.0 (BrendanHay) |
2020-11-29 13:39:50 +0100 | DirefulSalt | (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Remote host closed the connection) |
2020-11-29 13:40:05 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) |
2020-11-29 13:40:22 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-11-29 13:42:33 +0100 | alp | (~alp@2a01:e0a:58b:4920:e556:aa6f:40c2:461e) (Ping timeout: 272 seconds) |
2020-11-29 13:49:25 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) |
2020-11-29 13:49:59 +0100 | <avdb> | Am I allowed to ask people to make my spaghetti code better? I wrote a small program but there's a lot of repetition and I don't know how to make it shorter ... |
2020-11-29 13:50:27 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) (Ping timeout: 260 seconds) |
2020-11-29 13:51:07 +0100 | <f-a> | avdb: sure, but maybe run hlint first |
2020-11-29 13:51:31 +0100 | <avdb> | I use ALE but it doesn't detect anything |
2020-11-29 13:51:34 +0100 | <avdb> | http://codepad.org/nIz9DRYA |
2020-11-29 13:51:56 +0100 | <avdb> | ALE is a collection of linters including hlint right? |
2020-11-29 13:52:39 +0100 | <f-a> | no idea what ALE is to be honest |
2020-11-29 13:53:04 +0100 | <avdb> | https://github.com/dense-analysis/ale |
2020-11-29 13:53:53 +0100 | contiver | (~contiver@84-115-65-38.wifi.dynamic.surfer.at) |
2020-11-29 13:54:12 +0100 | <f-a> | ok |
2020-11-29 13:54:30 +0100 | <f-a> | instead of guards, why not pattern match? |
2020-11-29 13:54:34 +0100 | iqubic` | (~user@2601:602:9500:4870:ed6c:ae7b:1487:9d5a) |
2020-11-29 13:54:58 +0100 | <f-a> | also is `seconds` really a parameter? |
2020-11-29 13:54:58 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-29 13:55:12 +0100 | <f-a> | *really needed |
2020-11-29 13:55:16 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 13:55:18 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-29 13:55:35 +0100 | <avdb> | It's indeed probably possible to make it point-free |
2020-11-29 13:55:51 +0100 | <avdb> | Can I add the numbers to the data types instead of the function? |
2020-11-29 13:56:10 +0100 | <f-a> | of course |
2020-11-29 13:56:40 +0100 | <avdb> | Wasn't sure if pattern matching would work, just `ageOn Mars = undefined`? |
2020-11-29 13:56:56 +0100 | <avdb> | If I do that I'm still writing out the function multiple times |
2020-11-29 13:57:04 +0100 | <f-a> | data Plantet = PlanetTag Float and data PlanetTag = Mars | … |
2020-11-29 13:57:33 +0100 | <f-a> | pattern matching would work, yeah |
2020-11-29 13:57:41 +0100 | <avdb> | Wait let me first fix the pattern matching |
2020-11-29 13:58:01 +0100 | <f-a> | what does ageOn computes, exactly? |
2020-11-29 13:58:50 +0100 | iqubic | (~user@2601:602:9500:4870:71ac:d28d:5123:4cbd) (Ping timeout: 264 seconds) |
2020-11-29 13:59:05 +0100 | <f-a> | (to rephrase, why `ageOn :: Planet -> Float -> Float` instead of `ageOn :: Planet -> Float`) |
2020-11-29 14:01:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 14:05:32 +0100 | <avdb> | "Given an age in seconds, calculate how old someone would be on the following planets" |
2020-11-29 14:05:58 +0100 | <f-a> | oh, now I see |
2020-11-29 14:06:02 +0100 | <avdb> | No idea, I'm on Exercism and they recommended to use "ageOn :: Planet -> Float -> Float" |
2020-11-29 14:06:14 +0100 | <f-a> | ok |
2020-11-29 14:06:23 +0100 | <avdb> | You need to first calculate someone's age on earth and convert it to the other planets if necessary |
2020-11-29 14:07:03 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) |
2020-11-29 14:07:09 +0100 | <f-a> | I would probably write |
2020-11-29 14:07:28 +0100 | <f-a> | where earthAge = seconds * 3155760 |
2020-11-29 14:07:44 +0100 | <f-a> | and put `earthAge` in planet == Earth = earthAge rather |
2020-11-29 14:08:20 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 14:08:27 +0100 | <avdb> | I can't make it point-free by the way |
2020-11-29 14:08:30 +0100 | <avdb> | I don't know why |
2020-11-29 14:08:34 +0100 | <avdb> | This is what I currently have |
2020-11-29 14:08:37 +0100 | awk | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2020-11-29 14:08:39 +0100 | <f-a> | do you *need* to make it pointfree? |
2020-11-29 14:08:59 +0100 | <avdb> | http://codepad.org/OTevDnrJ |
2020-11-29 14:09:10 +0100 | <avdb> | I don't need to I just want it to be shorter |
2020-11-29 14:09:17 +0100 | contiver | (~contiver@84-115-65-38.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds) |
2020-11-29 14:10:02 +0100 | <avdb> | Do where bindings work with pattern matching? |
2020-11-29 14:10:48 +0100 | <f-a> | why `(*) 0.2408467 $ ageOn Earth` |
2020-11-29 14:11:00 +0100 | <f-a> | instead of `0.24 * ageOn Earth`? |
2020-11-29 14:11:44 +0100 | <f-a> | and no, where spans over guards but not patterns. But you can be crafty like this |
2020-11-29 14:12:06 +0100 | <avdb> | So I can't pattern match anymore? |
2020-11-29 14:12:16 +0100 | <avdb> | If I use where |
2020-11-29 14:12:16 +0100 | <f-a> | you can with a case … of |
2020-11-29 14:12:18 +0100 | <f-a> | one second |
2020-11-29 14:14:13 +0100 | <f-a> | http://www.ariis.it/link/t/paste21061-0 there, something like this |
2020-11-29 14:14:28 +0100 | <f-a> | emh, bar the typos |
2020-11-29 14:14:47 +0100 | alp | (~alp@2a01:e0a:58b:4920:3b:6ea2:53ef:78a2) |
2020-11-29 14:15:47 +0100 | andyrtr1 | (~andyrtr@195.140.213.38) (Remote host closed the connection) |
2020-11-29 14:16:21 +0100 | <avdb> | Is that the *best* possible solution? |
2020-11-29 14:17:39 +0100 | <f-a> | it is clear, it is not redundant. You *have* to write those 84.016846 numbers down somewhere in your program, whether inside a function or in a helper function or in a datatype |
2020-11-29 14:18:03 +0100 | <avdb> | There is improvement so I will stick with your solution, in real projects it's probably better to work with a database for such stuff |
2020-11-29 14:18:07 +0100 | <avdb> | Right? |
2020-11-29 14:18:40 +0100 | <f-a> | you can have an helper function like |
2020-11-29 14:18:40 +0100 | delbmuts_ | (52874ce6@ppp-82-135-76-230.dynamic.mnet-online.de) |
2020-11-29 14:18:41 +0100 | <f-a> | factor :: Planet -> Float |
2020-11-29 14:18:41 +0100 | <f-a> | factor Mercury = 13 |
2020-11-29 14:18:44 +0100 | <f-a> | ⁝ |
2020-11-29 14:19:21 +0100 | <f-a> | and then ageOn becomes |
2020-11-29 14:19:22 +0100 | <f-a> | ageOn p a = let ageEarth = a * 2 in ageEarth * factor p |
2020-11-29 14:19:24 +0100 | <avdb> | You mean to make it easier to separate data from the function? |
2020-11-29 14:19:43 +0100 | <avdb> | That's even better imo |
2020-11-29 14:19:57 +0100 | <f-a> | or even use an assoc list. My point is, *somewhere* the data has to be written |
2020-11-29 14:20:04 +0100 | <avdb> | assoc? |
2020-11-29 14:20:07 +0100 | <avdb> | Never heard of that before |
2020-11-29 14:20:16 +0100 | <f-a> | sorry, it is just a |
2020-11-29 14:20:30 +0100 | <f-a> | [(Pluto, 18), (Earth, 1) …] list |
2020-11-29 14:20:49 +0100 | ddere | (uid110888@gateway/web/irccloud.com/x-ummpgtznmkpsetvj) (Quit: Connection closed for inactivity) |
2020-11-29 14:20:53 +0100 | <avdb> | Oh yea exactly what I first thought when I started the exercise, it's just that I'm bad with ADT :P |
2020-11-29 14:21:09 +0100 | <f-a> | but it was just a thought, the helper function is better (GHC can warn you if you miss a constructor, etc.) |
2020-11-29 14:21:53 +0100 | <f-a> | just relax and remember that one of the strong points of Haskell is easy refactoring |
2020-11-29 14:22:14 +0100 | <f-a> | if you come up later with a more elegant solution, you can refactor easily thanks to types, inference |
2020-11-29 14:23:43 +0100 | alp | (~alp@2a01:e0a:58b:4920:3b:6ea2:53ef:78a2) (Ping timeout: 272 seconds) |
2020-11-29 14:24:14 +0100 | f-a_ | (~f-a@151.82.219.112) |
2020-11-29 14:26:01 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@2403:6200:8876:9156:94db:6381:b8e1:921c) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-29 14:26:16 +0100 | f-a | (~f-a@151.68.155.243) (Ping timeout: 240 seconds) |
2020-11-29 14:26:28 +0100 | f-a_ | (~f-a@151.82.219.112) (Client Quit) |
2020-11-29 14:28:07 +0100 | christo | (~chris@81.96.113.213) |
2020-11-29 14:30:24 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) |
2020-11-29 14:30:25 +0100 | <avdb> | Alright, I just used a factor helper function and it looks much better now since it's a one line function |
2020-11-29 14:30:56 +0100 | <avdb> | I installed GHC and Cabal with ghcup, any idea how I can install Stack? |
2020-11-29 14:30:56 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) (Read error: Connection reset by peer) |
2020-11-29 14:31:18 +0100 | gentauro | (~gentauro@unaffiliated/gentauro) |
2020-11-29 14:31:37 +0100 | <Sose> | avdb: I've installed ghc and cabal with ghcup and just used Stack's own install script for Stack and everything seems to work fine |
2020-11-29 14:33:42 +0100 | zaquest | (~notzaques@5.128.210.178) (Read error: Connection reset by peer) |
2020-11-29 14:33:43 +0100 | <avdb> | Sose: Thanks, but can Stack update itself?> |
2020-11-29 14:33:56 +0100 | awk | (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 240 seconds) |
2020-11-29 14:34:02 +0100 | urodna | (~urodna@unaffiliated/urodna) |
2020-11-29 14:34:15 +0100 | zaquest | (~notzaques@5.128.210.178) |
2020-11-29 14:34:16 +0100 | <Sose> | I think it can with `stack upgrade` |
2020-11-29 14:34:35 +0100 | <Sose> | pretty new to haskell myself and I just installed everything recently so I haven't had the need to upgrade much :) |
2020-11-29 14:34:35 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-29 14:35:03 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 14:35:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-11-29 14:38:47 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 14:42:08 +0100 | drbean | (~drbean@TC210-63-209-81.static.apol.com.tw) (Ping timeout: 260 seconds) |
2020-11-29 14:42:37 +0100 | z0k | (~user@101.50.127.33) (Quit: WeeChat 3.0) |
2020-11-29 14:44:53 +0100 | HarveyPwca | (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) (Quit: Leaving) |
2020-11-29 14:46:53 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Quit: rcdilorenzo) |
2020-11-29 14:47:01 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 14:47:09 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
2020-11-29 14:47:13 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-29 14:47:28 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 14:47:30 +0100 | urek | (~urek@2804:7f1:e10a:5ac1:558c:16f8:858a:ffa6) |
2020-11-29 14:49:50 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-29 14:51:24 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) (Client Quit) |
2020-11-29 14:51:40 +0100 | rcdilorenzo | (~rcdiloren@cpe-76-182-87-188.nc.res.rr.com) |
2020-11-29 14:52:22 +0100 | <delbmuts_> | Hi again, is there a function "Reader Int a -> (ResourceT IO) a"? I'd like to get rid of the "undefined" in https://paste.debian.net/hidden/2b257950 but don't know how. Thanks. |
2020-11-29 14:54:05 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) (Ping timeout: 240 seconds) |
2020-11-29 14:56:48 +0100 | <frdg> | `toHtml :: blaze-markup-0.8.2.5:Text.Blaze.ToMarkup a => a -> Html` What is the best way to go about finding a type that satisfies this constraint? Is there something like `:type` in ghci where I can enter a constraint and get back Types that satisfy it? |
2020-11-29 14:57:14 +0100 | <dminuoso> | delbmuts_: That looks like a strange thing to do. |
2020-11-29 14:57:25 +0100 | <dminuoso> | delbmuts_: What's the intention? |
2020-11-29 14:57:47 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-29 14:58:14 +0100 | <ski> | delbmuts_> :t transPipe |
2020-11-29 14:58:34 +0100 | <dminuoso> | Also, your binding `server = ws` shouldn't check, right? |
2020-11-29 14:59:10 +0100 | christo | (~chris@81.96.113.213) |
2020-11-29 14:59:52 +0100 | <delbmuts_> | dminuoso: I'd like to access my custom servant `State` in the WebSocket function. |
2020-11-29 15:00:20 +0100 | <dminuoso> | so far so good. |
2020-11-29 15:00:21 +0100 | <delbmuts_> | dminuoso: AFAICT ghc isn't complaining. |
2020-11-29 15:01:10 +0100 | <dminuoso> | ah hold on, ServerT is a tyfam right |
2020-11-29 15:03:12 +0100 | <dminuoso> | type ServerT (WebSocketConduit i o) m = ConduitT i o (ResourceT IO) () |
2020-11-29 15:03:14 +0100 | <dminuoso> | I see |
2020-11-29 15:03:16 +0100 | <delbmuts_> | ski: transPipe :: Monad m => (forall a. m a -> n a) -> ConduitT i o m r -> ConduitT i o n r -- https://hackage.haskell.org/package/conduit-1.3.4/docs/Data-Conduit.html#v:transPipe |
2020-11-29 15:03:27 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 15:05:54 +0100 | Deide | (~Deide@217.155.19.23) |
2020-11-29 15:06:36 +0100 | <delbmuts_> | The fact that `m` does not appear on the right side bugs me a little. |
2020-11-29 15:06:45 +0100 | <dminuoso> | delbmuts_: Why not just add ResourceT to your AppM? |
2020-11-29 15:06:59 +0100 | <dminuoso> | Then you can just use transPipe the same way as hoistServer |
2020-11-29 15:08:10 +0100 | <delbmuts_> | Around or inside the ReaderT? (Would that matter?) I think I tried it, but I'll try again. :) |
2020-11-29 15:08:18 +0100 | <dminuoso> | I guess your main mistake is presuming that there's no ResourceT in your version of conduit |
2020-11-29 15:08:22 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) |
2020-11-29 15:08:57 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2020-11-29 15:08:57 +0100 | <dminuoso> | (I mean it seems like you're trying to throw away your MonadResource interface for no good reason) |
2020-11-29 15:09:24 +0100 | <dminuoso> | Well, so servant-websockets assumes your monad to be |
2020-11-29 15:09:28 +0100 | <dminuoso> | ConduitT i o (ResourceT IO) () |
2020-11-29 15:10:02 +0100 | <dminuoso> | You get to provide a natural transformation `m ~> n`, with n ~ ResourceT IO, so it must be: |
2020-11-29 15:10:10 +0100 | <dminuoso> | m ~> ResourceT IO |
2020-11-29 15:10:12 +0100 | <dminuoso> | If you had |
2020-11-29 15:10:37 +0100 | <dminuoso> | yourPipe :: ReaderT State (ResourceT IO) () |
2020-11-29 15:11:12 +0100 | <dminuoso> | Then you could trivially write `ReaderT State (ResourceT IO) ~> ResourceT IO` with just `flip runReaderT ($)` |
2020-11-29 15:11:41 +0100 | Saukk | (~Saukk@2001:998:f9:2914:1c59:9bb5:b94c:4) (Remote host closed the connection) |
2020-11-29 15:12:20 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-29 15:12:29 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-29 15:12:57 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 15:13:00 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-29 15:13:01 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-29 15:14:13 +0100 | contiver | (~contiver@84-115-64-11.wifi.dynamic.surfer.at) |
2020-11-29 15:14:36 +0100 | <delbmuts_> | dminuoso: I'll need some time to digest that. Thank you! :) |
2020-11-29 15:15:20 +0100 | berberman | (~berberman@unaffiliated/berberman) |
2020-11-29 15:15:39 +0100 | berberman_ | (~berberman@unaffiliated/berberman) (Ping timeout: 272 seconds) |
2020-11-29 15:16:03 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Client Quit) |
2020-11-29 15:16:51 +0100 | hackage | hnix-store-core 0.3.0.0 - Core effects for interacting with the Nix store. https://hackage.haskell.org/package/hnix-store-core-0.3.0.0 (imalsogreg) |
2020-11-29 15:18:07 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 15:20:50 +0100 | <avdb> | Sorry if this is a stupid question, but what's the best resource to understand Monads? I read the Haskell Wiki article on how it works and checked Computerphile's video on it but I don't think I fully get it yet. |
2020-11-29 15:22:05 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2020-11-29 15:23:31 +0100 | AlterEgo- | (~ladew@124-198-158-163.dynamic.caiway.nl) (Ping timeout: 256 seconds) |
2020-11-29 15:23:44 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) |
2020-11-29 15:26:31 +0100 | <ski> | delbmuts_ : `transPipe trans' can't possibly work, with that signature of `trans' |
2020-11-29 15:27:08 +0100 | <[exa]> | avdb: you actually hit the most problematic problem of monads, explaining them is problematic. it's only going to be better now. :D |
2020-11-29 15:27:23 +0100 | <[exa]> | avdb: anyway, what did you try so far |
2020-11-29 15:27:25 +0100 | <ski> | oh, actually, it can .. sorry, i misread |
2020-11-29 15:27:51 +0100 | hackage | hnix-store-core 0.3.0.1 - Core effects for interacting with the Nix store. https://hackage.haskell.org/package/hnix-store-core-0.3.0.1 (imalsogreg) |
2020-11-29 15:28:10 +0100 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2020-11-29 15:30:22 +0100 | <[exa]> | avdb: one thing that helps (with practical intuition) is to checkout the "monad DSLs" like IO. Get how the `IO ()` in types work, try to explain the differences between say "map vs mapM" and "if vs when" etc, and looking how the thing is constructed from >>= and >> using the 'do' notation. |
2020-11-29 15:31:20 +0100 | hackage | hnix-store-remote 0.3.0.0 - Remote hnix store https://hackage.haskell.org/package/hnix-store-remote-0.3.0.0 (srk) |
2020-11-29 15:32:24 +0100 | <[exa]> | avdb: and then there's the technical path, going from Functor (and fmap) to Applicative (with pure + <*>), where the jump to Monad (with >>=) becomes quite natural |
2020-11-29 15:32:25 +0100 | awk | (~mnrmnaugh@unaffiliated/mnrmnaugh) |
2020-11-29 15:33:56 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) (Ping timeout: 240 seconds) |
2020-11-29 15:34:40 +0100 | <Sose> | avdb: I'm at the point where I'm starting to slowly "get them"... reading about monads didn't really help me at all in the beginning. it was doing exercises and writing functor/applicative/monad instances and using them that started the process of having some understanding of them. I don't know what's the general opinion on http://mightybyte.github.io/monad-challenges/ as a resource but I found it quite enlightening |
2020-11-29 15:34:40 +0100 | <Sose> | personally. no reading, just code exercises and some tips to guide you.. after doing those reading about monads makes more sense also |
2020-11-29 15:37:22 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 15:37:42 +0100 | wei2912 | (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
2020-11-29 15:38:15 +0100 | contiver | (~contiver@84-115-64-11.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds) |
2020-11-29 15:38:51 +0100 | ralu | (~ralu@static.211.245.203.116.clients.your-server.de) |
2020-11-29 15:39:18 +0100 | darjeeling_ | (~darjeelin@122.245.217.23) (Ping timeout: 260 seconds) |
2020-11-29 15:40:14 +0100 | Cotillion | (~Cotillion@185.163.110.116) |
2020-11-29 15:40:52 +0100 | <avdb> | [exa]: I found a blog that used pictures to explain Functors (Maybe, Just, Nothing, etc.) a while ago, but stopped because I thought they had nothing to do with monads |
2020-11-29 15:40:58 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 246 seconds) |
2020-11-29 15:41:26 +0100 | <avdb> | Sose: After that I tried a tutorial that constructed Monad but the code was outdated :( |
2020-11-29 15:42:13 +0100 | ambidextrose | (~fut-learn@mobile-166-171-122-170.mycingular.net) |
2020-11-29 15:42:58 +0100 | hpc | (~juzz@ip98-169-35-13.dc.dc.cox.net) |
2020-11-29 15:43:24 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) |
2020-11-29 15:43:38 +0100 | sondr3 | (~sondr3@cm-84.211.56.132.getinternet.no) |
2020-11-29 15:44:57 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-29 15:49:18 +0100 | <ambidextrose> | what's the best haskell book to read for someone who really does not understand all the type system notation? |
2020-11-29 15:50:12 +0100 | <avdb> | ambidextrose: I'm currently reading "Haskell: Programming from first principles" ... |
2020-11-29 15:50:40 +0100 | <avdb> | I tried "Real World Haskell" as well but it was a disaster since it throws you directly into the pool without warning |
2020-11-29 15:50:41 +0100 | <erisco> | if you literally just want to know about the notation there is the haskell report 2010 and the ghc user guide |
2020-11-29 15:50:44 +0100 | <ambidextrose> | avdb, i looked at that one, it seemed good |
2020-11-29 15:50:54 +0100 | <ambidextrose> | erisco, i might try those two |
2020-11-29 15:51:23 +0100 | geekosaur | (ae68c070@cpe-174-104-192-112.neo.res.rr.com) |
2020-11-29 15:52:38 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection) |
2020-11-29 15:52:41 +0100 | <sondr3> | We used Programming in Haskell for our FP course at Uni (https://www.cs.nott.ac.uk/~pszgmh/pih.html), and I really enjoyed it. One of my favorite programming books |
2020-11-29 15:52:57 +0100 | darjeeling_ | (~darjeelin@115.215.41.204) |
2020-11-29 15:52:58 +0100 | <ski> | PIH is often recommended/lauded in here |
2020-11-29 15:53:06 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-29 15:53:15 +0100 | <sondr3> | Short and to the point, builds up gradually and has tons of exercises that really help you grasp concepts |
2020-11-29 15:53:21 +0100 | <sondr3> | I can imagine :) |
2020-11-29 15:53:22 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 15:53:34 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-29 15:53:47 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 15:54:24 +0100 | <tomjaguarpaw> | Is there a version of trace that doesn't update its thunk once it is evaluated? I would like to use such a thing to probe properties of various containers. |
2020-11-29 15:55:04 +0100 | <avdb> | sondr3: Is that the university of Computerphile? |
2020-11-29 15:55:19 +0100 | <ambidextrose> | sondr3, i might look at that one too |
2020-11-29 15:55:36 +0100 | <Uniaika> | tomjaguarpaw: not that I know of |
2020-11-29 15:55:50 +0100 | <sondr3> | avdb: Yeah, the author of the book is in quite a few of their videos |
2020-11-29 15:56:00 +0100 | ambidextrose | wishes he'd done his research project in 2015 in haskell and not python |
2020-11-29 15:56:10 +0100 | <tomjaguarpaw> | ambidextrose: Don't we all? |
2020-11-29 15:56:41 +0100 | <ambidextrose> | i've been trying to learn haskell for 10 years just by reading other peoples' code from time to time and enough is enough. i've seen what the RTS can do, it's pretty insane |
2020-11-29 15:56:52 +0100 | <ambidextrose> | i'm going to stop writing in anything else |
2020-11-29 15:58:43 +0100 | <ambidextrose> | also decided to try switching to archlinux since my research system had a virus in systemd |
2020-11-29 15:59:10 +0100 | <sondr3> | That's a new one, fair warning; Haskell on Arch is somewhat painful |
2020-11-29 15:59:16 +0100 | <geekosaur> | arch + haskell = pain though; at least, avoid arch's haskell packages |
2020-11-29 15:59:21 +0100 | ziman | (~ziman@c25-5.condornet.sk) (Ping timeout: 272 seconds) |
2020-11-29 15:59:23 +0100 | <ambidextrose> | i think i'm going to switch to something that uses sysvinit... i can't understand the attitude of arch users |
2020-11-29 15:59:39 +0100 | <ambidextrose> | systemd is awful: every ubuntu i have has viruses in systemd |
2020-11-29 15:59:52 +0100 | JJ15 | (~JJ@94.197.17.236.threembb.co.uk) (Ping timeout: 246 seconds) |
2020-11-29 16:00:00 +0100 | <sondr3> | Void Linux was really nice when I used it but NixOS is awesome |
2020-11-29 16:00:17 +0100 | <ambidextrose> | everyone's using nix but tbh i think the idea skirts the real issue of package management and language design |
2020-11-29 16:00:49 +0100 | <ambidextrose> | something like hoogle/agda could be checking/proving/downloading types instead of cabal, hackage, or nix |
2020-11-29 16:01:01 +0100 | <ambidextrose> | the type system could do the work of package management |
2020-11-29 16:01:39 +0100 | <sondr3> | No idea how a type system would be able to do dependency resolution :P |
2020-11-29 16:02:25 +0100 | maerwald | (~maerwald@mail.hasufell.de) (Quit: gone) |
2020-11-29 16:04:19 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2020-11-29 16:04:34 +0100 | <sondr3> | Unrelatec, I'm parsing different kinds of numbers with megaparsec, is there a way to do this `(try (lexeme pComplex) <|> try (lexeme pRational) <|> try (lexeme pDouble) <|> try (lexeme integer)` with less repetition? |
2020-11-29 16:04:53 +0100 | knupfer | (~Thunderbi@i5E86B463.versanet.de) (Ping timeout: 256 seconds) |
2020-11-29 16:05:03 +0100 | maerwald | (~maerwald@5.45.98.221) |
2020-11-29 16:05:10 +0100 | <ambidextrose> | sondr3, the types are the dependencies |
2020-11-29 16:05:20 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) |
2020-11-29 16:06:06 +0100 | da39a3ee5e6b4b0d | (~da39a3ee5@171.5.161.165) (Client Quit) |
2020-11-29 16:06:18 +0100 | <xerox_> | :t asum |
2020-11-29 16:06:20 +0100 | <lambdabot> | (Foldable t, Alternative f) => t (f a) -> f a |
2020-11-29 16:07:21 +0100 | hackage | urbit-api 0.2.0.0 - Talk to Urbit from Haskell https://hackage.haskell.org/package/urbit-api-0.2.0.0 (bsima) |
2020-11-29 16:08:19 +0100 | <xerox_> | asum . map (try . lexeme) |
2020-11-29 16:08:34 +0100 | Entertainment | (~entertain@104.246.132.210) |
2020-11-29 16:08:52 +0100 | Chi1thangoo | (~Chi1thang@87.112.60.168) |
2020-11-29 16:11:05 +0100 | <sondr3> | xerox_: thanks, much better |
2020-11-29 16:11:19 +0100 | <xerox_> | 👍 |
2020-11-29 16:11:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2020-11-29 16:12:25 +0100 | adm | (~adm@117.223.63.167) (Remote host closed the connection) |
2020-11-29 16:14:19 +0100 | Entertainment | (~entertain@104.246.132.210) () |
2020-11-29 16:16:49 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 16:17:08 +0100 | ambidextrose | (~fut-learn@mobile-166-171-122-170.mycingular.net) (Quit: leaving) |
2020-11-29 16:18:13 +0100 | Wamanuz | (~wamanuz@78-70-34-81-no84.tbcn.telia.com) (Remote host closed the connection) |
2020-11-29 16:18:41 +0100 | <[exa]> | avdb: oh well, the functor hierarchy... technically "Functors" are kindof overloaded containers ("boxes") that have a clearly defined way of transforming the elements inside, with `fmap`. (e.g. list is a functor, using normal `map`). Then you add functionality -- Applicative allows you to reasonably merge a box of functions with a box of parameters (to get a box of results). Monads additionally allow |
2020-11-29 16:18:47 +0100 | <[exa]> | fusing boxes with functions that produce more boxes from their contents. Demonstration: |
2020-11-29 16:23:20 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-29 16:24:21 +0100 | petersen | (~petersen@redhat/juhp) (Ping timeout: 265 seconds) |
2020-11-29 16:24:57 +0100 | oats | grogu |
2020-11-29 16:25:48 +0100 | <[exa]> | (I'm writing a gist, decided that I'm telling this to so many people that gist shall help) |
2020-11-29 16:26:27 +0100 | <avdb> | How do I match calling a function without arguments with guards? |
2020-11-29 16:26:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 16:27:06 +0100 | <Rembane> | avdb: f | ... = ... |
2020-11-29 16:27:09 +0100 | <avdb> | i.e. if I have foobar x and somebody calls foobar without arguments I want to return something |
2020-11-29 16:27:16 +0100 | <Rembane> | avdb: foobar x | ... = ... |
2020-11-29 16:27:24 +0100 | urek__ | (~urek@2804:7f1:e10a:5ac1:8db3:3757:9c7d:4898) |
2020-11-29 16:27:26 +0100 | <Rembane> | avdb: Wait a minute, without arguments? |
2020-11-29 16:27:26 +0100 | <avdb> | Rembane: Three dots? |
2020-11-29 16:27:29 +0100 | <avdb> | Yes |
2020-11-29 16:27:36 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 240 seconds) |
2020-11-29 16:27:36 +0100 | <Rembane> | avdb: Why would they do that? And what's the type of x? |
2020-11-29 16:27:43 +0100 | <avdb> | [Char] |
2020-11-29 16:28:01 +0100 | <Rembane> | avdb: They can give you the empty string as argument. |
2020-11-29 16:28:08 +0100 | <avdb> | null x didn't work |
2020-11-29 16:28:22 +0100 | <Rembane> | avdb: foobar "" = error "You have given me the empty string." |
2020-11-29 16:28:33 +0100 | <avdb> | Oh wait I see why |
2020-11-29 16:28:36 +0100 | <avdb> | Nvm |
2020-11-29 16:28:40 +0100 | <Rembane> | No worries, good luck! |
2020-11-29 16:28:47 +0100 | <geekosaur> | avdb, you can't do that trivially. There's a typeclass hack that can sort of do it, but you're trying to defeat partial application which is deeply baked into Haskell |
2020-11-29 16:29:07 +0100 | urek | (~urek@2804:7f1:e10a:5ac1:558c:16f8:858a:ffa6) (Ping timeout: 272 seconds) |
2020-11-29 16:29:39 +0100 | <merijn> | hmm |
2020-11-29 16:29:52 +0100 | <merijn> | Publishing new docs to Hackage doesn't seem to override the current ones? |
2020-11-29 16:31:52 +0100 | grogu | oats |
2020-11-29 16:32:29 +0100 | contiver | (~contiver@84-115-64-36.wifi.dynamic.surfer.at) |
2020-11-29 16:33:58 +0100 | <erisco> | my string is empty; my stack has overflow'n; my core has been dumped |
2020-11-29 16:36:19 +0100 | <avdb> | geekosaur: Nevermind, the problem is with running last x on an empty list, is there a safer alternative function? |
2020-11-29 16:38:02 +0100 | <hpc> | not really - the best you can do is do something that doesn't require getting the last element of a list |
2020-11-29 16:38:28 +0100 | <hpc> | or write something that's [a] -> Maybe a |
2020-11-29 16:38:37 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
2020-11-29 16:38:54 +0100 | <hpc> | (and then still have to figure out what to do with Nothing) |
2020-11-29 16:42:36 +0100 | <avdb> | Sigh, fixed it by reordering the guards instead of making my fuctions safer. |
2020-11-29 16:42:55 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-29 16:43:07 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-29 16:43:22 +0100 | <erisco> | > let f = getLast . foldMap (Last . Just) in (f [1,2,3], f []) |
2020-11-29 16:43:25 +0100 | <lambdabot> | (Just 3,Nothing) |
2020-11-29 16:43:31 +0100 | <erisco> | I am sure there is some lens shenanigans |
2020-11-29 16:44:06 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-29 16:44:20 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 16:44:28 +0100 | <erisco> | avdb, imo that is the wrong kind of safeness |
2020-11-29 16:44:36 +0100 | vg | (~vg@139.59.59.230) (Remote host closed the connection) |
2020-11-29 16:44:50 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 16:44:52 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Quit: mputz) |
2020-11-29 16:45:10 +0100 | <erisco> | there is a sort of security safeness of what happens if there is a bug in the program |
2020-11-29 16:45:27 +0100 | <avdb> | erisco: Wdym? I'm currently trying to test my work with stack but every time I run "stack test" in a different folder it starts installing ghc-tinfo6 |
2020-11-29 16:45:30 +0100 | <erisco> | but that is already taken care of |
2020-11-29 16:46:02 +0100 | <avdb> | erisco: It's actually the base case, testing if the string was empty before proceeding, so that I can't run into problems with last |
2020-11-29 16:46:43 +0100 | <erisco> | > let f = alaf Last foldMap Just in (f [1,2,3], f []) |
2020-11-29 16:46:45 +0100 | <lambdabot> | (Just 3,Nothing) |
2020-11-29 16:47:18 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-29 16:47:19 +0100 | <avdb> | What? |
2020-11-29 16:47:50 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-29 16:48:47 +0100 | <merijn> | :t Last |
2020-11-29 16:48:49 +0100 | <lambdabot> | Maybe a -> Last a |
2020-11-29 16:48:49 +0100 | <erisco> | I made some inferences of what you meant by "make my functions safer"... perhaps too much of a leap |
2020-11-29 16:49:05 +0100 | <merijn> | erisco: Seems less confusing to avoid alaf :p |
2020-11-29 16:49:13 +0100 | <merijn> | :t foldMap (Last . Just) |
2020-11-29 16:49:15 +0100 | <lambdabot> | Foldable t => t a -> Last a |
2020-11-29 16:49:24 +0100 | <merijn> | > foldMap (Last . Just) [] |
2020-11-29 16:49:27 +0100 | <lambdabot> | Last {getLast = Nothing} |
2020-11-29 16:49:31 +0100 | <avdb> | I can't use Functors yet |
2020-11-29 16:49:33 +0100 | <erisco> | I am pointing out that "safety" from a memory security standpoint is already a nonissue here |
2020-11-29 16:49:34 +0100 | <merijn> | > foldMap (Last . Just) [1..5] |
2020-11-29 16:49:36 +0100 | <lambdabot> | Last {getLast = Just 5} |
2020-11-29 16:50:26 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) (Ping timeout: 264 seconds) |
2020-11-29 16:50:27 +0100 | <erisco> | and if the point is to be arbitrarily defined for empty lists regardless of whether it makes sense or not, that isn't really an admirable notion either, in my opinion |
2020-11-29 16:51:14 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Client Quit) |
2020-11-29 16:51:20 +0100 | <erisco> | avdb, no functors required… my first example uses Foldable and the second uses Foldable dressed up with lens |
2020-11-29 16:52:12 +0100 | <erisco> | > foldMap f [a,b,c] |
2020-11-29 16:52:14 +0100 | <lambdabot> | error: |
2020-11-29 16:52:14 +0100 | <lambdabot> | • Ambiguous type variable ‘a0’ arising from a use of ‘show_M195412351796... |
2020-11-29 16:52:14 +0100 | <lambdabot> | prevents the constraint ‘(Show a0)’ from being solved. |
2020-11-29 16:52:40 +0100 | <erisco> | hm, well anyways you can think of it as f a <> f b <> f c |
2020-11-29 16:53:09 +0100 | <erisco> | then you just have to figure what Monoid can give you the result you're after, in this case Last |
2020-11-29 16:53:57 +0100 | <erisco> | > foldMap f [a,b,c] :: Expr |
2020-11-29 16:54:00 +0100 | <lambdabot> | f a <> f b <> f c <> mempty |
2020-11-29 16:54:15 +0100 | jamm_ | (~jamm@unaffiliated/jamm) |
2020-11-29 16:55:29 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) |
2020-11-29 16:56:21 +0100 | hackage | xcffib 0.11.1 - A cffi-based python binding for X https://hackage.haskell.org/package/xcffib-0.11.1 (TychoAndersen) |
2020-11-29 16:56:24 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
2020-11-29 16:57:39 +0100 | <erisco> | can also go through Alternative |
2020-11-29 16:58:23 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) |
2020-11-29 16:58:51 +0100 | <erisco> | > let f = foldr (flip(<|>).pure) empty in [f [1,2,3], f []] :: [Maybe Int] |
2020-11-29 16:58:53 +0100 | <lambdabot> | [Just 3,Nothing] |
2020-11-29 16:58:57 +0100 | jamm_ | (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
2020-11-29 16:59:10 +0100 | <erisco> | > let f = foldl (flip((<|>).pure)) empty in [f [1,2,3], f []] :: [Maybe Int] |
2020-11-29 16:59:12 +0100 | <lambdabot> | [Just 3,Nothing] |
2020-11-29 17:00:43 +0100 | <erisco> | not sure what the cuter formulations of that are |
2020-11-29 17:01:21 +0100 | boxscape | (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) |
2020-11-29 17:02:18 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
2020-11-29 17:02:31 +0100 | <fendor> | If I want to show some students how to write a rest service, which library is a good start? I would currently just go with servant and the servant cookbook, as I think the latter is a really helpful resource |
2020-11-29 17:02:33 +0100 | <boxscape> | hmm `(forall a . P a -> Q a, forall a . Q a -> P a)` is equivalent to `forall a . (P a -> Q a, Q a -> P a)`, right? |
2020-11-29 17:02:50 +0100 | hekkaidekapus_ | (~tchouri@gateway/tor-sasl/hekkaidekapus) |
2020-11-29 17:03:28 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2020-11-29 17:04:42 +0100 | ziman | (~ziman@c25-5.condornet.sk) |
2020-11-29 17:05:06 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 17:05:12 +0100 | <maerwald> | fendor: I don't think servant is a good start |
2020-11-29 17:05:37 +0100 | <maerwald> | if those aren't advanced haskellers at least |
2020-11-29 17:05:46 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-29 17:06:18 +0100 | <fendor> | two months course so far. So, no, they are not |
2020-11-29 17:06:29 +0100 | <maerwald> | then I'd pick snap or scotty |
2020-11-29 17:07:02 +0100 | <fendor> | snap really confuses me... I always found servant to be simpler than snap, as you can just copy examples |
2020-11-29 17:07:15 +0100 | <fendor> | scotty seems like a great idea though |
2020-11-29 17:08:25 +0100 | IamfromSpace | (617897dd@97-120-151-221.ptld.qwest.net) |
2020-11-29 17:09:46 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 272 seconds) |
2020-11-29 17:11:02 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2020-11-29 17:15:17 +0100 | kupi | (uid212005@gateway/web/irccloud.com/x-fqbnyydqsnaerben) |
2020-11-29 17:15:17 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-29 17:15:31 +0100 | colby | (~colby@cpe-24-208-40-120.new.res.rr.com) |
2020-11-29 17:15:37 +0100 | colby | cjenn |
2020-11-29 17:16:06 +0100 | contiver | (~contiver@84-115-64-36.wifi.dynamic.surfer.at) (Ping timeout: 272 seconds) |
2020-11-29 17:16:33 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-29 17:18:23 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-29 17:18:31 +0100 | <tomjaguarpaw> | Is there a version of $! that is infixl 9, so it more closely matches function application? |
2020-11-29 17:24:33 +0100 | <boxscape> | this seems kind of weird http://ix.io/2FWN |
2020-11-29 17:24:34 +0100 | <boxscape> | to be fair it's using ImpredicativeTypes, for all I know it might be different with quick look impredicativity |
2020-11-29 17:25:09 +0100 | <boxscape> | or maybe it actually makes perfect sense if you think about it, I'm not really sure yet |
2020-11-29 17:25:31 +0100 | IamfromSpace | (617897dd@97-120-151-221.ptld.qwest.net) (Remote host closed the connection) |
2020-11-29 17:26:11 +0100 | solonarv | (~solonarv@anancy-651-1-197-136.w109-217.abo.wanadoo.fr) |
2020-11-29 17:29:22 +0100 | vg | (~vg@139.59.59.230) (Quit: vg) |
2020-11-29 17:29:46 +0100 | vg | (~vg@139.59.59.230) |
2020-11-29 17:31:05 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-29 17:31:32 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
2020-11-29 17:32:04 +0100 | JJ15 | (~JJ@94.197.17.236.threembb.co.uk) |
2020-11-29 17:33:15 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Client Quit) |
2020-11-29 17:33:54 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) |
2020-11-29 17:34:33 +0100 | texasmynsted | (~texasmyns@212.102.45.106) |
2020-11-29 17:34:46 +0100 | vg | (~vg@139.59.59.230) (Ping timeout: 256 seconds) |
2020-11-29 17:36:39 +0100 | <delbmuts_> | Now it compiles, but does not work as I would expect, i.e., the servant endpoint does not output the state. Still, progress. :) https://paste.debian.net/hidden/70b56d6e |
2020-11-29 17:37:07 +0100 | <delbmuts_> | s ki: thanks for having a look |
2020-11-29 17:38:33 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) (Remote host closed the connection) |
2020-11-29 17:38:41 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-jnheqdjklwmeetne) (Quit: Connection closed for inactivity) |
2020-11-29 17:39:28 +0100 | <delbmuts_> | dminuoso: TBH, I don't get how to use `trans'` (`flip runReaderT ($)`) in above code. |
2020-11-29 17:41:35 +0100 | <merijn> | boxscape: "Doesn't work with ImpredicativeTypes" in any GHC pre 9.0 |
2020-11-29 17:41:51 +0100 | <merijn> | boxscape: ImpredicativeTypes is "not even broken" in any older GHCs |
2020-11-29 17:42:04 +0100 | <boxscape> | hm, okay |
2020-11-29 17:42:19 +0100 | Tario | (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
2020-11-29 17:42:25 +0100 | <boxscape> | so you would expect it to compile with a working version of IP? |
2020-11-29 17:42:28 +0100 | <boxscape> | uh |
2020-11-29 17:42:29 +0100 | <boxscape> | IT |
2020-11-29 17:43:22 +0100 | <merijn> | boxscape: GHC 9.0 (or is it 9.2?) will have a redone version of ImpredicativeTypes that has, you know, some actual defined semantics |
2020-11-29 17:43:33 +0100 | Sheilong | (uid293653@gateway/web/irccloud.com/x-ubahtloahdzifjhq) |
2020-11-29 17:44:46 +0100 | <boxscape> | looks like it's been merged into master |
2020-11-29 17:45:18 +0100 | Wamanuz | (~wamanuz@78-70-34-81-no84.tbcn.telia.com) |
2020-11-29 17:45:28 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 17:46:17 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 17:47:36 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-29 17:47:47 +0100 | <dminuoso> | delbmuts_: That should be ($a) for some choice of a. |
2020-11-29 17:48:17 +0100 | <dminuoso> | err sorry |
2020-11-29 17:48:23 +0100 | <dminuoso> | just `flip runReaderT a` |
2020-11-29 17:48:45 +0100 | JJ15 | (~JJ@94.197.17.236.threembb.co.uk) (Read error: Connection reset by peer) |
2020-11-29 17:49:06 +0100 | JJ15 | (~JJ@94.197.17.236.threembb.co.uk) |
2020-11-29 17:49:41 +0100 | dxld | (~dxld@80-109-136-248.cable.dynamic.surfer.at) (Remote host closed the connection) |
2020-11-29 17:49:43 +0100 | cole-h | (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 256 seconds) |
2020-11-29 17:49:55 +0100 | LKoen | (~LKoen@169.244.88.92.rev.sfr.net) |
2020-11-29 17:50:07 +0100 | conal | (~conal@64.71.133.70) (Ping timeout: 246 seconds) |
2020-11-29 17:50:41 +0100 | cads | (~cads@ip-64-72-99-232.lasvegas.net) |
2020-11-29 17:51:07 +0100 | fendor_ | (~fendor@91.141.2.60.wireless.dyn.drei.com) |
2020-11-29 17:51:08 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds) |
2020-11-29 17:51:11 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-29 17:52:17 +0100 | reaverb | (~reaverb@071-008-105-088.res.spectrum.com) |
2020-11-29 17:53:11 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2020-11-29 17:53:20 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-29 17:54:06 +0100 | fendor | (~fendor@178.115.128.128.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
2020-11-29 17:56:06 +0100 | fendor_ | fendor |
2020-11-29 17:56:58 +0100 | hololeap | (~hololeap@unaffiliated/hololeap) (Ping timeout: 260 seconds) |
2020-11-29 17:59:19 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) (Read error: Connection reset by peer) |
2020-11-29 17:59:21 +0100 | SupaYoshii | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-29 18:01:28 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
2020-11-29 18:01:57 +0100 | Tario | (~Tario@201.192.165.173) |
2020-11-29 18:04:24 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-29 18:04:44 +0100 | ephemient | (uid407513@gateway/web/irccloud.com/x-pfymqtqxpsoxkvkd) |
2020-11-29 18:04:45 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-29 18:04:57 +0100 | polyphem | (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
2020-11-29 18:08:08 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-29 18:10:41 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
2020-11-29 18:11:35 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-29 18:11:58 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-29 18:17:51 +0100 | <avdb> | Is there a way to define a list of all symbols, like you can with [0..9] for all numbers? |
2020-11-29 18:18:11 +0100 | reaverb | (~reaverb@071-008-105-088.res.spectrum.com) (Quit: Leaving) |
2020-11-29 18:18:38 +0100 | tabemann | (~tabemann@2600:1700:7990:24e0:70d3:975d:bfb3:7240) (Ping timeout: 264 seconds) |
2020-11-29 18:18:50 +0100 | <Rembane> | avdb: [0..] gets you all numbers, but I don't know if that's what you want. |
2020-11-29 18:19:02 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
2020-11-29 18:19:23 +0100 | <monochrom> | generate all characters, then use isSymbol or something to filter it |
2020-11-29 18:22:59 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-29 18:23:18 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-29 18:25:54 +0100 | <avdb> | monochrom: I totally forgot about those functions ... |
2020-11-29 18:27:49 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 264 seconds) |
2020-11-29 18:27:56 +0100 | oish | (~charlie@128.127.104.126) |
2020-11-29 18:29:15 +0100 | alp | (~alp@88.126.45.36) |
2020-11-29 18:29:21 +0100 | hackage | csound-expression-dynamic 0.3.6 - dynamic core for csound-expression library https://hackage.haskell.org/package/csound-expression-dynamic-0.3.6 (AntonKholomiov) |
2020-11-29 18:30:21 +0100 | hackage | csound-expression 5.3.4, csound-expression-typed 0.2.4 (AntonKholomiov): https://qbin.io/sussex-head-e181 |
2020-11-29 18:30:32 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 18:31:22 +0100 | george_____t | (5c06804c@host-92-6-128-76.as43234.net) |
2020-11-29 18:33:22 +0100 | hackage | csound-expression-opcodes 0.0.5.0 - opcodes for the library csound-expression https://hackage.haskell.org/package/csound-expression-opcodes-0.0.5.0 (AntonKholomiov) |
2020-11-29 18:33:27 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 18:33:52 +0100 | george_____t | (5c06804c@host-92-6-128-76.as43234.net) (Remote host closed the connection) |
2020-11-29 18:34:52 +0100 | hackage | csound-sampler 0.0.10.0 - A musical sampler based on Csound https://hackage.haskell.org/package/csound-sampler-0.0.10.0 (AntonKholomiov) |
2020-11-29 18:34:53 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) () |
2020-11-29 18:35:13 +0100 | <delbmuts_> | Looks like my test client wasn't working as I'd expected. :) https://paste.debian.net/hidden/1de4954a/ Thanks all. |
2020-11-29 18:35:52 +0100 | hackage | csound-catalog 0.7.4 - a gallery of Csound instruments. https://hackage.haskell.org/package/csound-catalog-0.7.4 (AntonKholomiov) |
2020-11-29 18:36:51 +0100 | hackage | csound-controllers 0.1.1.0 - https://hackage.haskell.org/package/csound-controllers-0.1.1.0 (AntonKholomiov) |
2020-11-29 18:40:07 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-29 18:40:56 +0100 | <Squarism> | Has anyone managed to set up an editor that handles basic type inspection? If so, what editor / approach have you been using? |
2020-11-29 18:40:56 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) (Read error: Connection reset by peer) |
2020-11-29 18:41:34 +0100 | triteraflops | (~triterafl@host-208-96-90-136.public.eastlink.ca) |
2020-11-29 18:42:15 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) (Read error: Connection reset by peer) |
2020-11-29 18:42:38 +0100 | hekkaidekapus_ | hekkaidekapus |
2020-11-29 18:42:59 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Ping timeout: 256 seconds) |
2020-11-29 18:43:16 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) |
2020-11-29 18:43:22 +0100 | <hekkaidekapus> | boxscape: Indeed, it is already merged. For your example, the error is much better: <https://paste.tomsmeding.com/2KUFPpym>. |
2020-11-29 18:44:32 +0100 | <hekkaidekapus> | And from the proposal: “[impredicative instantiation] never looks at abstractions, pattern matching, lets, or any other expression.” |
2020-11-29 18:45:40 +0100 | nf | (~n@monade.li) (Quit: Fairfarren.) |
2020-11-29 18:45:44 +0100 | knupfer | (~Thunderbi@200116b82c7f8800788807fffea80bcf.dip.versatel-1u1.de) |
2020-11-29 18:46:08 +0100 | knupfer | (~Thunderbi@200116b82c7f8800788807fffea80bcf.dip.versatel-1u1.de) (Remote host closed the connection) |
2020-11-29 18:46:17 +0100 | knupfer | (~Thunderbi@200116b82c7f8800d55fa997137c91a1.dip.versatel-1u1.de) |
2020-11-29 18:47:52 +0100 | jrqc | (~rofl@96.78.87.197) (Ping timeout: 256 seconds) |
2020-11-29 18:48:03 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
2020-11-29 18:48:33 +0100 | jrqc | (~rofl@96.78.87.197) |
2020-11-29 18:48:38 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 18:49:07 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 18:49:22 +0100 | jespada | (~jespada@90.254.245.49) |
2020-11-29 18:49:53 +0100 | philopsos | (~caecilius@gateway/tor-sasl/caecilius) |
2020-11-29 18:50:49 +0100 | shangxiao | (~davids@101.181.159.140) (Quit: WeeChat 3.0) |
2020-11-29 18:50:52 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
2020-11-29 18:52:28 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2020-11-29 18:54:39 +0100 | <shapr> | Squarism: do you mean the Haskell language server? |
2020-11-29 18:54:56 +0100 | jil | (~user@45.86.162.6) |
2020-11-29 18:54:58 +0100 | <jil> | hello |
2020-11-29 18:55:04 +0100 | <shapr> | Squarism: I have this setup for emacs and it's great! https://github.com/haskell/haskell-language-server |
2020-11-29 18:55:06 +0100 | <shapr> | hi jil |
2020-11-29 18:56:20 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-29 18:56:56 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@iakosalt-94.nationalnet.com) |
2020-11-29 18:57:24 +0100 | <jil> | I'm still learning the basic of haskell and I run into this error that I don't undestand. Why is the simple function not working ? https://dpaste.org/nwxq |
2020-11-29 18:58:09 +0100 | <shapr> | :t foldr (+) 0 |
2020-11-29 18:58:10 +0100 | <lambdabot> | (Foldable t, Num b) => t b -> b |
2020-11-29 18:58:29 +0100 | renzhi | (~renzhi@2607:fa49:655f:e600::28da) |
2020-11-29 18:58:33 +0100 | <dolio> | You gave it 1 where it expected a list. |
2020-11-29 18:58:35 +0100 | <shapr> | jil: how would you read the type of the function you pasted? |
2020-11-29 18:58:47 +0100 | <dolio> | And also gave it too many arguments. |
2020-11-29 18:58:55 +0100 | <shapr> | jil: How would you explain this? fsum :: Num a => [a] -> a |
2020-11-29 18:59:45 +0100 | <jil> | ok, I'm still confused about passing argument as list. Thank you. |
2020-11-29 19:00:14 +0100 | mcginleyr1 | (uid475794@gateway/web/irccloud.com/x-osmqhtuhvgdcdnxg) |
2020-11-29 19:00:26 +0100 | <monochrom> | That's no different from writing any list in any context. |
2020-11-29 19:00:37 +0100 | <jil> | shapr that means that for all numerical type a fsum expect a list of a and returns an object of type a |
2020-11-29 19:00:55 +0100 | <solonarv> | '1 2' isn't a list, it's just two integer literals |
2020-11-29 19:01:01 +0100 | <solonarv> | do you know how to write a list? |
2020-11-29 19:01:13 +0100 | <jil> | [1 2] ? |
2020-11-29 19:01:15 +0100 | <shapr> | jil: yeah, what solonarv said, how would you write a list? |
2020-11-29 19:01:19 +0100 | <shapr> | yes, that's a list |
2020-11-29 19:01:33 +0100 | <shapr> | but you need a comma between the elements |
2020-11-29 19:01:48 +0100 | <jil> | [1,2] then. |
2020-11-29 19:02:03 +0100 | <jil> | or (1:(2:[])) |
2020-11-29 19:02:15 +0100 | <shapr> | :t [1,2] |
2020-11-29 19:02:17 +0100 | <lambdabot> | Num a => [a] |
2020-11-29 19:02:23 +0100 | <shapr> | :t (1:(2:[])) |
2020-11-29 19:02:25 +0100 | <lambdabot> | Num a => [a] |
2020-11-29 19:02:42 +0100 | <shapr> | jil: have you used :t or :type in ghci? |
2020-11-29 19:03:04 +0100 | <shapr> | I use :t to figure out the type of things all the time |
2020-11-29 19:04:03 +0100 | oish | (~charlie@128.127.104.126) (Ping timeout: 260 seconds) |
2020-11-29 19:04:09 +0100 | christo | (~chris@81.96.113.213) (Remote host closed the connection) |
2020-11-29 19:04:23 +0100 | nf | (~n@monade.li) |
2020-11-29 19:04:30 +0100 | <jil> | yes shapr, it's realy a syntaxic erro as I forgot how to write a list and did not understand the error "non type variable argument in the constraint : Num (t1 -> t2)" |
2020-11-29 19:04:56 +0100 | <jil> | [1,2] == (1:(2:[])) |
2020-11-29 19:05:00 +0100 | <shapr> | > foldr max 0 [1,3,9,6] |
2020-11-29 19:05:06 +0100 | <lambdabot> | 9 |
2020-11-29 19:05:28 +0100 | <jil> | > [1,2] == (1:(2:[])) |
2020-11-29 19:05:30 +0100 | <lambdabot> | True |
2020-11-29 19:05:32 +0100 | <shapr> | yay! |
2020-11-29 19:05:43 +0100 | <shapr> | jil: you got it! |
2020-11-29 19:05:43 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) |
2020-11-29 19:06:22 +0100 | noteness | (noteness@unaffiliated/nessessary129) (Ping timeout: 260 seconds) |
2020-11-29 19:06:36 +0100 | <jil> | :t max |
2020-11-29 19:06:38 +0100 | <lambdabot> | Ord a => a -> a -> a |
2020-11-29 19:06:58 +0100 | boxscape | (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 260 seconds) |
2020-11-29 19:07:12 +0100 | <shapr> | ok, now back to figuring out how to get started with haskell.nix for me |
2020-11-29 19:07:25 +0100 | <jil> | thank you shapr |
2020-11-29 19:07:33 +0100 | <jil> | what haskell.nix ? |
2020-11-29 19:07:35 +0100 | nehsou^ | (nehsou@ip98-184-89-2.mc.at.cox.net) |
2020-11-29 19:07:47 +0100 | <shapr> | jil: it's a way to compile haskell with NixOS |
2020-11-29 19:07:58 +0100 | <shapr> | jil: I'm glad to help, do you have more questions? |
2020-11-29 19:09:00 +0100 | christo | (~chris@81.96.113.213) |
2020-11-29 19:09:35 +0100 | <jil> | not really . Thank you. I'll get back to my book "programming in Haskel" from Graham Hutton. Its great |
2020-11-29 19:09:47 +0100 | <shapr> | oh yeah! that's a great book! |
2020-11-29 19:10:01 +0100 | shapr | checks his bookshelf |
2020-11-29 19:10:13 +0100 | <shapr> | oh, my copy is still in one of my book boxes. |
2020-11-29 19:10:18 +0100 | <dsal> | shapr: nix-build -A $project.components.exes.$project or nix-env -f default.nix -iA $project.components.exes.$project |
2020-11-29 19:10:27 +0100 | <dsal> | That's about all I do with it. heh |
2020-11-29 19:10:38 +0100 | <shapr> | dsal: is that for haskell.nix? if yes, how do you start a new empty project? |
2020-11-29 19:10:48 +0100 | <dsal> | stack new and then copy in the file. |
2020-11-29 19:11:03 +0100 | <shapr> | I want to use cabal, and I don't have cabal in scope |
2020-11-29 19:11:14 +0100 | <shapr> | cause that's the point of nix, right? |
2020-11-29 19:11:32 +0100 | <dsal> | Yeah, but for that, cabal2nix might be better. You can bootstrap with a nix-shell, I suppose. |
2020-11-29 19:11:34 +0100 | urek__ | urek |
2020-11-29 19:12:11 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) |
2020-11-29 19:12:23 +0100 | <shapr> | dsal: I don't know enough. I do know we're using haskell.nix at work so I want to start using it myself |
2020-11-29 19:12:58 +0100 | <dsal> | I've only used haskell.nix with stack. I just copy the same default.nix around for projects I've already started with stack. |
2020-11-29 19:13:06 +0100 | <dsal> | I thought cabal2nix was the way when you're using cabal. |
2020-11-29 19:13:15 +0100 | <shapr> | maybe? I don't know! |
2020-11-29 19:13:25 +0100 | christo | (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
2020-11-29 19:13:41 +0100 | <dsal> | Yeah, says it works with cabal, so I guess it's the same process. |
2020-11-29 19:13:42 +0100 | <shapr> | We did switch our CI build from stack to haskell.nix |
2020-11-29 19:14:04 +0100 | <dsal> | `nix-shell -p cabal-install` and then do whatever you normally do to start your project. Add default.nix, and it should be good. |
2020-11-29 19:14:06 +0100 | <shapr> | but from what I've read, haskell.nix gives you access to all the library versions on hackage, not just the blessed subset you get from a stack release |
2020-11-29 19:14:21 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 19:14:30 +0100 | <dsal> | Yeah, there's a daily derivation build of all the things. Happens around 18:00 my time, I think. heh |
2020-11-29 19:14:48 +0100 | <shapr> | bah: cabal: The program 'ghc' version >=7.0.1 is required but it could not be found |
2020-11-29 19:14:59 +0100 | <shapr> | How do I get cabal-install and ghc 8.10.2 in scope at the same time? |
2020-11-29 19:15:07 +0100 | <dsal> | Weird. You can add more stuff after -p |
2020-11-29 19:15:16 +0100 | <shapr> | oh |
2020-11-29 19:16:13 +0100 | <dsal> | You can also have a shell.nix that lists all those things, but starting a project is almost a bootstrap problem, so it might be easier just to make an alias or something. |
2020-11-29 19:16:29 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 19:16:53 +0100 | <dsal> | I'm kind of hybrid. I use regular stack, but with its nix extensions. Then I use haskell.nix (and cachix) to build for various places I deploy. |
2020-11-29 19:17:43 +0100 | <shapr> | I have a variety of disagreements with stack |
2020-11-29 19:17:46 +0100 | hnOsmium0001 | (uid453710@gateway/web/irccloud.com/x-qtyikxmplneltdye) |
2020-11-29 19:19:45 +0100 | <shapr> | jil: what got you started with Haskell? |
2020-11-29 19:19:57 +0100 | knupfer | (~Thunderbi@200116b82c7f8800d55fa997137c91a1.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
2020-11-29 19:20:58 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds) |
2020-11-29 19:22:03 +0100 | delbmuts_ | (52874ce6@ppp-82-135-76-230.dynamic.mnet-online.de) () |
2020-11-29 19:22:48 +0100 | <dsal> | My only problem with stack is that migrating away from it seems to get me a variety of disadvantages. I tend to work with `stack test --file-watch` running. I've not even figured out how to run tests with haskell.nix other than to explicitly name them in a build and then run the thing that got built. i.e., there's no 'run the thing in this project' that seems to work. |
2020-11-29 19:23:01 +0100 | adm | (~adm@117.223.63.167) (Remote host closed the connection) |
2020-11-29 19:23:29 +0100 | adm | (~adm@117.223.63.167) |
2020-11-29 19:26:28 +0100 | <shapr> | dsal: I use entr for all those same things |
2020-11-29 19:27:45 +0100 | adm | (~adm@117.223.63.167) (Ping timeout: 256 seconds) |
2020-11-29 19:28:35 +0100 | <hekkaidekapus> | dsal: haskell.nix’s motto is ”If it works with cabal-install/stack, it should work here, too.” Based on that, I would say, enter a shell with stack inside (instead of generating Nix stuff with stack) and `stack test`. (But I’m no expert.) |
2020-11-29 19:28:58 +0100 | <dsal> | Maybe for the file-watch part, but not for the "just build this project" part. The project name is constructed in haskell.nix and you can't just ask for whatever the current ones. |
2020-11-29 19:29:39 +0100 | <merijn> | hekkaidekapus: Mottos don't always reflect reality ;) |
2020-11-29 19:29:39 +0100 | iqubic` | (~user@2601:602:9500:4870:ed6c:ae7b:1487:9d5a) (Quit: ERC (IRC client for Emacs 28.0.50)) |
2020-11-29 19:29:55 +0100 | iqubic | (~user@2601:602:9500:4870:ed6c:ae7b:1487:9d5a) |
2020-11-29 19:29:57 +0100 | <dsal> | `nix-shell --command 'stack test'` doesn't get me much further than `stack test` which is already using nix components. :) |
2020-11-29 19:30:16 +0100 | <hekkaidekapus> | merijn: The maintainers are quite eager to fix bugs that contradict the motto. |
2020-11-29 19:30:27 +0100 | <dsal> | The annoying part of haskell.nix is the -A ............ part. |
2020-11-29 19:30:51 +0100 | <shapr> | dsal: what does that mean? |
2020-11-29 19:30:54 +0100 | <shapr> | why is that annoying? |
2020-11-29 19:30:58 +0100 | shapr | wants to learn! |
2020-11-29 19:31:12 +0100 | <dsal> | i.e., I have a lot of haskell projects and when I'm working with stack, I type the same command in each directory. With haskell.nix, I have to type a unique command for each project in each directory that's specific to the project. |
2020-11-29 19:33:46 +0100 | <hekkaidekapus> | (Which is the point of Nix: specify exactly every steps and don’t rely on global state—here ~/.stack…) |
2020-11-29 19:33:49 +0100 | <dsal> | I would really like to know what the right way to run tests is for haskell.nix. I mostly like the model, but it only seems to build things and then just kind of drop them on the floor. Ideally, CI would mostly just be copying an activation file and not lots of custom editing. The per-project custom stuff has caused me a lot of problems in the past when a common part broke everywhere and I had to repeat the fix. |
2020-11-29 19:34:22 +0100 | <dsal> | Global state is the opposite of what I said. |
2020-11-29 19:34:39 +0100 | <hekkaidekapus> | Maybe I misunderstood. |
2020-11-29 19:34:53 +0100 | <dsal> | I have to go into my project directory or I don't get the default.nix file. But then I also have to type a command specific to that project while in the project directory. |
2020-11-29 19:35:08 +0100 | hekkaidekapus | barely knows how stack works. |
2020-11-29 19:35:12 +0100 | <dsal> | With stack (and I presume cabal, though I've not used it directly very much), I can enter the project directory and just type "stack test" |
2020-11-29 19:35:36 +0100 | <iqubic> | Yeah, I have no idea how to run tests in haskell when using nix. |
2020-11-29 19:37:39 +0100 | <dsal> | The haskell.nix documentation sort of handwaves the names of attributes it defines, but I find only some of them work (maybe). It'd be super convenient if it just listed what was possible in a given project. |
2020-11-29 19:38:37 +0100 | <dsal> | e.g., it does suggest it *can* build tests, but none of my guesses as to what they're called seem to get me anywhere. |
2020-11-29 19:39:16 +0100 | <hekkaidekapus> | dsal: I see you aren’t in #haskell.nix. You could ping maintainers there and there is almost always answers, timezones permitting. |
2020-11-29 19:39:31 +0100 | <dsal> | Thanks! |
2020-11-29 19:39:38 +0100 | <hekkaidekapus> | np |
2020-11-29 19:40:39 +0100 | <iqubic> | What is haskell.nix? Is that just nix on haskell? |
2020-11-29 19:41:13 +0100 | <hekkaidekapus> | iqubic: <https://github.com/input-output-hk/haskell.nix> |
2020-11-29 19:41:33 +0100 | <iqubic> | Ah. I see. |
2020-11-29 19:41:36 +0100 | <hekkaidekapus> | It’s another Nix infrastructure for Haskell. |
2020-11-29 19:42:34 +0100 | <dsal> | It's been useful for me to get builds out on nixos systems. |
2020-11-29 19:42:41 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 19:43:28 +0100 | jollygood2 | (~bc8165ab@217.29.117.252) |
2020-11-29 19:43:30 +0100 | <shapr> | iqubic: I *think* the default haskell+nix infrastructure only offers you a single choice of haskell compiler and library versions, and haskell.nix does not |
2020-11-29 19:43:34 +0100 | <shapr> | but I'm not certain of that |
2020-11-29 19:43:51 +0100 | <iqubic> | No, I can easily change my compiler. That's not too hard. |
2020-11-29 19:44:01 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Ping timeout: 264 seconds) |
2020-11-29 19:44:21 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
2020-11-29 19:44:24 +0100 | <dsal> | haskell.nix just makes any cabal or stack project also a nix project. |
2020-11-29 19:44:47 +0100 | <dsal> | Or as it says at the top of the doc I'm looking at: haskell.nix can automatically translate your Cabal or Stack project and its dependencies into Nix code. |
2020-11-29 19:44:50 +0100 | <xerox_> | is there an id :: a# -> a# ? if that makes any sense |
2020-11-29 19:44:52 +0100 | <jollygood2> | hi. I have incomplete-patterns set, but this isn't trigger compiler warning: [month, day, year] <- sepEndBy integral (char '.') |
2020-11-29 19:44:54 +0100 | <jollygood2> | how come? |
2020-11-29 19:45:12 +0100 | shf | (~sheaf@2a01:cb19:80cc:7e00:18fb:674e:a5dc:b905) (Read error: Connection reset by peer) |
2020-11-29 19:45:23 +0100 | <merijn> | jollygood2: Because Parser is an instance of MonadFail |
2020-11-29 19:45:28 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 19:45:46 +0100 | <merijn> | jollygood2: And pattern match failures in do notation use "fail" from MonadFail (usually "parse failure" in parsers) |
2020-11-29 19:45:51 +0100 | hackage | config-value 0.8.1 - Simple, layout-based value language similar to YAML or JSON https://hackage.haskell.org/package/config-value-0.8.1 (EricMertens) |
2020-11-29 19:45:58 +0100 | <shapr> | iqubic: how do I get ghc 8.10.2 and a particular version of something like the github library? |
2020-11-29 19:46:07 +0100 | <iqubic> | I don't know. |
2020-11-29 19:46:16 +0100 | <shapr> | oh, how do you change your compiler? |
2020-11-29 19:46:18 +0100 | JJ15_ | (~JJ@94.197.17.236.threembb.co.uk) |
2020-11-29 19:46:27 +0100 | Varis | (~Tadas@unaffiliated/varis) (Ping timeout: 256 seconds) |
2020-11-29 19:46:52 +0100 | <jollygood2> | merijn, is there a "stronger" incomplete-pattern warning, that will trigger that regardless if the instance is MonadFail? |
2020-11-29 19:47:12 +0100 | <merijn> | incomplete-uni-patterns, maybe? |
2020-11-29 19:47:19 +0100 | <iqubic> | shapr: Also not sure. |
2020-11-29 19:47:26 +0100 | <iqubic> | I just know that I can. |
2020-11-29 19:47:32 +0100 | <shapr> | iqubic: oh, ok |
2020-11-29 19:47:37 +0100 | <shapr> | well if you figure out, I'd like to know :-) |
2020-11-29 19:48:39 +0100 | JJ15__ | (~JJ@2a00:23a8:4382:a900:68df:3986:d3b1:2e08) |
2020-11-29 19:49:36 +0100 | <jollygood2> | "The flag -fwarn-incomplete-uni-patterns is similar, except that it applies only to lambda-expressions and pattern bindings, constructs that only allow a single pattern:" |
2020-11-29 19:49:41 +0100 | <jollygood2> | doesn't look like that is it |
2020-11-29 19:49:51 +0100 | JJ15 | (~JJ@94.197.17.236.threembb.co.uk) (Ping timeout: 256 seconds) |
2020-11-29 19:50:35 +0100 | <merijn> | jollygood2: You have a pattern bindings that allows only a single pattern... |
2020-11-29 19:50:45 +0100 | <jollygood2> | I do? :D |
2020-11-29 19:50:54 +0100 | <jollygood2> | let me try |
2020-11-29 19:51:14 +0100 | <merijn> | "[month, day, year] <- ..." that's a pattern and it's binding stuff, and it has only one pattern... |
2020-11-29 19:51:16 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-29 19:51:18 +0100 | JJ15_ | (~JJ@94.197.17.236.threembb.co.uk) (Ping timeout: 260 seconds) |
2020-11-29 19:51:24 +0100 | renzhi | (~renzhi@2607:fa49:655f:e600::28da) (Ping timeout: 240 seconds) |
2020-11-29 19:51:27 +0100 | <jollygood2> | still, the wording makes it seem like it will catch LESS than warn-incomplete-patterns will. I'll still try it |
2020-11-29 19:51:37 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 19:51:47 +0100 | <merijn> | jollygood2: It catches *different* things |
2020-11-29 19:52:06 +0100 | <geekosaur> | because it doesn't imply -Wincomplete-patterns? |
2020-11-29 19:52:08 +0100 | <merijn> | jollygood2: i.e. it only covers lambda patterns and (presumably?) do notation patterns and nothing else |
2020-11-29 19:52:35 +0100 | <merijn> | jollygood2: Whereas -Wincomplete-patterns covers only patterns that are *not* uni-patterns |
2020-11-29 19:54:22 +0100 | <jollygood2> | I've set it |
2020-11-29 19:54:27 +0100 | <jollygood2> | I still don't get the warning |
2020-11-29 19:55:40 +0100 | <geekosaur> | that may be because of MonadFail, and the answer is probably no because MonadFail overrides |
2020-11-29 19:55:58 +0100 | boxscape | (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) |
2020-11-29 19:56:07 +0100 | <merijn> | geekosaur: tbh, with the original desugaring of Monad it might not have worked either way |
2020-11-29 19:56:15 +0100 | <boxscape> | hekkaidekapus thanks, that's interesting |
2020-11-29 19:56:20 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 19:56:21 +0100 | <solonarv> | failable patterns in a 'do' binding cause a type error when the monad in use isn't MonadFail |
2020-11-29 19:56:34 +0100 | <jollygood2> | no warning: do [_,_] <- (pure [1,2] :: IO [Int]); return 10 |
2020-11-29 19:56:45 +0100 | <merijn> | solonarv: Right, but he has a parser, so he has a MonadFail |
2020-11-29 19:56:50 +0100 | <merijn> | jollygood2: IO is MonadFail, though |
2020-11-29 19:57:19 +0100 | alp__ | (~alp@2a01:e0a:58b:4920:d15:e453:85b3:5c61) |
2020-11-29 19:57:30 +0100 | <jollygood2> | right.. my second question was how to get this warning in MonadFail context.. and the answer seems to be, you can't |
2020-11-29 19:57:41 +0100 | <merijn> | That could very well be |
2020-11-29 19:58:09 +0100 | Sgeo | (~Sgeo@ool-18b982ad.dyn.optonline.net) |
2020-11-29 19:59:27 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 19:59:34 +0100 | bitmapper | (uid464869@gateway/web/irccloud.com/x-tesxvyxpigmxrfxg) |
2020-11-29 20:00:38 +0100 | alp | (~alp@88.126.45.36) (Ping timeout: 260 seconds) |
2020-11-29 20:00:51 +0100 | <hekkaidekapus> | boxscape: I suspect that was a contrived example extracted from a larger program. If you are hell-bent on using impredicativity in pattern position, you could 1) wait for type-level lambdas :d 2) hack ViewPatterns in your code. |
2020-11-29 20:00:57 +0100 | <hekkaidekapus> | to, to' :: A -> B |
2020-11-29 20:01:04 +0100 | <hekkaidekapus> | to fg = (fst fg, snd fg) |
2020-11-29 20:01:10 +0100 | <hekkaidekapus> | to' (to -> x) = (fst x, snd x) |
2020-11-29 20:01:36 +0100 | <boxscape> | hekkaidekapus it wasn't; I was just trying to figure out whether that particular equation holds in predicate logic and haskell's type checker seemed a convenient way to prove it |
2020-11-29 20:01:52 +0100 | <hekkaidekapus> | Ah, ok. |
2020-11-29 20:02:20 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) (Remote host closed the connection) |
2020-11-29 20:02:32 +0100 | <boxscape> | but thanks for the tip anyway :) |
2020-11-29 20:02:43 +0100 | <hekkaidekapus> | \o/ |
2020-11-29 20:03:23 +0100 | sorki | (~sorki@gateway/tor-sasl/sorki) |
2020-11-29 20:03:28 +0100 | berberman_ | (~berberman@unaffiliated/berberman) |
2020-11-29 20:04:14 +0100 | berberman | (~berberman@unaffiliated/berberman) (Ping timeout: 264 seconds) |
2020-11-29 20:06:02 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:4922:8a11:2fad:afb4) (Ping timeout: 264 seconds) |
2020-11-29 20:06:44 +0100 | Jesin | (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
2020-11-29 20:06:46 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:2a03:b58:ed4d:4ddd) |
2020-11-29 20:07:46 +0100 | <xerox_> | @hoogle Word32# -> Word# |
2020-11-29 20:07:47 +0100 | <lambdabot> | Unsafe.Coerce unsafeCoerce :: a -> b |
2020-11-29 20:07:47 +0100 | <lambdabot> | GHC.Exts unsafeCoerce# :: forall (k0 :: RuntimeRep) (k1 :: RuntimeRep) (a :: TYPE k0) (b :: TYPE k1) . a -> b |
2020-11-29 20:07:47 +0100 | <lambdabot> | GHC.Prim unsafeCoerce# :: a -> b |
2020-11-29 20:09:56 +0100 | Jeanne-Kamikaze | (~Jeanne-Ka@iakosalt-94.nationalnet.com) (Ping timeout: 240 seconds) |
2020-11-29 20:09:57 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 20:10:00 +0100 | cjenn | (~colby@cpe-24-208-40-120.new.res.rr.com) (Quit: cjenn) |
2020-11-29 20:10:33 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-29 20:12:00 +0100 | geowiesnot | (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 265 seconds) |
2020-11-29 20:12:08 +0100 | juuandyy | (~juuandyy@90.166.144.65) |
2020-11-29 20:12:58 +0100 | Guest_22 | (a2f58eed@ott-lmlp35-237.hge.net) |
2020-11-29 20:13:13 +0100 | Varis | (~Tadas@unaffiliated/varis) |
2020-11-29 20:13:22 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 20:13:31 +0100 | Guest_22 | (a2f58eed@ott-lmlp35-237.hge.net) (Remote host closed the connection) |
2020-11-29 20:14:06 +0100 | <dminuoso> | Why does hoogle produce unsafeCoerce at all here? |
2020-11-29 20:14:13 +0100 | <dminuoso> | That seems rather silly |
2020-11-29 20:14:51 +0100 | <jollygood2> | it matches :) |
2020-11-29 20:14:56 +0100 | <hpc> | the real question is why it doesn't produce it all the time :D |
2020-11-29 20:15:07 +0100 | <merijn> | hpc: Because it's not in the top hits :p |
2020-11-29 20:15:09 +0100 | dxld | (~dxld@2a01:4f8:201:89ff:22cf:30ff:fe67:8db) |
2020-11-29 20:15:22 +0100 | <boxscape> | is Word# even Lifted? |
2020-11-29 20:15:41 +0100 | <dminuoso> | jollygood2: Arguably unsafeCoerce should be special cased, as it matches any function... |
2020-11-29 20:15:55 +0100 | <dminuoso> | And it's almost assuredly not the thing you want when you look for `S -> T` |
2020-11-29 20:16:09 +0100 | <dminuoso> | And for those who do want it, it's safe to assume they are fully aware of its existence.. |
2020-11-29 20:16:09 +0100 | <monochrom> | Word# is not lifted. |
2020-11-29 20:16:10 +0100 | <solonarv> | % :k Word# |
2020-11-29 20:16:10 +0100 | <yahb> | solonarv: TYPE 'WordRep |
2020-11-29 20:16:11 +0100 | <boxscape> | % (unsafeCoerce :: Word32# -> Word#) |
2020-11-29 20:16:11 +0100 | <yahb> | boxscape: ; <interactive>:41:2: error:; * Couldn't match a lifted type with an unlifted type; When matching types; b0 :: *; Word# :: TYPE 'WordRep; Expected type: Word32# -> Word#; Actual type: a0 -> b0; * In the expression: (unsafeCoerce :: Word32# -> Word#); In an equation for `it': it = (unsafeCoerce :: Word32# -> Word#) |
2020-11-29 20:16:12 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 20:16:13 +0100 | <boxscape> | it doesn't match |
2020-11-29 20:16:14 +0100 | <solonarv> | nope, not lifted |
2020-11-29 20:16:27 +0100 | <monochrom> | Err nevermind |
2020-11-29 20:16:56 +0100 | <boxscape> | hm, I think you were right? |
2020-11-29 20:16:58 +0100 | <boxscape> | monochrom |
2020-11-29 20:17:01 +0100 | <dminuoso> | I mean it matches from the perspective Hoogle because it likely doesnt take kinds into consideration |
2020-11-29 20:17:01 +0100 | <boxscape> | why never mind? |
2020-11-29 20:17:16 +0100 | <boxscape> | hm I suppose so |
2020-11-29 20:18:22 +0100 | IamfromSpace | (617897dd@97-120-151-221.ptld.qwest.net) |
2020-11-29 20:18:22 +0100 | <dminuoso> | I mean a fully correct hoogle would likely be hard to implement right, in the presence of tyfams and other things. |
2020-11-29 20:18:55 +0100 | <monochrom> | Heh so unsafeCoerce is safer than I thought |
2020-11-29 20:19:22 +0100 | dminuoso | holds monochrom's beer |
2020-11-29 20:19:41 +0100 | <boxscape> | % f :: Word32# -> Word#; f = unsafeCoerce# -- this is what you want for true power |
2020-11-29 20:19:41 +0100 | <yahb> | boxscape: |
2020-11-29 20:20:28 +0100 | <merijn> | boxscape: I think you miswrote "real ultimate power" ;) |
2020-11-29 20:20:43 +0100 | <boxscape> | perhaps :) |
2020-11-29 20:21:14 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) (Quit: WeeChat 3.0) |
2020-11-29 20:21:33 +0100 | benjamin-l | (~benjamin@2601:1c0:8800:67e0:fa16:54ff:febc:2e60) |
2020-11-29 20:21:41 +0100 | <dminuoso> | % let k = flip const unsafeCoerce# in runCont (pure 1) k |
2020-11-29 20:21:41 +0100 | <yahb> | dminuoso: 1 |
2020-11-29 20:21:47 +0100 | <dminuoso> | Looks safe to me! |
2020-11-29 20:22:11 +0100 | alp__ | (~alp@2a01:e0a:58b:4920:d15:e453:85b3:5c61) (Ping timeout: 272 seconds) |
2020-11-29 20:22:38 +0100 | <dminuoso> | `fix . const` is my favourite combinator of the month however. |
2020-11-29 20:22:48 +0100 | <merijn> | :t fix . const |
2020-11-29 20:22:51 +0100 | <lambdabot> | c -> c |
2020-11-29 20:22:55 +0100 | <iqubic> | What does that do? |
2020-11-29 20:23:00 +0100 | <dminuoso> | Try it out! |
2020-11-29 20:23:08 +0100 | <merijn> | iqubic: id :p |
2020-11-29 20:23:16 +0100 | elliott__ | (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
2020-11-29 20:23:18 +0100 | <iqubic> | @let id' = fix . const |
2020-11-29 20:23:20 +0100 | <lambdabot> | Defined. |
2020-11-29 20:23:30 +0100 | <iqubic> | > id' 34 |
2020-11-29 20:23:32 +0100 | <lambdabot> | 34 |
2020-11-29 20:23:34 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-29 20:23:38 +0100 | <iqubic> | How is that just id? |
2020-11-29 20:23:47 +0100 | <boxscape> | @src fix |
2020-11-29 20:23:47 +0100 | <lambdabot> | fix f = let x = f x in x |
2020-11-29 20:23:53 +0100 | <dminuoso> | iqubic: Surely you've been long around to figure this one out yourself. |
2020-11-29 20:23:57 +0100 | <iqubic> | I have. |
2020-11-29 20:24:06 +0100 | <boxscape> | fix (const 4) = let x = (const 4) x in x |
2020-11-29 20:25:02 +0100 | <hpc> | alternatively, if you formulate it as fix f = f (fix f): |
2020-11-29 20:25:12 +0100 | <hpc> | fix (const 4) = const 4 (const 4 (const 4 (... |
2020-11-29 20:25:30 +0100 | shatriff | (~vitaliish@176.52.219.10) (Remote host closed the connection) |
2020-11-29 20:25:46 +0100 | <dminuoso> | what I find curious is how these simple functions const, id, fix are all somehow connected in strange and interesting ways |
2020-11-29 20:25:56 +0100 | shailangsa | (~shailangs@host86-186-177-155.range86-186.btcentralplus.com) (Ping timeout: 240 seconds) |
2020-11-29 20:26:02 +0100 | Iceland_jack | (~user@31.124.48.169) |
2020-11-29 20:26:02 +0100 | shatriff | (~vitaliish@176.52.219.10) |
2020-11-29 20:26:11 +0100 | <dminuoso> | or equivalently their type versions Const, Identity, etc |
2020-11-29 20:26:18 +0100 | <boxscape> | you're getting dangerously close to doing combinator calculus |
2020-11-29 20:27:44 +0100 | <boxscape> | hmm I wonder which one(s) you need in addition to fix for functional completeness |
2020-11-29 20:28:13 +0100 | geowiesnot | (~user@87-89-181-157.abo.bbox.fr) |
2020-11-29 20:28:17 +0100 | ralu_ | (~ralu@2a00:1a20:2200:8045:8200:bff:fe5a:48a3) |
2020-11-29 20:28:21 +0100 | <boxscape> | (hm is functional completeness the right term here? I actually only know it from logic) |
2020-11-29 20:28:34 +0100 | SeMas | (uid32977@gateway/web/irccloud.com/x-taxggkdzpxqpcjih) |
2020-11-29 20:29:00 +0100 | <dminuoso> | boxscape: Heh that reminds me of that revelation that, in principle, Applicative gives you a full SK(I) combinator calculus almost directly. It's just the type system that is in the way. |
2020-11-29 20:29:09 +0100 | <boxscape> | I was just thinking about that :) |
2020-11-29 20:29:20 +0100 | <solonarv> | const and ap are all you need if you throw away types |
2020-11-29 20:29:29 +0100 | <solonarv> | I don't think you can write fix using them though |
2020-11-29 20:29:39 +0100 | <dminuoso> | why not? |
2020-11-29 20:30:05 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 256 seconds) |
2020-11-29 20:30:14 +0100 | <dminuoso> | You can express Y in SKI |
2020-11-29 20:30:15 +0100 | <solonarv> | well, you can write fix if you ignore types, but if you try to type-check that expression you end up with an infinite type |
2020-11-29 20:30:26 +0100 | <solonarv> | SK(I) is untyped so that works |
2020-11-29 20:30:40 +0100 | Gurkenglas | (~Gurkengla@unaffiliated/gurkenglas) |
2020-11-29 20:30:40 +0100 | <boxscape> | I wonder if you can get rid off one of them if you have Y as a given |
2020-11-29 20:30:43 +0100 | <dminuoso> | Right, that's what I was saying with "the type system is in the way" |
2020-11-29 20:30:52 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-29 20:31:18 +0100 | <dminuoso> | solonarv: Im almost convinced you can just do it with newtypes |
2020-11-29 20:31:18 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-29 20:31:28 +0100 | <dminuoso> | Like, you can write a lambda style Y combinator with newtypes too |
2020-11-29 20:31:36 +0100 | <solonarv> | oh, I'm sure you can |
2020-11-29 20:31:42 +0100 | <dminuoso> | (Ignoring simplifier panics that get triggered if you dont disable optimizations in GHC) |
2020-11-29 20:32:20 +0100 | <dminuoso> | To me the newtypes are just noise demanded by the type system, they wouldnt invalidate such an implementation |
2020-11-29 20:32:41 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff217d005cd8d9846e4e.dip0.t-ipconnect.de) |
2020-11-29 20:34:56 +0100 | ralu_ | (~ralu@2a00:1a20:2200:8045:8200:bff:fe5a:48a3) (Quit: Leaving) |
2020-11-29 20:35:46 +0100 | <solonarv> | yes, \a -> s i i (s (k a) (s i i)) is a fixed-point combinator |
2020-11-29 20:36:03 +0100 | <solonarv> | (you can rewrite that lambda to use only combinators but I'm too lazy for that) |
2020-11-29 20:36:18 +0100 | <boxscape> | we have a tool to do it |
2020-11-29 20:36:20 +0100 | <boxscape> | @pl \a -> s i i (s (k a) (s i i)) |
2020-11-29 20:36:20 +0100 | <lambdabot> | s i i . flip s (s i i) . k |
2020-11-29 20:36:31 +0100 | <solonarv> | :t let s = ap; i = id; k = const in \a -> s i i (s (k a) (s i i)) |
2020-11-29 20:36:31 +0100 | <boxscape> | now just replace . by C and flip by B, IIRC |
2020-11-29 20:36:33 +0100 | <lambdabot> | error: |
2020-11-29 20:36:33 +0100 | <lambdabot> | • Occurs check: cannot construct the infinite type: a0 ~ a0 -> b |
2020-11-29 20:36:33 +0100 | <lambdabot> | Expected type: ((a0 -> b) -> b) -> a0 -> b |
2020-11-29 20:36:44 +0100 | IamfromSpace | (617897dd@97-120-151-221.ptld.qwest.net) (Remote host closed the connection) |
2020-11-29 20:37:00 +0100 | <dminuoso> | s (k (s i i))(s (s (k s) k) (k (s i i))) |
2020-11-29 20:37:04 +0100 | <dminuoso> | Copied straight out of google! |
2020-11-29 20:37:05 +0100 | <solonarv> | but unsurprisingly you get this type error, which is basically the same one that the lambda-calculus Y combinator has |
2020-11-29 20:37:24 +0100 | <dminuoso> | solonarv: mmm you know what, we can convince it! |
2020-11-29 20:37:33 +0100 | <solonarv> | yes, with newtypes ! |
2020-11-29 20:37:45 +0100 | <dminuoso> | % let s = ap; i = id; k = const in unsafeCoerce (\a -> s i i (s (k a) (s i i))) |
2020-11-29 20:37:46 +0100 | <yahb> | dminuoso: ; <interactive>:1:58: error:; * Occurs check: cannot construct the infinite type: a0 ~ a0 -> b0; Expected type: ((a0 -> b0) -> b0) -> a0 -> b0; Actual type: (a0 -> b0) -> a0 -> b0; * In the second argument of `s', namely `i'; In the expression: s i i (s (k a) (s i i)); In the first argument of `unsafeCoerce', namely `(\ a -> s i i (s (k a) (s i i)))'; * Relevant bindi |
2020-11-29 20:37:54 +0100 | <dminuoso> | Oh boy, needs more unsafeCoerce! |
2020-11-29 20:38:04 +0100 | <solonarv> | you need to sprinkle them around inside the expression, yeah |
2020-11-29 20:38:19 +0100 | <hpc> | build it like idris intermediate representation |
2020-11-29 20:38:28 +0100 | <hpc> | every subexpression is unsafeCoerced :D |
2020-11-29 20:38:29 +0100 | <solonarv> | the root of the issue is self-application |
2020-11-29 20:38:29 +0100 | <dminuoso> | I got an idea, GHC has the right extension for that |
2020-11-29 20:38:32 +0100 | <boxscape> | % let s = unsafeCoerce ap; i = unsafeCoerce id; k = unsafeCoerce const in unsafeCoerce (\a -> s i i (s (k a) (s i i))) |
2020-11-29 20:38:32 +0100 | <yahb> | boxscape: ; <interactive>:2:22: error:; * Ambiguous type variable `m0' arising from a use of `ap'; prevents the constraint `(Monad m0)' from being solved.; Probable fix: use a type annotation to specify what `m0' should be.; These potential instances exist:; instance Monad m => Monad (WrappedMonad m) -- Defined in `Control.Applicative'; instance ArrowApply a => Monad (ArrowMon |
2020-11-29 20:38:35 +0100 | <boxscape> | makes senes |
2020-11-29 20:38:38 +0100 | <dminuoso> | % (x!) = unsafeCoerce x |
2020-11-29 20:38:39 +0100 | <yahb> | dminuoso: ; <interactive>:3:2: error: Expression syntax in pattern: x ! |
2020-11-29 20:38:43 +0100 | <dminuoso> | % (x&) = unsafeCoerce x |
2020-11-29 20:38:43 +0100 | <yahb> | dminuoso: ; <interactive>:4:2: error: Expression syntax in pattern: x & |
2020-11-29 20:38:45 +0100 | <dminuoso> | Mmm |
2020-11-29 20:38:49 +0100 | <dminuoso> | % (&) = unsafeCoerce x |
2020-11-29 20:38:49 +0100 | <yahb> | dminuoso: ; <interactive>:5:20: error: Variable not in scope: x |
2020-11-29 20:38:52 +0100 | <dminuoso> | % (&) = unsafeCoerce |
2020-11-29 20:38:52 +0100 | <yahb> | dminuoso: |
2020-11-29 20:38:54 +0100 | <dminuoso> | There! |
2020-11-29 20:41:29 +0100 | <boxscape> | maybe someone made a deepUnsafeCoerce quasiquoter that wraps every subexpr in unsafeCoerce |
2020-11-29 20:41:47 +0100 | amiri | (~amiri@cpe-76-91-154-9.socal.res.rr.com) (Ping timeout: 260 seconds) |
2020-11-29 20:42:09 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-29 20:42:23 +0100 | knupfer | (~Thunderbi@i5E86B463.versanet.de) |
2020-11-29 20:42:41 +0100 | toorevitimirp | (~tooreviti@117.182.183.16) (Remote host closed the connection) |
2020-11-29 20:43:36 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 20:45:17 +0100 | amiri | (~amiri@cpe-76-91-154-9.socal.res.rr.com) |
2020-11-29 20:46:52 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2020-11-29 20:47:48 +0100 | christo | (~chris@81.96.113.213) |
2020-11-29 20:48:50 +0100 | <boxscape> | although I guess you'd just end up with a bunch of ambiguous type variables typically |
2020-11-29 20:49:13 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-29 20:49:16 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 20:49:23 +0100 | <dminuoso> | boxscape: easily addressed with some sort of type checker plugin |
2020-11-29 20:49:31 +0100 | <boxscape> | fair point |
2020-11-29 20:50:13 +0100 | shatriff_ | (~vitaliish@176.52.219.10) |
2020-11-29 20:50:36 +0100 | shailangsa | (~shailangs@host86-186-177-155.range86-186.btcentralplus.com) |
2020-11-29 20:52:33 +0100 | shatriff | (~vitaliish@176.52.219.10) (Ping timeout: 260 seconds) |
2020-11-29 20:53:28 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-29 20:54:43 +0100 | juuandyy | (~juuandyy@90.166.144.65) (Quit: Konversation terminated!) |
2020-11-29 20:59:05 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 240 seconds) |
2020-11-29 21:01:02 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2020-11-29 21:01:52 +0100 | hackage | xmobar 0.37 - A Minimalistic Text Based Status Bar https://hackage.haskell.org/package/xmobar-0.37 (JoseAntonioOrtegaRuiz) |
2020-11-29 21:04:53 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 21:05:48 +0100 | ddellacosta | (dd@gateway/vpn/mullvad/ddellacosta) |
2020-11-29 21:10:10 +0100 | sagax | (~sagax_nb@213.138.71.146) (Read error: Connection reset by peer) |
2020-11-29 21:11:11 +0100 | <sondr3> | That's a new error when launching cabal repl: `/tmp/bios-wrapper5424-294: line 4: : No such file or directory` |
2020-11-29 21:12:01 +0100 | <sondr3> | Isn't bios used in HLS? Not sure why it interferes with cabal |
2020-11-29 21:14:15 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) (Ping timeout: 260 seconds) |
2020-11-29 21:16:37 +0100 | ggole | (~ggole@2001:8003:8119:7200:69c3:3fe:81:8dbf) (Quit: Leaving) |
2020-11-29 21:17:39 +0100 | rayyyy | (~nanoz@gateway/tor-sasl/nanoz) (Remote host closed the connection) |
2020-11-29 21:18:28 +0100 | <merijn> | sondr3: WHich version of cabal-install? |
2020-11-29 21:19:58 +0100 | Unhammerd | Unhammer |
2020-11-29 21:20:09 +0100 | <sondr3> | merijn: cabal-install version 3.2.0.0, though I just waited a bit and now it works again |
2020-11-29 21:23:53 +0100 | ephemient | (uid407513@gateway/web/irccloud.com/x-pfymqtqxpsoxkvkd) (Quit: Connection closed for inactivity) |
2020-11-29 21:23:59 +0100 | sagax | (~sagax_nb@213.138.71.146) |
2020-11-29 21:24:29 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Ping timeout: 256 seconds) |
2020-11-29 21:26:12 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Quit: vfaronov) |
2020-11-29 21:26:23 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) (Ping timeout: 240 seconds) |
2020-11-29 21:26:28 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
2020-11-29 21:26:31 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Remote host closed the connection) |
2020-11-29 21:26:44 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) |
2020-11-29 21:27:07 +0100 | vfaronov | (~vfaronov@broadband-95-84-210-78.ip.moscow.rt.ru) (Client Quit) |
2020-11-29 21:27:08 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 21:28:22 +0100 | Chi1thangoo | jmchael |
2020-11-29 21:28:36 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) |
2020-11-29 21:30:16 +0100 | amiri | (~amiri@cpe-76-91-154-9.socal.res.rr.com) (Ping timeout: 240 seconds) |
2020-11-29 21:30:20 +0100 | ChanServ | (ChanServ@services.) (shutting down) |
2020-11-29 21:30:26 +0100 | <iqubic> | jle`: Thank you for updating your AoCAPI. I have verified that it works with the lastest version of servant and GHC. |
2020-11-29 21:30:48 +0100 | <iqubic> | I can successfully get an error of "Left (AoCReleaseError 117187.692251649s)" |
2020-11-29 21:31:30 +0100 | <iqubic> | I don't understand what the number is, and the docs state it's a NominalDiffTime, but IDK what that is. |
2020-11-29 21:31:35 +0100 | ChanServ | (ChanServ@services.) |
2020-11-29 21:31:35 +0100 | kornbluth.freenode.net | +o ChanServ |
2020-11-29 21:32:05 +0100 | <koz_> | iqubic: NominalDiffTime represents a separation in time that's not pinned to anything specific ("five minutes ago", "tomorrow", "five years from now" etc). |
2020-11-29 21:32:23 +0100 | <koz_> | It's encoded as (possibly fractional) seconds. |
2020-11-29 21:33:07 +0100 | gehmehgeh | (~ircuser1@gateway/tor-sasl/gehmehgeh) |
2020-11-29 21:33:10 +0100 | <iqubic> | Right. And in this case it's telling me how long I'll need to wait until AOC 2020 starts |
2020-11-29 21:33:59 +0100 | <iqubic> | But the important part isn't that number, but that the jle's updates that he made yesterday actually work. |
2020-11-29 21:35:49 +0100 | avdb | (~avdb@ip-81-11-215-86.dsl.scarlet.be) (Ping timeout: 256 seconds) |
2020-11-29 21:36:38 +0100 | <iqubic> | Looking at Haskell's Time support, and I'm wondering something; What's the difference between a NominalDiffTime and a DiffTime? |
2020-11-29 21:36:49 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 264 seconds) |
2020-11-29 21:37:12 +0100 | <merijn> | iqubic: DiffTime is *clock* time |
2020-11-29 21:37:21 +0100 | <merijn> | iqubic: NominalDiffTime is monotonic time |
2020-11-29 21:37:26 +0100 | <koz_> | NominalDiffTime ignores leap seconds. |
2020-11-29 21:37:33 +0100 | <iqubic> | So then what's UTCTime? |
2020-11-29 21:37:40 +0100 | <koz_> | UTCTime is a specific time. |
2020-11-29 21:37:45 +0100 | <koz_> | Not a difference between two times. |
2020-11-29 21:37:46 +0100 | <iqubic> | Right, I see. |
2020-11-29 21:37:51 +0100 | <iqubic> | Ah, I see. |
2020-11-29 21:37:56 +0100 | Maxdamantus | (~Maxdamant@unaffiliated/maxdamantus) (Ping timeout: 256 seconds) |
2020-11-29 21:38:07 +0100 | <merijn> | iqubic: i.e. 5 minutes of NominalDiffTime might be 1 hour and 5 minutes of DiffTime :p |
2020-11-29 21:38:17 +0100 | <merijn> | Due to daylight savings time |
2020-11-29 21:38:19 +0100 | <iqubic> | I see. |
2020-11-29 21:38:39 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9) |
2020-11-29 21:38:44 +0100 | <merijn> | It's pedantic, but time is complex enough that pedantry is warranted :p |
2020-11-29 21:38:51 +0100 | irc_user | (uid423822@gateway/web/irccloud.com/x-qjzncdzdidsoxfjl) |
2020-11-29 21:39:07 +0100 | <iqubic> | Does Haskell support timezone conversions, or not? |
2020-11-29 21:39:25 +0100 | <merijn> | Sure, as much as anything does |
2020-11-29 21:39:35 +0100 | <merijn> | Well "Haskell" not so much |
2020-11-29 21:39:39 +0100 | Maxdamantus | (~Maxdamant@unaffiliated/maxdamantus) |
2020-11-29 21:39:40 +0100 | <merijn> | But the time library, sure |
2020-11-29 21:39:59 +0100 | <iqubic> | Right. |
2020-11-29 21:40:00 +0100 | appostasiamo | (~appostasi@185.183.147.131) |
2020-11-29 21:40:08 +0100 | sfvm | (~sfvm@37.228.215.54) |
2020-11-29 21:40:09 +0100 | <merijn> | iqubic: See ZonedTime |
2020-11-29 21:40:17 +0100 | <iqubic> | I'll look at that later. |
2020-11-29 21:40:29 +0100 | <merijn> | iqubic: Which is essentially "a time + a time zone" |
2020-11-29 21:40:48 +0100 | <merijn> | ugh |
2020-11-29 21:40:54 +0100 | <appostasiamo> | ciao |
2020-11-29 21:41:00 +0100 | <merijn> | time doesn't have geographic timezone names? |
2020-11-29 21:41:13 +0100 | <appostasiamo> | !list |
2020-11-29 21:41:14 +0100 | <monochrom> | appostasiamo: https://hackage.haskell.org/ |
2020-11-29 21:41:22 +0100 | xerox_ | chuckles |
2020-11-29 21:41:24 +0100 | <koz_> | merijn: Nope. |
2020-11-29 21:41:38 +0100 | <koz_> | (speaking as someone who actually had to look up this info recently) |
2020-11-29 21:41:39 +0100 | <merijn> | Ok, I retract my statement :p |
2020-11-29 21:41:53 +0100 | <merijn> | time on supports UTC offsets, not timezones :p |
2020-11-29 21:42:06 +0100 | <merijn> | s/on/only |
2020-11-29 21:42:06 +0100 | <xerox_> | postgres does timezone conversion well |
2020-11-29 21:42:18 +0100 | ph88 | (~ph88@2a02:8109:9e00:7e5c:38a3:bec1:bd68:259f) |
2020-11-29 21:42:31 +0100 | <merijn> | xerox_: I don't believe that :p |
2020-11-29 21:42:37 +0100 | <xerox_> | it's true! |
2020-11-29 21:42:41 +0100 | <merijn> | Because there's literally no way to do timezone conversion *well* |
2020-11-29 21:42:48 +0100 | <merijn> | The best you can manage is *not terrible* |
2020-11-29 21:43:26 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 21:44:03 +0100 | hekkaidekapus | awaits the future vs. past times distinction… |
2020-11-29 21:44:12 +0100 | <merijn> | hekkaidekapus: For example :p |
2020-11-29 21:44:26 +0100 | <hekkaidekapus> | heh… I saw you coming :p |
2020-11-29 21:44:38 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
2020-11-29 21:44:40 +0100 | appostasiamo | (~appostasi@185.183.147.131) (Remote host closed the connection) |
2020-11-29 21:44:58 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
2020-11-29 21:45:01 +0100 | <merijn> | I'm coming to take away the programming license of anyone who says "you should always convert datetime to UTC" >.> |
2020-11-29 21:45:11 +0100 | <hekkaidekapus> | lol |
2020-11-29 21:45:25 +0100 | <merijn> | A little knowledge is a dangerous thing! |
2020-11-29 21:46:12 +0100 | <hekkaidekapus> | In the line of “Fear the person of one book.” s/book/universal time/ |
2020-11-29 21:46:49 +0100 | <merijn> | hekkaidekapus: It's especially relevant with all of the EU reconsidering daylight savings time in the near future |
2020-11-29 21:46:49 +0100 | dddddd | (~dddddd@unaffiliated/dddddd) (Quit: dddddd) |
2020-11-29 21:47:17 +0100 | <dminuoso> | iqubic: https://wiki.haskell.org/wikiupload/9/90/Time-diagram.png |
2020-11-29 21:47:27 +0100 | <hekkaidekapus> | merijn: Wait, isn’t the decision already made? |
2020-11-29 21:47:59 +0100 | <merijn> | hekkaidekapus: AFAIK the decision to stop has been made, but nothing has been finalised about which permanent time will be used by which country |
2020-11-29 21:48:26 +0100 | <ddellacosta> | dminuoso: that's great, filing it away, thanks |
2020-11-29 21:48:41 +0100 | <hekkaidekapus> | iirc, each country has the leeway in phasing it out. |
2020-11-29 21:48:57 +0100 | <merijn> | hekkaidekapus: Eh, last news article I saw said end 2021 :p |
2020-11-29 21:49:06 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 21:49:50 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 21:50:13 +0100 | <hekkaidekapus> | merijn: Ok, then. It’s not like I’m running for a seat in the EP ;) (If I did, it’d be under the Pirates banner, of course. :P ) |
2020-11-29 21:50:50 +0100 | dddddd | (~dddddd@unaffiliated/dddddd) |
2020-11-29 21:52:16 +0100 | sh92 | (~sh9@softbank060116136158.bbtec.net) |
2020-11-29 21:53:44 +0100 | sh91 | (~sh9@softbank060116136158.bbtec.net) (Ping timeout: 256 seconds) |
2020-11-29 21:54:25 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds) |
2020-11-29 21:56:09 +0100 | <hekkaidekapus> | @where cabal-stack-disambiguation |
2020-11-29 21:56:09 +0100 | <lambdabot> | "The Cabal/Stack Disambiguation Guide" at <https://gist.github.com/merijn/8152d561fb8b011f9313c48d876ceb07> by Merijn |
2020-11-29 21:56:30 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 21:56:40 +0100 | <hekkaidekapus> | merijn: Time for a ‘Future vs Past Time disambiguation’ gist? |
2020-11-29 21:57:26 +0100 | SupaYoshii | (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
2020-11-29 21:58:19 +0100 | <merijn> | hekkaidekapus: I'll get right on that after I finish rewriting 8 thesis chapters...before tomorrow 10 AM >.> |
2020-11-29 21:58:51 +0100 | <hekkaidekapus> | UTC time, oc. |
2020-11-29 21:59:32 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Quit: mputz) |
2020-11-29 21:59:48 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) |
2020-11-29 22:01:20 +0100 | SupaYoshi | (~supayoshi@213-10-140-13.fixed.kpn.net) |
2020-11-29 22:02:50 +0100 | hackage | hedis 0.13.1 - Client library for the Redis datastore: supports full command set,pipelining. https://hackage.haskell.org/package/hedis-0.13.1 (k_bx) |
2020-11-29 22:03:35 +0100 | <dminuoso> | 21:46:49 merijn | hekkaidekapus: It's especially relevant with all of the EU reconsidering daylight savings time in the near future |
2020-11-29 22:03:43 +0100 | <dminuoso> | Its going to be a very interesting near future |
2020-11-29 22:04:09 +0100 | <hekkaidekapus> | lol |
2020-11-29 22:04:09 +0100 | <dminuoso> | Negative leap second, DST changes... |
2020-11-29 22:04:30 +0100 | <dminuoso> | I reckon we'll reap the benefits in years to come |
2020-11-29 22:04:39 +0100 | hekkaidekapus | thought dminuoso went for the pun… |
2020-11-29 22:06:53 +0100 | natechan | (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Quit: WeeChat 2.9) |
2020-11-29 22:07:29 +0100 | <dminuoso> | Is there a typeclass for things that have an empty constructor like Nothing or []? |
2020-11-29 22:07:41 +0100 | <merijn> | Alternative? :p |
2020-11-29 22:08:22 +0100 | wonko7 | (~wonko7@2a01:e35:2ffb:7040:55f1:c3a3:cdbe:bf52) |
2020-11-29 22:09:18 +0100 | Aquazi | (uid312403@gateway/web/irccloud.com/x-ilswyamvtndfxsrg) |
2020-11-29 22:09:42 +0100 | <hpc> | also Monoid depending on what kind you need |
2020-11-29 22:09:43 +0100 | <boxscape> | dminuoso https://hackage.haskell.org/package/data-default-0.7.1.1/docs/Data-Default.html#t:Default |
2020-11-29 22:10:04 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2020-11-29 22:10:25 +0100 | <boxscape> | I guess Pointed, as well |
2020-11-29 22:10:40 +0100 | <boxscape> | I guess Pointed, as well |
2020-11-29 22:10:42 +0100 | <boxscape> | whoops |
2020-11-29 22:10:44 +0100 | <boxscape> | I wanted to say |
2020-11-29 22:10:46 +0100 | <boxscape> | wait no |
2020-11-29 22:10:52 +0100 | <boxscape> | Pointed is different |
2020-11-29 22:12:33 +0100 | amiri | (~amiri@cpe-76-91-154-9.socal.res.rr.com) |
2020-11-29 22:13:12 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
2020-11-29 22:13:56 +0100 | <ddellacosta> | MonadThrow? |
2020-11-29 22:13:58 +0100 | ddellacosta | ducks |
2020-11-29 22:15:48 +0100 | DataComputist | (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
2020-11-29 22:20:26 +0100 | alp__ | (~alp@2a01:e0a:58b:4920:d15:e453:85b3:5c61) |
2020-11-29 22:20:44 +0100 | sagax | (~sagax_nb@213.138.71.146) (Ping timeout: 272 seconds) |
2020-11-29 22:21:16 +0100 | <dminuoso> | Mmm I guess Default is that thing |
2020-11-29 22:24:59 +0100 | <ryantrinkle> | for QuantifiedConstraints, it seems like sometimes it needs a little help; e.g., i have a `type family Object cat a :: Constraint` and `class Object cat a => Object' cat a with instance Object cat a => Object' cat a`, and finally an expression that uses it via a quantified constraint `forall x. obj x => Object' cat x` |
2020-11-29 22:25:06 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-29 22:25:17 +0100 | <ryantrinkle> | now if I just try to use `Object cat a` for some particular `a`, it doesn't work |
2020-11-29 22:25:49 +0100 | <ryantrinkle> | but defining: `with :: forall c r. c => (c => r) -> r` `with x = x` |
2020-11-29 22:26:01 +0100 | <ryantrinkle> | and prefixing with `with @(Object' cat a)` |
2020-11-29 22:26:08 +0100 | <ryantrinkle> | now it can find the Object cat a instance |
2020-11-29 22:26:12 +0100 | <ryantrinkle> | any advice on how to clean this up? |
2020-11-29 22:26:45 +0100 | geekosaur | (ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Remote host closed the connection) |
2020-11-29 22:26:57 +0100 | <ryantrinkle> | (it's necessary to go through the `class` because the type family can't be partially applied) |
2020-11-29 22:27:13 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 22:27:45 +0100 | contiver | (~contiver@84-115-64-168.wifi.dynamic.surfer.at) |
2020-11-29 22:30:08 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-29 22:30:20 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 22:32:16 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 22:33:17 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 22:33:23 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 22:34:00 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 22:34:10 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 22:34:52 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 22:36:05 +0100 | knupfer | (~Thunderbi@i5E86B463.versanet.de) (Ping timeout: 240 seconds) |
2020-11-29 22:36:23 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 22:37:02 +0100 | cosimone | (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
2020-11-29 22:37:59 +0100 | contiver_ | (~contiver@84-115-64-44.wifi.dynamic.surfer.at) |
2020-11-29 22:38:34 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9) |
2020-11-29 22:40:25 +0100 | contiver | (~contiver@84-115-64-168.wifi.dynamic.surfer.at) (Ping timeout: 256 seconds) |
2020-11-29 22:40:42 +0100 | travv0 | (sid293381@gateway/web/irccloud.com/x-bzeyalubfbhlrrhq) |
2020-11-29 22:41:00 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
2020-11-29 22:42:20 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) (Remote host closed the connection) |
2020-11-29 22:42:36 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) (Ping timeout: 240 seconds) |
2020-11-29 22:42:47 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:2a03:b58:ed4d:4ddd) (Ping timeout: 272 seconds) |
2020-11-29 22:43:57 +0100 | xff0x | (~fox@141.98.255.144) |
2020-11-29 22:49:52 +0100 | xff0x | (~fox@141.98.255.144) (Ping timeout: 272 seconds) |
2020-11-29 22:50:42 +0100 | Cotillion | (~Cotillion@185.163.110.116) (Remote host closed the connection) |
2020-11-29 22:51:07 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:2a03:b58:ed4d:4ddd) |
2020-11-29 22:51:31 +0100 | conal | (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
2020-11-29 22:52:09 +0100 | JavaSucksMan | (403483ab@64-52-131-171.championbroadband.com) |
2020-11-29 22:53:25 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 22:53:25 +0100 | conal | (~conal@64.71.133.70) (Client Quit) |
2020-11-29 22:53:51 +0100 | conal | (~conal@64.71.133.70) |
2020-11-29 22:55:10 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
2020-11-29 22:55:27 +0100 | <JavaSucksMan> | How can I restrict access to the full IO monad while still provide access to things like IORef that, aren't referentially transparent but don't actually do IO (from the OS point of view)? |
2020-11-29 22:55:27 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
2020-11-29 22:55:49 +0100 | <dolio> | Use ST? |
2020-11-29 22:55:53 +0100 | chkno | (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
2020-11-29 22:56:21 +0100 | <koz_> | You can also work in PrimMonad I guess? |
2020-11-29 22:56:34 +0100 | <JavaSucksMan> | I guess,,, and use #RealWorld# to get at IORefs? |
2020-11-29 22:56:46 +0100 | <hpc> | you'd use STRef |
2020-11-29 22:57:06 +0100 | <koz_> | I think there's a generalization of *Ref in primitive if you wanna go down the PrimMonad route IIRC. |
2020-11-29 22:58:51 +0100 | <JavaSucksMan> | PrimMonad looks interesting.... thanks |
2020-11-29 23:00:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2020-11-29 23:04:42 +0100 | ephemient | (uid407513@gateway/web/irccloud.com/x-bhblrmwjykztmyrl) |
2020-11-29 23:06:50 +0100 | fendor | (~fendor@91.141.2.60.wireless.dyn.drei.com) (Remote host closed the connection) |
2020-11-29 23:08:59 +0100 | Franciman | (~francesco@host-82-54-193-143.retail.telecomitalia.it) |
2020-11-29 23:10:48 +0100 | conman1 | (~conman@185.204.1.185) |
2020-11-29 23:12:05 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer) |
2020-11-29 23:13:07 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff217d005cd8d9846e4e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2020-11-29 23:17:05 +0100 | elfets | (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
2020-11-29 23:18:16 +0100 | jonatanb | (~jonatanb@83.24.220.252.ipv4.supernova.orange.pl) |
2020-11-29 23:18:58 +0100 | acidjnk_new | (~acidjnk@p200300d0c719ff21c162f6267ce4f02c.dip0.t-ipconnect.de) |
2020-11-29 23:20:10 +0100 | rprije | (~rprije@194-193-174-214.tpgi.com.au) |
2020-11-29 23:20:37 +0100 | boxscape | (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 264 seconds) |
2020-11-29 23:22:38 +0100 | heatsink | (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2020-11-29 23:26:31 +0100 | justsomeguy | (~justsomeg@216.186.218.241) |
2020-11-29 23:26:32 +0100 | justsomeguy | (~justsomeg@216.186.218.241) (Changing host) |
2020-11-29 23:26:32 +0100 | justsomeguy | (~justsomeg@unaffiliated/--/x-3805311) |
2020-11-29 23:27:28 +0100 | <dsal> | JavaSucksMan: It sounds like you were describing ST. |
2020-11-29 23:28:33 +0100 | <monochrom> | @quote monochrom Bond |
2020-11-29 23:28:33 +0100 | <lambdabot> | No quotes match. |
2020-11-29 23:28:35 +0100 | vicfred | (~vicfred@unaffiliated/vicfred) |
2020-11-29 23:28:58 +0100 | <dsal> | That's pretty deep. |
2020-11-29 23:29:04 +0100 | <monochrom> | Oh, this: |
2020-11-29 23:29:08 +0100 | <monochrom> | @quote monochrom 007 |
2020-11-29 23:29:08 +0100 | <lambdabot> | monochrom says: 007 titles for haskellers. fromForeignPtr withCString. You Only lift Twice. Bottoms Are Forever. The Monad with the Pure Function. For Your Types Only. A view to A seq. Licence |
2020-11-29 23:29:08 +0100 | <lambdabot> | to killThread. iterate Never Dies. unsafePerformIO Is Not Enough. |
2020-11-29 23:29:41 +0100 | <monochrom> | That last one may have been better off as The RealWorld# Is Not Enough |
2020-11-29 23:30:53 +0100 | livvy | (~livvy@gateway/tor-sasl/livvy) |
2020-11-29 23:30:57 +0100 | <maerwald> | everything is IO. GHC just creates a perfect illusion for us |
2020-11-29 23:31:51 +0100 | <monochrom> | I have a feeling that it's the opposite, IO is an illusion. |
2020-11-29 23:32:08 +0100 | <maerwald> | that's what academics like to believe :p |
2020-11-29 23:33:18 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2020-11-29 23:34:31 +0100 | <monochrom> | Rumour goes that if you assume an anti de Sitter space and do a holographic projection of the world to a surface, then the IO monad and the IO comonad are unified. |
2020-11-29 23:34:49 +0100 | <dminuoso> | The IO comonad? ... |
2020-11-29 23:35:00 +0100 | justanotheruser | (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 265 seconds) |
2020-11-29 23:35:01 +0100 | <monochrom> | I'm making it up. >:) |
2020-11-29 23:35:03 +0100 | <erisco> | oh yeah I have one of those on my coffee table |
2020-11-29 23:35:42 +0100 | <monochrom> | But a comonad allows you to do the much-wanted M a -> a |
2020-11-29 23:35:44 +0100 | mputz | (~Thunderbi@dslb-084-058-211-084.084.058.pools.vodafone-ip.de) (Quit: mputz) |
2020-11-29 23:35:50 +0100 | <dminuoso> | % :t unsafePerformIO |
2020-11-29 23:35:50 +0100 | <yahb> | dminuoso: IO a -> a |
2020-11-29 23:35:53 +0100 | dminuoso | chuckles |
2020-11-29 23:35:58 +0100 | <erisco> | it is true that you can use comonads to add purity to impure languages |
2020-11-29 23:36:16 +0100 | <erisco> | so then it is moreso a question of what you like by default, like strictness |
2020-11-29 23:37:57 +0100 | contiver__ | (~contiver@84-115-64-108.wifi.dynamic.surfer.at) |
2020-11-29 23:38:08 +0100 | carlomagno | (~cararell@148.87.23.5) (Remote host closed the connection) |
2020-11-29 23:38:32 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) (Remote host closed the connection) |
2020-11-29 23:38:52 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
2020-11-29 23:38:59 +0100 | gproto23 | (~gproto23@unaffiliated/gproto23) |
2020-11-29 23:39:59 +0100 | <erisco> | I feel like "everything is" statements are as broad as they are meaningless |
2020-11-29 23:40:36 +0100 | <maerwald> | they aren't really statements |
2020-11-29 23:40:49 +0100 | <monochrom> | Yes if you restrict to those that are really, seriously, provably true. |
2020-11-29 23:41:10 +0100 | contiver_ | (~contiver@84-115-64-44.wifi.dynamic.surfer.at) (Ping timeout: 272 seconds) |
2020-11-29 23:41:22 +0100 | hackage | intricacy 0.7.2.1 - A game of competitive puzzle-design https://hackage.haskell.org/package/intricacy-0.7.2.1 (mbays) |
2020-11-29 23:41:22 +0100 | <monochrom> | If you allow them to be statistically true of a majority, then you have useful statements. |
2020-11-29 23:43:36 +0100 | <monochrom> | But why do you like to suddenly discuss "everything is" sentences? |
2020-11-29 23:43:50 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:2a03:b58:ed4d:4ddd) (Ping timeout: 264 seconds) |
2020-11-29 23:44:03 +0100 | <maerwald> | Because programmers generally have a hard time with non-formal truths? :p |
2020-11-29 23:44:19 +0100 | xff0x | (~fox@2001:1a81:524c:7b00:6035:c577:b880:b950) |
2020-11-29 23:44:35 +0100 | <erisco> | it started with "everything is IO" and then continued with the negation |
2020-11-29 23:44:38 +0100 | <arw_> | yes. but even formally, most "everything is" sentences will be tautologies ala "everything is isomorphic to itself" |
2020-11-29 23:44:44 +0100 | <maerwald> | erisco: and both is true |
2020-11-29 23:44:57 +0100 | <erisco> | when A and not A are both true, what do you have |
2020-11-29 23:45:15 +0100 | <maerwald> | erisco: there's more than just classical logic |
2020-11-29 23:45:37 +0100 | <erisco> | well I'm asking you, I didn't make any logical judgement about it :P |
2020-11-29 23:46:36 +0100 | <monochrom> | I think programmers have no trouble believing and insisting non-formal truths like "pure FP is impractical" and "non-tail recursion uses call stack space". |
2020-11-29 23:47:06 +0100 | <maerwald> | erisco: https://aeon.co/essays/the-logic-of-buddhist-philosophy-goes-beyond-simple-truth |
2020-11-29 23:47:14 +0100 | <monochrom> | Or maybe that's exactly what you mean. |
2020-11-29 23:47:23 +0100 | LKoen | (~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-29 23:47:44 +0100 | <maerwald> | it's also formally explained there, kinda |
2020-11-29 23:48:11 +0100 | carlomagno | (~cararell@148.87.23.4) |
2020-11-29 23:48:25 +0100 | Rudd0^ | (~Rudd0@185.189.115.108) |
2020-11-29 23:48:32 +0100 | Rudd0 | (~Rudd0@185.189.115.108) (Read error: Connection reset by peer) |
2020-11-29 23:48:45 +0100 | <JavaSucksMan> | When A and not A are both true, you have.....trivial completeness ;-) |
2020-11-29 23:49:32 +0100 | <maerwald> | https://en.wikipedia.org/wiki/Many-valued_logic |
2020-11-29 23:49:55 +0100 | <JavaSucksMan> | or paraconsistant logics |
2020-11-29 23:50:16 +0100 | <erisco> | if you can assume A and successfully describe the world, and, as a separate endeavour, assume not A and also successfully describe the world, what importance does A or not A have |
2020-11-29 23:50:39 +0100 | <maerwald> | erisco: the part that the reader missed :D |
2020-11-29 23:51:02 +0100 | perrier-jouet | (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9) |
2020-11-29 23:51:09 +0100 | <maerwald> | if you think about it, it's gone |
2020-11-29 23:51:38 +0100 | <maerwald> | the paradox of the ineffible |
2020-11-29 23:52:09 +0100 | <maerwald> | or just "aesthetic truth" to be more classic |
2020-11-29 23:52:37 +0100 | <maerwald> | because again: none of those were actually statements |
2020-11-29 23:52:47 +0100 | nango` | (~user@2001:4bb8:2c0:f87:3991:44c0:3223:4b98) (Ping timeout: 260 seconds) |
2020-11-29 23:55:38 +0100 | <erisco> | "aesthetic truth" sounds like a euphemism for politics |
2020-11-29 23:55:49 +0100 | <maerwald> | no |
2020-11-29 23:56:24 +0100 | <maerwald> | there's a few centuries of philosophy research about it :p |
2020-11-29 23:56:27 +0100 | <monochrom> | "reality" is. |
2020-11-29 23:56:55 +0100 | oish | (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds) |
2020-11-29 23:57:21 +0100 | monochrom | contemplates "what would go into a book titled Political Haskell?" |
2020-11-29 23:57:31 +0100 | <maerwald> | I think it's important to talk about non-formal properties of e.g. languages as well. Such a property is how it "feels". And if you ask most programmers, it's actually something you can talk about |
2020-11-29 23:58:12 +0100 | <monochrom> | Yes. For example "productivity". |
2020-11-29 23:58:27 +0100 | <monochrom> | "power" |
2020-11-29 23:58:44 +0100 | <monochrom> | "readability" |
2020-11-29 23:59:52 +0100 | <erisco> | why did my blood pressure go up |