Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
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.