00:11:14 -!- copumpkin has quit (Ping timeout: 252 seconds). 00:14:50 If you play crap using any two Platonic solid dice (which remain the same throughout the game), with the same rules as normal, what is affected the probability of winning according to? 00:16:08 do your dice usually change shape during games? 00:16:15 Never played crap, don't know the rules 00:19:17 -!- copumpkin has joined. 00:21:46 Never played crap, don't give a crap? 00:28:10 -!- nooga has quit (Ping timeout: 246 seconds). 00:32:59 -!- Taneb has quit (Quit: Leaving). 00:33:23 I was reading HeadRoom (headphone.com, the headphone review/shop site), and the #1 quote in the "what our customers say" sidebar was: "I just wanted to say that the picture of the unicorn you drew for me was so awesome it almost made me cry. I particularly love unicorns. They're just so beautiful and graceful, like a lamb, but less hairy." 00:33:37 I think that is a fine statement. 00:38:50 Taneb: The rules are: On your first roll if it totals 7 or 11 you win, if it is 2 or 3 or 12 then you lose. Otherwise, you continue rolling, and other than the first turn, if you roll 7 you lose, if the same as the first number you win, otherwise try again until you match the first total or 7. 00:39:55 Another puzzle I have read once related to crap game is, your opponent is going to play dice but he loaded one of the dice to make the 5 be 100%. You now have the chance to load the other dice using whatever probabilities you want. How should you do it to make the least probability he will win? 00:41:04 (Notice that if you make the second dice also always come up the same number with 100% probability, then he will always win regardless of what number this is. Therefore you must do something else.) 00:43:56 zzo38: I believe the game is called craps 00:44:08 well, it obviously makes sense to make 1, 3, 4, and 5 all have equal probability, and 6 to have zero probability 00:44:27 so we'll call the probability of 1345 total p, and of 2 p' (p' = 1 - p) 00:45:35 the chance that the opponent wins on the first roll is p'; alternatively, if they don't roll a 2 on the first roll (probability p), their chance of winning is (p/4)/(p/4+p') 00:46:23 that's p/(p+4p'), or p/(p + 4 - 4p), or p/(4 - 3p) 00:46:47 so total chance is 1 - p + p^2/(4 - 3p) 00:48:28 differentiating this gives -1 + ((2p)(4 - 3p)+(p^2)(-3))/((4 - 3p)^2) 00:49:06 setting that to 0 gives (4 - 3p)^2 = (8p - 6p^2) - 3p^2 00:49:26 or 16 - 12p + 9p^2 = 8p - 9p^2 00:49:56 or 18p^2 - 20p + 16 = 0 00:51:15 so p is optimised at (20 ± sqrt(400 - 64*18)) / 36 00:51:36 hmm, 64*18 > 400 00:51:40 I must have screwed up something there 00:51:58 the general /principle/ is correct, though :) 00:53:37 (4 - 3p)^2 = 4^2 - 2*4*3p + (3p)^2 = 16 - 24p + 9p^2, right? (Not ...-12p...) 00:56:34 (Though 64*18 > 32^2 too.) 00:56:40 -!- epicmonkey has quit (Ping timeout: 252 seconds). 00:58:44 (A regular person would just have let Mathematica to do the derivative.) 01:22:42 -!- esowiki has joined. 01:22:46 -!- esowiki has joined. 01:22:47 -!- esowiki has joined. 01:23:25 -!- esowiki has joined. 01:23:30 -!- esowiki has joined. 01:23:30 -!- esowiki has joined. 01:24:27 -!- esowiki has joined. 01:24:29 -!- glogbot has joined. 01:24:29 -!- glogbackup has left. 01:24:32 -!- esowiki has joined. 01:24:32 -!- esowiki has joined. 01:25:47 elliott, Fiora monqy Phantom_Hoover 01:26:05 elliott hasn't followed for ages, right 01:26:12 > 2^2^2^2^2 01:26:14 200352993040684646497907235156025575044782547556975141926501697371089405955... 01:26:55 -!- Gregor has joined. 01:27:04 if he hasn't followed for ages, then why would he be on the list 01:27:06 => he follows 01:27:08 avidly 01:27:53 i'm sure if he were with us today he'd thank sgeo for updating him(rest in peace) 01:28:39 -!- WeThePeople has quit (Quit: Leaving). 01:28:55 -!- WeThePeople has joined. 01:29:22 -!- WeThePeople has quit (Changing host). 01:29:23 -!- WeThePeople has joined. 01:29:47 -!- WeThePeople has quit (Read error: Connection reset by peer). 01:30:24 > length $ show (2^2^2^2^2) 01:30:25 19729 01:32:25 > length $ show (3^3^3^3^3) 01:32:30 mueval: ExitFailure 1 01:32:30 mueval: Prelude.undefined 01:35:48 ais523: http://sprunge.us/IcID incidentally. 01:36:38 -!- monqy has quit (Quit: hello). 01:37:00 zzo38: so the conclusion from this is that you have to make 2 come up 1/3 of the time, and 1/3/4/5 come up 1/6 of the time each 01:37:13 or in other words, you just take your normal dice and replace the 6 with a 2 and hope nobody notices 01:37:27 OK. 01:42:07 I don't like it that you cannot use guards in do-notation in Haskell. Therefore you need to put the guard on the next line instead. 01:45:23 > do let { doguard p x | p x = x | otherwise = fail "" }; doguard even -> x <- Just 1; return x 01:45:24 :1:70: parse error on input `->' 01:46:37 > do let { doguard p x | p x = return x | otherwise = fail "" }; x <- doguard even =<< Just 1; return x 01:46:39 Nothing 01:47:46 What else I don't particularly like is that do-notation is built-in rather than definable using macros. This is difficult to change, though. 01:53:43 * sgeo_ 100% agrees with zzo38 01:53:58 About the do notation being built-in 01:59:28 -!- sirdancealot7 has quit (Ping timeout: 272 seconds). 02:03:05 -!- GreyKnight has quit (Quit: zzz). 02:04:38 -!- SingingBoyo has joined. 02:06:03 -!- sirdancealot7 has joined. 02:15:23 -!- Nisstyre-laptop has joined. 02:19:44 yeah 02:20:34 baked in 'do' syntax is a pragmatic measure that goes against theoretical beauty 02:20:42 haskell has a lot of those, which you wouldn't guess from the way people talk about it 02:21:09 i don't know how to design a macro system which supports syntactic extensions like 'do' 02:21:26 i guess i would start by looking at Camlp4 / Camlp5 02:21:39 [do| 02:21:49 yeah... no. 02:22:05 «The current version of camlp4 doesn't have yet a manual. The "Camlp4 manual" is from 2003, and is not compatible with present version.» exciting 02:22:45 yeah that is not ideal 02:23:01 oh man, is wikipedia's example using gensyms 02:23:38 is ML stuff just underdocumented? when I went looking for Standard ML resources i was kind of... underwhelmed, i couldn't even find docs for the yacc my book was using 02:24:17 gensym means your syntax is more pointfree 02:24:20 nothing like, i don't know, the haskell wiki 02:24:27 Or it means your macro system is crap, I'm not sure 02:24:54 I think Campl stuff is more of an O'Caml thing? 02:25:01 it means your macro system is (probably) unhygenic, which isn't as often associated with ~Theoretical Beauty~. 02:25:12 sgeo_: yes, i meant the family 02:25:26 also is it actually spelled with an apostrophe 02:25:28 the haskell wiki is crap 02:25:39 it's better than nothing! 02:25:45 I thought it was 02:25:51 It might not be, I guess? 02:25:51 though the talkmode pages are definitely pretty funny yeah 02:25:53 I'm not sure if I consider define-syntax to be theoretical beauty 02:26:19 yeah 02:26:28 to me scheme's hygenic macros almost miss the entire point of lisp 02:27:05 isn't define-syntax just a pattern matchy thing combined with automatically codewalking through and renaming symbols for you? 02:27:54 i think i prefer simple unhygenic macros, with sugar to make it easier to use them hygenically 02:28:09 like auto-gensym in clojure (HI SGEO) or various Lisp libraries 02:28:18 but i haven't used any Lisp extensively so i don't really know 02:28:22 I still don't really quite understand Scheme macros 02:28:26 well, so do I, but i've never seen anyone call unhygeine "beautiful" or w/e 02:28:50 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 02:28:53 well the fact that they're unhygenic is not the beautiful part 02:29:06 I think is good to have both kind of macros available, as well as the macro with is partially hygienic and partially unhygienic, if you want to write such a macro. 02:29:25 you can define hygenic macros in an unhygenic macro system and vice versa, so. 02:29:47 http://sgeo.tumblr.com/post/37650151853/common-lisp-symbols-vs-clojure-symbols 02:30:25 today i realized i should learn more about GHC's STM 02:30:33 like, how is atomic commit actually accomplished 02:30:36 "Clojure unquoting uses ~ and ~@ instead of CL's , and ,@. This allows Clojure to treat commas as whitespace." i made the mistake of googling things 02:31:04 assuming you have proceeded successfully to the end of a transaction, and have new values for refs stored in some data structure, how do you actually commit them all at once? 02:31:57 commits don't just use mutexes, huh 02:32:55 you could use seqlocks or something, I guess 02:32:57 oh or wait, is it like compare and swap 02:33:01 wow i know shit about concurrency 02:33:16 although those do require writer locks... nevermind. 02:33:39 you generally can't compare and swap an arbitrary number of pointers at once 02:34:09 i mean i can think of ways to do it, you can have a lock on each variable or a global commit lock 02:34:09 maybe it only retries writes that fail? hm 02:34:14 I assume it uses locks 02:34:15 i was just wondering what GHC does 02:34:31 i wasn't really asking for a bunch of uninformed speculation 02:34:33 sgeo_: your post there is kind of wrong in a couple nitpicky ways 02:34:39 but I guess this is what I get for asking a question on IRC 02:34:40 sorry kmc 02:34:44 it's ok :) 02:34:50 i too enjoy a bit of uninformed speculation from time to time 02:35:03 all i know about STM is that there's going to be hardware TM soon enough 02:35:10 I assume it uses locks because that's what most STM implementations use 02:35:27 Bike, hmm, how so? 02:35:59 i've heard it described as lockless 02:36:05 but not in detail 02:36:56 Also, irc is the only place to get high quality uninformed speculation 02:37:04 We specialize in armchair navel gazing 02:37:08 Bike, or feel free to leave a comment on the post 02:37:17 There are so many other places on the internet to get actual facts 02:37:21 i'm just going to pm you because it's really nitpicky 02:38:10 Apparently, the ghc wiki is not one of them 02:39:11 there are functions lock_stm and unlock_stm in GHC RTS 02:39:31 they do cas on a global static variable 02:40:12 they seem to surround most interesting functions, like stmCommitTransaction 02:41:17 there's also a bunch of checking done before a linearization point, at which a given thread claims ownership of tvars 02:42:02 complicated, but pretty straightforward compared to doing it for arbitrary executables, granted >_> 02:43:25 ok, cool 02:44:25 Bike, edited post 02:56:16 -!- canaima172425 has joined. 02:57:08 -!- canaima172425 has left. 03:15:58 -!- sebbu has quit (Ping timeout: 245 seconds). 03:33:28 -!- keb has joined. 04:17:27 haha, the BBC have a live feed of an important ancient Mayan site 04:17:34 counting down to the end of the world in their local time 04:17:38 for god's sake. 04:17:52 they don't think the world's going to end 04:17:59 but it's a news event and they're in the mood to cover it 04:18:07 if nothing else, it's like a Y2K celebration 04:18:28 oh, now they're talking about Obama instead 04:18:32 i am at home missing a great end of the world party 04:18:35 they said they'll get back to the end of the world later 04:18:44 b'ak'tun's ending and we're all going to die. thanks obama 04:18:57 but i'm too tired and i dont know the address and i have to be up at 6am :( :( :( 04:26:49 It's still not midnight in my time zone 04:26:55 So I'm still on the 21st 04:27:17 Maybe it's a rolling thing and you're all just fakes to fake me out into thinking I'm safe 04:28:52 the mayas all fit into central time 04:28:59 but 04:29:13 they may not have had the same idea of midnight 04:29:17 probably didnt in fact 04:30:20 I thought this was all yesterday though 04:30:28 was the apocalypse postponed one day 04:31:07 no 04:31:12 it happened right on time 04:31:14 the apocalypse was moved to thursday to chase the coveted 18-35 demographic 04:31:19 we're all dead and in purgatory 04:31:24 we just don't know it 04:31:39 hi ais523 04:31:43 All I'm saying is that it's still the 21st, it's not too late for the world to end 04:31:52 hi quintopia 04:32:05 also midnight is pretty easy to understand 04:32:09 Midnight is when the sun conjuncts the MC, though, isn't it? 04:32:12 did you want to know how to beat space_hotel? 04:32:39 oh, I can probably find a way, but I'm interested in your theories too 04:32:44 zzo38: that happened in 1998. it's only a partial alignment this time 04:33:12 I was wondering if there was a general way to exploit jousters using the "trail and poke forwards, enhance decoys backwards, then forwards decoy setup while checking tripwires" strategy 04:33:20 well there is no good way to beat it with a lock. it would be a monstrous program if you did 04:33:22 quintopia: What? Sorry? 04:33:29 because all the best jousters do that, and most of the time in BF Joust, if there's any pattern at all, it's exploitable 04:33:37 I wasn't actually planning to lock 04:33:44 yeah 04:33:52 its best contender is counterpoke 04:33:59 one of my plans involved detecting where your jouster was, waiting for it to pass a tripwire, then going behind it and taking the tags while it sets decoys 04:33:59 What happened in 1998 and is only a partial alignment this time? 04:34:07 *taking the flags 04:34:13 well i mean other than those two i made just to beat it 04:34:16 but I don't think there's any way to do it but getting lucky 04:34:26 i was going to suggest exactly that strategy 04:34:30 or exploiting the fact that its reverse tripwires are size 3, and I hate that sort of level of constant-tweaking 04:34:44 I do not understand what you are refering to. 04:34:53 or rather 04:34:58 quintopia: well what you'd have to do is find one of its tripwires, preferably as near to the flag as you can safely 04:35:00 then wait for it to become 0 04:35:06 i was going to suggest a deep poke that restored tripwires 04:35:10 yep 04:35:21 but it's not fast enough, and really really long 04:35:32 mainly long 04:35:33 oh, hmm, as a poke? 04:35:37 can be pretty fast 04:35:40 rather than as a clear? 04:35:44 yes 04:35:47 huh, I didn't think of that angle 04:36:12 so the idea would be to set up decoys while it was setting decoys 04:36:16 then skip much more of yours than you did of its 04:36:28 ayeaye capn 04:36:31 also 04:36:46 I'll only need, like, 210 copies of the program 04:36:49 that might be manageable :) 04:36:51 you can make a lot of small decoys right at the beginning until you achieve a shallow poke 04:37:05 space_hotel is miserable at clearing long lines of small decoys 04:37:11 because of the huge offset 04:37:14 -!- WeThePeople has joined. 04:37:24 yeah; small decoys used to actually not do anything 04:37:27 but that isn't really the case any more 04:37:40 -!- WeThePeople has quit (Changing host). 04:37:41 -!- WeThePeople has joined. 04:38:22 anything one bigger than its wiggle will cost it almost as many cycle as if it never offset at all 04:38:29 yep 04:38:35 I think we have a new concept of "medium-sized decoy" 04:38:42 as well as "small decoy" and "large decoy" 04:38:46 it's around… 4 or 5? 04:39:33 the fact that counterpoke does not use a large offset is what makes it so potent against space_hotel. 04:39:48 or is it skyscraper that does that? 04:39:59 skyscraper didnt build big enough decoys 04:40:30 I can't even remember how skyscraper works 04:40:34 and only vaguely remember counterpoke 04:40:37 I should look at my own code 04:41:37 huh, I don't even have a copy of skyscraper any more 04:41:40 apart from in the hg history 04:41:50 could you remind me? 04:42:22 i am on my phone 04:43:14 just use the hg one 04:43:41 yeah, I'm just not sure how to find it in hg history 04:44:53 http://files.shroomery.org/files/05-03/641365503-Naked_girl_with_shroom_bible.jpg what it says on the tin 04:44:53 ah, found it 04:44:59 $ hg cat -r 9792 ais523_skyscraper.bfjoust 04:45:53 what the hell is a shroom bible for 04:45:54 huh, this decoy setup makes no sense 04:46:01 a bible with fungus infection? 04:46:07 why would I write a decoy setup that jumps around like that 04:46:20 yeah 04:46:24 !bfjoust skyscraper >>>>>>>>[((>[+[+[---[-[(+)*96(.+)*64{}]]]]])%21)*21](+)*12<(+)*80<(+)*40<(+)*10>>(+)*30<<(<(+)*10)*4>>>>>>([{(<)*7(-)*99(>)*8(>[(+)*19[---]])*21}<(+[{+(+[{(<(-)*60)*5<(+)*78(>)*12(>[(+)*19[-]])*17}](<(+)*40)*5<(-)*78(>)*12(>[(+)*19[-]])*17)%100}](<(+)*40)*5<(-)*78(>)*12(>[(+)*19[-]])*17)%156])%768 04:46:30 someone growing psychedelic mushrooms inside a bible 04:46:34 kmc: what is that... mass of... fur? under the tree 04:46:35 ​Score for ais523_skyscraper: 21.5 04:46:40 they eat wood you know 04:46:43 this is a blatant attempt to get it into egojsout 04:47:02 because copypasta is too hard 04:47:02 i, uh, don't know 04:48:28 also why does it beat anticipation? it looks like the sort of program anticipation would beat really easily 04:49:06 oh, probably because of the "anticipation was tweaked to omit cases that weren't actually used against the hill because of space limits" thing 04:50:04 yeah 04:50:55 so when do you think we'll get random numbers in bfjoust eh 04:52:01 probably never, I thought it would be pretty interesting, but it causes too many problems for hill maintainabilty/replicability 04:52:13 oh okay 04:52:26 when do you think we'll get an infinite hill 04:52:32 like, you couldn't tell who won or didn't win 04:52:39 and infinite hill has problems in terms of user interface 04:52:41 as well as spamming 04:52:49 infinite hill? 04:52:54 I think I like the large finite one we have at the moment, although I'd submit to an infinite hill too 04:53:05 sgeo_: like the current one but infinitely large 04:53:16 if a program's good enough, you can leave it on the hill forever 04:53:22 even atm 04:53:29 any idea which program's survived there the longest, incidentally? 04:53:50 but the downside of a finite hill is the possibility of making a program that beats the entire hill on every tape length and polarity without involving brackets 04:53:53 so 04:53:59 i have an idea 04:54:14 we should give extra credit for number of generations survived 04:54:42 also, wow is counterpoke vs. space_hotel close 04:55:40 yeah counterpoke originally won until i tweaked the initial decoy setup just to avoid triggering its short tape jump-to-flag condition 04:57:35 I love that condition 05:11:21 -!- Bike has quit (Quit: Reconnecting). 05:11:35 -!- Bike has joined. 05:18:54 -!- WeThePeople has quit (Remote host closed the connection). 05:32:12 -!- Nisstyre has quit (Quit: Leaving). 05:34:57 Fiora, elliott 05:37:33 -!- Nisstyre-laptop has quit (Quit: Leaving). 05:38:33 -!- Nisstyre-laptop has joined. 05:39:28 kmc: Aren't ≅ and ≌ great? 05:39:58 is that like ± and ∓ 05:40:30 "ALL EQUAL TO", wha 05:42:13 `quote 05:42:33 What! 05:42:37 Gregor! 05:42:39 @quote 05:42:40 PaulJohnson says: A paradox of the Haskell world is that, while the language is Vulcan, the community around it is dominated by Warm Fuzziness. Clearly the two are not mutually exclusive. 05:42:48 @quote 05:42:48 pejo says: shapr, I haven't said anything thoughtful yet, but I'm working on it. 05:42:48 @quote 05:42:48 wuttf says: i think i have to learn this language, the type systems i know just dont feel right 05:42:48 @quote 05:42:48 @quote 05:42:48 BHSPitMonkey says: as well as to do try more like 05:42:49 Pseudonym says: All hail the Evil Mangler! 06:02:13 dammit 06:02:19 CD really is trying hard to be the awesomest 06:13:53 coppro: CD = ? 06:20:02 ais523: homestuck 06:20:07 ah right 06:27:54 Is for all monad transformer t: t Finalize = Finalize true for all categories with final objects? 06:32:47 -!- zzo38 has quit (Remote host closed the connection). 06:49:38 -!- zzo38 has joined. 07:08:33 -!- asiekierka has quit (Excess Flood). 07:09:16 -!- asiekierka has joined. 08:07:24 hello droogies 08:17:29 -!- nooga has joined. 08:26:03 @quote 08:26:03 Plugin `quote' failed with: getRandItem: empty list 08:26:04 @quote 08:26:04 nornagon says: i thought someone just wrote a lambdabot plugin to write lambdabot 08:26:04 @quote 08:26:04 @quote 08:26:04 shachaf says: * shachaf = delliott/dt 08:26:04 @quote 08:26:04 ddarius says: Attempting to join #not-not-math sent me to #math. Freakin' Boole. 08:26:05 ReinierLamers says: If we keep up the current pace of performance hacking, darcs will be complete before you even hit the enter key in a few years 08:54:21 I know of more than one solitaire game where only the suits are relevant, and not the ranks of the cards. 08:58:23 -!- Bike has quit (Quit: leaving). 09:00:07 -!- ais523 has quit. 09:05:20 There are also games where the ranks are relevant and the suits aren't relevant. 09:06:34 -!- oerjan has joined. 09:21:57 -!- hagb4rd has quit (Quit: hagb4rd). 09:22:17 @tell ais523 I'm not convinced it's _obvious_ 6 should have zero probability. it decreases the chance of winning on the first step yes, but it also increases it on all the others... 09:22:17 Consider it noted. 09:25:47 I agree with you 09:38:42 -!- hagb4rd has joined. 09:44:44 kmc: I just used the word "trivial" in #haskell. 09:45:13 As in "making twanvl lenses polymorphic is trivial" 09:45:34 My defense is that making them polymorphic consists of commenting out the type signature. 09:45:35 Or as in, "Trivial Pursuit is a trivial pursuit". 09:46:07 (Trivial fursuit is just the skin of a dead animal.) 09:47:09 O, that's what you mean by trivial. 09:48:53 shachaf: You can also figure out the type it infers and put that in, if you want it to have a type signature; I always want it to have a type signature. But do you have example of the polymorphic lenses? 09:48:58 Of what exactly you want? 09:49:29 zzo38: People used to do things like 09:49:43 type Lens s a = s -> (a, a -> s) 09:50:00 _1 :: Lens (a,b) a; _1 (x,y) = (x, (,y)) 09:50:16 Except with newtype instead of type. 09:50:32 As it happens, if you write a lens like that, you can make it polymorphic just by commenting out its type signature. 09:50:42 But no one really noticed that until twan lenses. 09:50:55 Is that Twan van Laarhoven? 09:50:57 (Because those don't work as a newtype; they have to be defined as a synonym.) 09:50:59 Yes. 09:56:41 -!- ais523 has joined. 10:24:23 -!- monqy has joined. 10:37:12 -!- nooga has quit (Ping timeout: 244 seconds). 10:37:35 -!- hagb4rd has quit (Quit: Page closed). 10:40:17 -!- oerjan has quit (Quit: leaving). 10:40:53 -!- hagb4rd has joined. 10:40:58 -!- sebbu has joined. 10:40:58 -!- sebbu has quit (Changing host). 10:40:58 -!- sebbu has joined. 10:41:54 -!- zzo38 has quit (Quit: zzo38). 10:45:33 -!- sebbu has quit (Ping timeout: 245 seconds). 10:55:46 -!- copumpkin has quit (Ping timeout: 252 seconds). 10:56:25 -!- copumpkin has joined. 10:56:49 -!- sebbu has joined. 11:02:03 -!- carado has joined. 11:51:10 -!- Nisstyre-laptop has quit (Ping timeout: 252 seconds). 12:20:20 hmm… so my computer's been acting weirdly recently 12:20:21 ais523: You have 1 new message. '/msg lambdabot @messages' to read it. 12:20:27 so I decided to run memcheck86 12:21:33 conclusions: no errors in the first six tests 12:21:43 then the seventh test gives an error on /every single memory address on the system/ 12:23:39 it looked from the output like its expected output and its provided input had no relation to each other 12:26:56 ais523: Try reseating your RAM 12:27:05 Also amazed that you could boot at all 12:27:17 FreeFull: err, I'm saying, I think the test was bugged 12:27:21 rather than the memory 12:27:42 Ah 12:27:45 you don't read the memory as consistently working for six tests, then suddenly not working at all just because you provide random rather than deterministic data 12:28:33 Could be that the test got corrupted by the RAM =P 12:28:52 yeah, I was wondering about that too 12:29:02 but in that case the other tests would have found a problem 12:30:39 -!- keb has quit (Remote host closed the connection). 12:31:12 ais523: Could be the way the random numbers are generated too. Anyway, how is memtest supposed to test the memory it's occupying? 12:31:20 FreeFull: it moves 12:31:28 and then tests where it was 12:31:32 anyway, rebooting 12:31:36 -!- ais523 has quit (Remote host closed the connection). 12:36:00 -!- ais523 has joined. 13:14:46 -!- SingingBoyo has quit (Ping timeout: 252 seconds). 13:37:48 -!- AnotherTest has joined. 13:37:59 Hello 13:57:53 -!- AnotherTest has quit (Quit: Leaving.). 13:58:13 -!- AnotherTest has joined. 14:32:36 -!- ogrom has joined. 14:34:25 -!- nys has joined. 14:40:31 02:31:04: assuming you have proceeded successfully to the end of a transaction, and have new values for refs stored in some data structure, how do you actually commit them all at once? 14:40:35 kmc: it uses a lock iirc 14:40:53 -!- AnotherTest has quit (Read error: Connection reset by peer). 14:41:00 -!- AnotherTest has joined. 14:56:33 -!- WeThePeople has joined. 14:56:49 -!- WeThePeople has quit (Changing host). 14:56:49 -!- WeThePeople has joined. 15:09:24 -!- ais523 has quit. 15:19:58 -!- carado has quit (Ping timeout: 246 seconds). 15:24:22 -!- ogrom has quit (Ping timeout: 250 seconds). 15:28:46 -!- trying has joined. 15:29:42 -!- carado has joined. 15:37:28 -!- carado has quit (Ping timeout: 246 seconds). 15:38:59 -!- iamcal_ has quit (Remote host closed the connection). 15:44:22 -!- Taneb has joined. 15:53:00 -!- epicmonkey has joined. 16:09:45 -!- iamcal_ has joined. 16:28:54 -!- sebbu has quit (Read error: Connection reset by peer). 16:29:22 -!- sebbu has joined. 16:29:22 -!- sebbu has quit (Changing host). 16:29:22 -!- sebbu has joined. 16:29:22 -!- sebbu has quit (Excess Flood). 16:29:57 -!- sebbu has joined. 16:29:57 -!- sebbu has quit (Changing host). 16:29:57 -!- sebbu has joined. 16:29:57 -!- sebbu has quit (Excess Flood). 16:30:22 -!- sebbu has joined. 16:30:22 -!- sebbu has quit (Changing host). 16:30:22 -!- sebbu has joined. 16:30:22 -!- sebbu has quit (Excess Flood). 16:30:47 -!- sebbu2 has joined. 16:30:47 -!- sebbu2 has quit (Changing host). 16:30:47 -!- sebbu2 has joined. 16:30:47 -!- sebbu2 has quit (Excess Flood). 16:31:13 -!- sebbu3 has joined. 16:31:14 -!- sebbu3 has quit (Excess Flood). 16:31:43 -!- sebbu3 has joined. 16:31:44 -!- sebbu3 has quit (Excess Flood). 16:32:13 -!- sebbu3 has joined. 16:32:13 -!- sebbu3 has quit (Excess Flood). 16:32:37 -!- sebbu3 has joined. 16:32:38 -!- sebbu3 has quit (Changing host). 16:32:38 -!- sebbu3 has joined. 16:32:38 -!- sebbu3 has quit (Excess Flood). 16:35:03 -!- trying has quit (Ping timeout: 245 seconds). 17:03:22 -!- ogrom has joined. 17:08:04 -!- sgeo_ has quit (Quit: Leaving). 17:08:28 -!- Sgeo has joined. 17:08:35 I feel capitalized again 17:09:05 you feel quite capital? 17:09:13 Yes 17:09:15 or you feel punished? 17:09:29 -!- nooga has joined. 17:19:20 @tell ais523 http://blog.functorial.com/posts/2012-12-21-One-Hole-Contexts-Generalize-Diff-To-Containers.html 17:19:20 Consider it noted. 17:20:57 -!- sebbu4 has joined. 17:20:58 -!- sebbu4 has quit (Excess Flood). 17:21:23 -!- sebbu4 has joined. 17:21:24 -!- sebbu4 has quit (Excess Flood). 17:21:48 -!- sebbu4 has joined. 17:29:54 -!- Bike has joined. 17:53:13 -!- zzo38 has joined. 18:08:30 ?messages 18:08:30 You don't have any new messages. 18:20:15 -!- oerjan has joined. 18:28:01 -!- nooga_ has joined. 18:28:24 -!- nooga has quit (Ping timeout: 264 seconds). 18:33:27 Did you say "often" or "orphan"? 18:34:20 yes 18:37:32 nah, he's just an awe fan 18:48:24 -!- sebbu4 has changed nick to sebbu. 18:48:45 -!- sebbu has quit (Changing host). 18:48:45 -!- sebbu has joined. 19:03:04 -!- carado has joined. 19:21:13 -!- AnotherTest has quit (Quit: Leaving.). 19:35:28 -!- nooga_ has quit (Ping timeout: 246 seconds). 20:01:08 -!- Nisstyre-laptop has joined. 20:01:43 -!- carado has quit (Ping timeout: 246 seconds). 20:03:35 -!- Nisstyre has joined. 20:04:56 -!- Nisstyre has quit (Read error: Connection reset by peer). 20:21:02 -!- hogeyui has quit (Ping timeout: 244 seconds). 20:25:46 -!- ogrom has quit (Quit: Left). 20:32:29 -!- hogeyui has joined. 20:39:10 -!- epicmonkey has quit (Ping timeout: 252 seconds). 20:41:44 -!- WeThePeople has quit (Quit: Leaving). 21:02:13 Do you like this music? http://zzo38computer.org/csound/music/antioch.zip 21:02:37 Downloading... 21:03:14 (The ZIP archive contains the Vorbis audio file, as well as the source files, with the exception of the pregenerated PADsynth tables.) 21:03:23 That's pretty nice-sounding 21:06:59 The PADsynth settings used were: f 5 0 524288 "padsynth" 1 200 .07 1 3 1 -1 (If you want to compile the music from source you will need the file "pad5.csft" which can be generated using this code; the file padgen.zip also contains this file as well as the source to this file, if you want it.) 21:16:44 You are free to add, remove, change, and improve! 21:27:34 -!- WeThePeople has joined. 21:30:24 -!- WeThePeople has quit (Client Quit). 21:32:39 -!- asiekierka has quit (Excess Flood). 21:34:36 -!- WeThePeople has joined. 21:34:48 -!- asiekierka has joined. 21:35:12 -!- augur has quit (Remote host closed the connection). 21:42:29 -!- GreyKnight has joined. 21:49:31 Meanwhile in Japan http://youtu.be/vhHo6CUq4-o 21:56:01 There's a person in #haskell whose username is too similar to mine 21:56:05 I'm gonna Ngevd 21:56:10 -!- Taneb has changed nick to Ngevd. 21:56:19 @clear-messages 21:56:19 Messages cleared. 21:58:24 -!- GreyKnight has quit (Ping timeout: 264 seconds). 21:58:38 a few days ago i found someone in there named "artiq" or something like that 21:58:55 i think it was "artiq" but it was definitely a transposition away from "atriq" 22:00:35 -!- GreyKnight has joined. 22:06:51 Also meanwhile in Japan: http://fotozup.com/wp-content/uploads/2010/01/japanese_body_modification_01.jpg 22:06:55 "This man has pineapple rings in his forehead. Your argument is irrelevant." 22:06:57 ("in" was not a typo) 22:07:56 hi 22:08:04 hi!!! 22:08:13 hi 22:11:48 `addquote Also, irc is the only place to get high quality uninformed speculation We specialize in armchair navel gazing 22:11:49 Ngevd: just one keming away, even! you should ask him if his surname is van doom... 22:13:30 Do you agree? 22:14:10 -!- oerjan has set topic: The channel for esoteric omphaloskepsis and computer programming | http://codu.org/logs/_esoteric/. 22:14:36 -!- Nisstyre has joined. 22:16:20 -!- GreyKnight has quit (Ping timeout: 260 seconds). 22:17:47 -!- oerjan has set topic: The channel for polythronic omphaloskepsis and computer programming | http://codu.org/logs/_esoteric/. 22:18:02 -!- GreyKnight has joined. 22:20:05 -!- GreyKnight has set topic: The channel for polythronic omphaloskepsis and compsognathus progesterone | http://codu.org/logs/_esoteric/. 22:21:07 Gregor: where is HackEgo?? 22:21:13 did the Mayans get him?! 22:21:19 Afraid so. 22:21:45 -!- HackEgo has joined. 22:22:35 `ls 22:22:40 bin \ canary \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ ibin \ ibins \ interps \ karma \ lib \ luabuild \ luafilesystem-1.6.2-1.rockspec \ luafilesystem-1.6.2-1.src.rock \ luarocks.err \ luarocks.out \ paste \ penlight-1.0.0-1.rockspec \ penlight-1.0.0-1.src.rock \ quotes \ share \ wisdom \ zalgo.hs 22:28:15 -!- GreyKnight has quit (Ping timeout: 265 seconds). 22:32:02 -!- GreyKnight has joined. 22:37:04 `run echo "The channel for polythronic omphaloskepsis and compsognathus progesterone" | zalgo 22:37:06 T̞h͈e͗ ͜cͫh̦a̡n̺n̢ḛl̋ ̌f͚o͔r͋ ̡p̧o̅lͣy̾t̼h̬r͈o͊n͞i̶c̮ ̔o̎m̍pͮh͛ål̍ös̼k̬e̒p͔s̔i̋s̟ ̔a͌n̑d̹ ̴c̈o̞m̀p̆s͟o̫g̟nͭa͡t͢h͎u̜s̤ ̺p̩rͪo͉g̐ḛs͘t̆e̻r̻oͥn͝e̥ \ ̝ 22:58:13 -!- sebbu2 has joined. 22:58:13 -!- sebbu2 has quit (Changing host). 22:58:13 -!- sebbu2 has joined. 22:58:14 -!- sebbu2 has quit (Excess Flood). 22:58:43 -!- sebbu2 has joined. 22:58:43 -!- sebbu2 has quit (Changing host). 22:58:43 -!- sebbu2 has joined. 22:58:44 -!- sebbu2 has quit (Excess Flood). 22:58:50 -!- sebbu has quit (Ping timeout: 276 seconds). 22:59:10 -!- sebbu3 has joined. 22:59:10 -!- sebbu3 has quit (Excess Flood). 22:59:34 -!- sebbu3 has joined. 22:59:34 -!- sebbu3 has quit (Changing host). 22:59:34 -!- sebbu3 has joined. 22:59:38 -!- sebbu3 has quit (Excess Flood). 22:59:52 -!- ChanServ has set channel mode: +o oerjan. 23:00:04 -!- sebbu3 has joined. 23:00:05 -!- sebbu3 has quit (Excess Flood). 23:00:22 -!- oerjan has set channel mode: +b *!~sebbu@unaffiliated/sebbu. 23:00:26 hi sebbu.* 23:00:33 -!- sebbu3 has joined. 23:00:34 -!- sebbu3 has quit (Excess Flood). 23:00:37 wat 23:00:56 -!- oerjan has set channel mode: -b *!~sebbu@unaffiliated/sebbu. 23:01:03 -!- sebbu3 has joined. 23:01:03 -!- sebbu3 has quit (Changing host). 23:01:03 -!- sebbu3 has joined. 23:01:03 -!- sebbu3 has quit (Excess Flood). 23:01:14 oerjan: that changing host quit isn't a real quit 23:01:18 set the ban on the wanadoo version 23:01:22 oh 23:01:24 what about *!*@unaffiliated/sebbu 23:01:32 its before the host comes in 23:01:33 that won't work 23:01:37 -!- oerjan has set channel mode: -b *!~sebbu@ADijon-152-1-51-132.w83-194.abo.wanadoo.fr. 23:01:39 you want it on the wanadoo hostname 23:01:45 I posted before I saw your comment 23:01:59 ok 23:02:30 * GreyKnight battens down hatches for a sebbustorm 23:02:38 seems it worked 23:03:30 rip sebu 23:03:41 i read the @ as in front of monqy there 23:03:46 oerjan: requesting you op monqy. 23:03:48 it's the right thing to do 23:04:04 @-party 23:04:05 Not enough privileges 23:04:12 oerjan: you may want to /msg sebbu3 saying you'll unban them once their internet is working if you haven't 23:05:06 oerjan: You may want to actually set that ban (+b) 23:05:12 -!- Arc_Koen has quit (Quit: Arc_Koen). 23:05:25 When I was having trouble, I was told that I might be given a turing test... 23:05:26 wat 23:05:51 Deewiant: mighty good point 23:05:52 `quote turing test 23:05:54 381) Will anyone be irritated if I tend to disconnect and reconnect a lot? [...] we _almost_ have an established policy that bots will be banned it they do that. which means we might have to administer a turing test to sgeo, and that could get ugly. 23:05:56 -!- oerjan has set channel mode: -o oerjan. 23:06:18 I like how there's no ban but it still worked 23:06:22 I guess because it failed to join the channel once 23:06:42 Deewiant: i can never remember whether it's + or -, and there is no response to indicate whether you get it right :( 23:07:25 and i hate looking at the ban list proper because it floods my channel window 23:08:13 one could argue that a few bans could be removed. 23:08:41 in fact from the looks of it there is only one ban that isn't yet another incarnation of cheater that wants keeping 23:09:14 -!- Arc_Koen has joined. 23:09:58 that seems a little exaggerated :P 23:14:32 not exaggerating 23:14:52 first four bans are all cheater, all the rest are from ancient one-or-two-time offenders who are very unlikely to return 23:14:56 except one (dbelange) 23:16:03 i hate how the times keep being reset 23:16:13 > round 4.5 23:16:15 4 23:16:17 > round 5.5 23:16:18 6 23:16:20 Huh 23:16:48 "round x returns the nearest integer to x; the even integer if x is equidistant between two integers" Wonder why it doesn't just return the greater integer 23:17:09 elliott: um could you make an actual self-consistent statement :P 23:17:19 (dbelange is no. 3 for me) 23:17:55 23:07:58 -!- 1 - #esoteric: ban barts*!*@* [by ais523!~ais523@unaffiliated/ais523, 4671912 secs ago] 23:17:58 23:07:58 -!- 2 - #esoteric: ban $a:cheater [by oerjan!oerjan@sprocket.nvg.ntnu.no, 10189258 secs ago] 23:18:01 23:07:58 -!- 3 - #esoteric: ban cheater*!*@*.adsl.alicedsl.de [by sturgeon.freenode.net, 11768887 secs ago] 23:18:04 23:07:58 -!- 4 - #esoteric: ban *!*@g230223105.adsl.alicedsl.de [by sturgeon.freenode.net, 11768887 secs ago] 23:18:07 23:07:58 -!- 5 - #esoteric: ban dbelange*!*@* [by sturgeon.freenode.net, 11768887 secs ago] 23:18:11 FreeFull: because that's ceiling... 23:18:15 round does normal rounding 23:18:30 FreeFull: it's called "banker's rounding" and it's supposed to make accumulated roundings cancel each other on average 23:18:31 frefull.. guess, that's because of there might no exact 23:18:41 afaik 23:18:48 elliott: Ceiling would round 3.2 up 23:19:46 how can i output a float with a specified number of digits? 23:19:48 oh for the equidistant case you mean 23:19:50 then yeah what oerjan said 23:19:56 it's "fairer" in some ways 23:20:04 hagb4rd: it's nothing to do with floats 23:20:05 elliott: those are my 25, 24, 1, 2 and 3, respectively :P 23:20:13 hm 23:20:48 hagb4rd: you mean like %.4f etc? 23:21:07 -!- ChanServ has set channel mode: +o oerjan. 23:21:15 yes 23:21:21 -!- oerjan has set channel mode: -b *!*alvur@95.57.97.*. 23:21:30 -!- oerjan has set channel mode: -b *!*alvur@178.89.139.*. 23:21:34 I think ghc will just output all the significant digits 23:21:37 but in haskell 23:21:41 -!- oerjan has set channel mode: -b HashB*!*@82.*. 23:21:49 -!- oerjan has set channel mode: -b *!*mithridat@unaffiliated/mithridates. 23:22:01 -!- oerjan has set channel mode: -b *!*@cho94-8-88-178-12-119.fbx.proxad.net. 23:22:13 -!- oerjan has set channel mode: -b *!*checker@c-68-55-8-210.hsd1.md.comcast.net. 23:22:23 -!- oerjan has set channel mode: -b *!*email@*.dyn.optonline.net. 23:22:34 -!- oerjan has set channel mode: -b *!*email@*.suomi.net. 23:22:55 -!- oerjan has set channel mode: -b *!*@d14-69-59-38.try.wideopenwest.com. 23:23:05 -!- oerjan has set channel mode: -b *!*@*.cable.dyn.cableonline.com.mx. 23:23:16 -!- oerjan has set channel mode: -b honey!*@beehive.insectopia.us. 23:23:25 -!- oerjan has set channel mode: -b *!*krbot@*. 23:23:28 the bees!!!! 23:23:32 -!- oerjan has set channel mode: -b *!*@unaffiliated/beedaweeda. 23:23:33 rip 23:23:40 -!- oerjan has set channel mode: -b *!*port72.c@50.8.174.*. 23:23:47 -!- oerjan has set channel mode: -b *!*@069-064-236-*.pdx.net. 23:23:48 rip beedaweeda we missed you & yr ufos & yr molestation allegations 23:23:53 oerjan: oh i lied port27.c might be one to keep. 23:23:57 -!- oerjan has set channel mode: -b *!*@ec2-50-112-122-72.us-west-2.compute.amazonaws.com. 23:24:02 if that's who I think it is 23:24:05 `pastelogs port72\.c 23:24:07 -!- oerjan has set channel mode: -b *!*prophaze@59.93.41.*. 23:24:10 *72 23:24:23 -!- oerjan has set channel mode: +b *!*port72.c@50.8.174.*. 23:24:43 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.7328 23:25:22 oh it's just beedaweeda 23:25:27 unban away then, doubt they'll be back 23:25:52 -!- oerjan has set channel mode: -b *!*port72.c@50.8.174.*. 23:26:11 hm apparently the justification is kind of float-related 23:26:11 -!- oerjan has set channel mode: -o oerjan. 23:26:16 per what monochrom said to FreeFull in #haskell 23:26:20 23:25:44 http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html has an explanation of why round to even. string-search for "round to even" 23:26:20 * oerjan whistles innocently 23:26:50 you realise one of those bots wasn't even mine right 23:26:57 and also I don't have access to those IPs any more. 23:27:02 (so the bans do nothing) 23:27:17 -!- ChanServ has set channel mode: +o oerjan. 23:27:28 -!- oerjan has set channel mode: -b *!*shutup@91.105.67.*. 23:27:37 -!- oerjan has set channel mode: -b *!*shutup@208.78.103.*. 23:27:47 -!- oerjan has set channel mode: -b *!*antioptbo@*.wmiscable.net. 23:27:59 GOOD ARGUMENT 23:28:04 -!- oerjan has set channel mode: -o oerjan. 23:28:35 > printf "%.4f" pi :: String 23:28:36 "3.1416" 23:28:44 thx 23:28:46 hagb4rd: ^ 23:29:42 > printf "%.6f" 4.5 :: String 23:29:44 "4.500000" 23:30:26 the only bot i remember is zeptobot... 23:30:41 * hagb4rd throws his cards on the table 23:31:08 Full house 23:31:14 no i pass 23:31:41 no I mean *I* had a full house. I win! 23:31:45 * GreyKnight takes the jackpot 23:36:24 -!- GreyKnight has quit (Ping timeout: 265 seconds). 23:38:52 -!- GreyKnight has joined. 23:39:13 :t printf 23:39:15 PrintfType r => String -> r 23:39:51 Waaait, doesn't this type definition say it only takes one argument 23:40:13 printf is a gross typeclass hack 23:40:27 FreeFull: what does "only one argument" mean 23:40:31 every function only takes one argument in haskell 23:40:36 String -> Int -> () is just String -> (Int -> ()) 23:40:38 check out what all's an instance of PrintfType 23:41:10 elliott: A function that doesn't take multiple arguments for me is one that doesn't return a function, and will error if any more arguments are supplied 23:41:14 :t printf ?x 23:41:15 (?x::String, PrintfType r) => r 23:41:22 :t printf ?x ?y 23:41:24 (?x::String, ?y::t, PrintfType t1, PrintfArg t) => t1 23:41:46 FreeFull: sorry, that notion is insufficiently general to apply to haskell. 23:42:07 anyway the point is there is a PrintfType instance for (a -> b) 23:42:14 for sufficiently restricted a, b 23:42:41 (PrintfArg a, PrintfType b) => PrintfType (a -> b) 23:43:20 as well as instance PrintfType (IO ()) and instance PrintfType String, at least 23:43:36 > (printf "%d" :: Double -> String) 4.5 23:43:37 the latter are used to end the chain 23:43:38 "*Exception: Printf.printf: bad argument 23:44:21 elliott: PrintfType r => String -> r makes as much sense to me as Monad m => Integer -> m 23:44:49 okay. then the problem is that you do not understand typeclasses 23:45:06 learn about them and you will understand printf's type better 23:45:14 -!- GreyKnight has quit (Remote host closed the connection). 23:45:16 Seems so 23:45:19 isn't that what he said already? 23:45:32 -!- GreyKnight has joined. 23:46:20 What do you call amb extended to work with any monad, not just the list monad? 23:46:35 Sgeo: nonexistant 23:46:45 What is amb? 23:46:59 Just asking for a name, there would be a slight difference in usage 23:47:10 another buzzword 23:47:18 Sgeo: it doesn't exist. you can't write it 23:47:21 there is no such function 23:48:07 And by "slight difference" I mean "wrapped in a reset" 23:48:29 Sgeo: it doesn't exist. you can't write it. there is no such function. amb does not work in every monad. 23:48:48 Sgeo: call it mamb and discover for yourself why elliott's being a party pooper 23:49:03 what does the name matter if it's impossible? mamb works well enough 23:50:30 Maybe I have a wrong idea of what amb does? I'm sort of going off Factor's amb 23:50:41 What is it meant to do and what would it do for a Maybe Integer 23:51:16 Sgeo: how do you implement amb for Identity exactly 23:51:21 well you can actually 23:51:26 sort of 23:51:31 it's possible for any MonadPlus anyway 23:51:31 FreeFull, not execute the rest of the reset 23:51:36 but clearly not any Monad 23:51:39 return :: a -> M a 23:51:49 map :: (a -> b) -> M a -> M b 23:51:52 join :: M (M a) -> M a 23:52:00 how do you write amb :: [a] -> M a with that exactly 23:52:25 i mean, even in the simplest case, amb [], there is nothing you can do 23:53:03 Wait, why is amb taking a list? 23:53:06 s/map/fmap/ 23:53:15 okay what is your type for amb then 23:53:37 FreeFull: map is a perfectly fine name for it. map is a specialisation of fmap in Haskell and I am working in an abstract setting. 23:53:37 It's supposed to look like m a -> a from the perspective of using code 23:53:49 Sgeo: what. amb is not [a] -> a in the list monad?? 23:53:51 it's [a] -> [a] 23:54:12 FreeFull: you will also note that I specified monads in terms of the return/map/join trifecta, not return/(>>=)/fail, the last of which doesn't even exist. 23:54:16 oh I guess (>>) is lumped in there nowadays too 23:54:21 elliott: Yeah but being used to the specialisation being a specialisation got me confused until I realised you meant fmap =P 23:54:38 I guess it is a less confusing name for someone used to Haskell, yes 23:54:45 it worked for my intended audience, I hope 23:55:00 elliott, o.O ? 23:55:06 > let amb = id in do { x <- amb [1,2,3]; y <- amb [1,2,3]; guard (x+y == 3) } 23:55:08 (>>) can be implemented with (>>=), right? 23:55:09 [(),()] 23:55:11 erm 23:55:14 > let amb = id in do { x <- amb [1,2,3]; y <- amb [1,2,3]; guard (x+y == 3); return (x,y) } 23:55:16 [(1,2),(2,1)] 23:55:19 that's amb 23:55:25 FreeFull: yeah 23:55:35 m >> x = m >>= const x 23:55:41 (const x = \_ -> x) 23:55:55 Then lumping it in isn't very necessary =P 23:56:15 it is for performance 23:56:22 FreeFull: it's in case you want to specialize your >> to be optomized 23:56:26 you can define (>>) more efficiently for some monads 23:56:39 True 23:57:10 But not necessary when you're talking about a minimal definition 23:57:31 elliott, maybe a language without native delimited continuations is not the best for this discussion? 23:57:55 Sgeo: then I have no idea what you are talking about, or why monads are involved 23:58:05 or why you are relating this operation to amb 23:58:23 Sgeo: can you please write your thoughts in haskell, the one true Lingua Franca 23:59:29 I've expressed my thoughts some time ago actually, except I didn't connect it to amb 23:59:35 An applicative-ish syntax for using monads