Logs on 2020-10-13 (freenode/#haskell)
| 00:00:01 | × | CrystalNice quits (~CrystalNi@s91904426.blix.com) () |
| 00:00:02 | <newhoggy> | I think the danger is if a page you're not done with gets evicted because you're aggressively pulling in new pages and you are forced to pay to reload it. On AWS, that's likely to be more expensive. |
| 00:00:50 | <newhoggy> | The other reason streaming is prefferrably is the CSV files *usually* come from S3 in compressed form rather than from local disk. |
| 00:00:58 | <newhoggy> | preferrable* |
| 00:01:16 | <ski> | % 0x10_10.10_10 |
| 00:01:16 | <yahb> | ski: 4112.062744140625 |
| 00:01:30 | <ski> | % 0b10_10.10_10 |
| 00:01:31 | <yahb> | ski: ; <interactive>:151:1: error:; * Could not deduce (Num (b0 -> c)); (maybe you haven't applied a function to enough arguments?); from the context: (Num (b -> c), Num (a -> b)); bound by the inferred type for `it':; forall b c a. (Num (b -> c), Num (a -> b)) => a -> c; at <interactive>:151:1-13; The type variable `b0' is ambiguous; * In the ambig |
| 00:02:05 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 240 seconds) |
| 00:02:24 | × | jedws quits (~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:03:31 | <Axman6> | newhoggy: sure, though my take on this is that if you _do_ have a single strict bytestring, you should be abble to process it efficiently |
| 00:03:38 | <newhoggy> | Most likely use case is outside the cloud. Either locally or custom hardware. |
| 00:03:57 | <Axman6> | I would be interested to see the benchmark comparing both |
| 00:04:21 | <newhoggy> | Yeah. `hw-dsv` does have a strict mode which uses `mmap` |
| 00:05:34 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:6800:17f1:f8ae:fc06) |
| 00:05:35 | <newhoggy> | I think it ends up slower in general because it has to build a `cspoppy` index. |
| 00:05:36 | <Axman6> | great - I couldn't remember from looking at the code yesterday |
| 00:06:25 | <newhoggy> | I don't have a data parallel version of the index building code :D |
| 00:06:45 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 00:07:03 | <newhoggy> | I wonder if that is possible? |
| 00:07:21 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:6800:17f1:f8ae:fc06) (Client Quit) |
| 00:07:33 | <newhoggy> | Definitely interested in what the article does. |
| 00:07:36 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 00:09:45 | → | ahab joins (483206cb@adsl-72-50-6-203.prtc.net) |
| 00:09:50 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 00:09:59 | → | conal joins (~conal@64.71.133.70) |
| 00:10:00 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) |
| 00:11:27 | ahab | is now known as mgs |
| 00:11:40 | → | da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com) |
| 00:12:36 | → | sep2 joins (49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) |
| 00:14:43 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 00:15:52 | × | falafel quits (~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Ping timeout: 260 seconds) |
| 00:17:50 | <sep2> | https://dpaste.org/V12z I want to go through entire list and see if they are all proper. On union |
| 00:18:22 | <sep2> | From what you see here, how can I just get my list? |
| 00:21:39 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 00:22:03 | → | ccallahan1 joins (~ccallahan@185.204.1.185) |
| 00:22:33 | → | jedws joins (~jedws@121.209.161.98) |
| 00:23:54 | × | recon_- quits (~quassel@2602:febc:0:b6::6ca2) (Ping timeout: 244 seconds) |
| 00:24:49 | × | st8less quits (~st8less@2603:a060:11fd:0:9c66:9b18:c21:60c) (Ping timeout: 272 seconds) |
| 00:26:18 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:28:19 | × | Tario quits (~Tario@201.192.165.173) (Read error: Connection reset by peer) |
| 00:28:27 | × | quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 00:30:32 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 256 seconds) |
| 00:30:35 | × | jedws quits (~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:31:30 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
| 00:31:46 | → | Tario joins (~Tario@201.192.165.173) |
| 00:32:21 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 00:33:01 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 00:33:50 | → | jedws joins (~jedws@121.209.161.98) |
| 00:33:55 | <lemmih_> | sep2: That link is 404. |
| 00:34:27 | → | quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
| 00:34:30 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:f7f9) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 00:34:34 | × | bjobjo quits (~bjobjo@2a01:79c:cebf:d688::9e6) (Ping timeout: 244 seconds) |
| 00:34:57 | × | sep2 quits (49dc4892@c-73-220-72-146.hsd1.ca.comcast.net) (Remote host closed the connection) |
| 00:35:45 | → | hyiltiz joins (~quassel@2601:14d:4100:112c:cff4:7114:bc84:3722) |
| 00:35:45 | × | hyiltiz quits (~quassel@2601:14d:4100:112c:cff4:7114:bc84:3722) (Changing host) |
| 00:35:45 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 00:35:59 | × | hyiltiz quits (~quassel@unaffiliated/hyiltiz) (Client Quit) |
| 00:37:19 | × | L29Ah quits (~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds) |
| 00:39:39 | → | L29Ah joins (~L29Ah@unaffiliated/l29ah) |
| 00:39:55 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 00:41:27 | → | bjobjo joins (~bjobjo@2a01:79c:cebf:d688::9e6) |
| 00:41:32 | × | mgs quits (483206cb@adsl-72-50-6-203.prtc.net) (Remote host closed the connection) |
| 00:42:13 | × | nados quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 00:42:47 | → | nados joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 00:44:55 | → | recon_- joins (~quassel@2602:febc:0:b6::6ca2) |
| 00:45:16 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:f7f9) |
| 00:46:12 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 00:46:19 | → | hyiltiz joins (~quassel@82.118.227.47) |
| 00:46:20 | × | hyiltiz quits (~quassel@82.118.227.47) (Changing host) |
| 00:46:20 | → | hyiltiz joins (~quassel@unaffiliated/hyiltiz) |
| 00:47:02 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:7c51:293a:6844:5080) (Quit: oisdk) |
| 00:47:42 | → | laxask joins (~lax@unaffiliated/laxask) |
| 00:50:52 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 00:51:32 | → | geowiesnot joins (~user@87-89-181-157.abo.bbox.fr) |
| 00:54:29 | → | conal joins (~conal@64.71.133.70) |
| 00:55:55 | × | jedws quits (~jedws@121.209.161.98) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 00:59:05 | → | blacklight joins (~blackligh@d94186.upc-d.chello.nl) |
| 00:59:19 | ← | blacklight parts (~blackligh@d94186.upc-d.chello.nl) () |
| 01:00:33 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 01:00:41 | → | jedws joins (~jedws@121.209.161.98) |
| 01:01:28 | × | jedws quits (~jedws@121.209.161.98) (Client Quit) |
| 01:04:36 | → | Nolrai joins (4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) |
| 01:04:58 | → | toorevitimirp joins (~tooreviti@117.182.180.0) |
| 01:05:35 | <Nolrai> | So whats the name for Functor like things where you need both `a -> b` and `b -> a` to get `f a -> f b`? |
| 01:06:18 | <Nolrai> | One second..I need to reboot. |
| 01:06:22 | × | Nolrai quits (4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) (Remote host closed the connection) |
| 01:07:55 | × | xff0x quits (~fox@2001:1a81:52ad:5800:a0c7:cc77:f7d4:2372) (Ping timeout: 240 seconds) |
| 01:10:09 | → | xff0x joins (~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372) |
| 01:10:51 | → | wei2912 joins (~wei2912@unaffiliated/wei2912) |
| 01:10:58 | → | nolrai joins (4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) |
| 01:10:59 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 258 seconds) |
| 01:11:08 | <nolrai> | Sorry about that. |
| 01:11:33 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 01:13:00 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 265 seconds) |
| 01:13:46 | <jackdk> | nolrai: try the `invariant` package? |
| 01:18:38 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:f7f9) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 01:22:51 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 01:23:32 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 260 seconds) |
| 01:25:10 | × | nyaomi quits (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Quit: meow) |
| 01:25:38 | × | Aquazi quits (uid312403@gateway/web/irccloud.com/x-upzgdjixzxbjunfz) (Quit: Connection closed for inactivity) |
| 01:26:32 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 01:27:38 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds) |
| 01:27:58 | <gentauro> | justsomeguy: I guess that would be difficult to do |
| 01:28:29 | <gentauro> | in Axman6 example he uses four digits cos binary while I use three cos of thousand, million, billion, … |
| 01:30:56 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 01:34:36 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 01:35:43 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) |
| 01:36:46 | × | darjeeli1 quits (~darjeelin@122.245.210.138) (Ping timeout: 256 seconds) |
| 01:39:10 | → | jedws joins (~jedws@121.209.161.98) |
| 01:42:20 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 01:44:01 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:48:25 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 01:48:59 | × | SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Ping timeout: 240 seconds) |
| 01:52:24 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:54:28 | × | elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer) |
| 01:57:23 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 01:57:25 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 01:58:01 | → | darjeeli1 joins (~darjeelin@122.245.210.138) |
| 01:58:02 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 01:58:38 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 01:58:55 | <ski> | @type dimap -- nolrai |
| 01:58:56 | <lambdabot> | Profunctor p => (a -> b) -> (c -> d) -> p b c -> p a d |
| 01:59:16 | <ski> | oh, i suppose that's not quite what you were looking for |
| 02:00:55 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 240 seconds) |
| 02:01:35 | → | falafel joins (~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) |
| 02:01:46 | × | nolrai quits (4c1bcada@c-76-27-202-218.hsd1.or.comcast.net) (Quit: Ping timeout (120 seconds)) |
| 02:02:43 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 02:04:05 | → | danso joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 02:04:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:04:55 | <Buntspecht> | It's like functor plus cofunctor |
| 02:06:29 | → | SupaYoshi joins (~supayoshi@213-10-140-13.fixed.kpn.net) |
| 02:07:47 | <ski> | (no such thing as "cofunctor". itym "contravariant functor") |
| 02:08:06 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds) |
| 02:08:38 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 02:08:38 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 02:08:38 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 02:08:46 | <Buntspecht> | Yeah |
| 02:09:12 | <dolio> | But it's also not a covariant nor contravariant functor. |
| 02:09:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 02:10:20 | <dolio> | Oh, well, profunctors are, but things that tie together both arguments aren't. |
| 02:10:52 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 02:11:55 | <Buntspecht> | Meh, they already left ... |
| 02:13:26 | → | mdunnio joins (~mdunnio@208.59.170.5) |
| 02:13:32 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 02:13:43 | lagothrix | is now known as Guest26381 |
| 02:13:43 | × | Guest26381 quits (~lagothrix@unaffiliated/lagothrix) (Killed (barjavel.freenode.net (Nickname regained by services))) |
| 02:13:49 | → | lagothrix joins (~lagothrix@unaffiliated/lagothrix) |
| 02:13:53 | ← | aarvar parts (~foewfoiew@50.35.43.33) () |
| 02:13:54 | × | bcmiller quits (~bm3719@66.42.95.185) (Ping timeout: 265 seconds) |
| 02:14:18 | × | dave_uy quits (~david@108.61.193.26) (Ping timeout: 260 seconds) |
| 02:14:23 | × | byorgey quits (~byorgey@155.138.238.211) (Ping timeout: 265 seconds) |
| 02:14:38 | × | urodna quits (~urodna@unaffiliated/urodna) (Quit: urodna) |
| 02:15:48 | <fresheyeball> | hey out there |
| 02:15:57 | <fresheyeball> | anyone know how to debug hie with vscode? |
| 02:16:06 | <fresheyeball> | I moved to vscode for hie, and it was working amazing |
| 02:16:11 | <fresheyeball> | but I still have some issues |
| 02:16:26 | <fresheyeball> | Failed to parse result of calling cabal |
| 02:16:28 | <fresheyeball> | Warning: cannot determine version of /run/user/1000/bios-wrapper29062-0 : |
| 02:16:30 | <fresheyeball> | "" |
| 02:16:32 | <fresheyeball> | cabal: The program 'ghc' version >=7.0.1 is required but the version of |
| 02:16:34 | <fresheyeball> | /run/user/1000/bios-wrapper29062-0 could not be determined. |
| 02:16:36 | <fresheyeball> | this is it right now |
| 02:17:45 | × | mdunnio quits (~mdunnio@208.59.170.5) (Ping timeout: 240 seconds) |
| 02:19:03 | → | sand_dull joins (~theuser@104.140.53.43) |
| 02:19:49 | × | solonarv quits (~solonarv@adijon-655-1-70-207.w90-13.abo.wanadoo.fr) (Ping timeout: 246 seconds) |
| 02:21:17 | × | falafel quits (~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Ping timeout: 260 seconds) |
| 02:21:47 | → | solonarv joins (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) |
| 02:26:20 | → | Saukk joins (~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) |
| 02:27:05 | × | theDon quits (~td@muedsl-82-207-238-192.citykom.de) (Ping timeout: 240 seconds) |
| 02:28:59 | → | vicfred_ joins (~vicfred@unaffiliated/vicfred) |
| 02:29:02 | → | theDon joins (~td@muedsl-82-207-238-211.citykom.de) |
| 02:29:34 | × | solonarv quits (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Ping timeout: 258 seconds) |
| 02:31:36 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 272 seconds) |
| 02:35:39 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
| 02:36:24 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 02:36:29 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 02:39:15 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:46:07 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 256 seconds) |
| 02:46:25 | <koz_> | ski: I think they meant an invariant functor. |
| 02:47:38 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 02:48:22 | → | dyeplexer joins (~lol@unaffiliated/terpin) |
| 02:51:55 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 02:53:25 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1) |
| 02:53:57 | → | topos joins (sid467876@gateway/web/irccloud.com/x-gyqsqvcawuyxkhnv) |
| 03:00:01 | × | ccallahan1 quits (~ccallahan@185.204.1.185) () |
| 03:03:28 | × | darjeeli1 quits (~darjeelin@122.245.210.138) (Ping timeout: 256 seconds) |
| 03:04:52 | → | Stanley00 joins (~stanley00@unaffiliated/stanley00) |
| 03:05:10 | × | SupaYoshi quits (~supayoshi@213-10-140-13.fixed.kpn.net) (Ping timeout: 272 seconds) |
| 03:05:14 | → | SupaYoshii joins (~supayoshi@213-10-140-13.fixed.kpn.net) |
| 03:09:07 | <Axman6> | gentauro, justsomeguy: IIRC Indian numbers are often divided in a way similar to what I did, I don't remember the details but think it was something like four digits and then the rest are grouped by two digits |
| 03:10:33 | <Axman6> | looks like it's three, then twos |
| 03:11:50 | <Axman6> | Crore => 1,00,00,000, Lakh Crore => 10,00,00,00,00,000 |
| 03:13:25 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 03:15:56 | → | nyaomi joins (~naomi@cpe-74-75-6-125.maine.res.rr.com) |
| 03:16:25 | → | darjeeli1 joins (~darjeelin@122.245.216.36) |
| 03:21:09 | → | vincenz joins (~chris@104-1-91-5.lightspeed.sntcca.sbcglobal.net) |
| 03:21:15 | vincenz | waves |
| 03:23:20 | <Axman6> | o/ |
| 03:23:37 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 03:25:23 | <jackdk> | Is there a library which provides a convenient function of this type: `HashMap k1 (HashMap k2 v) -> HashMap k2 (HashMap k1 v)`? It felt like `distributive`, but that package doesn't seem to do instances for things in `containers` and I may have misunderstood its theory |
| 03:25:53 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:fd7f:2256:81b3:b295) (Ping timeout: 246 seconds) |
| 03:26:10 | <ski> | yea, i realized, koz_ |
| 03:26:22 | <vincenz> | Hi ski |
| 03:26:29 | <ski> | hello vincenz |
| 03:27:25 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 240 seconds) |
| 03:27:27 | <ski> | jackdk : looks like a kind of "transposition". perhaps you can find one that first goes to `HashMap (k1,k2) v' ? |
| 03:29:01 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 264 seconds) |
| 03:29:22 | → | dave_uy joins (~david@108.61.193.26) |
| 03:30:36 | → | bcmiller joins (~bm3719@66.42.95.185) |
| 03:30:40 | → | byorgey joins (~byorgey@155.138.238.211) |
| 03:34:15 | <vincenz> | ski been a while |
| 03:35:04 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Quit: leaving) |
| 03:36:23 | <jackdk> | ski: well sure: I can `fmap toList`, then toList, then rebuild the table. But that might not be quite what you're asking? |
| 03:37:05 | × | da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:38:30 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:9db:d3a4:6a7a:3b95) |
| 03:38:54 | <Axman6> | :t Map.toList . fmap Map.toList |
| 03:38:55 | <lambdabot> | error: |
| 03:38:55 | <lambdabot> | Not in scope: ‘Map.toList’ |
| 03:38:55 | <lambdabot> | Perhaps you meant one of these: |
| 03:39:01 | <Axman6> | :t M.toList . fmap M.toList |
| 03:39:03 | <lambdabot> | M.Map k1 (M.Map k2 a) -> [(k1, [(k2, a)])] |
| 03:39:20 | → | drbean joins (~drbean@TC210-63-209-59.static.apol.com.tw) |
| 03:40:39 | <Axman6> | jackdk: this feels like a thing that reflex would have implemented somewhere (with efficient observations n' stuff) |
| 03:41:04 | <ski> | vincenz : yep |
| 03:43:18 | → | falafel joins (~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) |
| 03:43:30 | <jackdk> | so the reason we can't have Distributive and (and therefore not Representable either) is that you need an isomorphism to `(->) x` for some x. Which we don't have; we have like an isomorphism `HashMap k <-> Compose ((->) k) Maybe` or something |
| 03:47:16 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 03:49:54 | <vincenz> | Is there a type for a vector of N values? |
| 03:49:59 | <vincenz> | Where N is fixed |
| 03:50:17 | → | Tario joins (~Tario@201.192.165.173) |
| 03:51:33 | <jackdk> | https://hackage.haskell.org/package/vector-sized |
| 03:51:35 | <jackdk> | maybe? |
| 03:51:47 | × | polyrain_ quits (~polyrain@2001:8003:e501:6901:39c5:19e3:cc60:4fe5) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 03:51:59 | <jackdk> | the `linear` package also has some short vectors useful for 3D sort of work |
| 03:52:40 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 03:52:57 | <vincenz> | I'm trying to define a partial order on a pareto space |
| 03:53:57 | <vincenz> | Thanks! jackdk, that seems better than the one I was looking ato |
| 03:56:58 | <jackdk> | I don't know those mathswords but good luck |
| 03:57:51 | <Axman6> | he's talking about the birds space pirates have |
| 03:57:53 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 03:59:21 | <jackdk> | rawk |
| 04:02:09 | <jackdk> | so there's not a map-specialised transposition function I'm aware of. Has anyone seen one like it for lists? `[(a,[(b,c)])] -> [(b,[(a,c)])]`? |
| 04:02:41 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 272 seconds) |
| 04:03:48 | → | Volt_ joins (~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) |
| 04:05:42 | × | falafel quits (~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Ping timeout: 260 seconds) |
| 04:08:37 | × | balbirs quits (~balbirs__@ozlabs.org) (Ping timeout: 260 seconds) |
| 04:10:38 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@68.235.43.86) |
| 04:10:39 | <Axman6> | should be pretty simple with a list comprehension |
| 04:12:13 | × | geowiesnot quits (~user@87-89-181-157.abo.bbox.fr) (Ping timeout: 264 seconds) |
| 04:14:08 | → | da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com) |
| 04:14:40 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 04:15:08 | <dibblego> | https://github.com/qfpl/separated/blob/master/src/Data/Separated.hs#L902 |
| 04:15:50 | <Axman6> | "[5,'x',6]" I beg your pardon what is this nonsense |
| 04:16:19 | <jackdk> | I do not understand what I am looking at |
| 04:16:29 | <Axman6> | :aliens: |
| 04:16:35 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 04:17:04 | <dibblego> | actually it's a bit different to what you wrote |
| 04:17:37 | → | conal joins (~conal@64.71.133.70) |
| 04:18:22 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 04:18:47 | <Axman6> | :t lef f mmp = fold [ (k2,M.singleton k1 v) | (k1,vs) <- M.toList mmp, (k2,v) <- M.toList vs in f |
| 04:18:49 | <lambdabot> | error: parse error on input ‘=’ |
| 04:18:59 | × | da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Ping timeout: 260 seconds) |
| 04:19:05 | <Axman6> | :t let f mmp = fold [ (k2,M.singleton k1 v) | (k1,vs) <- M.toList mmp, (k2,v) <- M.toList vs] in f |
| 04:19:07 | <lambdabot> | (Monoid a1, Ord k) => M.Map k (M.Map a1 a2) -> (a1, M.Map k a2) |
| 04:19:37 | <Axman6> | :t let f mmp = M.fromListWith M.union [ (k2,M.singleton k1 v) | (k1,vs) <- M.toList mmp, (k2,v) <- M.toList vs] in f |
| 04:19:39 | <lambdabot> | (Ord k1, Ord k2) => M.Map k2 (M.Map k1 a) -> M.Map k1 (M.Map k2 a) |
| 04:19:40 | × | vicfred_ quits (~vicfred@unaffiliated/vicfred) (Quit: Leaving) |
| 04:19:48 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:80e8) |
| 04:20:26 | <Axman6> | technically there's optimisations to be had from the uniqueness of the keys but yolo |
| 04:20:38 | <Axman6> | jackdk: happy? |
| 04:20:38 | → | conal joins (~conal@64.71.133.70) |
| 04:22:45 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Ping timeout: 240 seconds) |
| 04:23:08 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 04:24:48 | <jackdk> | axman6: I broke out the monoidal-containers hammer https://www.irccloud.com/pastebin/atKmxOH8/Transpose.hs |
| 04:24:50 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 04:24:51 | → | conal joins (~conal@64.71.133.70) |
| 04:25:01 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 04:25:02 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 04:25:21 | <jackdk> | I think I like yours better |
| 04:25:28 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:25:56 | → | falafel joins (~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) |
| 04:26:17 | → | conal joins (~conal@64.71.133.70) |
| 04:26:37 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 04:27:00 | <Axman6> | :t let f mmp = M.fromListWith M.union $ do { (k1,vs) <- M.toList mmp; (k2,v) <- M.toList vs; pure (k2,M.singleton k1 v) } in f |
| 04:27:01 | <lambdabot> | (Ord k1, Ord k2) => M.Map k2 (M.Map k1 a) -> M.Map k1 (M.Map k2 a) |
| 04:28:03 | → | conal joins (~conal@64.71.133.70) |
| 04:28:14 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 04:28:15 | <jackdk> | yeah I thnk donotation is clearer |
| 04:30:09 | → | day_ joins (~Unknown@unaffiliated/day) |
| 04:30:18 | → | dyeplexer joins (~lol@unaffiliated/terpin) |
| 04:30:49 | → | ironmarx joins (~ironmarx@184.75.221.179) |
| 04:31:15 | <Axman6> | @ :t let f mmp = M.fromListWith M.union $ do { (k1,vs) <- M.toList mmp; (k2,v) <- M.toList vs; [(k2,[(k1, v)])] } in f |
| 04:31:27 | <Axman6> | % :t let f mmp = M.fromListWith M.union $ do { (k1,vs) <- M.toList mmp; (k2,v) <- M.toList vs; [(k2,[(k1, v)])] } in f |
| 04:31:27 | <yahb> | Axman6: ; <interactive>:1:97: error:; * Couldn't match expected type `Map k3 a3' with actual type `[(a2, b1)]'; * In the expression: [(k1, v)]; In the expression: (k2, [(k1, v)]); In a stmt of a 'do' block: [(k2, [(k1, v)])]; * Relevant bindings include; v :: b1 (bound at <interactive>:1:73); vs :: Map k2 b1 (bound at <interactive>:1:48); k1 :: a2 (bound at <interact |
| 04:31:41 | <Axman6> | % :set -XOverloadedLists |
| 04:31:41 | <yahb> | Axman6: |
| 04:31:44 | <Axman6> | % :t let f mmp = M.fromListWith M.union $ do { (k1,vs) <- M.toList mmp; (k2,v) <- M.toList vs; [(k2,[(k1, v)])] } in f |
| 04:31:44 | <yahb> | Axman6: (Ord k1, Ord k2) => Map k2 (Map k1 a) -> Map k1 (Map k2 a) |
| 04:31:49 | <Axman6> | awww yiss |
| 04:32:45 | → | danvet_ joins (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) |
| 04:32:48 | <vincenz> | How do I do something like: |
| 04:33:08 | <vincenz> | for all n: instance PartialOrd a => PartialOrd (Vector n a) |
| 04:33:10 | × | day quits (~Unknown@unaffiliated/day) (Ping timeout: 246 seconds) |
| 04:33:10 | day_ | is now known as day |
| 04:33:45 | → | Sanchayan joins (~Sanchayan@106.201.37.251) |
| 04:34:45 | × | macrover quits (~macrover@ip70-189-231-35.lv.lv.cox.net) (Ping timeout: 240 seconds) |
| 04:35:40 | → | dan64 joins (~dan64@dannyadam.com) |
| 04:36:47 | <Axman6> | instance (KnownNat n, PartialOrd a) => PArtialOrd (Vector n a)? |
| 04:37:24 | <vincenz> | Thanks, I'll try tat! |
| 04:41:34 | × | ddellacosta quits (~dd@86.106.121.168) (Ping timeout: 256 seconds) |
| 04:41:44 | <vincenz> | I'll go without fixed size for now to simplify, then I can always add it later I guess |
| 04:42:25 | → | alp joins (~alp@2a01:e0a:58b:4920:2ccf:c5eb:4256:63a6) |
| 04:45:11 | × | danso quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 04:45:11 | × | nados quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 04:45:51 | → | nados joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 04:46:25 | → | danso joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 04:46:56 | <vincenz> | How do I qualify an operator in binding position? |
| 04:47:09 | <vincenz> | instnace ... where .... x PartialOrd.<= y = ... |
| 04:49:51 | <vincenz> | Found it, I import only what I want from prelude and thus mask the <= in prelude |
| 04:52:44 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 04:53:59 | → | aqd joins (~aqd@87-92-145-87.rev.dnainternet.fi) |
| 04:58:38 | → | balbirs joins (~balbirs__@ozlabs.org) |
| 04:59:38 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 05:00:59 | × | sand_dull quits (~theuser@104.140.53.43) (Ping timeout: 258 seconds) |
| 05:02:53 | × | toorevitimirp quits (~tooreviti@117.182.180.0) (Ping timeout: 260 seconds) |
| 05:04:25 | × | renzhi quits (~renzhi@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 264 seconds) |
| 05:06:31 | → | plutoniix joins (~q@node-unw.pool-125-24.dynamic.totinternet.net) |
| 05:09:22 | → | toorevitimirp joins (~tooreviti@117.182.180.0) |
| 05:09:25 | × | jespada quits (~jespada@90.254.245.15) (Ping timeout: 240 seconds) |
| 05:12:04 | → | jespada joins (~jespada@90.254.245.15) |
| 05:12:10 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:13:09 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 05:13:27 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 05:13:28 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 05:13:28 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 05:16:47 | × | alp quits (~alp@2a01:e0a:58b:4920:2ccf:c5eb:4256:63a6) (Ping timeout: 272 seconds) |
| 05:17:03 | → | bitmagie joins (~Thunderbi@200116b806cb540040a9783a9ea970a9.dip.versatel-1u1.de) |
| 05:17:14 | × | bitmagie quits (~Thunderbi@200116b806cb540040a9783a9ea970a9.dip.versatel-1u1.de) (Client Quit) |
| 05:18:23 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 05:18:37 | × | ironmarx quits (~ironmarx@184.75.221.179) (Remote host closed the connection) |
| 05:19:59 | × | darjeeli1 quits (~darjeelin@122.245.216.36) (Ping timeout: 265 seconds) |
| 05:19:59 | → | ishutin_ joins (~Ishutin@178-164-207-98.pool.digikabel.hu) |
| 05:21:25 | → | darjeeli1 joins (~darjeelin@122.245.216.36) |
| 05:23:05 | × | ishutin quits (~Ishutin@193-110-63-54.cable-modem.hdsnet.hu) (Ping timeout: 240 seconds) |
| 05:23:18 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 05:24:28 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 05:28:47 | → | vicfred joins (~vicfred@unaffiliated/vicfred) |
| 05:29:21 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:80e8) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 05:29:43 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds) |
| 05:30:57 | → | nyd joins (~lpy@unaffiliated/elysian) |
| 05:33:10 | → | chele joins (~chele@5.53.222.202) |
| 05:33:23 | × | djellemah quits (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) (Ping timeout: 244 seconds) |
| 05:33:25 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:34:40 | → | romtam joins (~romtam@s91904426.blix.com) |
| 05:35:18 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 05:38:12 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 05:38:23 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 05:38:23 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 05:38:23 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 05:38:44 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 05:45:00 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 05:45:23 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 05:45:45 | × | vicfred quits (~vicfred@unaffiliated/vicfred) (Ping timeout: 256 seconds) |
| 05:46:17 | → | bliminse joins (~bliminse@host217-42-95-37.range217-42.btcentralplus.com) |
| 05:47:16 | lep-delete | is now known as Guest88073 |
| 05:49:05 | → | sapek joins (1812cc74@c-24-18-204-116.hsd1.wa.comcast.net) |
| 05:49:33 | × | fresheyeball quits (~isaac@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.7.1) |
| 05:51:28 | × | sapek quits (1812cc74@c-24-18-204-116.hsd1.wa.comcast.net) (Remote host closed the connection) |
| 05:54:47 | × | plutoniix quits (~q@node-unw.pool-125-24.dynamic.totinternet.net) (Ping timeout: 265 seconds) |
| 05:58:44 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 05:59:12 | → | GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 05:59:12 | × | GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 05:59:12 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 06:00:01 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 258 seconds) |
| 06:00:01 | × | romtam quits (~romtam@s91904426.blix.com) () |
| 06:00:40 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@68.235.43.86) (Ping timeout: 246 seconds) |
| 06:03:10 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 244 seconds) |
| 06:08:57 | → | plutoniix joins (~q@ppp-27-55-89-214.revip3.asianet.co.th) |
| 06:09:21 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:9db:d3a4:6a7a:3b95) (Ping timeout: 272 seconds) |
| 06:12:02 | × | plutoniix quits (~q@ppp-27-55-89-214.revip3.asianet.co.th) (Excess Flood) |
| 06:12:22 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:12:36 | → | plutoniix joins (~q@ppp-27-55-89-214.revip3.asianet.co.th) |
| 06:18:11 | → | vonfry joins (~user@38.94.109.36) |
| 06:18:19 | × | plutoniix quits (~q@ppp-27-55-89-214.revip3.asianet.co.th) (Read error: Connection reset by peer) |
| 06:19:38 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 06:20:27 | × | Saukk quits (~Saukk@2001:998:f1:3966:96a6:dee2:2e9:fdf3) (Ping timeout: 260 seconds) |
| 06:21:35 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:38c4:6bae:c9c7:c00b) |
| 06:21:48 | → | Wayno joins (~Wayno@185.163.110.116) |
| 06:22:57 | hackage | hurl 1.4.2.0 - Haskell URL resolver https://hackage.haskell.org/package/hurl-1.4.2.0 (alcinnz) |
| 06:23:04 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 06:23:14 | → | GyroW joins (~GyroW@d54c03e98.access.telenet.be) |
| 06:23:14 | × | GyroW quits (~GyroW@d54c03e98.access.telenet.be) (Changing host) |
| 06:23:14 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 06:23:37 | → | sword865 joins (uid208942@gateway/web/irccloud.com/x-sxotpuupdfwwcwxa) |
| 06:27:24 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 06:27:39 | → | lucid_0x80 joins (~lucid_0x8@188.253.234.30) |
| 06:27:49 | × | sfvm quits (~sfvm@37.228.215.148) (Quit: off to the basement, mixing up the medicine) |
| 06:28:02 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:38c4:6bae:c9c7:c00b) (Ping timeout: 260 seconds) |
| 06:29:22 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 246 seconds) |
| 06:30:13 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 06:30:47 | × | mystfox quits (~myst@focks.pw) (Max SendQ exceeded) |
| 06:31:02 | × | mozzarella quits (~sam@unaffiliated/sam113101) (Remote host closed the connection) |
| 06:31:08 | → | mystfox joins (~myst@focks.pw) |
| 06:33:00 | → | mozzarella joins (~sam@unaffiliated/sam113101) |
| 06:33:00 | × | mozzarella quits (~sam@unaffiliated/sam113101) (Remote host closed the connection) |
| 06:34:22 | → | mozzarella joins (~sam@unaffiliated/sam113101) |
| 06:35:01 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 264 seconds) |
| 06:35:01 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 06:37:16 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 06:40:50 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:85d4:43d9:8dee:59a0) |
| 06:46:28 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 06:48:21 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 06:48:52 | → | kritzefitz joins (~kritzefit@fw-front.credativ.com) |
| 06:48:57 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 06:51:29 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds) |
| 06:52:18 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 06:52:18 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 06:52:18 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 06:53:42 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 06:54:05 | × | toorevitimirp quits (~tooreviti@117.182.180.0) (Remote host closed the connection) |
| 06:54:52 | × | falafel quits (~falafel@2605:e000:1527:d491:1ccf:5c8d:7928:e9cc) (Ping timeout: 260 seconds) |
| 06:55:47 | → | GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 06:55:47 | × | GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 06:55:47 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 06:56:37 | × | JordiGH quits (jordi@octave/developer/JordiGH) (Ping timeout: 260 seconds) |
| 06:57:09 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 256 seconds) |
| 06:58:07 | <gentauro> | 05:11 < Axman6> Crore => 1,00,00,000, Lakh Crore => 10,00,00,00,00,000 |
| 06:58:12 | <gentauro> | first time I see this :o |
| 06:59:49 | → | fbm joins (5ddb33d0@p5ddb33d0.dip0.t-ipconnect.de) |
| 07:02:18 | × | fbm quits (5ddb33d0@p5ddb33d0.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 07:04:34 | → | John20 joins (~John@82.46.59.122) |
| 07:04:47 | × | xff0x quits (~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372) (Ping timeout: 260 seconds) |
| 07:06:20 | → | toorevitimirp joins (~tooreviti@117.182.180.0) |
| 07:08:19 | → | alp joins (~alp@2a01:e0a:58b:4920:e472:4844:3c7b:eb57) |
| 07:09:13 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 265 seconds) |
| 07:09:49 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 07:15:58 | × | danso quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 07:15:58 | × | nados quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 07:16:00 | → | coot joins (~coot@37.30.50.102.nat.umts.dynamic.t-mobile.pl) |
| 07:16:31 | → | akegalj joins (~akegalj@93-138-183-8.adsl.net.t-com.hr) |
| 07:16:44 | → | danso joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 07:16:49 | → | nados joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 07:16:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:17:15 | × | vonfry quits (~user@38.94.109.36) (Remote host closed the connection) |
| 07:17:39 | → | vonfry joins (~user@116.236.75.229) |
| 07:17:42 | × | justsomeguy quits (~justsomeg@unaffiliated/--/x-3805311) () |
| 07:18:45 | → | vonfry` joins (~user@38.94.109.36) |
| 07:19:08 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-yqmynplgqpklanea) (Quit: Connection closed for inactivity) |
| 07:20:59 | × | vonfry` quits (~user@38.94.109.36) (Remote host closed the connection) |
| 07:21:21 | → | vonfry`` joins (~user@38.94.109.36) |
| 07:22:18 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 07:22:26 | × | vonfry quits (~user@116.236.75.229) (Ping timeout: 256 seconds) |
| 07:24:31 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 07:28:58 | → | chaosmasttter joins (~chaosmast@p200300c4a711b00135524723c22b3f52.dip0.t-ipconnect.de) |
| 07:29:02 | × | danso quits (~dan@107-190-41-58.cpe.teksavvy.com) (Quit: WeeChat 2.9) |
| 07:30:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:33:09 | → | oxide joins (~lambda@unaffiliated/mclaren) |
| 07:37:58 | hackage | pandoc-crossref 0.3.8.2 - Pandoc filter for cross-references https://hackage.haskell.org/package/pandoc-crossref-0.3.8.2 (lierdakil) |
| 07:38:20 | → | raichoo joins (~raichoo@213.240.178.58) |
| 07:38:20 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 07:38:21 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 07:39:00 | × | Volt_ quits (~Volt_@c-73-145-164-70.hsd1.mi.comcast.net) (Quit: ) |
| 07:40:52 | × | vonfry`` quits (~user@38.94.109.36) (Remote host closed the connection) |
| 07:41:07 | → | vonfry`` joins (~user@116.236.75.229) |
| 07:44:15 | → | vonfry``` joins (~user@38.94.109.36) |
| 07:45:00 | → | da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com) |
| 07:45:21 | ← | vonfry``` parts (~user@38.94.109.36) () |
| 07:46:41 | → | shafox joins (~shafox@106.51.234.111) |
| 07:48:04 | × | vonfry`` quits (~user@116.236.75.229) (Ping timeout: 260 seconds) |
| 07:50:18 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds) |
| 07:50:50 | → | dhouthoo joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
| 07:52:07 | → | xff0x joins (~fox@217.110.198.158) |
| 07:54:23 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 07:55:31 | × | nyd quits (~lpy@unaffiliated/elysian) (Ping timeout: 256 seconds) |
| 07:55:56 | → | nyd joins (~lpy@unaffiliated/elysian) |
| 07:59:33 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 07:59:55 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 08:00:32 | × | ghoulguy quits (x@freenode/staff/haskell.developer.glguy) (Ping timeout: 615 seconds) |
| 08:02:11 | → | m0rphism joins (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) |
| 08:02:14 | → | carldd102 joins (~carldd@90-224-49-113-no56.tbcn.telia.com) |
| 08:02:41 | × | toorevitimirp quits (~tooreviti@117.182.180.0) (Quit: Konversation terminated!) |
| 08:02:48 | × | carldd10 quits (~carldd@90-224-49-113-no56.tbcn.telia.com) (Read error: Connection reset by peer) |
| 08:04:37 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 272 seconds) |
| 08:04:37 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 08:04:40 | × | hnOsmium0001 quits (uid453710@gateway/web/irccloud.com/x-ycssaquegccjnbcx) (Quit: Connection closed for inactivity) |
| 08:05:00 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 08:06:56 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Read error: Connection reset by peer) |
| 08:06:56 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 08:08:23 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 08:08:57 | → | glguy joins (x@freenode/staff/haskell.developer.glguy) |
| 08:09:59 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 08:13:05 | <gentauro> | so it looks like I got `lsp` to work with `emacs`. But is there a way to disable the "clippy a like boxes"? I mean, as a colorblind person, they don't do anything for me :D https://postimg.cc/QBPhSSM9 |
| 08:13:59 | × | akegalj quits (~akegalj@93-138-183-8.adsl.net.t-com.hr) (Ping timeout: 265 seconds) |
| 08:13:59 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 08:14:25 | <gentauro> | btw, this is how I got it to work -> https://pastebin.ubuntu.com/p/WTqKCSNJYS/ |
| 08:14:34 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 08:14:42 | <gentauro> | it seems like the `install.hs` doesn't really play nice with stack :( |
| 08:14:58 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 08:15:15 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Quit: Off to see the wizard.) |
| 08:16:06 | × | Buntspecht quits (~user@unaffiliated/siracusa) (Quit: Bye!) |
| 08:16:06 | gentauro | I would <3 to update https://github.com/haskell/haskell-language-server/issues/171#issue-643008760 with this comment, but sadly I "wiped" my GH account when M$ overtook the platform … |
| 08:16:11 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 08:16:37 | → | proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net) |
| 08:16:38 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 08:18:17 | × | dhouthoo quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Ping timeout: 260 seconds) |
| 08:18:18 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 08:19:35 | <gentauro> | oh, so if I remove `lsp-ui` from `emacs`, then "clippy msgs" go away. Good to know :) |
| 08:19:59 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 08:21:27 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 08:23:16 | <gentauro> | I guess it's fair to say that `lsp-haskell` is pretty fast compared to `intero`. Hmmm |
| 08:23:29 | × | alp quits (~alp@2a01:e0a:58b:4920:e472:4844:3c7b:eb57) (Remote host closed the connection) |
| 08:23:46 | × | oxide quits (~lambda@unaffiliated/mclaren) (Ping timeout: 258 seconds) |
| 08:23:50 | → | alp joins (~alp@2a01:e0a:58b:4920:1dcd:3fff:5840:1f3a) |
| 08:24:41 | → | encod3 joins (~encod3@45-154-157-94.ftth.glasoperator.nl) |
| 08:24:41 | → | Ariakenom joins (~Ariakenom@193.254.193.1) |
| 08:25:29 | → | oxide joins (~lambda@unaffiliated/mclaren) |
| 08:28:19 | → | kindaro joins (1f08ec14@h31-8-236-20.dyn.bashtel.ru) |
| 08:28:43 | <kindaro> | Is there an introduction to Object Oriented Programming for a functional programmer? |
| 08:30:27 | <kindaro> | I would like to have basic concepts and motivation explained to me, but so far I have not been able to locate a clear introduction. |
| 08:32:08 | <gentauro> | kindaro: at KU they teach the three paradigsm: imperative, FP and OO under the same umbrella (F#) for newcomers to CS |
| 08:32:18 | <kindaro> | KU? |
| 08:32:34 | × | drbean quits (~drbean@TC210-63-209-59.static.apol.com.tw) (Ping timeout: 246 seconds) |
| 08:32:39 | <gentauro> | that way it's easier to see the differences between these paradigms (same language/syntax) and not get lost in translation |
| 08:33:07 | <gentauro> | kindaro: KU = København Universitet (in English: University of Copenhagen) |
| 08:33:28 | <gentauro> | maybe the teaching material is available openly? You might reach out to Athas for that |
| 08:34:58 | <kindaro> | This looks like the thing: https://studier.ku.dk/bachelor/datalogi/faq/livet-paa-uddannelsen/Eksempel_p__en_tekst_fra_datalogi.pdf |
| 08:35:44 | × | encod3 quits (~encod3@45-154-157-94.ftth.glasoperator.nl) () |
| 08:38:43 | <gentauro> | kindaro: might be. I would have hoped for `Torben Ægidius Mogensen` material :) |
| 08:39:34 | × | glguy quits (x@freenode/staff/haskell.developer.glguy) (Ping timeout: 606 seconds) |
| 08:40:30 | <gentauro> | kindaro: I'm asking him on FB |
| 08:42:56 | × | eedgit2 quits (~chat.free@95.179.237.21) (Remote host closed the connection) |
| 08:43:06 | → | cpressey joins (~cpressey@88.144.68.224) |
| 08:43:17 | → | eedgit2 joins (~chat.free@95.179.237.21) |
| 08:47:56 | → | guest35 joins (d537f42e@213.55.244.46) |
| 08:54:57 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 08:55:34 | → | polyrain joins (~polyrain@2001:8003:e501:6901:3d18:f8b0:5f22:3669) |
| 08:59:28 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 09:00:01 | → | glguy joins (x@freenode/staff/haskell.developer.glguy) |
| 09:00:02 | × | Wayno quits (~Wayno@185.163.110.116) () |
| 09:02:45 | <merijn> | When (which GHC) did Monoid move to prelude? |
| 09:03:42 | × | da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 09:04:10 | → | polyrain_ joins (~polyrain@2001:8003:e501:6901:8a4:c02:960d:e633) |
| 09:06:11 | × | lucid_0x80 quits (~lucid_0x8@188.253.234.30) (Ping timeout: 265 seconds) |
| 09:06:22 | <Taneb> | merijn: 7.10 |
| 09:06:35 | <Taneb> | base has a pretty useful changelog |
| 09:07:15 | <kindaro> | gentauro, I value your help. I have to go presently. If you have any more information about that F# teaching material, please write to me offline _(I can check the public log)_ or ask the bot to deliver a message. |
| 09:07:17 | × | polyrain quits (~polyrain@2001:8003:e501:6901:3d18:f8b0:5f22:3669) (Ping timeout: 260 seconds) |
| 09:07:27 | × | kindaro quits (1f08ec14@h31-8-236-20.dyn.bashtel.ru) (Remote host closed the connection) |
| 09:07:53 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9) |
| 09:08:24 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 09:10:49 | <merijn> | Taneb: Yeah, that just occurred to me |
| 09:11:07 | × | shutdown_-h_now quits (~arjan@2001:1c06:2d0b:2312:fc55:7103:1b55:f700) (Ping timeout: 272 seconds) |
| 09:12:10 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 09:12:48 | <jonathanx> | So I want to create a typeable representation of a GADT tagged with datakind based phantom types. I run into issues which I think is due to datakind based types not having Typeable instances (as opposed to to ordinary types). This is a bit annoying, seeing as a typeable instance for datakind is a simple "demotion" from type->value. So my question is: is there a convenient way to create typeable instances for GADTs that have DataKinds |
| 09:12:49 | <jonathanx> | phantom types? |
| 09:14:27 | <merijn> | jonathanx: Eh, out of curiousity, why do you wanna do that? |
| 09:15:52 | × | proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection) |
| 09:16:55 | → | proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net) |
| 09:18:27 | → | shutdown_-h_now joins (~arjan@2001:1c06:2d0b:2312:613f:c21f:11b3:bc2c) |
| 09:19:29 | → | ClaudiusMaximus joins (~claude@198.123.199.146.dyn.plus.net) |
| 09:19:40 | × | ClaudiusMaximus quits (~claude@198.123.199.146.dyn.plus.net) (Changing host) |
| 09:19:40 | → | ClaudiusMaximus joins (~claude@unaffiliated/claudiusmaximus) |
| 09:23:14 | <jonathanx> | I'm working with a domain similar to dataflow languages (such as labview), where the nodes have various invariants in the way they connect together/the outputs relate to the inputs. I'm prototyping encoding these invariant in GADTS decorated with datakind based phantom types. When constructing this/connecting the nodes together, I'm planning to first create a rose-tree representing all wanted connections, where the invariant-enforcing |
| 09:23:14 | <jonathanx> | phantom types are "boxed" into a GADT such as "data Any where Any :: Specific phantomType -> Any". Then I want to fold that tree, "unboxing" the data as I go, and connect all children to each tree-node with phantom type based type security. When "unboxing", I want to use typeReps to help the compiler validate that the type "boxed" can be used as a parameter to the node it's connecting to |
| 09:23:56 | → | __monty__ joins (~toonn@unaffiliated/toonn) |
| 09:25:25 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 264 seconds) |
| 09:25:28 | <merijn> | eh, all I can say is "good luck" >.> |
| 09:27:00 | <jonathanx> | Thank you! |
| 09:29:37 | <sshine> | I'd probably go with JSON. :-D |
| 09:30:03 | <dminuoso> | JSON is webscale. |
| 09:30:12 | <sshine> | what does webscale mean? |
| 09:30:35 | <dminuoso> | sshine: https://www.youtube.com/watch?v=b2F-DItXtZs |
| 09:30:42 | <sshine> | I see JSON more like a common serializable format. short path between two command-line programs to share structured data. |
| 09:31:46 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 09:32:17 | <dminuoso> | Superficially, JSON only solves the "how do I serialize numbers (that's a funny bit, btw), strings, dictionaries, lists and bools" part. |
| 09:32:28 | → | dhouthoo_ joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
| 09:32:28 | <sshine> | dminuoso, it sounds like tacking "web scale" onto something means you disapprove of it because of premature scaling concerns. :) |
| 09:32:40 | <sshine> | s/only // and I'm with you. |
| 09:32:48 | <dminuoso> | sshine: There's a lot of tongue-in-cheek in the webscale remark, above. |
| 09:32:53 | <sshine> | yeah |
| 09:33:02 | <sshine> | I think JSON is quite unambitious, which is a good thing. |
| 09:33:16 | <dminuoso> | The thing is, when you're getting a deserialized JSON, you still have to parse the structure of it. |
| 09:33:28 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Ping timeout: 246 seconds) |
| 09:33:34 | <dminuoso> | Much of Python code is more adhoc, and destructures the data all over the place. |
| 09:34:14 | → | ubert joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
| 09:34:26 | <dminuoso> | Since JSON types can be mapped into equally unstructured Python data. |
| 09:34:36 | <sshine> | so, my idea is, you have a bunch of ADTs, you derive Aeson encode/decode, and you save your configs to disk. if you need to interact with them in *any other way*, serialization is given. if not, you can post-pone deriving Aeson. |
| 09:34:54 | <sshine> | so no web scale ambition here. :) |
| 09:35:18 | × | L29Ah quits (~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds) |
| 09:36:50 | <sshine> | they're not as safe as GADTs with phantom types, but they serialize nicely, which is something I'd probably appreciate sooner. :) |
| 09:42:28 | × | karolus quits (~karolus@static.32.230.217.95.clients.your-server.de) (Ping timeout: 256 seconds) |
| 09:42:37 | <gentauro> | jonathanx: why not just to `show` / `read`? |
| 09:43:12 | <gentauro> | jonathanx: I have started to use that (with pretty-print) instead of `JSON` |
| 09:43:33 | <gentauro> | It's more readable and it's easily save/load -able |
| 09:43:34 | <Uniaika> | hey folks, I'm having a bit of an issue with Aeson. Do you know how I can write a `ToJSON MySumType` instance that would write the two members of the sum type as separate keys in the top-most object? |
| 09:43:44 | <Uniaika> | because I could write them in a sub-object |
| 09:44:01 | <Uniaika> | but due to reasons like backward compatibility, this is hardly an option :/ |
| 09:44:30 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 09:46:09 | <jonathanx> | Well, if I were to use json, then I'd have to somehow serialize the phantom types (representing them in the json), and validate them on deserialization. This would leave me open to pretty mauch the same range of errors I'd get if I just enforced the invariants using runtime checks |
| 09:46:29 | <gentauro> | dminuoso: that `webscale` video made my day. It's actually a documentary, cos that moment (2:35) I had far to many times … (it's like they are "quoting me") :o |
| 09:48:08 | <jonathanx> | which would turn the entire phantom type based invariant forcing into just a piece of redundant bloat/an excessive roundtrip |
| 09:48:20 | <gentauro> | Uniaika: I tend to use `set <|> bin` (`Control.Applicative` Alternate) for that |
| 09:48:59 | <gentauro> | I can post code that does exactly what you are asking for, but I'm working on the proejct at this exact moment :) |
| 09:49:07 | <gentauro> | s/I can/I can't/ |
| 09:51:27 | <gentauro> | kindaro: `please write to me offline` Roger that |
| 09:51:37 | → | acidjnk_new joins (~acidjnk@p200300d0c723782835a5fda97218b164.dip0.t-ipconnect.de) |
| 09:53:27 | <Uniaika> | gentauro: oh, thank you :) |
| 09:56:45 | → | shatriff_ joins (~vitaliish@176.52.219.10) |
| 09:56:45 | × | shatriff quits (~vitaliish@176.52.219.10) (Read error: Connection reset by peer) |
| 09:56:46 | <dminuoso> | Uniaika: You could always just write the object out by hand `object ["foo" .= foo, "bar" .= bar]`, Ive grown quite fond of that. |
| 09:56:51 | → | supercoven joins (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) |
| 09:57:27 | <dminuoso> | Too often I found, relying on generics, generics with options, and things like the Alternative, is trying very hard to take indirect control over the encoder/decoder |
| 09:57:35 | <kuribas> | Uniaika: do you need to rewrite the Aeson? |
| 09:57:47 | <kuribas> | Uniaika: I actually just wrote code to do that. |
| 09:57:58 | <kuribas> | Uniaika: and you can still use generics after it. |
| 09:59:23 | <dminuoso> | Also, with generics you're tying external representation directly to your data types. To get around that, you might start having a separate data type, where you rename fields particularly to control the representation, and then you need a sort of `fromRep/toRep` functions, which is the exact boilerplate you tried to avoid in the first place.. |
| 09:59:29 | <kuribas> | Uniaika: https://gist.github.com/kuribas/5c617ecf025ccb37467a23556cbe963e |
| 09:59:35 | <dminuoso> | Every time I stare at aeson, I dont think generics are a good idea. :( |
| 09:59:40 | <dminuoso> | Or typeclasses at all |
| 10:00:06 | <kuribas> | there are many times where generics are actually desirable. |
| 10:00:17 | <Uniaika> | thanks to you all :) |
| 10:00:24 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 10:00:30 | <kuribas> | because you know it will still be consistent when you add a field. |
| 10:00:41 | <kuribas> | while manual instance don't garantee that your instances are consistent. |
| 10:01:00 | <Uniaika> | kuribas: I have a roundtrip test for that |
| 10:01:11 | <Uniaika> | always with manual instances for Aeson and pg-simple |
| 10:01:14 | <kuribas> | Uniaika: with my code it is actually garanteed |
| 10:01:16 | → | akegalj joins (~akegalj@93-138-183-8.adsl.net.t-com.hr) |
| 10:01:34 | <kuribas> | Uniaika: as long as you use the same options of course. |
| 10:01:49 | <Uniaika> | kuribas: I'm waiting for a blog post to introduce that AesonTrans :) |
| 10:01:52 | × | dhouthoo_ quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Ping timeout: 244 seconds) |
| 10:01:58 | <Uniaika> | it really looks interesting :) |
| 10:01:58 | <kuribas> | Uniaika: I should make a library for it... |
| 10:02:03 | <Uniaika> | also! :D |
| 10:03:09 | <kuribas> | Uniaika: the disadvantage is that it rewrites the Value, so it is less efficient than a direct toEncoding. |
| 10:04:27 | hackage | Z-IO 0.1.5.1 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.1.5.1 (winterland) |
| 10:04:35 | → | dhouthoo_ joins (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) |
| 10:04:57 | <kuribas> | Uniaika: fromField (Proxy @"field") ["a", "b"] "c", pulls in field c, for example {"a": {"b": {"c" = 2 }}} => {"field" => 2} |
| 10:05:02 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 260 seconds) |
| 10:06:13 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 10:06:46 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:07:02 | <kuribas> | Uniaika: maybeFromField does the same, but can be empty. |
| 10:07:44 | <kuribas> | Uniaika: you can compose the AesonTrans with monoid, use postTransJSON and preTransJSON to translate the JSON. That's it basically. |
| 10:07:52 | × | guest35 quits (d537f42e@213.55.244.46) (Remote host closed the connection) |
| 10:08:14 | <kuribas> | Uniaika: and don't forget to set the fieldModifier using transFieldModifier if you have one. |
| 10:09:06 | × | lemmih_ quits (~lemmih@218.186.157.57) (Remote host closed the connection) |
| 10:09:34 | → | lemmih_ joins (~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) |
| 10:09:55 | <Uniaika> | kuribas: I doubt I'll be able to pull this off for the current project, but I will definitely think about it for any next project I'm bootstrapping |
| 10:10:08 | <Uniaika> | (but again, I'll need some kind of blog post to introduce the lib and its usage :P) |
| 10:10:33 | <kuribas> | Uniaika: yeah, a hackage library with some docs would be a good idea :) |
| 10:10:44 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 10:10:46 | <Uniaika> | <3 |
| 10:13:18 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 272 seconds) |
| 10:13:53 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 10:15:30 | → | karolus joins (~karolus@static.32.230.217.95.clients.your-server.de) |
| 10:16:50 | × | proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection) |
| 10:17:50 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 10:18:49 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 264 seconds) |
| 10:21:27 | → | oisdk joins (~oisdk@2001:bb6:3329:d100:7c51:293a:6844:5080) |
| 10:21:47 | × | polyrain_ quits (~polyrain@2001:8003:e501:6901:8a4:c02:960d:e633) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:22:15 | → | L29Ah joins (~L29Ah@unaffiliated/l29ah) |
| 10:22:52 | → | phillip joins (~phillip@178.162.204.214) |
| 10:23:46 | × | wei2912 quits (~wei2912@unaffiliated/wei2912) (Quit: Lost terminal) |
| 10:24:06 | × | lemmih_ quits (~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) (Remote host closed the connection) |
| 10:24:08 | × | iteratee quits (~kyle@162.211.154.4) (Read error: Connection reset by peer) |
| 10:24:20 | → | iteratee joins (~kyle@162.211.154.4) |
| 10:24:31 | × | petersen quits (~petersen@redhat/juhp) (Remote host closed the connection) |
| 10:24:35 | × | alp quits (~alp@2a01:e0a:58b:4920:1dcd:3fff:5840:1f3a) (Ping timeout: 272 seconds) |
| 10:24:42 | → | lemmih_ joins (~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) |
| 10:24:53 | × | noctux quits (~noctux@unaffiliated/noctux) (Ping timeout: 260 seconds) |
| 10:25:27 | → | noctux joins (~noctux@unaffiliated/noctux) |
| 10:26:14 | → | petersen joins (~petersen@redhat/juhp) |
| 10:26:31 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 10:26:38 | × | L29Ah quits (~L29Ah@unaffiliated/l29ah) (Ping timeout: 260 seconds) |
| 10:27:45 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:85d4:43d9:8dee:59a0) (Ping timeout: 272 seconds) |
| 10:28:55 | × | berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 244 seconds) |
| 10:29:36 | → | berberman joins (~berberman@unaffiliated/berberman) |
| 10:30:10 | → | lucid_0x80 joins (~lucid_0x8@85.132.73.6) |
| 10:32:57 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 258 seconds) |
| 10:33:52 | → | da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com) |
| 10:33:54 | → | dcoutts_ joins (~duncan@33.14.75.194.dyn.plus.net) |
| 10:35:34 | → | solonarv joins (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) |
| 10:37:57 | hackage | matchable-th 0.1.1.1 - Generates Matchable instances using TemplateHaskell https://hackage.haskell.org/package/matchable-th-0.1.1.1 (viercc) |
| 10:38:19 | × | lucid_0x80 quits (~lucid_0x8@85.132.73.6) (Ping timeout: 258 seconds) |
| 10:38:24 | → | ggole joins (~ggole@2001:8003:8119:7200:dcc4:683f:59f7:9d48) |
| 10:39:54 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:dca2:e278:5c94:78bf) |
| 10:41:58 | × | bliminse quits (~bliminse@host217-42-95-37.range217-42.btcentralplus.com) (Ping timeout: 256 seconds) |
| 10:42:17 | → | bliminse joins (~bliminse@host217-42-95-37.range217-42.btcentralplus.com) |
| 10:42:27 | → | L29Ah joins (~L29Ah@unaffiliated/l29ah) |
| 10:42:41 | <Uniaika> | god damnit |
| 10:43:34 | <Uniaika> | I'm having this JSON format to parse and I can't seem to make sense of what to do |
| 10:43:49 | <Uniaika> | I have *two* top-level field, that are to be unified in a sum type in Haskell-land |
| 10:45:44 | <Uniaika> | so naturally I'm writing such an instance https://ghostbin.co/paste/r64hne2 |
| 10:46:30 | <Uniaika> | (surprise, doesn't compile) |
| 10:47:00 | × | bliminse quits (~bliminse@host217-42-95-37.range217-42.btcentralplus.com) (Ping timeout: 256 seconds) |
| 10:47:30 | × | L29Ah quits (~L29Ah@unaffiliated/l29ah) (Ping timeout: 272 seconds) |
| 10:47:44 | → | bliminse joins (~bliminse@host217-42-95-37.range217-42.btcentralplus.com) |
| 10:49:13 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 10:49:25 | × | Stanley00 quits (~stanley00@unaffiliated/stanley00) () |
| 10:49:58 | × | p8m_ quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 260 seconds) |
| 10:50:25 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 10:52:43 | <fendor> | Uniaika, in the example, aren't you missing the unifying sum type? |
| 10:55:05 | <Uniaika> | >_> sorry, I'll edit the snippet |
| 10:55:12 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 10:55:40 | <Uniaika> | fendor: reload, it's been added |
| 10:55:54 | × | rprije quits (~rprije@203.214.95.251) (Ping timeout: 265 seconds) |
| 10:56:48 | <fendor> | Uniaika, and why doesn't it compile? Code-snippet looks roughly good to me |
| 10:58:38 | × | John20 quits (~John@82.46.59.122) (Ping timeout: 258 seconds) |
| 11:01:08 | <merijn> | heh |
| 11:01:21 | <Uniaika> | fendor: https://ghostbin.co/paste/r64hne2 |
| 11:01:24 | <Uniaika> | here is the error |
| 11:01:25 | <merijn> | "maybe" is exported from Prelude? |
| 11:01:31 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 11:01:38 | <Uniaika> | merijn: yes, I think so |
| 11:01:56 | <Uniaika> | fendor: also, I think I have a hard time expressing the fact that they may be null, but not at the same time? |
| 11:02:17 | × | xelxebar quits (~xelxebar@gateway/tor-sasl/xelxebar) (Remote host closed the connection) |
| 11:02:24 | <Uniaika> | I mean, if it were an object, I'd use (.:?) |
| 11:02:31 | <nshepperd> | this looks like a job for Alternative |
| 11:02:50 | → | xelxebar joins (~xelxebar@gateway/tor-sasl/xelxebar) |
| 11:03:00 | <Uniaika> | hmm |
| 11:03:04 | <Uniaika> | sounds like it yeah |
| 11:03:30 | <Uniaika> | but every tutorial under the sun seems to be operating on an object, and not with top-level values, so I don't know how much they apply? |
| 11:03:33 | → | lemmih__ joins (~lemmih@218.186.157.57) |
| 11:03:34 | <Uniaika> | hmm. |
| 11:03:41 | <Uniaika> | I'll try something |
| 11:03:58 | <Uniaika> | (thanks for being rubber ducks, it's incredibly helpful to be able to lay down my thoughts) |
| 11:04:28 | <fendor> | Uniaika, I think the type for field2 is wrong, too. Don't you need Data.UUID.fromText ? |
| 11:04:57 | <Uniaika> | fendor: well, since there is already a FromJSON instance for UUID, I thought it would work out-of-the-box? |
| 11:05:07 | × | chaosmasttter quits (~chaosmast@p200300c4a711b00135524723c22b3f52.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 11:05:13 | <nshepperd> | what exactly do you mean by a top level field |
| 11:05:37 | <nshepperd> | value, whatever |
| 11:05:41 | <Uniaika> | I'll add the desired JSON representation to the snippet |
| 11:05:55 | × | lemmih_ quits (~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) (Ping timeout: 240 seconds) |
| 11:06:28 | hackage | git-mediate 1.0.8.1 - Tool to help resolving git conflicts https://hackage.haskell.org/package/git-mediate-1.0.8.1 (EyalLotem) |
| 11:06:32 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 265 seconds) |
| 11:06:34 | <fendor> | Uniaika, I don't think `withText` gives you a text and then you have to specify a value parser for that text. Doesnt use the instance automatically |
| 11:07:04 | <nshepperd> | that usage of withText doesn't look right anyhow |
| 11:07:12 | <fendor> | indeed |
| 11:07:27 | <nshepperd> | The first argument is only used for the error message |
| 11:08:50 | <Uniaika> | fendor, nshepperd : https://ghostbin.co/paste/r64hne2 |
| 11:09:04 | <merijn> | Uniaika: I recommend using a different pastebin, that one is terrible |
| 11:09:09 | <Uniaika> | ah shit |
| 11:09:10 | <Uniaika> | sorry |
| 11:09:15 | <Uniaika> | dpaste? |
| 11:09:19 | <merijn> | It apparently requires me enabling cookies AND solving a captcha to read things |
| 11:09:21 | <merijn> | screw that |
| 11:09:23 | <Uniaika> | I think hpaste is dead now, right? |
| 11:09:25 | <dminuoso> | https://paste.tomsmeding.com/ |
| 11:09:32 | <dminuoso> | Is the spiritual hpaste successor |
| 11:09:41 | <Uniaika> | https://paste.tomsmeding.com/QMFidUu1 |
| 11:09:45 | <Uniaika> | dminuoso: thx |
| 11:09:49 | <fendor> | well, for Foo, it could be something like: `parseJSON v = Field1 <$> v .: "field1" <|> Field2 <$> v .: "field2"` |
| 11:09:52 | <merijn> | tomsmeding is the hero #haskell needed ;) |
| 11:10:04 | → | John20 joins (~John@82.46.59.122) |
| 11:10:10 | <merijn> | He resurrected ircbrowse too, so now I can be self-concious about how much time I spend here :p |
| 11:10:18 | <Uniaika> | fendor: ooooh |
| 11:10:30 | <merijn> | tomsmeding: oh, maybe you should send a mail to Haskell Weekly to publicize those two? |
| 11:10:36 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 11:11:27 | hackage | http-conduit-downloader 1.1.0 - HTTP downloader tailored for web-crawler needs. https://hackage.haskell.org/package/http-conduit-downloader-1.1.0 (VladimirShabanov) |
| 11:11:49 | → | mmohammadi981266 joins (~mmohammad@188.210.103.147) |
| 11:12:04 | × | mmohammadi981266 quits (~mmohammad@188.210.103.147) (Client Quit) |
| 11:12:14 | <Uniaika> | fendor: but (.:) is expecting a HashMap right? |
| 11:12:25 | <tomsmeding> | merijn: I'm not sure it would be a good idea to publicise ircbrowse that way, given that it's not my project... :p |
| 11:12:53 | <dminuoso> | Uniaika: No. |
| 11:12:56 | <merijn> | tomsmeding: It's open source, you just forked/maintained it |
| 11:13:05 | <dminuoso> | (.:) :: FromJSON a => Object -> Text -> Parser a |
| 11:13:06 | <tomsmeding> | true |
| 11:13:13 | <merijn> | tomsmeding: I don't think Chris would mind, but you could always ping him over email and ask |
| 11:13:13 | <dminuoso> | Uniaika: The interface is usually like this: |
| 11:13:18 | <fendor> | Uniaika, Then you would need: `parseJSON obj = withObject "TopLevel Object" $ \v -> Field1 <$> v .: "field1" <|> Field2 <$> v .: "field2"` |
| 11:13:36 | <dminuoso> | Uniaika: withObject "foo" $ \o -> F <$> o .: "some" <*> o .: "other" |
| 11:13:41 | → | guest35 joins (d537f42e@213.55.244.46) |
| 11:13:58 | → | mmohammadi981266 joins (~mmohammad@188.210.103.147) |
| 11:14:10 | <dminuoso> | Or, as I prefer, with RecordWildcards: |
| 11:14:27 | × | mmohammadi981266 quits (~mmohammad@188.210.103.147) (Client Quit) |
| 11:14:43 | <dminuoso> | withObject "foo" $ \o -> do { field1 <- o .: "field1"; field2 <- o .: "field2"; pure F{..} } |
| 11:14:43 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 11:14:47 | <fendor> | Personally, I found my library to go now is aeson-combinators. Json decoders and encoders is one thing elm got right |
| 11:15:09 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 11:15:16 | <cpressey> | May I humbly propose replacing 'https://gist.github.com/' in the topic of this channel with 'https://paste.tomsmeding.com/'? :) |
| 11:15:23 | <dminuoso> | fendor: waargonaut addresses most issues well |
| 11:15:34 | <dminuoso> | it has a much better and flexible interface |
| 11:15:42 | <Uniaika> | dminuoso: but wouldn't that mean that the expected JSON has this "foo" sub-object then? |
| 11:15:42 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 11:15:59 | <dminuoso> | Uniaika: No, that's just a name that is used for debugging |
| 11:16:13 | <dminuoso> | Uniaika: So when the parser fail, it will call the object (it was looking for) "foo" |
| 11:16:13 | × | nados quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 11:16:23 | <fendor> | dminuoso, too complex for my taste |
| 11:16:33 | <dminuoso> | fendor: Dunno, I find it rather simple. |
| 11:16:38 | × | p8m quits (p8m@gateway/vpn/protonvpn/p8m) (Ping timeout: 272 seconds) |
| 11:16:46 | → | nados joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 11:16:54 | <dminuoso> | Uniaika: https://hackage.haskell.org/package/aeson-1.5.4.1/docs/src/Data.Aeson.Types.FromJSON.html#withObject |
| 11:17:13 | <merijn> | dminuoso: waargonaut's API is a Lovecraftian mess I wouldn't wish upon my worst enemy |
| 11:17:41 | → | p8m joins (p8m@gateway/vpn/protonvpn/p8m) |
| 11:18:02 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 11:18:25 | <dminuoso> | merijn: It's not any less offending than say megaparsec. |
| 11:18:48 | <dminuoso> | And zippers! |
| 11:19:05 | <dminuoso> | When you have to deal with other peoples formats, zippers are really a blessing. |
| 11:19:32 | → | lucid_0x80 joins (~lucid_0x8@85.132.73.6) |
| 11:19:44 | → | jollygood2 joins (~bc8165ab@217.29.117.252) |
| 11:19:49 | <fendor> | aeson-combinators is much less offending. But I have to admit, Currently I only have rather trivial json formats to maintain |
| 11:19:50 | <dminuoso> | And waargonaut handles JSON better, since it can deal with multiple "overlapping" attributes in objects |
| 11:19:54 | × | olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Remote host closed the connection) |
| 11:19:59 | <merijn> | dminuoso: tbh, I think megaparsec has regressed *a lot* in that regard |
| 11:20:10 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 11:20:18 | <merijn> | And it's a bad thing for Haskell and the ability to promote megaparsec to beginners |
| 11:21:01 | <dminuoso> | merijn: The rudimentary interface of waargonaut is simpler than aeson by far. |
| 11:21:04 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 11:21:42 | <merijn> | dminuoso: Then they need to package/document it better to hide away the clutter from the "main" user facing UI |
| 11:21:53 | <dminuoso> | I agree, the documentation could be improved. |
| 11:22:05 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 11:23:07 | <nshepperd> | Uniaika: the top level json you're looking at there _is_ an object, that's what withObject is for |
| 11:23:15 | → | mmohammadi981266 joins (~mmohammad@188.210.103.147) |
| 11:23:27 | <nshepperd> | field1 and field2 being text fields of it |
| 11:23:52 | <Uniaika> | nshepperd: okay, I was afraid that since I'm writing an instance for what is a secondary object, it would try and mimic that structure in the JSON, which is a flat object |
| 11:23:53 | × | mmohammadi981266 quits (~mmohammad@188.210.103.147) (Client Quit) |
| 11:24:23 | <dminuoso> | merijn: https://github.com/qfpl/waargonaut#example if you consider these examples, the ergonomics is quite good. :) |
| 11:24:57 | <merijn> | dminuoso: the Haddocks are just 15 pages of type gobbledy-gook, though |
| 11:24:58 | hackage | imm 2.0.0.0 - Execute arbitrary actions for each item from RSS/Atom feeds https://hackage.haskell.org/package/imm-2.0.0.0 (koral) |
| 11:25:50 | <dminuoso> | merijn: Bringing me back to my original point, we should get rid of all that JSON nonsense. |
| 11:25:57 | <fendor> | dminuoso, also, why are they using fromKey instead of atKey? atKey seems to be simpler |
| 11:26:07 | <dminuoso> | Just specify and write wire protocols, like programmers have done for the past 30 years. |
| 11:26:25 | <dminuoso> | a bit of `binary` works wonders |
| 11:26:28 | <merijn> | dminuoso: Or use dhall :) |
| 11:26:39 | <dminuoso> | Oh, for configuration sure. |
| 11:26:46 | × | lucid_0x80 quits (~lucid_0x8@85.132.73.6) (Ping timeout: 272 seconds) |
| 11:27:00 | <dminuoso> | For data exchange, if I had to pick a premade serialization format again, I'd go cbor. |
| 11:27:07 | <merijn> | but yeah, a good BNF + wire protocol >> poorly implemented shit on top of JSON |
| 11:27:25 | <dminuoso> | Indeed. |
| 11:27:44 | <nshepperd> | @hackage serialize |
| 11:27:44 | <lambdabot> | https://hackage.haskell.org/package/serialize |
| 11:28:06 | <dminuoso> | nshepperd: I think you were looking for cereal? |
| 11:28:06 | <merijn> | binary has pretty much obsoleted serialise, tbh |
| 11:28:12 | <nshepperd> | oop misspelt |
| 11:28:14 | <merijn> | eh, yeah cereal I mean |
| 11:28:29 | <nshepperd> | @hackage serialise |
| 11:28:29 | <lambdabot> | https://hackage.haskell.org/package/serialise |
| 11:28:34 | <dminuoso> | I mean, cereal was made because binary was lacking support for strict bytestrings? |
| 11:28:43 | <dminuoso> | binary supports both lazy and strict bytestrings now |
| 11:28:53 | <dminuoso> | has good support for adding contexts |
| 11:29:04 | <nshepperd> | serialise is cbor based, very nice imo |
| 11:30:26 | <dminuoso> | nshepperd: serialise seems great if you want to do data exchange between two haskell systems over the network. |
| 11:30:52 | <merijn> | template-haskell versions are tied to specific GHCs, right? |
| 11:31:08 | <dminuoso> | https://hackage.haskell.org/package/template-haskell |
| 11:31:13 | <dminuoso> | merijn: Judging from the bounds, Id say now |
| 11:31:16 | <dminuoso> | *no |
| 11:31:21 | <dminuoso> | base (>=4.11 && <4.15), ghc-boot-th (==8.10.1), ghc-prim, pretty (==1.1.*) [details] |
| 11:31:25 | <nshepperd> | i also use it for serialising cached stuff to disk between runs of the same program |
| 11:33:06 | × | chele quits (~chele@5.53.222.202) (Ping timeout: 272 seconds) |
| 11:33:08 | × | Tario quits (~Tario@201.192.165.173) (Ping timeout: 258 seconds) |
| 11:33:19 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 11:33:25 | → | Tario joins (~Tario@201.192.165.173) |
| 11:33:42 | <tomjaguarpaw> | I can't help thinking that what's important is the logical structure of the wire format rather than its concrete structure. |
| 11:34:56 | <tomsmeding> | merijn: https://github.com/haskellweekly/haskellweekly/pull/52 |
| 11:37:01 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 11:37:06 | → | polyrain joins (~polyrain@2001:8003:e501:6901:8a4:c02:960d:e633) |
| 11:38:17 | → | seanvert joins (~user@177.84.244.242) |
| 11:38:46 | → | alp joins (~alp@2a01:e0a:58b:4920:2586:865a:4e94:a66b) |
| 11:39:25 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 11:39:32 | → | cfricke joins (~cfricke@unaffiliated/cfricke) |
| 11:41:51 | <kuribas> | Uniaika: don't you need (.:?) ? |
| 11:42:07 | <kuribas> | Uniaika: it returns a Maybe for a field that can be possibly null. |
| 11:42:23 | <Uniaika> | I found a way, actually |
| 11:42:50 | <Uniaika> | solving the issue upstream, and not deriving the instance for the type, but taking care of serde in the upstream type |
| 11:43:00 | <Uniaika> | (it does work) |
| 11:43:02 | <kuribas> | that's even better :) |
| 11:43:16 | <Uniaika> | thank you all for your time, I love you all, you're incredible <3 |
| 11:43:48 | <kuribas> | Uniaika: although I think your case match is a good way BTW... |
| 11:44:00 | <kuribas> | because it clearly shows you want exclusive or. |
| 11:44:05 | <merijn> | Anyone know how to avoid "redundant import" warnings for "Data.Monoid ((<>))" on GHC >8.2 in a way that doesn't break GHC 8.0-8.2 |
| 11:44:22 | <Uniaika> | merijn: I'm going to say the bad word but… |
| 11:44:23 | <Uniaika> | CPP? |
| 11:44:30 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 272 seconds) |
| 11:45:28 | → | Buntspecht joins (~user@unaffiliated/siracusa) |
| 11:48:52 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Quit: hekkaidekapus) |
| 11:49:02 | <kuribas> | CPP :) |
| 11:50:39 | × | cpressey quits (~cpressey@88.144.68.224) (Quit: wvw /o/ /o/ /o/) |
| 11:51:15 | → | hekkaidekapus joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 11:51:21 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 11:51:50 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Remote host closed the connection) |
| 11:54:51 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 12:00:01 | × | phillip quits (~phillip@178.162.204.214) () |
| 12:00:27 | → | Wuzzy joins (~Wuzzy@p549c9d2d.dip0.t-ipconnect.de) |
| 12:01:14 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 12:02:59 | × | totbwf quits (sid402332@gateway/web/irccloud.com/x-auttreoigxuilyba) (Ping timeout: 240 seconds) |
| 12:03:37 | × | bradparker quits (sid262931@gateway/web/irccloud.com/x-dvycqqnustcjicgg) (Ping timeout: 246 seconds) |
| 12:03:39 | → | djellemah joins (~djellemah@2601:5c2:100:96c:e008:b638:39fe:6a54) |
| 12:03:47 | × | ebutleriv quits (sid217783@gateway/web/irccloud.com/x-zcpyidnqxtmhuisv) (Ping timeout: 240 seconds) |
| 12:03:56 | → | bradparker joins (sid262931@gateway/web/irccloud.com/x-kzdpaybrmmwnrdgh) |
| 12:03:58 | → | ebutleriv joins (sid217783@gateway/web/irccloud.com/x-cvawhvfjdshsscgr) |
| 12:03:58 | → | totbwf joins (sid402332@gateway/web/irccloud.com/x-ymdhjktodciveoos) |
| 12:03:59 | → | lally_ joins (sid388228@gateway/web/irccloud.com/x-gjvzovhllmqfgnqi) |
| 12:03:59 | → | wpcarro_ joins (sid397589@gateway/web/irccloud.com/x-ycncefjlbxwjrjeb) |
| 12:04:01 | → | natim87_ joins (sid286962@gateway/web/irccloud.com/x-hbpjyobuzuhwywke) |
| 12:04:07 | → | davetapley_ joins (sid666@gateway/web/irccloud.com/x-cretwjqzdceozsvl) |
| 12:04:30 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 12:04:57 | × | lally quits (sid388228@gateway/web/irccloud.com/x-lstpiuaiwaadwufc) (Ping timeout: 258 seconds) |
| 12:04:57 | lally_ | is now known as lally |
| 12:05:12 | × | davetapley quits (sid666@gateway/web/irccloud.com/x-djoktstvzubeecxm) (Ping timeout: 260 seconds) |
| 12:05:13 | × | wpcarro quits (sid397589@gateway/web/irccloud.com/x-dhrgdbgzbcfpxeys) (Ping timeout: 260 seconds) |
| 12:05:13 | × | natim87 quits (sid286962@gateway/web/irccloud.com/x-uvpnvingawevahjl) (Ping timeout: 260 seconds) |
| 12:05:13 | davetapley_ | is now known as davetapley |
| 12:05:13 | natim87_ | is now known as natim87 |
| 12:05:13 | wpcarro_ | is now known as wpcarro |
| 12:05:55 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 272 seconds) |
| 12:06:58 | hackage | termonad 4.0.1.1 - Terminal emulator configurable in Haskell https://hackage.haskell.org/package/termonad-4.0.1.1 (cdepillabout) |
| 12:06:59 | × | Shun131 quits (sid377723@gateway/web/irccloud.com/x-qfflzmcznnjkrwrn) (Quit: Connection closed for inactivity) |
| 12:07:09 | → | drbean joins (~drbean@TC210-63-209-63.static.apol.com.tw) |
| 12:08:17 | → | Kaivo joins (~Kaivo@ec2-15-222-231-32.ca-central-1.compute.amazonaws.com) |
| 12:09:20 | <merijn> | I just got rid of all the CPP :( |
| 12:10:47 | <Uniaika> | I know, I know… |
| 12:10:51 | × | da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:11:29 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 12:13:36 | × | lemmih__ quits (~lemmih@218.186.157.57) (Remote host closed the connection) |
| 12:13:43 | <merijn> | hmm, a change in examples probably doesn't warrant a new release |
| 12:14:04 | → | lemmih__ joins (~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) |
| 12:14:20 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Ping timeout: 256 seconds) |
| 12:15:24 | → | is_null joins (~jpic@pdpc/supporter/professional/is-null) |
| 12:15:46 | → | bitmagie joins (~Thunderbi@200116b806d3630091dfc145cf082aaa.dip.versatel-1u1.de) |
| 12:16:51 | <kuribas> | merijn: do you know a better way to deal with breaking changes? |
| 12:16:56 | <kuribas> | like the semigroup stuff |
| 12:17:08 | <merijn> | kuribas: There's usually a migration guide with GHC |
| 12:17:19 | <kuribas> | merijn: which recommends cpp... |
| 12:17:36 | <merijn> | And the rule is that backwards compat for 3 releases should be possible without CPP |
| 12:20:08 | × | John20 quits (~John@82.46.59.122) (Ping timeout: 260 seconds) |
| 12:22:56 | <hekkaidekapus> | dminuoso: After some light sleuthing, the OutsideIn algorithm seems to be implemented as described in the paper, more or less. I would succinctly answer this to your original question: no matter how involved a method’s constraints are, the solving will boil down to generating implicits and using them as evidence. |
| 12:24:49 | → | da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com) |
| 12:25:38 | <dminuoso> | hekkaidekapus: Fair enough, the reason Im asking is, Ive been staring at a mail on haskell-cafe for so long, Im starting to think there's a bug in the instance selection algorithm. |
| 12:26:19 | <dminuoso> | Where GHC selects an instance despite overlapping instances existing. |
| 12:26:53 | <dminuoso> | The video though I think helped, since it explained roughly how the constraint checking on instances with context works. |
| 12:27:00 | <tomjaguarpaw> | dminuoso: The Wrapper (Maybe a) mail? |
| 12:27:03 | <dminuoso> | tomjaguarpaw: Yeah. |
| 12:27:09 | <tomjaguarpaw> | I was also puzzled by that. |
| 12:27:27 | <hekkaidekapus> | dminuoso, tomjaguarpaw: link? |
| 12:28:21 | <tomjaguarpaw> | https://mail.haskell.org/pipermail/haskell-cafe/2020-October/132815.html |
| 12:28:28 | <hekkaidekapus> | Thanks. |
| 12:28:58 | hackage | hwk 0.5 - Commandline text processing with Haskell functions https://hackage.haskell.org/package/hwk-0.5 (JensPetersen) |
| 12:29:17 | → | JordiGH joins (jordi@octave/developer/JordiGH) |
| 12:30:39 | → | st8less joins (~st8less@2603:a060:11fd:0:8a9:7e3f:adb9:77d2) |
| 12:31:43 | × | st8less quits (~st8less@2603:a060:11fd:0:8a9:7e3f:adb9:77d2) (Client Quit) |
| 12:32:02 | <dminuoso> | % newtype Foo = Foo Int; instance {-# OVERLAPS #-} Show (Maybe Foo) where show _ = "foo" |
| 12:32:03 | <yahb> | dminuoso: |
| 12:32:10 | <dminuoso> | % newtype W a = W (Maybe a); instance Show a => Show (W a) where show (W a) = show a |
| 12:32:11 | <yahb> | dminuoso: |
| 12:32:14 | <dminuoso> | % foo :: Show a => W a -> String; foo a = show a |
| 12:32:14 | <yahb> | dminuoso: |
| 12:32:16 | <dminuoso> | This should be rejected. |
| 12:32:28 | <dminuoso> | (Unless IncoherentInstances was enabled) |
| 12:32:49 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) |
| 12:33:42 | <dminuoso> | % foo' :: Show a => Maybe a -> String; foo' a = show a |
| 12:33:43 | <yahb> | dminuoso: ; <interactive>:9:47: error:; * Overlapping instances for Show (Maybe a) arising from a use of `show'; Matching instances:; instance Show a => Show (Maybe a) -- Defined in `GHC.Show'; instance [overlap ok] [safe] Show (Maybe Foo) -- Defined at <interactive>:5:50; instance [overlap ok] [safe] Show (Maybe Ghci4.Foo) -- Defined at <interactive>:1:50; (The choice depen |
| 12:33:47 | ← | JordiGH parts (jordi@octave/developer/JordiGH) () |
| 12:34:01 | <ClaudiusMaximus> | % foo (W Nothing) -- just checking what happens at point of use |
| 12:34:01 | <yahb> | ClaudiusMaximus: "Nothing" |
| 12:35:37 | <ClaudiusMaximus> | % foo (W (Just (Foo 1))) -- just checking what happens at point of use |
| 12:35:38 | <yahb> | ClaudiusMaximus: ; <interactive>:11:1: error:; * No instance for (Show Foo) arising from a use of `foo'; * In the expression: foo (W (Just (Foo 1))); In an equation for `it': it = foo (W (Just (Foo 1))) |
| 12:35:45 | <dminuoso> | It seems, that the deferring the constraint `Show (Maybe a)` changes how instance is selected. |
| 12:36:32 | <dminuoso> | If that was the case, it could imply that GHC falsely generates incoherent code. |
| 12:37:12 | <dminuoso> | I tried debugging the type checker with a minimal program, but -ddump-tc-trace generated 5k lines of output.. |
| 12:37:20 | <dminuoso> | The manual did *not* lie when it said it would be real chatty. |
| 12:37:35 | × | bitmagie quits (~Thunderbi@200116b806d3630091dfc145cf082aaa.dip.versatel-1u1.de) (Quit: bitmagie) |
| 12:37:42 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 12:38:23 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:842d:ee09:f1b5:9acd) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 12:38:30 | <dminuoso> | I think, if nobody else does it, Ill file a bug report. Either the GHC manual is incorrect, or GHC is buggy. One has to be the case here. |
| 12:38:57 | <merijn> | Time for everyone's daily reminder of the invaluable service of packdeps having an RSS feed when you need to bump your package bounds ;) |
| 12:39:38 | <merijn> | dminuoso: pfft, you're missing an alternative |
| 12:39:43 | <merijn> | dminuoso: They could *both* be wrong :p |
| 12:40:10 | <dminuoso> | merijn: Im confident that its not the case, the instance selection algorithm descriped in the overlapping instances section seems rather clear. |
| 12:40:29 | → | mmohammadi981266 joins (~mmohammad@188.210.103.147) |
| 12:42:30 | × | ralejs quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 12:42:45 | <hekkaidekapus> | dminuoso: I’m looking at the corresponding Core before drawing conclusion. <https://paste.tomsmeding.com/aHILkhin> |
| 12:42:48 | → | ralejs joins (~ralejs@2620:10d:c093:400::5:c80) |
| 12:42:58 | <hekkaidekapus> | *conclusions |
| 12:43:40 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 12:43:42 | <dminuoso> | hekkaidekapus: Mind my asking, what is Core gonna tell you? |
| 12:44:00 | <hekkaidekapus> | The dictionary passing. |
| 12:44:52 | × | ralejs quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 12:45:16 | → | ralejs joins (~ralejs@163.114.131.1) |
| 12:45:40 | → | nbloomf joins (~nbloomf@2600:1700:83e0:1f40:8576:1536:5132:aae7) |
| 12:46:19 | × | mmohammadi981266 quits (~mmohammad@188.210.103.147) (Quit: I quit (╯°□°)╯︵ ┻━┻) |
| 12:47:08 | <dminuoso> | $cshow1_rX8 |
| 12:47:56 | <dminuoso> | Internally, it picked dShow2_aV5 = $fShowMaybe $dShow1_aUS |
| 12:49:02 | <dminuoso> | Despite another, equally good, dictionary, existing: $cshow_rWA |
| 12:49:10 | → | mmohammadi981266 joins (~mmohammad@188.210.103.147) |
| 12:49:27 | × | perdent quits (~blah@101.175.82.233) (Ping timeout: 244 seconds) |
| 12:49:28 | <hekkaidekapus> | Yeah, file a bug report! |
| 12:50:01 | <hekkaidekapus> | Overlapping instances considered harmful anyway :0 |
| 12:50:32 | → | perdent joins (~blah@101.175.147.239) |
| 12:52:07 | × | bitmapper quits (uid464869@gateway/web/irccloud.com/x-nkhvkoypuffdqqdu) (Quit: Connection closed for inactivity) |
| 12:52:53 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:7c51:293a:6844:5080) (Quit: oisdk) |
| 12:53:23 | × | sword865 quits (uid208942@gateway/web/irccloud.com/x-sxotpuupdfwwcwxa) (Quit: Connection closed for inactivity) |
| 12:53:26 | → | chaosmasttter joins (~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) |
| 12:53:36 | × | ralejs quits (~ralejs@163.114.131.1) (Read error: Connection reset by peer) |
| 12:53:58 | → | ralejs joins (~ralejs@2620:10d:c093:400::5:c80) |
| 12:55:27 | → | John20 joins (~John@82.46.59.122) |
| 12:56:08 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 12:57:08 | → | jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se) |
| 12:58:55 | <dminuoso> | hekkaidekapus: The one thing Im not quite sold on, is this: |
| 12:58:59 | <dminuoso> | https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#instance-overlap |
| 12:59:25 | <dminuoso> | At the bottom it does mention that FlexibleInstances can lead to incoherent instance selection, but Im not immediately seeing whether this is related |
| 13:01:31 | × | solonarv quits (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) (Ping timeout: 256 seconds) |
| 13:06:31 | <hekkaidekapus> | dminuoso: The bulb seems pretty related, but I would file the report still. It might be a short-lived ticket but we will have an up-to-date explanation as to “An alternative possible behaviour, not currently implemented…”. |
| 13:07:01 | × | Rudd0 quits (~Rudd0@185.189.115.103) (Remote host closed the connection) |
| 13:08:13 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 260 seconds) |
| 13:08:30 | <dminuoso> | hekkaidekapus: Well, it's not really related because the incoherence arises from making a *more* specific instance in another module, and then run an instance selection in both modules. |
| 13:09:34 | <dminuoso> | But yeah, I filed a bug report. At the very least the GHC manual should be improved if this is not an instance selection bug. |
| 13:10:03 | <hekkaidekapus> | 👍 |
| 13:10:13 | × | Nik05 quits (~Nik05@85.150.134.175) (Quit: leaving) |
| 13:15:23 | → | ocaml427 joins (506d8558@gateway/web/cgi-irc/kiwiirc.com/ip.80.109.133.88) |
| 13:15:32 | ← | ocaml427 parts (506d8558@gateway/web/cgi-irc/kiwiirc.com/ip.80.109.133.88) () |
| 13:15:45 | × | xff0x quits (~fox@217.110.198.158) (Ping timeout: 240 seconds) |
| 13:16:40 | → | Nik05 joins (~Nik05@85.150.134.175) |
| 13:19:50 | → | ruffy joins (~jonas@2a03:b0c0:3:d0::162e:a001) |
| 13:20:39 | × | mmohammadi981266 quits (~mmohammad@188.210.103.147) (Quit: I quit (╯°□°)╯︵ ┻━┻) |
| 13:22:05 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 13:23:52 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 13:24:10 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 13:24:10 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 13:24:10 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 13:24:34 | × | rihards_ quits (~rihards@vpnlv.tilde.com) (Remote host closed the connection) |
| 13:25:30 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 13:26:11 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 13:26:59 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 272 seconds) |
| 13:29:36 | → | Tops2 joins (~Tobias@dyndsl-095-033-027-027.ewe-ip-backbone.de) |
| 13:30:01 | ruffy | is now known as ruffy_ |
| 13:32:00 | × | Nik05 quits (~Nik05@85.150.134.175) (Changing host) |
| 13:32:00 | → | Nik05 joins (~Nik05@unaffiliated/nik05) |
| 13:32:37 | → | nomeata joins (~jojo@dslb-088-064-028-148.088.064.pools.vodafone-ip.de) |
| 13:33:42 | × | ruffy_ quits (~jonas@2a03:b0c0:3:d0::162e:a001) (Quit: WeeChat 2.9) |
| 13:34:00 | → | ruffy joins (~jonas@2a03:b0c0:3:d0::162e:a001) |
| 13:34:15 | ruffy | is now known as ruffy_ |
| 13:35:24 | → | ystael joins (~ystael@209.6.50.55) |
| 13:37:40 | → | lowryder joins (~djlowry@web603.webfaction.com) |
| 13:38:41 | × | ruffy_ quits (~jonas@2a03:b0c0:3:d0::162e:a001) (Client Quit) |
| 13:40:55 | × | alp quits (~alp@2a01:e0a:58b:4920:2586:865a:4e94:a66b) (Ping timeout: 272 seconds) |
| 13:41:31 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 13:42:04 | × | ralejs quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 13:42:55 | → | ralejs joins (~ralejs@2620:10d:c093:400::5:c80) |
| 13:43:11 | → | knupfer joins (~Thunderbi@200116b82c814300c0110b68686b9a3e.dip.versatel-1u1.de) |
| 13:43:14 | × | Sanchayan quits (~Sanchayan@106.201.37.251) (Ping timeout: 256 seconds) |
| 13:43:43 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 13:43:50 | → | Sanchayan joins (~Sanchayan@106.201.37.251) |
| 13:44:29 | × | Sanchayan quits (~Sanchayan@106.201.37.251) (Max SendQ exceeded) |
| 13:45:08 | → | Sanchayan joins (~Sanchayan@106.201.37.251) |
| 13:45:44 | × | Sanchayan quits (~Sanchayan@106.201.37.251) (Max SendQ exceeded) |
| 13:46:10 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 246 seconds) |
| 13:46:14 | → | Sanchayan joins (~Sanchayan@106.201.37.251) |
| 13:46:54 | × | Sanchayan quits (~Sanchayan@106.201.37.251) (Max SendQ exceeded) |
| 13:47:30 | → | Sanchayan joins (~Sanchayan@106.201.37.251) |
| 13:48:08 | lemmih__ | is now known as lemmih |
| 13:48:10 | × | Sanchayan quits (~Sanchayan@106.201.37.251) (Max SendQ exceeded) |
| 13:50:50 | → | mmohammadi981266 joins (~mmohammad@188.210.103.147) |
| 13:51:56 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 13:52:27 | hackage | Z-IO 0.1.5.2 - Simple and high performance IO toolkit for Haskell https://hackage.haskell.org/package/Z-IO-0.1.5.2 (winterland) |
| 13:53:46 | → | ralejs_ joins (~ralejs@2620:10d:c093:400::5:c80) |
| 13:53:46 | × | ralejs quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 13:55:20 | × | drbean quits (~drbean@TC210-63-209-63.static.apol.com.tw) (Ping timeout: 260 seconds) |
| 13:55:21 | × | ralejs_ quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 13:55:22 | → | ralejs joins (~ralejs@2620:10d:c093:400::5:c80) |
| 13:55:34 | → | cpressey joins (~cpressey@88.144.70.115) |
| 13:57:15 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 13:57:31 | → | mdunnio joins (~mdunnio@208.59.170.5) |
| 13:59:45 | <merijn> | btw, does anyone know of any working human cloning programs? >.> |
| 13:59:46 | → | p-core joins (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) |
| 14:01:44 | <merijn> | I was clicking through some dependencies and I'd like to order some backup phadej's ahead of time so the ecosystem doesn't grind to a halt without him >.> |
| 14:02:59 | <dminuoso> | merijn: Well, we should get an ekmett along side. They could grow up together. |
| 14:03:14 | <phadej> | dminuoso: ekmett is cloned already: RyanGlScott |
| 14:03:28 | <dminuoso> | Haha. :) |
| 14:03:29 | <juri_> | merijn: i've spent almost 7 years working on 3d printing in haskell. unfortunately, i'm falling apart faster than i can print. |
| 14:03:47 | <dminuoso> | juri_: Hold on, 3d printing in haskell? |
| 14:03:49 | <dminuoso> | tell me more. |
| 14:04:04 | <merijn> | Ah, but see, edwardk is just inventing cool new stuff, plenty of volunteers for that |
| 14:04:15 | <phadej> | merijn: order two copies (hopefully you can a discount) of hvr too |
| 14:04:29 | <juri_> | dminuoso: implicitcad. hslice. modeling and slicing natively in haskell. badly, because there is only one of me. |
| 14:04:29 | <phadej> | could get a discount* |
| 14:04:42 | <merijn> | Less volunteers for turning duct tape and string into semi-solid engineering foundations :p |
| 14:04:49 | <dminuoso> | juri_: How good is your slicing of human models? |
| 14:04:52 | <juri_> | I don't have hslice on hackage yet. |
| 14:05:07 | <juri_> | dminuoso: poor. i'm still working on simple geometric shapes. |
| 14:05:32 | <merijn> | phadej: And maybe an SPJ ;) |
| 14:05:39 | → | alp joins (~alp@2a01:e0a:58b:4920:e961:3e4f:cf0f:6182) |
| 14:05:43 | <juri_> | worse, i decided halfway through to change everything to projective geometric algebra, so hslice has a PGA engine embedded in it. |
| 14:06:05 | × | shafox quits (~shafox@106.51.234.111) (Ping timeout: 240 seconds) |
| 14:06:07 | → | xff0x joins (~fox@217.110.198.158) |
| 14:06:15 | <dminuoso> | merijn: Soon we're gonna need a clone of Stephanie Weirich as well to keep the cogs in dependent haskell going. |
| 14:06:31 | <merijn> | I'm not sure I'm happy with those cogs :p |
| 14:06:37 | <phadej> | isn't Richard kind of a mixture of both? |
| 14:07:07 | <dminuoso> | 16:05:32 merijn | phadej: And maybe an SPJ ;) |
| 14:07:18 | <dminuoso> | Luckily for us, SPJ did reproduce already. |
| 14:08:12 | <dminuoso> | juri_: What is PGA? |
| 14:08:15 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 14:08:33 | <tomjaguarpaw> | projective geometric algebra, presumably |
| 14:08:33 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 14:08:33 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 14:08:33 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 14:09:11 | <akegalj> | &quit |
| 14:09:18 | <juri_> | it's a high performance / high precision algebra system for doing geometry in. takes less operations to do stuff, and uses pure forms of objects, rather than approximations. |
| 14:09:53 | <akegalj> | ;'\[] |
| 14:09:58 | <dminuoso> | Does that require the input to be in some PGA format as well? |
| 14:10:07 | <dminuoso> | Or can an arbitrary CAD output be fed into that? |
| 14:10:10 | × | akegalj quits (~akegalj@93-138-183-8.adsl.net.t-com.hr) (Quit: leaving) |
| 14:11:02 | → | lemmih_ joins (~lemmih@218.186.157.57) |
| 14:11:02 | × | mmohammadi981266 quits (~mmohammad@188.210.103.147) (Quit: I quit (╯°□°)╯︵ ┻━┻) |
| 14:11:42 | <juri_> | it uses STLs. |
| 14:11:57 | <juri_> | which coincidentally are what implicitcad outputs. |
| 14:13:32 | × | lemmih quits (~lemmih@2406:3003:2072:44:9dc:f2e9:a002:8d1a) (Ping timeout: 260 seconds) |
| 14:13:42 | → | mmohammadi981266 joins (~mmohammad@188.210.103.147) |
| 14:15:40 | → | ruffy_ joins (~jonas@2a03:b0c0:3:d0::162e:a001) |
| 14:17:47 | <fendor> | can I generate a module graph with some tool? |
| 14:17:48 | → | ddellacosta joins (~dd@86.106.121.168) |
| 14:17:48 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 256 seconds) |
| 14:17:55 | <merijn> | "yes" |
| 14:18:04 | <merijn> | But now you're gonna ask which one, aren't you? >.> |
| 14:18:06 | <dminuoso> | fendor: `cabal-plan dot --tred` |
| 14:18:16 | × | knupfer quits (~Thunderbi@200116b82c814300c0110b68686b9a3e.dip.versatel-1u1.de) (Quit: knupfer) |
| 14:18:17 | <dminuoso> | (the --tred is not required, but probably desirable) |
| 14:18:26 | → | knupfer joins (~Thunderbi@200116b82c814300c0110b68686b9a3e.dip.versatel-1u1.de) |
| 14:18:30 | <dminuoso> | And then the usual graphviz tools. :) |
| 14:18:45 | <dminuoso> | Oh wait. module graph |
| 14:18:47 | <dminuoso> | mmm |
| 14:18:49 | × | Noldorin quits (~noldorin@unaffiliated/noldorin) (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
| 14:18:57 | <dminuoso> | graphmod? |
| 14:19:15 | <fendor> | merijn, :P well, preferably |
| 14:19:40 | <fendor> | dminuoso, looks good |
| 14:21:19 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 265 seconds) |
| 14:21:43 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Quit: WeeChat 2.9) |
| 14:22:28 | hackage | effet 0.3.0.0 - An Effect System based on Type Classes https://hackage.haskell.org/package/effet-0.3.0.0 (MichaelSzvetits) |
| 14:23:55 | <fendor> | dammit, I have multiple Types modules that almost everyone depends on |
| 14:24:09 | <merijn> | fendor: As always :p |
| 14:24:11 | <fendor> | dminuoso, thanks, beautiful tool! |
| 14:24:19 | <merijn> | I wish GHC would just get proper cyclic imports |
| 14:25:14 | <dminuoso> | merijn: I recall a length discussion at dinner with a few of the GHC folks. |
| 14:25:50 | <dminuoso> | Dont think it's ever gonna happen. :p |
| 14:26:00 | <merijn> | Which is a travesty! |
| 14:26:44 | × | mmohammadi981266 quits (~mmohammad@188.210.103.147) (Quit: Ping timeout (120 seconds)) |
| 14:27:06 | <merijn> | I demand my convenience! :( |
| 14:27:27 | → | mmohammadi981266 joins (~mmohammad@188.210.103.147) |
| 14:28:34 | → | seawalk joins (~seawalk@185.163.110.116) |
| 14:30:28 | hackage | gi-gtksheet 4.0.1 - GtkSheet bindings https://hackage.haskell.org/package/gi-gtksheet-4.0.1 (ivanbakel) |
| 14:34:36 | → | spew joins (uid195861@gateway/web/irccloud.com/x-fetxtksdzgfjvjwb) |
| 14:36:19 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 14:37:14 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-zkqelsktmjuyhxgl) |
| 14:38:39 | × | lowryder quits (~djlowry@web603.webfaction.com) (Read error: Connection reset by peer) |
| 14:40:24 | × | nomeata quits (~jojo@dslb-088-064-028-148.088.064.pools.vodafone-ip.de) (Quit: Client exiting) |
| 14:42:14 | × | ralejs quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 14:42:19 | → | ralejs_ joins (~ralejs@2620:10d:c093:400::5:c80) |
| 14:44:27 | × | ralejs_ quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 14:44:51 | → | ralejs joins (~ralejs@2620:10d:c093:400::5:c80) |
| 14:44:53 | × | ericsagnes quits (~ericsagne@2405:6580:0:5100:dca2:e278:5c94:78bf) (Ping timeout: 272 seconds) |
| 14:45:05 | × | Gerula quits (~Gerula@unaffiliated/gerula) (Ping timeout: 240 seconds) |
| 14:45:16 | × | fendor quits (~fendor@77.119.130.38.wireless.dyn.drei.com) (Remote host closed the connection) |
| 14:45:35 | × | chaosmasttter quits (~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 14:46:49 | → | blip joins (58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) |
| 14:47:45 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 14:48:52 | <blip> | Is it possible to have enum on the type level? data X = A | B | C | D; foo :: Proxy [A..D] |
| 14:49:03 | <merijn> | blip: Yes! |
| 14:49:23 | <blip> | I've got a quite large datatype and I'd like to avoid TH and copy pasting |
| 14:49:25 | <merijn> | blip: Although this is a path that *can* lead to incredibly painful code in the long term, so be warned :p |
| 14:49:33 | <merijn> | oh, wait |
| 14:49:37 | <ocharles> | Does anyone know if `build-tool-depends` should be putting executables in PATH for the relavant components when I use Cabal with Distribution.Simple.defaultMain? Because I'm not seeing that |
| 14:49:37 | <merijn> | You mean the syntax |
| 14:49:42 | × | mmohammadi981266 quits (~mmohammad@188.210.103.147) (Read error: Connection reset by peer) |
| 14:49:58 | <ocharles> | The documentation for build-tool-depends writes: Cabal tries to make sure that all specified programs are atomically built and prepended on the $PATH shell variable before building the component in question, but can only do so for Nix-style builds |
| 14:50:09 | <merijn> | blip: You could write a type family that computes that list? |
| 14:50:10 | <ocharles> | But I don't know if a Setup.hs counts as Nix-style or old style |
| 14:50:23 | <merijn> | ocharles: Setup.hs is lower level |
| 14:50:33 | <merijn> | Setup.hs is Cabal (not cabal-install) |
| 14:50:50 | <blip> | merjin: how would that work without writing explicitly every inhabitant? |
| 14:51:04 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 14:51:14 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 14:51:14 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 14:51:14 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 14:51:15 | <blip> | my data has about ~100 promoted constructors |
| 14:51:22 | <merijn> | ocharles: And most likely no one knows the answer :p |
| 14:51:49 | → | chaosmasttter joins (~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) |
| 14:51:51 | <merijn> | blip: eh...I'd probably recommend "not doing that", but that's not very constructive :) |
| 14:51:58 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 14:52:07 | <merijn> | blip: And now you know why the original paper was called Hasochism ;) |
| 14:52:17 | × | jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection) |
| 14:52:22 | <merijn> | blip: Maybe you can do something horrific using singletons? |
| 14:52:33 | <bahamas> | ocharles: if I remember right, the nix builder for cabal relies on Setup.hs. but it's been a while |
| 14:52:50 | <merijn> | <MS Clippy>Did you mean to use Idris?</MS Clippy> |
| 14:53:15 | → | avdb joins (~avdb@ip-62-235-189-198.dsl.scarlet.be) |
| 14:53:22 | <blip> | merijn: I already contemplated screwing kind-safety and convert my constructors in a bunch of Symbol |
| 14:53:37 | × | Ariakenom quits (~Ariakenom@193.254.193.1) (Ping timeout: 264 seconds) |
| 14:53:52 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 272 seconds) |
| 14:54:01 | <merijn> | blip: Once your type-safety involves "100s of type level constructors" I don't think it passes any sensible "cost-benefit analysis" |
| 14:54:14 | <merijn> | Compile times will be a massive pain, as will refactoring >.> |
| 14:54:14 | × | ralejs quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 14:55:05 | → | ralejs joins (~ralejs@2620:10d:c093:400::5:c80) |
| 14:55:23 | <blip> | merijn: Yeah, it's quite a bit excessive |
| 14:55:35 | <blip> | mirijn: 1000LOC type-level https://github.com/knupfer/type-of-html/blob/master/src/Html/Type/Internal.hs |
| 14:55:57 | <merijn> | For *HTML*? >.> |
| 14:55:57 | hackage | ad 4.4.1 - Automatic Differentiation https://hackage.haskell.org/package/ad-4.4.1 (ryanglscott) |
| 14:56:08 | <blip> | merijn: better safe than sorry :) |
| 14:56:14 | <ocharles> | merijn: I feared that might be the case >.< |
| 14:56:21 | <merijn> | Jesus Christ |
| 14:56:23 | <ocharles> | bahamas: well, it will write its own if there isn't one |
| 14:56:25 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 14:56:35 | <merijn> | That module probably takes 5 million years to compile |
| 14:56:48 | → | ericsagnes joins (~ericsagne@2405:6580:0:5100:cc83:1c32:310e:946e) |
| 14:57:03 | <blip> | It's actually not bad |
| 14:57:30 | <blip> | But using the library gives ghc a sweat |
| 14:57:39 | <merijn> | I wonder why >.> |
| 14:57:58 | <blip> | not because of the type checker |
| 14:58:09 | <blip> | the simplifier goes absolutely nuts |
| 14:59:44 | → | oisdk joins (~oisdk@2001:bb6:3329:d100:a9e4:32d1:231e:16a5) |
| 14:59:44 | <blip> | Or is there a type level function which does something like type family ToSymbol x where ToSymbol Banana = "Banana" |
| 14:59:55 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:00:01 | × | seawalk quits (~seawalk@185.163.110.116) () |
| 15:00:16 | <blip> | Like show, but with symbols |
| 15:03:49 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 15:04:29 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 15:04:40 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 15:06:09 | → | macrover joins (~macrover@ip70-189-231-35.lv.lv.cox.net) |
| 15:08:20 | → | ralejs_ joins (~ralejs@2620:10d:c093:400::5:c80) |
| 15:08:21 | × | ralejs quits (~ralejs@2620:10d:c093:400::5:c80) (Read error: Connection reset by peer) |
| 15:09:08 | → | bitmapper joins (uid464869@gateway/web/irccloud.com/x-ezaxzpcxhniaxecp) |
| 15:09:23 | → | Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas) |
| 15:09:46 | → | Neuromancer joins (~Neuromanc@unaffiliated/neuromancer) |
| 15:09:54 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-aprzkzvsxxeylcyp) |
| 15:10:00 | <blip> | Perhaps it would be possible with generics? I'm recalling vaguely that it's possible to retrieve the constructors at the type level |
| 15:10:01 | × | aqd quits (~aqd@87-92-145-87.rev.dnainternet.fi) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:10:12 | <blip> | constructor names |
| 15:10:40 | <merijn> | blip: Out of curiosity, have you ever read any Lovecraft novels/stories? |
| 15:11:00 | <blip> | merijn: No, why do you ask? |
| 15:11:08 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 15:11:29 | <merijn> | Because this path will lead you to the same fate as any of his protoganists :p |
| 15:11:56 | <merijn> | i.e. gibberingly mad and insane after staring into the Eldritch horrors of the universe :) |
| 15:12:08 | <Taneb> | merijn: sometimes that can be very fun |
| 15:12:44 | <blip> | Well, considering that haskell is just a little hobby of mine I can only gibber mad and insane in my free time |
| 15:13:02 | <blip> | At work, I'm at the receiving end (music teacher) |
| 15:13:19 | → | conal joins (~conal@64.71.133.70) |
| 15:13:41 | <merijn> | Sounds like "The Music of Erich Zann" would be an appropriate recommendation :p |
| 15:14:11 | <blip> | I like Dr Faustus and The Expanse |
| 15:14:25 | × | acidjnk_new quits (~acidjnk@p200300d0c723782835a5fda97218b164.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 15:14:27 | × | CindyLinz quits (~cindy_utf@112.121.78.20) (Ping timeout: 240 seconds) |
| 15:14:27 | <blip> | And mediaeval treaties about music theory |
| 15:15:46 | <blip> | I.E. : (3/2)^12 /= 2^7 ==> modern music sucks |
| 15:16:32 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 15:17:24 | → | supaplex1 joins (~supaplex1@185.163.110.116) |
| 15:17:26 | → | Bakun joins (~bakun@51.15.0.88) |
| 15:17:34 | × | cpressey quits (~cpressey@88.144.70.115) (Quit: WeeChat 1.9.1) |
| 15:17:43 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 260 seconds) |
| 15:19:17 | <c_wraith> | of course, for m, n > 0, (3/2)^m /= 2^n |
| 15:19:38 | <blip> | yeah, but these numbers are quite special |
| 15:19:47 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 15:19:49 | <c_wraith> | You can't have perfect fifths and perfect octaves uniformly across the scale. You have to decide what to give up. |
| 15:20:17 | <blip> | yes, that's the point |
| 15:20:28 | <c_wraith> | that's not "modern music sucks" that's math. |
| 15:20:57 | → | CindyLinz joins (~cindy_utf@112.121.78.20) |
| 15:21:03 | <blip> | Well, Pythagoras at least claims that beautiful interval are simple rationals |
| 15:21:35 | <blip> | so the modern fith (2^(5/12)) wouldn't please him |
| 15:21:52 | <merijn> | But Pythagoras is dead, so we win! |
| 15:22:26 | <blip> | I don't claim that I use exclusively Pythagoras taste to determine my taste |
| 15:22:45 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 15:22:46 | <blip> | But it's interesting to change ones point of view |
| 15:22:56 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 15:22:58 | × | xff0x quits (~fox@217.110.198.158) (Ping timeout: 260 seconds) |
| 15:23:04 | → | Ariakenom joins (~Ariakenom@h-155-4-221-50.NA.cust.bahnhof.se) |
| 15:23:12 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 15:23:24 | <blip> | oops: not 2^(5/12), it's 2^(7/12) |
| 15:24:24 | → | jil joins (~user@45.86.162.6) |
| 15:24:26 | <jil> | hi |
| 15:24:43 | <blip> | hi jil |
| 15:25:18 | <blip> | jil: do you prefer perfect fiths or equidistant semitones? |
| 15:25:22 | <blip> | :) |
| 15:25:55 | <monochrom> | 2^(1/2) wouldn't please him either. It's still irrational. |
| 15:25:56 | <jil> | I'm learning Haskell with "Programming in Haskell" 2nd edition.. |
| 15:26:16 | <blip> | Nice, can we help you? |
| 15:26:39 | <blip> | monochrom: Yes |
| 15:26:41 | <monochrom> | You know what, s/It's still/He's/ >:) |
| 15:26:42 | <jil> | what a perfect fith or an equidistant semitone ? |
| 15:26:43 | × | Bakun quits (~bakun@51.15.0.88) (Read error: Connection reset by peer) |
| 15:27:25 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 240 seconds) |
| 15:27:39 | <jil> | It would bother me If I was rational, not you ? |
| 15:27:49 | <blip> | monochrom: He'd use (3/2)^7 minus some octaves for a semitone |
| 15:29:28 | <blip> | jil: that is a quite modern stance |
| 15:30:19 | × | kritzefitz quits (~kritzefit@fw-front.credativ.com) (Remote host closed the connection) |
| 15:30:35 | <blip> | jil: don't be confused, we're just smalltalking about historic music theory |
| 15:30:56 | <gentauro> | kindaro: Torben wrote back and it is Jon Sporing who currently is wrote/maintain the material. Torben say that you should write Jon an e-mail and ask (nicely) if you can have a copy :-) |
| 15:31:49 | → | Bakun joins (~bakun@51.15.0.88) |
| 15:32:08 | <jil> | blip: I was confused. Thank you. |
| 15:33:11 | <blip> | jil: So, can we help you on your journey to enlightenment? |
| 15:33:32 | <blip> | (regarding haskell) |
| 15:34:23 | <blip> | merijn: Thanks for the recommendation, that's quite intresting |
| 15:34:45 | × | CindyLinz quits (~cindy_utf@112.121.78.20) (Ping timeout: 240 seconds) |
| 15:34:49 | × | Bakun quits (~bakun@51.15.0.88) (Read error: Connection reset by peer) |
| 15:34:53 | <blip> | merijn: The descriptions of this literature reminds me of Kafka |
| 15:37:45 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 240 seconds) |
| 15:37:57 | → | mdunnio_ joins (~mdunnio@208.59.170.5) |
| 15:38:17 | → | Bakun joins (~bakun@51.15.0.88) |
| 15:39:42 | → | fendor joins (~fendor@e237-037.eduroam.tuwien.ac.at) |
| 15:39:58 | → | jgt joins (~jgt@77-255-14-254.adsl.inetia.pl) |
| 15:40:16 | × | mdunnio quits (~mdunnio@208.59.170.5) (Ping timeout: 246 seconds) |
| 15:40:27 | <jil> | I think listing your smalltalking is already helping me a lot. But I was also wondering if the construct `add x = x :: Int` with the type coercing at the end, was recent because I don't see it in my manual (from 2016) but it work in GHCi 8.6.5 |
| 15:40:52 | → | kritzefitz joins (~kritzefit@212.86.56.80) |
| 15:40:56 | <ski> | it's not a coercion, but a type ascription |
| 15:41:10 | <blip> | Ah, yes. In the MetaData of Generic Rep are the constructor names as Symbols. All I need now, is a type level function which converts camel case Symbols into hyphenated lowercase Symbols. That's a challenge but possible :) |
| 15:41:13 | × | polyrain quits (~polyrain@2001:8003:e501:6901:8a4:c02:960d:e633) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:41:18 | <ski> | (it doesn't change the type of anything, it just specifies (pins down) what the type should be) |
| 15:41:18 | <monochrom> | It is not recent. Just unidiomatic. |
| 15:41:30 | <ski> | and yes, it's standard Haskell. was in Haskell98 already |
| 15:41:38 | <jil> | thank you for the correction ski I wasn't sure about the vocabulary indeed. |
| 15:42:22 | <blip> | jil: normally, you would write: |
| 15:42:30 | <ski> | no worry, clearing up terminological (and sometimes conceptual) misalignments can often be useful, when communicating |
| 15:42:37 | <blip> | `add x :: Int -> Int` |
| 15:42:47 | <ski> | (without the `x') |
| 15:42:58 | <blip> | oops |
| 15:43:28 | <blip> | and propably `add :: Int -> Int -> Int`, magmas are cool |
| 15:43:54 | <jil> | what are magmas ? |
| 15:44:04 | <ski> | jil : it can sometimes be useful to have them, if there's a type ambiguity problem (the system has trouble figuring out which specific type you intend, somewhere in your code) |
| 15:44:17 | <blip> | all functions which take two arguments of the same type and return something of that type |
| 15:44:25 | <blip> | `magma :: a -> a -> a` |
| 15:44:35 | × | da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:44:36 | <blip> | addition or multiplication for example |
| 15:44:41 | <ski> | "magma" is a concept in math (abstract algebra) for a binary operation on a set/type |
| 15:45:58 | → | da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com) |
| 15:46:00 | <ski> | blip : why're they cool ? |
| 15:46:23 | × | da39a3ee5e6b4b0d quits (~textual@n11211935170.netvigator.com) (Client Quit) |
| 15:46:50 | <jil> | I see. |
| 15:46:52 | <blip> | ski: I like them a lot; you can define nice operators and a lot of things are magmas |
| 15:47:08 | <blip> | ski: Or would you prefer them described as hot? |
| 15:47:14 | <blip> | :) |
| 15:47:15 | <ski> | usually you'd want a few laws, i think |
| 15:47:41 | → | LKoen joins (~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) |
| 15:47:47 | <ski> | sure, if you have a magma, you automatically gets an operation taking a binary tree with leaves being elements in the magma, to an element in the magma |
| 15:47:49 | × | LKoen quits (~LKoen@lstlambert-657-1-123-43.w92-154.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 15:48:02 | <blip> | and that is nice |
| 15:48:10 | → | LKoen joins (~LKoen@81.255.219.130) |
| 15:48:49 | <blip> | for example (<>) is quite nice, obviously it's even a monoid, but a lot of the niceness comes from the magma part |
| 15:48:53 | → | fresheyeball joins (~isaac@c-71-237-105-37.hsd1.co.comcast.net) |
| 15:49:01 | <blip> | or semigroup |
| 15:50:10 | × | knupfer quits (~Thunderbi@200116b82c814300c0110b68686b9a3e.dip.versatel-1u1.de) (Quit: knupfer) |
| 15:50:18 | → | knupfer joins (~Thunderbi@200116b82c814300159e9cdeac30c350.dip.versatel-1u1.de) |
| 15:50:20 | × | blip quits (58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) (Quit: Connection closed) |
| 15:50:27 | × | Bakun quits (~bakun@51.15.0.88) (Read error: Connection reset by peer) |
| 15:50:38 | → | blip joins (58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) |
| 15:50:44 | → | xff0x joins (~fox@217.110.198.158) |
| 15:50:58 | → | CindyLinz joins (~cindy_utf@112.121.78.20) |
| 15:51:09 | <ski> | with semigroup, you have associativity, so you can combine a sequence of elements into a single element, and get the same result, regardless of how you group the elements in the sequence |
| 15:51:46 | <monochrom> | That means magmas are freer than semigroups. :) |
| 15:52:10 | <blip> | jil: How would you implement this signature: `slurp :: (a, b) -> a` |
| 15:52:24 | <blip> | monochrom: :) |
| 15:52:34 | <ski> | i guess you have a free functor from magmas to semigroups |
| 15:52:36 | × | ubert quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Quit: ubert) |
| 15:52:39 | × | alp quits (~alp@2a01:e0a:58b:4920:e961:3e4f:cf0f:6182) (Ping timeout: 272 seconds) |
| 15:54:21 | <jil> | as `slurp (x,y) = x` blip |
| 15:54:45 | <blip> | jil: cool, and what about: barf :: a -> (a, b) |
| 15:54:50 | → | Bakun joins (~bakun@51.15.0.88) |
| 15:55:11 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 15:55:19 | → | GyroW_ joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 15:55:20 | × | GyroW_ quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 15:55:20 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 15:56:34 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds) |
| 15:57:47 | <jil> | I'm looking for a definition with the flowing type `add :: Int -> Int -> Int -> Int` and I come up with this https://paste.debian.net/1166987 but I feel something is correct. |
| 15:57:53 | <jil> | or not necessary |
| 15:59:10 | <ski> | what do you mean by "flowing type" ? |
| 15:59:13 | × | knupfer quits (~Thunderbi@200116b82c814300159e9cdeac30c350.dip.versatel-1u1.de) (Read error: Connection reset by peer) |
| 15:59:16 | <jil> | more precisely I don't understand why removing the first `:: Int` make a fucntion returning `Num a` also I have x, y z Ints |
| 15:59:17 | <ski> | @type let add x y z = x+y+z::Int where x :: Int; y :: Int; z :: Int in add |
| 15:59:17 | <monochrom> | Write "add :: Int -> Int -> Int -> Int" instead of the "where x::Int etc" block. That block means something else. |
| 15:59:19 | <lambdabot> | error: |
| 15:59:19 | <lambdabot> | The type signature for ‘x’ lacks an accompanying binding |
| 15:59:19 | <lambdabot> | (The type signature must be given where ‘x’ is declared) |
| 15:59:20 | → | knupfer joins (~Thunderbi@200116b82c814300f1e41d34f9bff3a4.dip.versatel-1u1.de) |
| 15:59:22 | × | blip quits (58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) (Quit: Connection closed) |
| 15:59:29 | → | blip joins (58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) |
| 15:59:40 | <blip> | jil: it's correct, albeit unusual |
| 15:59:45 | <monochrom> | ski, I think s/flowing/following/ |
| 15:59:51 | <ski> | oh |
| 16:00:01 | ski | sometimes fails to read typo :/ |
| 16:00:15 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 16:00:25 | <blip> | jil: you'd need only the top level type signature, all the other types are infered |
| 16:00:27 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:1dbd) |
| 16:00:46 | × | is_null quits (~jpic@pdpc/supporter/professional/is-null) (Read error: Connection reset by peer) |
| 16:00:54 | <ski> | @let add x y z = (x :: Int) + (y :: Int) + (z :: Int) :: Int |
| 16:00:55 | <jil> | sorry ski, I'm unfortunately very good at writting typos. |
| 16:00:57 | <lambdabot> | Defined. |
| 16:01:08 | <monochrom> | I trained myself to guess meanings from very large contexts when I was a child. Because I was too lazy to look up a word in a dictionary, I would rather guess an approximation from context. |
| 16:01:18 | <ski> | is possible, if you really want to write it like that (but it's not idiomatic, as noted) |
| 16:01:18 | × | chkno quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 16:01:21 | → | Rudd0 joins (~Rudd0@185.189.115.103) |
| 16:01:34 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:1dbd) (Client Quit) |
| 16:01:53 | <jil> | ok. Thank you. |
| 16:02:04 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 16:02:06 | <ski> | @let add (x :: Int) (y :: Int) (z :: Int) = x + y + z :: Int |
| 16:02:08 | <lambdabot> | Defined. |
| 16:02:09 | <merijn> | blip: Eh, the top level is inferred too |
| 16:02:13 | <merijn> | blip: Everything is inferred |
| 16:02:35 | <merijn> | You'll just get lynched by angry programmers if you don't annotate the top level :p |
| 16:02:40 | <ski> | is another, similar, way (imho looks better). but it's still unidiomatic. and this one requires a language extension (`ScopedTypeVariables') |
| 16:02:54 | → | AlterEgo- joins (~ladew@124-198-158-163.dynamic.caiway.nl) |
| 16:03:06 | <ski> | add :: Int -> Int -> Int -> Int |
| 16:03:10 | <ski> | add x y z = x + y + z |
| 16:03:12 | <jil> | @let add (x :: Int) (y :: Int) = x + y |
| 16:03:14 | <lambdabot> | .L.hs:157:1: error: |
| 16:03:14 | <lambdabot> | Equations for ‘add’ have different numbers of arguments |
| 16:03:14 | <lambdabot> | .L.hs:157:1-55 |
| 16:03:15 | <ski> | is the usual way to write it |
| 16:03:26 | <blip> | @pl \x y z -> x + y + z |
| 16:03:26 | <lambdabot> | ((+) .) . (+) |
| 16:03:32 | <dolio> | If you don't annotate the top level you're probably going to end up hating yourself, eventually. |
| 16:03:33 | <ski> | sorry, let me remove the earlier definition for you |
| 16:03:36 | <ski> | @undefine |
| 16:03:37 | <lambdabot> | Undefined. |
| 16:03:45 | <ski> | @let add (x :: Int) (y :: Int) = x + y |
| 16:03:46 | <lambdabot> | Defined. |
| 16:03:48 | <ski> | @type add |
| 16:03:49 | <lambdabot> | Int -> Int -> Int |
| 16:04:14 | <blip> | add = ((+) .) . (+) :: Int -> Int -> Int -> Int |
| 16:04:16 | <blip> | :P |
| 16:04:17 | <jil> | I see. It's clearer like that. Thank you. |
| 16:04:38 | <dolio> | At least if you write anything non-trivial. |
| 16:04:45 | <jil> | :) |
| 16:05:28 | × | nyd quits (~lpy@unaffiliated/elysian) (Ping timeout: 256 seconds) |
| 16:06:01 | <ski> | @let add (x :: Int) (y :: Int) (z :: Int) :: Int = x + y + z -- too bad this doesn't work, anymore .. |
| 16:06:01 | <lambdabot> | Parse failed: Cannot give an explicit type signature to a function binding |
| 16:06:40 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 16:07:51 | <ski> | jil : "more precisely I don't understand why removing the first `:: Int` make a fucntion returning `Num a` also I have x, y z Ints" -- i suppose you mean the (first) `:: Int', in the paste |
| 16:09:00 | <jil> | yes |
| 16:09:04 | <ski> | if you just say `add x y z = x + y + z', then it infers that `x',`y',`z' (and the result `x+y+z') must be of "numeric type", meaning some type that supports `+' (and a few other operations). that is what the `Num a =>' part means : works for all types `a', provided that `a' supports the `Num' operations |
| 16:09:20 | <ski> | @src Num |
| 16:09:20 | <lambdabot> | class Num a where |
| 16:09:20 | <lambdabot> | (+), (-), (*) :: a -> a -> a |
| 16:09:20 | <lambdabot> | negate, abs, signum :: a -> a |
| 16:09:20 | <lambdabot> | fromInteger :: Integer -> a |
| 16:10:15 | → | aaaaaa joins (~ArthurStr@host-91-90-11-13.soborka.net) |
| 16:10:33 | <jil> | sure but I was understanding the `where x :: Int...` as a restriction or condition on my arguments' type |
| 16:10:34 | <ski> | (note that this doesn't include division. if you (also) want division, you'll have to say whether you want integral (with remainder) division, or fractional division. instead of `Num', you'd then use `Integral' or `Fractional') |
| 16:11:25 | <blip> | these arguments are restricted by the top level type signature |
| 16:11:37 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 264 seconds) |
| 16:11:38 | → | pera joins (~pera@unaffiliated/pera) |
| 16:11:54 | <blip> | or by the return type, because the (+) forces the same type on both sides and for the result |
| 16:11:54 | → | lucid_0x80 joins (~lucid_0x8@188.253.234.40) |
| 16:12:15 | ← | aaaaaa parts (~ArthurStr@host-91-90-11-13.soborka.net) () |
| 16:12:18 | <ski> | jil : when i try the first section of code in the paste (inbetween the `{:' and the `:}'), i get errors for missing bindings (definitions) for `x',`y',`z' |
| 16:12:31 | glguy | is now known as ghoulguy |
| 16:12:37 | <ski> | (i'm not sure how you're trying this piece of code, without getting errors) |
| 16:13:22 | <kuribas> | is there an applicative for records? Positional arguments can be come quite unwieldy and unreadable... |
| 16:13:30 | <jil> | I evaluate in from org-mode in emacs that sends it to ghci |
| 16:13:38 | <ski> | jil : generally, if you put `someName :: SomeType', e.g. in a `where'-clause attaching to a definition, there should also be a definition of `someName' in there |
| 16:13:48 | <kuribas> | hmm, maybe applicative-do... |
| 16:13:49 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 16:14:01 | → | alp joins (~alp@2a01:e0a:58b:4920:c582:5c02:4169:5973) |
| 16:14:14 | <blip> | kuribas: perhaps you'd like to use lensesd |
| 16:14:17 | <blip> | lenses? |
| 16:14:29 | <kuribas> | blip: how do lenses help with applicative? |
| 16:14:39 | <ski> | so, i'm getting complaints, because there's no definition of `x',`y',`z', accompanying those type signatures for them, inside that `where' |
| 16:15:05 | <blip> | blip: to select which part of the record you'd like to act upon |
| 16:15:08 | <ski> | (since `x',`y',`z' are not bound in the `where', but rather in the patterns / formal parameters, to the left of the `=', in the defining equation) |
| 16:15:13 | → | geekosaur joins (82659a0e@host154-014.vpn.uakron.edu) |
| 16:15:26 | <kuribas> | blip: but I need to act on all parts |
| 16:15:36 | <ski> | jil : hm. maybe it does something unexpected, not sure |
| 16:15:50 | <blip> | kuribas: well, if they are all of the same type, you can derive a functor instance |
| 16:15:57 | <ski> | (it being `org-mode', or perhaps some more particular mechanism invoked by it) |
| 16:16:00 | <kuribas> | blip: like MyRecord <$> field1 <*> field2 <*> field3 |
| 16:16:07 | <kuribas> | but with field names instead of positions |
| 16:16:18 | × | xff0x quits (~fox@217.110.198.158) (Ping timeout: 256 seconds) |
| 16:16:43 | <blip> | kuribas: well, what about record updates? |
| 16:16:53 | <kuribas> | perhaps applicative do: do a <- field1; b <- field2; c <- field3; MyRecord {..} |
| 16:17:15 | <kuribas> | blip: record updates aren't a problem |
| 16:17:37 | <kuribas> | blip: my question isn't about record updates. |
| 16:17:50 | <kuribas> | it's about doing an applicative on a record. |
| 16:18:01 | → | conal joins (~conal@64.71.133.70) |
| 16:18:25 | <blip> | well, what you propose would work (adding a pure to the last line) |
| 16:18:30 | <kuribas> | yeah |
| 16:18:34 | <ski> | jil : in any case, the normal way to specify the types of function arguments is to provide a type signature for the whole function (normally before the function definition), like `add :: Int -> Int -> Int -> Int' (also specifying the result type) |
| 16:18:48 | <jil> | also when I :load a script with `add (x :: Int) (y :: Int) (z :: Int) = x + y + z :: Int` directly from ghci I get an error. https://paste.debian.net/1166990/ illegal type signature 'Int' |
| 16:19:38 | <geekosaur> | because it's trying to do a pattern signature which is an extension (it should have said something about ScopedTypeVariables) |
| 16:19:39 | <jil> | why is that ? |
| 16:19:46 | <blip> | kuribas: but also quite dangerous, you can easily construct an incomplete record |
| 16:19:47 | <ski> | jil : yes. as i mentioned (in brief) above, using that style (having `:: Int' in the formal parameters / patterns) is a language extension. try placing the following line as the first line in your script : |
| 16:19:48 | <jil> | yes it does. |
| 16:19:56 | <ski> | {-# LANGUAGE ScopedTypeVariables #-} |
| 16:19:59 | <geekosaur> | ski just told you the correct way to specify a function signature |
| 16:20:10 | <jil> | ok. |
| 16:20:13 | <kuribas> | blip: wouldn't that generate a warning? |
| 16:20:36 | <ski> | (if you want to play around with this style of ascribing types also to patterns, not just to expressions, that is) |
| 16:20:40 | <blip> | kuribas: I think yes with -Wall |
| 16:21:20 | <kuribas> | blip: I can turn a warning in an error, can't I? |
| 16:21:20 | × | nados quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 16:21:34 | <blip> | kuribas: yes, -Werr |
| 16:21:47 | → | nados joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 16:22:15 | <kuribas> | ah -Werror=⟨wflag⟩ |
| 16:22:27 | <blip> | yep |
| 16:22:30 | <jil> | ski geekosaur ok. I had not understood what you meant by `a language extension`. It's clear know and my script works. |
| 16:22:53 | <kuribas> | strange haskell is so loose with undefined fields |
| 16:23:00 | × | Sgeo quits (~Sgeo@ool-18b982ad.dyn.optonline.net) (Read error: Connection reset by peer) |
| 16:23:02 | <kuribas> | IMO it should be an error |
| 16:23:24 | → | fendor_ joins (~fendor@t204-126.demo.tuwien.ac.at) |
| 16:23:24 | <ski> | ditto for missing methods ? |
| 16:23:29 | <blip> | there is a lot of undefined |
| 16:23:35 | <blip> | what about head? |
| 16:23:39 | <kuribas> | ski: that's an error right? |
| 16:23:41 | → | nyd joins (~lpy@unaffiliated/elysian) |
| 16:23:46 | <dolio> | No. |
| 16:23:52 | <ski> | @let data Foo = MkFoo; instance Num Foo |
| 16:23:54 | <lambdabot> | .L.hs:160:10: error: [-Wmissing-methods, -Werror=missing-methods] |
| 16:23:54 | <lambdabot> | • No explicit implementation for |
| 16:23:54 | <lambdabot> | ‘+’, ‘*’, ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ |
| 16:24:06 | <blip> | :) |
| 16:24:07 | <monochrom> | missing methods and undefined values are dynamic errors, not static errors. |
| 16:24:16 | <ski> | lambdabot doesn't like it, since it has `-Werror=missing-methods' |
| 16:24:17 | <kuribas> | ah you mean missing instance methods... |
| 16:24:29 | <kuribas> | indeed, that should be an error IMO |
| 16:24:50 | <blip> | > head [] |
| 16:24:52 | <lambdabot> | *Exception: Prelude.head: empty list |
| 16:25:48 | → | Reiser2 joins (~0a2a0001@static.210.242.216.95.clients.your-server.de) |
| 16:25:52 | <blip> | we need `-Werror=undefined` |
| 16:25:57 | <ski> | jil : you understand how to "line up" the arguments in `add x y z = x + y + z' with the types in `add :: Int -> Int -> Int -> Int' (or even `add :: Num a => a -> a -> a -> a'), yes ? |
| 16:26:01 | × | dustinm- quits (~dustinm@static.38.6.217.95.clients.your-server.de) (Ping timeout: 264 seconds) |
| 16:26:23 | × | fendor quits (~fendor@e237-037.eduroam.tuwien.ac.at) (Ping timeout: 258 seconds) |
| 16:26:43 | <kuribas> | I find partial functions are always a mistake, because you don't get a good error message. |
| 16:26:49 | × | Reiser quits (~0a2a0001@unaffiliated/reisen) (Ping timeout: 246 seconds) |
| 16:26:55 | → | lowryder joins (~djlowry@web603.webfaction.com) |
| 16:26:59 | <blip> | like (/) |
| 16:27:25 | × | chrpape quits (~user@2a01:4f9:c010:632d::1) (Ping timeout: 240 seconds) |
| 16:27:28 | <blip> | :: Rational |
| 16:27:53 | → | noteness_ joins (noteness@unaffiliated/nessessary129) |
| 16:27:59 | → | jhuizy3 joins (~jhuizy@static.241.188.216.95.clients.your-server.de) |
| 16:28:02 | × | fl0_id quits (~fl0_id@2a01:4f8:171:4de::40:2) (Quit: ZNC) |
| 16:28:02 | <kuribas> | yeah |
| 16:28:03 | × | Unhammer quits (~Unhammer@gateway/tor-sasl/unhammer) (Ping timeout: 240 seconds) |
| 16:28:07 | × | M2tias quits (m2@seri.fi) (Ping timeout: 240 seconds) |
| 16:28:19 | → | uwap_ joins (~uwap@genja.uwap.name) |
| 16:28:33 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
| 16:28:34 | → | fl0_id joins (~fl0_id@claudia.s7t.de) |
| 16:29:06 | <monochrom> | Perhaps you can accept a compromise? Partial functions/values with the HasCallStack constraint are not static errors; without, are static errors. |
| 16:29:12 | × | uwap quits (~uwap@genja.uwap.name) (Read error: Connection reset by peer) |
| 16:29:21 | → | M2tias joins (m2@seri.fi) |
| 16:29:47 | × | jhuizy quits (~jhuizy@static.241.188.216.95.clients.your-server.de) (Ping timeout: 260 seconds) |
| 16:29:47 | jhuizy3 | is now known as jhuizy |
| 16:29:55 | → | Lycurgus joins (~niemand@98.4.96.235) |
| 16:30:06 | <blip> | I have to go, the abyss of promoted constructors is calling my name |
| 16:30:29 | <dolio> | I write good errors in my partial functions. :) |
| 16:30:35 | × | noteness quits (~noteness@unaffiliated/nessessary129) (Ping timeout: 244 seconds) |
| 16:30:57 | → | dustinm joins (~dustinm@static.38.6.217.95.clients.your-server.de) |
| 16:32:00 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 16:32:05 | → | Unhammer joins (~Unhammer@gateway/tor-sasl/unhammer) |
| 16:34:20 | → | howdoi joins (uid224@gateway/web/irccloud.com/x-llljiaghhgnypdze) |
| 16:35:09 | × | blip quits (58823d9e@gateway/web/cgi-irc/kiwiirc.com/ip.88.130.61.158) (Quit: Connection closed) |
| 16:35:27 | hackage | prolens 0.0.0.0 - Profunctor-based lightweight implementation of optics https://hackage.haskell.org/package/prolens-0.0.0.0 (shersh) |
| 16:40:43 | → | Sgeo joins (~Sgeo@ool-18b982ad.dyn.optonline.net) |
| 16:41:22 | × | uwap_ quits (~uwap@genja.uwap.name) (Remote host closed the connection) |
| 16:41:34 | → | uwap joins (~uwap@genja.uwap.name) |
| 16:42:05 | × | pgib quits (~textual@lmms/pgib) (Ping timeout: 240 seconds) |
| 16:43:51 | <maerwald> | A language with no partial functions seems like a pain in the *ss. You don't really care about partial functions, you care about your program being total. |
| 16:45:28 | ski | . o O ( preconditions & postconditions ) |
| 16:46:14 | <monochrom> | inb4 Sapir-Whorf |
| 16:46:16 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 256 seconds) |
| 16:47:09 | × | nineonin_ quits (~nineonine@216-19-190-182.dyn.novuscom.net) (Remote host closed the connection) |
| 16:49:56 | × | jollygood2 quits (~bc8165ab@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 16:51:17 | → | tzh joins (~tzh@2601:448:c500:5300::d90) |
| 16:53:58 | × | fendor_ quits (~fendor@t204-126.demo.tuwien.ac.at) (Remote host closed the connection) |
| 16:54:45 | × | taurux quits (~taurux@net-109-115-33-170.cust.vodafonedsl.it) (Ping timeout: 240 seconds) |
| 16:55:18 | → | taurux joins (~taurux@net-109-115-33-211.cust.vodafonedsl.it) |
| 16:56:34 | <Cheery> | bucklescript translates the partial functions away. |
| 16:57:48 | <Cheery> | I'm curious about that because it means that on partial parameters they're constructing a closure that fills in the partial. |
| 16:58:53 | <Cheery> | also if you have function like a → b, if the 'b' turns out to be a function, then the parameters cannot be fused anyway. |
| 16:59:42 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:59:54 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 272 seconds) |
| 17:00:45 | <Cheery> | nobody cares as long as they're not exposed in a library interface. That'd be interesting subject on its own. |
| 17:00:58 | × | Bakun quits (~bakun@51.15.0.88) (Ping timeout: 260 seconds) |
| 17:01:00 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 17:01:26 | → | nineonine joins (~nineonine@216.81.48.202) |
| 17:01:51 | × | nineonine quits (~nineonine@216.81.48.202) (Remote host closed the connection) |
| 17:02:03 | → | nineonine joins (~nineonine@216.81.48.202) |
| 17:02:54 | → | Bakun joins (~bakun@51.15.0.88) |
| 17:05:52 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 258 seconds) |
| 17:05:54 | × | guest35 quits (d537f42e@213.55.244.46) (Remote host closed the connection) |
| 17:08:56 | <monochrom> | That sounds like you mistook partial function for partial application. |
| 17:09:29 | <Cheery> | you're right. |
| 17:12:08 | <Cheery> | But then got opinion on that as well. I think I like the approach where you tag the partial functions. |
| 17:12:31 | → | mdunnio joins (~mdunnio@208.59.170.5) |
| 17:14:33 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 17:14:46 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 17:14:46 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 17:14:46 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 17:15:05 | × | mdunnio_ quits (~mdunnio@208.59.170.5) (Ping timeout: 240 seconds) |
| 17:15:38 | → | Gerula joins (~Gerula@unaffiliated/gerula) |
| 17:16:04 | <Cheery> | I might also do that for recursive functions. |
| 17:16:32 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 17:16:52 | → | xff0x joins (~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372) |
| 17:18:11 | → | GyroW_ joins (~GyroW@d54C03E98.access.telenet.be) |
| 17:18:11 | × | GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 17:18:11 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 17:19:25 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 240 seconds) |
| 17:20:38 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 265 seconds) |
| 17:21:31 | → | mdunnio_ joins (~mdunnio@208.59.170.5) |
| 17:22:24 | <Cheery> | fix :: Fix a => (a → a) → a |
| 17:22:32 | × | xff0x quits (~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372) (Ping timeout: 260 seconds) |
| 17:22:48 | × | raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal) |
| 17:23:49 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 17:24:24 | → | xff0x joins (~fox@2001:1a81:52e4:2a00:a0c7:cc77:f7d4:2372) |
| 17:24:45 | × | mdunnio quits (~mdunnio@208.59.170.5) (Ping timeout: 240 seconds) |
| 17:24:47 | → | geowiesnot joins (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) |
| 17:25:51 | × | p-core quits (~Thunderbi@2001:718:1e03:5128:2ab7:7f35:48a1:8515) (Remote host closed the connection) |
| 17:26:07 | → | conal joins (~conal@64.71.133.70) |
| 17:26:20 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 17:27:21 | → | dopplergange joins (~dop@titan.pathogen.is) |
| 17:27:53 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
| 17:28:22 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 260 seconds) |
| 17:29:07 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 17:29:17 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:a9e4:32d1:231e:16a5) (Quit: oisdk) |
| 17:32:21 | → | chenshen joins (~chenshen@2620:10d:c090:400::5:1dbd) |
| 17:32:35 | → | amx joins (amx@percival.namespace.at) |
| 17:34:16 | → | sand_dull joins (~theuser@104.140.53.43) |
| 17:34:52 | × | cole-h quits (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) (Quit: Goodbye) |
| 17:35:27 | hackage | matterhorn 50200.10.3 - Terminal client for the Mattermost chat system https://hackage.haskell.org/package/matterhorn-50200.10.3 (JonathanDaugherty) |
| 17:35:47 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 17:38:07 | × | pera quits (~pera@unaffiliated/pera) (Quit: leaving) |
| 17:38:48 | → | isovector1 joins (~isovector@172.103.216.166.cable.tpia.cipherkey.com) |
| 17:44:00 | → | winircuser-559 joins (~winircuse@208.65.191.38) |
| 17:44:30 | → | leungbk joins (~user@2605:e000:1315:706:cc8c:f2b3:1a5a:360) |
| 17:46:10 | × | kupi quits (uid212005@gateway/web/irccloud.com/x-zkqelsktmjuyhxgl) (Quit: Connection closed for inactivity) |
| 17:48:16 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 17:48:32 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 17:49:58 | × | John20 quits (~John@82.46.59.122) (Ping timeout: 260 seconds) |
| 17:52:52 | × | chenshen quits (~chenshen@2620:10d:c090:400::5:1dbd) (Ping timeout: 260 seconds) |
| 17:53:05 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 240 seconds) |
| 17:53:44 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 272 seconds) |
| 17:56:20 | → | L29Ah joins (~L29Ah@unaffiliated/l29ah) |
| 17:58:52 | → | elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
| 17:59:14 | → | ashbreeze joins (~mark@72-161-254-60.dyn.centurytel.net) |
| 18:00:01 | × | supaplex1 quits (~supaplex1@185.163.110.116) () |
| 18:00:04 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 18:00:07 | × | dyeplexer quits (~lol@unaffiliated/terpin) (Remote host closed the connection) |
| 18:00:15 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 18:00:25 | × | L29Ah quits (~L29Ah@unaffiliated/l29ah) (Ping timeout: 240 seconds) |
| 18:00:25 | × | knupfer quits (~Thunderbi@200116b82c814300f1e41d34f9bff3a4.dip.versatel-1u1.de) (Remote host closed the connection) |
| 18:00:34 | → | knupfer joins (~Thunderbi@200116b82c81430000cc9ce4231ed805.dip.versatel-1u1.de) |
| 18:00:52 | × | avdb quits (~avdb@ip-62-235-189-198.dsl.scarlet.be) (Quit: WeeChat 2.9) |
| 18:01:31 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 18:01:42 | × | _ashbreeze_ quits (~mark@72-161-254-60.dyn.centurytel.net) (Ping timeout: 256 seconds) |
| 18:02:09 | × | lowryder quits (~djlowry@web603.webfaction.com) (Remote host closed the connection) |
| 18:02:27 | hackage | rescue 0.3.0 - More understandable exceptions https://hackage.haskell.org/package/rescue-0.3.0 (expede) |
| 18:03:49 | × | geekosaur quits (82659a0e@host154-014.vpn.uakron.edu) (Ping timeout: 245 seconds) |
| 18:04:24 | → | L29Ah joins (~L29Ah@unaffiliated/l29ah) |
| 18:05:08 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 18:08:37 | × | chaosmasttter quits (~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 18:08:40 | × | geowiesnot quits (~user@i15-les02-ix2-87-89-181-157.sfr.lns.abo.bbox.fr) (Ping timeout: 246 seconds) |
| 18:08:52 | → | mdickens joins (~mdickens@2600:1700:100:6510:a0bd:f978:b47f:a64d) |
| 18:09:23 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 18:10:23 | × | elliott_ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 260 seconds) |
| 18:11:47 | × | alp quits (~alp@2a01:e0a:58b:4920:c582:5c02:4169:5973) (Remote host closed the connection) |
| 18:12:25 | → | alp joins (~alp@2a01:e0a:58b:4920:5926:20e4:5d7e:7879) |
| 18:13:27 | × | alp quits (~alp@2a01:e0a:58b:4920:5926:20e4:5d7e:7879) (Remote host closed the connection) |
| 18:14:03 | → | alp joins (~alp@2a01:e0a:58b:4920:ed0b:3d12:34d1:634d) |
| 18:15:08 | × | alp quits (~alp@2a01:e0a:58b:4920:ed0b:3d12:34d1:634d) (Remote host closed the connection) |
| 18:15:28 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 18:15:45 | → | alp joins (~alp@2a01:e0a:58b:4920:8d39:25bb:b9fc:ab4b) |
| 18:16:32 | × | sand_dull quits (~theuser@104.140.53.43) (Ping timeout: 272 seconds) |
| 18:16:48 | × | alp quits (~alp@2a01:e0a:58b:4920:8d39:25bb:b9fc:ab4b) (Remote host closed the connection) |
| 18:17:26 | → | alp joins (~alp@2a01:e0a:58b:4920:b0eb:85d7:8e70:cf02) |
| 18:17:35 | → | pera joins (~pera@unaffiliated/pera) |
| 18:17:36 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 18:18:07 | → | Mouse34 joins (8137c814@LLPROXY.LL.MIT.EDU) |
| 18:18:29 | × | alp quits (~alp@2a01:e0a:58b:4920:b0eb:85d7:8e70:cf02) (Remote host closed the connection) |
| 18:19:04 | → | alp joins (~alp@2a01:e0a:58b:4920:8c3b:f2ef:189e:7b1f) |
| 18:19:51 | → | _ashbreeze_ joins (~mark@72-161-254-60.dyn.centurytel.net) |
| 18:20:10 | → | Ahmuck joins (~Ahmuck@178.162.204.214) |
| 18:20:43 | × | alp quits (~alp@2a01:e0a:58b:4920:8c3b:f2ef:189e:7b1f) (Remote host closed the connection) |
| 18:21:07 | × | ashbreeze quits (~mark@72-161-254-60.dyn.centurytel.net) (Ping timeout: 256 seconds) |
| 18:22:20 | → | alp joins (~alp@2a01:e0a:58b:4920:6ddd:c2d0:4761:63bc) |
| 18:23:00 | → | romildo joins (~Romildo@ip-187-73-5-249.isp.valenet.com.br) |
| 18:23:59 | → | elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
| 18:24:02 | <romildo> | Is there an irc channel for haskell-mode/lsp-haskell with emacs? |
| 18:24:04 | × | alp quits (~alp@2a01:e0a:58b:4920:6ddd:c2d0:4761:63bc) (Remote host closed the connection) |
| 18:24:04 | → | geekosaur joins (82659a0e@host154-014.vpn.uakron.edu) |
| 18:24:39 | → | alp joins (~alp@2a01:e0a:58b:4920:45ee:7400:a0c1:b755) |
| 18:25:59 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 18:26:13 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 18:26:18 | × | alp quits (~alp@2a01:e0a:58b:4920:45ee:7400:a0c1:b755) (Remote host closed the connection) |
| 18:26:34 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Remote host closed the connection) |
| 18:26:47 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Ping timeout: 256 seconds) |
| 18:26:56 | → | alp joins (~alp@2a01:e0a:58b:4920:2979:fa8:1325:3fdc) |
| 18:27:34 | → | DavidEichmann joins (~david@43.240.198.146.dyn.plus.net) |
| 18:27:45 | → | Zetagon joins (~leo@c151-177-52-233.bredband.comhem.se) |
| 18:28:29 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 18:28:32 | × | alp quits (~alp@2a01:e0a:58b:4920:2979:fa8:1325:3fdc) (Remote host closed the connection) |
| 18:28:48 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds) |
| 18:29:13 | → | alp joins (~alp@2a01:e0a:58b:4920:b89e:6fed:34a9:922c) |
| 18:29:49 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 18:30:01 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 18:30:07 | → | chaosmasttter joins (~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) |
| 18:30:46 | × | alp quits (~alp@2a01:e0a:58b:4920:b89e:6fed:34a9:922c) (Remote host closed the connection) |
| 18:31:04 | → | alp joins (~alp@2a01:e0a:58b:4920:e5d4:e452:52c9:d16a) |
| 18:31:35 | <ski> | romildo : try here or maybe in #emacs ? |
| 18:32:18 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 18:32:42 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 18:33:26 | <romildo> | Is there a key binding to insert in the text the inferred type of a variable in a equation? |
| 18:34:16 | × | carlomagno quits (~cararell@inet-hqmc02-o.oracle.com) (Remote host closed the connection) |
| 18:34:25 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 18:34:37 | → | carlomagno joins (~cararell@inet-hqmc02-o.oracle.com) |
| 18:36:30 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 18:36:33 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 18:36:33 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 18:36:41 | × | alp quits (~alp@2a01:e0a:58b:4920:e5d4:e452:52c9:d16a) (Ping timeout: 272 seconds) |
| 18:37:26 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds) |
| 18:38:16 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:41:53 | × | jespada quits (~jespada@90.254.245.15) (Ping timeout: 260 seconds) |
| 18:43:35 | → | jespada joins (~jespada@90.254.245.15) |
| 18:44:45 | → | sand_dull joins (~theuser@104.140.53.43) |
| 18:46:38 | → | raehik joins (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) |
| 18:47:45 | × | clog quits (~nef@bespin.org) (Ping timeout: 240 seconds) |
| 18:51:09 | × | sand_dull quits (~theuser@104.140.53.43) (Ping timeout: 256 seconds) |
| 18:52:39 | × | TimWolla quits (~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye) |
| 18:54:24 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Ping timeout: 265 seconds) |
| 18:56:12 | × | mdickens quits (~mdickens@2600:1700:100:6510:a0bd:f978:b47f:a64d) () |
| 18:56:39 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 258 seconds) |
| 18:56:41 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 18:59:15 | <koz_> | Am I right in that the kind of f here is Type -> Type? https://hackage.haskell.org/package/free-5.1.4/docs/Control-Monad-Free-Church.html#t:F |
| 18:59:44 | × | Lycurgus quits (~niemand@98.4.96.235) (Quit: Exeunt) |
| 19:00:00 | <ghoulguy> | koz_: no |
| 19:00:02 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 19:00:08 | <ghoulguy> | Look at runF :: forall r. (a -> r) -> (f r -> r) -> r |
| 19:00:19 | <koz_> | Ah, so k -> Type? |
| 19:00:21 | → | GyroW joins (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) |
| 19:00:21 | × | GyroW quits (~GyroW@ptr-48ujrfd1ztq5fjywfw3.18120a2.ip6.access.telenet.be) (Changing host) |
| 19:00:21 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 19:00:25 | <ghoulguy> | nuh uh |
| 19:00:28 | × | winircuser-559 quits (~winircuse@208.65.191.38) (Read error: Connection reset by peer) |
| 19:00:35 | <ghoulguy> | OOH, |
| 19:00:40 | <ghoulguy> | sorry, let me reassess |
| 19:00:41 | <ski> | `f' vs. `F' ? |
| 19:00:44 | <ghoulguy> | I thought you asked the kind of F |
| 19:00:53 | <koz_> | ski: I meant the type parameter 'f'. |
| 19:00:58 | <ski> | yes, i assumed so |
| 19:01:03 | <ghoulguy> | yeah, Type -> Type then |
| 19:01:11 | <koz_> | OK, good to know. |
| 19:01:13 | <ghoulguy> | f is applied to r, and r has to have kind Type |
| 19:02:21 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 19:03:33 | → | berberman_ joins (~berberman@unaffiliated/berberman) |
| 19:03:59 | → | lowryder joins (~djlowry@web603.webfaction.com) |
| 19:04:02 | × | berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds) |
| 19:05:13 | × | ggole quits (~ggole@2001:8003:8119:7200:dcc4:683f:59f7:9d48) (Quit: Leaving) |
| 19:06:14 | × | supercoven quits (~Supercove@dsl-hkibng32-54fb54-166.dhcp.inet.fi) (Ping timeout: 258 seconds) |
| 19:06:27 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 19:07:13 | → | TimWolla joins (~timwolla@2a01:4f8:150:6153:beef::6667) |
| 19:08:45 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
| 19:08:58 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 19:09:13 | × | lucid_0x80 quits (~lucid_0x8@188.253.234.40) (Ping timeout: 264 seconds) |
| 19:09:20 | × | macrover quits (~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection) |
| 19:10:21 | → | wroathe joins (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) |
| 19:12:20 | × | romildo quits (~Romildo@ip-187-73-5-249.isp.valenet.com.br) (Quit: Leaving) |
| 19:13:32 | → | conal joins (~conal@64.71.133.70) |
| 19:14:40 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 19:15:07 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 19:16:03 | → | oisdk joins (~oisdk@2001:bb6:3329:d100:a9e4:32d1:231e:16a5) |
| 19:23:46 | → | conal joins (~conal@64.71.133.70) |
| 19:24:39 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 19:24:45 | → | acidjnk_new joins (~acidjnk@p200300d0c723782849be01692612d250.dip0.t-ipconnect.de) |
| 19:26:34 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 19:27:36 | × | xerox_ quits (~xerox@unaffiliated/xerox) (Quit: leaving) |
| 19:28:39 | <Zetagon> | Is there a difference between algebraic effects and extensible effects? |
| 19:29:41 | <dolio> | Maybe. |
| 19:29:42 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 260 seconds) |
| 19:29:56 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 19:30:15 | <monochrom> | :) |
| 19:30:25 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 19:30:58 | × | styledash quits (~styledash@157.230.173.136) (Quit: The Lounge - https://thelounge.chat) |
| 19:31:34 | → | styledash joins (~styledash@157.230.173.136) |
| 19:32:30 | <Zetagon> | I guess they are similar enough that I can say they are basically the same |
| 19:33:22 | × | Bakun quits (~bakun@51.15.0.88) (Ping timeout: 246 seconds) |
| 19:33:32 | <dminuoso> | Zetagon: You'd have to say what the terms precisely refer to. |
| 19:33:42 | <dminuoso> | Or, where you picked them up. |
| 19:34:16 | <dolio> | Well, I would technically say they are two different things. "Algebraic" is about what things count as 'effects', and "extensible" is about tracking and combining individual effect specifications. |
| 19:35:31 | → | Bakun joins (~bakun@51.15.0.88) |
| 19:35:38 | → | xerox_ joins (~xerox@unaffiliated/xerox) |
| 19:35:39 | <dolio> | However, any effect system that isn't "extensible" will probably be rejected immediately as not being practical. |
| 19:36:20 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 19:36:46 | <Zetagon> | Things like polysemy and fused effects, or things like Microsoft Research's Koka |
| 19:37:10 | <Zetagon> | I just stumbled upon these stuff and thought they sound very interesting but don't know what to call them |
| 19:37:13 | → | bahamas joins (~lucian@188.24.181.166) |
| 19:37:13 | × | bahamas quits (~lucian@188.24.181.166) (Changing host) |
| 19:37:13 | → | bahamas joins (~lucian@unaffiliated/bahamas) |
| 19:37:20 | <dolio> | Because you'd have to manually write the State effect and the State+Exception effect, and the Exception effect and mediate between them by hand. |
| 19:37:43 | → | conal joins (~conal@64.71.133.70) |
| 19:41:59 | → | untseac joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 19:42:30 | <untseac> | regarding yesterday questions, looks like mongodb yesod template is the one that is archaic. the default sqlite is okay. |
| 19:42:50 | <dolio> | I guess I could be wrong about that, though, because people actually work that way in Haskell sometimes. |
| 19:43:24 | <dolio> | Although not to quite that extreme a degree. |
| 19:46:23 | × | Bakun quits (~bakun@51.15.0.88) (Read error: Connection reset by peer) |
| 19:47:09 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 19:49:26 | × | dftxbs3e quits (~dftxbs3e@unaffiliated/dftxbs3e) (Remote host closed the connection) |
| 19:49:40 | → | dftxbs3e joins (~dftxbs3e@unaffiliated/dftxbs3e) |
| 19:51:06 | → | Bakun joins (~bakun@51.15.0.88) |
| 19:51:53 | × | oxide quits (~lambda@unaffiliated/mclaren) (Ping timeout: 260 seconds) |
| 19:52:39 | × | m0rphism quits (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) (Quit: WeeChat 2.7.1) |
| 19:52:48 | × | nyd quits (~lpy@unaffiliated/elysian) (Ping timeout: 260 seconds) |
| 19:53:24 | → | oxide joins (~lambda@unaffiliated/mclaren) |
| 19:58:22 | × | bahamas quits (~lucian@unaffiliated/bahamas) (Ping timeout: 256 seconds) |
| 20:05:13 | → | winircuser-559 joins (~winircuse@208.65.191.38) |
| 20:05:18 | × | AlterEgo- quits (~ladew@124-198-158-163.dynamic.caiway.nl) (Quit: Leaving) |
| 20:06:47 | × | winircuser-559 quits (~winircuse@208.65.191.38) (Client Quit) |
| 20:06:52 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 256 seconds) |
| 20:08:15 | → | aarvar joins (~foewfoiew@c.24.56.239.179.static.broadstripe.net) |
| 20:09:36 | × | wroathe quits (~wroathe@c-73-24-27-54.hsd1.mn.comcast.net) (Quit: leaving) |
| 20:18:08 | ← | aarvar parts (~foewfoiew@c.24.56.239.179.static.broadstripe.net) () |
| 20:18:13 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Quit: Someone ate my pie) |
| 20:18:23 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 20:18:23 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 20:18:23 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 20:18:37 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 20:19:16 | → | conal joins (~conal@64.71.133.70) |
| 20:21:21 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 20:23:55 | → | conal joins (~conal@64.71.133.70) |
| 20:25:05 | × | elliott_ quits (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) (Ping timeout: 240 seconds) |
| 20:27:14 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 20:27:23 | → | rprije joins (~rprije@203.214.95.251) |
| 20:29:32 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
| 20:29:54 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 20:30:36 | × | Bakun quits (~bakun@51.15.0.88) (Read error: Connection reset by peer) |
| 20:30:37 | → | daenth joins (~daenth@136.36.157.210) |
| 20:31:07 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 20:34:27 | × | knupfer quits (~Thunderbi@200116b82c81430000cc9ce4231ed805.dip.versatel-1u1.de) (Ping timeout: 260 seconds) |
| 20:35:37 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 20:36:50 | → | conal joins (~conal@64.71.133.70) |
| 20:37:29 | × | geekosaur quits (82659a0e@host154-014.vpn.uakron.edu) (Remote host closed the connection) |
| 20:39:42 | → | ashbreeze joins (~mark@72-161-254-60.dyn.centurytel.net) |
| 20:41:58 | × | _ashbreeze_ quits (~mark@72-161-254-60.dyn.centurytel.net) (Ping timeout: 246 seconds) |
| 20:42:02 | × | leungbk quits (~user@2605:e000:1315:706:cc8c:f2b3:1a5a:360) (Ping timeout: 260 seconds) |
| 20:43:16 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 20:43:25 | × | GyroW quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 264 seconds) |
| 20:43:33 | → | GyroW_ joins (~GyroW@d54C03E98.access.telenet.be) |
| 20:43:33 | × | GyroW_ quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 20:43:33 | → | GyroW_ joins (~GyroW@unaffiliated/gyrow) |
| 20:44:29 | → | aarvar joins (~foewfoiew@c.24.56.239.179.static.broadstripe.net) |
| 20:45:08 | × | ashbreeze quits (~mark@72-161-254-60.dyn.centurytel.net) (Ping timeout: 258 seconds) |
| 20:46:26 | ← | aarvar parts (~foewfoiew@c.24.56.239.179.static.broadstripe.net) () |
| 20:53:33 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:55:12 | × | lowryder quits (~djlowry@web603.webfaction.com) (Remote host closed the connection) |
| 20:58:47 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Remote host closed the connection) |
| 21:00:01 | × | Ahmuck quits (~Ahmuck@178.162.204.214) () |
| 21:00:17 | → | ensyde joins (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) |
| 21:00:53 | × | DataComputist quits (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) (Quit: Leaving...) |
| 21:02:42 | × | coot quits (~coot@37.30.50.102.nat.umts.dynamic.t-mobile.pl) (Quit: coot) |
| 21:02:58 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 21:03:46 | → | DataComputist joins (~lumeng@static-50-43-26-251.bvtn.or.frontiernet.net) |
| 21:05:03 | × | hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds) |
| 21:05:40 | → | thir joins (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) |
| 21:06:18 | × | hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Remote host closed the connection) |
| 21:06:43 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Ping timeout: 240 seconds) |
| 21:06:44 | → | hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus) |
| 21:07:39 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 21:09:33 | → | conal joins (~conal@64.71.133.70) |
| 21:10:02 | × | thir quits (~thir@p200300f27f02580060eb7dde324e54c8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 21:11:31 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 21:12:08 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 21:17:44 | × | ChaiTRex quits (~ChaiTRex@gateway/tor-sasl/chaitrex) (Remote host closed the connection) |
| 21:18:16 | → | ChaiTRex joins (~ChaiTRex@gateway/tor-sasl/chaitrex) |
| 21:19:02 | → | GyroW joins (~GyroW@d54C03E98.access.telenet.be) |
| 21:19:02 | × | GyroW quits (~GyroW@d54C03E98.access.telenet.be) (Changing host) |
| 21:19:02 | → | GyroW joins (~GyroW@unaffiliated/gyrow) |
| 21:19:20 | → | solonarv joins (~solonarv@anancy-651-1-202-101.w109-217.abo.wanadoo.fr) |
| 21:19:34 | × | GyroW_ quits (~GyroW@unaffiliated/gyrow) (Ping timeout: 272 seconds) |
| 21:21:24 | → | BusError1 joins (~BusError@185.163.110.116) |
| 21:24:52 | × | chaosmasttter quits (~chaosmast@p200300c4a711b0018861c787729f3b81.dip0.t-ipconnect.de) (Quit: WeeChat 2.9) |
| 21:26:42 | → | proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net) |
| 21:30:36 | × | LKoen quits (~LKoen@81.255.219.130) (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”) |
| 21:30:37 | <proofofme> | Can you define types from operations done on other types? For example, there's `data Financial = Financial double -- units in '$'`, `data Rate = Rate double --units in '$/lb'`, and `data Weight = Weight double -- units in lbs`. Can you do something like `amount (a Financial type) = rate * weight`? I am getting some mismatched type errors from this. |
| 21:33:13 | <ski> | the normal `*' only takes two things of the same type |
| 21:38:04 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 21:38:25 | → | hseg joins (~gesh@185.120.126.55) |
| 21:38:50 | <monochrom> | If you bothered to use types to distinguish between money, weight, and money-per-weight, it stands to reason to also define your own Rate -> Weight -> Financial so you don't accidentally do "multiply money money-per-weight" |
| 21:39:03 | <hseg> | is there a way to use @-patterns along with view patterns to bind intermediate values? |
| 21:39:23 | <hseg> | i.e. would like sth like (map Just -> ls@(pad n -> pls)) |
| 21:39:49 | → | m0rphism joins (~m0rphism@HSI-KBW-046-005-177-122.hsi8.kabel-badenwuerttemberg.de) |
| 21:41:57 | <ski> | > let (negate -> x@((^ 2) -> y)) = 2 in (x,y) |
| 21:42:00 | <lambdabot> | (-2,4) |
| 21:42:17 | <hseg> | huh. it works |
| 21:42:26 | <hseg> | happy surprise |
| 21:42:56 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 260 seconds) |
| 21:43:22 | × | Gerula quits (~Gerula@unaffiliated/gerula) (Remote host closed the connection) |
| 21:43:35 | × | xintron quits (~xintron@unaffiliated/xintron) (Quit: Ping timeout (120 seconds)) |
| 21:43:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:44:01 | → | xintron joins (~xintron@unaffiliated/xintron) |
| 21:44:37 | × | Zetagon quits (~leo@c151-177-52-233.bredband.comhem.se) (Remote host closed the connection) |
| 21:45:23 | <hseg> | hrmph. unfortunately, i can't use where-bound variables in view patterns. |
| 21:45:31 | <hseg> | meh. was a bit of golfing anyway |
| 21:45:46 | → | Sheilong joins (uid293653@gateway/web/irccloud.com/x-ufuazzkmfwuyelkh) |
| 21:46:28 | <hseg> | (use case was c (map Just -> ls@(pad n -> pls)) (map Just -> ms@(pad n -> pms)) (map Just -> sort -> ns) = ... where n = length ns) |
| 21:49:08 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 21:49:17 | → | mdunnio joins (~mdunnio@208.59.170.5) |
| 21:49:30 | × | nbloomf quits (~nbloomf@2600:1700:83e0:1f40:8576:1536:5132:aae7) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:52:21 | × | eedgit2 quits (~chat.free@95.179.237.21) (Remote host closed the connection) |
| 21:52:41 | → | eedgit2 joins (~chat.free@95.179.237.21) |
| 21:52:45 | × | mdunnio_ quits (~mdunnio@208.59.170.5) (Ping timeout: 240 seconds) |
| 21:56:00 | × | mdunnio quits (~mdunnio@208.59.170.5) (Read error: Connection reset by peer) |
| 21:56:37 | → | mdunnio joins (~mdunnio@208.59.170.5) |
| 21:57:13 | → | mav1 joins (~mav@ipservice-092-217-043-250.092.217.pools.vodafone-ip.de) |
| 21:58:20 | × | Gurkenglas quits (~Gurkengla@unaffiliated/gurkenglas) (Ping timeout: 260 seconds) |
| 21:58:44 | × | mav1 quits (~mav@ipservice-092-217-043-250.092.217.pools.vodafone-ip.de) (Client Quit) |
| 22:01:24 | × | Mouse34 quits (8137c814@LLPROXY.LL.MIT.EDU) (Remote host closed the connection) |
| 22:01:25 | → | mav1 joins (~mav@ipservice-092-217-043-250.092.217.pools.vodafone-ip.de) |
| 22:01:27 | × | hseg quits (~gesh@185.120.126.55) (Quit: WeeChat 2.9) |
| 22:02:08 | <proofofme> | interesting ... playing around with some of these concepts shortly |
| 22:02:25 | × | untseac quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 240 seconds) |
| 22:03:13 | × | xsperry quits (~as@unaffiliated/xsperry) (Ping timeout: 264 seconds) |
| 22:03:14 | <int-e> | hseg: you can have some fun with pattern guards whose patterns are plain variables: c (map Just -> ls) (map Just -> ms) (map Just -> sort -> ns) | n <- length ns, pls <- pad n ls, pms <- pad n ms = ... |
| 22:03:26 | × | ensyde quits (~ensyde@2600:1702:2e30:1a40:f09c:a012:516e:b253) (Ping timeout: 246 seconds) |
| 22:03:49 | → | xsperry joins (~as@unaffiliated/xsperry) |
| 22:05:32 | → | Gerula joins (~Gerula@unaffiliated/gerula) |
| 22:05:32 | × | jgt quits (~jgt@77-255-14-254.adsl.inetia.pl) (Read error: Connection reset by peer) |
| 22:06:12 | → | jgt joins (~jgt@77-255-14-254.adsl.inetia.pl) |
| 22:07:36 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 22:08:04 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 22:08:13 | → | clog joins (~nef@bespin.org) |
| 22:10:59 | → | kupi joins (uid212005@gateway/web/irccloud.com/x-fmxlaxhuszjyrjhy) |
| 22:11:48 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 22:12:01 | <kupi> | hi. in ghci ":module + Data.Ratio" and "import Data.Ratio" are equivalent? |
| 22:12:15 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 22:12:37 | × | taurux quits (~taurux@net-109-115-33-211.cust.vodafonedsl.it) (Ping timeout: 246 seconds) |
| 22:13:02 | <monochrom> | Yes |
| 22:13:48 | → | taurux joins (~taurux@net-93-151-195-211.cust.vodafonedsl.it) |
| 22:16:43 | × | __monty__ quits (~toonn@unaffiliated/toonn) (Quit: leaving) |
| 22:16:57 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Remote host closed the connection) |
| 22:17:48 | × | nados quits (~dan@107-190-41-58.cpe.teksavvy.com) (Read error: Connection reset by peer) |
| 22:18:19 | → | nados joins (~dan@107-190-41-58.cpe.teksavvy.com) |
| 22:19:09 | × | ralejs_ quits (~ralejs@2620:10d:c093:400::5:c80) (Quit: Textual IRC Client: www.textualapp.com) |
| 22:23:10 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 22:28:10 | → | lucasb joins (uid333435@gateway/web/irccloud.com/x-rbuougcnirltldfu) |
| 22:31:06 | × | proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection) |
| 22:31:13 | → | fryguybob joins (~fryguybob@cpe-74-65-31-113.rochester.res.rr.com) |
| 22:33:58 | hackage | fourmolu 0.3.0.0 - A formatter for Haskell source code https://hackage.haskell.org/package/fourmolu-0.3.0.0 (GeorgeThomas) |
| 22:34:50 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 22:36:37 | × | Ariakenom quits (~Ariakenom@h-155-4-221-50.NA.cust.bahnhof.se) (Quit: Leaving) |
| 22:36:39 | → | conal joins (~conal@64.71.133.70) |
| 22:40:26 | × | mav1 quits (~mav@ipservice-092-217-043-250.092.217.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
| 22:42:25 | × | danvet_ quits (~Daniel@2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa) (Ping timeout: 272 seconds) |
| 22:46:06 | × | DavidEichmann quits (~david@43.240.198.146.dyn.plus.net) (Ping timeout: 256 seconds) |
| 22:46:20 | → | _ashbreeze_ joins (~mark@72-161-51-235.dyn.centurytel.net) |
| 22:46:29 | → | olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber) |
| 22:48:31 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:49:16 | × | dhouthoo_ quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9) |
| 22:53:39 | × | jespada quits (~jespada@90.254.245.15) (Ping timeout: 265 seconds) |
| 22:54:24 | × | justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Quit: WeeChat 2.7.1) |
| 22:56:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
| 22:57:05 | → | jespada joins (~jespada@90.254.245.15) |
| 23:00:55 | × | revprez_anzio quits (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
| 23:01:19 | × | nineonine quits (~nineonine@216.81.48.202) (Read error: Connection reset by peer) |
| 23:01:19 | → | revprez_1nzio joins (~revprez_a@pool-108-49-213-40.bstnma.fios.verizon.net) |
| 23:01:37 | → | nineonine joins (~nineonine@216.81.48.202) |
| 23:02:05 | × | iteratee quits (~kyle@162.211.154.4) (Read error: Connection reset by peer) |
| 23:02:11 | → | iteratee joins (~kyle@162.211.154.4) |
| 23:02:19 | <kupi> | in ghci how to undo ":set +t"? |
| 23:02:47 | <hpc> | use :unset |
| 23:02:55 | <hpc> | see also, :help |
| 23:04:17 | × | fre quits (~freusque@104.238.190.229) (Ping timeout: 265 seconds) |
| 23:04:46 | × | iomonad quits (~iomonad@unaffiliated/iomonad) (Ping timeout: 265 seconds) |
| 23:05:15 | → | fre joins (~freusque@104.238.190.229) |
| 23:05:28 | hackage | formatting 7.1.0 - Combinator-based type-safe formatting (like printf() or FORMAT) https://hackage.haskell.org/package/formatting-7.1.0 (AlexChapman) |
| 23:08:09 | → | wildlander joins (~wildlande@unaffiliated/wildlander) |
| 23:08:11 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:09:31 | → | iomonad joins (~iomonad@unaffiliated/iomonad) |
| 23:10:28 | → | justanotheruser joins (~justanoth@unaffiliated/justanotheruser) |
| 23:13:12 | → | proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net) |
| 23:15:17 | → | crestfallen joins (~jvw@135-180-15-188.fiber.dynamic.sonic.net) |
| 23:16:33 | × | cgfbee quits (~bot@oc1.itim-cj.ro) (Ping timeout: 258 seconds) |
| 23:18:50 | <crestfallen> | hi please assist me going through this unification exercise. It's from SO and someone here helped me earlier though I still don't understand a few things, for starters: how g is both g :: c -> b -> a and g :: d -> c |
| 23:18:56 | <crestfallen> | https://github.com/varreli/haskell/blob/master/handEval/unify_f_g_h.txt |
| 23:20:12 | <hpc> | type variables can unify with other type variables |
| 23:20:19 | <hpc> | they're placeholders with names |
| 23:20:35 | × | natechan quits (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Read error: Connection reset by peer) |
| 23:20:35 | <hpc> | imagine (+) :: Num a => a -> a, and (+) :: Num b => b -> b |
| 23:20:49 | × | justache quits (~justache@unaffiliated/justache) (Quit: Ping timeout (120 seconds)) |
| 23:20:52 | × | proofofme quits (~proofofme@184-96-74-65.hlrn.qwest.net) (Remote host closed the connection) |
| 23:20:52 | <Axman6> | unary plus++ |
| 23:21:02 | × | mdunnio quits (~mdunnio@208.59.170.5) (Read error: Connection reset by peer) |
| 23:21:04 | → | proofofme joins (~proofofme@184-96-74-65.hlrn.qwest.net) |
| 23:21:08 | → | natechan joins (~natechan@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
| 23:21:13 | <hpc> | whoops, you know what i mean |
| 23:21:25 | <hpc> | anyhoo |
| 23:21:35 | → | mdunnio joins (~mdunnio@208.59.170.5) |
| 23:21:50 | <hpc> | when you look at g :: c -> b -> a, it's actually g :: c -> (b -> a) |
| 23:21:55 | × | __skn- quits (~sunil@sec.nimmagadda.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:21:57 | × | incertia quits (~incertia@d60-65-215-180.col.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in) |
| 23:21:58 | × | quinn quits (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:21:59 | × | mrus quits (~mrus@128.199.6.232) (Quit: Surfing the great wave off Kanagawa) |
| 23:22:06 | → | justache joins (~justache@unaffiliated/justache) |
| 23:22:10 | <hpc> | and if you put that side by side with g :: d -> c |
| 23:22:11 | → | __skn joins (~sunil@sec.nimmagadda.net) |
| 23:22:17 | → | quinn joins (~quinn@c-73-223-224-163.hsd1.ca.comcast.net) |
| 23:22:17 | → | mrus joins (~mrus@128.199.6.232) |
| 23:22:19 | → | incertia joins (~incertia@d60-65-215-180.col.wideopenwest.com) |
| 23:22:31 | <hpc> | then you have the left (->) lining up with the only (->) |
| 23:22:39 | × | urdh quits (~urdh@unaffiliated/urdh) (Ping timeout: 265 seconds) |
| 23:22:40 | <hpc> | and c = d, and c = (b -> a) |
| 23:23:11 | <hpc> | or well, upper c = lower d, upper (b -> a) = lower c |
| 23:23:14 | <crestfallen> | hpc thanks one moment |
| 23:23:38 | × | perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 260 seconds) |
| 23:23:38 | × | nyaomi quits (~naomi@cpe-74-75-6-125.maine.res.rr.com) (Ping timeout: 260 seconds) |
| 23:23:38 | × | gareth__ quits (~gareth__@104.236.161.134) (Ping timeout: 260 seconds) |
| 23:23:51 | × | nineonine quits (~nineonine@216.81.48.202) (Remote host closed the connection) |
| 23:24:13 | × | CindyLinz quits (~cindy_utf@112.121.78.20) (Ping timeout: 260 seconds) |
| 23:24:13 | × | mnrmnaugh quits (~mnrmnaugh@unaffiliated/mnrmnaugh) (Ping timeout: 260 seconds) |
| 23:24:13 | × | jameekim1 quits (~jameekim@mx.nodaplife.me) (Ping timeout: 260 seconds) |
| 23:24:41 | × | AWizzArd quits (~code@unaffiliated/awizzard) (Ping timeout: 260 seconds) |
| 23:24:44 | → | urdh joins (~urdh@unaffiliated/urdh) |
| 23:24:46 | → | CindyLinz joins (~cindy_utf@112.121.78.20) |
| 23:24:48 | <crestfallen> | hpc what is the logic behind assigning the whole expression to a on line 3 |
| 23:24:56 | → | jameekim1 joins (~jameekim@mx.nodaplife.me) |
| 23:25:23 | × | tomboy64 quits (~tomboy64@gateway/tor-sasl/tomboy64) (Ping timeout: 240 seconds) |
| 23:25:23 | × | ystael quits (~ystael@209.6.50.55) (Ping timeout: 260 seconds) |
| 23:25:25 | × | jgt quits (~jgt@77-255-14-254.adsl.inetia.pl) (Ping timeout: 246 seconds) |
| 23:25:28 | → | cgfbee joins (~bot@oc1.itim-cj.ro) |
| 23:25:29 | <Axman6> | you just need a name for the result of the whole expression, and that type will be the ultimate return type of f |
| 23:25:45 | × | esg quits (~emil@esg.xen.prgmr.com) (Ping timeout: 258 seconds) |
| 23:25:53 | <hpc> | ^ that |
| 23:26:04 | <hpc> | the expression has a type, you just haven't figured out what it is yet |
| 23:26:04 | <Axman6> | f :: ? -> ?? -> ??? -> ???? -> a |
| 23:26:07 | <hpc> | but you can give it a name |
| 23:26:13 | → | tomboy64 joins (~tomboy64@gateway/tor-sasl/tomboy64) |
| 23:26:17 | <hpc> | and that name is a, because why not |
| 23:26:30 | → | esg joins (~emil@esg.xen.prgmr.com) |
| 23:27:27 | <hpc> | as you dig deeper into the expression you build constraints on what a can actually be |
| 23:27:31 | <hpc> | and then you unify those constraints |
| 23:27:54 | <hpc> | it's essentially solving a system of equations |
| 23:28:21 | <crestfallen> | yeah thanks ok so the g on line 11 is the g in (g x) getting expanded, right? |
| 23:28:35 | → | snakemas1 joins (~snakemast@213.100.206.23) |
| 23:28:47 | → | gareth__ joins (~gareth__@104.236.161.134) |
| 23:29:25 | → | nyaomi joins (~naomi@cpe-74-75-6-125.maine.res.rr.com) |
| 23:29:30 | <crestfallen> | then the g on line 14 is the leftmost g in the expression |
| 23:29:37 | × | mdunnio quits (~mdunnio@208.59.170.5) (Read error: Connection reset by peer) |
| 23:30:12 | → | mdunnio joins (~mdunnio@208.59.170.5) |
| 23:30:17 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:30:54 | → | ystael joins (~ystael@209.6.50.55) |
| 23:31:08 | <hpc> | something like that, that part's weirdly written |
| 23:31:17 | <hpc> | but yeah, you're building constraints from two different applciations of g |
| 23:31:18 | × | pera quits (~pera@unaffiliated/pera) (Ping timeout: 272 seconds) |
| 23:31:51 | <crestfallen> | hpc which part? pls explain why it's weird and better alternative |
| 23:33:08 | → | perrier-jouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 23:33:08 | → | mnrmnaugh joins (~mnrmnaugh@unaffiliated/mnrmnaugh) |
| 23:33:13 | × | snakemas1 quits (~snakemast@213.100.206.23) (Ping timeout: 264 seconds) |
| 23:33:15 | → | AWizzArd joins (~code@gehrels.uberspace.de) |
| 23:33:22 | <crestfallen> | There's this algorithm W in ghci, I'd like to understand this aspect of haskell |
| 23:35:01 | <hpc> | just that i can't tell which g is which, but to be fair, i am not reading this paste very carefully, most of explaining this is kind of autopilot for me at this point :P |
| 23:35:53 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
| 23:39:37 | <crestfallen> | hpc it came from this SO : https://stackoverflow.com/questions/50777884/manual-type-inference-in-haskell/50778324 |
| 23:40:03 | <crestfallen> | it goes on to assign y :: e |
| 23:40:32 | × | raehik quits (~raehik@cpc96984-rdng25-2-0-cust109.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 23:41:40 | <crestfallen> | I see e in these unifying exercises: does that mean partial application like (-> e) or something? |
| 23:46:02 | → | elliott_ joins (~elliott@pool-108-51-141-12.washdc.fios.verizon.net) |
| 23:46:54 | → | macrover joins (~macrover@ip70-189-231-35.lv.lv.cox.net) |
| 23:48:11 | × | oisdk quits (~oisdk@2001:bb6:3329:d100:a9e4:32d1:231e:16a5) (Quit: oisdk) |
| 23:53:00 | × | macrover quits (~macrover@ip70-189-231-35.lv.lv.cox.net) (Remote host closed the connection) |
| 23:54:32 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 23:54:33 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 23:55:02 | → | conal joins (~conal@64.71.133.70) |
| 23:55:28 | × | dcoutts_ quits (~duncan@33.14.75.194.dyn.plus.net) (Ping timeout: 260 seconds) |
| 23:55:42 | × | mdunnio quits (~mdunnio@208.59.170.5) (Remote host closed the connection) |
| 23:57:46 | <proofofme> | do y'all know any good Haskell bindings for MapBox? |
| 23:59:07 | → | mirrorbird joins (~psutcliff@2a00:801:42b:7891:16b1:e53f:55b2:15e1) |
| 23:59:08 | × | ystael quits (~ystael@209.6.50.55) (Read error: Connection reset by peer) |
| 23:59:35 | → | pera joins (~pera@unaffiliated/pera) |
All times are in UTC on 2020-10-13.