Logs: liberachat/#haskell
| 2021-06-11 20:50:52 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
| 2021-06-11 20:52:01 | <safinaskar> | dminuoso: this paper doesn't mention parsing (ctrl-f "pars" shows nothing) |
| 2021-06-11 20:52:42 | × | machined1od quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
| 2021-06-11 20:52:56 | <safinaskar> | well, i can write my proof for you if you want |
| 2021-06-11 20:53:41 | <qrpnxz> | i keep hearing name Oleg but idk which Oleg ppl are talking about |
| 2021-06-11 20:54:33 | <nshepperd> | i don't think LogicT (Parsec..) will do what you want |
| 2021-06-11 20:55:01 | <dminuoso> | safinaskar: It's a monad transformer. ParsecT is also a monad transformer. You can layer them ontop of each other to get both backtracking, fair disjunction/conjunction and parsing. If you add say ChronicleT ontop, you get fine error control too. |
| 2021-06-11 20:55:06 | <nshepperd> | as in, the <|> will not backtrack the parsing state |
| 2021-06-11 20:55:15 | <dminuoso> | nshepperd: interleave will. |
| 2021-06-11 20:56:21 | <nshepperd> | it will not |
| 2021-06-11 20:56:23 | <dminuoso> | Why not? |
| 2021-06-11 20:56:45 | <safinaskar> | qrpnxz: look at authors list of mentioned paper. there is one Oleg in it: Oleg Kiselyov |
| 2021-06-11 20:56:53 | <nshepperd> | the LogicT interface cannot do anything that cannot be done with LogicT IO |
| 2021-06-11 20:57:11 | × | mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 272 seconds) |
| 2021-06-11 20:57:35 | <safinaskar> | nshepperd: i am sure logict will not do what i need. because i just proved it is not possible using monads |
| 2021-06-11 20:57:36 | <nshepperd> | including unlaunching missiles |
| 2021-06-11 20:57:43 | → | bilegeek joins (~bilegeek@2600:1008:b06d:65ed:93d7:e6a:a06d:9e4) |
| 2021-06-11 21:00:46 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 2021-06-11 21:01:07 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-06-11 21:01:49 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 2021-06-11 21:02:08 | <dminuoso> | nshepperd: Is my thinking flipped? I pointed out earlier I wasnt sure about the order in which they need to go. |
| 2021-06-11 21:02:12 | zebragg | is now known as zebrag |
| 2021-06-11 21:02:40 | <dminuoso> | But your argument makes sense |
| 2021-06-11 21:02:58 | × | hendursa1 quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
| 2021-06-11 21:03:15 | forell_ | is now known as forell |
| 2021-06-11 21:04:09 | <nshepperd> | it doesn't work either way around afaict |
| 2021-06-11 21:05:21 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 2021-06-11 21:06:05 | <dminuoso> | That cant be right |
| 2021-06-11 21:06:32 | <dminuoso> | Let's think of LogicT as just ListT but done correctly |
| 2021-06-11 21:06:40 | <dminuoso> | Just for the sake of argument, so we can unmtl this |
| 2021-06-11 21:07:11 | <nshepperd> | if you use LogicT Parsec you get an unbiased <|> that doesn't backtrack the parser state and therefore acts like nonsense |
| 2021-06-11 21:07:33 | <monochrom> | LogicT is CPS/Church-encoding form of correct ListT. No semantic difference. |
| 2021-06-11 21:07:41 | <nshepperd> | if you use ParsecT Logic you get parsec's <|> which is biased and backtracks |
| 2021-06-11 21:07:59 | <safinaskar> | let me state my theorem about impossibility of monad i want: https://paste.debian.net/1200914/ |
| 2021-06-11 21:09:00 | <safinaskar> | this means that any logicT solutions will not go, at least for my task |
| 2021-06-11 21:09:15 | <safinaskar> | if you are still not convinced i can write down proof. do you want this? (this will take another 10 mins) |
| 2021-06-11 21:11:57 | <dminuoso> | nshepperd: What you say makes sense. |
| 2021-06-11 21:12:40 | × | zeenk quits (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!) |
| 2021-06-11 21:13:37 | × | Shaeto quits (~Shaeto@94.25.234.158) (Quit: WeeChat 3.1) |
| 2021-06-11 21:14:38 | <monochrom> | Actually why are we still talking about LogicT when the asker has already rejected all monads :) |
| 2021-06-11 21:15:37 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds) |
| 2021-06-11 21:15:54 | → | hendursaga joins (~weechat@user/hendursaga) |
| 2021-06-11 21:16:53 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1) |
| 2021-06-11 21:18:05 | <nshepperd> | reject all monads! return to the trees! |
| 2021-06-11 21:20:43 | <safinaskar> | i wrote proof! https://paste.debian.net/1200915/ |
| 2021-06-11 21:33:30 | × | bor0 quits (~boro@user/bor0) (Quit: Leaving) |
| 2021-06-11 21:35:07 | <nshepperd> | when thinking about monad transformers, imagining them layered over IO is a powerful intuition pump. i recommend it |
| 2021-06-11 21:35:35 | <dminuoso> | nshepperd: Yeah. |
| 2021-06-11 21:36:09 | <Hecate> | heya cabal wizards, it looks like my /tmp is not a good place for cabal to download the Hackage index https://paste.tomsmeding.com/a3Y9DxwE |
| 2021-06-11 21:36:25 | <Hecate> | what is the flag to tell it to put the index file elsewhere? |
| 2021-06-11 21:38:15 | <safinaskar> | Hecate: mount file system you need to /tmp |
| 2021-06-11 21:38:20 | <safinaskar> | :) |
| 2021-06-11 21:38:46 | <dminuoso> | Hecate: Set $CABAL_DIR ? |
| 2021-06-11 21:39:37 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 2021-06-11 21:40:13 | <Hecate> | dminuoso: I'm pretty sure $CABAL_DIR is a secondary destination, after /tmp |
| 2021-06-11 21:40:32 | <monochrom> | I layered ParsecT over ContT r IO and get very powerful unintuition. >:) |
| 2021-06-11 21:40:55 | <monochrom> | http://www.vex.net/~trebla/haskell/parsec-generally.xhtml#ContT |
| 2021-06-11 21:40:57 | <nshepperd> | haha |
| 2021-06-11 21:41:21 | → | MQ-17J joins (~MQ-17J@8.21.10.116) |
| 2021-06-11 21:42:29 | <monochrom> | I add ContT like people add hot sauce |
| 2021-06-11 21:42:36 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 2021-06-11 21:43:40 | <nshepperd> | delicious |
| 2021-06-11 21:44:06 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 244 seconds) |
| 2021-06-11 21:47:27 | × | phma quits (phma@2001:5b0:211f:5688:1a5c:72d9:f31b:5496) (Read error: Connection reset by peer) |
| 2021-06-11 21:47:40 | <maerwald> | ContT is just awful |
| 2021-06-11 21:47:50 | <maerwald> | but good if you want to confuse yourself |
| 2021-06-11 21:51:29 | → | phma joins (~phma@host-67-44-208-20.hnremote.net) |
| 2021-06-11 21:51:41 | <monochrom> | awful compared to what alternative? |
| 2021-06-11 21:52:01 | <dminuoso> | Hecate: https://hackage.haskell.org/package/directory-1.3.6.2/docs/System-Directory.html#v:getTemporaryDirectory |
| 2021-06-11 21:52:10 | <dminuoso> | Hecate: I could trace at least one code path back to using this. |
| 2021-06-11 21:52:28 | <dminuoso> | Try setting one of those environment variables |
| 2021-06-11 21:53:01 | <dminuoso> | TMPDIR in particualr |
| 2021-06-11 21:53:38 | × | ozataman quits (~ozataman@71.190.112.58) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 2021-06-11 21:53:58 | <maerwald> | monochrom: the documentation in mtl already outlines it |
| 2021-06-11 21:54:10 | <maerwald> | "Before using the Continuation monad, be sure that you have a firm understanding of continuation-passing style and that continuations represent the best solution to your particular design problem. Many algorithms which require continuations in other languages do not require them in Haskell, due to Haskell's lazy semantics. Abuse of the Continuation monad can produce code that is impossible to |
| 2021-06-11 21:54:12 | <maerwald> | understand and maintain." |
| 2021-06-11 21:54:14 | <maerwald> | and it's true |
| 2021-06-11 21:54:26 | <Hecate> | dminuoso: fantastic, thanks :) |
| 2021-06-11 21:54:46 | <maerwald> | I've never seen real world haskell code that can't do without it |
| 2021-06-11 21:54:57 | → | ozataman joins (~ozataman@71.190.112.58) |
| 2021-06-11 21:55:26 | <dminuoso> | maerwald: I use continuations in a custom parser situation to avoid relying on deforestation for adequate performance. |
| 2021-06-11 21:55:43 | <dminuoso> | But, this is a bit of a special case. :) |
| 2021-06-11 21:55:51 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-06-11 21:56:55 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 2021-06-11 21:56:58 | <maerwald> | streamly needs it, but is uses its own representation |
| 2021-06-11 21:57:23 | <dminuoso> | megaparsec and attoparsec both use continuations internally too |
| 2021-06-11 21:57:36 | <monochrom> | A good use case is converting with-style programming "withFoo (\h -> ...)" to monadic programming "do { h <- ContT withFoo; ... }" |
| 2021-06-11 21:58:09 | <monochrom> | Because, quite frankly, with-style programming is already continuation-passing-style programming. |
| 2021-06-11 21:59:33 | <maerwald> | unlike many others... I agree with the python zen: explicit is better than implicit |
| 2021-06-11 22:00:01 | <monochrom> | Huh, Python is the posterboy for explicitness? Don't kid me. |
| 2021-06-11 22:00:08 | Rembane_ | hands out swords |
| 2021-06-11 22:00:29 | <maerwald> | monochrom: I'm talking about the zen, not python |
| 2021-06-11 22:00:40 | <maerwald> | there's a reason the zen exists :> |
| 2021-06-11 22:01:00 | <monochrom> | I guess then Haskell zen is dynamic typing. |
| 2021-06-11 22:01:02 | <maerwald> | if python was the zen, there would be no zen |
| 2021-06-11 22:02:16 | <monochrom> | But I'm not sure why implicitness is brought up. |
| 2021-06-11 22:02:41 | <monochrom> | Both "withFoo (\h -> ...)" and "ContT withFoo" are very explicit. |
| 2021-06-11 22:03:08 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:5cec:59a9:cebf:aa78) |
| 2021-06-11 22:03:44 | × | sheepduck quits (~sheepduck@2607:fea8:2a61:4800::6b7b) (Remote host closed the connection) |
| 2021-06-11 22:03:52 | <maerwald> | Transformer stacks in general are rather implicit... you're hiding (potentially non-trivial logic) in the bind operator, including the interaction of all the layers. It's implicit and non-declarative |
All times are in UTC.