Logs on 2020-12-18 (freenode/#haskell)
| 00:00:02 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 00:00:25 | <justsomeguy> | Ok, testing it out, that seems to be correct. |
| 00:00:49 | <sm[m]> | justsomeguy: distribution is a bit harder than python in some ways, isn't it ? |
| 00:00:58 | <ddellacosta> | I think it also allows more arbitrary levels of nesting |
| 00:01:04 | → | rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
| 00:03:04 | <justsomeguy> | sm[m]: I get the impression that setting up CI could be complicated. My use case is basically "ship a single static binary of a simple utility to other similar linux VMs", though. |
| 00:03:34 | → | nineonine joins (~nineonine@50.216.62.2) |
| 00:03:43 | <sm[m]> | Ah, that's easy enough then |
| 00:04:19 | <hpc> | sm[m]: even if you package it in a deb or something, you don't need to give it any dependencies |
| 00:04:23 | <hpc> | just plop it in /usr/bin |
| 00:04:25 | <justsomeguy> | Probably any compiled language could boast the same benefit, but I only know Python (and a smidgen of JS/ruby/shell) at this point. |
| 00:04:46 | <hpc> | any compiled and static linked language |
| 00:05:01 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Ping timeout: 268 seconds) |
| 00:05:33 | <hpc> | dynamic linked, and you get stuff like most C++ software, where you're pulling in dozens of libfoo packages for any given tool |
| 00:05:58 | <dolio> | The Haskell report says that all instances must be like `T x y z ...` where `T` is a concrete thing, and the variables `x, y, z, ...` are all distinct. So anything that isn't like that requires flexible instances. |
| 00:06:37 | <sm[m]> | hpc: I'm thinking about the difficulty of sharing not-entirely-static binaries on machines of different vintage, distro or architecture, and the effort required to build if you ship source instead. Compared to a python script |
| 00:08:34 | <koz_> | Hoogle appears down? |
| 00:08:53 | <justsomeguy> | Thanks dolio |
| 00:10:05 | × | mirrorbird quits (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86) (Quit: Leaving) |
| 00:11:45 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1) |
| 00:12:05 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 00:12:06 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 00:12:19 | <hpc> | ah, fair |
| 00:13:16 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 240 seconds) |
| 00:14:32 | × | _linker_ quits (~linker@2a02:a31a:a041:9a80:3db8:9890:7378:91f0) (Remote host closed the connection) |
| 00:20:20 | <dminuoso> | justsomeguy: Setting up the CI can be quite simple. Here, we have a gitlab-ci runner that does nothing but just run a simple shell command `cabal build` and that's it! |
| 00:21:22 | <dminuoso> | One of our main projects just does a simple `cabal v2-build -j4 odin && cp $(cabal-plan list-bin odin) bin/odin` - that's it! :) |
| 00:22:37 | → | johnw joins (~johnw@haskell/developer/johnw) |
| 00:23:08 | × | elfets quits (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) (Quit: Leaving) |
| 00:23:22 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:24:13 | <dminuoso> | So distributing it as simple as just giving you the elf binary, with the added understanding that the target system must provide for glibc/libgmp, and whatever other shared libraries you may need. |
| 00:24:22 | <dminuoso> | But that's no different than any other binary distribution. |
| 00:26:39 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 00:27:59 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:28dc:ced:c9c6:912b) |
| 00:28:13 | <justsomeguy> | Sounds relatively simple! |
| 00:31:48 | <dminuoso> | Static builds are possible too, https://www.tweag.io/blog/2020-09-30-bazel-static-haskell/ has some useful information on this. |
| 00:32:03 | <dminuoso> | Though they do it with nix, you can do it with musl inside say a docker container too |
| 00:32:06 | × | sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Quit: The Lounge - https://thelounge.chat) |
| 00:32:36 | <justsomeguy> | I've heard that one way to do it is by building in an alpine linux container (which uses musl). Haven't tried it yet, though. |
| 00:33:10 | <justsomeguy> | Tweag does some interesting things with its build system. |
| 00:33:18 | → | sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
| 00:33:32 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:28dc:ced:c9c6:912b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:36:01 | × | sakirious quits (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) (Client Quit) |
| 00:38:52 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:42:28 | <koz_> | justsomeguy: I have tried the Alpine container method. It actually works pretty well. |
| 00:44:40 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 246 seconds) |
| 00:46:24 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 260 seconds) |
| 00:50:11 | × | stef204 quits (~stef204@unaffiliated/stef-204/x-384198) (Quit: WeeChat 2.9) |
| 00:51:16 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-zusnndplrgkopqpl) |
| 00:51:43 | × | xcmw quits (~textual@2603-6011-2200-f103-8011-a882-4e38-cf45.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:52:26 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:28dc:ced:c9c6:912b) |
| 00:55:26 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 00:55:38 | → | Deide1 joins (~Deide@217.155.19.23) |
| 00:56:33 | <towel> | Haskell wiki is down for me: https://wiki.haskell.org/ |
| 00:56:36 | <towel> | Anyone else? |
| 00:56:54 | × | Deide quits (~Deide@217.155.19.23) (Ping timeout: 260 seconds) |
| 00:56:55 | <yushyin> | for me too |
| 00:56:56 | <monochrom> | Yeah 503 backend unavailable |
| 00:57:08 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1) |
| 00:57:14 | <Boarders> | does anyone know how to benchmark something that consumes stdin (with getContents). Currently I get: " Data.ByteString.hGetLine: illegal operation (handle is closed)" |
| 00:57:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 00:57:29 | × | statusfailed quits (~statusfai@statusfailed.com) (Ping timeout: 260 seconds) |
| 00:58:04 | → | statusfailed joins (~statusfai@statusfailed.com) |
| 00:58:25 | <ezzieyguywuf> | where can I read up more about how cabal and ghc-pkg (they're related, right?!) figure out dependencies and handle conflicts? |
| 00:59:05 | <ezzieyguywuf> | i.e. if one package depends on <QuickCheck2.14 and another on >=QuickCheck2.14, I'm interested how they can both peacefully coexist, and even depend on each other |
| 00:59:16 | <MarcelineVQ> | "<justsomeguy> I really hope that Idris becomes a useable language for practical things in my lifetime. (Maybe it already is?)" give it a try |
| 00:59:26 | → | olligobber joins (~olligobbe@unaffiliated/olligobber) |
| 00:59:26 | → | mirrorbird joins (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86) |
| 01:03:08 | × | Deide1 quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 01:03:46 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds) |
| 01:04:44 | <monochrom> | ezzieyguywuf: I don't have a page to refer you to. If they never seen each other, they coexist fine. If you want them to depend on each other, or a 3rd package that depends on them both, that is disallowed. |
| 01:04:56 | × | mimi_vx quits (~mimi@2a01:490:16:1026:d923:3519:de60:eb74) (Quit: WeeChat 3.0) |
| 01:05:29 | <ezzieyguywuf> | monochrom: ah hah. |
| 01:05:59 | × | olligobber quits (~olligobbe@unaffiliated/olligobber) (Remote host closed the connection) |
| 01:06:11 | <ezzieyguywuf> | monochrom: I feel like I saw an instance where a packages main executable depended on a recent version of some dependency, but the test executable depended on an older version |
| 01:06:17 | → | cheater joins (~user@unaffiliated/cheater) |
| 01:06:26 | <ezzieyguywuf> | is that common/allowed, or did I perhaps just misread something? |
| 01:06:44 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:c08c:a5a2:10fd:4192) |
| 01:07:08 | <monochrom> | Perhaps the author forgot to update. |
| 01:07:18 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 268 seconds) |
| 01:07:27 | <ezzieyguywuf> | ah, i see. |
| 01:07:34 | <monochrom> | But I guess my granularity was too coarse. |
| 01:07:54 | → | Deide joins (~Deide@217.155.19.23) |
| 01:08:21 | <monochrom> | An exe component can be independent of a test component. They are built separately anyway. |
| 01:08:32 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 268 seconds) |
| 01:09:02 | × | coot quits (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 01:09:12 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 01:13:41 | × | gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving) |
| 01:13:56 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:c08c:a5a2:10fd:4192) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:15:40 | → | xcmw joins (~textual@2603-6011-2200-f103-8011-a882-4e38-cf45.res6.spectrum.com) |
| 01:19:01 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 01:19:46 | → | alice1 joins (~alice@2a01cb0409c990003ccf6635f6976a70.ipv6.abo.wanadoo.fr) |
| 01:22:55 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@2403:6200:8876:cecf:c08c:a5a2:10fd:4192) |
| 01:26:56 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
| 01:27:20 | → | aev_software joins (~Admin@pool-108-5-152-94.nwrknj.fios.verizon.net) |
| 01:28:36 | alice1 | is now known as Seiryn |
| 01:28:38 | → | iqubic` joins (~user@2601:602:9500:4870:ea80:52c0:6e0b:7c11) |
| 01:28:50 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 01:29:06 | <aev_software> | Hey folks: anyone familiar with running haskell compiled on Windows? I'm creating a text-adventure dungeon game. It requires an i/o loop. After each putStrLn I have it print a 2nd newline. But sometimes it duplicates the last couple of letters. |
| 01:29:47 | <aev_software> | Is there anything I can do to fix that? |
| 01:30:43 | <xsperry> | are you calling putStrLn from multiple threads? |
| 01:31:00 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Remote host closed the connection) |
| 01:31:06 | <aev_software> | xsperry: not on purpose. I have programmed no threads. |
| 01:31:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:31:25 | × | ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 264 seconds) |
| 01:32:26 | <Seiryn> | Hmm, I don't know how it's implemented, but maybe because Windows use CRLF instead of LF ? |
| 01:32:57 | × | iqubic quits (~user@2601:602:9500:4870:bec7:122b:1c06:a2d0) (Ping timeout: 258 seconds) |
| 01:33:16 | <aev_software> | Seiryn: yes, that's a good possibility. Does haskell have a cross-platform newline? |
| 01:33:26 | <xsperry> | I've used haskell on windows and I never experienced that before. CRLF vs LF shouldn't be causing it |
| 01:34:16 | <aev_software> | For context: I'm in a command prompt with codepage 65001 for unicode. |
| 01:34:39 | × | tsrt^ quits (tsrt@ip98-184-89-2.mc.at.cox.net) () |
| 01:35:02 | <ezzieyguywuf> | aev_software: I've ran into issues with printing to the cli (on linux mind you) in a weird order. something about having to call hflush |
| 01:35:13 | <jollygood2> | aev_software do you have a tests case? |
| 01:35:14 | <Seiryn> | Sometimes CRLF vs LF mess around, depending of your configuration |
| 01:35:25 | <jollygood2> | test case* |
| 01:36:17 | × | columbarius quits (~columbari@87.123.198.173) (Ping timeout: 268 seconds) |
| 01:36:34 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 01:37:36 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 01:38:19 | → | columbarius joins (~columbari@mue-88-130-54-018.dsl.tropolys.de) |
| 01:38:35 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Excess Flood) |
| 01:39:51 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 01:40:01 | <aev_software> | hflush to flush the output buffer? I could do that. I'll also look for a cross-platform newline. Otherwise I might have to program an OS-dependent function, and I'm not looking forwardto that. |
| 01:40:47 | <aev_software> | jollygood2: Not really. You can download my program and run it yourself to duplicate the problem, I guess. |
| 01:41:18 | <aev_software> | I have it up on SourceHut: https://sr.ht/~aev/maskies |
| 01:41:28 | <fuzzypixelz> | if only there were a python-to-haskell translator |
| 01:42:02 | <jollygood2> | iirc \n is converted to system dependent sequence of characters on streams opened in text mode |
| 01:42:09 | × | sm2n_ quits (~sm2n@bras-base-hmtnon1497w-grc-44-69-156-5-58.dsl.bell.ca) (Ping timeout: 256 seconds) |
| 01:42:22 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 01:43:48 | <aev_software> | jollygood: there is at least 1 person on StackOverflow who says that, too. Looking for a reference. |
| 01:43:52 | <exarkun> | fuzzypixelz: I'm working on it |
| 01:45:40 | <aev_software> | Yes: Newline conversion is documented. https://downloads.haskell.org/~ghc/8.8.1/docs/html/libraries/base-4.13.0.0/System-IO.html#g:25 |
| 01:47:06 | × | Seiryn quits (~alice@2a01cb0409c990003ccf6635f6976a70.ipv6.abo.wanadoo.fr) (Quit: WeeChat 2.9) |
| 01:48:17 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 01:49:15 | → | guest1216 joins (~user@49.5.6.87) |
| 01:49:39 | <guest1216> | why spaces consume newline in parser? |
| 01:49:53 | <aev_software> | The base recognizes the Windows OS by looking at whether or not the constant mingw32_HOST_OS got defined? I hope it can have varying values? |
| 01:50:05 | <guest1216> | parse (spaces >> anyChar) "" "\na" == Right 'a' |
| 01:50:33 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 01:51:10 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds) |
| 01:51:54 | Lord_of_Life_ | is now known as Lord_of_Life |
| 01:52:56 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 268 seconds) |
| 01:53:41 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 01:53:59 | <xsperry> | spaces is short for white-spaces |
| 01:54:29 | <guest1216> | xsperry: newline is white-spaces? |
| 01:54:40 | <xsperry> | yes |
| 01:54:58 | <jle`> | > isSpace '\n' |
| 01:55:01 | <lambdabot> | True |
| 01:55:08 | <guest1216> | wt... |
| 01:55:12 | <jle`> | > filter isSpace [minBound..] |
| 01:55:14 | <lambdabot> | "\t\n\v\f\r \160\5760\8192\8193\8194\8195\8196\8197\8198\8199\8200\8201\8202... |
| 01:55:38 | <guest1216> | why people think newline is space... |
| 01:55:51 | <exarkun> | It has been considered space basically forever |
| 01:56:15 | × | mirrorbird quits (~psutcliff@2a00:801:447:b1bf:a43d:1573:86a9:1f86) (Quit: Leaving) |
| 01:56:27 | <jle`> | it's considered a space in the Unicode standard |
| 01:56:34 | <guest1216> | exceput ' ' and newline are white-sapces, any others? |
| 01:56:45 | <exarkun> | lambdabot just gave you a partial list above |
| 01:56:45 | <jle`> | i was listening them above |
| 01:56:47 | <guest1216> | > isSpace '\r' |
| 01:56:49 | <lambdabot> | True |
| 01:56:51 | <jle`> | *listing |
| 01:57:04 | → | Mikagami joins (~MOSCOS@152.32.70.55) |
| 01:57:04 | <exarkun> | There are quite a lot of them in unicode. |
| 01:57:07 | × | porvak quits (~porvak@84.39.117.57) (Remote host closed the connection) |
| 01:57:11 | <jle`> | > filter isSpace [minBound..] -- gives the list of all char's considered spaces according to haskell's impl of the unicode standard |
| 01:57:14 | <lambdabot> | "\t\n\v\f\r \160\5760\8192\8193\8194\8195\8196\8197\8198\8199\8200\8201\8202... |
| 01:57:18 | <guest1216> | ok |
| 01:57:20 | <jle`> | > length (filter isSpace [minBound..]) |
| 01:57:22 | <lambdabot> | 22 |
| 01:57:24 | <aev_software> | Nope, it's mingw32_HOST_OS no matter the Windows edition. There's other constants that hint at the architecture. |
| 01:57:28 | <jle`> | just 22 apparently |
| 01:57:37 | <exarkun> | You'd think 21 would be enough for anyone |
| 01:57:38 | <guest1216> | isSpace '\22' |
| 01:57:46 | <guest1216> | > isSpace '\22' |
| 01:57:49 | <lambdabot> | False |
| 01:57:51 | <jle`> | i meant, there are 22 characters that are considered spaces |
| 01:58:02 | <guest1216> | > isSpaces '\8196' |
| 01:58:03 | <jollygood2> | aev_software, can you try reproducing your issue with no more than dozen or two lines of code? |
| 01:58:05 | <lambdabot> | error: |
| 01:58:06 | <lambdabot> | • Variable not in scope: isSpaces :: Char -> t |
| 01:58:06 | <lambdabot> | • Perhaps you meant ‘isSpace’ (imported from Data.Char) |
| 01:58:26 | <guest1216> | ok |
| 01:58:31 | × | Mikagami quits (~MOSCOS@152.32.70.55) (Read error: Connection reset by peer) |
| 01:58:35 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 01:59:38 | → | Mikagami joins (~MOSCOS@152.32.70.55) |
| 02:00:01 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 02:00:16 | <aev_software> | jollygood2: yes, I could. It'll take a bit of time. |
| 02:00:57 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Ping timeout: 268 seconds) |
| 02:01:03 | <guest1216> | I think I should use ' ' to match empty spaces, spaces is too many |
| 02:02:28 | → | tff^ joins (tff@ip98-184-89-2.mc.at.cox.net) |
| 02:07:34 | × | guest1216 quits (~user@49.5.6.87) (Quit: ERC (IRC client for Emacs 27.1)) |
| 02:08:35 | × | xff0x quits (~fox@2001:1a81:5260:ab00:97f1:2be1:c9ad:fa5c) (Ping timeout: 272 seconds) |
| 02:09:05 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:28dc:ced:c9c6:912b) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 02:09:25 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 02:09:47 | → | xff0x joins (~fox@2001:1a81:5299:4500:9c52:d530:bd81:84ac) |
| 02:09:56 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 02:10:02 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 02:10:38 | <fuzzypixelz> | exarkun: reall? can I take a look? |
| 02:11:11 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Remote host closed the connection) |
| 02:11:39 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:11:43 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:8475:afe3:1ef1:874d) |
| 02:12:55 | <dsal> | Guest62909: space comes in both horizontal and vertical varieties. |
| 02:13:02 | <dsal> | wrong guest. |
| 02:13:43 | <aev_software> | Huh. I'm using the wrong version of my own executable, aren't I? |
| 02:14:06 | <dsal> | I do that sometimes. Takes forever to fix bugs. |
| 02:15:08 | × | hf69 quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Ping timeout: 268 seconds) |
| 02:17:29 | → | texasmynsted joins (~texasmyns@92.119.17.139) |
| 02:17:36 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 268 seconds) |
| 02:17:45 | → | Bille joins (~Bille@217.146.82.202) |
| 02:18:42 | × | mbomba quits (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0) |
| 02:18:48 | × | texasmynsted quits (~texasmyns@92.119.17.139) (Remote host closed the connection) |
| 02:19:00 | × | Entertainment quits (~entertain@104.246.132.210) () |
| 02:19:09 | × | hiroaki quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 02:21:12 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 02:22:36 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
| 02:26:08 | × | jollygood2 quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout)) |
| 02:26:14 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 268 seconds) |
| 02:26:33 | × | xsperry quits (~as@unaffiliated/xsperry) (Remote host closed the connection) |
| 02:27:23 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 02:28:14 | → | xsperry joins (~as@unaffiliated/xsperry) |
| 02:28:47 | → | jollygood2 joins (~bc8165ab@217.29.117.252) |
| 02:29:01 | → | prion joins (~prion@142.167.179.124) |
| 02:29:26 | <aev_software> | xsperry: I'm compiling it multi-threaded. I'll omit that and see what happens. |
| 02:30:00 | <prion> | i just discovered Data.Set.mapMonotonic and i can't figure out where it would be useful |
| 02:30:50 | → | olligobber joins (~olligobbe@unaffiliated/olligobber) |
| 02:32:16 | <MarcelineVQ> | it's big-O complexity is lower than non-monotonic |
| 02:32:55 | <MarcelineVQ> | iow it's potentially faster to use than regular map for Set but requires you to be careful about its use |
| 02:33:24 | → | drincruz joins (~adriancru@ool-44c748be.dyn.optonline.net) |
| 02:34:24 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection) |
| 02:34:41 | <MarcelineVQ> | have never used it myself fwiw |
| 02:34:45 | × | iqubic` quits (~user@2601:602:9500:4870:ea80:52c0:6e0b:7c11) (Quit: ERC (IRC client for Emacs 28.0.50)) |
| 02:35:14 | → | iqubic joins (~user@2601:602:9500:4870:ea80:52c0:6e0b:7c11) |
| 02:35:24 | → | EyalSK joins (~EyalSK@2a10:8003:484:0:4115:4a5e:3b48:e14e) |
| 02:35:34 | × | EyalSK quits (~EyalSK@2a10:8003:484:0:4115:4a5e:3b48:e14e) (Client Quit) |
| 02:36:06 | × | aev_software quits (~Admin@pool-108-5-152-94.nwrknj.fios.verizon.net) (Ping timeout: 268 seconds) |
| 02:39:13 | × | drincruz quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 264 seconds) |
| 02:41:29 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 02:42:13 | × | evanjs quits (~evanjs@075-129-098-007.res.spectrum.com) (Ping timeout: 256 seconds) |
| 02:43:31 | → | renzhi joins (~renzhi@2607:fa49:6500:ac00::bfed) |
| 02:46:04 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 02:46:17 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 02:48:45 | × | solonarv quits (~solonarv@astrasbourg-157-1-27-135.w90-40.abo.wanadoo.fr) (Ping timeout: 240 seconds) |
| 02:49:37 | × | esotericn quits (~daniel@5.148.79.26) (Ping timeout: 246 seconds) |
| 02:49:49 | → | aev_software joins (~Admin@pool-108-5-152-94.nwrknj.fios.verizon.net) |
| 02:52:10 | × | carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection) |
| 02:52:36 | <aev_software> | Hmm... my program also duplicates the last bytes of output when not compiled with threading. |
| 02:52:58 | <aev_software> | But not all the time. |
| 02:53:02 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 272 seconds) |
| 02:53:21 | → | esotericn joins (~daniel@5.148.79.26) |
| 02:53:52 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 02:55:04 | → | carlomagno joins (~cararell@148.87.23.9) |
| 02:56:23 | → | shikamaru joins (~user@222.85.230.142) |
| 02:57:07 | × | shikamaru quits (~user@222.85.230.142) (Remote host closed the connection) |
| 02:58:21 | <ezzieyguywuf> | is there a way to tell `cabal test` to skip one particular test suite? |
| 02:59:49 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Quit: leaving) |
| 03:00:42 | → | tenniscp25 joins (~tenniscp2@134.196.209.118) |
| 03:01:39 | → | nineonine joins (~nineonine@50.216.62.2) |
| 03:01:48 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 03:05:31 | → | sakirious joins (~sakirious@c-71-197-191-137.hsd1.wa.comcast.net) |
| 03:06:42 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 03:07:44 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 03:08:20 | × | glowpelt quits (~myst@focks.pw) (Max SendQ exceeded) |
| 03:08:41 | → | toorevitimirp joins (~tooreviti@117.182.182.252) |
| 03:08:55 | → | glowpelt joins (~myst@focks.pw) |
| 03:10:26 | × | Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa) |
| 03:11:15 | × | esotericn quits (~daniel@5.148.79.26) (Ping timeout: 268 seconds) |
| 03:11:52 | <monochrom> | I think no. |
| 03:13:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:13:43 | × | prion quits (~prion@142.167.179.124) (Ping timeout: 268 seconds) |
| 03:15:39 | <ezzieyguywuf> | monochrom: yea doesn't seem like |
| 03:15:45 | <ezzieyguywuf> | I looked through the cabal documentation |
| 03:16:00 | <ezzieyguywuf> | seems like it'd be handy |
| 03:16:05 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: fuzzypixelz) |
| 03:16:18 | <ezzieyguywuf> | the best alternative I could think of is explicitly listing each test to run, but this seems error prone |
| 03:16:49 | <dsal> | Just always run all the tests. |
| 03:16:59 | <dsal> | Though I do limit it to just one when I'm trying to be fast. |
| 03:17:20 | → | esotericn joins (~daniel@5.148.79.26) |
| 03:18:39 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 03:19:00 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 03:19:12 | × | Sheilong quits (uid293653@gateway/web/irccloud.com/x-zusnndplrgkopqpl) () |
| 03:19:16 | × | theDon quits (~td@muedsl-82-207-238-174.citykom.de) (Ping timeout: 268 seconds) |
| 03:19:18 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:19:53 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 268 seconds) |
| 03:20:21 | → | cheater joins (~user@unaffiliated/cheater) |
| 03:20:30 | × | rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 268 seconds) |
| 03:20:58 | → | theDon joins (~td@muedsl-82-207-238-130.citykom.de) |
| 03:21:44 | × | m0rphism quits (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) (Ping timeout: 268 seconds) |
| 03:22:08 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 03:22:54 | → | xirhtogal joins (~lagothrix@unaffiliated/lagothrix) |
| 03:22:54 | × | lagothrix quits (~lagothrix@unaffiliated/lagothrix) (Killed (rothfuss.freenode.net (Nickname regained by services))) |
| 03:22:54 | xirhtogal | is now known as lagothrix |
| 03:24:52 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 03:26:30 | → | drbean joins (~drbean@TC210-63-209-216.static.apol.com.tw) |
| 03:26:40 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 268 seconds) |
| 03:27:23 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 03:28:08 | <ezzieyguywuf> | dsal: I'm working on packaging some haskell stuff in gentoo. sometimes, for example, a test requires access to the network which our build system doesn't allow |
| 03:28:16 | <ezzieyguywuf> | these tests make sense during development but not during packaging |
| 03:29:12 | <dsal> | Yeah, that's kind of a bad test. |
| 03:30:12 | <dsal> | Well, I was going to say I did something more clever in my mqttd, but apparently I'm just using a free port on localhost. I *can* do better. |
| 03:31:36 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 03:31:56 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 03:32:21 | × | hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
| 03:32:48 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 03:39:48 | × | tenniscp25 quits (~tenniscp2@134.196.209.118) (Remote host closed the connection) |
| 03:40:01 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 03:40:04 | → | tenniscp25 joins (~tenniscp2@134.196.209.118) |
| 03:41:33 | × | tenniscp25 quits (~tenniscp2@134.196.209.118) (Client Quit) |
| 03:42:52 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 03:44:21 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:47:19 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
| 03:47:24 | × | Mikagami quits (~MOSCOS@152.32.70.55) (Remote host closed the connection) |
| 03:47:45 | → | Mikagami joins (~MOSCOS@152.32.70.55) |
| 03:48:46 | ezzieyguywuf | nods |
| 03:49:07 | <ezzieyguywuf> | hoogle was the one I was dealing with yesterday, needing network access |
| 03:49:34 | <ezzieyguywuf> | even Cabal has a hackage-tests suite, which while it doesn't require network (I think? didn't get that far...) it assumes that ~/.cabal/config exists |
| 03:51:49 | × | borne quits (~fritjof@200116b864804800c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 272 seconds) |
| 03:53:31 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 03:54:36 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 03:55:29 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:8475:afe3:1ef1:874d) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:56:48 | → | guest1218 joins (~user@49.5.6.87) |
| 03:58:19 | <guest1218> | parse (sepBy (many (noneOf "\n")) newline) "" "server = abc.net\nport = 6667\n" == Right ["server = abc.net", "port = 6667", ""] |
| 03:58:26 | <guest1218> | how to remove the last ""? |
| 03:58:36 | × | Kronic quits (~Kronic___@84.203.96.46) (Quit: Leaving) |
| 03:58:50 | <guest1218> | why sepBy would do this? |
| 03:59:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 03:59:21 | ← | yitz parts (~yitz@unaffiliated/yitz) () |
| 03:59:38 | <jle`> | try using some instead of many |
| 03:59:47 | <jle`> | since "" matches `many (noneOf "\n")` |
| 04:00:22 | <jle`> | many = 0 or more |
| 04:00:27 | <jle`> | so it's like * in regexps |
| 04:01:49 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 268 seconds) |
| 04:02:49 | <guest1218> | jle`: how |
| 04:03:13 | <jle`> | instead of `many`, use `some` |
| 04:03:17 | <jle`> | many is 0 or more |
| 04:03:19 | <jle`> | some is 1 or more |
| 04:03:43 | <guest1218> | jle`: some == many1? |
| 04:04:02 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 04:07:22 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 268 seconds) |
| 04:08:49 | <jle`> | yeah, many1 should work too :) |
| 04:08:55 | <guest1218> | jle`: I use Control.Applicative.some, that would be unexpected end of input |
| 04:11:20 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 256 seconds) |
| 04:12:16 | <guest1218> | jle`: some and many1 would be error |
| 04:12:55 | × | olligobber quits (~olligobbe@unaffiliated/olligobber) (Ping timeout: 268 seconds) |
| 04:14:12 | → | Tario joins (~Tario@201.192.165.173) |
| 04:14:26 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 04:18:00 | <guest1218> | jle`: I change sepBy to endBy, it works |
| 04:18:19 | <guest1218> | this is same problem with splitOn |
| 04:18:43 | <guest1218> | > splitOn "\n" "a\nb\n" |
| 04:18:46 | <lambdabot> | ["a","b",""] |
| 04:18:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 04:19:13 | <guest1218> | sepBy and splitOn have the same issue |
| 04:25:45 | → | olligobber joins (~olligobbe@unaffiliated/olligobber) |
| 04:27:09 | → | shf joins (~sheaf@2a01:cb19:80cc:7e00:3d51:cce0:e1c5:49b6) |
| 04:35:02 | × | dolio quits (~dolio@haskell/developer/dolio) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:35:32 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 256 seconds) |
| 04:42:27 | → | dolio joins (~dolio@haskell/developer/dolio) |
| 04:43:27 | → | argento joins (~argent0@168.227.96.53) |
| 04:44:59 | × | esotericn quits (~daniel@5.148.79.26) (Ping timeout: 268 seconds) |
| 04:47:18 | → | esotericn joins (~daniel@5.148.79.26) |
| 04:49:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:52:23 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
| 04:54:51 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 04:56:34 | <glguy> | guest1218, you just don't use splitOn or sepBy for line *terminators* |
| 04:56:47 | <glguy> | guest1218, for parser combinators you'd use endBy instead |
| 04:56:57 | <glguy> | > lines "a\nb\n" |
| 04:56:59 | <lambdabot> | ["a","b"] |
| 05:00:41 | → | texasmynsted joins (~texasmyns@92.119.17.139) |
| 05:02:11 | → | texasmyn_ joins (~texasmyns@184.75.212.155) |
| 05:04:36 | × | texasmynsted quits (~texasmyns@92.119.17.139) (Ping timeout: 240 seconds) |
| 05:07:18 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:cc57:4a3f:14e6:d0d5) |
| 05:09:02 | × | Wuzzy quits (~Wuzzy@p5b0df87d.dip0.t-ipconnect.de) (Quit: Wuzzy) |
| 05:12:38 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 05:13:21 | × | polyphem quits (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) (Ping timeout: 268 seconds) |
| 05:13:36 | × | texasmyn_ quits (~texasmyns@184.75.212.155) (Remote host closed the connection) |
| 05:15:44 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 05:19:42 | → | texasmynsted joins (~texasmyns@184.75.212.155) |
| 05:21:54 | → | elliott__ joins (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) |
| 05:22:36 | × | olligobber quits (~olligobbe@unaffiliated/olligobber) (Ping timeout: 240 seconds) |
| 05:23:08 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:23:13 | × | esotericn quits (~daniel@5.148.79.26) (Ping timeout: 268 seconds) |
| 05:23:21 | × | texasmynsted quits (~texasmyns@184.75.212.155) (Remote host closed the connection) |
| 05:24:07 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:26:41 | <pavonia> | When you Data.Binary.encode (1 :: Double), the result has a length of 25 bytes. Shouldn't that be 8 bytes at most? |
| 05:27:39 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 05:28:20 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 05:28:39 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Read error: Connection reset by peer) |
| 05:30:18 | × | Mikagami quits (~MOSCOS@152.32.70.55) (Read error: Connection reset by peer) |
| 05:30:28 | → | texasmynsted joins (~texasmyns@184.75.212.155) |
| 05:31:19 | → | MOSCOS joins (~MOSCOS@152.32.70.55) |
| 05:32:13 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 05:33:40 | × | MOSCOS quits (~MOSCOS@152.32.70.55) (Read error: Connection reset by peer) |
| 05:34:21 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 05:35:12 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 05:37:53 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 05:43:15 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Read error: Connection reset by peer) |
| 05:43:51 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 05:44:12 | <guest1218> | glguy: ok |
| 05:46:16 | → | wei2912 joins (~wei2912@unaffiliated/wei2912) |
| 05:48:00 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 05:48:40 | × | texasmynsted quits (~texasmyns@184.75.212.155) (Remote host closed the connection) |
| 05:48:56 | × | elliott__ quits (~elliott@pool-108-51-101-42.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 05:52:22 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 05:53:22 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 05:55:28 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 05:56:52 | → | texasmynsted joins (~texasmyns@184.75.212.155) |
| 05:58:29 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 05:58:37 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 246 seconds) |
| 06:00:16 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 06:01:08 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 272 seconds) |
| 06:01:18 | × | hexfive quits (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) (Quit: i must go. my people need me.) |
| 06:02:57 | → | prion joins (~prion@142.167.179.124) |
| 06:03:38 | → | Mikagami joins (~MOSCOS@152.32.70.55) |
| 06:05:12 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 06:06:45 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Ping timeout: 240 seconds) |
| 06:07:37 | × | todda7 quits (~torstein@ppp-2-84-17-53.home.otenet.gr) (Ping timeout: 268 seconds) |
| 06:08:21 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 06:09:49 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 06:09:50 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 06:11:57 | → | melosense_ joins (~melosense@4e69b241.skybroadband.com) |
| 06:12:30 | × | Mikagami quits (~MOSCOS@152.32.70.55) (Read error: Connection reset by peer) |
| 06:13:07 | → | Mikagami joins (~MOSCOS@152.32.70.55) |
| 06:13:10 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 268 seconds) |
| 06:14:18 | × | Guest95606 quits (~melosense@4e69b241.skybroadband.com) (Ping timeout: 256 seconds) |
| 06:14:18 | × | Mikagami quits (~MOSCOS@152.32.70.55) (Read error: Connection reset by peer) |
| 06:14:44 | → | Mikagami joins (~MOSCOS@152.32.70.55) |
| 06:16:03 | × | proteusguy quits (~proteusgu@cm-58-10-154-202.revip7.asianet.co.th) (Remote host closed the connection) |
| 06:16:52 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Ping timeout: 268 seconds) |
| 06:17:39 | → | nineonine joins (~nineonine@50.216.62.2) |
| 06:17:55 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 06:20:34 | × | Mikagami quits (~MOSCOS@152.32.70.55) (Ping timeout: 268 seconds) |
| 06:21:03 | × | texasmynsted quits (~texasmyns@184.75.212.155) (Remote host closed the connection) |
| 06:21:07 | × | nineonine quits (~nineonine@50.216.62.2) (Remote host closed the connection) |
| 06:21:16 | × | guest1218 quits (~user@49.5.6.87) (Remote host closed the connection) |
| 06:21:24 | → | nineonine joins (~nineonine@50.216.62.2) |
| 06:21:26 | → | guest1218 joins (~user@49.5.6.87) |
| 06:21:33 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 06:24:49 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 06:25:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:28:22 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 06:28:39 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 06:30:10 | × | mrchampion quits (~mrchampio@38.18.109.23) (Ping timeout: 256 seconds) |
| 06:30:54 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 06:32:08 | × | prion quits (~prion@142.167.179.124) (Quit: WeeChat 2.8) |
| 06:32:10 | × | xcmw quits (~textual@2603-6011-2200-f103-8011-a882-4e38-cf45.res6.spectrum.com) (Quit: Textual IRC Client: www.textualapp.com) |
| 06:32:13 | → | todda7 joins (~torstein@ppp-2-84-17-53.home.otenet.gr) |
| 06:33:12 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 06:35:52 | → | coot joins (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) |
| 06:36:56 | → | proteusguy joins (~proteusgu@cm-58-10-154-202.revip7.asianet.co.th) |
| 06:39:43 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:41:23 | × | sis7 quits (~user@2001:15e8:110:473e::1) (Remote host closed the connection) |
| 06:43:20 | × | Foritus quits (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) (Quit: ლ(ಠ益ಠლ) .:. <Ashley> my porn is hidden in a folder called "BBC Micro Emulator") |
| 06:45:38 | → | Foritus joins (~buggery@cpc91316-watf11-2-0-cust68.15-2.cable.virginm.net) |
| 06:47:59 | <glguy> | pavonia: it works via encodeFloat |
| 06:48:48 | <glguy> | Binary is for when you don't care how your data is encoded |
| 06:49:40 | × | tff^ quits (tff@ip98-184-89-2.mc.at.cox.net) () |
| 06:51:37 | → | vs^ joins (vs@ip98-184-89-2.mc.at.cox.net) |
| 06:52:42 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:cc57:4a3f:14e6:d0d5) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:53:37 | <glguy> | > encodeFloat pi |
| 06:53:39 | <lambdabot> | error: |
| 06:53:39 | <lambdabot> | • Could not deduce (Floating Integer) arising from a use of ‘pi’ |
| 06:53:40 | <lambdabot> | from the context: RealFloat a |
| 06:53:49 | → | olligobber joins (~olligobbe@unaffiliated/olligobber) |
| 06:54:01 | <glguy> | > decodeFloat pi |
| 06:54:04 | <lambdabot> | (7074237752028440,-51) |
| 06:54:51 | <pavonia> | > decodeFloat 0 |
| 06:54:53 | <lambdabot> | (0,0) |
| 06:55:00 | <pavonia> | > decodeFloat 1 |
| 06:55:03 | <lambdabot> | (4503599627370496,-52) |
| 06:55:08 | <pavonia> | O.o |
| 06:55:48 | <pavonia> | So the Integer is what bloats the encode result apparently |
| 06:58:38 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:58:41 | × | Neuromancer quits (~Neuromanc@unaffiliated/neuromancer) (Remote host closed the connection) |
| 07:00:56 | <glguy> | cereal uses the ieee format by default |
| 07:01:11 | <glguy> | There's another package for that for binary |
| 07:01:12 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 07:01:36 | <glguy> | I think cborg does it compactly by default |
| 07:03:14 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 07:04:54 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:05:28 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 246 seconds) |
| 07:11:08 | × | nineonine quits (~nineonine@50.216.62.2) (Ping timeout: 268 seconds) |
| 07:11:40 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 07:12:03 | → | CMCDragonkai2 joins (~Thunderbi@124.19.3.250) |
| 07:13:16 | × | argento quits (~argent0@168.227.96.53) (Quit: leaving) |
| 07:13:48 | × | phasespace quits (~sar@89-162-33-21.fiber.signal.no) (Ping timeout: 256 seconds) |
| 07:14:55 | × | CMCDragonkai2 quits (~Thunderbi@124.19.3.250) (Remote host closed the connection) |
| 07:16:22 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 07:16:23 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@2403:6200:8876:cecf:c08c:a5a2:10fd:4192) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 07:18:05 | → | mrchampion joins (~mrchampio@38.18.109.23) |
| 07:21:18 | × | mounty quits (~mounty@2001:8000:2f59:0:6c2e:3caf:57c1:9c66) (Ping timeout: 260 seconds) |
| 07:27:16 | × | todda7 quits (~torstein@ppp-2-84-17-53.home.otenet.gr) (Ping timeout: 272 seconds) |
| 07:28:56 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Read error: Connection reset by peer) |
| 07:28:59 | × | jollygood2 quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 07:29:38 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 07:32:00 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 07:32:46 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 246 seconds) |
| 07:36:38 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 264 seconds) |
| 07:39:18 | → | wonko7 joins (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) |
| 07:39:24 | → | asheshambasta joins (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) |
| 07:43:24 | × | Bille quits (~Bille@217.146.82.202) (Remote host closed the connection) |
| 07:43:43 | → | phasespace joins (~sar@80-89-47-117.inet.signal.no) |
| 07:46:33 | → | dhouthoo joins (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) |
| 07:52:19 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 07:53:36 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 07:54:18 | → | vilpan joins (~0@212.117.1.172) |
| 07:56:19 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 07:57:12 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 08:00:43 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
| 08:01:14 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 08:03:23 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 08:04:45 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@49.228.254.151) |
| 08:07:47 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:08:45 | → | brodie joins (~brodie@207.53.253.137) |
| 08:10:10 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 08:12:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
| 08:13:52 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 256 seconds) |
| 08:15:08 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 08:16:58 | <guest1218> | what does it mean to put <*> and <$> in parser? |
| 08:17:15 | <dsal> | guest1218: same thing it means anywhere else |
| 08:17:17 | <guest1218> | now I know *> and <|> |
| 08:17:42 | <dsal> | :t (<$>) |
| 08:17:44 | <lambdabot> | Functor f => (a -> b) -> f a -> f b |
| 08:17:55 | <guest1218> | what this mean? parse ((,) <$> char 'a' <*> char 'b') "ab" |
| 08:18:00 | <dsal> | :t (<*>) |
| 08:18:01 | <lambdabot> | Applicative f => f (a -> b) -> f a -> f b |
| 08:19:02 | <dsal> | > (,) <$> pure 'a' <*> pure 'b' |
| 08:19:05 | <lambdabot> | error: |
| 08:19:05 | <lambdabot> | • Ambiguous type variable ‘f0’ arising from a use of ‘show_M613650078549... |
| 08:19:05 | <lambdabot> | prevents the constraint ‘(Show |
| 08:19:19 | <dsal> | Yeah, that's a bit too ambiguous |
| 08:19:23 | <guest1218> | (,) is a function, char 'a' is a parser |
| 08:19:59 | <guest1218> | and also $> |
| 08:20:21 | <dsal> | It just means run the two parsers and if they both succeed, give them to (,) |
| 08:20:42 | <dsal> | $> is just half of <$> |
| 08:20:56 | <dsal> | :t ($>) |
| 08:20:57 | <lambdabot> | Functor f => f a -> b -> f b |
| 08:21:30 | → | danvet joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 08:21:31 | <guest1218> | wait a minute, I saw that <$> and <*> before, it's liftA2? |
| 08:21:33 | → | plutoniix joins (~q@184.82.207.11) |
| 08:21:52 | <dsal> | :t liftA2 |
| 08:21:53 | <lambdabot> | Applicative f => (a -> b -> c) -> f a -> f b -> f c |
| 08:22:43 | × | drbean quits (~drbean@TC210-63-209-216.static.apol.com.tw) (Quit: ZNC 1.8.2+cygwin1 - https://znc.in) |
| 08:23:01 | × | Sgeo quits (~Sgeo@ool-18b98aa4.dyn.optonline.net) (Read error: Connection reset by peer) |
| 08:23:18 | <guest1218> | parse (char 'a', char 'b') "ab"? |
| 08:23:18 | <dsal> | > liftA2 (,) "a" "b" |
| 08:23:21 | <lambdabot> | [('a','b')] |
| 08:23:34 | → | oish joins (~charlie@228.25.169.217.in-addr.arpa) |
| 08:23:51 | <dsal> | I don't think a tuple is a parser |
| 08:24:20 | <guest1218> | (,) <$> char 'a' = ? |
| 08:24:42 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:64b4:1541:658f:e8d8) (Remote host closed the connection) |
| 08:24:56 | <dsal> | :t (,) <$> "a" |
| 08:24:57 | <lambdabot> | [b -> (Char, b)] |
| 08:25:08 | × | jmchael_ quits (~jmchael@87.112.46.194) (Ping timeout: 268 seconds) |
| 08:25:37 | <guest1218> | > (+) <$> (Just 3) <*> (Just 7) |
| 08:25:39 | <lambdabot> | Just 10 |
| 08:25:43 | <dsal> | That's possibly confusing using list instead of parser, but it's easier if you understand the fundamentals first |
| 08:25:45 | <guest1218> | this one I understand |
| 08:25:52 | → | jmchael joins (~jmchael@81.174.180.109) |
| 08:26:08 | <guest1218> | (+) <$> (Just 3) == Just (+3) |
| 08:26:20 | <guest1218> | Just (+3) <*> Just 7 = Just 10 |
| 08:26:25 | <dsal> | :t (+) <$> Just 1 |
| 08:26:26 | <lambdabot> | Num a => Maybe (a -> a) |
| 08:27:11 | <guest1218> | (,) <$> "a" == \x -> (a,x) |
| 08:27:25 | <dsal> | > (+) <$> Just 3 :: Expr |
| 08:27:28 | <lambdabot> | error: |
| 08:27:28 | <lambdabot> | • Couldn't match expected type ‘Expr’ |
| 08:27:28 | <lambdabot> | with actual type ‘Maybe (a0 -> a0)’ |
| 08:27:28 | <guest1218> | no |
| 08:27:38 | <dsal> | Bah, nope |
| 08:27:56 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds) |
| 08:28:19 | <guest1218> | "a" == ['a'] |
| 08:28:22 | <dsal> | > ((+) <$> Just 3) :: Expr |
| 08:28:24 | <lambdabot> | error: |
| 08:28:24 | <lambdabot> | • Couldn't match expected type ‘Expr’ |
| 08:28:24 | <lambdabot> | with actual type ‘Maybe (a0 -> a0)’ |
| 08:28:41 | <guest1218> | (,) <$> "a" == [(,) 'a'] |
| 08:29:17 | <dsal> | > (,) 'a' 'b' |
| 08:29:20 | <lambdabot> | ('a','b') |
| 08:29:35 | <dsal> | Not sure where you got that list |
| 08:29:54 | <guest1218> | dsal: what list? |
| 08:30:34 | <dsal> | Oh, because you fmapped into a list. It's late. Heh |
| 08:31:20 | <dsal> | <$> is just fmap |
| 08:31:30 | <guest1218> | (,) <$> "a" == [(,) 'a'], (,) <$> "a" <*> "b" == [(,) 'a' 'b'] = [('a','b')] |
| 08:31:43 | <dsal> | Yeah. |
| 08:31:47 | → | lamasnik joins (~Nikolas@195.191.146.23) |
| 08:32:10 | <guest1218> | dsal: but I don't understand what it mean when put this on parser |
| 08:32:27 | <dsal> | Which part? |
| 08:32:37 | <guest1218> | (,) <$> char 'a' |
| 08:32:40 | <dsal> | A parser is a lot like Maybe |
| 08:33:05 | <dsal> | > succ <$> Just 'a' |
| 08:33:08 | <lambdabot> | Just 'b' |
| 08:33:35 | <dsal> | You can transform values within the parser the same way you do with Maybe |
| 08:33:39 | <guest1218> | dsal: (,) <$> char 'a' == char (,) 'a'? |
| 08:34:12 | → | kuribas joins (~user@ptr-25vy0i76oze9u46tlnk.18120a2.ip6.access.telenet.be) |
| 08:34:19 | <guest1218> | dsal: char 'a' , is not a value constructor |
| 08:34:36 | <dsal> | No, char is a function |
| 08:34:38 | <guest1218> | Just is a value constructor, [] is |
| 08:35:28 | <dsal> | > let char = Just in succ <$> char 'a' |
| 08:35:30 | <lambdabot> | Just 'b' |
| 08:36:14 | <guest1218> | (,) <$> char 'a' means (,) (char 'a')'s result? |
| 08:36:45 | → | Guest11594 joins (~AntiSpamM@84.39.117.57) |
| 08:36:57 | <guest1218> | dsal: this char is same? |
| 08:37:10 | <dsal> | It means the same thing it means anywhere else. Parser might as well be Maybe. There's no conceptual difference. |
| 08:37:13 | → | jedws joins (~jedws@121.209.189.201) |
| 08:37:16 | × | lamasnik quits (~Nikolas@195.191.146.23) (Quit: WeeChat 2.8) |
| 08:39:47 | <guest1218> | dsal: what about $> |
| 08:40:18 | → | chele joins (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) |
| 08:41:36 | × | jedws quits (~jedws@121.209.189.201) (Ping timeout: 240 seconds) |
| 08:44:28 | <merijn> | guest1218: You seem to be confused by even very basic concepts these past days. I recommend grabbing a decent book and starting from the basics instead of trying to figure out definitions by asking if 10 random interpretations are correct and waiting for people to correct you |
| 08:44:33 | <guest1218> | dsal: <$> <*> can work on different parsers's result, what $> is used to parser? |
| 08:45:24 | <guest1218> | merijn: I finished learn yourself a haskell for good |
| 08:46:01 | <guest1218> | and there's no lots of concepts in it |
| 08:46:23 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 08:46:24 | → | todda7 joins (~torstein@ppp-2-84-17-53.home.otenet.gr) |
| 08:46:28 | <guest1218> | a decent book you mean realworld haskell? |
| 08:47:12 | → | bliminse joins (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) |
| 08:47:13 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 08:48:09 | <dsal> | :t ($>) |
| 08:48:10 | <lambdabot> | Functor f => f a -> b -> f b |
| 08:48:12 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 08:48:28 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 08:48:40 | <dsal> | > Just 4 $> 'x' |
| 08:48:42 | <lambdabot> | Just 'x' |
| 08:49:20 | <guest1218> | parse (char 'a' $> 'b') "" "ac" == Right 'b', it's like if-else |
| 08:49:50 | <guest1218> | if char 'a' consumed, then return with 'b' |
| 08:50:23 | <dsal> | What's else? |
| 08:50:28 | <pavonia> | When converting a signed Integer to a Word (to store it as byte sequence), fromInteger seem to do the correct conversion. How do you go the opposite way? |
| 08:51:11 | <guest1218> | dsal: consturct 'b' with char 'a''s context? |
| 08:51:34 | <guest1218> | I'd like to environement, I don't know if it's proper |
| 08:51:56 | <idnar> | :t fromIntegral -- @pavonia |
| 08:51:57 | <lambdabot> | (Integral a, Num b) => a -> b |
| 08:53:15 | <pavonia> | idnar: No, that doesn't work, it always gives an unsigned Integer |
| 08:54:08 | <dsal> | pavonia: there's a binary package that does all the conversions, including endianness |
| 08:55:30 | <idnar> | pavonia: oh I see what you mean |
| 08:55:39 | <dsal> | @hackage binary |
| 08:55:39 | <lambdabot> | https://hackage.haskell.org/package/binary |
| 08:56:19 | <idnar> | pavonia: I think you want Int* instead of Word* |
| 08:57:46 | <pavonia> | How would you do it if you've got a Word* from a foreign library? |
| 08:58:34 | <idnar> | > fromInteger (-1) :: Word8 |
| 08:58:36 | <lambdabot> | 255 |
| 08:59:33 | <idnar> | > let x = fromInteger (-1) :: Word8 in toInteger (fromIntegral x :: Int8) |
| 08:59:35 | <lambdabot> | -1 |
| 09:00:05 | × | camlriot42 quits (camlriotma@gateway/shell/matrix.org/x-oczhhosnsfdjctzy) (Quit: Idle for 30+ days) |
| 09:00:06 | × | Hanma[m] quits (hanmamatri@gateway/shell/matrix.org/x-xirqpfxzlgorfgfx) (Quit: Idle for 30+ days) |
| 09:00:39 | <idnar> | from the Data.Int docs: "Coercing word types (see Data.Word) to and from integer types preserves representation, not sign." |
| 09:00:54 | × | wonko7 quits (~wonko7@2a01:e35:2ffb:7040:4535:f480:7dff:b3b5) (Ping timeout: 268 seconds) |
| 09:01:43 | <pavonia> | Ah, thanks |
| 09:01:55 | <idnar> | just make sure you go via the same-sized Int* type |
| 09:03:30 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 09:04:34 | × | oish quits (~charlie@228.25.169.217.in-addr.arpa) (Ping timeout: 260 seconds) |
| 09:05:17 | → | bl4nkz3r0 joins (~bl4nkz3r0@195.40.187.81.in-addr.arpa) |
| 09:06:20 | <pavonia> | I have to memorize that fromIntegral = fromInteger . toInteger |
| 09:07:42 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 256 seconds) |
| 09:09:12 | <dminuoso> | Does aeson have an interface to deal with objects that have duplicate keys? |
| 09:09:20 | <idnar> | note that there are some rewrite rules and specializations that make it perform better than its expansion |
| 09:09:31 | × | shf quits (~sheaf@2a01:cb19:80cc:7e00:3d51:cce0:e1c5:49b6) (Read error: Connection reset by peer) |
| 09:10:16 | × | aev_software quits (~Admin@pool-108-5-152-94.nwrknj.fios.verizon.net) (Ping timeout: 240 seconds) |
| 09:10:27 | <dminuoso> | type Object = HashMap Text Value |
| 09:10:29 | <dminuoso> | Haha nevermind I guess |
| 09:10:36 | <dminuoso> | So you cant parse all valid JSON with aeson. That sucks |
| 09:11:38 | <idnar> | dminuoso: https://hackage.haskell.org/package/aeson-1.5.4.1/docs/Data-Aeson-Parser.html#v:jsonWith |
| 09:11:39 | <merijn> | guest1218: I mean Bird's "Thinking Functionally With Haskell", Hutton's "Programming in Haskell", or "Haskell From First Principles", LYAH is not a particularly good book, tbh |
| 09:12:09 | <merijn> | pavonia: fromIntegral is the more generic version of fromInteger |
| 09:12:25 | <merijn> | Oh, wait, someone already said that :p |
| 09:12:28 | <dminuoso> | idnar: Mmm, strange. Alright |
| 09:12:30 | <dminuoso> | Thanks! |
| 09:12:50 | <int-e> | @src fromIntegral |
| 09:12:51 | <lambdabot> | fromIntegral = fromInteger . toInteger |
| 09:17:48 | × | jneira quits (501e6453@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.83) (Quit: Connection closed) |
| 09:17:56 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 09:21:08 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 09:21:17 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:9c60:5f28:257e:410b) |
| 09:22:43 | → | esp32_prog joins (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) |
| 09:22:50 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 264 seconds) |
| 09:23:08 | → | mbomba joins (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) |
| 09:24:25 | <gentauro> | lambdabot: :| |
| 09:24:34 | <gentauro> | was happening !!! |
| 09:25:04 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) |
| 09:25:59 | × | esp32_prog quits (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Client Quit) |
| 09:26:25 | → | esp32_prog joins (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) |
| 09:29:57 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) (Ping timeout: 260 seconds) |
| 09:31:37 | → | mounty joins (~mounty@210.1.196.133) |
| 09:35:06 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 09:36:07 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 09:36:11 | → | dyeplexer joins (~lol@unaffiliated/terpin) |
| 09:36:51 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 09:37:10 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 09:37:30 | × | gxt quits (~gxt@gateway/tor-sasl/gxt) (Quit: WeeChat 2.9) |
| 09:37:39 | × | bl4nkz3r0 quits (~bl4nkz3r0@195.40.187.81.in-addr.arpa) (Quit: bl4nkz3r0) |
| 09:37:56 | → | bl4nkz3r0 joins (~bl4nkz3r0@195.40.187.81.in-addr.arpa) |
| 09:38:16 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 09:38:39 | × | bl4nkz3r0 quits (~bl4nkz3r0@195.40.187.81.in-addr.arpa) (Client Quit) |
| 09:39:51 | → | michalz joins (~user@185.246.204.56) |
| 09:39:52 | → | Boomerang joins (~Boomerang@2a05:f6c7:2179:0:d811:4796:d80c:9d85) |
| 09:40:16 | → | u0_a203 joins (~u0_a203@37.98.47.224) |
| 09:40:26 | × | u0_a203 quits (~u0_a203@37.98.47.224) (Client Quit) |
| 09:41:53 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-evqgdihcidrcilck) (Quit: Connection closed for inactivity) |
| 09:42:27 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 09:42:47 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 09:44:29 | × | danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
| 09:46:32 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds) |
| 09:46:35 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 09:46:43 | → | livvy joins (~livvy@gateway/tor-sasl/livvy) |
| 09:47:39 | <ph88> | does anyone know how to use this function ? https://hackage.haskell.org/package/vinyl-0.13.0/docs/Data-Vinyl-Lens.html#v:rlensC i get one field from the row this works. But then how do i get the value of that field ? when i traceShow i see something like: MyColumn -> "myData" but i only need "myData" |
| 09:49:55 | <dminuoso> | ph88: Presumably with `view` or (^.) from say lens/microlens? |
| 09:50:16 | → | m0rphism joins (~m0rphism@HSI-KBW-085-216-104-059.hsi.kabelbw.de) |
| 09:50:56 | × | wei2912 quits (~wei2912@unaffiliated/wei2912) (Remote host closed the connection) |
| 09:52:14 | <ph88> | i could try that ye, not sure yet how to ... but that's a bit surprising because rgetC has as describtion: For Vinyl users who are not using the lens package, we provide a getter. |
| 09:52:59 | <kuribas> | merijn: it's a shame Real World haskell never got updated, because I liked that approach. |
| 09:53:02 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@49.228.254.151) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:55:27 | <merijn> | kuribas: There is a (partially?) updated RWH |
| 09:56:15 | <merijn> | kuribas: https://github.com/tssm/up-to-date-real-world-haskell |
| 09:57:14 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 09:57:26 | <idnar> | ph88: the getter is rgetC |
| 09:58:35 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 10:00:27 | → | ubert joins (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) |
| 10:02:06 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 10:03:11 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 268 seconds) |
| 10:06:37 | → | borne joins (~fritjof@200116b864c24e00c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 10:13:47 | <kuribas> | can you coerce functions? |
| 10:16:31 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 10:17:59 | <kuribas> | ah seems I can :-) |
| 10:18:16 | <lortabac> | kuribas: what do you mean? |
| 10:18:39 | <kuribas> | "f a b" where a and b are newtypes |
| 10:18:46 | <lortabac> | coerce between functions whose arguments are coercible? |
| 10:18:49 | <kuribas> | yes |
| 10:18:50 | <lortabac> | ok |
| 10:19:03 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 10:20:13 | <lortabac> | I guess it works because (->) is considered as a type constructor |
| 10:21:33 | <nshepperd2> | i think (->) is considered representational |
| 10:21:56 | <nshepperd2> | in its type parameters |
| 10:22:40 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 10:23:29 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 258 seconds) |
| 10:23:43 | <lortabac> | from the GHC manual: "(->) has two representational parameters" |
| 10:23:48 | × | dragestil quits (~quassel@fsf/member/dragestil) (Remote host closed the connection) |
| 10:24:58 | → | dragestil joins (~quassel@fsf/member/dragestil) |
| 10:25:20 | → | hiroaki joins (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) |
| 10:26:28 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) |
| 10:30:02 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 10:31:12 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) (Ping timeout: 260 seconds) |
| 10:31:19 | → | Neuromancer joins (~Neuromanc@unaffiliated/neuromancer) |
| 10:31:50 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Reconnecting) |
| 10:31:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:32:16 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 10:33:03 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 10:33:11 | × | brodie quits (~brodie@207.53.253.137) (Quit: brodie) |
| 10:33:47 | → | brodie joins (~brodie@207.53.253.137) |
| 10:39:19 | → | DavidEichmann joins (~david@62.110.198.146.dyn.plus.net) |
| 10:43:26 | × | brodie quits (~brodie@207.53.253.137) (Quit: brodie) |
| 10:44:10 | <dminuoso> | Let's say I have two `IntMap T` and I want to act on all values that are on the left side, values on the right side, and values that are on both sides separately. |
| 10:45:06 | <dminuoso> | Options I see include turning both into ascending lists and running Diff ontop of them |
| 10:46:58 | × | hiroaki quits (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds) |
| 10:47:26 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 256 seconds) |
| 10:49:34 | × | jamm quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 10:50:22 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 10:51:22 | <opqdonut> | dminuoso: why not union / difference for IntMaps? |
| 10:51:23 | × | hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 10:51:48 | <dminuoso> | opqdonut: I feel like Im doing unnecessary work that way |
| 10:52:07 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 10:52:38 | <opqdonut> | something like unionWith would help you classify values into these three buckets |
| 10:52:56 | <opqdonut> | so you'd need only one intmap operation |
| 10:53:23 | <tomsmeding> | diffing the ascending lists is probably the most efficient choice, but possibly not the most ergonomic |
| 10:53:23 | × | jb55 quits (~jb55@gateway/tor-sasl/jb55) (Ping timeout: 240 seconds) |
| 10:53:39 | <opqdonut> | mmh, yeah |
| 10:53:50 | <tomsmeding> | also dminuoso, T = Int? |
| 10:54:19 | <tomsmeding> | though I guess it doesn't really matter as long as you can define your "values that are on both sides" suitably |
| 10:54:19 | <opqdonut> | hmm right operate on all values, not all keys |
| 10:55:00 | <dminuoso> | Yeah, what I have right now is `comparingRR :: RR -> RR -> a -> a -> a -> a` as a continuation based equality with handrolled equality checking |
| 10:55:11 | <dminuoso> | The thing is, the notion of equality I have is based on just some fields of RR. |
| 10:55:47 | <dminuoso> | tomsmeding: The representation is not fixed really. Right now it's a pair of Text. |
| 10:56:16 | <tomsmeding> | so, when you say "values that are on both sides", do you mean values that occur both as key and as value in the IntMap? |
| 10:56:27 | <tomsmeding> | because that's what I understood, but that makes no sense if T ~= (Text, Text) |
| 10:56:35 | <dminuoso> | Ah! Let me rephrase |
| 10:58:21 | <dminuoso> | tomsmeding: Assume that I have two lists of type [(Text, RR)] |
| 10:58:33 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 10:58:35 | <dminuoso> | With a notion of equality on the first element of the tuple |
| 10:59:11 | <dminuoso> | but I guess my original function |
| 10:59:28 | <dminuoso> | `comparingRR :: (Text, RR) -> (Text, RR) -> a -> a -> a -> a` gives me everything I want in the spot Im at |
| 11:00:12 | → | hiroaki joins (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
| 11:00:18 | → | jb55 joins (~jb55@gateway/tor-sasl/jb55) |
| 11:00:47 | <tomsmeding> | unsure how the a -> a -> a -> a helps here (the free theorem on comparingRR tells that it can't do anything useful with those a's), but I think what you're asking is "how do I diff these lists with a custom equality function" -- well, diff them :p |
| 11:00:59 | <tomsmeding> | though to be able to diff them, you do need an ordering compatible with your equality relation |
| 11:01:32 | <tomsmeding> | either that or a compatible hashing, in which a hash map can work |
| 11:01:50 | <dminuoso> | the hashing would have to be perfect, Id have to dig deep into RFCs to know whether that could be done |
| 11:01:53 | <tomsmeding> | having neither basically forces you to an n^2 algorithm |
| 11:02:08 | <tomsmeding> | the hashing only has to be sufficient, in that a = b => H(a) = H(b) |
| 11:02:16 | <tomsmeding> | though the better it is, the more efficient :p |
| 11:03:17 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 260 seconds) |
| 11:03:49 | <dminuoso> | no, it has to be perfect, otherwise it could conflate things into being equal that are not equal |
| 11:04:05 | <dminuoso> | (forcing me to test for equality again) |
| 11:04:40 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 11:05:11 | <tomsmeding> | a hashmap requires both Hash and Eq :p |
| 11:05:35 | × | guest1218 quits (~user@49.5.6.87) (Remote host closed the connection) |
| 11:05:41 | <tomsmeding> | so you'll need the equality anyway |
| 11:05:42 | <dminuoso> | Ah. |
| 11:06:08 | <tomsmeding> | no hashmap ever relies on the fact that the hash is perfect (because usually it can't be), and double-checks with the real equality check |
| 11:06:19 | dminuoso | needs vacation |
| 11:06:36 | <tomsmeding> | which is fortunately coming up |
| 11:06:46 | <tomsmeding> | at least for the non-students among us |
| 11:07:19 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 11:07:28 | → | knupfer joins (~Thunderbi@200116b82c44cd00ec7cdffffe542d68.dip.versatel-1u1.de) |
| 11:08:07 | × | knupfer quits (~Thunderbi@200116b82c44cd00ec7cdffffe542d68.dip.versatel-1u1.de) (Remote host closed the connection) |
| 11:08:20 | → | knupfer joins (~Thunderbi@200116b82c44cd0088bdee5ac2ca8198.dip.versatel-1u1.de) |
| 11:08:30 | <tomsmeding> | if you have a compatible ordering, the algorithm would be: sort both [(Text, RR)] lists by (yourOrdering . fst), then do a single-pass linear diff (a la merge phase in merge sort) to construct your partitioning |
| 11:08:43 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
| 11:09:16 | <tomsmeding> | if you have a compatible hashing, the algorithm would be: make a HashSet of both lists, and loop over both lists individually, checking for each item whether it's contained in the other set |
| 11:09:55 | <tomsmeding> | I think you need at least one of those, except if you know of a different kind of data structure that I've never seen |
| 11:11:35 | tomsmeding | explained something to a regular, is proud |
| 11:11:40 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) (Quit: Nice weekend) |
| 11:12:52 | → | boxscape joins (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) |
| 11:13:17 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.29.10) |
| 11:15:28 | <dminuoso> | tomsmeding: there is a third alternative, which is a bit crazier |
| 11:15:39 | <dminuoso> | Im really itching for this one |
| 11:15:49 | <dminuoso> | https://hackage.haskell.org/package/discrimination-0.4/docs/Data-Discrimination.html#v:joining |
| 11:15:54 | <dminuoso> | I *think* this one would work |
| 11:16:37 | <dminuoso> | because if I sort first, and then compare again I throw away knowledge |
| 11:17:05 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 11:18:02 | <dminuoso> | In constant time :D |
| 11:18:16 | <dminuoso> | Err. linear hah |
| 11:19:05 | <tomsmeding> | I have no idea what 1. Decidable is, and 2. how to read the definition of joining |
| 11:19:13 | <tomsmeding> | but that looks cool |
| 11:19:50 | <dminuoso> | tomsmeding: The rough idea is that you can sort many data in linear time. |
| 11:20:07 | <tomsmeding> | like, I think I understand what the function _should_ be doing |
| 11:20:10 | → | solonarv joins (~solonarv@astrasbourg-157-1-27-135.w90-40.abo.wanadoo.fr) |
| 11:20:18 | <tomsmeding> | but I can't see through the spanEither &&& <$> in that definition :p |
| 11:21:46 | <boxscape> | If I derive Show and Read, am I right in thinking that "read . show" should always be id and never result in a parse error? |
| 11:22:20 | <tomsmeding> | no upon reflection I don't understand what 'joining' is supposed to be doing with just its arguments and the 'disc' function |
| 11:22:25 | × | rprije quits (~rprije@14-203-203-69.tpgi.com.au) (Ping timeout: 240 seconds) |
| 11:22:31 | <dminuoso> | boxscape: Yes. |
| 11:22:34 | <tomsmeding> | boxscape: I believe that's a guarantee that ghc gives you |
| 11:22:42 | <boxscape> | hmm I'm getting a parse error :( |
| 11:22:42 | <dminuoso> | That's mandated by Haskell2010 |
| 11:22:52 | <boxscape> | let me post the type |
| 11:22:54 | <dminuoso> | boxscape: you probably have some transitive type that *does* not follow it |
| 11:23:06 | <dminuoso> | boxscape: it only holds if the entire tree of data types uses deriving generated show/read instances |
| 11:23:09 | <boxscape> | the only transitive type is Int |
| 11:24:05 | <boxscape> | % infixl 6 :+; data Test = Int :+ Int deriving (Show, Read) |
| 11:24:05 | <yahb> | boxscape: |
| 11:24:21 | <boxscape> | wait let me make sure this is what I'm thinking of |
| 11:24:46 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 11:25:10 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
| 11:25:19 | <dminuoso> | % read (show (1 :+ 2)) :: Test |
| 11:25:19 | <yahb> | dminuoso: 1 :+ 2 |
| 11:25:29 | <tomsmeding> | % read (show (1 :+ ((2 :+ 3) :+ 4))) :: Test |
| 11:25:29 | <yahb> | tomsmeding: ; <interactive>:39:19: error:; * Couldn't match expected type `Int' with actual type `Test'; * In the second argument of `(:+)', namely `((2 :+ 3) :+ 4)'; In the first argument of `show', namely `(1 :+ ((2 :+ 3) :+ 4))'; In the first argument of `read', namely `(show (1 :+ ((2 :+ 3) :+ 4)))'; <interactive>:39:20: error:; * Couldn't match expected type `Int' with actual type `Test |
| 11:25:39 | <dminuoso> | boxscape: Note, that GHC will *not* preserve the exact shape of the AST. |
| 11:25:41 | <tomsmeding> | oh it's just Int |
| 11:25:44 | <dminuoso> | So you could write: |
| 11:25:49 | <dminuoso> | % read (show ((:+) 1 2)) :: Test |
| 11:25:49 | <yahb> | dminuoso: 1 :+ 2 |
| 11:26:07 | × | todda7 quits (~torstein@ppp-2-84-17-53.home.otenet.gr) (Ping timeout: 265 seconds) |
| 11:26:14 | <tomsmeding> | you can't observe the way the literal is written in the source code anyway |
| 11:26:27 | × | olligobber quits (~olligobbe@unaffiliated/olligobber) (Remote host closed the connection) |
| 11:26:27 | <dminuoso> | huh? |
| 11:26:29 | <dminuoso> | of course it could |
| 11:26:39 | <dminuoso> | it's not source code, its just a string |
| 11:26:43 | <dminuoso> | oh |
| 11:26:46 | <dminuoso> | for show you mean |
| 11:26:48 | <dminuoso> | mmm, yeah |
| 11:26:49 | <tomsmeding> | yes |
| 11:26:59 | <tomsmeding> | and the question was read . show :p |
| 11:27:23 | <tomsmeding> | for all you know it was head (zipWith (:+) [1..] [2..]) |
| 11:27:32 | <boxscape> | hmm it works if I try it in a fresh ghci, might be some extension |
| 11:27:40 | × | darjeeling_ quits (~darjeelin@122.245.217.210) (Ping timeout: 268 seconds) |
| 11:27:55 | <tomsmeding> | wat |
| 11:27:56 | <dminuoso> | boxscape: Im betting it's MMR! |
| 11:27:58 | <dminuoso> | :p |
| 11:28:02 | <dminuoso> | The usual culprit |
| 11:28:10 | <tomsmeding> | oh! |
| 11:28:22 | <dminuoso> | (A mixture of MMR and type defaulting) |
| 11:28:29 | <tomsmeding> | yes indeed, boxscape the parse error that you get, could that be because the inferred type of the read call is wrong |
| 11:28:34 | <boxscape> | hmm or wait maybe I was just being stupid because it seems to work now |
| 11:28:54 | <tomsmeding> | schrödinger errors |
| 11:29:10 | <dminuoso> | Heisenbug |
| 11:29:30 | <dminuoso> | That term even has a wikipedia article :) |
| 11:30:07 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 260 seconds) |
| 11:31:33 | <boxscape> | Okay it was a combination of being surprised that Read doesn't work if you don't put in parentheses and forgetting the type annotation when trying `read . show` |
| 11:33:25 | × | bliminse quits (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) (Ping timeout: 240 seconds) |
| 11:34:39 | → | bliminse joins (~bliminse@host109-158-129-129.range109-158.btcentralplus.com) |
| 11:37:16 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-jyxgencxqnzavabz) (Quit: Connection closed for inactivity) |
| 11:37:46 | → | flatmap joins (~flatmap@p200300dd371871004132f49785e35f6d.dip0.t-ipconnect.de) |
| 11:39:44 | <tomsmeding> | boxscape: yeah the Read instance doesn't take into account associativity, so you have the use explicit parentheses |
| 11:39:51 | <boxscape> | okay |
| 11:39:54 | <boxscape> | unfortunate |
| 11:39:58 | <tomsmeding> | or, well, the auto-generated instance doesn't |
| 11:40:02 | <boxscape> | right |
| 11:42:54 | → | jamm joins (~jamm@unaffiliated/jamm) |
| 11:44:57 | → | darjeeling_ joins (~darjeelin@122.245.217.210) |
| 11:45:21 | <kuribas> | Is using a lifted DataKind considered "not boring haskell"? |
| 11:45:39 | × | ulidtko quits (~ulidtko@194.54.80.38) (Ping timeout: 256 seconds) |
| 11:45:53 | <kuribas> | "data Nullable; data NotNull" vs "data Nullable = Nullable | NotNull" |
| 11:46:20 | <kuribas> | IMO the lifted datakind would *improve* on error messages. |
| 11:46:30 | <kuribas> | as you can never use the wrong kind. |
| 11:48:25 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 11:48:25 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@171.5.29.10) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 11:48:50 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 11:49:25 | × | pavonia quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 11:49:36 | → | drbean joins (~drbean@TC210-63-209-72.static.apol.com.tw) |
| 11:49:56 | → | ulidtko joins (~ulidtko@194.54.80.38) |
| 11:50:41 | <tomsmeding> | now that I understand how DataKinds work, I would consider that fairly "boring haskell", as long as the lifted type is just a simple numeration, as in your example |
| 11:50:48 | <tomsmeding> | but this is heavily opinion-based :p |
| 11:50:56 | <tomsmeding> | also experience-dependent |
| 11:51:02 | <kuribas> | true |
| 11:52:36 | <merijn> | tomsmeding: DataKinds is fairly simple, the big problem is everyone "wanting to make it do too much" :p |
| 11:53:10 | <tomsmeding> | see also perhaps the discussion here about the L and R types: https://github.com/haskell/containers/pull/340#pullrequestreview-43164 |
| 11:53:19 | <tomsmeding> | (search for "apropos of" on the page) |
| 11:53:47 | → | christo joins (~chris@81.96.113.213) |
| 11:54:02 | <merijn> | tomsmeding: Well, the thing is that DataKinds isn't Haskell2010 and containers as-is works fine with UHC and something GHC specific like DataKinds would break that |
| 11:54:31 | <tomsmeding> | ah good point |
| 11:55:26 | <merijn> | So it basically means "do we literally abandon any and all hope any Haskell code can ever use anything other than GHC" |
| 11:55:42 | → | Tario joins (~Tario@201.192.165.173) |
| 11:56:01 | → | gehmehgeh joins (~ircuser1@gateway/tor-sasl/gehmehgeh) |
| 11:56:07 | <lortabac> | forall A. now that I understand how A works, I consider A easy :) |
| 11:56:25 | <merijn> | lortabac: No |
| 11:56:54 | <tomsmeding> | "If quantum mechanics hasn't profoundly shocked you, you haven't understood it yet." -- Niels Bohr |
| 11:57:07 | <merijn> | lortabac: I understand how impredicative types work and I still don't "get it" :p |
| 11:57:21 | <lortabac> | fair point :) |
| 11:57:27 | × | Guest11594 quits (~AntiSpamM@84.39.117.57) (Remote host closed the connection) |
| 11:57:33 | <merijn> | tomsmeding: to be fair, Bohr was ancient and this view is largely incorrect nowadays |
| 11:57:51 | <tomsmeding> | quote was mostly in jest, but thought it was sort-of relevant :) |
| 11:58:01 | <merijn> | By now all the phycisists who consider QM shocking are all dead :p |
| 11:58:31 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:d5e6:6f2:2e3f:fbbc) (Remote host closed the connection) |
| 11:58:58 | → | ph88 joins (~ph88@ip5f5af6cd.dynamic.kabel-deutschland.de) |
| 12:00:03 | <__monty__> | That's news to me. |
| 12:00:17 | <merijn> | __monty__: How so? |
| 12:00:27 | <__monty__> | It's about it being shocking when you first learn about it not after spending a couple years in physics education. |
| 12:00:49 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 12:00:49 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 12:00:49 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 12:01:12 | <merijn> | __monty__: I doubt Bohr's quote was about that, rather than being about the large number of "anti-" quantum mechanics phycisists at the time Bohr was alive |
| 12:01:36 | <merijn> | Also, why is QM *shocking* when you first learn it? Confusing? Sure. But shocking and controversial? No. |
| 12:02:28 | <__monty__> | You don't think it's shocking to find out energy is quantized? |
| 12:02:29 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds) |
| 12:02:59 | <dminuoso> | tomsmeding: Boring haskell is what drives this, right? https://lh3.googleusercontent.com/proxy/RlGRUeGa4FgaOzeuZPp6j1iNNbQugc8ZKi2o2RcLEyUpTyEFjbLDskWLbbt33Uu6PiJEB_d5mtMyYAxXbrJsT5MuqS1kbFF9_E2m4R-IKGRWBiodX61q1nFEOnJx |
| 12:03:11 | <merijn> | __monty__: Not moreso than the original Bohr-ian notion of fixed orbits for electrons |
| 12:03:29 | × | glguy quits (x@freenode/staff/haskell.developer.glguy) (Read error: Connection reset by peer) |
| 12:03:39 | <kuribas> | merijn: spooky action at a distance is rather weird though |
| 12:03:48 | <dminuoso> | kuribas: No it's not. |
| 12:03:58 | <kuribas> | merijn: also the ability for information to go backwards in time. |
| 12:04:01 | <merijn> | Anyway, this is drifting off topic |
| 12:04:27 | <dminuoso> | The term "weird" tends to suggest there's something off about it, when in fact it's you who has a wrong and incorrect intuition/view of the world. |
| 12:04:32 | × | vs^ quits (vs@ip98-184-89-2.mc.at.cox.net) () |
| 12:06:32 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 12:06:36 | <lortabac> | tomsmeding: DataKinds is simple until your boss suddenly introduces the new requirement that your items of type 'data Label (a :: Color)' have to be deserialized from a JSON file |
| 12:07:00 | <tomsmeding> | fair point |
| 12:07:01 | <lortabac> | then you have to bring down the whole singletons machinery :) |
| 12:07:21 | <tomsmeding> | for some definition of "have to" |
| 12:07:23 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 12:07:28 | → | glguy joins (x@freenode/staff/haskell.developer.glguy) |
| 12:08:00 | <tomsmeding> | a GADT modelling reflecting a single value on the type level is easily written, and needs no singetons baggage |
| 12:08:13 | <tomsmeding> | if your whole application does this >20 times, then sure, use singletons |
| 12:08:36 | <tomsmeding> | but yes you suddenly arrive in the territory of existential types and GADTs |
| 12:08:54 | <lortabac> | by "singletons" I meant the technique, not the library |
| 12:08:56 | <tomsmeding> | which is not really "boring haskell" anymore |
| 12:09:09 | → | dhil joins (~dhil@78.156.97.38) |
| 12:09:10 | <tomsmeding> | fair |
| 12:09:38 | <tomsmeding> | on a related note, do "singletons" and "reified types" refer to the same kind of thing? |
| 12:10:21 | <lortabac> | I don't know what "reified types" means |
| 12:10:49 | × | plutoniix quits (~q@184.82.207.11) (Quit: Leaving) |
| 12:10:52 | → | todda7 joins (~torstein@ppp-2-84-17-53.home.otenet.gr) |
| 12:11:30 | <tomsmeding> | these are referred to as reified types: https://github.com/AccelerateHS/accelerate/blob/master/src/Data/Array/Accelerate/Type.hs#L109-L151 |
| 12:12:16 | <tomsmeding> | perhaps ignore the VectorType, it's weird |
| 12:12:34 | × | mbomba quits (~mbomba@bras-base-toroon2719w-grc-53-142-114-5-26.dsl.bell.ca) (Quit: WeeChat 3.0) |
| 12:14:25 | → | Entertainment joins (~entertain@104.246.132.210) |
| 12:14:32 | <lortabac> | yes, I'd say these are singletons |
| 12:14:43 | <lortabac> | it's a sort of hand-made TypeRep |
| 12:15:40 | <tomsmeding> | this particular library dates from slightly before the singletons library, so some overlapping terminology is to be expected, I suppose |
| 12:15:44 | <merijn> | tomsmeding: "reified" is just the opposite of abstraction |
| 12:15:57 | <merijn> | Well, of "abstracted" I suppose |
| 12:16:59 | <tomsmeding> | thing is I understand this trick but I don't know the details about singletons, so knowing it's, on a high level, the same trick is reassuring :p |
| 12:17:05 | <merijn> | The singletons library relies on singleton (i.e. globally unique) values to be able to reify types |
| 12:17:25 | <merijn> | (and values, I suppose?) |
| 12:17:44 | <tomsmeding> | not sure if "reifying values" makes sense, but sure |
| 12:18:01 | <tomsmeding> | but thanks :) |
| 12:18:11 | <merijn> | tomsmeding: Sure it does |
| 12:18:34 | <lortabac> | tomsmeding: the 'singletons' library is a generalization of this technique + a bunch of useful tools for working with these "reified" types |
| 12:18:41 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
| 12:18:48 | <merijn> | tomsmeding: Suppose you have "Proxy :: Proxy (5 :: Nat)" you often want to reify the type 5 as value 5 |
| 12:18:56 | <tomsmeding> | lortabac: I see, makes sense |
| 12:19:12 | × | SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Read error: Connection reset by peer) |
| 12:19:23 | <tomsmeding> | merijn: then you're still reifying a type though, not a value |
| 12:20:05 | <nshepperd2> | you reify a type by turning it into a value. you reify a value by sending it to the printer :) |
| 12:21:12 | <dminuoso> | nshepperd2: Trick question. How does one reify ()? |
| 12:21:37 | <merijn> | tomsmeding: What? No |
| 12:21:43 | <nshepperd2> | by realizing that you're standing in it |
| 12:21:44 | <merijn> | tomsmeding: You're materialising a *value* |
| 12:22:09 | → | SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net) |
| 12:22:10 | <merijn> | tomsmeding: When I make soup, I'm not making the ingredients |
| 12:22:23 | <merijn> | tomsmeding: When I reify, I reify the *result* not the inputs |
| 12:22:49 | <merijn> | If I create a value 5 out of "Proxy :: Proxy 5" I'm reifying a value |
| 12:23:04 | <merijn> | If I'm turning value 5 into the type 5, then I reify a type |
| 12:23:21 | <nshepperd2> | that doesn't sound right |
| 12:24:02 | <merijn> | nshepperd2: Well, I guess it's more like "if I turn unknown value 'x' into a type corresponding to 'x'" |
| 12:24:50 | <nshepperd2> | you yourself said "reify the type 5 as value 5" where the direct object was the type |
| 12:24:52 | → | phillip joins (~phillip@217.146.82.202) |
| 12:25:12 | <merijn> | "Proxy (n :: Nat) -> Integer" and "Integer -> SomeNat" |
| 12:25:19 | → | mastarija joins (~mastarija@93-136-24-74.adsl.net.t-com.hr) |
| 12:26:46 | × | DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection) |
| 12:27:01 | <merijn> | nshepperd2: I stand by my earlier comparison "want to make tomato puree into soup" "want to reify the type 5 into value 5" :p |
| 12:27:43 | → | DavidEichmann joins (~david@62.110.198.146.dyn.plus.net) |
| 12:27:45 | <nshepperd2> | the verb 'make' has a lot of senses |
| 12:28:00 | <merijn> | So does reify :p |
| 12:28:04 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) |
| 12:28:30 | <lortabac> | "reify" is second only to "lift" :D |
| 12:28:31 | <merijn> | In fact, I'd argue they are very similar :p |
| 12:28:54 | <nshepperd2> | you would say 'reify the value 5 from the type 5' if it was as you describe |
| 12:29:08 | <nshepperd2> | not 'reify the type 5 into the value 5' |
| 12:29:26 | × | hiroaki quits (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds) |
| 12:29:33 | <merijn> | reify, verb: to convert into or regard as a concrete thing |
| 12:29:54 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 12:30:53 | <lortabac> | the documentation of Data.Reflection.reify says "Reify a value at the type level", the object is "value" but the result is a type |
| 12:31:26 | <lortabac> | in my experience this is the most common way of using this term |
| 12:32:21 | × | glguy quits (x@freenode/staff/haskell.developer.glguy) (Read error: Connection reset by peer) |
| 12:33:01 | <lortabac> | but merijn's definition seems more accurate as far as natural language is concerned |
| 12:33:02 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) (Ping timeout: 268 seconds) |
| 12:34:17 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 12:34:45 | <nshepperd2> | when you "make tomato puree into soup" you're not "making tomato puree" |
| 12:35:28 | → | glguy joins (x@freenode/staff/haskell.developer.glguy) |
| 12:36:39 | <nshepperd2> | but most other english words don't work that way |
| 12:36:39 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 12:39:50 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 12:40:21 | → | Tario joins (~Tario@201.192.165.173) |
| 12:41:18 | → | metamod joins (uid478611@gateway/web/irccloud.com/x-sbvlqgnmuennsspc) |
| 12:41:18 | <nshepperd2> | (that's a special syntactic form, like "making your kid go to school". but you can also say "making soup from tomato puree" which is less grammatically special) |
| 12:41:55 | → | maybefbi joins (~maybefbi@49.245.66.163) |
| 12:42:21 | × | ubert quits (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 12:42:40 | → | ubert joins (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) |
| 12:43:06 | → | hiroaki joins (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) |
| 12:43:12 | → | geekosaur joins (ac3a3b16@172.58.59.22) |
| 12:43:17 | <maybefbi> | I tried writing a nested while loop inside a state monad: https://pastebin.com/7ipnWCFu It is ugly. Any tips on making it pretty? |
| 12:46:25 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 12:46:47 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 12:46:51 | <dminuoso> | maybefbi: looks fine to me |
| 12:47:01 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving) |
| 12:47:12 | <tomsmeding> | merijn: so it comes down to terminology :) |
| 12:47:29 | <tomsmeding> | but I guess we've agreed that the concepts, if not the precise terminology, are quite related |
| 12:47:32 | <tomsmeding> | which was my question :) |
| 12:48:10 | <maybefbi> | dminuoso: instead of storing local variables in the state monad using a tuple, is there a better datastructure? |
| 12:48:12 | <dminuoso> | maybefbi: Oh you mean the code below? |
| 12:48:12 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 12:48:34 | <maybefbi> | dminuoso: i meant this: https://pastebin.com/7ipnWCFu |
| 12:48:50 | <maybefbi> | yeah the main function below |
| 12:49:04 | <maybefbi> | it has a nested while loop with i and j |
| 12:49:19 | <maybefbi> | it prints 1 to 100 |
| 12:49:26 | <dminuoso> | maybefbi: Looks fine in principle. You could perhaps try floating it into separate bindings. |
| 12:49:53 | <maybefbi> | ok |
| 12:49:56 | <tomsmeding> | maybefbi: is it important that the loops start at the current state, even if j is reset to 1 after each inner loop? |
| 12:49:59 | <dminuoso> | There's some tweaks one could do with monad-loops and lens perhaps, but that might be overkill |
| 12:50:13 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 12:50:36 | <tomsmeding> | if they always start at (1,1) anyway, you can do something like: forM_ [(i, j) | i <- [1..m-1], j <- [1..m]] $ \(i,j) -> do put (i,j) ; ... |
| 12:50:51 | <dminuoso> | The main problem here is the usage of State in the first place. |
| 12:50:58 | <dminuoso> | But, I dont know the context of your problem |
| 12:51:16 | <maybefbi> | tomsmeding: i was aiming for an imperative style. just to get used to use monad transformer stacks |
| 12:51:25 | <tomsmeding> | (yes, if you don't need State for another reason, do away with that 'put' and don't use State at all :) |
| 12:51:26 | <tomsmeding> | ) |
| 12:51:35 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 12:51:38 | <maybefbi> | tomsmeding: besides i can implement competitive programming problems in imperative style |
| 12:51:57 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 12:52:03 | <tomsmeding> | using haskell imperatively using State to solve CP problems is perhaps not the most efficient way :p |
| 12:52:07 | <tomsmeding> | rather use C++ directly |
| 12:52:08 | <maybefbi> | dminuoso: the context of the problem is just to create an imperative environment |
| 12:52:45 | <dminuoso> | maybefbi: So you want to drag a State throughout some large program? |
| 12:52:52 | dminuoso | has had plenty of bad experiences with that approach |
| 12:53:44 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection) |
| 12:53:55 | <tomsmeding> | maybefbi: notice we're pushing back on the basic idea of using State like this; however, if your whole point is to play around with State, by all means go ahead :p |
| 12:54:08 | × | dddddd quits (~dddddd@unaffiliated/dddddd) (Ping timeout: 256 seconds) |
| 12:54:51 | <maybefbi> | yeah i know it sucks. i was thinking of netsting ReaderT (ExceptT (WriterT (StateT IO... until i can write everything like an imperative program. the state variable should be some data structure that simulates a stack i think so we can really have local variables. |
| 12:55:14 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 268 seconds) |
| 12:55:23 | <merijn> | You can just use only IO and write everything like an imperative program |
| 12:55:29 | <merijn> | Why bother with all the rest? :p |
| 12:55:41 | <maybefbi> | tomsmeding: i am just playing around for now. hope to learn something from it |
| 12:56:11 | <maybefbi> | merijn: better type signatures, Java like exception throwing type signatures |
| 12:56:11 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 12:56:20 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 12:56:51 | <dminuoso> | maybefbi: We have mutable references with IORef. |
| 12:57:13 | <maybefbi> | dminuoso: hmm yeah you are right |
| 12:57:14 | <maybefbi> | what transformer stack to production programmers use? |
| 12:57:22 | <dminuoso> | Whatever you need/want |
| 12:57:23 | <maybefbi> | s/to/do/ |
| 12:57:27 | <dminuoso> | You don't need any. |
| 12:57:47 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 12:57:52 | <maybefbi> | surely there is some transformer stack which is like Spring framework for Java |
| 12:58:01 | <maybefbi> | which covers almost all cases |
| 12:58:03 | <dminuoso> | No, transformer stacks are about something else. :) |
| 12:58:18 | <dminuoso> | If you want a safe default, use IO. |
| 12:58:19 | <boxscape> | is there a function like delete in base that removes every element, not just the first one? |
| 12:58:30 | <maybefbi> | dminuoso: hmm ok |
| 12:58:42 | <hpc> | boxscape: in a list? use filter |
| 12:58:44 | <dminuoso> | boxscape: deleteBy |
| 12:58:58 | → | dddddd joins (~dddddd@unaffiliated/dddddd) |
| 12:58:59 | <dminuoso> | or filter, yeah |
| 12:59:04 | <merijn> | maybefbi: There is not universal stack, in fact, if you have a single stack used in your entire application, that's probably a code smell :p |
| 12:59:07 | <boxscape> | ah, thanks |
| 12:59:10 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 12:59:13 | <hpc> | if you want to be literal about "removes every element", const [] |
| 12:59:13 | <hpc> | :D |
| 12:59:22 | <dminuoso> | merijn: Arguably. I know there's some strong proponents for application wide stacks. |
| 12:59:26 | <maybefbi> | merijn: i see |
| 12:59:31 | <dminuoso> | Cale likes them I think |
| 12:59:34 | <merijn> | dminuoso: These people are wrong :p |
| 12:59:40 | <dminuoso> | yeah well. |
| 12:59:44 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.29-10.dynamic.3bb.co.th) |
| 12:59:45 | <merijn> | dminuoso: No he doesn't? |
| 12:59:51 | <maybefbi> | merijn: dminuoso: George Wilson and Ben Kolera likes it in Australia |
| 12:59:58 | <maybefbi> | likes application wide stacks |
| 13:00:04 | <boxscape> | hpc wow that's so performant! |
| 13:00:14 | <merijn> | dminuoso: He likes class based DSLs, iirc |
| 13:00:23 | <dminuoso> | merijn: Mmm. Maybe I misremember. Anyway |
| 13:00:26 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 13:00:29 | <boxscape> | hm that might not be an English word |
| 13:00:40 | <merijn> | dminuoso: Like my MonadSql thing, as in tagless stuff |
| 13:00:47 | × | darjeeling_ quits (~darjeelin@122.245.217.210) (Ping timeout: 268 seconds) |
| 13:01:07 | <merijn> | dminuoso: He also likes "a single newtype, rather than (visible) transformer stacks", which I also agree with :p |
| 13:01:29 | <dminuoso> | maybefbi: The point of monad transformers is usually not that they "give you something you couldn't do otherwise", it's rather that sometimes they give you an expressive way to talk about a problem. |
| 13:02:45 | → | tzlil joins (~tzlil@unaffiliated/tzlil) |
| 13:02:52 | <hpc> | or depending on how you think about such things, they take one thing and put it everywhere in an action |
| 13:03:17 | <maybefbi> | merijn: single newtype App derives all possible monad typeclasses. use lenses and prisms to create Has* and As* instances for error types, configuration data structure. then use typeclass constraints on every method to compose it all into one big program |
| 13:03:17 | <hpc> | like MaybeT adding "this can exit early" |
| 13:03:32 | <tzlil> | hello, im trying to learn haskell and i wrote a function, but im getting syntax errors, http://0x0.st/iF52.txt can anyone tell me whats wrong with this code? |
| 13:03:49 | <dminuoso> | tzlil: drop the `= element list` at the beginning |
| 13:03:52 | <merijn> | tzlil: You have that in a .hs file? |
| 13:04:00 | <dminuoso> | tzlil: you may not have a definition before a guard. |
| 13:04:03 | <tzlil> | im getting `parse error on line 3` |
| 13:04:05 | <tzlil> | oh! |
| 13:04:08 | <dminuoso> | Its funny because I regularly do this mistake too! :) |
| 13:04:11 | <merijn> | tzlil: Because that final line is also not allowed :p |
| 13:04:11 | <hpc> | elem element list = ... |
| 13:04:16 | <hpc> | and no comma on the last line |
| 13:04:54 | <boxscape> | tzlil you also don't need the parentheses in `head(list)`, you can write `head list` |
| 13:05:02 | <merijn> | Also, probably avoid the parenthesis in "head(list)", that's bad style and the quicker you get used to no parentheses for functions, the better |
| 13:05:02 | → | shf joins (~sheaf@2a01:cb19:80cc:7e00:3d51:cce0:e1c5:49b6) |
| 13:05:04 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:05:16 | <merijn> | And even more better: Don't use null and/or head, but use pattern matching :p |
| 13:05:21 | <boxscape> | though I suspect this function will loop infinitely |
| 13:05:32 | <tzlil> | thanks everyone, merijn i will look into that |
| 13:06:16 | <dminuoso> | It's quite interesting how many mistakes one can write in so little code. |
| 13:06:25 | <dminuoso> | tzlil: You did well, it's a record! :) |
| 13:06:49 | <tzlil> | getting another error, `Parse error: module header, import declaration, or top-level declaration expected` on line 7 (aka the function call) |
| 13:06:53 | × | mastarija quits (~mastarija@93-136-24-74.adsl.net.t-com.hr) (Quit: Leaving) |
| 13:06:57 | × | borne quits (~fritjof@200116b864c24e00c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 13:07:03 | <merijn> | tzlil: You can't have code at the top level |
| 13:07:11 | <merijn> | tzlil: You can't just write expressions and code in files |
| 13:07:12 | <tzlil> | should i do `main =` ? |
| 13:07:31 | <merijn> | tzlil: Probably you wanna do something like "main = print (elem 5 [1,5])" |
| 13:07:47 | <merijn> | tzlil: Or simply load the file into ghci and use functions interactively |
| 13:08:05 | dminuoso | wishes JSON was abolished |
| 13:08:08 | <tzlil> | im using repl.it right now |
| 13:08:09 | <dminuoso> | Is there any JSON parser that has useful diagnostics? |
| 13:08:45 | <merijn> | No clue what the repl.it interface looks like |
| 13:08:45 | <tomsmeding> | the syntax highlighter in your editor? |
| 13:08:51 | <tomsmeding> | dminuoso: ^ |
| 13:08:58 | <merijn> | tzlil: "main = print (elem 5 [1,5])" will work, though :) |
| 13:09:09 | <boxscape> | tzlil I believe repl.it is also based on ghci, which, if true, means you should be able to enter "elem5 [1,5]" on the right-hand side window |
| 13:09:13 | × | mounty quits (~mounty@210.1.196.133) (Ping timeout: 264 seconds) |
| 13:09:27 | <boxscape> | haven't used repl.it since they started requiring a login though |
| 13:09:43 | <tzlil> | they dont? im using it without a login right now |
| 13:09:47 | <boxscape> | hmm |
| 13:10:02 | <boxscape> | then I must just be misunderstanding how to use the site |
| 13:10:22 | <tzlil> | oh, i made an endless loop, i forgot to cut the list when i recurse |
| 13:10:33 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 13:10:37 | <dminuoso> | tomsmeding: heh |
| 13:10:43 | × | knupfer quits (~Thunderbi@200116b82c44cd0088bdee5ac2ca8198.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 13:10:47 | <dminuoso> | tomsmeding: I cant even get access to the raw JSON. |
| 13:10:56 | <dminuoso> | Well. I have to hack around servant now |
| 13:12:05 | × | flatmap quits (~flatmap@p200300dd371871004132f49785e35f6d.dip0.t-ipconnect.de) (Quit: Textual IRC Client: www.textualapp.com) |
| 13:13:04 | → | NikolayRocketman joins (5f1fdef4@95-31-222-244.broadband.corbina.ru) |
| 13:13:38 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 13:14:11 | <tzlil> | okay, my code works now, thanks everyone |
| 13:16:08 | → | fuzzypixelz joins (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 13:16:36 | × | Rudd0 quits (~Rudd0@185.189.115.108) (Ping timeout: 240 seconds) |
| 13:17:30 | × | cheater quits (~user@unaffiliated/cheater) (Ping timeout: 272 seconds) |
| 13:17:39 | ← | NikolayRocketman parts (5f1fdef4@95-31-222-244.broadband.corbina.ru) () |
| 13:18:14 | → | darjeeling_ joins (~darjeelin@122.245.217.210) |
| 13:18:21 | <fuzzypixelz> | I have a question |
| 13:18:37 | × | hiroaki quits (~hiroaki@ip4d16fa3b.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 13:18:39 | <fuzzypixelz> | > twice f x = f . f $ x |
| 13:18:42 | <lambdabot> | <hint>:1:11: error: <hint>:1:11: error: parse error on input ‘=’ |
| 13:18:56 | <fuzzypixelz> | wait what |
| 13:19:06 | <geekosaur> | lambdabot is not ghci |
| 13:19:14 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 264 seconds) |
| 13:19:23 | <geekosaur> | it evaluates expressions, not definitions |
| 13:20:24 | <geekosaur> | % twice f x = f . f $ x |
| 13:20:24 | <yahb> | geekosaur: |
| 13:20:29 | <geekosaur> | yahb is ghci |
| 13:20:44 | <fuzzypixelz> | % :t twice |
| 13:20:45 | <yahb> | fuzzypixelz: (b -> b) -> b -> b |
| 13:20:46 | <geekosaur> | (with limitations) |
| 13:21:08 | <fuzzypixelz> | here, b can be any type, including aother functions right? |
| 13:21:22 | <dminuoso> | Yes. |
| 13:21:33 | <tomsmeding> | % :t twice (.) |
| 13:21:33 | <yahb> | tomsmeding: ; <interactive>:1:7: error:; * Occurs check: cannot construct the infinite type: c ~ a -> c; Expected type: ((a -> b) -> a -> c) -> (a -> b) -> a -> c; Actual type: (b -> c) -> (a -> b) -> a -> c; * In the first argument of `twice', namely `(.)'; In the expression: twice (.) |
| 13:21:40 | <tomsmeding> | oh right |
| 13:21:55 | <fuzzypixelz> | what if we typed, |
| 13:22:05 | <fuzzypixelz> | % twice' f = f . f |
| 13:22:06 | <yahb> | fuzzypixelz: |
| 13:22:15 | <fuzzypixelz> | % :t twice' |
| 13:22:15 | <yahb> | fuzzypixelz: (b -> b) -> b -> b |
| 13:22:22 | <fuzzypixelz> | oh yeah same thing |
| 13:22:35 | <fuzzypixelz> | this confused me a lot |
| 13:22:36 | <tomsmeding> | % :t twice (\f -> succ . f) |
| 13:22:37 | <yahb> | tomsmeding: Enum c => (a -> c) -> a -> c |
| 13:22:50 | <tomsmeding> | % :t twice (\f -> succ . f) succ |
| 13:22:50 | <yahb> | tomsmeding: Enum c => c -> c |
| 13:22:56 | <tomsmeding> | % twice (\f -> succ . f) succ 3 |
| 13:22:57 | <yahb> | tomsmeding: 6 |
| 13:23:26 | <tomsmeding> | that's (succ . succ . succ) 3 |
| 13:23:40 | <boxscape> | % :t f f |
| 13:23:40 | <yahb> | boxscape: ; <interactive>:1:1: error: Variable not in scope: f :: t0 -> t; <interactive>:1:3: error: Variable not in scope: f |
| 13:23:45 | <boxscape> | % :t twice twice |
| 13:23:45 | <yahb> | boxscape: (b -> b) -> b -> b |
| 13:24:30 | <tomsmeding> | % twice twice succ 3 |
| 13:24:30 | <yahb> | tomsmeding: 7 |
| 13:24:48 | × | jchia__ quits (~jchia@58.32.37.146) (Ping timeout: 258 seconds) |
| 13:24:55 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 13:28:42 | <bitmapper> | i now have a copy of hugs haskell 1.3... that implements AMP |
| 13:28:48 | → | son0p joins (~son0p@181.136.122.143) |
| 13:29:01 | <gentauro> | 14:08 * dminuoso wishes JSON was abolished |
| 13:29:13 | <gentauro> | dminuoso: I'm guessing you are a fan of IBMS JSONx righ? |
| 13:29:13 | <gentauro> | :P |
| 13:29:23 | <geekosaur> | someone's maintaining hugs? |
| 13:29:26 | <bitmapper> | nope! |
| 13:29:31 | <bitmapper> | i'm just messing with old hugs |
| 13:29:32 | <gentauro> | https://www.ibm.com/support/knowledgecenter/SS9H2Y_10.0/com.ibm.dp.doc/json_jsonx.html |
| 13:29:53 | <gentauro> | mye eyes, they are bleeding !!! https://www.ibm.com/support/knowledgecenter/SS9H2Y_10.0/com.ibm.dp.doc/json_jsonxconversionexample.html |
| 13:29:56 | <gentauro> | :| |
| 13:30:27 | × | phillip quits (~phillip@217.146.82.202) (Remote host closed the connection) |
| 13:30:31 | <tomsmeding> | beautiful dynamic loading of a completely non-dynamic webpage |
| 13:30:39 | → | hiroaki joins (~hiroaki@ip4d168e73.dynamic.kabel-deutschland.de) |
| 13:30:56 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 13:31:08 | → | Jaykul1 joins (~Jaykul@185.103.96.147) |
| 13:31:33 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 13:34:12 | → | jchia__ joins (~jchia@jungle.jchia.net) |
| 13:35:25 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Remote host closed the connection) |
| 13:35:31 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 13:35:43 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 246 seconds) |
| 13:37:44 | → | son0p joins (~son0p@181.136.122.143) |
| 13:39:38 | × | esp32_prog quits (yoann@gateway/vpn/protonvpn/esp32prog/x-46565127) (Ping timeout: 268 seconds) |
| 13:40:15 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 13:40:16 | → | kam1 joins (~kam1@24.231.108.143) |
| 13:41:10 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.29-10.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:42:54 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@171.5.29.10) |
| 13:46:07 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 13:46:41 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 13:48:04 | × | drbean quits (~drbean@TC210-63-209-72.static.apol.com.tw) (Ping timeout: 260 seconds) |
| 13:49:25 | → | knupfer joins (~Thunderbi@87.123.206.174) |
| 13:49:25 | × | carlomagno quits (~cararell@148.87.23.9) (Remote host closed the connection) |
| 13:51:58 | → | christo joins (~chris@81.96.113.213) |
| 13:52:14 | × | kam1 quits (~kam1@24.231.108.143) (Quit: Quit) |
| 13:52:28 | → | kam1 joins (~kam1@24.231.108.143) |
| 13:58:12 | × | cybai quits (~cybai@2400:4050:3122:900:f184:f643:35b2:1419) (Quit: Leaving...) |
| 14:01:20 | × | kam1 quits (~kam1@24.231.108.143) (Quit: Quit) |
| 14:01:33 | → | kam1 joins (~kam1@24.231.108.143) |
| 14:01:56 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 14:06:53 | <boxscape> | Is there a downside to marking functions as INLINEABLE? Longer compile times, maybe? |
| 14:06:54 | → | hyperisco joins (~hyperisco@d192-186-117-226.static.comm.cgocable.net) |
| 14:07:41 | <geekosaur> | yes, longer compile times |
| 14:07:53 | <boxscape> | I see |
| 14:07:57 | <geekosaur> | bigger .hi files which slows things down a bit |
| 14:08:01 | <boxscape> | okay |
| 14:09:57 | × | fuzzypixelz quits (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Leaving) |
| 14:10:17 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 14:12:23 | → | jamm_ joins (~jamm@unaffiliated/jamm) |
| 14:12:44 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 14:14:32 | → | texasmynsted joins (~texasmyns@184.75.212.155) |
| 14:15:02 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Remote host closed the connection) |
| 14:15:17 | → | philopsos joins (~caecilius@gateway/tor-sasl/caecilius) |
| 14:15:38 | × | jamm quits (~jamm@unaffiliated/jamm) (Ping timeout: 264 seconds) |
| 14:17:58 | × | chang quits (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) (Quit: Textual IRC Client: www.textualapp.com) |
| 14:18:08 | → | chang joins (~textual@host-173-230-65-85.njjcmar.clients.pavlovmedia.com) |
| 14:21:36 | → | mounty joins (~mounty@210.1.196.133) |
| 14:26:18 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 14:26:40 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 14:27:13 | → | gxt joins (~gxt@gateway/tor-sasl/gxt) |
| 14:29:26 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) |
| 14:31:01 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 246 seconds) |
| 14:31:17 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@171.5.29.10) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:31:56 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Remote host closed the connection) |
| 14:31:56 | → | Boomerang_ joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 14:34:07 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) (Ping timeout: 260 seconds) |
| 14:34:27 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.29-10.dynamic.3bb.co.th) |
| 14:34:43 | × | Boomerang quits (~Boomerang@2a05:f6c7:2179:0:d811:4796:d80c:9d85) (Ping timeout: 260 seconds) |
| 14:35:51 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 14:36:49 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 264 seconds) |
| 14:38:12 | → | quintasa1 joins (~quintasan@89-171-24-90.static.ip.netia.com.pl) |
| 14:39:16 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.29-10.dynamic.3bb.co.th) (Ping timeout: 240 seconds) |
| 14:41:15 | → | da39a3ee5e6b4b0d joins (~da39a3ee5@mx-ll-171.5.29-10.dynamic.3bb.co.th) |
| 14:41:36 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 240 seconds) |
| 14:44:06 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 14:45:52 | → | jollygood2 joins (~bc8165ab@217.29.117.252) |
| 14:45:54 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 14:47:02 | × | geekosaur quits (ac3a3b16@172.58.59.22) (Remote host closed the connection) |
| 14:48:20 | → | elfets joins (~elfets@ip-37-201-23-96.hsi13.unitymediagroup.de) |
| 14:49:05 | <jollygood2> | hi. I am using stack, all of my projects use very old snapshot and ghc version. I want to upgrade, but keep my old code compilable without upgrading. my question is, what am I supposed to do with my library code, on local computer, that is used by most of my projects? if I update it, it won't work with old ghc. I could just copy everything to a new directory, change name to mylibcode2, but it seems like there should be a better way |
| 14:49:16 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-wadzwexudygkrdgs) |
| 14:50:19 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:cc57:4a3f:14e6:d0d5) |
| 14:50:33 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 268 seconds) |
| 14:51:49 | × | quintasa1 quits (~quintasan@89-171-24-90.static.ip.netia.com.pl) (Quit: WeeChat 2.6) |
| 14:52:13 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 14:52:18 | <merijn> | jollygood2: Specify a specific git commit to depend on (pretty sure stack can handle that?) |
| 14:52:21 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:cc57:4a3f:14e6:d0d5) (Client Quit) |
| 14:52:47 | → | christo joins (~chris@81.96.113.213) |
| 14:54:41 | → | wonko7 joins (~wonko7@69.75.150.77.rev.sfr.net) |
| 14:54:47 | <jollygood2> | is it possible to do it locally? I'm not currently using git |
| 14:56:00 | → | zephyz joins (~zephyz@51.198.99.196) |
| 14:56:51 | <merijn> | Eh, use #ifdefs so that the same code works on both versions |
| 14:57:06 | × | christo quits (~chris@81.96.113.213) (Ping timeout: 256 seconds) |
| 14:57:22 | <jollygood2> | can't I have multiple versions of same library locally? I guess I could just include version in the name |
| 14:57:29 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 14:57:30 | <merijn> | Also, for your sake, I hope "not using git" means "because I'm using a more pleasant version control" >.> |
| 14:58:14 | × | sgibber2018 quits (~arch-gibb@208.85.237.137) (Ping timeout: 256 seconds) |
| 14:59:06 | × | Lowl3v3l quits (~Lowl3v3l@2001:638:1558:99f8::5) (Ping timeout: 258 seconds) |
| 15:00:03 | → | Lowl3v3l joins (~Lowl3v3l@dslb-002-203-233-025.002.203.pools.vodafone-ip.de) |
| 15:01:21 | × | toorevitimirp quits (~tooreviti@117.182.182.252) (Remote host closed the connection) |
| 15:01:54 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 15:03:32 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Remote host closed the connection) |
| 15:03:55 | × | phasespace quits (~sar@80-89-47-117.inet.signal.no) (Ping timeout: 246 seconds) |
| 15:04:02 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 15:04:47 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:9c60:5f28:257e:410b) (Quit: Leaving) |
| 15:05:11 | × | jamm_ quits (~jamm@unaffiliated/jamm) (Remote host closed the connection) |
| 15:06:31 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:3120:8946:e899:8a57) |
| 15:06:47 | → | avdb joins (~avdb@213.177.155.250) |
| 15:06:52 | → | hf69 joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:07:03 | × | hf69 quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Client Quit) |
| 15:09:25 | → | nbloomf joins (~nbloomf@2600:1700:ad14:3020:cc57:4a3f:14e6:d0d5) |
| 15:10:01 | → | Sgeo joins (~Sgeo@ool-18b98aa4.dyn.optonline.net) |
| 15:10:41 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 3.0) |
| 15:10:50 | → | sgibber2018 joins (~arch-gibb@208.85.237.137) |
| 15:12:40 | → | carlomagno joins (~cararell@148.87.23.7) |
| 15:12:47 | → | hf69 joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:14:24 | × | hf69 quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Client Quit) |
| 15:15:07 | → | hf69 joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:17:08 | <texasmynsted> | okay, you got me. What is a more pleasant version control than git? |
| 15:17:38 | <merijn> | texasmynsted: Mercurial, Fossil, darcs, pijul... |
| 15:17:53 | <merijn> | texasmynsted: tbh, it's shorter to ask "what's worse than git?" because git is just freaking terrible |
| 15:18:28 | <merijn> | (RCS, CVS, and subversion are probably worse, but in their defense they predate git by a few decades...) |
| 15:18:32 | <texasmynsted> | Hm. I like git |
| 15:18:34 | × | tabemann_ quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Read error: Connection reset by peer) |
| 15:18:38 | <ephemient> | git has a pretty good data model, it's just the ui that's all sorts of inconsistent |
| 15:19:04 | <ephemient> | so I've got a good amount of tools that just just git's low-level plumbing to do what I want it to |
| 15:19:08 | <merijn> | ephemient: It's data model is basically the same as the other non-patch based VCS (i.e. Mercurial and Fossil), so that's pretty unimportant |
| 15:19:21 | <merijn> | texasmynsted: How many other version control systems have you used, though? |
| 15:19:38 | <merijn> | The only reason git is popular is GitHub + the mythical aura of "the linux kernel uses it!" |
| 15:19:47 | <texasmynsted> | The first one I used was RCS. |
| 15:19:53 | <merijn> | texasmynsted: oof |
| 15:20:21 | <ephemient> | sure, but mercurial doesn't expose its internals to me unless I write a proper extension while git is happy to spill its guts out |
| 15:20:22 | <texasmynsted> | I have used many. |
| 15:20:32 | <ephemient> | (I suppose that could be taken as both good and bad) |
| 15:20:35 | <maerwald> | merijn: nah, git performance is very good and it's one of the most feature complete ones |
| 15:20:42 | <merijn> | ephemient: I've never needed that, tbh |
| 15:20:59 | <texasmynsted> | i have not used mecurial, but it sounds good |
| 15:21:27 | <merijn> | maerwald: Git's performance is irrelevant for 90% of codebases, since 90% of codebases aren't linux kernel sized |
| 15:21:37 | <texasmynsted> | I have an old version of pijul. It looks promising |
| 15:21:40 | × | hf69 quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Quit: WeeChat 3.0) |
| 15:21:59 | → | hf69 joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:22:18 | <ephemient> | I did use darcs as my primary vcs, many years ago. I recall it wasn't hard to start running into performance walls with it… |
| 15:22:23 | <merijn> | maerwald: And I'd rather see more work go into the Rust core for Mercurial to speed that up then git :p |
| 15:22:48 | <merijn> | ephemient: I haven't used darcs much, but in practice Mercurial's performance is fine for most projects |
| 15:23:49 | <ephemient> | yeah, it's usually within a constant factor of what git could do |
| 15:24:04 | hf69 | is now known as fengh |
| 15:24:36 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 240 seconds) |
| 15:24:42 | <kuribas> | merijn: git is not "basically the same model". In git I can amend my working patches to get a clean history, but still go back to the history if I want. |
| 15:24:59 | <merijn> | Mercurial's "slowness" is mostly an issue for use in tooling, which is something they're aware off and working on solving, but in practice the "slowness" has never annoyed me more than git's UI |
| 15:25:07 | <kuribas> | merijn: in mercurial amending would be irreversable. |
| 15:25:15 | <merijn> | kuribas: Not anymore |
| 15:25:30 | <merijn> | kuribas: That hasn't been the case for close to a decade with Changeset Evolution |
| 15:25:52 | <merijn> | Which is clearly a superior way to handle history mutation then the clusterfuck that git has >.> |
| 15:26:01 | <merijn> | Anyway, that's fairly off topic |
| 15:26:51 | × | fengh quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Client Quit) |
| 15:26:55 | <kuribas> | I agree with ephemient, the UI for git sucks, but the model is pretty ok. |
| 15:27:09 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 15:27:11 | → | hf69 joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:27:31 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 15:29:35 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 15:29:52 | × | jonrh quits (sid5185@gateway/web/irccloud.com/x-znmjmvidrdlxlhvb) (Ping timeout: 272 seconds) |
| 15:30:07 | → | jonrh joins (sid5185@gateway/web/irccloud.com/x-hntqrgohvgwoczvy) |
| 15:30:37 | × | hf69 quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Client Quit) |
| 15:30:55 | → | hf69 joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:30:57 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) |
| 15:31:53 | → | phasespace joins (~sar@89-162-33-21.fiber.signal.no) |
| 15:34:05 | × | hf69 quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Client Quit) |
| 15:35:07 | → | Kronic joins (~Kronic___@84.203.96.46) |
| 15:35:42 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) (Ping timeout: 260 seconds) |
| 15:36:25 | → | fengh joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:36:27 | × | texasmynsted quits (~texasmyns@184.75.212.155) (Remote host closed the connection) |
| 15:36:33 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 15:36:43 | × | fengh quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Client Quit) |
| 15:37:05 | → | fengh joins (~haskeller@ip72-205-40-121.dc.dc.cox.net) |
| 15:39:36 | → | evanjs joins (~evanjs@075-129-098-007.res.spectrum.com) |
| 15:39:54 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:40:45 | → | dbmikus joins (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) |
| 15:41:35 | × | maybefbi quits (~maybefbi@49.245.66.163) () |
| 15:43:42 | <Kronic> | does anyone know what this user meant here? https://github.com/haskell/haskell-language-server/issues/590#issuecomment-725935928 |
| 15:44:05 | <Kronic> | I read the context and I do not understand what the workaround to solve this issue is |
| 15:44:24 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 15:44:46 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 15:45:56 | <Kronic> | ah I guess pragma for lambdacase at the top of the file |
| 15:46:05 | <boxscape> | yeah |
| 15:46:29 | <Kronic> | Doesn't solve my issue unfortunately, this apply hints bug is really very annoying |
| 15:48:20 | <merijn> | Kronic: What's the problem? |
| 15:49:10 | <Kronic> | Using neovim or vscode with the haskell extension will provide hints to improve your code from hlint, I'm new so of course I want to take advantage of these to get better but automatic application of hints is broken |
| 15:49:25 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 264 seconds) |
| 15:49:35 | <merijn> | "improve" |
| 15:49:35 | <Kronic> | Upgrading to 8.10.2 did not fix it, nor did the suggested work around so I'm just going to install the package and use it via the command line for now |
| 15:49:57 | → | fendor joins (~fendor@178.115.129.197.wireless.dyn.drei.com) |
| 15:50:27 | <merijn> | Kronic: Not really a solution for your problem, but note that hlint's suggestions are far from universally accepted :) |
| 15:51:14 | <Kronic> | I'd imagine that's true but from what I can see they're usually better than my code |
| 15:51:41 | <merijn> | Sure, just approach with healthy skepticism :) |
| 15:51:52 | × | sgibber2018 quits (~arch-gibb@208.85.237.137) (Quit: WeeChat 2.9) |
| 15:53:51 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 15:55:18 | × | asheshambasta quits (~user@ptr-e1lysaxt4bg7tmaahx1.18120a2.ip6.access.telenet.be) (Ping timeout: 268 seconds) |
| 15:56:36 | → | polyphem joins (~p0lyph3m@2a02:810d:640:776c:76d7:55f6:f85b:c889) |
| 15:58:47 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 15:58:49 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 15:59:10 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 15:59:26 | → | bennofs|ALLES joins (~quassel@2a01:4f8:c17:5579::1) |
| 16:00:19 | × | zephyz quits (~zephyz@51.198.99.196) (Quit: zephyz) |
| 16:00:27 | → | Rudd0 joins (~Rudd0@185.189.115.108) |
| 16:00:47 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 16:02:07 | → | kam1 joins (~kam1@24.231.108.143) |
| 16:02:29 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Remote host closed the connection) |
| 16:04:07 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 16:05:06 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Remote host closed the connection) |
| 16:13:00 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 16:13:09 | × | skiold quits (~skiold@gateway/tor-sasl/skiold) (Quit: WeeChat 2.3) |
| 16:17:55 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 16:19:00 | × | da39a3ee5e6b4b0d quits (~da39a3ee5@mx-ll-171.5.29-10.dynamic.3bb.co.th) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:19:14 | × | kuribas quits (~user@ptr-25vy0i76oze9u46tlnk.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 26.3)) |
| 16:21:28 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 16:22:34 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 16:23:05 | <fresheyeball> | so I want to add a nice expando-collapsing thing to my chrome extension, for showing Haskell data structures |
| 16:23:16 | <fresheyeball> | And started looking into prior art |
| 16:23:32 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 16:23:43 | <fresheyeball> | what in the heck is going on in pretty printing land in Haskell? There a tons of them, and nothing looks particularly good. |
| 16:23:57 | <merijn> | Define "pretty printing" |
| 16:24:20 | → | revprez_anzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 16:24:23 | <merijn> | Or did you mean, like, the 100 prettyprinter packages? |
| 16:24:29 | <fresheyeball> | layout of code in a manner to enhance readablity and understanding |
| 16:24:32 | <fresheyeball> | yes, there are tons |
| 16:24:42 | <fresheyeball> | I did a quick experiment with prettyprinter |
| 16:24:54 | <fresheyeball> | and it's totally unacceptable for developer tooling |
| 16:25:03 | <fresheyeball> | it prints `Nothing` as "" for example |
| 16:25:24 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:25:29 | <fresheyeball> | I also don't see a clear way to derive the `Pretty` type class, which is a real problem if this is for developer tooling |
| 16:26:02 | <fresheyeball> | I took a look at pretty-simple, but it relys on Show, which is sketchy |
| 16:26:13 | <merijn> | fresheyeball: Deriving "pretty printing" is kind of a weird requirement |
| 16:26:29 | <dolio> | It makes very little sense to derive. |
| 16:26:40 | <fresheyeball> | if I am developing an application |
| 16:26:51 | <merijn> | fresheyeball: Pretty printed data is always context dependent, thus custom |
| 16:26:52 | <fresheyeball> | and just want to see the type in a readable way |
| 16:27:15 | <merijn> | fresheyeball: oh, you don't want pretty printing then, lemme look up the library you want |
| 16:27:19 | <fresheyeball> | I don't want to hand write instances for every single type in my system before it's useful for debugging |
| 16:27:24 | <nshepperd> | you want Show but with nice layout? |
| 16:27:32 | <merijn> | fresheyeball: You want https://hackage.haskell.org/package/pretty-show |
| 16:27:41 | <merijn> | fresheyeball: That's "Show, but with prettier formatting" |
| 16:27:42 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:27:55 | <merijn> | fresheyeball: The pretty printing libraries are for formatting user output |
| 16:28:34 | <sm[m]> | or pretty-simple, which works with things which don't have readable show output |
| 16:28:35 | <merijn> | fresheyeball: Lemme also plug: https://hackage.haskell.org/package/tree-diff |
| 16:28:58 | <merijn> | fresheyeball: Which lets you print diffs of arbitrary values |
| 16:29:07 | <dolio> | Have you used groom? Is pretty-show better? |
| 16:29:30 | <merijn> | I haven't used groom, pretty-show was the first thing I found and I've been happy enough with it |
| 16:29:50 | <fresheyeball> | pretty-show looks like it might be it |
| 16:29:52 | <dolio> | Oh, pretty-show has a little more going on. |
| 16:30:02 | <fresheyeball> | but now I am confused about what prettyprinter is even for |
| 16:30:06 | <dolio> | groom just tweaks strings. |
| 16:30:27 | <merijn> | fresheyeball: prettyprinter is for "I wanna output complicated/structured text to, say, a terminal and get sensible linewrapping" |
| 16:30:33 | × | ggVGc quits (~ggVGc@unaffiliated/walt) (Ping timeout: 272 seconds) |
| 16:30:45 | <sm[m]> | I was happy with it too but not being able to format anything containing a Day was a hassle |
| 16:30:49 | <merijn> | fresheyeball: Stuff like the commandline help that optparse generates |
| 16:31:00 | <sm[m]> | that's where pretty-simple is better |
| 16:31:11 | × | jophish quits (~jophish@2400:8901::f03c:91ff:fe39:7a9) (Ping timeout: 272 seconds) |
| 16:31:22 | × | hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
| 16:31:33 | <merijn> | fresheyeball: Or stuff like "printing out indented and aligned text", etc. |
| 16:31:53 | × | coot quits (~coot@37.30.50.101.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 16:31:54 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 16:32:01 | <fresheyeball> | hmm I would have called that "formatting" |
| 16:32:31 | <fresheyeball> | for some reason, pretty printing, in my mind is an alternative to ugly printing, which we would just call the `print` functino |
| 16:32:58 | <sm[m]> | fresheyeball: it's a bit confusing.. historical terminology |
| 16:33:07 | → | jophish joins (~jophish@li1766-207.members.linode.com) |
| 16:33:11 | <fresheyeball> | well that explains why I was so confused |
| 16:33:20 | <merijn> | fresheyeball: All those 100 prettyprinter libraries are dealing with that kinda formatting :p |
| 16:33:45 | <fresheyeball> | the only issue I see with pretty-show |
| 16:33:48 | <fresheyeball> | is the Doc type |
| 16:33:59 | <fresheyeball> | appears to be opaque, and I would want to use it to generate HTML |
| 16:34:42 | <fresheyeball> | oh it actually has it's own html renderer |
| 16:34:45 | × | avdb quits (~avdb@213.177.155.250) (Read error: No route to host) |
| 16:34:56 | → | xcmw joins (~textual@2603-6011-2200-f103-8011-a882-4e38-cf45.res6.spectrum.com) |
| 16:36:22 | × | matryoshka quits (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) (Ping timeout: 260 seconds) |
| 16:36:41 | → | avdb joins (~avdb@213.177.155.250) |
| 16:37:45 | <fresheyeball> | I guess the question with this lib is to use the `PrettyVal` type class with Generic deriving |
| 16:37:51 | × | son0p quits (~son0p@181.136.122.143) (Ping timeout: 268 seconds) |
| 16:37:54 | <fresheyeball> | or to use the reify function which only needs `Show` |
| 16:39:04 | → | ggVGc joins (~ggVGc@a.lowtech.earth) |
| 16:39:47 | → | matryoshka joins (~matryoshk@184.75.223.227) |
| 16:40:41 | → | heatsink joins (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) |
| 16:41:53 | <fresheyeball> | the output is identical, woah |
| 16:42:05 | <boxscape> | kind of interesting that there isn't a single library on hackage AFAICT that defines (<<) either as flip (>>) or as (<*) |
| 16:42:22 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 16:42:28 | <merijn> | :t (<<) |
| 16:42:30 | <lambdabot> | error: |
| 16:42:30 | <lambdabot> | • Variable not in scope: << |
| 16:42:30 | <lambdabot> | • Perhaps you meant one of these: |
| 16:42:45 | <merijn> | heh, could've sworn that was just in Prelude |
| 16:43:00 | <sm[m]> | me too |
| 16:43:29 | <dolio> | It's been talked about, but I think there was some controversy about which of those two things it should be. |
| 16:43:45 | <dolio> | Even though `flip (>>)` matches (=<<) better. |
| 16:44:13 | <boxscape> | yeah personally I'd expect flip (>>) |
| 16:44:23 | <dolio> | Which is probably the only reason I'd want it. |
| 16:44:43 | × | seanparsons quits (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) (Quit: ZNC 1.8.1 - https://znc.in) |
| 16:45:00 | × | dmiles quits (~dmiles@c-98-232-203-165.hsd1.wa.comcast.net) (Ping timeout: 256 seconds) |
| 16:45:04 | <merijn> | :t getDual . (mappend `on` Dual) -- >.> |
| 16:45:06 | <lambdabot> | error: |
| 16:45:06 | <lambdabot> | • Couldn't match type ‘a -> Dual a’ with ‘Dual c’ |
| 16:45:06 | <lambdabot> | Expected type: a -> Dual c |
| 16:45:18 | <merijn> | Oh, no, that only works for, like, 'IO ()' |
| 16:46:15 | → | seanparsons joins (~sean@cpc145088-gill21-2-0-cust281.20-1.cable.virginm.net) |
| 16:46:30 | <nshepperd> | i think the fact that (<<) could be read as either of those is a good reason for it not to exist |
| 16:46:55 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 16:46:56 | <boxscape> | tbh I've never actually missed it |
| 16:47:06 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 16:47:25 | <dolio> | I don't use (>>) much anymore, really. |
| 16:47:56 | × | LKoen quits (~LKoen@29.248.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.”) |
| 16:48:49 | ← | vilpan parts (~0@212.117.1.172) () |
| 16:48:49 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
| 16:49:37 | <boxscape> | dolio because you use do, *>, or some other reason? |
| 16:49:40 | <dolio> | I guess you could write confusing code if you wanted to. All the applicative operators are designed to work together, and the monad ones work together, but monad is lower precedence than applicative. |
| 16:50:03 | <dolio> | Yeah, I'd probably use *> now that it exists. |
| 16:50:09 | <boxscape> | I see |
| 16:50:28 | <dolio> | Also, like I said above. (>>) is too low precedence to mix with applicative operators. |
| 16:50:37 | <dolio> | At least reliably. |
| 16:52:28 | <Kronic> | what do you use instead? Just do notation ? |
| 16:52:42 | <boxscape> | Kronic *> |
| 16:53:08 | <Kronic> | ah fair enough |
| 16:53:33 | <dolio> | If I'm using monad operators directly, it often wouldn't matter whether I use *> or >>, because if it did, I'd probably switch to do to be clearer. |
| 16:55:13 | <dolio> | I guess the only time it actually matters is if you write: expr1 >>= expr2 >> expr3 |
| 16:55:22 | <dolio> | Which is kind of unusual. |
| 16:55:57 | → | geekosaur joins (42d52137@66.213.33.55) |
| 16:56:18 | <lambda> | is there a nice package for fixed-length lists/vectors? I'm implementing a custom class on n*Int tuples right now, but that of course needs a separate instance per tuple arity. Something that just takes a type parameter for the size would be great |
| 16:56:34 | <dolio> | vector? |
| 16:56:43 | × | kam1 quits (~kam1@24.231.108.143) (Remote host closed the connection) |
| 16:56:45 | <dolio> | Oh, type parameter. |
| 16:57:01 | <merijn> | vector-sized |
| 16:57:02 | <dminuoso> | lambda: vector-sized |
| 16:57:26 | <dolio> | Does it need to act like a list? Inductively defined? |
| 16:58:03 | → | kam1 joins (~kam1@24.231.108.143) |
| 16:59:24 | <dolio> | I guess if it's replacing tuples, then probably not. |
| 16:59:37 | <lambda> | dolio: maybe not necessarily, there's only a few operations I need to be able to do on them |
| 16:59:57 | <Taneb> | lambda: depending on what you're after, vector-sized or linear |
| 17:00:31 | <lambda> | thanks, I'll check both of those out :) |
| 17:00:51 | <Taneb> | (in linear, especially Linear.V) |
| 17:00:53 | → | Lord_of_Life_ joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 17:01:26 | × | boxscape quits (4ff0ba59@gateway/web/cgi-irc/kiwiirc.com/ip.79.240.186.89) (Quit: Connection closed) |
| 17:01:54 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 268 seconds) |
| 17:01:58 | → | borne joins (~fritjof@200116b864c24e00c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 17:02:13 | Lord_of_Life_ | is now known as Lord_of_Life |
| 17:04:27 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 17:07:03 | × | philopsos quits (~caecilius@gateway/tor-sasl/caecilius) (Ping timeout: 240 seconds) |
| 17:07:12 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 17:07:36 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:08:02 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 272 seconds) |
| 17:09:02 | × | xff0x quits (~fox@2001:1a81:5299:4500:9c52:d530:bd81:84ac) (Ping timeout: 260 seconds) |
| 17:09:59 | → | xff0x joins (~fox@2001:1a81:5299:4500:d633:3a50:dda4:7bce) |
| 17:12:33 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 17:13:50 | × | heatsink quits (~heatsink@2600:1700:bef1:5e10:59b6:d0f8:85fa:e454) (Ping timeout: 264 seconds) |
| 17:14:29 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 17:16:47 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:25:41 | × | jespada quits (~jespada@90.254.245.49) (Quit: Leaving) |
| 17:27:23 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 17:28:49 | → | Deide joins (~Deide@217.155.19.23) |
| 17:29:52 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving) |
| 17:33:05 | × | jophish quits (~jophish@li1766-207.members.linode.com) (Ping timeout: 240 seconds) |
| 17:33:40 | → | kam1 joins (~kam1@24.231.108.143) |
| 17:33:57 | → | danso joins (~dan@69-165-210-185.cable.teksavvy.com) |
| 17:35:09 | × | ggVGc quits (~ggVGc@a.lowtech.earth) (Ping timeout: 272 seconds) |
| 17:38:17 | × | chele quits (~chele@ip5b416ea2.dynamic.kabel-deutschland.de) (Remote host closed the connection) |
| 17:38:40 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 17:38:45 | → | christo joins (~chris@81.96.113.213) |
| 17:39:15 | × | DTZUZU quits (~DTZUZU@205.ip-149-56-132.net) (Quit: WeeChat 2.9) |
| 17:40:36 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 17:42:36 | → | carthia joins (~carthia@gateway/tor-sasl/carthia) |
| 17:42:48 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 256 seconds) |
| 17:45:29 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 17:45:50 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 17:47:01 | × | Boomerang_ quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 246 seconds) |
| 17:47:09 | <shapr> | byorgey: I once saw a web based interactive diagrams editor, does that still exist? |
| 17:47:28 | × | matryoshka quits (~matryoshk@184.75.223.227) (Ping timeout: 265 seconds) |
| 17:49:48 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Remote host closed the connection) |
| 17:49:53 | → | mimi_vx joins (~mimi@2a01:490:16:1026:ad8e:aaec:b83:b6c3) |
| 17:50:34 | → | jophish joins (~jophish@2400:8901::f03c:91ff:fe39:7a9) |
| 17:50:35 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 256 seconds) |
| 17:52:49 | × | mimi_vx quits (~mimi@2a01:490:16:1026:ad8e:aaec:b83:b6c3) (Client Quit) |
| 17:52:58 | → | mimi_vx joins (~mimi@2a01:490:16:1026:ad8e:aaec:b83:b6c3) |
| 17:55:33 | → | matryoshka joins (~matryoshk@2606:6080:1002:8:3285:30e:de43:8809) |
| 17:56:05 | → | LKoen joins (~LKoen@29.248.88.92.rev.sfr.net) |
| 17:56:38 | × | LKoen quits (~LKoen@29.248.88.92.rev.sfr.net) (Remote host closed the connection) |
| 17:58:27 | → | ggVGc joins (~ggVGc@a.lowtech.earth) |
| 18:02:04 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 18:02:35 | → | nineonine joins (~nineonine@S01061cabc0b095f3.vf.shawcable.net) |
| 18:03:03 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 18:03:34 | <nf> | trying to run lambdabot on NixOS, i'm getting mueval-core: NotAllowed "These modules are not interpreted:\nL\n" |
| 18:03:43 | <nf> | (ping int-e) |
| 18:04:08 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 260 seconds) |
| 18:04:19 | → | Tario joins (~Tario@200.119.187.93) |
| 18:06:37 | × | ggVGc quits (~ggVGc@a.lowtech.earth) (Ping timeout: 246 seconds) |
| 18:06:39 | × | Tario quits (~Tario@200.119.187.93) (Read error: Connection reset by peer) |
| 18:06:52 | → | Tario joins (~Tario@186.176.130.227) |
| 18:07:22 | × | jophish quits (~jophish@2400:8901::f03c:91ff:fe39:7a9) (Ping timeout: 260 seconds) |
| 18:09:53 | → | jophish joins (~jophish@li1766-207.members.linode.com) |
| 18:11:47 | → | zv joins (~zv@unaffiliated/zv) |
| 18:12:45 | → | kritzefitz_ joins (~kritzefit@fw-front.credativ.com) |
| 18:12:49 | × | ubert quits (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 18:13:13 | → | ubert joins (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) |
| 18:13:48 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:14:04 | → | ggVGc joins (~ggVGc@a.lowtech.earth) |
| 18:14:23 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection) |
| 18:14:38 | × | nineonine quits (~nineonine@S01061cabc0b095f3.vf.shawcable.net) (Remote host closed the connection) |
| 18:15:11 | → | rayyyy joins (~nanoz@gateway/tor-sasl/nanoz) |
| 18:15:24 | → | nineonine joins (~nineonine@50.216.62.2) |
| 18:17:00 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit) |
| 18:17:23 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:18:42 | × | hyperisco quits (~hyperisco@d192-186-117-226.static.comm.cgocable.net) (Quit: Curry, you fools!) |
| 18:20:04 | → | Feuermagier joins (~Feuermagi@213.178.26.41) |
| 18:21:07 | × | Tario quits (~Tario@186.176.130.227) (Ping timeout: 256 seconds) |
| 18:21:43 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Client Quit) |
| 18:22:02 | → | cosimone_ joins (~cosimone@5.170.241.36) |
| 18:22:05 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 18:22:08 | → | Tario joins (~Tario@200.119.187.93) |
| 18:24:12 | × | Tario quits (~Tario@200.119.187.93) (Read error: Connection reset by peer) |
| 18:24:33 | → | Tario joins (~Tario@200.119.187.93) |
| 18:25:20 | × | Tario quits (~Tario@200.119.187.93) (Read error: Connection reset by peer) |
| 18:25:45 | → | Tario joins (~Tario@201.192.165.173) |
| 18:25:46 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Ping timeout: 268 seconds) |
| 18:25:46 | cosimone_ | is now known as cosimone |
| 18:26:22 | <shapr> | nf: oh wow, I had no idea lambdabot had a nixos package! |
| 18:27:07 | <nf> | it even has a module! |
| 18:27:45 | <shapr> | so I can import it into my next Haskell program? |
| 18:31:38 | × | solonarv quits (~solonarv@astrasbourg-157-1-27-135.w90-40.abo.wanadoo.fr) (Ping timeout: 272 seconds) |
| 18:32:54 | → | solonarv joins (~solonarv@adijon-656-1-25-229.w90-13.abo.wanadoo.fr) |
| 18:35:01 | × | knupfer quits (~Thunderbi@87.123.206.174) (Ping timeout: 268 seconds) |
| 18:37:19 | → | drincruz joins (~adriancru@ool-44c748be.dyn.optonline.net) |
| 18:38:40 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 18:39:56 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds) |
| 18:43:08 | × | shf quits (~sheaf@2a01:cb19:80cc:7e00:3d51:cce0:e1c5:49b6) (Read error: Connection reset by peer) |
| 18:44:30 | → | son0p joins (~son0p@181.136.122.143) |
| 18:49:43 | × | livvy quits (~livvy@gateway/tor-sasl/livvy) (Ping timeout: 240 seconds) |
| 18:51:31 | → | Boomerang joins (~Boomerang@xd520f68c.cust.hiper.dk) |
| 18:51:36 | → | Franciman joins (~francesco@host-82-49-79-73.retail.telecomitalia.it) |
| 18:51:50 | × | danso quits (~dan@69-165-210-185.cable.teksavvy.com) (Quit: WeeChat 2.9) |
| 18:53:32 | × | thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202) |
| 18:54:02 | → | hexfive joins (~hexfive@50-47-142-195.evrt.wa.frontiernet.net) |
| 18:56:00 | × | juri_ quits (~juri@178.63.35.222) (Ping timeout: 258 seconds) |
| 18:57:10 | × | geekosaur quits (42d52137@66.213.33.55) (Ping timeout: 245 seconds) |
| 18:58:35 | → | kiltzman joins (~k1ltzman@195.189.99.96) |
| 19:00:48 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 19:03:33 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 19:04:32 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 19:05:00 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-flzdypyjqdvdjthv) |
| 19:07:59 | → | juri_ joins (~juri@178.63.35.222) |
| 19:08:15 | × | kritzefitz_ quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 19:08:31 | × | Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Quit: WeeChat 2.9) |
| 19:09:16 | × | esph quits (~weechat@unaffiliated/esph) (Ping timeout: 240 seconds) |
| 19:11:49 | × | melosense_ quits (~melosense@4e69b241.skybroadband.com) (Ping timeout: 260 seconds) |
| 19:12:04 | → | Boomerang_ joins (~Boomerang@2a05:f6c7:2179:0:d811:4796:d80c:9d85) |
| 19:14:00 | × | xcmw quits (~textual@2603-6011-2200-f103-8011-a882-4e38-cf45.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 19:14:14 | × | Jaykul1 quits (~Jaykul@185.103.96.147) (Remote host closed the connection) |
| 19:14:29 | × | Boomerang quits (~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 268 seconds) |
| 19:14:54 | → | tri0dE joins (~melosense@51.194.80.91) |
| 19:15:06 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
| 19:16:17 | × | DavidEichmann quits (~david@62.110.198.146.dyn.plus.net) (Remote host closed the connection) |
| 19:16:28 | → | sparsity joins (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) |
| 19:18:48 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 268 seconds) |
| 19:19:19 | → | esph joins (~weechat@unaffiliated/esph) |
| 19:19:24 | → | prinned joins (~prinned@103.206.114.104) |
| 19:19:30 | <prinned> | WHAT THE FUCK IS A MONAD |
| 19:19:55 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 19:20:29 | <Logio> | just a monoid in the category of endofunctors |
| 19:20:51 | <prinned> | oh thank you, it all makes sense now |
| 19:20:55 | <merijn> | prinned: A useful abstract interface |
| 19:21:16 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 268 seconds) |
| 19:21:26 | <merijn> | With absolutely no point in asking what it is without first learning the basics of types and type classes |
| 19:22:12 | <merijn> | See also: "what the fuck is a group?", "what the fuck is a lattice?", "what the fuck is a ring?", and countless other abstract defintitions |
| 19:22:16 | <Logio> | or alternatively, algebra, group theory and categories |
| 19:23:23 | <[exa]> | prinned: overloaded semicolon&assignment interface for programs |
| 19:24:34 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 19:24:36 | <merijn> | [exa]: tbh, I think that in general that description is more harmful than helpful |
| 19:25:15 | <monochrom> | Yes but not in this case. |
| 19:25:26 | <monochrom> | Nothing is harmful in this case. |
| 19:27:22 | × | prinned quits (~prinned@103.206.114.104) (Quit: WeeChat 2.9) |
| 19:27:40 | <shapr> | prinned: It's a 'magic semicolon' where you can insert a piece of code between calls |
| 19:27:57 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 19:28:19 | → | geekosaur joins (42d52137@66.213.33.55) |
| 19:28:31 | <shapr> | for example, instead of a bunch of nested if-then-else calls, you could use the Maybe monad to bail out as soon as you get a failing result. |
| 19:29:05 | <shapr> | yeah, what [exa] said |
| 19:29:42 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat) |
| 19:31:12 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 19:31:25 | <monochrom> | I think if you improve "assignment" to "static single assignment", then Moggi would approve, because that's what he did. |
| 19:32:06 | <monochrom> | Our "do { x <- xxx; y <- yyy; zzz }" becomes his "let x = xxx; y = yyy in zzz". |
| 19:34:50 | → | NikolaiToryzin joins (~NikolaiTo@195.140.213.38) |
| 19:35:47 | × | mrchampion quits (~mrchampio@38.18.109.23) (Remote host closed the connection) |
| 19:37:48 | → | sfvm joins (~sfvm@37.228.215.77) |
| 19:39:29 | → | knupfer joins (~Thunderbi@200116b82c44cd0074f48ffffe7fe867.dip.versatel-1u1.de) |
| 19:39:30 | × | knupfer quits (~Thunderbi@200116b82c44cd0074f48ffffe7fe867.dip.versatel-1u1.de) (Client Quit) |
| 19:39:43 | → | knupfer joins (~Thunderbi@87.123.206.174) |
| 19:40:26 | <emmanuel_erc> | Has anyone here experienced any issues with groundhog in GHC8.6? |
| 19:40:38 | → | sgibber2018 joins (~arch-gibb@208.85.237.137) |
| 19:41:34 | × | juuandyy quits (~juuandyy@90.166.144.65) (Ping timeout: 256 seconds) |
| 19:44:14 | → | mrchampion joins (~mrchampio@38.18.109.23) |
| 19:44:35 | × | cosimone quits (~cosimone@5.170.241.36) (Quit: cosimone) |
| 19:47:04 | → | pfurla_ joins (~pfurla@129.15.195.173.client.static.strong-in52.as13926.net) |
| 19:48:24 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 268 seconds) |
| 19:49:32 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 19:49:48 | × | Kaivo quits (~Kaivo@104-200-86-99.mc.derytele.com) (Client Quit) |
| 19:50:12 | → | Kaivo joins (~Kaivo@104-200-86-99.mc.derytele.com) |
| 19:51:18 | <exarkun> | What is the correct answer for SSL/TLS in Haskell? |
| 19:52:05 | <glguy> | exarkun: I like HsOpenSSL for my own projects |
| 19:52:58 | <glguy> | which is how I'm talking to you now |
| 19:53:53 | <exarkun> | Should I worry that https://hackage.haskell.org/package/HsOpenSSL-0.11.5.1/docs/OpenSSL.html says "Features that aren't (yet) supported: SSL network connection"? If you're using it right now that seems to suggest a very subtle reading of this claim required. |
| 19:54:04 | × | knupfer quits (~Thunderbi@87.123.206.174) (Read error: Connection reset by peer) |
| 19:55:06 | → | knupfer joins (~Thunderbi@87.123.206.174) |
| 19:55:11 | <ephemient> | if it does what you need, good; if it doesn't, dig in and add some bindings |
| 19:55:13 | <glguy> | exarkun: It's covered enough |
| 19:55:27 | <glguy> | I've had to add a couple bindings for more esoteric things I wanted |
| 19:55:46 | × | sgibber2018 quits (~arch-gibb@208.85.237.137) (Quit: WeeChat 2.9) |
| 19:55:51 | <glguy> | but none of the alternatives comes close to coverage |
| 19:55:56 | <exarkun> | Okay, cool |
| 19:55:57 | <glguy> | to its* |
| 19:56:50 | <shapr> | I wish we had an index for questions like this "What's the best library for X purpose?" |
| 19:57:05 | <merijn> | Best is a highly subjective definition |
| 19:57:08 | <glguy> | shapr: I think in general it would be hard to get agreement |
| 19:57:20 | <merijn> | A lot of people claim "beam" is the best Haskell database library |
| 19:57:21 | <shapr> | perhaps a feature matrix specific to each purpose? |
| 19:57:40 | <merijn> | *I* say it's an atrocious mess of unreadable types I wouldn't inflict on my worst enemy >.> |
| 19:58:18 | <exarkun> | And then ... is there some trick that people use to deal with the fact that `Socket` and `SSL` are not the same type? |
| 19:58:26 | <monochrom> | Don't worry, your worse enemies would inflict it on themselves. :) |
| 19:58:30 | <merijn> | shapr: That implies amount of features is more important than robustness, performance, pleasantness of abstraction, ease of extension, etc. |
| 19:58:37 | × | Lord_of_Life quits (~Lord@unaffiliated/lord-of-life/x-0885362) (Ping timeout: 246 seconds) |
| 19:58:46 | <exarkun> | If I'm using a library that works on `Socket` then I'm probably just out of luck when it comes to TLS? |
| 19:58:57 | <merijn> | shapr: Working out how Hackage's voting/vetting mechanism should work is probably best :p |
| 19:59:15 | → | Lord_of_Life joins (~Lord@unaffiliated/lord-of-life/x-0885362) |
| 19:59:44 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 19:59:46 | <merijn> | exarkun: You're not, but you're gonna have to get your hands dirty and possibly give up on Windows support :p |
| 19:59:54 | <merijn> | Oh, wait, no |
| 20:00:20 | <merijn> | exarkun: Or did you mean the library you use wants to directly talk to the socket? |
| 20:00:33 | <glguy> | If the library wants a literal 'Socket' you're SOL |
| 20:00:39 | <exarkun> | Okay let me dig out the actual types that are involved here |
| 20:00:43 | <glguy> | In that case you can do something externally with socat |
| 20:01:39 | <exarkun> | oh, I assumed it worked on `Socket` itself because I saw `Socket` in one place but I was looking in the wrong place, I guess it has a layer of indirection between the Socket and all the rest of the app code |
| 20:01:54 | <exarkun> | So I guess it's actually fine |
| 20:07:08 | × | avdb quits (~avdb@213.177.155.250) (Ping timeout: 256 seconds) |
| 20:07:22 | <exarkun> | the indirection is Data.Streaming.Network.AppData but there is no public AppData constructor? |
| 20:09:05 | × | pfurla_ quits (~pfurla@129.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 240 seconds) |
| 20:09:31 | <merijn> | It usually helps to clue people in which package a module is from ;) |
| 20:10:25 | <exarkun> | sorry, streaming-commons |
| 20:10:45 | <exarkun> | https://hackage.haskell.org/package/streaming-commons-0.2.2.1/docs/Data-Streaming-Network.html#t:AppData |
| 20:11:03 | → | jneira joins (501e6453@gateway/web/cgi-irc/kiwiirc.com/ip.80.30.100.83) |
| 20:11:46 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 20:12:52 | <exarkun> | Okay I accidentally stumbled across https://hackage.haskell.org/package/network-conduit-tls-1.3.2/docs/Data-Conduit-Network-TLS.html |
| 20:13:05 | <exarkun> | But that just means network-conduit-tls uses the internal AppData constructor right? |
| 20:13:43 | <exarkun> | which I guess is possible because snoyman is maintainer on both of them |
| 20:13:58 | × | Cale quits (~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 20:14:13 | <exarkun> | but surely I'm not supposed to reach into Data.Streaming.Network.Internet to get that constructor |
| 20:14:39 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
| 20:15:31 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 20:18:33 | → | xcmw joins (~textual@2603-6011-2200-f103-5cc1-e708-14f1-cedf.res6.spectrum.com) |
| 20:19:00 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 20:20:01 | × | drincruz quits (~adriancru@ool-44c748be.dyn.optonline.net) (Ping timeout: 264 seconds) |
| 20:20:09 | → | avdb joins (~avdb@213.177.155.250) |
| 20:22:41 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-xugolrqxaepfynua) |
| 20:22:55 | → | hidedagger joins (~nate@unaffiliated/hidedagger) |
| 20:23:20 | × | NikolaiToryzin quits (~NikolaiTo@195.140.213.38) (Remote host closed the connection) |
| 20:27:03 | → | aev_software joins (~Admin@pool-108-5-152-94.nwrknj.fios.verizon.net) |
| 20:27:40 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 246 seconds) |
| 20:27:45 | × | cads quits (~cads@ip-64-72-99-232.lasvegas.net) (Ping timeout: 240 seconds) |
| 20:29:04 | → | Tario joins (~Tario@200.119.187.80) |
| 20:29:55 | × | knupfer quits (~Thunderbi@87.123.206.174) (Quit: knupfer) |
| 20:30:08 | → | knupfer joins (~Thunderbi@87.123.206.174) |
| 20:32:13 | × | sparsity quits (5eae2591@gateway/web/cgi-irc/kiwiirc.com/ip.94.174.37.145) (Quit: Connection closed) |
| 20:37:21 | → | texasmynsted joins (~texasmyns@184.75.212.155) |
| 20:38:21 | × | texasmynsted quits (~texasmyns@184.75.212.155) (Remote host closed the connection) |
| 20:38:56 | → | mouseghost joins (~draco@87-206-9-185.dynamic.chello.pl) |
| 20:38:56 | × | mouseghost quits (~draco@87-206-9-185.dynamic.chello.pl) (Changing host) |
| 20:38:56 | → | mouseghost joins (~draco@wikipedia/desperek) |
| 20:41:52 | × | avdb quits (~avdb@213.177.155.250) (Quit: avdb) |
| 20:44:10 | → | robotadam1 joins (~robotadam@178.239.168.171) |
| 20:45:41 | × | jollygood2 quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 20:47:29 | → | Psychiatrist joins (~Psych@233-43-196-88.dyn.estpak.ee) |
| 20:47:50 | × | Psychiatrist quits (~Psych@233-43-196-88.dyn.estpak.ee) (Remote host closed the connection) |
| 20:49:22 | × | son0p quits (~son0p@181.136.122.143) (Remote host closed the connection) |
| 20:49:26 | × | MOSCOS quits (~MOSCOS@122.54.107.175) (Remote host closed the connection) |
| 20:49:49 | → | MOSCOS joins (~MOSCOS@122.54.107.175) |
| 20:51:23 | × | rayyyy quits (~nanoz@gateway/tor-sasl/nanoz) (Ping timeout: 240 seconds) |
| 20:54:22 | × | ubert quits (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 20:54:42 | → | ubert joins (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) |
| 21:00:55 | → | unpppa joins (591088f8@89.16.136.248) |
| 21:02:05 | → | justsomeguy joins (~justsomeg@216.186.218.241) |
| 21:02:05 | × | justsomeguy quits (~justsomeg@216.186.218.241) (Changing host) |
| 21:02:05 | → | justsomeguy joins (~justsomeg@unaffiliated/--/x-3805311) |
| 21:02:19 | → | texasmynsted joins (~texasmyns@184.75.212.155) |
| 21:02:20 | × | Jesin quits (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) (Quit: Leaving) |
| 21:02:24 | × | borne quits (~fritjof@200116b864c24e00c0a3d285e8e687f4.dip.versatel-1u1.de) (Ping timeout: 268 seconds) |
| 21:03:57 | <dminuoso> | exarkun: If you have security relevant software, you should ffi into openssl. |
| 21:04:56 | <dminuoso> | Oh shoot, I was scrolled up again |
| 21:06:01 | → | dontworry joins (4e967043@host-78-150-112-67.as13285.net) |
| 21:06:06 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 268 seconds) |
| 21:06:55 | <dontworry> | can i talk here |
| 21:06:59 | <dminuoso> | Yes. |
| 21:07:23 | <aev_software> | Yes |
| 21:07:27 | <dontworry> | kl half the other ircs didnt let me talk |
| 21:09:01 | × | danvet quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 258 seconds) |
| 21:10:03 | <lambda> | what's the prettiest way to get `[[a]] -> [((Int, Int), a)]`, i.e. flattening a 2d list while keeping the indices? |
| 21:10:05 | × | star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 240 seconds) |
| 21:10:39 | × | Franciman quits (~francesco@host-82-49-79-73.retail.telecomitalia.it) (Quit: Leaving) |
| 21:10:40 | <glguy> | lambda: I liked parse input = [(x,y) | (y,line) <- zip [0..] input, (x,'#') <- zip [0..] line] |
| 21:11:04 | <lambda> | glguy: hm, yeah, that works well |
| 21:11:10 | <lambda> | I keep forgetting about list comprehensions |
| 21:11:25 | × | dontworry quits (4e967043@host-78-150-112-67.as13285.net) (Remote host closed the connection) |
| 21:12:11 | <glguy> | > itoListOf (folded Control.Lens.<.> folded) ["one","two"] |
| 21:12:13 | <lambdabot> | [((0,0),'o'),((0,1),'n'),((0,2),'e'),((1,0),'t'),((1,1),'w'),((1,2),'o')] |
| 21:12:42 | <lambda> | I think the first one might be more readable ;) |
| 21:12:56 | <dminuoso> | Well, if you drop the qualifier, it's just |
| 21:13:06 | <dminuoso> | itoListOf (folded <.> folded) |
| 21:13:16 | <dminuoso> | If you're versed in lens, it's quite readable :) |
| 21:13:26 | <lambda> | I'm not, so that might be why |
| 21:15:58 | × | zv quits (~zv@unaffiliated/zv) (Ping timeout: 268 seconds) |
| 21:16:04 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-wadzwexudygkrdgs) (Quit: Connection closed for inactivity) |
| 21:19:10 | → | Jesin joins (~Jesin@pool-72-66-101-18.washdc.fios.verizon.net) |
| 21:19:52 | × | aev_software quits (~Admin@pool-108-5-152-94.nwrknj.fios.verizon.net) (Read error: Connection reset by peer) |
| 21:21:23 | × | Entertainment quits (~entertain@104.246.132.210) () |
| 21:26:36 | × | dbmikus quits (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) (Ping timeout: 240 seconds) |
| 21:26:44 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Remote host closed the connection) |
| 21:29:32 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Read error: Connection reset by peer) |
| 21:29:50 | → | cosimone joins (~cosimone@93-47-228-249.ip115.fastwebnet.it) |
| 21:30:28 | → | zv joins (~zv@unaffiliated/zv) |
| 21:31:15 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 21:31:48 | × | ubert quits (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 21:34:04 | → | ubert joins (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) |
| 21:35:58 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 21:36:02 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 264 seconds) |
| 21:38:03 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 240 seconds) |
| 21:39:54 | <glguy> | lambda: is that for adventofcode? |
| 21:40:11 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 21:40:50 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed) |
| 21:41:12 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 21:41:52 | × | mimi_vx quits (~mimi@2a01:490:16:1026:ad8e:aaec:b83:b6c3) (Ping timeout: 268 seconds) |
| 21:42:00 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 21:42:47 | → | pavonia joins (~user@unaffiliated/siracusa) |
| 21:43:05 | <ph88> | Does anyone know how i can get the value after using this lens getter ? https://hackage.haskell.org/package/vinyl-0.13.0/docs/Data-Vinyl-Lens.html#v:rgetC |
| 21:46:11 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 268 seconds) |
| 21:46:42 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 21:47:26 | <dsal> | ph88: didn't you ask that a few hours ago? Did none of the suggestions work? |
| 21:47:53 | <ph88> | dsal, yes i did .. don't remmember suggestions, maybe i missed them. let me see |
| 21:48:21 | × | geekosaur quits (42d52137@66.213.33.55) (Remote host closed the connection) |
| 21:48:58 | <ph88> | <dminuoso> ph88: Presumably with `view` or (^.) from say lens/microlens? |
| 21:49:11 | <ph88> | i tried this suggestion with view, i get a type error. Let me pastebin that |
| 21:50:41 | <ph88> | dsal, https://bpa.st/6IGQ |
| 21:52:35 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 21:53:50 | × | xcmw quits (~textual@2603-6011-2200-f103-5cc1-e708-14f1-cedf.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:54:25 | <dsal> | You told it it was something else. |
| 21:55:16 | → | cads joins (~cads@ip-64-72-99-232.lasvegas.net) |
| 21:55:30 | <dsal> | rgetC appears to not be a lens. "For Vinyl users who are not using the lens package, we provide a getter." |
| 21:56:39 | → | cosimone_ joins (~cosimone@5.171.24.229) |
| 21:57:06 | <ph88> | dsal, sorry i understood it as being a lens but not needing lens package |
| 21:57:09 | <dsal> | rlensC is a lens, but you're doing a bunch of stuff at once and it's conflicting. I don't know this library, but I think breaking it down into more parts would be easier. It doesn't look like that is going to give you an r. |
| 21:57:54 | <dsal> | ` rgetC = getConst . rlensC Const` |
| 21:58:08 | <dsal> | It's a convenient way to unlens a lens for this purpose. |
| 21:58:26 | <ph88> | dsal, when i remove "view" it compiles and i can show/print it ... but it's not the raw value ... it's the value with the name of the field pointing towards it |
| 21:58:45 | × | carlomagno quits (~cararell@148.87.23.7) (Ping timeout: 240 seconds) |
| 21:59:07 | <ph88> | prints as: PLN :-> "myValue" |
| 21:59:24 | <ph88> | i just need "myValue" really |
| 21:59:44 | <ph88> | maybe if i put it inside just a Text it will just become a Text ? |
| 21:59:56 | × | cosimone quits (~cosimone@93-47-228-249.ip115.fastwebnet.it) (Ping timeout: 240 seconds) |
| 21:59:56 | cosimone_ | is now known as cosimone |
| 22:00:56 | → | carlomagno joins (~cararell@148.87.23.7) |
| 22:01:04 | <ph88> | hmm nope .. that thing is of type ElField '("PLN", Text) i would like to get out just the Text part ... |
| 22:01:05 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 240 seconds) |
| 22:01:09 | × | Boomerang_ quits (~Boomerang@2a05:f6c7:2179:0:d811:4796:d80c:9d85) (Ping timeout: 272 seconds) |
| 22:01:33 | <ph88> | https://hackage.haskell.org/package/vinyl-0.13.0/docs/Data-Vinyl-Functor.html#t:ElField |
| 22:01:59 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 22:02:55 | <ph88> | data ElField (field :: (Symbol, Type)) where Field :: KnownSymbol s => !t -> ElField '(s,t) i don't understand this type, how to get out t |
| 22:03:06 | × | carlomagno quits (~cararell@148.87.23.7) (Remote host closed the connection) |
| 22:05:29 | <dsal> | It looks like the same way you get x out of x + 1 |
| 22:05:33 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 22:06:13 | <ph88> | o_O |
| 22:06:25 | <ph88> | - 1 ?? |
| 22:06:32 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 268 seconds) |
| 22:07:22 | → | mimi_vx joins (~mimi@2a01:490:16:1026:ad8e:aaec:b83:b6c3) |
| 22:09:47 | <monochrom> | That one looks like very intimidating-on-surface but at its heart is just another GADT. |
| 22:10:29 | <ph88> | i'm intimidated alright |
| 22:14:14 | → | dbmikus joins (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) |
| 22:16:21 | → | carlomagno joins (~cararell@148.87.23.5) |
| 22:16:56 | × | knupfer quits (~Thunderbi@87.123.206.174) (Ping timeout: 240 seconds) |
| 22:17:00 | → | xcmw joins (~textual@2603-6011-2200-f103-5cc1-e708-14f1-cedf.res6.spectrum.com) |
| 22:17:03 | <tomsmeding> | ph88: let Field value = yourThing in value |
| 22:17:20 | <tomsmeding> | well, probably: case yourThing of Field value -> value |
| 22:17:52 | <tomsmeding> | doing it with a let-binding has chances of not working due to monomorphism restriction-related things |
| 22:18:50 | <tomsmeding> | ph88: for some brief info about GADTs, see e.g. https://downloads.haskell.org/ghc/latest/docs/html/users_guide/glasgow_exts.html#gadt |
| 22:19:51 | <ph88> | oh i have to do case matching |
| 22:21:57 | → | kam1 joins (~kam1@24.231.108.143) |
| 22:22:19 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 22:23:31 | <ph88> | with this function it works getVal :: ElField '(s, t) -> t getVal (Field field) = field thank you tomsmeding |
| 22:26:02 | <tomsmeding> | ph88: or, indeed, with a function binding :) |
| 22:26:03 | <tomsmeding> | nice |
| 22:26:57 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 22:29:32 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 22:31:16 | × | fengh quits (~haskeller@ip72-205-40-121.dc.dc.cox.net) (Ping timeout: 240 seconds) |
| 22:34:04 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Remote host closed the connection) |
| 22:36:08 | × | cosimone quits (~cosimone@5.171.24.229) (Quit: cosimone) |
| 22:38:24 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Remote host closed the connection) |
| 22:38:47 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 22:41:02 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:42:19 | × | mimi_vx quits (~mimi@2a01:490:16:1026:ad8e:aaec:b83:b6c3) (Ping timeout: 272 seconds) |
| 22:43:49 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 22:44:50 | × | Tario quits (~Tario@200.119.187.80) (Ping timeout: 256 seconds) |
| 22:45:50 | → | Tario joins (~Tario@201.192.165.173) |
| 22:48:39 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 272 seconds) |
| 22:50:41 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-lgxaqgimsgvlotpk) |
| 22:51:06 | → | brodie joins (~brodie@207.53.253.137) |
| 22:52:38 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) |
| 22:54:38 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 22:56:39 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:cc57:4a3f:14e6:d0d5) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:59:02 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Ping timeout: 260 seconds) |
| 23:00:56 | × | mouseghost quits (~draco@wikipedia/desperek) (Quit: mew wew) |
| 23:01:55 | → | metamod[m] joins (metamodmat@gateway/shell/matrix.org/x-lzmujfsacobwjbwo) |
| 23:02:02 | × | wonko7 quits (~wonko7@69.75.150.77.rev.sfr.net) (Ping timeout: 268 seconds) |
| 23:02:28 | → | HarveyPwca joins (~HarveyPwc@c-98-220-98-201.hsd1.il.comcast.net) |
| 23:05:08 | × | jrqc quits (~rofl@96.78.87.197) (Remote host closed the connection) |
| 23:05:32 | → | jrqc joins (~rofl@96.78.87.197) |
| 23:10:21 | → | jedws joins (~jedws@121.209.189.201) |
| 23:11:08 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-mzkzpjlvwmkwoztw) |
| 23:14:39 | → | Vulfe joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 23:15:36 | × | Vulfe quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Remote host closed the connection) |
| 23:15:42 | → | Vulfe_ joins (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) |
| 23:17:19 | → | borne joins (~fritjof@200116b864c24e00c0a3d285e8e687f4.dip.versatel-1u1.de) |
| 23:17:23 | × | teardown quits (~user@gateway/tor-sasl/mrush) (Ping timeout: 240 seconds) |
| 23:17:27 | × | michalz quits (~user@185.246.204.56) (Remote host closed the connection) |
| 23:18:01 | → | star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) |
| 23:19:27 | → | teardown joins (~user@gateway/tor-sasl/mrush) |
| 23:24:07 | × | alx741 quits (~alx741@186.178.110.75) (Ping timeout: 260 seconds) |
| 23:24:52 | × | dhil quits (~dhil@78.156.97.38) (Ping timeout: 272 seconds) |
| 23:30:56 | × | carlomagno quits (~cararell@148.87.23.5) (Ping timeout: 240 seconds) |
| 23:32:32 | × | jrqc quits (~rofl@96.78.87.197) (Remote host closed the connection) |
| 23:32:33 | × | Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection) |
| 23:32:48 | × | shatriff quits (~vitaliish@176-52-216-242.irishtelecom.com) (Remote host closed the connection) |
| 23:33:10 | × | SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Quit: Goodbye!) |
| 23:33:20 | → | jrqc joins (~rofl@96.78.87.197) |
| 23:33:49 | × | patrickp quits (~patrickp@windows98.dev) (Quit: Shuting down...) |
| 23:34:05 | × | jrqc quits (~rofl@96.78.87.197) (Remote host closed the connection) |
| 23:34:27 | → | patrickp joins (~patrickp@windows98.dev) |
| 23:35:28 | × | ubert quits (~Thunderbi@p200300ecdf3514e7e6b318fffe838f33.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 23:37:55 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 23:38:23 | → | Varis joins (~Tadas@unaffiliated/varis) |
| 23:41:50 | × | carthia quits (~carthia@gateway/tor-sasl/carthia) (Quit: carthia) |
| 23:42:16 | × | fendor quits (~fendor@178.115.129.197.wireless.dyn.drei.com) (Remote host closed the connection) |
| 23:43:14 | × | jedws quits (~jedws@121.209.189.201) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:43:26 | × | dhouthoo quits (~dhouthoo@ptr-eitgbj2w0uu6delkbrh.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
| 23:43:39 | × | dbmikus quits (~dbmikus@c-174-49-172-14.hsd1.pa.comcast.net) (Ping timeout: 260 seconds) |
| 23:45:44 | → | stef204 joins (~stef204@unaffiliated/stef-204/x-384198) |
| 23:48:09 | → | jedws joins (~jedws@121.209.189.201) |
| 23:49:34 | → | jrqc joins (~rofl@96.78.87.197) |
| 23:50:46 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@66.115.189.189) |
| 23:53:59 | → | isBEKaml joins (~isBEKaml@unaffiliated/isbekaml) |
| 23:54:06 | ← | isBEKaml parts (~isBEKaml@unaffiliated/isbekaml) () |
| 23:55:06 | × | kam1 quits (~kam1@24.231.108.143) (Ping timeout: 256 seconds) |
| 23:55:19 | × | hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
| 23:55:46 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 23:56:24 | × | xcmw quits (~textual@2603-6011-2200-f103-5cc1-e708-14f1-cedf.res6.spectrum.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 23:57:39 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:1fb3:ef3f:ece2:c6f8) (Quit: cosimone) |
| 23:58:14 | × | Vulfe_ quits (~vulfe@2600:1702:31b0:34e0:cca6:5d8:2bb0:556c) (Remote host closed the connection) |
All times are in UTC on 2020-12-18.