yes, there's an argument for using only limited optimisation during development / that's pretty much what -Og is for" => no, AFAIK -O is for limited optimization during development, -Og is a close variant of that that specifically won't do optimizations that would confuse a runtime debugger (provided you use a new enough version of gdb)
< 1566370859 484329 :b_jonas!~x@catv-176-63-24-101.catv.broadband.hu PRIVMSG #esoteric :s/runtime/interactive/
< 1566371156 787960 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If compilers got better in everything why are they way slow?
< 1566371300 260905 :b_jonas!~x@catv-176-63-24-101.catv.broadband.hu PRIVMSG #esoteric :shachaf: they're not slow. I can compile anything much faster than I used to be able to on a current machine than how much it took me on an ancient machine with gcc 2.95
< 1566371331 140545 :b_jonas!~x@catv-176-63-24-101.catv.broadband.hu PRIVMSG #esoteric :at least, they didn't slow down so much, so with faster hardware, it is effectively faster
< 1566371338 30847 :b_jonas!~x@catv-176-63-24-101.catv.broadband.hu QUIT :Remote host closed the connection
< 1566371551 42579 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :tcc is way faster than gcc
< 1566371562 791871 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric
< 1566371635 793928 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Good morning. I disagree with the statement "All continuations are delimited".
< 1566371701 988808 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :If you accept a model where a computation can run without end, such as (I dunno) Turing machines, then I think you have to accept there are continuations without end too.
< 1566371789 475292 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Even on a real computer, when the OS starts a program, it passes it a continuation (conceptually at least), and when that program "terminates", all it's doing, is continuing that continuation.
< 1566372050 66282 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I have a good feel for how delimited continuations work now but I'd like an implementation to test some things with.
< 1566372053 605931 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is there one?
< 1566372162 921916 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: I have such a language bookmarked, need to find it. It uses prompt/control I think
< 1566372174 316246 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Does Racket or something have it?
< 1566372195 441356 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: https://github.com/manuel/wat-js
< 1566372205 517689 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That is not a promising URL.
< 1566372245 696976 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :That's all I got.
< 1566372253 290591 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'm not really into these thigns.
< 1566372302 793438 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :meanwhile a duckduckgo search for "racket delimited continuations" returns a hit on the Racket docs
< 1566372306 380055 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess it's just that the implementation is in JavaScript or something?
< 1566372330 660220 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I did look at the Racket documentation but I couldn't quickly figure out a way to make it work, or whether shift/reset is included at all.
< 1566372364 502659 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :One thing that I'd like to have along with delimited continuations is something like destructors or Go's "defer", code that runs when you exit a scope.
< 1566372369 165758 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Looks like it's got call/prompt
< 1566372391 668156 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Maybe I just need to figure out the right #lang incantation.
< 1566372433 861415 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: https://docs.racket-lang.org/reference/cont.html lists shift and reset and cupto and prompt and allllll the things
< 1566372473 181249 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :re destructors, I think you'd use dynamic-wind for conventional continuations
< 1566372546 422127 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, so they do.
< 1566372554 300746 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess I just needed (require racket/control)
< 1566372744 406095 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, some of my questions have been answered.
< 1566372845 884609 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess it's even better than I thought in most respects.
< 1566372876 283351 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Can you do the thing I want? I want a thing that creates an early exit point that can be used later.
< 1566372898 815144 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Something like (reset (let ((exit ...)) (...whatever, which may include more resets... (exit x))))
< 1566373336 622096 :xkapastel!uid17782@gateway/web/irccloud.com/x-utlobjrzauauulxo JOIN :#esoteric
< 1566373671 901385 :AnotherTest!~turingcom@ptr-82l26zcdc6imrwoapg3.18120a2.ip6.access.telenet.be JOIN :#esoteric
< 1566374091 333144 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Maybe the answer is that I should be using a prompt tag instead of shift/reset.
< 1566374372 44704 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric
< 1566374380 196502 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 NICK :lob_jonas
< 1566374400 825992 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :That said, the programs that we can compile have gotten huge, which is part of why compilation can be slow.
< 1566374576 327691 :atslash!~atslash@static.231.107.9.5.clients.your-server.de JOIN :#esoteric
< 1566374641 959141 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: if you want an exit point, which is a much simpler special case of a continuation to which you can only go out in the stack, not in again once you exited the frame where you created it, then try call/ec, see "https://docs.racket-lang.org/reference/cont.html?q=call%2Fec#%28def._%28%28lib._racket%2Fprivate%2Fletstx-scheme..rkt%29._call%2Fec%
< 1566374642 412383 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :29%29"
< 1566374675 798432 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it's like longjmp because it can jump out from deep inside a function call, but not back once the setjmp exited
< 1566374683 667573 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, I saw it.
< 1566374726 921309 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What I actually want is neither of them.
< 1566374729 466736 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :except it differs from longjmp because it still handles dynamic-wind destructors
< 1566374746 822034 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you want something in between, delimited?
< 1566374852 565929 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you could create a weak cell or ephemeron or whatever those are called these days, where the weak key points to a dummy object that you create in the stack frame to which you want to delimit the continuation, and the value holds the continuation itself. then you can't invoke the continuation through this once the delimiting stack frame has exited.
< 1566374858 321922 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, what I actually want is evaluated entirely at compiletime, for one.
< 1566374870 275217 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't want any continuations or even indirect jumps at runtime.
< 1566374873 908862 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :not only you can't invoke it, it can be garbage collected some time after the stack frame exits
< 1566374882 622885 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :oh... that's different
< 1566374892 42382 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But the semantics might be similar in other ways.
< 1566374957 721419 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :so you want something like a goto/comefrom?
< 1566374990 589267 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :only it can see the label in an outer function that created the closure, lexically?
< 1566375035 461097 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Maybe?
< 1566375068 344500 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and do you want it to be able to re-enter a stack frame too, not just exit?
< 1566375086 301139 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think maybe prompt-at is something like what I want. But it seems to want you to make your own tag for some reason? I must be misunderstanding it.
< 1566375086 341142 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :even through a closure that you leak out? nah, that'd be difficult
< 1566375096 620696 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :There should be no closures since it all happens at compiletime.
< 1566375109 346990 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Continuations are like the least compile-time thing I can think of
< 1566375173 139145 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's why I didn't want to model my feature as continuations, at first.
< 1566375184 854947 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But I think it might just be the right thing unfortunately.
< 1566375281 800313 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :If it's just the right thing, why is it unfortunate? You speak in riddles.
< 1566375408 741685 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I can do part of what I want with the shift/reset in http://hackage.haskell.org/package/CC-delcont-0.2.1.0/docs/Control-Monad-CC.html , at least
< 1566375422 77941 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, it's unfortuantely because delimited continuations are super-mega-complicated
< 1566375425 81372 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :s/ly//
< 1566375428 84093 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :May I suggest you write some test cases for the feature, so that you at least have a clear idea what it... does?
< 1566375439 166614 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sure, I've talked about some of this before.
< 1566375449 876495 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Not talk, though, test case
< 1566375490 114501 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, that would be easier if I knew what it was exactly. But then I wouldn't need to learn from continuations.
< 1566375505 44326 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The test cases are to help you know what it is exactly
< 1566375578 778031 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I have a 2000 line file full of various examples trying various things.
< 1566375591 557894 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :One thing. Many test cases for one thing.
< 1566375628 152850 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Most of the file is about this one feature.
< 1566375686 146995 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm a bit confused by what you're asking. You want coherent working test cases for this thing, but the problem is that I'm confused about what this thing is.
< 1566375728 297998 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Maybe I can try it anyway.
< 1566375789 727355 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :How would you identify this thing? "In this instance I would expect it to do this, in this other instance I would expect it to... (etc)" These are test cases.
< 1566375816 198129 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :https://github.com/rain-1/continuations-study-group/blob/master/scripts/2010-asai-kitani-eval11-numbers.ml
< 1566375845 136138 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :there is a compiler and interpreter that implements lambda calculus with delimited continuations
< 1566376117 306678 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 246 seconds
< 1566376335 444378 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric
> 1566376398 905870 PRIVMSG #esoteric :14[[07Alphabetti spaghetti14]]4 10 02https://esolangs.org/w/index.php?diff=65589&oldid=46644 5* 03Stasoid 5* (+120) 10/* Interpreter */
< 1566376883 869707 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: http://slbkbs.org/tmp/2019-08-21-cpressey-test-cases.txt is something.
< 1566376897 605744 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :These aren't actually test cases because I don't know what these lambdas actually are.
< 1566377087 750318 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: That is at least clearer.
< 1566377184 5884 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 JOIN :#esoteric
< 1566377184 67929 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :h
< 1566377201 924735 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :e
< 1566377235 377051 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :actually the spelling of queue makes sense
< 1566377238 946392 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :Q-ue-ue
< 1566377372 910454 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :how about the spelling of deque?
< 1566377418 741367 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :or that of cue?
< 1566377464 999371 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :cue - ck (c sound) - ue
< 1566377469 331002 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :ck-u-e
< 1566377472 873923 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :it makes sense
< 1566377853 596395 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :got it?
< 1566377954 466315 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: This is my "compile time" interpretation: ` is syntactic sugar (or rather the lack of it) for ;. @ is a label just after the block it's used in. defer is remembered when it's seen, but code isn't generated for it, until a jump out of the block.
< 1566378023 379028 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I agree on the latter two.
< 1566378023 636466 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :is this related to esolangs or
< 1566378028 670303 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm not sure what you mean by the first one?
< 1566378168 924389 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :for (xs, \x -> { BODY }) <==> { x := for(xs)`; BODY }
< 1566378180 840158 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :looks like you could transform that syntactically?
< 1566378193 334142 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :defer is special because it inserts the code at every exit (once at the block's }, and once for uses of @, I suppose).
< 1566378202 14051 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, it's certainly intended to be a syntactic transformation.
< 1566378231 662550 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :{ x := for(xs); y := for(ys); BODY } turns into for(xs, \x -> for(ys, \y -> { BODY }))
< 1566378242 940952 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :ok, I have to afk for a bit, but it doesn't look like you need to think much about continuations for this
< 1566378243 945592 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Er, I forgot the two `s in the left side.
< 1566378248 583185 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :you can use staging to make things happen at compile time
< 1566378273 702083 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And { x := for(for(xss)`)`; BODY } turns into for(xss, \xs -> for(xs, \x -> { BODY })) and so on.
< 1566378276 943734 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :delimited continuations + staging is a powerful technique
< 1566378298 810642 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :http://okmij.org/ftp/meta-programming/calculi.html#circle-shift
< 1566378301 274183 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I agree that this is just a syntactic transformation, that's kind of the point.
< 1566378325 277414 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :One question here is, what is "for", and what's the type of "exit", and what are these lambdas?
< 1566378336 108111 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :test
< 1566378396 432294 :tromp!~tromp@ip-213-127-58-74.ip.prioritytelecom.net QUIT :Remote host closed the connection
< 1566379229 410062 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :"for" is something like a function, but evaluated/inlined at compiletime.
< 1566379267 772020 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :"exit" is also a thing like that, and so is the argument to "for".
< 1566379312 417696 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :These are very similar to regular delimited continuations, except for the demand that they only exist at compiletime. So you can't pass "exit" or one of these lambdas as an argument to a regular function.
< 1566379377 338583 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you know of a language that has that kind of thing?
< 1566379434 921459 :tromp!~tromp@2a02:a210:1585:3200:1029:76b0:25b8:cbfd JOIN :#esoteric
< 1566379541 462014 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: how about... the language you're eventually going to create to test this thing?
< 1566379641 235685 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: I think one reason you don't really need continuations for this is because you don't actually retry anything with these operators.
< 1566379651 840564 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :"Continuations" at compile-time are "labels".
< 1566379655 982492 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Roughly speaking.
< 1566379659 800039 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :afk again.
< 1566379667 76443 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :fun fact: a town in west virginia requested foreign aid from the USSR to repair a bridge
< 1566379705 840996 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: Retry?
< 1566379768 494056 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I agree about continuations at compile-time.
< 1566379791 79051 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This is why I said for a long time that I don't really want continuations because what I want is much simpler.
< 1566380164 867073 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :lob_jonas: Yes, that sounds like a good one.
< 1566381731 57608 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru JOIN :#esoteric
< 1566382581 591450 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 PRIVMSG #esoteric :hi
< 1566382622 439831 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Quit: Ping timeout (120 seconds)
< 1566382778 708682 :andrewtheircer!b2de15f9@gateway/web/cgi-irc/kiwiirc.com/ip.178.222.21.249 QUIT :Remote host closed the connection
< 1566384662 648577 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: I should probably let you sleep, but: when you capture a continuation, sometimes it's to continue it more than once (e.g. backtracking) but you're not doing that here.
< 1566384794 466132 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :"for" looks like a function that takes a function, to me. If you want to say, it must be an anonymous function which lexically follows the "for", so you can optimize/analyze it better, you can do that.
< 1566385073 414585 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :For the life of me @ looks a lot like setjmp/longjmp. You also want some static guarantees (you can't pass the value of @ around) but those are additional; the basic mechanism is that.
< 1566385296 707699 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Your additional lexical constraints might be misleading you into thinking it's an essentially lexical mechanism, but I don't think it is.
< 1566385298 657099 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'll stop now.
< 1566385472 987221 :xkapastel!uid17782@gateway/web/irccloud.com/x-utlobjrzauauulxo QUIT :Quit: Connection closed for inactivity
< 1566385591 329215 :int-e!~noone@int-e.eu PRIVMSG #esoteric :@time shachaf
< 1566385592 444116 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Local time for shachaf is Wed Aug 21 04:06:31 2019
< 1566386337 47312 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric
< 1566386344 343974 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ouch
< 1566387077 136603 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :lob_jonas: whassup
< 1566387163 767669 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: I just got scheduled for dental root canal operation. The first time in my life. I was sort of mentally prepared for that. But
< 1566387212 448665 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the root canal specialist surgeon said that he's looked at the X-ray and my tooth looked nasty so I'll need three appointments for this tooth.
< 1566387233 511994 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I was already scared of this operation, but now I'm more scared.
< 1566387734 292598 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :lob_jonas: I had a root canal once. It took multiple appointments, and in the end they couldn't save the tooth anyway. It wasn't fun, and there was some pain. But it's also not amongst my worst memories (I rarely think of it.)
< 1566387765 427081 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :It's also the sort of thing where it's a finite amount of time, and you can remind yourself of that during it.
< 1566387875 206901 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: yes, the point of a root canal is that you only get them when they've given up on the tooth already, it can't be saved (or so the denist believes), so they turn it to an undead tooth with some metalic golem core surrounded by the empty shell of what used to be the tooth.
< 1566387915 999717 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :also I hear the experience with it has a high variance, it's terrible for some people but acceptible for others.
< 1566387954 343847 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :which makes sense because I had three wisdom teeth extracted, and they all behaved differently
< 1566387979 556404 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :(the first one was terrible, the second one was trivial, the third one was ok but the gum healed ugly)
< 1566388287 550195 :PaniniTheDevelop!b03b2396@176.59.35.150 JOIN :#esoteric
< 1566388295 216403 :PaniniTheDevelop!b03b2396@176.59.35.150 PRIVMSG #esoteric :nah
< 1566390783 319927 :PaniniTheDevelop!b03b2396@176.59.35.150 QUIT :Remote host closed the connection
< 1566391677 936086 :xkapastel!uid17782@gateway/web/irccloud.com/x-voxvqypglnspocmm JOIN :#esoteric
< 1566392203 446890 :lob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Quit: Ping timeout (120 seconds)
> 1566395699 264719 PRIVMSG #esoteric :14[[07FAKE14]]4 M10 02https://esolangs.org/w/index.php?diff=65590&oldid=65453 5* 03Argv0 5* (+61) 10Typos and grammar corrections
< 1566396590 549345 :PaniniTheDevelop!b03b2e3c@176.59.46.60 JOIN :#esoteric
< 1566396901 445563 :mich181189!sid268336@gateway/web/irccloud.com/x-dxjvumrgidsoexry QUIT :Ping timeout: 250 seconds
< 1566396912 932666 :mich181189!sid268336@gateway/web/irccloud.com/x-upblfrpjmhuhwxpl JOIN :#esoteric
< 1566396945 763414 :Lymee!lymia@magical.girl.lyrical.lymia.moe JOIN :#esoteric
< 1566396950 668884 :ProofTechnique!sid79547@gateway/web/irccloud.com/x-vtspndqqhuicqcet QUIT :Ping timeout: 250 seconds
< 1566396982 938045 :sparr!~sparr@pdpc/supporter/active/sparr QUIT :Ping timeout: 250 seconds
< 1566397003 752667 :Lymia!lymia@magical.girl.lyrical.lymia.moe QUIT :Ping timeout: 250 seconds
< 1566397004 21314 :Lymee!lymia@magical.girl.lyrical.lymia.moe NICK :Lymia
< 1566397086 736963 :ski!~ski@remote11.chalmers.se QUIT :Ping timeout: 268 seconds
< 1566397104 631255 :zzo38!~zzo38@24-207-15-213.eastlink.ca QUIT :Ping timeout: 272 seconds
< 1566397116 81773 :ProofTechnique!sid79547@gateway/web/irccloud.com/x-ngiuzxojxbkcdbai JOIN :#esoteric
< 1566397121 288865 :ski!~ski@remote11.chalmers.se JOIN :#esoteric
< 1566397270 596740 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Hmm, is there a thing like linear types that is linear kinds?
< 1566397735 983467 :PaniniTheDevelop!b03b2e3c@176.59.46.60 PRIVMSG #esoteric :hello
< 1566397834 24602 :sparr!~sparr@2604:a880:800:10::103:f001 JOIN :#esoteric
> 1566398143 965398 PRIVMSG #esoteric :14[[07ROT-1314]]4 N10 02https://esolangs.org/w/index.php?oldid=65591 5* 03A 5* (+335) 10Created page with "[[ROT-13]] is an extension of the [[ROT13]] encoder/decoder. ==Alphabetic characters== They are simply rotated using this following lookup table: ABCD...WXYZ NOPQ...JKLM..."
< 1566398174 685339 :PaniniTheDevelop!b03b2e3c@176.59.46.60 PRIVMSG #esoteric :new page
< 1566398396 119166 :PaniniTheDevelop!b03b2e3c@176.59.46.60 QUIT :Remote host closed the connection
> 1566398477 975953 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=65592&oldid=65525 5* 03PaniniTheDeveloper 5* (+253) 10/* Introductions */
< 1566398825 389802 :rain1!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :hello
< 1566400273 669466 :tromp!~tromp@2a02:a210:1585:3200:1029:76b0:25b8:cbfd QUIT :Remote host closed the connection
< 1566401522 978817 :tromp!~tromp@2a02:a210:1585:3200:1029:76b0:25b8:cbfd JOIN :#esoteric
< 1566402686 380535 :adu!~ajr@pool-173-73-86-191.washdc.fios.verizon.net JOIN :#esoteric
< 1566403117 597795 :cpressey!~cpressey@5.133.242.4 QUIT :Quit: A la prochaine.
< 1566405383 38370 :tromp_!~tromp@ip-213-127-58-74.ip.prioritytelecom.net JOIN :#esoteric
< 1566405515 961755 :tromp!~tromp@2a02:a210:1585:3200:1029:76b0:25b8:cbfd QUIT :Ping timeout: 252 seconds
< 1566407525 151873 :b_jonas!~x@catv-176-63-24-214.catv.broadband.hu JOIN :#esoteric
< 1566408083 548461 :PaniniTheDevelop!b03b2f77@176.59.47.119 JOIN :#esoteric
< 1566408297 548629 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric
< 1566408509 21607 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric
> 1566409051 979770 PRIVMSG #esoteric :14[[07Esolang:Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=65593&oldid=62912 5* 03PaniniTheDeveloper 5* (+64) 10
> 1566409124 197922 PRIVMSG #esoteric :14[[07Esolang:Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=65594&oldid=65593 5* 03PaniniTheDeveloper 5* (-39) 10
< 1566409128 926775 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Taneb: sure, kinds are just like a type system but one level up
< 1566409152 960245 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in a linear kind system you could do data Foo a = Bar a but not data Foo a = Bar a a or data Foo a = Bar
< 1566409158 869435 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :you have to use the type variable 'a' exactly once
> 1566409165 827411 PRIVMSG #esoteric :14[[07Esolang:Sandbox14]]4 M10 02https://esolangs.org/w/index.php?diff=65595&oldid=65594 5* 03PaniniTheDeveloper 5* (-25) 10
< 1566409172 143141 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :whether that is useful, I do not know
< 1566412783 496950 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: Joke's on you, I was already asleep.
< 1566412789 357107 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Joke's on me, cpressey isn't here.
< 1566412857 918222 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :In lens things we talked about "linear functors" and "affine functors" and so on.
< 1566415349 418617 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and what does that mean
< 1566415435 47529 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :They're like the things you said.
< 1566415487 976630 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You can write a Lens' (Foo a) a for your first Foo and a Traversal (Foo a) a for the second Foo and so on.
< 1566415521 513920 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :data Maybe a = Nothing | Just a is an example of an affine functor, since it's of the form "Ax + B"
< 1566415593 989705 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess every linear functor is going to be of the form "(E,a)" for some E, like a 1D vector space.
> 1566416828 170359 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 M10 02https://esolangs.org/w/index.php?diff=65596&oldid=65592 5* 03PaniniTheDeveloper 5* (+0) 10
> 1566416985 99923 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 M10 02https://esolangs.org/w/index.php?diff=65597&oldid=65596 5* 03PaniniTheDeveloper 5* (+0) 10Undo revision 65596 by [[Special:Contributions/PaniniTheDeveloper|PaniniTheDeveloper]] ([[User talk:PaniniTheDeveloper|talk]])
< 1566417016 603502 :PaniniTheDevelop!b03b2f77@176.59.47.119 QUIT :Remote host closed the connection
< 1566418153 47777 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Read error: Connection reset by peer
< 1566418178 74886 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric
< 1566418459 788627 :b_jonas!~x@catv-176-63-24-214.catv.broadband.hu QUIT :Quit: leaving
< 1566419195 686346 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric
< 1566419391 528247 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 244 seconds
< 1566419397 882985 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life
< 1566420463 291023 :xkapastel!uid17782@gateway/web/irccloud.com/x-voxvqypglnspocmm QUIT :Quit: Connection closed for inactivity
< 1566421147 363 :xkapastel!uid17782@gateway/web/irccloud.com/x-novnyrstgioxlkwb JOIN :#esoteric
< 1566424407 928451 :AnotherTest!~turingcom@ptr-82l26zcdc6imrwoapg3.18120a2.ip6.access.telenet.be QUIT :Ping timeout: 264 seconds
< 1566426466 489347 :FreeFull!~freefull@defocus/sausage-lover QUIT :
< 1566427876 30406 :arseniiv!~arseniiv@94.41.19.60.dynamic.ufanet.ru QUIT :Ping timeout: 248 seconds
< 1566428230 294110 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Quit: Leaving
< 1566430663 426092 :xkapastel!uid17782@gateway/web/irccloud.com/x-novnyrstgioxlkwb QUIT :Quit: Connection closed for inactivity