2021-07-31 00:00:02 +0200 | safinaskar | (~user@109.252.55.35) |
2021-07-31 00:00:20 +0200 | <safinaskar> | webchat.freenode.net doesn't work |
2021-07-31 00:00:23 +0200 | <safinaskar> | do you know why? |
2021-07-31 00:00:49 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Quit: ERC (IRC client for Emacs 28.0.50)) |
2021-07-31 00:01:41 +0200 | l-monninger | (~l-monning@c-73-170-133-54.hsd1.ca.comcast.net) |
2021-07-31 00:02:24 +0200 | l-monninger | (~l-monning@c-73-170-133-54.hsd1.ca.comcast.net) (Client Quit) |
2021-07-31 00:02:25 +0200 | <meejah> | safinaskar: "freenode is dead", approximately? |
2021-07-31 00:02:35 +0200 | jneira_ | (~jneira_@28.red-80-28-169.staticip.rima-tde.net) |
2021-07-31 00:02:39 +0200 | ubert | (~Thunderbi@91.141.35.41.wireless.dyn.drei.com) (Quit: ubert) |
2021-07-31 00:02:50 +0200 | <geekosaur> | what pointed you at webchat.freenode.net? |
2021-07-31 00:02:57 +0200 | ubert | (~Thunderbi@91.141.35.41.wireless.dyn.drei.com) |
2021-07-31 00:03:06 +0200 | <yushyin> | https://web.libera.chat/ use this |
2021-07-31 00:03:11 +0200 | <geekosaur> | it should prb\obably point to web.libera.chat these days |
2021-07-31 00:03:36 +0200 | <safinaskar> | well, i found on augeas site that they are using freenode |
2021-07-31 00:03:39 +0200 | <safinaskar> | so i am asking |
2021-07-31 00:04:38 +0200 | <geekosaur> | indeed they appear not to have moved here |
2021-07-31 00:05:31 +0200 | <yushyin> | maybe ask the freenode support what's wrong with it |
2021-07-31 00:07:05 +0200 | <DigitalKiwi> | lol good luck |
2021-07-31 00:07:11 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection) |
2021-07-31 00:07:20 +0200 | ubert | (~Thunderbi@91.141.35.41.wireless.dyn.drei.com) (Ping timeout: 256 seconds) |
2021-07-31 00:08:21 +0200 | <qrpnxz> | it's called freenode, not freesupport /s |
2021-07-31 00:08:57 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-31 00:14:10 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) |
2021-07-31 00:15:33 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-31 00:16:34 +0200 | <pavonia> | freenode seems to enforce SASL connections now, might be related to this |
2021-07-31 00:18:46 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 00:18:48 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) |
2021-07-31 00:18:52 +0200 | <safinaskar> | pavonia: yes, but even webchat.freenode.net doesn't work! |
2021-07-31 00:19:12 +0200 | gabiruh_ | gabiruh |
2021-07-31 00:19:18 +0200 | <safinaskar> | i. e. freenode's own official web client fails to properly connect to freenode servers! |
2021-07-31 00:20:02 +0200 | <pavonia> | Are you trying to connect via your account? |
2021-07-31 00:20:57 +0200 | <monochrom> | That reminds me. "doesn't work" has not been defined. This has degenerated to a telepathic speculation game. |
2021-07-31 00:21:26 +0200 | <monochrom> | I mean, even if we ignore the fact that this is not a freenode tech support service. |
2021-07-31 00:22:31 +0200 | sagax | (~sagax@213.138.71.146) (Ping timeout: 268 seconds) |
2021-07-31 00:23:18 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-07-31 00:23:32 +0200 | <DigitalKiwi> | this is particularly amusing considering what freenode did to this channel and especially edwardk lol |
2021-07-31 00:25:27 +0200 | <pavonia> | What did they do to edwardk? |
2021-07-31 00:29:51 +0200 | <DigitalKiwi> | https://twitter.com/kmett/status/1403428202173796353 |
2021-07-31 00:30:58 +0200 | <monochrom> | Thanks. Yikes. |
2021-07-31 00:33:27 +0200 | <sm> | safinaskar: freenode is dead, you should forget it |
2021-07-31 00:33:59 +0200 | <geekosaur> | augeas appears to still be there |
2021-07-31 00:34:13 +0200 | <geekosaur> | which is what safinaskar was looking for |
2021-07-31 00:35:00 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 00:35:11 +0200 | <geekosaur> | (of course it may be living up to its nameā¦) |
2021-07-31 00:36:10 +0200 | <geekosaur> | or down to, as the case may be |
2021-07-31 00:36:33 +0200 | <sm> | I found only https://hackage.haskell.org/package/augeas from 2012 |
2021-07-31 00:37:45 +0200 | <sm> | ah, this page: https://augeas.net/developers.html |
2021-07-31 00:39:29 +0200 | FragByte | (~christian@user/fragbyte) (Quit: Quit) |
2021-07-31 00:40:04 +0200 | <sm> | and they don't seem to be on libera at all so maybe they really are a hold out, wow |
2021-07-31 00:40:32 +0200 | chomwitt | (~chomwitt@2a02:587:dc0c:a300:12c3:7bff:fe6d:d374) |
2021-07-31 00:40:47 +0200 | theproffesor | (~theproffe@2601:282:847f:8010::3a29) (Changing host) |
2021-07-31 00:40:47 +0200 | theproffesor | (~theproffe@user/theproffesor) |
2021-07-31 00:40:56 +0200 | <sm> | no I think they're just not too active |
2021-07-31 00:41:14 +0200 | FragByte | (~christian@user/fragbyte) |
2021-07-31 00:41:26 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:21b8:dc17:ae59:fdd6) |
2021-07-31 00:41:38 +0200 | <sm> | send em a bug report safinaskar |
2021-07-31 00:42:49 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-07-31 00:43:02 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:4c53:a999:c700:5bd) (Ping timeout: 256 seconds) |
2021-07-31 00:43:10 +0200 | smtnet3 | (~asdfasdfa@202.36.244.28) (Remote host closed the connection) |
2021-07-31 00:43:23 +0200 | <int-e> | https://nitter.eu/kurtseifried/status/1398712468394811395#m is two months old, still relevant |
2021-07-31 00:43:51 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:ef34:239:52ff:ac71) |
2021-07-31 00:44:08 +0200 | acidjnk | (~acidjnk@p200300d0c72b9576e9974425ad52911e.dip0.t-ipconnect.de) |
2021-07-31 00:45:06 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:948c:3207:efde:714f) (Ping timeout: 240 seconds) |
2021-07-31 00:45:15 +0200 | newhaskeller | (~newhaskel@2804:14c:c0:8dbb:94e0:d2eb:43f:5833) |
2021-07-31 00:45:41 +0200 | <pavonia> | int-e++ (for posting nitter instead of twitter links) |
2021-07-31 00:47:00 +0200 | tpefreedom | (~tsomers@98-125-225-122.dyn.centurytel.net) |
2021-07-31 00:47:18 +0200 | <tpefreedom> | Are there any GUI libraries that are not based on OO? |
2021-07-31 00:47:28 +0200 | haskl | (~haskl@98.37.78.63) (Ping timeout: 272 seconds) |
2021-07-31 00:48:19 +0200 | <pavonia> | FRP libraries aren't, I guess |
2021-07-31 00:48:24 +0200 | haskl | (~haskl@98.37.78.63) |
2021-07-31 00:48:26 +0200 | <geekosaur> | there's some FRP libraries |
2021-07-31 00:48:38 +0200 | <tpefreedom> | FRP libraries? |
2021-07-31 00:48:59 +0200 | <geekosaur> | some of which wrap originally OO or OO-like libs, but I think some are direct |
2021-07-31 00:49:06 +0200 | <geekosaur> | functional reactive programming |
2021-07-31 00:50:38 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 250 seconds) |
2021-07-31 00:50:49 +0200 | <delYsid> | wait, does "cabal build" of a lib implicitly install it somehow? |
2021-07-31 00:51:12 +0200 | <monochrom> | No. |
2021-07-31 00:51:35 +0200 | <monochrom> | Even "cabal install" doesn't install a lib unless you add "--lib". |
2021-07-31 00:51:36 +0200 | pesada | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) |
2021-07-31 00:52:24 +0200 | <monochrom> | At least not in the "made available for bare-hand ghci" sense. |
2021-07-31 00:53:03 +0200 | <monochrom> | But "cabal build" is extremely local to your source tree or build tree. |
2021-07-31 00:53:23 +0200 | <delYsid> | I distinctly remember o-clock failed to build with ghc 9 yesterday. So I PR'ed it, and there hasnt been an upload to hackage yet. But today, the package I work on which depends on o-clock builds fine with ghc 9... |
2021-07-31 00:53:54 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-31 00:53:57 +0200 | <monochrom> | Yes sometimes problems resolves themselves. |
2021-07-31 00:54:02 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) |
2021-07-31 00:54:22 +0200 | <myShoggoth> | Haskell Foundation July Update: https://discourse.haskell.org/t/haskell-foundation-july-update/2812 |
2021-07-31 00:54:28 +0200 | <monochrom> | Sometimes students email me questions when I'm asleep and email me again "I have figured it out" when I wake and check email. :) |
2021-07-31 00:55:08 +0200 | <delYsid> | monochrom: yeah, but this is something different... |
2021-07-31 00:55:08 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 272 seconds) |
2021-07-31 00:55:21 +0200 | oxide | (~lambda@user/oxide) (Quit: oxide) |
2021-07-31 00:55:38 +0200 | <delYsid> | anyway, CI will tell. |
2021-07-31 00:58:42 +0200 | <tpefreedom> | So far, with what little GUI stuff I've done, I've mostly just treated the widget toolkits like other imported libraries with their own built in operations. |
2021-07-31 01:00:05 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-31 01:01:06 +0200 | Null_A | (~null_a@2601:645:8700:2290:44f7:81a6:341:7abe) (Remote host closed the connection) |
2021-07-31 01:03:06 +0200 | pesada | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) (Ping timeout: 240 seconds) |
2021-07-31 01:04:17 +0200 | dhil | (~dhil@195.213.192.47) (Ping timeout: 245 seconds) |
2021-07-31 01:04:56 +0200 | pesada | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) |
2021-07-31 01:06:23 +0200 | qontinuum | (qontinuum@user/qontinuum) |
2021-07-31 01:07:10 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 272 seconds) |
2021-07-31 01:08:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 01:08:19 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-31 01:09:42 +0200 | safinaskar | (~user@109.252.55.35) () |
2021-07-31 01:12:10 +0200 | pesada | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) (Ping timeout: 272 seconds) |
2021-07-31 01:12:53 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-31 01:15:43 +0200 | drd | (~drd@93-39-151-19.ip76.fastwebnet.it) (Ping timeout: 265 seconds) |
2021-07-31 01:16:06 +0200 | qontinuum_ | (qontinuum@user/qontinuum) |
2021-07-31 01:16:12 +0200 | qontinuum | (qontinuum@user/qontinuum) (Ping timeout: 265 seconds) |
2021-07-31 01:16:15 +0200 | qontinuum_ | qontinuum |
2021-07-31 01:23:25 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-31 01:23:27 +0200 | qontinuum | (qontinuum@user/qontinuum) (Ping timeout: 265 seconds) |
2021-07-31 01:24:10 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-31 01:28:23 +0200 | qontinuum | (qontinuum@user/qontinuum) |
2021-07-31 01:31:02 +0200 | gustik | (~gustik@2a01:c844:241f:c020:312a:c22f:e497:698f) (Quit: Leaving) |
2021-07-31 01:32:34 +0200 | qontinuum_ | (qontinuum@user/qontinuum) |
2021-07-31 01:33:00 +0200 | vysn | (~vysn@user/vysn) (Remote host closed the connection) |
2021-07-31 01:33:07 +0200 | qontinuum | (qontinuum@user/qontinuum) (Ping timeout: 265 seconds) |
2021-07-31 01:33:07 +0200 | qontinuum_ | qontinuum |
2021-07-31 01:40:00 +0200 | newhaskeller | (~newhaskel@2804:14c:c0:8dbb:94e0:d2eb:43f:5833) (Quit: Client closed) |
2021-07-31 01:42:00 +0200 | acidjnk | (~acidjnk@p200300d0c72b9576e9974425ad52911e.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2021-07-31 01:42:16 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-31 01:43:30 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 01:46:06 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-31 01:46:18 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-31 01:48:01 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 258 seconds) |
2021-07-31 01:50:31 +0200 | pesada | (~agua@191.177.175.57) |
2021-07-31 01:52:43 +0200 | Core7498 | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-31 01:52:59 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds) |
2021-07-31 01:53:03 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Read error: Connection reset by peer) |
2021-07-31 01:54:00 +0200 | pesada | (~agua@191.177.175.57) (Read error: Connection reset by peer) |
2021-07-31 01:58:54 +0200 | Core9323 | (~Core9323@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) |
2021-07-31 02:03:58 +0200 | Core9323 | (~Core9323@2804:14c:8793:8e2f:48b4:3d09:2f3b:552b) (Read error: Connection reset by peer) |
2021-07-31 02:06:47 +0200 | hegstal | (~hegstal@2a02:c7f:7604:8a00:7f3a:926a:5be5:7f19) (Remote host closed the connection) |
2021-07-31 02:16:03 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) (Quit: Client closed) |
2021-07-31 02:16:26 +0200 | dermato | (~dermatobr@cpe-70-114-219-76.austin.res.rr.com) |
2021-07-31 02:16:26 +0200 | willbush | (~user@47.183.200.14) |
2021-07-31 02:21:39 +0200 | <janus> | tpefreedom: but aren't you supposed to be able to say that about any library? ;) especially in a pure functional language |
2021-07-31 02:22:15 +0200 | <janus> | there are also Elm-clones, i dunno if those count as FRP, i think not. at least not in the way conor elliott (i think?) meant it originally |
2021-07-31 02:22:39 +0200 | <tpefreedom> | janus, I just ignore the object oriented elements and treat them like any standard library function. |
2021-07-31 02:23:06 +0200 | <tpefreedom> | Also, this is in python |
2021-07-31 02:32:01 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Quit: Leaving) |
2021-07-31 02:32:39 +0200 | MQ-17J | (~MQ-17J@69.14.129.206) (Read error: Connection reset by peer) |
2021-07-31 02:32:58 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 02:33:06 +0200 | agua | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) |
2021-07-31 02:33:47 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
2021-07-31 02:34:11 +0200 | Codaraxis | (~Codaraxis@user/codaraxis) |
2021-07-31 02:35:01 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-31 02:35:30 +0200 | pesada | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-31 02:35:37 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-31 02:35:50 +0200 | Core7498 | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 272 seconds) |
2021-07-31 02:37:44 +0200 | agua | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) (Ping timeout: 272 seconds) |
2021-07-31 02:38:06 +0200 | pesada | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Read error: Connection reset by peer) |
2021-07-31 02:38:31 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-31 02:39:06 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-31 02:40:09 +0200 | pesada | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) |
2021-07-31 02:40:16 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 272 seconds) |
2021-07-31 02:42:25 +0200 | P1RATEZ | (piratez@user/p1ratez) |
2021-07-31 02:42:34 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 240 seconds) |
2021-07-31 02:42:48 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-31 02:46:31 +0200 | alx741 | (~alx741@181.196.69.85) (Quit: alx741) |
2021-07-31 02:47:14 +0200 | pesada | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) (Ping timeout: 272 seconds) |
2021-07-31 02:48:49 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Read error: Connection reset by peer) |
2021-07-31 02:49:30 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) |
2021-07-31 02:52:07 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) |
2021-07-31 02:52:08 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
2021-07-31 02:53:08 +0200 | myShoggoth | (~myShoggot@97-120-70-214.ptld.qwest.net) (Client Quit) |
2021-07-31 02:53:15 +0200 | <delYsid> | omg, OverloadedRecordDot |
2021-07-31 02:53:26 +0200 | <delYsid> | this looks wrong |
2021-07-31 02:54:31 +0200 | <yushyin> | :D |
2021-07-31 02:58:17 +0200 | chomwitt | (~chomwitt@2a02:587:dc0c:a300:12c3:7bff:fe6d:d374) (Remote host closed the connection) |
2021-07-31 03:00:47 +0200 | mud | (~mud@user/kadoban) |
2021-07-31 03:02:03 +0200 | kadobanana | (~mud@user/kadoban) (Ping timeout: 265 seconds) |
2021-07-31 03:10:40 +0200 | xff0x | (~xff0x@2001:1a81:532e:4200:ef34:239:52ff:ac71) (Ping timeout: 272 seconds) |
2021-07-31 03:12:05 +0200 | xff0x | (~xff0x@2001:1a81:536d:8c00:2d4:a9e1:415e:5f77) |
2021-07-31 03:21:22 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds) |
2021-07-31 03:22:38 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 272 seconds) |
2021-07-31 03:25:24 +0200 | zeenk | (~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38) (Quit: Konversation terminated!) |
2021-07-31 03:29:28 +0200 | goepsilongo | (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) |
2021-07-31 03:31:09 +0200 | <pavonia> | In what way is this syntax overloaded? |
2021-07-31 03:31:42 +0200 | <dsal> | :t (.) -- this is the common meaning of . |
2021-07-31 03:31:43 +0200 | <lambdabot> | (b -> c) -> (a -> b) -> a -> c |
2021-07-31 03:32:07 +0200 | <c_wraith> | It's not the first overloading of . |
2021-07-31 03:32:11 +0200 | <c_wraith> | But that only makes it worse. |
2021-07-31 03:32:33 +0200 | <c_wraith> | Still won't be as bad as the C++ game "what does const mean here?", but it's pretty silly |
2021-07-31 03:33:07 +0200 | <pavonia> | Hhm, my understanding of the name is that there already is a "record dot" which can be overloaded by enabling the extension |
2021-07-31 03:33:57 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) |
2021-07-31 03:36:16 +0200 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-07-31 03:37:42 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 03:38:53 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 03:39:03 +0200 | <dsal> | I'm not very interested in this particular addition. lens is pretty good for this, though they separated the 'get' and 'update' mechanisms into separate classes with separate behaviors here. That's kind of neat. It's a bit harder to have an update in lens for all reasonable gets. |
2021-07-31 03:41:27 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) (Quit: Client closed) |
2021-07-31 03:42:10 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-07-31 03:44:56 +0200 | <yushyin> | pavonia: it is part of the recorddotsyntax proposal, which was split into two extensions, one of them is OverloadedRecordDot. you can see the changes and discussion here https://github.com/ghc-proposals/ghc-proposals/pull/405 |
2021-07-31 03:48:45 +0200 | <pavonia> | Thanks |
2021-07-31 03:52:24 +0200 | wei2912 | (~wei2912@112.199.250.21) |
2021-07-31 03:57:38 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) (Ping timeout: 265 seconds) |
2021-07-31 03:59:23 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-31 03:59:59 +0200 | berberman_ | (~berberman@user/berberman) |
2021-07-31 04:01:26 +0200 | berberman | (~berberman@user/berberman) (Ping timeout: 268 seconds) |
2021-07-31 04:02:44 +0200 | img | (~img@user/img) |
2021-07-31 04:13:22 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-31 04:21:43 +0200 | xkuru | (~xkuru@user/xkuru) |
2021-07-31 04:25:44 +0200 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2021-07-31 04:25:44 +0200 | FinnElija | Guest8580 |
2021-07-31 04:25:44 +0200 | Guest8580 | (~finn_elij@user/finn-elija/x-0085643) (Killed (copper.libera.chat (Nickname regained by services))) |
2021-07-31 04:25:44 +0200 | finn_elija | FinnElija |
2021-07-31 04:27:58 +0200 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-07-31 04:31:13 +0200 | vicfred_ | (~vicfred@user/vicfred) |
2021-07-31 04:33:40 +0200 | vicfred | (~vicfred@user/vicfred) (Ping timeout: 256 seconds) |
2021-07-31 04:38:47 +0200 | <delYsid> | :t liftM2 |
2021-07-31 04:38:48 +0200 | <lambdabot> | Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r |
2021-07-31 04:40:58 +0200 | <delYsid> | @hoogle (a -> b -> m c) -> m a -> m b -> m c |
2021-07-31 04:40:59 +0200 | <lambdabot> | Control.Monad.HT liftJoin2 :: Monad m => (a -> b -> m c) -> m a -> m b -> m c |
2021-07-31 04:40:59 +0200 | <lambdabot> | Util bind2 :: Monad m => (a -> b -> m c) -> m a -> m b -> m c |
2021-07-31 04:40:59 +0200 | <lambdabot> | Numeric.Decimal bindM2 :: Monad m => (a -> b -> m c) -> m a -> m b -> m c |
2021-07-31 04:42:45 +0200 | gzj | (~GZJ0X@199.193.127.138.16clouds.com) |
2021-07-31 04:44:34 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) |
2021-07-31 04:46:08 +0200 | ddb | (~ddb@2607:5300:61:c67::196) (Quit: WeeChat 3.2) |
2021-07-31 04:46:22 +0200 | ddb | (~ddb@2607:5300:61:c67::196) |
2021-07-31 04:49:16 +0200 | Null_A | (~null_a@67-207-96-2.static.wiline.com) |
2021-07-31 04:52:43 +0200 | ddb | (~ddb@2607:5300:61:c67::196) (Quit: WeeChat 3.2) |
2021-07-31 04:52:57 +0200 | ddb | (~ddb@2607:5300:61:c67::196) |
2021-07-31 04:53:50 +0200 | Patrick18 | (~Patrick18@pool-100-36-167-42.washdc.fios.verizon.net) |
2021-07-31 04:58:16 +0200 | td_ | (~td@94.134.91.212) (Ping timeout: 272 seconds) |
2021-07-31 04:59:23 +0200 | <Patrick18> | Could anyone here help me figure out how to profile builds with cabal? I've tried cabal v2-configure --enable-profiling and then cabal v2-build but I get an error: |
2021-07-31 04:59:43 +0200 | td_ | (~td@muedsl-82-207-238-147.citykom.de) |
2021-07-31 04:59:49 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 05:00:00 +0200 | <Patrick18> | Could not find module 'Prelude' Perhaps you haven't installed the profiling libraries for package 'base-4.12.0.0'? |
2021-07-31 05:00:38 +0200 | <sclv> | Patrick18: how did you install ghc? |
2021-07-31 05:00:48 +0200 | <Patrick18> | ghcup I believe |
2021-07-31 05:01:08 +0200 | <sclv> | ghcup should install profiling libs by default |
2021-07-31 05:01:27 +0200 | <sclv> | sometimes ubuntu installs or the like donāt and you need an additional rpm |
2021-07-31 05:01:40 +0200 | vicfred__ | (~vicfred@user/vicfred) |
2021-07-31 05:02:15 +0200 | <sclv> | āwhich ghcā could help confirm |
2021-07-31 05:03:16 +0200 | <Patrick18> | It's probably not ghcup then. I get /usr/bin/ghc |
2021-07-31 05:04:08 +0200 | vicfred_ | (~vicfred@user/vicfred) (Ping timeout: 250 seconds) |
2021-07-31 05:07:10 +0200 | delYsid | (~user@84-115-55-45.cable.dynamic.surfer.at) (ERC (IRC client for Emacs 27.1.50)) |
2021-07-31 05:09:16 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 258 seconds) |
2021-07-31 05:10:01 +0200 | <Patrick18> | How can I download said profiling libs (including base)? |
2021-07-31 05:10:38 +0200 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-07-31 05:11:55 +0200 | Guest4 | (~Guest4@173-28-193-122.client.mchsi.com) (Quit: Client closed) |
2021-07-31 05:25:16 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-31 05:28:21 +0200 | Patrick18 | (~Patrick18@pool-100-36-167-42.washdc.fios.verizon.net) (Quit: Client closed) |
2021-07-31 05:30:38 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-07-31 05:31:42 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds) |
2021-07-31 05:36:04 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:21b8:dc17:ae59:fdd6) () |
2021-07-31 05:37:37 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 05:39:41 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-07-31 05:40:56 +0200 | qontinuum | (qontinuum@user/qontinuum) (Quit: See ya) |
2021-07-31 05:41:08 +0200 | qontinuum | (qontinuum@user/qontinuum) |
2021-07-31 05:41:54 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-07-31 05:47:50 +0200 | Null_A | (~null_a@67-207-96-2.static.wiline.com) (Read error: Connection reset by peer) |
2021-07-31 05:48:16 +0200 | Null_A | (~null_a@67-207-96-2.static.wiline.com) |
2021-07-31 05:49:42 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-31 05:52:11 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 265 seconds) |
2021-07-31 05:54:07 +0200 | willbush | (~user@47.183.200.14) (Quit: ERC (IRC client for Emacs 28.0.50)) |
2021-07-31 05:55:20 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 272 seconds) |
2021-07-31 05:56:03 +0200 | falafel | (~falafel@pool-96-255-70-50.washdc.fios.verizon.net) (Ping timeout: 265 seconds) |
2021-07-31 06:01:01 +0200 | Nahra` | (~user@static.161.95.99.88.clients.your-server.de) (Ping timeout: 258 seconds) |
2021-07-31 06:02:20 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) |
2021-07-31 06:03:46 +0200 | funsafe | (~funsafe@c-71-59-221-7.hsd1.wa.comcast.net) (Ping timeout: 240 seconds) |
2021-07-31 06:06:03 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:32aa:eb39:2110:e2ea) |
2021-07-31 06:09:31 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 06:09:58 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-07-31 06:10:57 +0200 | gzj | (~GZJ0X@199.193.127.138.16clouds.com) (Remote host closed the connection) |
2021-07-31 06:12:36 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
2021-07-31 06:16:53 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-31 06:20:34 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 258 seconds) |
2021-07-31 06:22:12 +0200 | shredder | (~user@user/shredder) (Quit: quitting) |
2021-07-31 06:24:33 +0200 | shredder | (~user@user/shredder) |
2021-07-31 06:24:36 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-07-31 06:25:40 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-07-31 06:25:41 +0200 | sus | (thelounge@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net) |
2021-07-31 06:26:04 +0200 | img | (~img@user/img) |
2021-07-31 06:26:07 +0200 | sus | (thelounge@user/zeromomentum) |
2021-07-31 06:37:36 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-31 06:42:42 +0200 | Cajun | (~Cajun@user/cajun) |
2021-07-31 06:44:06 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-31 06:50:07 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-31 06:50:29 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) |
2021-07-31 06:52:33 +0200 | tpefreedom | (~tsomers@98-125-225-122.dyn.centurytel.net) (Remote host closed the connection) |
2021-07-31 07:03:44 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 07:04:48 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 07:07:06 +0200 | Brianmancer | (~Neuromanc@user/briandamag) (Ping timeout: 265 seconds) |
2021-07-31 07:26:06 +0200 | P1RATEZ | (piratez@user/p1ratez) (Remote host closed the connection) |
2021-07-31 07:27:45 +0200 | ubert | (~Thunderbi@77.119.223.125.wireless.dyn.drei.com) |
2021-07-31 07:30:09 +0200 | reumeth | (~reumeth@user/reumeth) |
2021-07-31 07:32:57 +0200 | mastarija__ | (~mastarija@31.217.8.174) |
2021-07-31 07:34:49 +0200 | ubert | (~Thunderbi@77.119.223.125.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-07-31 07:35:08 +0200 | ubert | (~Thunderbi@77.119.223.125.wireless.dyn.drei.com) |
2021-07-31 07:36:09 +0200 | matthias1 | (~igloo@cpe-76-170-236-166.socal.res.rr.com) |
2021-07-31 07:40:19 +0200 | matthias1 | (~igloo@cpe-76-170-236-166.socal.res.rr.com) (Remote host closed the connection) |
2021-07-31 07:41:41 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) (Ping timeout: 252 seconds) |
2021-07-31 07:45:47 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 07:46:00 +0200 | MQ-17J | (~MQ-17J@8.6.144.192) |
2021-07-31 07:53:31 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-31 08:01:24 +0200 | fef | (~thedawn@user/thedawn) |
2021-07-31 08:01:56 +0200 | Guest9 | (~Guest9@43.241.144.40) |
2021-07-31 08:02:45 +0200 | Brianmancer | (~Neuromanc@user/briandamag) |
2021-07-31 08:03:06 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) |
2021-07-31 08:07:34 +0200 | wei2912 | (~wei2912@112.199.250.21) (Quit: Lost terminal) |
2021-07-31 08:08:15 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-31 08:09:16 +0200 | mastarija_ | (~mastarija@31.217.8.174) |
2021-07-31 08:12:30 +0200 | mastarija__ | (~mastarija@31.217.8.174) (Ping timeout: 258 seconds) |
2021-07-31 08:14:14 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 252 seconds) |
2021-07-31 08:18:26 +0200 | Meh | (~Meh@202.14.120.94) |
2021-07-31 08:18:50 +0200 | Meh | Guest3079 |
2021-07-31 08:21:39 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-07-31 08:22:39 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds) |
2021-07-31 08:22:51 +0200 | Lord_of_Life_ | Lord_of_Life |
2021-07-31 08:24:56 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-31 08:26:07 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-07-31 08:26:25 +0200 | Guest3079 | (~Meh@202.14.120.94) (Quit: Connection closed) |
2021-07-31 08:28:34 +0200 | MQ-17J | (~MQ-17J@8.6.144.192) (Ping timeout: 240 seconds) |
2021-07-31 08:33:58 +0200 | ubert | (~Thunderbi@77.119.223.125.wireless.dyn.drei.com) (Ping timeout: 258 seconds) |
2021-07-31 08:35:59 +0200 | sagax | (~sagax@213.138.71.146) |
2021-07-31 08:36:59 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Quit: Off to see the wizard.) |
2021-07-31 08:37:39 +0200 | justache | (~justache@user/justache) (Remote host closed the connection) |
2021-07-31 08:38:27 +0200 | justache | (~justache@user/justache) |
2021-07-31 08:38:48 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-31 08:39:36 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2021-07-31 08:39:54 +0200 | qontinuum | (qontinuum@user/qontinuum) (Ping timeout: 265 seconds) |
2021-07-31 08:40:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 08:41:00 +0200 | <aegon> | hmm, i'm trying to multiply to Nat's but its complaining about the kind, am i missing an extension? |
2021-07-31 08:41:09 +0200 | <aegon> | i see * defined for Nats in typelits as a type family |
2021-07-31 08:43:49 +0200 | tomboy64 | (~tomboy64@user/tomboy64) (Read error: Connection reset by peer) |
2021-07-31 08:44:12 +0200 | tomboy64 | (~tomboy64@user/tomboy64) |
2021-07-31 08:46:41 +0200 | Null_A | (~null_a@67-207-96-2.static.wiline.com) () |
2021-07-31 08:47:26 +0200 | <monochrom> | Perhaps NoStarIsType |
2021-07-31 08:48:14 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) (Ping timeout: 272 seconds) |
2021-07-31 08:49:27 +0200 | stenvold | (~stenvold@2001:a61:25f1:6701:a993:a914:786f:a6f5) |
2021-07-31 08:49:47 +0200 | anandprabhu | (~anandprab@45.83.220.206) |
2021-07-31 08:50:42 +0200 | xkuru | (~xkuru@user/xkuru) (Remote host closed the connection) |
2021-07-31 08:52:24 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Remote host closed the connection) |
2021-07-31 08:52:28 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-07-31 08:52:46 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-31 08:53:46 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-07-31 08:55:12 +0200 | anandprabhu | (~anandprab@45.83.220.206) (Quit: Leaving) |
2021-07-31 08:55:28 +0200 | Guest9 | (~Guest9@43.241.144.40) (Ping timeout: 256 seconds) |
2021-07-31 08:56:21 +0200 | <aegon> | yep! thanks |
2021-07-31 08:56:44 +0200 | <sm> | @Patrick18:libera.chat: figured it out ? |
2021-07-31 08:56:44 +0200 | <lambdabot> | Unknown command, try @list |
2021-07-31 09:00:51 +0200 | mattil | (~mattilinn@78-27-98-194.bb.dnainternet.fi) |
2021-07-31 09:01:25 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) |
2021-07-31 09:01:25 +0200 | vicfred__ | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-07-31 09:03:26 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-31 09:03:59 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-31 09:05:56 +0200 | Guest65 | (~Guest65@188.27.128.31) |
2021-07-31 09:09:28 +0200 | MidAutumnMoon90 | MidAutumnHotaru |
2021-07-31 09:10:47 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-31 09:11:19 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-31 09:14:50 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-31 09:16:54 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 09:17:45 +0200 | fef | (~thedawn@user/thedawn) (Quit: Leaving) |
2021-07-31 09:18:28 +0200 | mastarija_ | (~mastarija@31.217.8.174) (Quit: Leaving) |
2021-07-31 09:18:45 +0200 | mastarija | (~mastarija@31.217.8.174) |
2021-07-31 09:20:23 +0200 | <mastarija> | So, I've enabled GADTs and Constraint kinds and I still get "Not in scope: type constructor or class `Constraint'" when trying to define this `type NoCo = (() :: Constraint) |
2021-07-31 09:20:23 +0200 | <mastarija> | ` |
2021-07-31 09:20:59 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 265 seconds) |
2021-07-31 09:21:00 +0200 | <mastarija> | Not sure what I'm doing wrong |
2021-07-31 09:21:47 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-31 09:22:16 +0200 | dhil | (~dhil@195.213.192.47) |
2021-07-31 09:22:27 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-07-31 09:22:29 +0200 | <mastarija> | Oh... I'm an idiot. I had to import them from Data.Kind |
2021-07-31 09:22:40 +0200 | <mastarija> | I thought this was not necessary |
2021-07-31 09:22:41 +0200 | cjb | (~cjb@user/cjb) |
2021-07-31 09:23:56 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
2021-07-31 09:24:52 +0200 | retroid_ | (~retro@5ec19a54.skybroadband.com) |
2021-07-31 09:27:53 +0200 | <tomsmeding> | mastarija: you'll find that you also have to import Type from Data.Kind :) |
2021-07-31 09:28:01 +0200 | <mastarija> | Yes |
2021-07-31 09:28:04 +0200 | <mastarija> | Did that :D |
2021-07-31 09:30:03 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-07-31 09:30:47 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-31 09:34:44 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-31 09:35:29 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-07-31 09:35:42 +0200 | son0p | (~ff@181.136.122.143) (Ping timeout: 256 seconds) |
2021-07-31 09:36:28 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 09:39:04 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 09:40:41 +0200 | <mastarija> | Do we have something like an "empty" constraint in the base, something in the lines of "class EmptyC x" "instance EmptyC x"? |
2021-07-31 09:41:30 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-07-31 09:43:14 +0200 | <tomsmeding> | isn't that () |
2021-07-31 09:43:24 +0200 | <mastarija> | No, that is ()::Constraint |
2021-07-31 09:43:36 +0200 | <mastarija> | tomsmeding, I'm looking for x -> Constraint |
2021-07-31 09:43:42 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 265 seconds) |
2021-07-31 09:43:44 +0200 | <tomsmeding> | ooooh |
2021-07-31 09:43:57 +0200 | <mastarija> | Yes, my bad |
2021-07-31 09:44:17 +0200 | <mastarija> | Calling it empty wasn't the best choice of words :D |
2021-07-31 09:44:23 +0200 | stenvold | (~stenvold@2001:a61:25f1:6701:a993:a914:786f:a6f5) (Quit: Client closed) |
2021-07-31 09:44:43 +0200 | amahl | (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
2021-07-31 09:46:44 +0200 | acidjnk | (~acidjnk@p200300d0c72b9576e9974425ad52911e.dip0.t-ipconnect.de) |
2021-07-31 09:47:10 +0200 | Nahra | (~user@static.161.95.99.88.clients.your-server.de) |
2021-07-31 09:48:13 +0200 | <tomsmeding> | mastarija: I grepped the source code of 'base' on ^class and all the 82 results (only 82!) are non-empty :) |
2021-07-31 09:48:33 +0200 | <tomsmeding> | mastarija: https://paste.tomsmeding.com/H2uxebLC |
2021-07-31 09:48:58 +0200 | <mastarija> | Ah.. oh well :D |
2021-07-31 09:51:06 +0200 | fendor | (~fendor@91.141.37.142.wireless.dyn.drei.com) |
2021-07-31 09:53:50 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 09:56:03 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-07-31 10:00:23 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-31 10:01:30 +0200 | azeem | (~azeem@dynamic-adsl-94-34-48-122.clienti.tiscali.it) (Ping timeout: 240 seconds) |
2021-07-31 10:02:09 +0200 | azeem | (~azeem@176.201.34.159) |
2021-07-31 10:05:26 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
2021-07-31 10:05:53 +0200 | hendursa1 | (~weechat@user/hendursaga) |
2021-07-31 10:06:54 +0200 | azeem | (~azeem@176.201.34.159) (Ping timeout: 265 seconds) |
2021-07-31 10:07:24 +0200 | azeem | (~azeem@176.200.191.24) |
2021-07-31 10:07:52 +0200 | aegon | (~mike@174.127.249.180) (Ping timeout: 265 seconds) |
2021-07-31 10:07:54 +0200 | dagit | (~dagit@2601:1c2:1b7f:9fa0:ad74:311a:d89a:e0b1) (Ping timeout: 250 seconds) |
2021-07-31 10:08:32 +0200 | hendursaga | (~weechat@user/hendursaga) (Ping timeout: 244 seconds) |
2021-07-31 10:10:27 +0200 | stenvold | (~stenvold@2001:a61:25f1:6701:a993:a914:786f:a6f5) |
2021-07-31 10:11:32 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 10:14:59 +0200 | vysn | (~vysn@user/vysn) |
2021-07-31 10:16:34 +0200 | azeem | (~azeem@176.200.191.24) (Ping timeout: 265 seconds) |
2021-07-31 10:16:42 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-07-31 10:17:48 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-31 10:17:48 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-31 10:17:51 +0200 | allbery_b | geekosaur |
2021-07-31 10:18:34 +0200 | <mastarija> | Btw, is there a way to check if an argument to a type family is of a certain type class? |
2021-07-31 10:19:00 +0200 | <mastarija> | Basically, I want to determine the resulting type depending on type class that a type is an instance of |
2021-07-31 10:20:09 +0200 | azeem | (~azeem@176.200.191.24) |
2021-07-31 10:25:08 +0200 | azeem | (~azeem@176.200.191.24) (Ping timeout: 272 seconds) |
2021-07-31 10:28:20 +0200 | azeem | (~azeem@176.200.191.24) |
2021-07-31 10:28:53 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Ping timeout: 252 seconds) |
2021-07-31 10:32:02 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 265 seconds) |
2021-07-31 10:33:09 +0200 | cjb | (~cjb@user/cjb) (Quit: rcirc on GNU Emacs 28.0.50) |
2021-07-31 10:36:29 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-31 10:39:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 10:39:53 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-07-31 10:40:28 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 10:41:36 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 272 seconds) |
2021-07-31 10:41:48 +0200 | zeenk | (~zeenk@2a02:2f04:a008:d600:18f2:3421:bac6:8f38) |
2021-07-31 10:41:54 +0200 | <mastarija> | Is it possible to use type application to apply type variables defined in the class instance to functions within instance definition? |
2021-07-31 10:42:01 +0200 | <mastarija> | instance forall k. Applicative (Wrong k) where |
2021-07-31 10:42:01 +0200 | <Drew[m]> | mastarija: would you want to do this for more than one type class? |
2021-07-31 10:42:09 +0200 | bitmapper | (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-31 10:42:13 +0200 | <mastarija> | Only one for now |
2021-07-31 10:42:17 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 10:42:19 +0200 | <mastarija> | Drew[m], why? |
2021-07-31 10:44:17 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-31 10:45:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 10:45:59 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 10:48:15 +0200 | <Drew[m]> | Say you want `F t` to be type `X` when `t` is in class `A`, and type `Y` when `t` is in class `B`... what happens when it is in both? |
2021-07-31 10:48:31 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-07-31 10:49:01 +0200 | <mastarija> | Drew[m], I get the first class? |
2021-07-31 10:49:28 +0200 | <mastarija> | Sorry, first type |
2021-07-31 10:50:31 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-31 10:52:11 +0200 | <mastarija> | Drew[m], I was thinking in terms of how pattern matching work. Basically, which class matches first, I get it's related type |
2021-07-31 10:53:07 +0200 | <mastarija> | type family Typer e where Typer (e instanceof Show) = Int; Typer (e instanceof Monoid) = Char; etc... |
2021-07-31 10:55:21 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-07-31 10:55:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 10:55:53 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) |
2021-07-31 10:56:35 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 10:56:58 +0200 | agua | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 240 seconds) |
2021-07-31 10:57:09 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-31 10:57:18 +0200 | <Drew[m]> | So with associated type families you can ofc make a class with an associated type family and make an instance of that type family for a whole class buut there is problems with that, since all it takes is a second instance for a whole class to get ambiguity |
2021-07-31 10:57:40 +0200 | Codaraxis | (~Codaraxis@user/codaraxis) (Remote host closed the connection) |
2021-07-31 10:57:55 +0200 | <Drew[m]> | I'm currently reading up on non-associated type families because I'm rusty |
2021-07-31 10:58:00 +0200 | Codaraxis | (~Codaraxis@user/codaraxis) |
2021-07-31 10:58:21 +0200 | <mastarija> | Associated ones are defined withing the Class, right? |
2021-07-31 10:58:30 +0200 | <Drew[m]> | Yes |
2021-07-31 10:59:31 +0200 | agua | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) |
2021-07-31 11:00:05 +0200 | <mastarija> | Btw, it says (if I'm reading it correctly) in the GHC manual that type variables declared in instance scope over the methods. |
2021-07-31 11:00:15 +0200 | <mastarija> | But for my case it doesn't seem to work |
2021-07-31 11:00:35 +0200 | <mastarija> | instance forall k. Applicative (Wrong k) where pure = mypure @k |
2021-07-31 11:00:42 +0200 | <mastarija> | mypure :: forall k a. k => a -> Wrong k a |
2021-07-31 11:01:11 +0200 | <tomsmeding> | ScopedTypeVariables? |
2021-07-31 11:01:17 +0200 | <mastarija> | Enabled |
2021-07-31 11:01:45 +0200 | <mastarija> | tomsmeding, it says "Could not deduce: k arising from a use of `mypure'" |
2021-07-31 11:02:29 +0200 | <tomsmeding> | what happens if you write 'mypure @_ @k' instead of 'mypure @k' |
2021-07-31 11:02:54 +0200 | <tomsmeding> | i.e. are you sure about the type variable order in the forall of mypure :p |
2021-07-31 11:03:06 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 240 seconds) |
2021-07-31 11:03:06 +0200 | <mastarija> | Expected a type, but `k' has kind `Constraint' |
2021-07-31 11:03:16 +0200 | <mastarija> | Which is what I'd expect... |
2021-07-31 11:03:18 +0200 | <tomsmeding> | ah yes |
2021-07-31 11:03:30 +0200 | <tomsmeding> | do you have a small reproducing example? |
2021-07-31 11:03:37 +0200 | <mastarija> | Sure, just a sec |
2021-07-31 11:03:58 +0200 | <tomsmeding> | (sounds like just the definition of Wrong and that instance) |
2021-07-31 11:05:12 +0200 | <mastarija> | tomsmeding, https://gist.github.com/mastarija/af03154c0d85fd78782f07ff6aeef98e |
2021-07-31 11:08:31 +0200 | <tomsmeding> | error disappears if I change the kind of 'k' to Type |
2021-07-31 11:08:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 11:09:11 +0200 | <mastarija> | yes, but I want k to be a Constraint... |
2021-07-31 11:09:18 +0200 | <tomsmeding> | I know :p |
2021-07-31 11:09:30 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 11:09:51 +0200 | <mastarija> | xD |
2021-07-31 11:10:02 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-31 11:10:10 +0200 | <tomsmeding> | error also disappears if you remove the 'k =>' in the signature of mypure |
2021-07-31 11:10:20 +0200 | <tomsmeding> | (at the cost of introducing an error in its body, of course) |
2021-07-31 11:10:45 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 11:11:01 +0200 | <tomsmeding> | error also disappears if you _add_ 'k =>' in the instance head! |
2021-07-31 11:11:34 +0200 | <tomsmeding> | which makes perfect sense -- ghc can't deduce k because, indeed, it cannot satisfy the constraint -- not because it can't find an instance of the type variable |
2021-07-31 11:11:45 +0200 | <mastarija> | oohh... |
2021-07-31 11:11:49 +0200 | <tomsmeding> | and then you don't even need the @k anymore |
2021-07-31 11:12:05 +0200 | <tomsmeding> | and you can also just write 'pure = Inert' |
2021-07-31 11:12:06 +0200 | <mastarija> | Oooooooohhhhhhh.... |
2021-07-31 11:12:25 +0200 | <mastarija> | Damn, how did I miss that :D |
2021-07-31 11:12:28 +0200 | <tomsmeding> | :) |
2021-07-31 11:12:37 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-07-31 11:13:38 +0200 | __monty__ | (~toonn@user/toonn) |
2021-07-31 11:14:00 +0200 | <tomsmeding> | (and the 'forall k.' is unnecessary in the instance head, for completeness) |
2021-07-31 11:15:51 +0200 | <tomsmeding> | the error message has unfortunate overlap with the error message indicating that ghc can't figure out what a particular type variable should be, though |
2021-07-31 11:15:59 +0200 | <tomsmeding> | or at least, I was deceived for a while :p |
2021-07-31 11:16:07 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-31 11:16:13 +0200 | <tomsmeding> | or would that be 'ambiguous type variable'... |
2021-07-31 11:16:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 11:18:05 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 11:18:12 +0200 | <mastarija> | tomsmeding, do you know if there is a way to write a constraint which says that a kind of something is a Type? |
2021-07-31 11:18:35 +0200 | <mastarija> | something like (kind e ~ Type) |
2021-07-31 11:18:43 +0200 | <tomsmeding> | mastarija: how would that even sort-check |
2021-07-31 11:18:55 +0200 | <mastarija> | Not sure what that is D: |
2021-07-31 11:19:03 +0200 | <mastarija> | Oh.. sort |
2021-07-31 11:19:08 +0200 | <tomsmeding> | type kind sort |
2021-07-31 11:19:17 +0200 | <mastarija> | yes, I remembered now :D |
2021-07-31 11:19:49 +0200 | <tomsmeding> | hm, isn't Constraint really equal to Type in ghc haskell |
2021-07-31 11:19:57 +0200 | <tomsmeding> | and there is TypeInType |
2021-07-31 11:20:21 +0200 | <mastarija> | Now that you mention it... |
2021-07-31 11:20:28 +0200 | <tomsmeding> | I don't think there is a 'kind' function like you wrote, but using a well-placed kind signature, you should be able to get the kind as a variable in scope |
2021-07-31 11:20:32 +0200 | <tomsmeding> | and then you can just use ~ I think |
2021-07-31 11:26:46 +0200 | azeem | (~azeem@176.200.191.24) (Ping timeout: 250 seconds) |
2021-07-31 11:27:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 11:27:55 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 11:28:46 +0200 | azeem | (~azeem@176.200.191.24) |
2021-07-31 11:30:08 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-31 11:32:19 +0200 | dunj3 | (~dunj3@2001:981:9d95:1:886d:656c:9636:23f4) |
2021-07-31 11:33:54 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 265 seconds) |
2021-07-31 11:34:07 +0200 | <mastarija> | So yeah... why doesn't this work? (((c:: Type -> Constraint) (e::Type)) ~ Constraint) |
2021-07-31 11:37:09 +0200 | <mastarija> | Nwm |
2021-07-31 11:40:37 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 11:41:08 +0200 | azeem | (~azeem@176.200.191.24) (Ping timeout: 272 seconds) |
2021-07-31 11:44:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-31 11:45:34 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-31 11:46:05 +0200 | euouae | (~euouae@user/euouae) |
2021-07-31 11:46:35 +0200 | <nshepperd2> | forall k (t :: k). (k ~ Type) => ...? |
2021-07-31 11:48:43 +0200 | <mastarija> | nshepperd2, huh.. didn't know about that syntax, thx |
2021-07-31 11:52:03 +0200 | <euouae> | What's the tunes.org-style logging? |
2021-07-31 11:52:07 +0200 | <euouae> | It's in the /topic |
2021-07-31 11:53:10 +0200 | <nshepperd2> | i think even just k being inhabited (t :: k) implies that k is necessarily TYPE r for some r :: RuntimeRep |
2021-07-31 11:53:52 +0200 | <nshepperd2> | wait no, that's wrong nvm |
2021-07-31 11:54:09 +0200 | <nshepperd2> | it's t being inhabited that implies that :D |
2021-07-31 11:57:58 +0200 | Guest82 | (~Guest82@78.155.54.115) |
2021-07-31 12:04:57 +0200 | <Drew[m]> | <tomsmeding> "hm, isn't Constraint really..." <- A constraint has kind `Constraint`, `Constraint` has kind `Type` |
2021-07-31 12:07:09 +0200 | <Drew[m]> | And `Type` has kind `Type` |
2021-07-31 12:07:55 +0200 | <Drew[m]> | But like you can have two values of type `Int` that aren't equal, just because `Constraint` and `Type` have the same kind, that doesn't make them equal types |
2021-07-31 12:08:30 +0200 | azeem | (~azeem@176.200.234.104) |
2021-07-31 12:09:52 +0200 | hiruji | (~hiruji@user/hiruji) (Read error: Connection reset by peer) |
2021-07-31 12:10:12 +0200 | hiruji | (~hiruji@user/hiruji) |
2021-07-31 12:12:45 +0200 | <Orbstheorem> | Where do you usually put your arbitrary instances? With the code (which leads to the main code depending on quickcheck) or in the tests (which leads to orphan instances)? |
2021-07-31 12:13:13 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 12:13:37 +0200 | <Orbstheorem> | One of my issues is that sometimes I have to declare arbitrary instances for library types (such as URI) and I find myself with orphan instances on my main code :/ |
2021-07-31 12:13:40 +0200 | <sshine> | Orbstheorem, I don't use Arbitrary. I use forAll / forAllShrink. |
2021-07-31 12:14:19 +0200 | <sshine> | (actually, I use Hedgehog, which doesn't have an Arbitrary type class, and where the shrinker comes for free, but it's equivalent to those.) |
2021-07-31 12:14:42 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) (Ping timeout: 272 seconds) |
2021-07-31 12:15:28 +0200 | <sshine> | Orbstheorem, with Arbitrary instances, either your main library gets a QuickCheck dependency, or you get orphan instances, or you need to wrap each thing you generate once more, which can be impractical for big, recursive data types. |
2021-07-31 12:15:45 +0200 | azeem | (~azeem@176.200.234.104) (Read error: Connection reset by peer) |
2021-07-31 12:16:31 +0200 | azeem | (~azeem@176.200.234.104) |
2021-07-31 12:16:32 +0200 | <sshine> | or rather... the last thing isn't really true. if you wrap a data type in one newtype, that newtype's Arbitrary instance can refer to a Gen that refers to other Gens without there having to be Arbitrary instances for every sub-datatype. |
2021-07-31 12:16:36 +0200 | <Orbstheorem> | I'm not sure I get the forAll/forAllShrink answer: A `Gen a` instance is still required. |
2021-07-31 12:17:22 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-07-31 12:17:32 +0200 | <Orbstheorem> | sshine: What do people usually prefer. |
2021-07-31 12:17:36 +0200 | <sshine> | Orbstheorem, example: https://github.com/exercism/haskell/pull/843/files#diff-637040c93c07fbca943993ab34b2ee07185c74ebe5ā¦ |
2021-07-31 12:18:45 +0200 | mastarija_ | (~mastarija@31.217.8.174) |
2021-07-31 12:18:45 +0200 | <Orbstheorem> | Alright, so you write the generators yourself. |
2021-07-31 12:19:08 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-07-31 12:19:13 +0200 | <Orbstheorem> | > <@sshine:libera.chat> Roos, with Arbitrary instances, either your main library gets a QuickCheck dependency, or you get orphan instances, or you need to wrap each thing you generate once more, which can be impractical for big, recursive data types. |
2021-07-31 12:19:13 +0200 | <Orbstheorem> | * What do people usually prefer? |
2021-07-31 12:19:14 +0200 | <lambdabot> | <hint>:1:1: error: parse error on input ā<@ā |
2021-07-31 12:19:32 +0200 | mastarija__ | (~mastarija@31.217.8.174) |
2021-07-31 12:19:48 +0200 | <Orbstheorem> | I personally like just declaring what I need and have quickcheck 'wire' those generators in; yes it's probably one of two lines, but I find it more clean. |
2021-07-31 12:20:12 +0200 | <sshine> | Orbstheorem, https://www.fpcomplete.com/blog/quickcheck-hedgehog-validity/ -- here's an article that discusses Arbitrary. and yes, I write the generators. do you know of any projects that derives Gen? |
2021-07-31 12:20:46 +0200 | <sshine> | you mean you like to have 'arbitrary :: anything'? yeah, I think it is really cool :) but not always practical. |
2021-07-31 12:20:55 +0200 | <Orbstheorem> | Thanks for the article ^^ |
2021-07-31 12:22:01 +0200 | <sshine> | e.g. what if you, for one type, want to test multiple things where the values are generated differently? e.g. I have a parser for scientific numbers, and one of the properties is "can it handle the full syntactic range?" -- and another is, does it handle precision? for the second property, a lot of the "full syntactic range" values wouldn't come close to the point of interest wrt. precision. |
2021-07-31 12:22:11 +0200 | mastarija | (~mastarija@31.217.8.174) (Ping timeout: 252 seconds) |
2021-07-31 12:22:21 +0200 | <sshine> | so my experience is that I can't assume there to be one canonical generator for each type. |
2021-07-31 12:22:35 +0200 | <Orbstheorem> | What I mean is that I like stuff like this: `prop_foobar :: OneType -> SecondType -> Property` |
2021-07-31 12:22:38 +0200 | <sshine> | or even, very often, a generally useful one. |
2021-07-31 12:23:01 +0200 | <sshine> | Orbstheorem, yeah, that part seems really nice :) sort of like DI. |
2021-07-31 12:23:34 +0200 | mastarija_ | (~mastarija@31.217.8.174) (Ping timeout: 272 seconds) |
2021-07-31 12:24:30 +0200 | <Orbstheorem> | Yes, I'm not saying I never use `forAll` myself, rather than most of the times, very dump (Arbitrary) generators do the job, and I'd rather not have the overhead of writing `forAll genOneType $ ...`. |
2021-07-31 12:25:22 +0200 | <sshine> | the overhead of Arbitrary is specifying a newtype and its Arbitrary instance for every kind of thing you want to generate, as opposed to writing 'genOneType'. |
2021-07-31 12:25:22 +0200 | Vajb | (~Vajb@2001:999:62:1d53:26b1:6c9b:c1ed:9c01) (Read error: Connection reset by peer) |
2021-07-31 12:26:23 +0200 | <sshine> | in my experience, the overhead of the different approaches is comparable, and depends mostly on how much you manage to re-use your Arbitrary instances. and the thing you like is to have Arbitrary values injected into your property test, as opposed to specifying them as Gen values. which I do think is a killer feature, but also not worth it. :P |
2021-07-31 12:26:37 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-31 12:28:09 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 12:29:16 +0200 | euouae | (~euouae@user/euouae) (Ping timeout: 246 seconds) |
2021-07-31 12:32:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 12:33:42 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
2021-07-31 12:34:04 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 12:35:50 +0200 | <sshine> | Orbstheorem, https://github.com/sshine/hs-jq/blob/master/test/ParserTest.hs#L335 <- here's a test that depends on a generator that only generates strings with certain unicode symbols in it. with Arbitrary I'd have to create a newtype that doesn't get re-used. I might re-use the generator inside a full-coverage generator, but I probably wouldn't re-use the Arbitrary instance for that. |
2021-07-31 12:41:18 +0200 | mastarija__ | (~mastarija@31.217.8.174) (Ping timeout: 272 seconds) |
2021-07-31 12:41:32 +0200 | azeem | (~azeem@176.200.234.104) (Ping timeout: 252 seconds) |
2021-07-31 12:43:57 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 12:48:53 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-07-31 12:53:15 +0200 | <Orbstheorem> | I'm under the impression I may have misexpressed myself: I'm not criticizing the use of `forAll` (in fact, I very often use it myself), so saying that `forAll` and Arbitrary don't play well toguether, I'm simply advocating for Arbitrary instances for types that already exist in the code. I am not advocating for wrapping stuff in newtypes just for the fun of creating an Arbitrary instance. |
2021-07-31 12:53:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 12:53:59 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 12:55:07 +0200 | <Orbstheorem> | `deriving stock (Generic); deriving anyclass (Arbitrary)` is very clean for many of my instances, my original question expressed my concern between depending on QuickCheck on the main code or having orphan instances in the tests (either by empty implementation or standalone deriving). |
2021-07-31 13:02:28 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-31 13:05:51 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Remote host closed the connection) |
2021-07-31 13:06:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 13:06:12 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-31 13:06:32 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 13:07:57 +0200 | AlexNoo_ | (~AlexNoo@178.34.150.193) |
2021-07-31 13:08:04 +0200 | pe200012 | (~pe200012@113.105.10.33) |
2021-07-31 13:09:54 +0200 | Alex_test | (~al_test@94.233.241.173) (Ping timeout: 256 seconds) |
2021-07-31 13:10:32 +0200 | AlexZenon | (~alzenon@94.233.241.173) (Ping timeout: 245 seconds) |
2021-07-31 13:11:12 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-31 13:11:29 +0200 | euouae | (~euouae@user/euouae) |
2021-07-31 13:11:38 +0200 | AlexNoo | (~AlexNoo@94.233.241.173) (Ping timeout: 250 seconds) |
2021-07-31 13:11:48 +0200 | <sshine> | Orbstheorem, https://www.michaelpj.com/blog/2020/10/29/your-orphans-are-fine.html |
2021-07-31 13:12:00 +0200 | pe200012 | (~pe200012@113.105.10.33) (Client Quit) |
2021-07-31 13:12:20 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) (Ping timeout: 272 seconds) |
2021-07-31 13:14:18 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) |
2021-07-31 13:14:54 +0200 | AlexZenon | (~alzenon@178.34.150.193) |
2021-07-31 13:14:55 +0200 | Alex_test | (~al_test@178.34.150.193) |
2021-07-31 13:21:03 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9501c19bd88441742b9a.dip0.t-ipconnect.de) |
2021-07-31 13:24:26 +0200 | acidjnk | (~acidjnk@p200300d0c72b9576e9974425ad52911e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2021-07-31 13:30:00 +0200 | stenvold | (~stenvold@2001:a61:25f1:6701:a993:a914:786f:a6f5) (Quit: Client closed) |
2021-07-31 13:32:25 +0200 | dunj3 | (~dunj3@2001:981:9d95:1:886d:656c:9636:23f4) (Quit: Leaving) |
2021-07-31 13:38:59 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-31 13:40:29 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 13:40:49 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 13:44:53 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 265 seconds) |
2021-07-31 13:45:54 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
2021-07-31 13:50:26 +0200 | mastarija__ | (~mastarija@31.217.8.174) |
2021-07-31 13:50:29 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) |
2021-07-31 13:50:40 +0200 | MoC | (~moc@user/moc) |
2021-07-31 13:52:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 13:53:13 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 14:01:35 +0200 | tommd | (~tommd@cpe-76-179-204-251.maine.res.rr.com) |
2021-07-31 14:01:36 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 14:02:09 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 14:12:35 +0200 | mastarija__ | (~mastarija@31.217.8.174) (Quit: Leaving) |
2021-07-31 14:12:35 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 14:13:08 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-07-31 14:14:58 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
2021-07-31 14:14:58 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 14:15:09 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 14:17:37 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 14:20:06 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-31 14:20:53 +0200 | nshepperd2 | (~nshepperd@li364-218.members.linode.com) (Quit: The Lounge - https://thelounge.chat) |
2021-07-31 14:20:53 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Quit: quit) |
2021-07-31 14:21:35 +0200 | <bontaq> | hmm is there a nice way to add 1 day to a Datetime in the chronos library? |
2021-07-31 14:21:53 +0200 | nshepperd2 | (~nshepperd@li364-218.members.linode.com) |
2021-07-31 14:21:55 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
2021-07-31 14:24:40 +0200 | ubert | (~Thunderbi@77.119.201.127.wireless.dyn.drei.com) |
2021-07-31 14:30:50 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-31 14:30:50 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-31 14:30:53 +0200 | allbery_b | geekosaur |
2021-07-31 14:30:57 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 14:31:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 14:32:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 14:35:56 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-31 14:40:36 +0200 | goepsilongo | (~chacho@2603-7000-ab00-62ed-0000-0000-0000-0bd0.res6.spectrum.com) (Quit: Konversation terminated!) |
2021-07-31 14:43:11 +0200 | cheater | (~Username@user/cheater) (Remote host closed the connection) |
2021-07-31 14:44:47 +0200 | fendor_ | (~fendor@178.165.178.92.wireless.dyn.drei.com) |
2021-07-31 14:46:54 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 14:47:24 +0200 | eltonpin1 | (~1ntEgr8@2601:c8:c000:3090:9505:af4c:44c9:29b0) |
2021-07-31 14:47:55 +0200 | eltonpin1 | (~1ntEgr8@2601:c8:c000:3090:9505:af4c:44c9:29b0) (Client Quit) |
2021-07-31 14:47:58 +0200 | fendor | (~fendor@91.141.37.142.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
2021-07-31 14:50:14 +0200 | cheater | (~Username@user/cheater) |
2021-07-31 14:51:48 +0200 | egoist | (~egoist@186.235.82.100) |
2021-07-31 14:52:40 +0200 | Guest65 | (~Guest65@188.27.128.31) (Quit: Client closed) |
2021-07-31 14:54:47 +0200 | sm2n | (~sm2n@user/sm2n) (Ping timeout: 255 seconds) |
2021-07-31 14:57:47 +0200 | euouae | (~euouae@user/euouae) (Quit: euouae) |
2021-07-31 14:58:44 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-31 14:58:59 +0200 | <Orbstheorem> | Is there a way to run hls and have an output similar to `stack build --file-watch` on a separate terminal? |
2021-07-31 14:59:11 +0200 | <Orbstheorem> | hls is nice, but Coc is not and oftentimes I find myself using both. |
2021-07-31 15:00:02 +0200 | <Orbstheorem> | And I suspect hls doesn't like that (especially when I add a new dependency to `package.yaml`. Sometimes `CocRestart` works, but othertimes, I have to close and reopen my editor :/ |
2021-07-31 15:01:02 +0200 | cheater | (~Username@user/cheater) (Read error: Connection reset by peer) |
2021-07-31 15:01:04 +0200 | alx741 | (~alx741@181.196.69.85) |
2021-07-31 15:04:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 15:04:59 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 15:08:09 +0200 | cheater | (~Username@user/cheater) |
2021-07-31 15:14:54 +0200 | fendor_ | fendor |
2021-07-31 15:16:29 +0200 | son0p | (~ff@181.136.122.143) |
2021-07-31 15:16:44 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-07-31 15:17:32 +0200 | Guest7767 | (~dunkeln@user/dunkeln) |
2021-07-31 15:17:52 +0200 | Guest7767 | dunkeln |
2021-07-31 15:22:10 +0200 | tommd | (~tommd@cpe-76-179-204-251.maine.res.rr.com) (Ping timeout: 272 seconds) |
2021-07-31 15:27:48 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2021-07-31 15:30:24 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9501c19bd88441742b9a.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2021-07-31 15:31:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 15:32:16 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 15:33:45 +0200 | <maerwald> | IMO, there are process handling bugs with HLS |
2021-07-31 15:34:16 +0200 | <maerwald> | some clients are more erratic than others, but I found none that can handle HLS crashing |
2021-07-31 15:34:56 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-31 15:34:59 +0200 | deejaytee | (~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net) (Quit: Leaving) |
2021-07-31 15:36:59 +0200 | cheater | (~Username@user/cheater) |
2021-07-31 15:43:22 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-07-31 15:46:48 +0200 | dunkeln | (~dunkeln@user/dunkeln) (Quit: Leaving...) |
2021-07-31 15:47:08 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-31 15:49:29 +0200 | sm2n | (~sm2n@user/sm2n) |
2021-07-31 15:50:36 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-07-31 15:53:54 +0200 | jakalx | (~jakalx@base.jakalx.net) () |
2021-07-31 15:56:13 +0200 | zebrag | (~chris@user/zebrag) |
2021-07-31 15:57:33 +0200 | pesada | (~agua@2804:18:70:7597:1:0:6e99:2d6f) |
2021-07-31 15:58:39 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Read error: No route to host) |
2021-07-31 15:59:28 +0200 | flandrer | (~Mk2013@193.29.106.60) |
2021-07-31 15:59:35 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) |
2021-07-31 16:01:06 +0200 | agua | (~agua@2804:14c:8793:8e2f:ecd5:11e0:50a0:f2fe) (Ping timeout: 240 seconds) |
2021-07-31 16:01:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 16:01:37 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 16:02:38 +0200 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2021-07-31 16:04:09 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) |
2021-07-31 16:05:27 +0200 | flandrer | (~Mk2013@193.29.106.60) (Remote host closed the connection) |
2021-07-31 16:07:04 +0200 | <phaazon> | Iām not sure but whatās the Ā« infallible 2 type conversion Ā» typeclass in Haskell again? |
2021-07-31 16:07:15 +0200 | <phaazon> | i.e. class Convert a b where convert :: a -> b |
2021-07-31 16:07:34 +0200 | <phaazon> | Iām creating specialized versions of that every time IĀ need it, especially for error handling |
2021-07-31 16:08:05 +0200 | <phaazon> | (so that IĀ can IĀ use (Convert SpecificError e) => MonadError e and allow user to use their own error types wrapping mine) |
2021-07-31 16:08:22 +0200 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-07-31 16:12:49 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-07-31 16:13:53 +0200 | burnsidesLlama | (~burnsides@client-8-91.eduroam.oxuni.org.uk) (Remote host closed the connection) |
2021-07-31 16:14:28 +0200 | <geekosaur> | Are you talking about Coercible? But I don't think it will do what you want there |
2021-07-31 16:15:04 +0200 | <phaazon> | geekosaur: Iām talking about an equivalent of Rustās From |
2021-07-31 16:15:07 +0200 | <phaazon> | I currently use this: |
2021-07-31 16:15:10 +0200 | <phaazon> | class LiftArticleError e where |
2021-07-31 16:15:12 +0200 | <phaazon> | liftArticleError :: ArticleError -> e |
2021-07-31 16:15:15 +0200 | <phaazon> | (for a specialized error type) |
2021-07-31 16:15:28 +0200 | <phaazon> | so that I can do (MonadError e, LiftArticleError e) => m ā¦ |
2021-07-31 16:15:33 +0200 | <phaazon> | so that I can do (MonadError e m, LiftArticleError e) => m ā¦ |
2021-07-31 16:15:51 +0200 | hololeap | (~hololeap@user/hololeap) (Remote host closed the connection) |
2021-07-31 16:16:15 +0200 | Guest1599 | (~Guest15@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) |
2021-07-31 16:16:17 +0200 | hololeap | (~hololeap@user/hololeap) |
2021-07-31 16:16:26 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 16:16:29 +0200 | <phaazon> | so not Coercible |
2021-07-31 16:16:35 +0200 | <phaazon> | since they might have a different representations |
2021-07-31 16:16:47 +0200 | <phaazon> | the idea is that the user might provide their owen error types, wrapping mine |
2021-07-31 16:16:51 +0200 | <Guest1599> | Hi! How to understand this line: `newtype Task c k v = Task (forall f. c f => (k -> f v) -> f v)` ? |
2021-07-31 16:17:02 +0200 | <phaazon> | like data UserError = Foo FooError | Article ArticleError |
2021-07-31 16:17:21 +0200 | <phaazon> | and then simply instance LiftArticleError UserError where liftArticleError = Article |
2021-07-31 16:17:37 +0200 | <geekosaur> | the only other thing I can think of is SomeException, but that's the root of the exception hierarchy |
2021-07-31 16:17:49 +0200 | <phaazon> | alright, Iāll make my own thing then |
2021-07-31 16:18:00 +0200 | <phaazon> | itās surprising thatās not a thing in Haskell but itās used everywhere in Rust |
2021-07-31 16:18:10 +0200 | <phaazon> | especially since it plays a vital role in stuff like the ? operator |
2021-07-31 16:20:31 +0200 | agua | (~agua@191.177.175.57) |
2021-07-31 16:20:52 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 258 seconds) |
2021-07-31 16:22:33 +0200 | <Guest1599> | I know it might sound easy, but I'd love to hear how people read and understand it |
2021-07-31 16:22:58 +0200 | pesada | (~agua@2804:18:70:7597:1:0:6e99:2d6f) (Ping timeout: 272 seconds) |
2021-07-31 16:24:46 +0200 | <phaazon> | Guest1599: c is a constraint that will be applied on a functor wrapped in an existential |
2021-07-31 16:25:15 +0200 | <phaazon> | so IĀ guess youād use that with Task MonadIO to get a task running in Ā« a MonadIO Ā» |
2021-07-31 16:26:46 +0200 | jneira_ | (~jneira_@28.red-80-28-169.staticip.rima-tde.net) (Ping timeout: 272 seconds) |
2021-07-31 16:26:52 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-31 16:28:40 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2021-07-31 16:29:56 +0200 | xff0x | (~xff0x@2001:1a81:536d:8c00:2d4:a9e1:415e:5f77) (Ping timeout: 256 seconds) |
2021-07-31 16:30:16 +0200 | <[exa]> | phaazon: the all-to-all conversions don't really work nice with type inference, you'll usually jump into a situation where the type system needs to do a DFS on your code to find a good variant (and finish it to prove that it's not ambiguous), which is far from having the types intuitive |
2021-07-31 16:30:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 16:30:41 +0200 | <Guest1599> | phaazon I'm a Haskell beginner; I know how to read `newtype ZipList a = ZipList { getZipList :: [a] }` and how to construct a type out of it (i.e. `ZipList Int`) |
2021-07-31 16:30:54 +0200 | <Guest1599> | but this `Task` still looks vague to me |
2021-07-31 16:30:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 16:31:17 +0200 | <phaazon> | [exa]: you mean because of the two type variables? |
2021-07-31 16:31:38 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-07-31 16:31:39 +0200 | <phaazon> | yeah, well, IĀ agree itās not perfect but most of the time it works great (in Rust at least, and Haskell type system is far better so I would expect it to behave better :D) |
2021-07-31 16:31:55 +0200 | <phaazon> | Guest1599: whatās bothering you is the forall, right? |
2021-07-31 16:32:10 +0200 | <phaazon> | you might need to get a look at a more specific version |
2021-07-31 16:32:12 +0200 | <phaazon> | like TaskIO |
2021-07-31 16:32:25 +0200 | <[exa]> | in rust the contexts are much much smaller, so it usually works nicely |
2021-07-31 16:32:47 +0200 | <[exa]> | in haskell you can easily get a function that has a whole convert chain in the type signature |
2021-07-31 16:32:48 +0200 | <phaazon> | newtype TaskIO k v = TaskIO (forall f. MonadIO f => (k -> f v) -> f v) -- Guest1599 |
2021-07-31 16:33:26 +0200 | <phaazon> | Guest1599: the forall here means that you cannot inspect and know what f itās being used |
2021-07-31 16:33:39 +0200 | <phaazon> | the only place where you know that information is prior wrapping that function in the TaskIO |
2021-07-31 16:33:46 +0200 | <phaazon> | once itās wrapped in, you lose the information of the type of f |
2021-07-31 16:33:54 +0200 | <phaazon> | and you only know about the constraint |
2021-07-31 16:34:03 +0200 | <phaazon> | so basically, MonadIO f, but you canāt know what f is inside |
2021-07-31 16:34:29 +0200 | <Guest1599> | hmm, okay |
2021-07-31 16:34:36 +0200 | <phaazon> | so you pass a (k -> f v) function and you get back a f v |
2021-07-31 16:34:58 +0200 | <phaazon> | IĀ donāt know what that k and v means but itās very likely to be an environment pattern, or some kind of pointer you can lookup in MonadIO |
2021-07-31 16:35:13 +0200 | <phaazon> | now, your initial type sig also abstracted on the constraint |
2021-07-31 16:35:18 +0200 | <Guest1599> | k - `key`, v - `value`, think of it as a storage |
2021-07-31 16:35:21 +0200 | <phaazon> | (with the c type param) |
2021-07-31 16:35:26 +0200 | <phaazon> | yeah that makes sense |
2021-07-31 16:36:24 +0200 | <Guest1599> | " pass a (k -> f v) function and you get back a f v" - where to pass it? I'm a bit lost |
2021-07-31 16:36:52 +0200 | AlexNoo_ | AlexNoo |
2021-07-31 16:37:09 +0200 | <Guest1599> | i.e. with `Maybe`: it's a type constructor - one can pass a type and it becomes `Maybe PassedType` - a concrete type |
2021-07-31 16:37:21 +0200 | <Guest1599> | I see thath TaskIO also accepts two types - `k` and `v` |
2021-07-31 16:37:39 +0200 | <Guest1599> | so... where's the place for `k -> f v` herE? |
2021-07-31 16:38:41 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-31 16:40:02 +0200 | <Guest1599> | I think my problem is that the right-hand side of `=` looks like nothing I've seen in the context of a newtype |
2021-07-31 16:40:51 +0200 | <phaazon> | Guest1599: yeah youād have to pattern match on it |
2021-07-31 16:40:58 +0200 | <phaazon> | or use a function that does that for you |
2021-07-31 16:41:16 +0200 | <phaazon> | rewritting TaskIO in a way that automatically provides you a nice function to do so: |
2021-07-31 16:41:22 +0200 | <Guest1599> | I think I'm more lost than you expect |
2021-07-31 16:41:36 +0200 | <phaazon> | newtype TaskIO k v = TaskIO { runTaskIO ::Ā forall f. MonadIO f => (k -> f v) -> f v } |
2021-07-31 16:42:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 16:43:16 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 16:43:32 +0200 | kuribas | (~user@ptr-25vy0i7fhp3jdg2nokv.18120a2.ip6.access.telenet.be) |
2021-07-31 16:43:53 +0200 | <Guest1599> | runTaskIO someTaskIO kToFVfunction would return `f v`...? |
2021-07-31 16:44:02 +0200 | <phaazon> | I can give you an example, wait :) |
2021-07-31 16:44:58 +0200 | <Guest1599> | phaazon : if it helps, the line comes from https://www.cambridge.org/core/journals/journal-of-functional-programming/article/build-systems-a-ā¦ page 9 |
2021-07-31 16:45:36 +0200 | <Guest1599> | (the Task is a custom one, seperated from stdlib etc) |
2021-07-31 16:46:22 +0200 | <phaazon> | so: |
2021-07-31 16:46:34 +0200 | <phaazon> | let task = TaskIO $ \lookup -> liftA2 (+) (lookup "hey") (lookup "you") |
2021-07-31 16:46:53 +0200 | <phaazon> | here, we just lookup two keys (setting k = String) |
2021-07-31 16:46:57 +0200 | <phaazon> | and we add them together |
2021-07-31 16:47:09 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-07-31 16:47:09 +0200 | <phaazon> | so that we have v as Num v |
2021-07-31 16:47:27 +0200 | <phaazon> | the type of task is then (Num v) => TakIO String v |
2021-07-31 16:47:27 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 16:47:44 +0200 | <phaazon> | now, you need to run that task, so as I told you earlier, you need to pass that (k -> f v) function |
2021-07-31 16:47:52 +0200 | <phaazon> | letās just mockup something really quick |
2021-07-31 16:48:01 +0200 | <phaazon> | lookup "hey" = pure 1; lookup "you" = pure 2;Ā lookup _ = pure 0 |
2021-07-31 16:48:05 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 16:48:10 +0200 | <phaazon> | running the task like: |
2021-07-31 16:48:17 +0200 | <phaazon> | runTaskIO task lookup |
2021-07-31 16:48:23 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 16:48:25 +0200 | <phaazon> | will tie everything and will provide 3 |
2021-07-31 16:49:03 +0200 | <phaazon> | the only place where we know the type of f is when we define task |
2021-07-31 16:49:19 +0200 | <phaazon> | IĀ didnāt do anything specific but I could have used liftIO . print and it would have made f = IO |
2021-07-31 16:49:33 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 16:50:05 +0200 | <phaazon> | the important thing is that you will get back a value in f v, yes |
2021-07-31 16:50:29 +0200 | lbseale | (~lbseale@user/ep1ctetus) |
2021-07-31 16:51:19 +0200 | <Guest1599> | (let me digest it) |
2021-07-31 16:51:27 +0200 | <phaazon> | sure |
2021-07-31 16:51:36 +0200 | <phaazon> | existential quantification is not really beginner level anyway :) |
2021-07-31 16:51:44 +0200 | <phaazon> | itās completly normal if you feel overwhelmed by it |
2021-07-31 16:52:17 +0200 | xff0x | (~xff0x@2001:1a81:536d:8c00:2d4:a9e1:415e:5f77) |
2021-07-31 16:52:22 +0200 | <Guest1599> | First qustion: Why `newtype TaskIO k v = TaskIO { runTaskIO :: forall f. MonadIO f => (k -> f v) -> f v} ` , not just `newtype TaskIO k v = TaskIO { runTaskIO :: (MonadIO f) => (k -> f v) -> f v } ` ? |
2021-07-31 16:53:00 +0200 | <Guest1599> | what would be the difference? |
2021-07-31 16:53:09 +0200 | <phaazon> | good question; the right side of a data type declaration must use either concrete types or type variables declared on the left part |
2021-07-31 16:53:23 +0200 | <phaazon> | f here is only known on the right side |
2021-07-31 16:53:31 +0200 | <phaazon> | it doesnāt appear on the left side |
2021-07-31 16:53:37 +0200 | <phaazon> | so if I give you two different tasks |
2021-07-31 16:53:58 +0200 | <phaazon> | which types are TaskIO Int String and TaskIO Int String, what f is inside of them? the same? different? :) |
2021-07-31 16:54:17 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 16:54:29 +0200 | <phaazon> | so the forall keyword is a bit confusing but allows us to say āthereās a f inside of that thing and itās introduced here as existential; we know itās there but we canāt inspect / observe it from outsideā |
2021-07-31 16:55:07 +0200 | <Guest1599> | hmmm, okay |
2021-07-31 16:55:08 +0200 | <phaazon> | your second form would be valid if you had newtype TaskIO k f v, for instance |
2021-07-31 16:55:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 16:55:29 +0200 | <phaazon> | it would be a problem, though |
2021-07-31 16:55:33 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 16:55:35 +0200 | <phaazon> | because someone could use any functor / monad here |
2021-07-31 16:55:41 +0200 | <phaazon> | (not necessarily MonadIO) |
2021-07-31 16:56:28 +0200 | <Guest1599> | phaazon couldn't we provide something like `(MondaIO f) =>` on the RHS ( right-hand side of the equation sign)? |
2021-07-31 16:58:08 +0200 | <Guest1599> | maybe that's a question that won't get us (me) anywhere though; |
2021-07-31 16:58:29 +0200 | <phaazon> | there are different position where we can do that but yeah, not sure |
2021-07-31 17:02:14 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-31 17:04:50 +0200 | <Guest1599> | phaazon are you a regular member of this channel? (I think I need to digest what you've said, read a few more things and perhaps (tomorrow...? some time in the future) discuss further if needed. Would be nice to see you around |
2021-07-31 17:09:33 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-07-31 17:10:01 +0200 | hnOsmium0001 | (uid453710@id-453710.stonehaven.irccloud.com) |
2021-07-31 17:10:53 +0200 | <phaazon> | Iāve been there for ~10 years but donāt often partake, but lately Iāve been doing lots of PureScript and Haskell so I look at whatās happening here more often, so yes, just hl me :) |
2021-07-31 17:11:14 +0200 | peterhil | (~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) |
2021-07-31 17:11:37 +0200 | <phaazon> | I actually injured my foot lately while wakeboarding so I have time on the computer, donāt worry about that lol |
2021-07-31 17:12:24 +0200 | <Guest1599> | funny that you mentioned wakeboarding, yesterday I tried it for the first time |
2021-07-31 17:12:37 +0200 | <Guest1599> | I thought that it's rather injury-free |
2021-07-31 17:13:04 +0200 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-07-31 17:13:05 +0200 | <phaazon> | :) |
2021-07-31 17:13:09 +0200 | <phaazon> | depends on what you do |
2021-07-31 17:13:28 +0200 | <phaazon> | Iām at the intermediary / advanced skill level so I throwā¦ interesting tricks |
2021-07-31 17:13:38 +0200 | <Guest1599> | :D that's cool! |
2021-07-31 17:14:10 +0200 | <phaazon> | on Wednesday I fall off a high jump off the kicker after a flip that ended badly, where I caught my back edge on the way down and got partially ejected of my bindings but not completely, resulting in both the feet stuck in the bindings, bent |
2021-07-31 17:14:30 +0200 | <phaazon> | I have nice rainbow colors on the right foot, probably a ligament partially torn or something like that, cool times :D |
2021-07-31 17:15:04 +0200 | <phaazon> | but yeah, itās definitely less risky than snowboarding (IĀ just completely broke a radius in half two years ago there, so yeah, injuries are worse :D) |
2021-07-31 17:16:15 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (Read error: Connection reset by peer) |
2021-07-31 17:16:44 +0200 | coot | (~coot@46.204.69.82.nat.umts.dynamic.t-mobile.pl) |
2021-07-31 17:16:44 +0200 | coot | (~coot@46.204.69.82.nat.umts.dynamic.t-mobile.pl) (Read error: Connection reset by peer) |
2021-07-31 17:17:22 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 17:17:35 +0200 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-07-31 17:17:42 +0200 | <Guest1599> | I hope you'll get better soon. and yeah, injuries are what puts me off from snowboarding |
2021-07-31 17:18:02 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 17:19:22 +0200 | <phaazon> | did you enjoy wakeboarding? :) |
2021-07-31 17:19:29 +0200 | pavonia | (~user@user/siracusa) |
2021-07-31 17:19:30 +0200 | <phaazon> | were you able to stand up? balance is hard at first |
2021-07-31 17:20:26 +0200 | Pickchea | (~private@user/pickchea) |
2021-07-31 17:21:12 +0200 | jmorris | (uid433911@id-433911.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
2021-07-31 17:22:06 +0200 | <Guest1599> | i definitely enjoyed it |
2021-07-31 17:22:33 +0200 | <Guest1599> | I was able to stand up - we had a wakeboarding session with a line/rope over a like rather than a boat. I think it's better-suited for beginners |
2021-07-31 17:22:48 +0200 | <Guest1599> | over a lake* |
2021-07-31 17:27:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 17:28:40 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 17:30:24 +0200 | fendor | (~fendor@178.165.178.92.wireless.dyn.drei.com) (Remote host closed the connection) |
2021-07-31 17:30:26 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 17:37:01 +0200 | <phaazon> | cable? yeah IĀ donāt do boats either |
2021-07-31 17:37:08 +0200 | <phaazon> | itās two completely different sports anyway :) |
2021-07-31 17:38:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 17:39:42 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 17:42:27 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 17:43:41 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 17:45:51 +0200 | Gurkenglas | (~Gurkengla@dslb-002-203-144-156.002.203.pools.vodafone-ip.de) |
2021-07-31 17:47:12 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
2021-07-31 17:51:46 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 17:52:26 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:32aa:eb39:2110:e2ea) (Ping timeout: 250 seconds) |
2021-07-31 17:52:43 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 17:54:01 +0200 | funsafe | (~funsafe@2601:1c1:4200:938f:32aa:eb39:2110:e2ea) |
2021-07-31 17:57:27 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) |
2021-07-31 17:58:12 +0200 | neceve | (~quassel@2a02:c7f:607e:d600:f762:20dd:304e:4b1f) |
2021-07-31 18:00:19 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Remote host closed the connection) |
2021-07-31 18:00:49 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) |
2021-07-31 18:04:23 +0200 | nuncanada | (~dude@179.235.162.215) |
2021-07-31 18:08:06 +0200 | ubert | (~Thunderbi@77.119.201.127.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
2021-07-31 18:09:47 +0200 | markpythonicbitc | (~textual@50.228.44.6) |
2021-07-31 18:10:29 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-07-31 18:14:28 +0200 | mattil | (~mattilinn@78-27-98-194.bb.dnainternet.fi) (Remote host closed the connection) |
2021-07-31 18:16:16 +0200 | kilolympus | (~kilolympu@cpc92710-cmbg20-2-0-cust265.5-4.cable.virginm.net) (Read error: Connection reset by peer) |
2021-07-31 18:17:47 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds) |
2021-07-31 18:18:06 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 18:18:16 +0200 | erisco | (~erisco@d24-57-249-233.home.cgocable.net) |
2021-07-31 18:21:13 +0200 | cheater | (~Username@user/cheater) |
2021-07-31 18:22:40 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-31 18:23:03 +0200 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-07-31 18:27:09 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-31 18:27:22 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) (Ping timeout: 258 seconds) |
2021-07-31 18:28:48 +0200 | Guest608 | (~Guest60@187.83.249.216.dyn.smithville.net) |
2021-07-31 18:30:29 +0200 | lbseale | (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-07-31 18:30:59 +0200 | <Guest608> | is there an easy way to get stack to reinstall/relink a package? I'm having issues which I think are linking problems but I don't know how to get stack to reinstall things without just doing rm -rf ~/.stack |
2021-07-31 18:33:00 +0200 | betelgeuse | (~john2gb@94-225-47-8.access.telenet.be) |
2021-07-31 18:33:12 +0200 | <maerwald> | haha |
2021-07-31 18:36:14 +0200 | <maerwald> | now you wished sandboxes were still a thing |
2021-07-31 18:36:21 +0200 | <maerwald> | but everyone wanted this nix-style stuff |
2021-07-31 18:37:35 +0200 | mattil | (~mattilinn@78-27-98-194.bb.dnainternet.fi) |
2021-07-31 18:37:49 +0200 | berberman | (~berberman@user/berberman) |
2021-07-31 18:38:22 +0200 | berberman_ | (~berberman@user/berberman) (Ping timeout: 250 seconds) |
2021-07-31 18:39:47 +0200 | mattil | (~mattilinn@78-27-98-194.bb.dnainternet.fi) (Client Quit) |
2021-07-31 18:40:30 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-07-31 18:41:22 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-07-31 18:41:46 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-07-31 18:44:03 +0200 | phma_ | (~phma@host-67-44-208-68.hnremote.net) |
2021-07-31 18:44:27 +0200 | phma | (phma@2001:5b0:210d:748:6bd3:69b4:5bd0:5d7a) (Read error: Connection reset by peer) |
2021-07-31 18:44:44 +0200 | Guest9 | (~Guest9@103.240.169.29) |
2021-07-31 18:47:42 +0200 | mattil | (~mattilinn@78-27-98-194.bb.dnainternet.fi) |
2021-07-31 18:50:35 +0200 | zebrag | (~chris@user/zebrag) (Ping timeout: 252 seconds) |
2021-07-31 18:51:12 +0200 | zebrag | (~chris@user/zebrag) |
2021-07-31 18:52:27 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-07-31 18:53:32 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-31 18:55:21 +0200 | <monochrom> | There is a way to do surgical removal, but it requires knowing how stack organizes things. |
2021-07-31 18:55:48 +0200 | <monochrom> | I happen to know how to do it for cabal-install. |
2021-07-31 18:59:31 +0200 | Guest608 | (~Guest60@187.83.249.216.dyn.smithville.net) (Ping timeout: 246 seconds) |
2021-07-31 19:01:36 +0200 | <maerwald> | anyone knows this stack error? https://paste.tomsmeding.com/Z1KZsYpu |
2021-07-31 19:02:20 +0200 | <maerwald> | "createProcess: runInteractiveProcess: exec: does not exist (No such file or directory)"... ok, yeah, what? |
2021-07-31 19:02:29 +0200 | <maerwald> | useless haskell errors... |
2021-07-31 19:06:32 +0200 | aegon | (~mike@174.127.249.180) |
2021-07-31 19:07:08 +0200 | <aegon> | feels bad to have so many questions lately but I'm running off the edge of a cliff trying to understand my first need to mess with the DataKind and TypeApplication world |
2021-07-31 19:07:46 +0200 | <aegon> | I'm using Frames and its incorrectly guessing the type of some of my csv columns sometimes, I want to modify the universe of possible types for the guessing to remove the option of Bool |
2021-07-31 19:07:46 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-07-31 19:08:01 +0200 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-07-31 19:08:02 +0200 | <aegon> | but the examples on the repo are all using a function that doesn't exist anymore |
2021-07-31 19:08:55 +0200 | <aegon> | https://hackage.haskell.org/package/Frames-0.6.1/docs/Frames-TH.html I need to construct a column universe which is off type proxy a , the examples i see are just a list of types |
2021-07-31 19:09:10 +0200 | <aegon> | but i can't seem to figure out how to construct one on my own |
2021-07-31 19:09:57 +0200 | <aegon> | this might be template haskell land not type land now that I'm reading it with fresh eyes |
2021-07-31 19:12:32 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-07-31 19:13:07 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-07-31 19:14:17 +0200 | psydroid | (~psydroid@user/psydroid) |
2021-07-31 19:18:02 +0200 | econo | (uid147250@user/econo) |
2021-07-31 19:18:24 +0200 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Ping timeout: 272 seconds) |
2021-07-31 19:21:58 +0200 | HarveyPwca | (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Quit: Leaving) |
2021-07-31 19:34:59 +0200 | dagit | (~dagit@2601:1c2:1b7f:9fa0:5146:76a:259b:45c5) |
2021-07-31 19:37:58 +0200 | MorrowM | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds) |
2021-07-31 19:38:54 +0200 | <aegon> | i'd like to understand more but I was looking too deep, this can be done with a type level list to the RowGen |
2021-07-31 19:39:47 +0200 | Morrow | (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-31 19:41:12 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 272 seconds) |
2021-07-31 19:45:58 +0200 | <dsal> | aegon: People *love* questions here. You should feel bad when you don't have questions. |
2021-07-31 19:46:33 +0200 | <aegon> | :) good, because i'm lost again, i thought i got a workaround to compile which was to copy the rowGen function inclucded in Frames.TH but pass my own type list to RowGen |
2021-07-31 19:46:39 +0200 | <aegon> | but now i'm getting type errors i can't parse |
2021-07-31 19:46:51 +0200 | <dsal> | Paste some examples. |
2021-07-31 19:47:12 +0200 | <dsal> | I'm doing a bunch of silly TH right now to generate coloring functions from PNGs at compile time. |
2021-07-31 19:49:16 +0200 | <aegon> | whoa hpaste is down o_o |
2021-07-31 19:49:25 +0200 | <geekosaur> | @where paste |
2021-07-31 19:49:25 +0200 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2021-07-31 19:49:35 +0200 | <geekosaur> | hpaste has been gonbe for several years |
2021-07-31 19:49:37 +0200 | jneira_ | (~jneira_@28.red-80-28-169.staticip.rima-tde.net) |
2021-07-31 19:49:40 +0200 | <aegon> | oh :X |
2021-07-31 19:51:38 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 19:52:16 +0200 | <aegon> | https://paste.tomsmeding.com/BIJtdLO9 |
2021-07-31 19:52:35 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-31 19:53:00 +0200 | <aegon> | i don't understand the RowGen type, but I'm trying to remove the option for Bool table column inference since it gets it wrong sometimes, my tables are all Int / Double |
2021-07-31 19:53:40 +0200 | <aegon> | the commented out tableTypes call works but guesses wrong sometimes |
2021-07-31 19:54:44 +0200 | <aegon> | I'm starting to read through Vinyl to see if i can grok that but am quite lost |
2021-07-31 19:59:16 +0200 | <dsal> | Heh, I accidentally imported `Data.Map (mapMaybe)` instead of `Data.Maybe (mapMaybe)` and confused myself quite a bit. |
2021-07-31 19:59:56 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 20:00:06 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-07-31 20:00:36 +0200 | <dsal> | aegon: It says you are using undefined variables. |
2021-07-31 20:04:00 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 272 seconds) |
2021-07-31 20:04:18 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-07-31 20:04:38 +0200 | <Gurkenglas> | what's the proper word for bypassing the typechecker? it should evoke the impression of me swooning at a bad boy. evil is already taken by not being equivalence invariant. |
2021-07-31 20:04:47 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-31 20:04:51 +0200 | <dsal> | bug? |
2021-07-31 20:05:01 +0200 | <dsal> | "unsafe" is probably common |
2021-07-31 20:05:15 +0200 | <Gurkenglas> | no that evokes the image of a stern disciplinarian |
2021-07-31 20:06:49 +0200 | <aegon> | dsal: hmm, trying to fix the imports, for some reason its complaingin about Data.Proxy and Pipes.Internal.Proxy |
2021-07-31 20:06:53 +0200 | <aegon> | I'm not including pipes in that file |
2021-07-31 20:07:33 +0200 | <Hecate> | G0urkenglas: we have unsafePerformIO, and accursedUnutterablePerformIO |
2021-07-31 20:07:44 +0200 | <Hecate> | so maybe accursed can be reused? :) |
2021-07-31 20:08:15 +0200 | <Gurkenglas> | closer, if just because the previous one was so far away :3 |
2021-07-31 20:08:18 +0200 | <Hecate> | koz: take a look, maybe this can help you with naming :P |
2021-07-31 20:08:56 +0200 | <Hecate> | Gurkenglas: my last suggestion is "eldritch" ;) |
2021-07-31 20:09:05 +0200 | <aegon> | dsal: this is where i'm att now in trying to figure it out https://paste.tomsmeding.com/dGvajduB |
2021-07-31 20:09:21 +0200 | <Gurkenglas> | better yet! imma keep lookin. |
2021-07-31 20:14:15 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 20:14:15 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 20:15:14 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 20:15:19 +0200 | <aegon> | its wierd, in their source they are able to use syntax that mine doesn't allow |
2021-07-31 20:16:55 +0200 | <monochrom> | "unsafeCoerce" bypasses the type checker and we are fine with "just" calling it unsafe. |
2021-07-31 20:19:34 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 20:19:38 +0200 | <monochrom> | And "the evil mangler" is actually a semantics-preserving code optimizer. So "evil" actually means safe. |
2021-07-31 20:21:27 +0200 | nuncanada | (~dude@179.235.162.215) (Read error: Connection reset by peer) |
2021-07-31 20:21:46 +0200 | <koz> | Hecate: What's this in reference to? |
2021-07-31 20:22:22 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Quit: Atum_) |
2021-07-31 20:22:41 +0200 | dudek | (~dudek@185.150.236.155) |
2021-07-31 20:22:48 +0200 | <Hecate> | koz: the accursed, unutterable things you do during the week-end :3 |
2021-07-31 20:23:09 +0200 | <koz> | LOL |
2021-07-31 20:24:07 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 265 seconds) |
2021-07-31 20:24:28 +0200 | <boxscape> | is there a canonical way to convert from CString to ByteString? |
2021-07-31 20:25:55 +0200 | <boxscape> | ah, found it |
2021-07-31 20:26:11 +0200 | <boxscape> | it's packCString in the bytestring library |
2021-07-31 20:26:33 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-07-31 20:26:42 +0200 | nuncanada | (~dude@179.235.162.215) |
2021-07-31 20:26:50 +0200 | <aegon> | ok, hacked thoruhg it, what can I read to understand more about what Vinyl / Frames is doing there :? |
2021-07-31 20:29:00 +0200 | <Hecate> | aegon: step 1 : read about row polymorphism ; step 2 : come to terms with the fact that Haskell isn't row-polymorphic ; step 3 : live a good life full of happiness, find joy in the little things, go outside play in the park, and definitely do something else than use vinyl :P |
2021-07-31 20:29:47 +0200 | <aegon> | lol, staring on step 1 |
2021-07-31 20:30:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 20:30:30 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 20:30:45 +0200 | <Hecate> | aegon: PureScript is a nice and ergonomic implmentation of extensible records / row-polymorphism |
2021-07-31 20:32:55 +0200 | <boxscape> | hm GHC has this really clever thing where they warn about bindings that are unused because they are only used in other unused bindings, but I'd actually prefer if it just stuck to only warning about first-order unused bindings :/ |
2021-07-31 20:35:39 +0200 | <monochrom> | I kill that warning in the first place. |
2021-07-31 20:36:31 +0200 | <monochrom> | I can be talked into turning it on just for a last-minute check. |
2021-07-31 20:37:00 +0200 | <boxscape> | understandable |
2021-07-31 20:39:35 +0200 | Ariakenom | (~Ariakenom@c83-255-154-140.bredband.tele2.se) |
2021-07-31 20:39:45 +0200 | Sgeo | (~Sgeo@user/sgeo) |
2021-07-31 20:43:47 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) |
2021-07-31 20:43:47 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 20:44:10 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 20:44:34 +0200 | mattil | (~mattilinn@78-27-98-194.bb.dnainternet.fi) (Remote host closed the connection) |
2021-07-31 20:44:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 20:45:21 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 20:47:54 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-31 20:51:19 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 20:51:47 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
2021-07-31 20:54:02 +0200 | Guest9 | (~Guest9@103.240.169.29) (Ping timeout: 272 seconds) |
2021-07-31 20:55:09 +0200 | <Hecate> | boxscape: you can enable it during CI only |
2021-07-31 20:57:56 +0200 | <boxscape> | Hecate: just had the idea to write an issue (and possibly implement it) to suggest explicitly saying when an unused binding is actually unused vs only used in unused bindings, and possibly split it into two separate warnings |
2021-07-31 20:58:29 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-31 20:59:41 +0200 | Atum_ | (~IRC@user/atum/x-2392232) (Remote host closed the connection) |
2021-07-31 21:00:06 +0200 | Atum_ | (~IRC@user/atum/x-2392232) |
2021-07-31 21:06:29 +0200 | <Hecate> | boxscape: hint: if you implement it, you have much more chance to see it in GHC ;) |
2021-07-31 21:06:54 +0200 | <Hecate> | that being said, you may want to start with a compiler plugin if possible |
2021-07-31 21:07:18 +0200 | <boxscape> | to be able to use it sooner or for another reason? |
2021-07-31 21:09:02 +0200 | <Hecate> | boxscape: to see how it behaves on real codebases in real workflows |
2021-07-31 21:09:13 +0200 | <boxscape> | hm I see |
2021-07-31 21:09:14 +0200 | <Hecate> | before undertaking the long and tedious process of a GHC Proposal |
2021-07-31 21:09:32 +0200 | <boxscape> | I don't think this really requires a GHC proposal, it's just changing a few words in a warning message |
2021-07-31 21:09:40 +0200 | <Hecate> | (which will be made easier by the existence of code that can be reviewed, instead of an endless bikeshedding of possibilities) |
2021-07-31 21:10:12 +0200 | <Hecate> | if you want to implement a new warning, this is a user-facing change and thus I'm pretty sure you'll have to do a GHC proposal |
2021-07-31 21:10:25 +0200 | <boxscape> | I see |
2021-07-31 21:10:41 +0200 | <Hecate> | but don't fret |
2021-07-31 21:10:56 +0200 | <Hecate> | if you make a plugin before the proposal, it's going to be much easier |
2021-07-31 21:10:56 +0200 | <boxscape> | well, I might start with changing a few words in the warning message then and think about splitting it later |
2021-07-31 21:11:02 +0200 | <Hecate> | :) |
2021-07-31 21:11:08 +0200 | <boxscape> | makes sense |
2021-07-31 21:12:26 +0200 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 21:13:41 +0200 | <maerwald> | who knows what `security` on darwin is (the binary)? |
2021-07-31 21:13:47 +0200 | <maerwald> | https://github.com/vincenthz/hs-certificate/blob/master/x509-system/System/X509/MacOS.hs#L22 |
2021-07-31 21:14:31 +0200 | hexfive | (~eric@50.35.83.177) |
2021-07-31 21:14:35 +0200 | hexfive | (~eric@50.35.83.177) (Client Quit) |
2021-07-31 21:17:28 +0200 | Kaipi | (~Kaiepi@156.34.44.192) |
2021-07-31 21:17:28 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
2021-07-31 21:17:30 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 21:19:36 +0200 | jgeerds | (~jgeerds@55d45555.access.ecotel.net) (Remote host closed the connection) |
2021-07-31 21:20:00 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
2021-07-31 21:20:36 +0200 | <maerwald> | also love the `either error id` inside IO |
2021-07-31 21:21:51 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-31 21:22:50 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds) |
2021-07-31 21:24:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 21:24:40 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) |
2021-07-31 21:24:50 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 21:26:49 +0200 | elias_ | (~elias@154.27.37.188.rev.vodafone.pt) |
2021-07-31 21:29:30 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
2021-07-31 21:31:04 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-31 21:31:30 +0200 | drd | (~drd@2001:b07:a70:9f1f:1562:34de:f50f:77d4) (Ping timeout: 240 seconds) |
2021-07-31 21:35:07 +0200 | <raehik> | I'm doing some binary serialisation of some relatively simple data, but need more than what Data.ByteString.Builder provides. I know of two libraries, binary and cereal. Any recommendations on what to use? |
2021-07-31 21:35:31 +0200 | <raehik> | KBs of data, saving to memory/disk |
2021-07-31 21:36:42 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds) |
2021-07-31 21:36:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 21:37:21 +0200 | <[exa]> | raehik: how complicated is the data? |
2021-07-31 21:37:23 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 21:37:43 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-07-31 21:38:07 +0200 | <raehik> | [exa]: easy, Word8->64s, some bytestrings |
2021-07-31 21:38:46 +0200 | <raehik> | Need to do null padding of data though, which I can't do easily with Builder b/c it doesn't let you view current buffer length |
2021-07-31 21:39:29 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-31 21:39:44 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 21:39:58 +0200 | <[exa]> | I'd go with binary. cereal's got some extra parsing machinery if the data is somehow complicated but I doubt it's going to be useful here |
2021-07-31 21:41:32 +0200 | alx741 | (~alx741@181.196.69.85) (Ping timeout: 272 seconds) |
2021-07-31 21:42:06 +0200 | <raehik> | hm, neither of them expose buffer length, weird |
2021-07-31 21:42:50 +0200 | <[exa]> | you mean "how much bytes are left to read" ? I remember that was problematic for some reason |
2021-07-31 21:43:08 +0200 | <raehik> | no I mean for serializing |
2021-07-31 21:43:35 +0200 | <raehik> | I have a bytestring, and I need to serialize it as a 64-byte block |
2021-07-31 21:43:52 +0200 | <raehik> | so I need to pad it with nulls depending on length (assume it's not overlong) |
2021-07-31 21:44:09 +0200 | Merfont | (~Kaiepi@156.34.44.192) |
2021-07-31 21:44:10 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 21:44:15 +0200 | Kaipi | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-07-31 21:44:48 +0200 | <raehik> | I could write my own monad on top of any of those serializers to handle it. Was hoping it existed elsewhere though |
2021-07-31 21:45:13 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 21:45:23 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 252 seconds) |
2021-07-31 21:46:11 +0200 | <[exa]> | hm yeah putN could probably be implemented a bit more efficiently, knowing how much buffer space is left ahead |
2021-07-31 21:48:30 +0200 | Merfont | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-07-31 21:48:47 +0200 | Merfont | (~Kaiepi@156.34.44.192) |
2021-07-31 21:50:10 +0200 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-07-31 21:50:16 +0200 | <raehik> | I'm able to do it on the parsing side in a pleasant manner by checking before and after cursor positions, so it can be a "wrapper" on any parser |
2021-07-31 21:51:30 +0200 | <raehik> | Was hoping I could do the same on the serialize/printing side, but I can't get the length of a builder without building it. ah well I'll go the lazy way |
2021-07-31 21:54:16 +0200 | alx741 | (~alx741@186.178.108.145) |
2021-07-31 21:54:27 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:ac04:a5c:ba91:d865) |
2021-07-31 21:54:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 21:55:55 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 21:58:54 +0200 | Guest9 | (~Guest9@103.240.169.29) |
2021-07-31 22:00:03 +0200 | jakalx | (~jakalx@base.jakalx.net) |
2021-07-31 22:00:48 +0200 | geekosaur | (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b))) |
2021-07-31 22:00:48 +0200 | allbery_b | (~geekosaur@xmonad/geekosaur) |
2021-07-31 22:00:52 +0200 | allbery_b | geekosaur |
2021-07-31 22:02:55 +0200 | Merfont | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-07-31 22:03:17 +0200 | Merfont | (~Kaiepi@156.34.44.192) |
2021-07-31 22:10:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 22:11:35 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 22:11:39 +0200 | <ixlun> | Hi all, I'm using pipes and I'm trying to yield all values from a Mutable Vector: `lift $ VSM.mapM_ yield outBuf` but the type of that is `Proxy () IQ () IQ (Proxy x'0 x0 () a0 m0) ()`. and it can't match the inner `Proxy` with `IO`. Any ideas? |
2021-07-31 22:13:32 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 22:13:49 +0200 | MorrowM | (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
2021-07-31 22:19:43 +0200 | Erutuon | (~Erutuon@user/erutuon) (Quit: WeeChat 2.8) |
2021-07-31 22:19:46 +0200 | fresheyeball | (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
2021-07-31 22:22:04 +0200 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 272 seconds) |
2021-07-31 22:26:22 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) (Ping timeout: 256 seconds) |
2021-07-31 22:27:59 +0200 | nuncanada | (~dude@179.235.162.215) (Read error: Connection reset by peer) |
2021-07-31 22:28:14 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-07-31 22:28:23 +0200 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-07-31 22:29:21 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:8cab:6f70:b160:7f9) |
2021-07-31 22:30:42 +0200 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds) |
2021-07-31 22:31:14 +0200 | <dsal> | ixlun: Missing a bit of context, but if you're trying to have a value escape the context in which the vector is mutable, that's designed to not be possible. |
2021-07-31 22:31:34 +0200 | Merfont | (~Kaiepi@156.34.44.192) (Ping timeout: 272 seconds) |
2021-07-31 22:32:28 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) (Remote host closed the connection) |
2021-07-31 22:32:48 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:ac04:a5c:ba91:d865) (Ping timeout: 250 seconds) |
2021-07-31 22:34:29 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-07-31 22:34:30 +0200 | <janus> | i have been converting monochrom's Cont into a transformer. but i can't seem to define yieldGet for it |
2021-07-31 22:34:40 +0200 | Erutuon | (~Erutuon@user/erutuon) |
2021-07-31 22:34:45 +0200 | <janus> | is there some underlying theoretical reason for that? or should it be possible? |
2021-07-31 22:34:57 +0200 | <ixlun> | Here's some more info with a code snippet: https://pastebin.com/YzX8XWi6 |
2021-07-31 22:36:06 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2) |
2021-07-31 22:36:14 +0200 | <dsal> | ixlun: Yeah, it looks like you're trying to have the value from a mutable vector escape the mutable context. That's not supposed to work. You'll need to freeze the vector first. |
2021-07-31 22:36:23 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-07-31 22:36:27 +0200 | mdunnio | (~textual@205.178.28.97) |
2021-07-31 22:36:47 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-07-31 22:36:51 +0200 | <ixlun> | Ohh right, because I'm sending the value 'downstream' in the proxy? |
2021-07-31 22:37:28 +0200 | mdunnio | (~textual@205.178.28.97) (Read error: Connection reset by peer) |
2021-07-31 22:38:08 +0200 | <ixlun> | dsal: in which case, why does this work? https://pastebin.com/dG2N6mAU |
2021-07-31 22:38:24 +0200 | <ixlun> | there's no error on that code, and I've not froze the vector, but that compiles fine. |
2021-07-31 22:38:49 +0200 | <dsal> | You're lifting in the code that errors. |
2021-07-31 22:38:51 +0200 | <ixlun> | (using the `mapM_` was an attempt to clean that piece of code up) |
2021-07-31 22:39:08 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Client Quit) |
2021-07-31 22:39:14 +0200 | Vajb | (~Vajb@hag-jnsbng11-58c3a1-224.dhcp.inet.fi) |
2021-07-31 22:39:18 +0200 | nuncanada | (~dude@179.235.162.215) |
2021-07-31 22:39:32 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-07-31 22:40:34 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 22:41:40 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 22:41:40 +0200 | nuncanada | (~dude@179.235.162.215) (Client Quit) |
2021-07-31 22:42:23 +0200 | <ixlun> | Ah okay, so, the issue is that in: `mapM_ f v = forI_ v $ \i -> f =<< unsafeRead v i` the `unsafeRead` isn't lifted? |
2021-07-31 22:42:35 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2021-07-31 22:42:42 +0200 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 240 seconds) |
2021-07-31 22:42:49 +0200 | tommd | (~tommd@cpe-76-179-204-251.maine.res.rr.com) |
2021-07-31 22:43:23 +0200 | wroathe | (~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) |
2021-07-31 22:43:40 +0200 | Orimendix | (~kevin@162-221-219-5.lxtnkya3.metronetinc.net) |
2021-07-31 22:44:52 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-07-31 22:46:42 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Ping timeout: 265 seconds) |
2021-07-31 22:51:10 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.2) |
2021-07-31 22:51:47 +0200 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-07-31 22:55:02 +0200 | severen | (~severen@202.36.179.72) |
2021-07-31 22:56:34 +0200 | tommd | (~tommd@cpe-76-179-204-251.maine.res.rr.com) (Ping timeout: 240 seconds) |
2021-07-31 22:56:38 +0200 | Guest9 | (~Guest9@103.240.169.29) (Quit: Connection closed) |
2021-07-31 23:00:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 23:01:01 +0200 | acidjnk_new | (~acidjnk@p200300d0c72b9501c19bd88441742b9a.dip0.t-ipconnect.de) |
2021-07-31 23:01:13 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 23:01:22 +0200 | severen | severenr |
2021-07-31 23:02:05 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-07-31 23:02:18 +0200 | severenr | koyaa |
2021-07-31 23:02:30 +0200 | koyaa | severen |
2021-07-31 23:10:50 +0200 | elias_ | (~elias@154.27.37.188.rev.vodafone.pt) (Ping timeout: 272 seconds) |
2021-07-31 23:13:09 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Read error: Connection reset by peer) |
2021-07-31 23:13:15 +0200 | curiousgay | (~curiousga@77-120-186-48.kha.volia.net) |
2021-07-31 23:13:16 +0200 | Guest1599 | (~Guest15@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Ping timeout: 246 seconds) |
2021-07-31 23:13:24 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-07-31 23:14:03 +0200 | <raehik> | Any way to have Show print actual UTF-8 characters instead of their decimal codepoint? |
2021-07-31 23:14:17 +0200 | <geekosaur> | nope |
2021-07-31 23:14:17 +0200 | <monochrom> | putStr |
2021-07-31 23:14:34 +0200 | <c_wraith> | that's exactly what show is intended to prevent |
2021-07-31 23:14:37 +0200 | <raehik> | monochrom: dealing with a Show, not a String |
2021-07-31 23:14:59 +0200 | <c_wraith> | If it's displaying codepoints, the input was a String |
2021-07-31 23:15:13 +0200 | <c_wraith> | (or some component of it was a String) |
2021-07-31 23:15:22 +0200 | <monochrom> | "the Show must go on" |
2021-07-31 23:15:23 +0200 | <raehik> | yes, a component |
2021-07-31 23:15:53 +0200 | <monochrom> | Well that's too bad. Don't use Show. Write your own function. |
2021-07-31 23:16:27 +0200 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Ping timeout: 244 seconds) |
2021-07-31 23:16:41 +0200 | <raehik> | yes sir :( |
2021-07-31 23:16:50 +0200 | <c_wraith> | in general, if you care about formatting at all, Show is the wrong interface |
2021-07-31 23:17:09 +0200 | <raehik> | Right right I know, it was just for debugging |
2021-07-31 23:17:20 +0200 | <monochrom> | Show is one of those things that result from the compromise of multiple conflicting stakes so it tries to please everyone therefore it is of no use to anyone. |
2021-07-31 23:17:47 +0200 | <severen> | It would be nice if there was a Display/Debug split as in Rust |
2021-07-31 23:17:56 +0200 | <monochrom> | Yes absolutely. |
2021-07-31 23:18:21 +0200 | <monochrom> | For debugging, a programmer shouldn't mind escape codes all that much. |
2021-07-31 23:18:34 +0200 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds) |
2021-07-31 23:18:55 +0200 | <monochrom> | http://www.vex.net/~trebla/haskell/string-print-show-read.xhtml |
2021-07-31 23:19:01 +0200 | <raehik> | I need to check that the strings are correct/what I'm expecting |
2021-07-31 23:19:23 +0200 | <monochrom> | Use == ? |
2021-07-31 23:19:59 +0200 | <raehik> | no sorry I just mean I want to take a quick look (heh) to check that the data is all good |
2021-07-31 23:19:59 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Read error: Connection reset by peer) |
2021-07-31 23:20:23 +0200 | <raehik> | it's Japanese in UTF-8, escape codes aren't really handy |
2021-07-31 23:20:28 +0200 | <monochrom> | copy-paste to putStr |
2021-07-31 23:20:47 +0200 | MQ-17J | (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
2021-07-31 23:21:06 +0200 | <raehik> | ahhhh ofc! obvious to me now |
2021-07-31 23:21:27 +0200 | <raehik> | need to write a prettyprinter anyway I guess. waaaah |
2021-07-31 23:22:16 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) (Read error: Connection reset by peer) |
2021-07-31 23:22:24 +0200 | HotblackDesiato | (~HotblackD@gateway/tor-sasl/hotblackdesiato) |
2021-07-31 23:22:54 +0200 | bruceleewees | (~bruceleew@83.24.236.64.ipv4.supernova.orange.pl) |
2021-07-31 23:22:54 +0200 | elias_ | (~elias@154.27.37.188.rev.vodafone.pt) |
2021-07-31 23:22:55 +0200 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-07-31 23:24:10 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
2021-07-31 23:24:36 +0200 | <dsal> | I'm trying out hedgehog in this project. It feel slightly more awkward/procedural than QC with `prop :: Something -> SomethingElse -> Property` -- how does one typically model this? I'm doing stuff like `(d1,d2) <- forAll $ liftA2 (,) Gen.enumBounded Gen.enumBounded` which seems a bit awkward. Is there a more sensible way to do this? |
2021-07-31 23:25:59 +0200 | <boxscape> | I want to import Vulkan (from the vulkan package) hiding (view). If I leave out the `hiding` part (and use Lens's view), GHC tells me that there's three `view`s in scope, one from Lens and two different record fields imported by Vulkan. Adding `hiding (view)` only gets rid of one of those fields in the error message. Any idea how I can get rid of the second one? |
2021-07-31 23:27:06 +0200 | <raehik> | the unicode-show package attempts to fix my problem albeit being wobbly and incredibly slow! |
2021-07-31 23:28:08 +0200 | <monochrom> | Heh wobble and slow are bad. |
2021-07-31 23:28:31 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) (Remote host closed the connection) |
2021-07-31 23:30:12 +0200 | Kaiepi | (~Kaiepi@156.34.44.192) |
2021-07-31 23:30:27 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-07-31 23:30:31 +0200 | <janus> | dsal: you can make a Gen for each of your datatypes and then make Gens for the composed datatypes also (using their applicative, i think). why use raw tuples in testing code? |
2021-07-31 23:30:59 +0200 | <dsal> | janus: I don't want a tuple per se, I just want two of my things. |
2021-07-31 23:31:45 +0200 | <boxscape> | ah, it works if I write hiding (Datatype1(view), Datatype2(view)) |
2021-07-31 23:31:59 +0200 | <boxscape> | strange that it hides one field but not the other otherwise |
2021-07-31 23:32:08 +0200 | <janus> | dsal: you could make a "genTwo" which would be everything after the forAll in your example? that would be pretty compact in use... |
2021-07-31 23:32:43 +0200 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-07-31 23:33:32 +0200 | <dsal> | Sure, but I only need that for this one test case. I have a more complex type I've used for some other tests where it makes a bit more sense to make a gen thing, but I still often end up having more than one test input from different sources. |
2021-07-31 23:33:52 +0200 | phma_ | phma |
2021-07-31 23:36:58 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 265 seconds) |
2021-07-31 23:37:51 +0200 | <janus> | but there is nothing preventing you from having gen combinators, so i don't understand why this is a problem |
2021-07-31 23:38:15 +0200 | choucavalier_ | choucavalier |
2021-07-31 23:38:39 +0200 | Orimendix | (~kevin@162-221-219-5.lxtnkya3.metronetinc.net) (Konversation terminated!) |
2021-07-31 23:38:43 +0200 | nate3 | (~nate@108-233-125-227.lightspeed.sntcca.sbcglobal.net) |
2021-07-31 23:38:48 +0200 | choucavalier | (~choucaval@peanutbuttervibes.com) (Changing host) |
2021-07-31 23:38:48 +0200 | choucavalier | (~choucaval@user/choucavalier) |
2021-07-31 23:39:36 +0200 | hendursa1 | (~weechat@user/hendursaga) (Quit: hendursa1) |
2021-07-31 23:40:08 +0200 | hendursaga | (~weechat@user/hendursaga) |
2021-07-31 23:40:50 +0200 | <dsal> | It just feels like more work that's more explicit so far. I've only just started, though. |
2021-07-31 23:42:50 +0200 | <boxscape> | (Okay, looks like a ghc bug, I was able to replicate it on a small scale) |
2021-07-31 23:42:55 +0200 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-07-31 23:42:57 +0200 | <janus> | it's definitely more explicit than using Arbitrary, because you'd typically name the Gen's and make them top-level. i don't see it as something bad, necessarily |
2021-07-31 23:44:41 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-07-31 23:46:58 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) (Ping timeout: 240 seconds) |
2021-07-31 23:47:11 +0200 | severen | (~severen@202.36.179.72) (Quit: WeeChat 3.2) |
2021-07-31 23:47:16 +0200 | fossdd | (~fossdd@sourcehut/user/fossdd) |
2021-07-31 23:47:21 +0200 | <dsal> | This is my first, fairly simple case so far. Feels like I had to say a bunch more stuff to get the same thing done. I'm down to my most complicated example now, though, so let's see what it does when things aren't trivial. https://www.irccloud.com/pastebin/u27Irvjd/hedge.diff |
2021-07-31 23:48:35 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-07-31 23:50:07 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) (Remote host closed the connection) |
2021-07-31 23:50:09 +0200 | <dsal> | Weird. The test is failing. Maybe that's good... |
2021-07-31 23:51:31 +0200 | roboguy_ | (~roboguy_@2605:a601:afe7:9f00:549a:3ebc:6e:7e3d) |
2021-07-31 23:53:19 +0200 | doyougnu | (~user@c-73-25-202-122.hsd1.or.comcast.net) |
2021-07-31 23:53:23 +0200 | <dsal> | It's failing with a report that is... not true. I don't think it was actually testing with the code that was reporting. That's not awesome. heh |
2021-07-31 23:53:27 +0200 | lavaman | (~lavaman@98.38.249.169) |
2021-07-31 23:54:18 +0200 | mikoto-chan | (~mikoto-ch@ip-193-121-10-50.dsl.scarlet.be) (Ping timeout: 240 seconds) |
2021-07-31 23:54:42 +0200 | roboguy__ | (~roboguy_@2605:a601:afe7:9f00:8cab:6f70:b160:7f9) (Ping timeout: 240 seconds) |
2021-07-31 23:57:42 +0200 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
2021-07-31 23:58:20 +0200 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |