Logs: freenode/#haskell
| 2020-11-22 17:56:17 | <tomsmeding> | sondr3: if you get trouble with lines that start with a prefix of `b`, try using `try (string b)` instead of `string b` |
| 2020-11-22 17:56:30 | × | Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Quit: Goodbye Everyone!) |
| 2020-11-22 17:57:05 | × | lxsameer quits (lxsameer@gateway/vpn/protonvpn/lxsameer) (Ping timeout: 240 seconds) |
| 2020-11-22 17:57:08 | <tomsmeding> | sondr3: as I said, 'many' iterates until its argument fails to parse, so for 'many' to stop consuming input you'll have to make its argument fail |
| 2020-11-22 17:57:21 | <tomsmeding> | you didn't, you applied the stopping criterion "outside" the 'many' |
| 2020-11-22 17:57:55 | → | conal joins (~conal@198.8.81.205) |
| 2020-11-22 17:58:00 | <tomsmeding> | so I expect `many (notFollowedBy (string b) >> anySingle)` to work too, but just use `manyTill` :p |
| 2020-11-22 17:58:03 | <sondr3> | Yeah, I kinda knew that but got desperate when nothing worked x) |
| 2020-11-22 17:58:27 | → | solonarv joins (~solonarv@astrasbourg-653-1-156-4.w90-6.abo.wanadoo.fr) |
| 2020-11-22 17:59:21 | <sondr3> | Thanks a lot, I'm still trying to wrap my head around monadic parsers |
| 2020-11-22 17:59:56 | → | hnOsmium0001 joins (uid453710@gateway/web/irccloud.com/x-ndxrdxmbozimfblk) |
| 2020-11-22 17:59:57 | <merijn> | sondr3: Have you read the Real World Haskell chapter on parsec? |
| 2020-11-22 18:00:08 | <merijn> | sondr3: The high level gist/design should be basically the same |
| 2020-11-22 18:00:28 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 272 seconds) |
| 2020-11-22 18:00:32 | <tomsmeding> | ah I see that megaparsec's `string` is indeed parsec's `try . string` merijn |
| 2020-11-22 18:00:34 | → | cosimone_ joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) |
| 2020-11-22 18:00:38 | <tomsmeding> | https://hackage.haskell.org/package/megaparsec-9.0.1/docs/Text-Megaparsec.html#v:tokens |
| 2020-11-22 18:00:42 | <sondr3> | No, I've followed markkps tutorial on megaparsec, I should probably take a look |
| 2020-11-22 18:01:17 | <tomsmeding> | sondr3: that means that you won't have to do `try (string b)`, just disregard that :) |
| 2020-11-22 18:01:21 | <tomsmeding> | in parsec you do |
| 2020-11-22 18:01:56 | × | cosimone quits (~cosimone@5.170.242.170) (Ping timeout: 240 seconds) |
| 2020-11-22 18:01:56 | cosimone_ | is now known as cosimone |
| 2020-11-22 18:02:41 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 2020-11-22 18:04:11 | → | conal_ joins (~conal@64.71.133.70) |
| 2020-11-22 18:04:13 | → | Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) |
| 2020-11-22 18:04:19 | × | conal quits (~conal@198.8.81.205) (Ping timeout: 246 seconds) |
| 2020-11-22 18:07:33 | → | rotty joins (rotty@ghost.xx.vu) |
| 2020-11-22 18:08:29 | <maerwald> | yeah, string parsers in megaparsec backtrack automatically |
| 2020-11-22 18:08:32 | <maerwald> | it's confusing |
| 2020-11-22 18:09:10 | × | conal_ quits (~conal@64.71.133.70) (Read error: Connection reset by peer) |
| 2020-11-22 18:09:11 | <maerwald> | still find attoparsec API to be the cleanest |
| 2020-11-22 18:09:36 | × | kritzefitz quits (~kritzefit@212.86.56.80) (Ping timeout: 256 seconds) |
| 2020-11-22 18:09:53 | <koz_> | maerwald: Because attoparsec backtracks everything? |
| 2020-11-22 18:09:58 | <maerwald> | yeah |
| 2020-11-22 18:11:06 | → | conal joins (~conal@64.71.133.70) |
| 2020-11-22 18:11:29 | → | ph88 joins (~ph88@2a02:8109:9e00:7e5c:5dee:702e:778c:4427) |
| 2020-11-22 18:11:48 | × | cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone) |
| 2020-11-22 18:12:11 | → | lxsameer joins (~lxsameer@unaffiliated/lxsameer) |
| 2020-11-22 18:13:17 | × | borne quits (~fritjof@200116b864212200f1dc39039d201adf.dip.versatel-1u1.de) (Quit: WeeChat 2.9) |
| 2020-11-22 18:13:35 | → | sagax joins (~sagax_nb@213.138.71.146) |
| 2020-11-22 18:14:36 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 2020-11-22 18:15:02 | × | cr3 quits (~cr3@192-222-143-195.qc.cable.ebox.net) (Ping timeout: 272 seconds) |
| 2020-11-22 18:15:07 | → | boxscape joins (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) |
| 2020-11-22 18:15:22 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 2020-11-22 18:15:29 | <hekkaidekapus> | Since we’re on the parsing topic, let me shamelessly plug “A Typed Recursive Ascent-Descent Backend for Happy” <https://pp.ipd.kit.edu/uploads/publikationen/knothe20bachelorarbeit.pdf>. I find that very cool :P |
| 2020-11-22 18:15:59 | <hekkaidekapus> | And we have a pull request, folks! <https://github.com/simonmar/happy/pull/174> |
| 2020-11-22 18:16:02 | × | ph88 quits (~ph88@2a02:8109:9e00:7e5c:5dee:702e:778c:4427) (Ping timeout: 260 seconds) |
| 2020-11-22 18:23:23 | <boxscape> | hmm how come with -XTypeOperators, we can use operators both for type constructors and values, but type constructors still can't use lowercase identifiers? |
| 2020-11-22 18:23:41 | <boxscape> | iow is it just for historical reasons or is there some thought behind it? |
| 2020-11-22 18:24:12 | <tomsmeding> | because then they look like type variables? |
| 2020-11-22 18:24:37 | <boxscape> | but doesn't the same argument apply if you type `data a ^^^ b`, tomsmeding? |
| 2020-11-22 18:24:46 | <boxscape> | or wait |
| 2020-11-22 18:24:47 | <boxscape> | I misread |
| 2020-11-22 18:24:49 | <boxscape> | you're right |
| 2020-11-22 18:24:54 | <boxscape> | thanks :) |
| 2020-11-22 18:25:03 | → | juuandyy joins (~juuandyy@90.166.144.65) |
| 2020-11-22 18:25:03 | <tomsmeding> | :) |
| 2020-11-22 18:25:38 | × | gproto23 quits (~gproto23@unaffiliated/gproto23) (Ping timeout: 260 seconds) |
| 2020-11-22 18:25:47 | <tomsmeding> | nice operator though, ^^^; I wonder what it means |
| 2020-11-22 18:26:03 | → | cr3 joins (~cr3@192-222-143-195.qc.cable.ebox.net) |
| 2020-11-22 18:26:06 | <koz_> | The Chernobyl cat operator. |
| 2020-11-22 18:26:49 | <tomsmeding> | most appropriately used in prefix form, as (^^^) ? |
| 2020-11-22 18:27:32 | <ski> | boxscape : it used to be that infix type operators had to start with a `:'. otherwise they'd be infix type variables (e.g. `second :: Arrow (~>) => (b0 ~> b1) -> ((a,b0) ~> (a,b1))') |
| 2020-11-22 18:27:54 | <boxscape> | ski oh, interesting, I just tried to see if operators can be type variabless |
| 2020-11-22 18:28:05 | ski | misses being able to do that |
| 2020-11-22 18:28:32 | <boxscape> | I suppose the effort to unify the term and type levels should bring that back if/when it happens |
| 2020-11-22 18:28:35 | <ski> | s/infix type operators/infix type constructor operators/ |
| 2020-11-22 18:31:05 | <ski> | (i didn't really think having to start the type constructors with `:' was that onerous .. but i guess some people did ?) |
| 2020-11-22 18:31:22 | → | jonatanb joins (jonatanb@gateway/vpn/protonvpn/jonatanb) |
| 2020-11-22 18:32:13 | <boxscape> | I imagine the major reason for the change was so you can do it in type family names rather than type constructor names |
| 2020-11-22 18:32:22 | <geekosaur> | yeh, they didn't like to think of e.g. :+ |
| 2020-11-22 18:32:37 | × | phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 264 seconds) |
| 2020-11-22 18:34:31 | → | sunmaster joins (~locality@p200300c13f3eab00d988e5392b986da6.dip0.t-ipconnect.de) |
| 2020-11-22 18:34:46 | <sunmaster> | Hello all together |
| 2020-11-22 18:35:36 | × | jonatanb quits (jonatanb@gateway/vpn/protonvpn/jonatanb) (Ping timeout: 240 seconds) |
| 2020-11-22 18:35:46 | <boxscape> | hi |
| 2020-11-22 18:36:17 | <sunmaster> | Is there any - more or less - easy description how the type derivation in haskell works? |
| 2020-11-22 18:37:32 | × | theorbtwo quits (~theorb@cpc81822-swin19-2-0-cust3.3-1.cable.virginm.net) (Remote host closed the connection) |
| 2020-11-22 18:39:35 | <sunmaster> | I know that there is a description using the formal language of semantics. |
| 2020-11-22 18:40:05 | × | Fractalis quits (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) (Quit: Goodbye Everyone!) |
| 2020-11-22 18:40:28 | → | Fractalis joins (~Fractalis@2601:987:280:8d40:eda9:f9e1:2072:cea7) |
| 2020-11-22 18:40:53 | × | alp quits (~alp@2a01:e0a:58b:4920:4da5:6445:b4de:973) (Ping timeout: 272 seconds) |
| 2020-11-22 18:43:08 | × | Lycurgus quits (~niemand@98.4.114.74) (Quit: Exeunt) |
| 2020-11-22 18:43:17 | <gehmehgeh> | hmm, is it just me or doesn't https://hackage.haskell.org/package/hood build with cabal? "could not resolve dependencies" it says |
| 2020-11-22 18:44:34 | × | boxscape quits (54a35f37@gateway/web/cgi-irc/kiwiirc.com/ip.84.163.95.55) (Ping timeout: 260 seconds) |
| 2020-11-22 18:45:02 | → | phaul joins (~phaul@ruby/staff/phaul) |
| 2020-11-22 18:45:58 | → | sunmaster1 joins (~locality@p5b271d5d.dip0.t-ipconnect.de) |
| 2020-11-22 18:46:10 | × | Tops2 quits (~Tobias@dyndsl-095-033-027-066.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 2020-11-22 18:46:28 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 265 seconds) |
| 2020-11-22 18:47:13 | × | Sarma quits (~Amras@unaffiliated/amras0000) (Ping timeout: 272 seconds) |
| 2020-11-22 18:48:22 | × | sunmaster quits (~locality@p200300c13f3eab00d988e5392b986da6.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 2020-11-22 18:48:38 | → | czwartyeon joins (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) |
| 2020-11-22 18:49:12 | → | neiluj joins (~jco@91-167-203-101.subs.proxad.net) |
| 2020-11-22 18:51:31 | <hekkaidekapus> | gehmehgeh: It depends on the GHC’s version you’re using. |
| 2020-11-22 18:52:29 | <hekkaidekapus> | That package hasn’t been updated in a while, so it doesn’t build with the latest versions but there are build plans for old GHCs. |
| 2020-11-22 18:53:14 | × | czwartyeon quits (~czwartyeo@77-45-55-99.sta.asta-net.com.pl) (Ping timeout: 265 seconds) |
| 2020-11-22 18:53:45 | × | conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.) |
| 2020-11-22 18:54:48 | → | conal joins (~conal@64.71.133.70) |
| 2020-11-22 18:54:53 | × | conal quits (~conal@64.71.133.70) (Client Quit) |
| 2020-11-22 18:55:19 | → | conal joins (~conal@64.71.133.70) |
All times are in UTC.