00:13:20 -!- zzo38 has quit (Remote host closed the connection). 00:22:17 @time 00:22:18 Local time for elliott is Sat Apr 7 01:22:45 00:25:14 kmc: This FAQ page is amazing. 00:27:49 kmc: dmwit really likes -- yeah. 00:28:09 Just... the whole thing is great. in any case, this FAQ should be cited more often @where faq http://www.haskell.org/haskellwiki/FAQ nice 00:28:16 YOU'RE FAMOUS 00:37:55 -!- Vorpal has quit (Read error: Operation timed out). 01:18:47 @time 01:18:47 Local time for elliott is Sat Apr 7 02:19:15 01:25:13 @time 01:25:14 Local time for elliott is Sat Apr 7 02:25:41 01:33:52 -!- Phantom_Hoover has quit (Read error: No route to host). 01:34:11 -!- Phantom_Hoover has joined. 01:36:53 @time 01:36:53 Local time for elliott is Sat Apr 7 02:37:21 01:52:06 -!- zzo38 has joined. 02:10:13 -!- Nisstyre has joined. 02:21:54 elliott: Did you know: Linear types are a forward facing temporal modality? 02:22:21 I guess the sentence is reasonable in the context. 02:22:35 He's crushing all my childhood hopes and dreams. 02:22:37 I'm a ruined man. 02:22:46 And he's not even talking to me! 02:23:11 elliott: I'm using D! Is that esoteric? 02:24:16 Why? 02:24:49 I'm not actually sure whether to use it yet. 02:25:04 D is awful. 02:25:08 Oh. :-( 02:25:10 Their toolchain support is beyond abominable. 02:25:13 Ask RocketJSquirrel, pikhq, Deewiant. 02:25:27 Also they have a ludicrously fractured community, two language versions, a bunch of compilers, two standard libraries. 02:25:33 "As the famous Roman mathematician [???] said: quod erat etceterandum" 02:25:45 And it's very much a "pile everything in one language and shake it until it all sort of fits" language. 02:25:59 elliott: It can't be as bad as C++. 02:26:15 I once went to a talk about D which make it seem like a good language. 02:26:22 Oh, sure, it's better than C++. 02:26:27 D 2 even encodes some kinds of purity. 02:26:38 I mean, brainfuck is also better than C++... 02:26:41 elliott: Were there any Roman mathematicians? 02:26:51 elliott: Is this the thing that ends with you telling me to just use Haskell? 02:27:37 I don't like Haskell. 02:27:39 What are you trying to write? 02:27:52 Various ptrace things. 02:28:03 I thought trying out D would be exciting. :-( 02:28:56 Well, you can. 02:29:06 But it will take you at least an hour to get a toolchain installed. 02:29:13 elliott: I already got gdc working. 02:29:19 Apparently gdc does D 2 these days. 02:29:24 It was just an apt-get away. 02:29:30 lol, gdc 02:29:39 I would not recommend gdc unless the year is currently 2008. 02:30:05 Unless it stopped being crap after being maintained again. 02:30:10 Deewiant uses ldc, FWIW. 02:30:17 But it's D1. Except it does D2 too? I don't know. 02:30:26 And Tango is much better than Phobos, but Tango is D1 only. 02:30:31 What's wrong with gdc? 02:30:50 @time shachaf 02:30:53 2008 02:31:09 * shachaf was too lazy to actually get lambdabot to say that. 02:31:17 Things. I don't remember, I abandoned D as hopeless long ago. 02:31:18 But pretend it did. And that there was no space before the @. 02:31:26 (You already pretend there's no *time* before @, after all.) 02:32:55 elliott: The problem with Haskell is that if you use Haskell, you start wanting your code to be nice. 02:33:14 And suddenly you've spent a long time on getting the API right without getting anything done. :-( 02:33:23 -!- augur has joined. 02:33:28 "In 2009, a strange smell began wafting through a Fort Worth call center that someone quickly recognized as a poisonous carbon monoxide leak." — Cracked 02:33:38 Odd, that, seeing as carbon monoxide is odourless. 02:33:54 That's how they could tell! 02:33:57 Phantom_Hoover: Erm, they put smell in it, don't they? 02:34:00 * Phantom_Hoover notes that they note that in the next paragraph. 02:34:03 "Can you smell that?" "No." "Oh no! CO!" 02:34:14 elliott, they put smell into domestic gas supplies. 02:34:21 `addquote "In 2009, a strange smell began wafting through a Fort Worth call center that someone quickly recognized as a poisonous carbon monoxide leak." — Cracked Odd, that, seeing as carbon monoxide is odourless. That's how they could tell! "Can you smell that?" "No." "Oh no! CO!" 02:34:24 839) "In 2009, a strange smell began wafting through a Fort Worth call center that someone quickly recognized as a poisonous carbon monoxide leak." — Cracked Odd, that, seeing as carbon monoxide is odourless. That's how they could tell! "Can you smell that?" "No." "Oh no! CO!" 02:35:03 @time 02:35:04 Local time for elliott is Sat Apr 7 03:35:31 02:42:34 shachaf: "The ISP". America is weird. 02:42:37 Phantom_Hoover: America is weird. 02:42:57 elliott: Which part? 02:43:12 shachaf: The part where your ISPs all have regional monopolies. 02:43:14 More or less. 02:43:24 elliott: I mean "in the building I'm in currently". 02:43:52 There are all sorts of ISPs around, and in one place 15 minutes' walk away it's Comcast. 02:43:56 Here it's not. 02:44:27 America is still weird. 02:44:36 @time shachaf 02:44:39 Local time for shachaf is Fri Apr 6 19:44:36 2012 02:44:48 What are you doing in a building at 19:44? 02:45:03 elliott: Here is America the buildings stay on the ground during the night. 02:45:09 It's weird. 02:45:14 s/is/in/ 02:45:26 Oh. 02:45:28 That's weird. 02:45:32 America is weird. 02:46:10 elliott: You should come visit! 02:52:14 monqy: hi 02:52:18 shachaf: hi 02:52:26 monqy++ 02:52:30 @karma monqy 02:52:30 monqy has a karma of 3 02:52:49 monqy: What if we wrote a bot that said hi? 02:52:57 would it be me 02:53:03 No. 02:53:06 what if we wrote two bots that said hi 02:53:11 It would be called monqyprime 02:53:15 It would replace you. 02:53:59 shachaf: Come visit where? 02:54:04 elliott: America. 02:54:09 shachaf: I don't like America. 02:54:12 Anywhere there would do -- it's a small place. 02:54:28 No it's not. 02:54:32 Oh. 02:54:38 monqy is america small monqy 02:54:48 elliott: You should come visit so that you can make an educated decision? 02:54:51 s/.$/!/ 02:55:09 how small is small 02:55:47 Wait, aren't monqy and shachaf in the same Americaville? 02:56:03 monqy: they got three stop signs, two police officers, and one police car 02:56:04 I'm in the america-shaped america 02:56:12 what is the shape of your america 02:56:12 State. 02:56:14 I mean state. 02:56:24 shachaf: that's pretty small! 02:56:47 elliott: "I live in California," stated Tom. 02:57:03 does monqy live in tom 02:57:13 hi monqy 02:57:18 hi elliott, shachaf 02:57:31 heliochaf 02:57:39 monqy: Wait, is your name William Parker? 02:57:46 that's what it says right 02:57:50 why are you stalking me 02:58:09 Today waas an exciting day in the part of Americaville I live in. 02:58:24 There was a police car and there was police officers. 02:58:29 And guns. 02:58:39 my americaville was boring 02:58:41 And the police officer said to come out with your hands up. 02:58:50 no police officers 02:58:56 there was a police car but it was just parked over there 02:59:08 no hands 02:59:12 no ups 02:59:17 Do monqy and shachaf live within 100 miles of each other? They might meet and cause an explosion. 02:59:20 Hi, antihi, you know. 02:59:23 *cohi 02:59:26 *contrahi 02:59:35 kmc is contrahi 02:59:55 elliott: The Americaville I live in once had the most murders per capita in the US once in the 1990s! 03:00:14 I mean city. 03:00:22 Whoa, man, monqy is in CA? 03:00:24 my americaville starts with c and ends with alifornia 03:00:25 hi monqy 03:00:28 hi shachaf 03:00:47 The Americaville I live in starts with c and ends with alifornia too. 03:01:15 That sounds exciting. 03:02:03 Which Californiaville does shachaf live in? 03:02:10 also I don't like murder :( 03:02:28 monqy: You should come visit! 03:02:33 oh no 03:02:36 elliott: I live in silly valley. 03:03:00 Does monqy live in a silly valley? 03:03:05 Probably. 03:03:08 Also, I don't like silly valley. :( 03:03:13 But probably not the same one. 03:03:21 isn't the world just one big silly valley 03:03:22 elliott: I recommend not living there. 03:03:40 I didn't need that recommendation. 03:03:53 How many insufferable startup people do you see per day? 03:04:17 elliott: It's pretty much all insufferable startup people. 03:04:29 Well, some of them are sufferable. 03:04:31 shachaf: are you a insufferable startup people 03:04:41 I don't think there are sufferable startup people. 03:04:44 monqy: Maybe. :-( 03:05:34 monqy: are you a insufferable startup people 03:05:44 whats a startup no 03:05:49 elliott: A lot of the startup people are moving into the San Francisco these days. 03:06:26 shachaf: I thought that was in silly valley. :( 03:06:30 Wait, the other way around. 03:06:33 It's not. :-( 03:06:34 California is complicated. 03:06:46 Silly valley is about an hour by train/car from SF. 03:15:17 elliott: Which Ukville do you live in again? 03:15:33 Uk. 03:15:44 It's Scotland, right? 03:15:47 Scotland is like a state, right? 03:16:30 Yes. 03:16:44 Is Hexham like a state? 03:17:40 Yes. 03:17:56 @time 03:17:57 Local time for elliott is Sat Apr 7 04:18:24 03:19:25 monqy: Are you in Lompocalifornia. 03:19:32 maybe 03:19:52 does lompocalifornia start with c and end with alifornia 03:22:48 yse 03:23:44 "You've earned the "ghc" badge. See your profile." 03:23:45 now im the spj 03:25:51 * Sgeo checks out What Fools These Mortals again 03:26:01 hi 03:26:08 what's what fools these mortals again 03:26:08 (A NetHack-related "game" where you take the role of a god) 03:26:10 oh 03:26:14 hi 03:27:08 http://www.crummy.com/software/WhatFools/ 03:28:33 http://pastie.org/3742697 03:29:35 hi 03:30:11 @time Phantom_Hoover 03:30:12 Local time for Phantom_Hoover is Sat Apr 7 03:27:10 03:30:13 @time america 03:30:14 @time RocketJSquirrel 03:30:15 Local time for RocketJSquirrel is Fri Apr 6 23:30:12 03:30:21 What time is int Americjmiao 03:30:22 Hmm, ignoring a prayer sets the worshipper's HP to half their max HP 03:30:34 And helping has a 1/30 chance of killing the player 03:30:42 *worshipper 03:30:51 whatfools won't run for me :'( sgeo help 03:31:05 What happens when you try? 03:31:22 -!- MDude has joined. 03:31:24 -!- MDude has changed nick to MSleep. 03:31:30 File "WhatFools.py", line 210 03:31:30 as = alignmentSelection.keys() 03:31:30 ^ 03:31:46 same error on both python (3.2.2) and python2 (2.7.2) 03:31:53 im too new :'( 03:32:36 i like how 03:32:40 you ommitted the actual errore 03:32:42 Does it say anything after the ^ 03:33:06 no thats it 03:33:09 i forgot to cpy 03:33:21 now i forgot where i put it oh there it is 03:33:30 SyntaxError: invalid syntax 03:33:33 most exciting error 03:34:45 the most exciting error is T_PAAMAYIM_NEKUDOTAYIM 03:34:59 :o im excited 03:35:13 it really is 03:35:15 jumping to -1 is exiting 03:35:53 Hmm, is the lambda in the wrap that's above it valid? 03:36:18 sgeo it's that "as" is special syntax not a valid identifier 03:36:26 Oooh 03:37:05 How did this even get distributed in this state, then? 03:37:15 im too lazy to get the module i need to get to make it work after fixing that which i was somehow not too lazy not to fix 03:37:35 Just replace usage of as in that function with ass 03:37:44 i replaced it with qs long ago 03:37:47 Oh 03:38:16 How did this even get distributed in this state, then? 03:38:20 because as wasn't syntax a while ag 03:38:21 ago 03:38:23 2.4ish 03:38:33 Ah 03:40:54 /mode +b elliott 03:41:05 dammit ais 03:41:09 belliot 03:41:18 monqy: wasnt that a good joke 03:41:38 i would have said beliot but then i wouldn't have gotten belli in there 03:42:20 beliot 03:42:28 yes 03:42:46 belot 03:43:25 bt 03:43:35 It is sad that I seem to have forgotten a lot about Python? 03:43:46 hi Sgeo 03:43:47 beety, beaty, baety, baaty, batty 03:43:57 s/Sgeo/monqy/ 03:44:01 Sgeo: no, not really 03:44:05 the sooner the better! 03:44:18 Sgeo, shachaf, monqy: hi 03:45:27 monqy, hi 03:49:39 @time 03:49:39 Local time for elliott is Sat Apr 7 04:50:07 03:49:41 im going to 03:49:44 brb for half an hour 03:49:45 nobody die 03:49:48 nobody change their name 03:49:50 nobody get married 03:50:07 elliott: canimarrymonqy:( 03:50:13 yes 03:50:22 heads up my name is elliote now 03:50:40 hi elliote 03:50:40 just kidding, that was a joke 03:50:45 oh:( 03:50:45 my name is really elliotts 03:50:53 hi elliotts 03:50:56 hi 03:51:08 whos monqy 03:51:15 iwastalking to elliotts 03:51:29 HELP 03:51:34 oh no, what did i do to elliotts 03:51:38 what have i done 03:51:52 monqy is that dead, married guy named monqy_ 03:52:09 Oh, monqy! 03:52:17 william "hi" parker, also known as monqy 03:52:50 monqy is just a puppet, i was elliotts all along 03:53:14 gasp 03:53:54 `? monqy 03:53:57 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 03:54:07 itidus20: for details? 03:54:10 *gasp* 03:54:11 itidus20: where's itidus21 03:54:37 itidus21 is just a puppet, i was itidus21 all along 03:54:45 oops 03:55:06 does this mean you were a puppet all along 03:55:45 `log puppet 03:56:17 No output. 03:56:21 `log puppet 03:56:41 2011-02-08.txt:15:06:28: sockpuppets wouldn't necessarily be a problem, you could think up ways to exclude them 03:56:53 The law of excluded sockpuppet. 03:56:54 @hey-shapr 03:56:54 shapr!! 03:57:09 is monqy = lambdabot 03:57:28 @hi 03:57:54 @hi there 03:57:54 No match for "there". 03:58:08 @histogram 03:58:08 Unknown command, try @list 03:58:13 hi stogram 03:58:27 hi shachaf 04:02:00 -!- Phantom_Hoover has quit (Remote host closed the connection). 04:02:26 elliott: lifestream is recommending LYAH 04:05:03 elliott: Who was Elemir again? 04:15:17 -!- Case2 has quit (Quit: Leaving.). 04:33:02 it just dawned on me that incrementing a variable in a loop should cause python to eventually use all available memory 04:35:44 shachaf: How do I become as cool as edwardk? 04:35:58 elliott: Man, you should *meet* edwardk someday. 04:36:08 He has all these great stories. 04:38:19 What are they called, something like an endofunctor in Haskell, but (x -> x) -> y -> y instead of having the type parameter? 04:38:53 shachaf: I'm not worthy. :( 04:40:10 It seems to be something like a functor from one subcategory of (->) to another one? But even then, this is something more specific 04:47:48 Do you know what they are? 05:05:04 elliott: You should come to America! That's where edwardk is. 05:06:49 zzo38: Hay you! 05:06:57 Are you in America? 05:07:01 America the country. 05:07:17 zzo38 is canada 05:07:25 canadiehese 05:07:32 shachaf: I am in America the continent. The country is Canada. 05:07:54 America is a country. 05:08:05 There is no continent but America and America is its country. 05:08:56 -!- NihilistDandy has joined. 05:09:07 elliott: http://dlang.org/property.html 05:10:15 shachaf: Yes? 05:10:24 Never mind. 05:10:24 -!- MSleep has quit (Read error: Connection reset by peer). 05:10:43 shachaf: Yes, it's horrible. 05:11:13 Huh? 05:11:17 Oh, D. 05:11:26 elliott: What language should I use? 05:12:34 Prolog. 05:12:40 -!- MDude has joined. 05:12:49 -!- asiekierka has joined. 05:13:00 elliott: Apparently I HAVE A BADGE ON STACKOVERFLOW TOO. 05:13:04 SO THERE. 05:14:17 -!- asiekierka has left. 05:15:31 I HAVE 160 05:15:50 Why is that 160 lowercase? 05:16:09 !^) looks like an emoticon 05:26:26 Parsec Haskell. Parskell. 05:27:08 Surely you mean Hasksec, the purely functional branch of Lulzsec 05:27:42 You'll hear about their exploits when the thunk chain finally resolves. 05:28:03 -!- MDude has quit (Read error: Connection reset by peer). 05:31:04 -!- kmc has quit (Quit: Leaving). 05:33:06 -!- MDude has joined. 05:37:23 I've been told that the problem with D is that there are two different incompatible standard libraries 05:46:36 @tell oerjan your paren monoid was invented by sigfpe http://blog.sigfpe.com/2009/01/beyond-regular-expressions-more.html 05:46:37 Consider it noted. 05:46:54 You could have invented paren monoids. 05:52:40 elliott: Why is strace so good? 05:57:28 Sgeo: which two? 06:02:00 -!- kmc has joined. 06:02:41 shachaf, cool! i'm glad people like the FAQ 06:02:56 glad not just because i wrote it, though that's a large part of why 06:03:18 It has terrible Google ranking. 06:03:28 i know 06:03:33 * kmc no good at SEO 06:03:43 You should buy backlinks! 06:03:45 five dola 06:03:46 i could link it from my blog 06:03:51 but even i am not that shameless 06:04:08 What's wrong with doing that? 06:04:12 "haskell faq" 06:04:13 second result 06:04:20 Maybe you can sneak it into your "why I left #haskell" post. 06:04:27 elliott: Not here. 06:04:28 my blog has reasonable ranking on a variety of searches, though i haven't controlled for google customized results 06:04:41 for me it's actually not on the first page 06:04:45 * shachaf is searching in Chromium Incognito Mode. 06:04:48 well i clicked it a lot so 06:05:00 It's not on the first page here either. 06:05:29 On the other hand Bing has it as the second result. 06:10:01 -!- azaq23 has quit (Read error: Connection reset by peer). 06:11:54 kmc: Did you see edwardk's exciting Haskell adventures? elliott: monoid :: (a -> a -> a) -> a -> (Monoid a => r) -> r 06:12:04 huh 06:12:31 coppro, o.O/ 06:12:31 ? 06:12:45 kmc: I'm optimising edwardk's library!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 06:12:57 Isn't that, like, a groovy type, dude? 06:14:31 coppro, there are more than two standard libraries for D? 06:17:19 -!- NihilistDandy has quit. 06:30:24 -!- calamari has quit (Quit: Leaving). 07:13:42 -!- Patashu has changed nick to SpectralPatashu. 07:20:37 -!- SpectralPatashu has changed nick to Patashu. 07:30:28 -!- Taneb has joined. 07:30:35 Hello 07:30:38 @tell oerjan btw my optimised implementation has (will soon) made (make) it into reflection; it's all packed into bytes now 07:30:38 Consider it noted. 07:31:13 What's the context of the topic? 07:32:47 sigfpe didn't really invent anything there 07:33:04 oklopol: my definition of invent is loose 07:33:06 Taneb: zzo38 07:33:13 okay 07:33:28 Hmm 07:34:37 "The syntactic monoid of the Dyck language is isomorphic to the bicyclic semigroup by virtue of the properties of Cl([) and Cl(]) described above." 07:34:42 -- http://en.wikipedia.org/wiki/Dyck_language 07:34:57 plus that's obvious 07:35:04 oklopol: i don't require originality or even lack of prior knowledge to invent something 07:35:11 :P 07:35:35 oerjan: congrats on your invention by elliott's def 07:41:01 hi monqy 07:41:04 elliott is famous now 07:53:46 hi 07:54:38 congratulation elliotts 07:54:58 this am a whole THREE hackage package im contribute 2 now 07:55:04 *3, TWO 07:56:35 monqy: https://raw.github.com/ehird/reflection/master/Data/Reflection.hs look at my arte 07:57:00 bytes go 07:57:13 oh i remember that 07:57:22 or at least something that looks an awful lot like that 07:57:30 monqy: Yes, this time I rewrote it and it's going in the Actual Package. 07:57:47 Which currently looks like this instead: http://hackage.haskell.org/packages/archive/reflection/0.8/doc/html/src/Data-Reflection.html 07:58:12 -!- Ngevd has joined. 07:58:38 -!- Taneb has quit (Ping timeout: 246 seconds). 07:59:29 -!- Ngevd has changed nick to Taneb. 08:10:11 -!- Ngevd has joined. 08:10:14 -!- Taneb has quit (Read error: Connection reset by peer). 08:11:13 -!- Ngevd has quit (Client Quit). 08:19:52 @time 08:19:52 Local time for elliott is Sat Apr 7 09:20:19 08:20:06 goto sleep; 08:20:35 no 08:22:17 -!- oerjan has joined. 08:22:41 hi oerjan 08:23:05 hi elliott 08:23:05 oerjan: You have 2 new messages. '/msg lambdabot @messages' to read them. 08:23:11 @messages 08:23:11 elliott said 2h 36m 33s ago: your paren monoid was invented by sigfpe http://blog.sigfpe.com/2009/01/beyond-regular-expressions-more.html 08:23:11 elliott said 52m 33s ago: btw my optimised implementation has (will soon) made (make) it into reflection; it's all packed into bytes now 08:23:43 hi oerjan 08:24:01 oerjan: hi 08:24:11 hoerjan 08:24:15 oerjan: i should suspect it was known back in the 50s-60s, like everything else 08:24:15 oi 08:24:18 hi shachaf 08:24:30 you just pinged yourself 08:24:34 er 08:24:40 *elliott: 08:24:48 *elliott 08:24:52 elliott: i blame shachaf 08:24:52 oerjan: it made it in; before: http://hackage.haskell.org/packages/archive/reflection/0.8/doc/html/src/Data-Reflection.html; after: https://raw.github.com/ekmett/reflection/master/Data/Reflection.hs 08:25:04 Is that like a *semiring? 08:25:20 shachaf: what, a monoid? 08:25:35 A *elliott. 08:25:46 oerjan: (even before is simplified since i suggested he simply reify the pointer as one number rather than as a list of numbers) 08:26:20 shachaf: *semirings, is that * like in C*-algebra? 08:26:39 elliott: ah 08:27:17 elliott: but you are still not using the obvious direct core construction which logically _must_ exist, right? >:) 08:27:31 oerjan: i plan to try it out (with Cmm, since you can't write core) 08:27:33 (as a foreign import prim) 08:27:40 but i'm trying to get the same effect with unsafeCoerce first 08:27:46 ah 08:27:47 -!- oklopol has quit (Quit: ( www.nnscript.com :: NoNameScript 4.22 :: www.esnation.com )). 08:28:08 what you see there is as direct as you can get in "portable" haskell, though 08:28:21 make a stable pointer, assign one type per byte, reflect it back, dereference it, free it 08:30:19 well, if it also works in jhc (that's the only other haskell implementation worth mentioning these days, right?) that's probably good 08:32:16 otherwise, i'd sort of expect core would be more long term stable than a lower level? 08:32:54 but of course they probably have no compuction changing that if they need some new type feature or whatever 08:34:14 oerjan: um it uses TypeFamilies 08:34:18 so it works on nothing but ghc 08:34:20 *compunction 08:34:26 elliott: aww 08:34:27 UHC is probably more relevant than jhc 08:34:40 oerjan: anyway, i have no idea why you continue to believe core is a viable scenario, since ghc _can not_ read core 08:34:45 and never has been able to 08:34:49 elliott: Did you know the average American watches over 28 hours a day of television? 08:34:51 it has no core frontend, full stop 08:35:14 elliott: but there _is_ a core plugin feature, though 08:35:39 i had the thought that should be possible to use 08:36:07 what do you mean by that? 08:36:23 oh the core-to-core pass things? 08:36:25 that might work. 08:36:29 ghc 7.2+ only though 08:36:57 yeah 08:42:34 oerjan: i got it working with unsafeCoerce 08:42:50 http://hpaste.org/raw/66547 (fundeps) 08:42:53 http://hpaste.org/raw/66550 (type families) 08:45:27 ttants: semirings, smearings 08:45:37 yay! 08:46:03 oerjan: fundep one is much nicer, type family one has weird workarounds 08:50:35 oerjan: even simpler, thanks to edwardk: http://hpaste.org/66551 08:55:14 i suppose this means that a class dictionary of a single method is implemented simply as that method 08:55:29 with no physical wrapping 08:55:41 apparently 08:55:57 which of course makes sense for efficiency 09:04:03 interestingly, the "evil" unsafeCoerce version is probably easier to understand :P 09:04:54 *versions are 09:05:01 indeed, it is 09:13:03 -!- monqy has quit (Quit: hello). 09:16:09 -!- zzo38 has quit (Quit: Remember: sanity Impares; reality is not a part of physics; and Iuckqlwviv Kjugobe was here.). 09:17:39 oerjan: i think it might be the most terrifying 5-line module ever 09:18:32 XD 09:18:44 -!- kmc has left ("Leaving"). 09:19:00 -!- kmc has joined. 09:22:17 oerjan: btw this evil made a benchmark go from 130ms to 6ms 09:22:26 yay :P 09:22:27 because instead of a stableptr etc. etc. etc. it's literally just the cost of a function call 09:23:43 oerjan: fun fact: reflection has broken API-compatibility four times today 09:23:45 with Hackage releases 09:24:02 wait, why would the API change because of this? 09:24:45 well at first it changed to something that only needs Rank2Types, not the optimisation stuff 09:24:59 then he did my suggestion of removing one intermediate (exposed) layer and just reifying the pointer as a number directly 09:25:12 then he realised that the fewer-extensions API is just a big red unsafeCoerce button 09:25:18 so he did it with type families instead 09:25:33 then my optimisations came in and unexported the changed, slower intermediate API 09:26:09 -!- Taneb has joined. 09:26:56 Hello! 09:27:12 hi Taneb 09:31:16 @ping 09:31:16 Damn 09:31:17 pong 09:38:07 `addquote elliott: It can't be as bad as C++. [...] Oh, sure, it's better than C++. [...] I mean, brainfuck is also better than C++... 09:38:16 840) elliott: It can't be as bad as C++. [...] Oh, sure, it's better than C++. [...] I mean, brainfuck is also better than C++... 09:46:00 I GET IT 09:46:06 THE JOKE IS THAT C++ IS BAD 09:46:47 shachaf++ 09:47:51 C++ is the non-esoteric language I know 5th best 09:48:11 I can barely remember any of the non-esoteric language I know 3rd best 09:51:00 shachaf knows what i'm going to say next 09:51:26 Yep. 09:53:43 So speaking of C++, it looks like D is more or less trying to be "C++ Done Right" (but with GC). 09:54:01 The quote about svn and cvs comes to mind... But I haven't looked into it particularly deeply yet. 10:00:37 -!- oerjan has quit (Quit: Later). 10:06:23 shachaf: That is the expressed intent of D. 10:06:56 kmc: What are you going to say next? 10:07:01 that C++ is an esolang 10:07:14 i think "C++ done right but with GC" almost misses the point of C++ 10:08:42 C++ tries to combine a very high-level style with exact, deterministic resource management and zero overhead for unused features 10:09:10 kmc: It's C++ with *optional* GC. 10:09:24 sure 10:09:24 And slightly less insane and esoteric syntax and semantics. 10:09:40 in fact bjorn stroopwafel or whatshisname says the next C++ will have optional gc 10:09:45 except that was several c++es ago 10:10:07 (because everybody loves having to write a parser-interpreter-compiler) 10:10:26 kmc: IIRC C++11 permits a GCed implementation. 10:11:10 C++ is memory-safe and leak-free, except for all the parts that aren't 10:11:18 i do mean this statement to be slightly serious 10:11:59 doing things the C++ Way is usually too cumbersome, so C++ programmers do it the C Way instead, which is why we think of C++ as a memory-unsafe, low-level language 10:12:32 a better language designed on the same principles as C++ might reach the point where arrays and pointer casts are akin to unsafeCoerce in Haskell 10:14:59 C++ has design principles, beyond "attempt to obsolete C feature X and do it poorly"? 10:15:12 i think so yes 10:15:24 such as 'combine a very high-level style with exact, deterministic resource management and zero overhead for unused features' 10:16:10 they failed to make the language usable in this way 10:16:23 kmc: have you ever unsafeCoerced an instance dictionary 10:16:49 elliott, have you ever unsafeCoerced an instance dictionary... on weed? 10:17:10 no :( 10:17:19 MagneticDuck: you can with GHC, but you don't want to. 10:17:29 Would people stop saying this in response to "do I need to use IO" questions? 10:17:31 (No.) 10:18:33 -!- derdon has joined. 10:18:43 elliott: But it's not a good answer unless it's maximally confusing! 10:19:15 Also, I should probably sleep. I think the sun's about to come up. 10:19:17 @time 10:19:20 Local time for pikhq is Sat Apr 7 04:19:16 2012 10:19:24 @time 10:19:24 Local time for elliott is Sat Apr 7 11:19:51 10:19:26 @time 10:19:27 Local time for kmc is Sat Apr 7 06:19:49 10:21:28 @time shachaf 10:21:28 Local time for shachaf is Sat Apr 7 03:21:27 2012 10:21:34 too many time 10:22:42 C++ is a bad language but it's bad in almost the opposite way of other bad languages 10:23:01 which is why it's so interesting! 10:31:24 -!- Taneb has quit (Read error: Connection reset by peer). 10:31:33 -!- Taneb has joined. 10:34:50 .... ok... i guess that people left real programmers alone until they started plugging colour monitors and speakers into them :P 10:35:28 what 10:35:41 ahh i will restate with improvements 10:36:31 I guess that before graphical monitors and speakers being plugged into computers, the computers were mostly the domain of real programmers 10:36:46 oh god 10:36:51 is it not so? 10:36:51 are we seriously going to talk about "real programmers" 10:37:05 Real programmers $meme 10:37:25 It was mostly the domain of academics and data crunchers and the military 10:37:28 iirc 10:37:41 by the definition that a real programmer does not require graphics or speakers to enjoy programming :P 10:37:43 kmc: Try adjusting your definition of "we". 10:38:21 maybe pre-text 10:38:44 jesus 10:40:31 itidus20, pro tip: talking about "real programmers" makes you sound like a total douchebag 10:43:31 You realise everybody else just doesn't respond to him, right? 10:43:39 maybe i should adopt this policy 10:43:54 ok, well, why is c++ a bad language? 10:44:08 elliott, but someone is wrong on the internet! i can't just stand by! 10:45:40 maybe good programmers just happen to use bad languages 10:46:02 some of them do 10:46:07 some bad programmers use good languages 10:46:10 what's your point 10:46:40 probably the majority of good programmers use bad languages, since the majority of coding is probably in c++ and java these days 10:46:53 ok you just actually have no idea what you're talking about 10:46:55 that's ok 10:47:32 You just now realise this? 10:47:48 well I realized it long ago for statements involving haskell 10:47:51 maybe c++ reminds people of the basic they grew up with on their 8bit machines designed to plug ito tvs 10:47:54 i did not know it generalized so well 10:48:02 yeah man, C++ and BASIC are so similar 10:48:08 so they have an affinity 10:48:18 i remember that time I got screwed by multiple virtual inheritance in basic 10:48:28 i fixed it with curiously recuring template pattern 10:48:33 but the compile times were killer 10:49:06 kmc: https://raw.github.com/ekmett/reflection/master/fast/Data/Reflection.hs 10:49:11 Did I link you to that yet? 10:49:23 everyoen is linking it 10:49:24 idgi 10:49:29 i can't understand this code right now 10:49:35 kmc: You know the reflection package, right? 10:49:39 oh, this is different 10:49:43 No. 10:49:43 from the other thing people are linking 10:49:46 Oh. 10:49:47 Okay. 10:49:54 This is the new new version. 10:49:56 It's been rewritten twice today. 10:50:07 of course 10:50:17 Oleg took about two pages of code to do it. 10:50:25 This one takes about 10 lines, thanks to being completely unportable. 10:50:36 Basically, it synthesises an instance dictionary at runtime. 10:50:48 By unsafeCoercing something with a typeclass context and passing it a value instead. 10:50:59 -!- Taneb has quit (Ping timeout: 245 seconds). 10:53:43 i wasn't so bad once.. but these days when i try to concentrate on anything properly i end up with a full-blown attack of existential anxiety 10:53:48 i don't conciously know why 10:54:18 try doctors and pills 10:54:34 elliott, does the 'reflection' library solve an inherently hard problem 10:54:51 or is this another case of Haskell insanity to do something that's very easy in most languages 10:55:10 i can see ways in which the 'reflection' solution is nicer than what you usually do in other languages 10:55:16 kmc: Could you try and ask a more loaded question? 10:55:35 It's not really an "external" problem, but I don't think other languages solve it well. 10:55:44 This lets you write numeric typeclass instances for modular arithmetic. 10:55:47 Where you decide the modulus at runtime. 10:56:11 i would do that in Python by creating a class for numbers mod n and overloading arithmetic on it 10:56:15 Here's another interesting example: https://raw.github.com/ekmett/reflection/master/examples/Monoid.hs 10:56:19 kmc: That doesn't work. 10:56:27 kmc: You have to specify the modulus every time you create such an object. 10:56:36 With this, it's just: (2 + 2) `modulo` 6 10:56:54 The configuration is implicitly plumbed. 10:57:12 kmc: (And with that solution, you can have two objects with differing modulopodes being added together. Nasty.) 10:57:22 That's just like bundling the modulus with the value and giving that a Num instance. 10:57:41 yes 10:57:46 except that in Python you don't expect static checking ;P 10:57:52 Well, sure. 10:57:58 Even then you still have to specify the modulus every time. 10:58:03 Anyway, that Monoid example is cool.. 10:58:31 Specify a function and a value, and suddenly you have a monoid (M a s) (for unknown s, like runST), and M :: a -> M a s. 10:58:39 Then it extracts out the a for you at the end. 10:59:23 The best part of the new implementation of reflection is that it shows a typeclass with no instances, and a function that gives you an instance for it. 10:59:27 (In the Haddocks.) 11:00:35 kmc: also come on, it's turning a value into a type and back again, that's inherently cool 11:01:08 -!- MoALTz_ has joined. 11:01:08 kmc: oh, another use-case is for fixed precision arithmetic 11:01:18 you can have one fixed precision type that works with arbitrary precisions at runtime 11:01:27 and you can't mix two values with different precisions etc. 11:01:35 because they contain the token representing the precision in their type 11:01:48 (and you can mix and match multiple such precisions at once) 11:03:58 -!- MoALTz has quit (Ping timeout: 246 seconds). 11:08:53 -!- Phantom_Hoover has joined. 11:15:08 -!- Vorpal has joined. 11:15:12 hi Phantom_Hoover 11:15:16 what time is it in america hoover 11:15:17 @time 11:15:17 Local time for elliott is Sat Apr 7 12:15:44 11:15:19 oh no vorpal 11:17:16 after some thought, it seems to me that what i know colloquially as the fibonacci function is an iterator of the fibonacci sequence 11:19:20 eep. 11:19:33 Pfft, the Fibonacci function is F(n) = (((1+sqrt(5))/2)^n-((1-sqrt(5))/2))/sqrt(5). 11:19:53 best file my comment away as "You realise everybody else just doesn't respond to him, right?" 11:20:17 because 11:20:35 Hey kmc. How can I cast String to Just String? 11:21:32 ultimately, no matter how sincere i may sound, unless i actually do something meaningful between my posts, i will be repeating the same nonsense again and again 11:42:21 Alright, who's in Maryland? 12:41:33 -!- asiekierka has joined. 13:10:37 -!- Taneb has joined. 13:11:27 -!- augur has quit (Remote host closed the connection). 13:11:29 Hello! 13:12:16 hi 13:16:14 0x2B | !(0x2B)? 13:16:49 Isn't that just 0xFF? 13:17:02 yup :( 13:17:03 Assuming bitwise inversal and or-ing 13:17:19 Inversal? 13:17:25 ! 13:17:29 Not-ing 13:17:39 i tried it on windows calculator to see what would happen 13:17:53 (It's 0x2B, assuming C syntax; ~ is bitwise not, ! is logical.) 13:18:17 Well, I guess that solves Hamlet's problem 13:18:28 oh crap hoover u win 13:18:51 this is why i didn't program the nuclear launch computer 13:19:21 That is not my foremost reason not to let you program a nuclear launch computer. 13:21:18 whoa.. i just had an amusing thought.. a sprite in a video game riding a bomb drop 13:21:33 Hilarious. 13:24:21 i can has kell 13:30:31 I wonder what it means for a sprite to ride something, and what a bomb drop is 13:32:25 i want to shut up i really do 13:35:01 -!- Nisstyre has quit (Read error: Operation timed out). 13:37:37 -!- Nisstyre has joined. 13:38:29 -!- Taneb has quit (Read error: Connection reset by peer). 13:38:51 kmc: btw, the paper goes into some depth about the advantages of reflection's technique and its applications: http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf 13:39:00 (despite having an overly-complicated implementation) 13:43:15 -!- augur has joined. 13:44:14 -!- augur has quit (Remote host closed the connection). 13:53:42 -!- Taneb has joined. 13:58:05 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 14:02:41 -!- Taneb has quit (Read error: Connection reset by peer). 14:03:23 -!- Taneb has joined. 14:09:39 @ping 14:09:39 pong 14:18:36 -!- cheater__ has joined. 14:21:41 -!- cheater_ has quit (Ping timeout: 248 seconds). 14:21:41 -!- Phantom_Hoover has joined. 14:24:52 -!- Taneb has quit (Read error: Connection reset by peer). 14:40:13 This is lulzy http://techpp.com/2009/06/29/gmail-increases-attachment-size-limit-to-25mb-but-with-a-catch/ 14:40:30 i don't click links described as lulzy 14:40:51 What if I described it as dumb? 14:41:19 i lied i already clicked it 14:42:11 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 14:42:27 http://hackage.haskell.org/packages/archive/reflection/1.1.2/doc/html/Data-Reflection.html yay docs are up 14:43:34 Or I could have been influenced by other commentors... 14:45:09 -!- azaq23 has joined. 14:45:20 -!- azaq23 has quit (Max SendQ exceeded). 14:46:04 One comment yelled at all the other comments for misreading the article 14:53:00 -!- azaq23 has joined. 15:05:05 hi 15:08:30 -!- Patashu has quit (Ping timeout: 260 seconds). 15:10:35 Awwww, my popular Twitter account is now obsolete 15:14:07 http://www.remote.org/jochen/humor/c1/windows-tp.html The Internet Oracle is always awesome 15:47:00 Sgei: I know nothing of D 15:51:39 Oh 15:52:57 -!- Taneb has joined. 15:53:19 HellO! 15:54:16 Hi Taneb 15:54:54 One more day until I can go on Wikipedia! 15:59:02 (without feeling guilty) 15:59:29 -!- oerjan has joined. 16:00:48 -!- oerjan has set topic: Do you like rotating mazes? Do you like the other idea? | I do not like rotating mazes. I do not like them Mr. Z | http://codu.org/logs/_esoteric/. 16:03:56 hi 16:04:09 "enjoy recentchanges" 16:04:16 g'day 16:04:47 -!- Taneb has quit (Ping timeout: 246 seconds). 16:07:00 Also, I should probably sleep. I think the sun's about to come up. <-- the demise of the vampikhq 16:08:56 I guess that before graphical monitors and speakers being plugged into computers, the computers were mostly the domain of real programmers <-- the sentence was funnier when it implied that they were plugged into the programmers. hth. 16:10:24 i think it took several years even after that before ordinary people started using them. 16:10:41 s/ordinary/non-technical/ 16:11:52 -!- atrapado has joined. 16:11:53 I think it started with that whole "multimedia" business 16:15:30 * oerjan realizes he didn't finish reading the logs last time, and has them in two tabs 16:17:47 elliott: so thanks for fulfilling my reflection dreams, slightly modified 16:18:42 oerjan: \o/ 16:18:42 | 16:18:42 >\ 16:18:52 the docs are up and everything too: http://hackage.haskell.org/packages/archive/reflection/1.1.2/doc/html/Data-Reflection.html 16:19:10 "Nothing left to take away" and all that. 16:21:36 -!- Taneb has joined. 16:25:01 * oerjan has some slight doubts about the following line in the doc box: Safe Haskell Safe-Infered 16:26:07 oerjan: i submitted a pull request to make it Trustworthy actually 16:26:10 btw shouldn't that be inferred 16:26:10 the interface is totally safe 16:26:13 yes 16:26:23 we are probably doomed forever to stick with it like "referer" 16:26:54 unless someone fixes it. 16:27:01 that's probably what they said about referer 16:27:47 yes, but cabal doesn't have multiple competing implementations, does it 16:28:01 -!- asiekierka has left ("Wychodzi"). 16:28:39 yet 16:28:56 which means it still can be fixed 16:30:11 oerjan: but that would be like editing other people's comments on a wiki. 16:30:13 argh there is no way i'm not disconnecting soon (or right now) 16:30:20 you're niot 16:30:21 *not 16:30:22 @time oerjan 16:30:23 Local time for oerjan is Sat Apr 7 18:30:22 2012 16:31:06 -!- oerjan has quit (Quit: Lost terminal). 16:31:13 ok maybe you are 16:33:23 -!- oerjan has joined. 16:33:37 ping says no packet loss 16:33:53 maybe it's an ntnu problem? 16:34:20 that's the thing i've never managed to find out conclusively :( 16:34:53 oerjan: well it would not be the most difficult of hypotheses to test... 16:34:59 but _before_ i changed the router, the old one used to have more severe disconnections 16:35:18 (it reset completely, while now i can reconnect as soon as i see i've disconnected) 16:36:13 elliott: sure, i just have no idea how. usually these disconnections are out of blue, although clearly connected to some kind of general traffic jam level 16:36:21 oerjan: use an alternate IRC client for a day 16:36:22 * oerjan not good with computers 16:36:24 if it disconnects, it's not nvg 16:36:30 you don't even have to use it as your prime one 16:36:33 just keep it open in a tab in the background 16:36:41 webchat.freenode.net say 16:36:44 elliott: oh, i tried that. the web one. then one day it disconnected. 16:36:58 well i meant, don't even use it 16:37:07 just see whether it disconnects with the same frequency as nvg 16:37:17 oh hm maybe 16:38:17 i discovered there's one annoying thing with using the webchat ... IE won't release its memory properly until _all_ its windows are closed. 16:38:42 fair enough. i mean, you could just download xchat and minimise it to the tray 16:38:51 even telnet would work if not for PINGs :P 16:39:59 i tried lowering putty's keepalive frequency to 30 s. i had this feeling it helped, but a few days ago it started again. 16:40:15 methinks snake oil 16:40:27 part of the problem is that the problem happens in bursts, with weeks between. 16:41:06 have you tried contacting NVG or your ISP? :P 16:41:06 elliott: well the thing is that i can reconnect immediately, which means that if it's a timeout it must be just barely hit, no? 16:41:30 oerjan: sure. you are not timing out from the irc perspective though 16:41:36 in fact it often affects only one of the windows when i have two open 16:41:47 oerjan: a workaround would be to run irssi in screen. 16:41:54 then you can reconnect without missing messages. 16:41:59 and it won't show on IRC 16:42:02 elliott: almost as annoying, really. 16:42:31 well, have you noticed any networking problems other than nvg? 16:42:43 i could give you an ssh account on solidity to keep open to see if _it_ disconnects too 16:43:07 no, that's the thing, other than webchat sometimes disconnecting 16:44:27 oh and that mysterious thing, hm 16:44:39 i discovered there's one annoying thing with using the webchat ... IE won't release its memory properly until _all_ its windows are closed. <-- why are you using IE though? 16:44:39 -!- oerjan has quit (Quit: Lost terminal). 16:44:49 heh 16:45:37 Vorpal: you just bought yourself one free kick 16:45:40 or at least a swat. 16:45:46 elliott, hm? 16:45:50 I'm just curious 16:46:02 :p 16:46:48 as you can see I didn't criticise it. After all I had to use IE at times (on computers where nothing else was available and installing custom programs wasn't allowed) 16:47:05 or to download a better browser 16:47:54 -!- oerjan has joined. 16:47:58 oerjan has used IE for years, i'm sure you must have noticed before 16:48:14 hm possibly, if so I forgot that though 16:50:00 well i guess we'll find out now 16:50:33 unless the problem decides to disappear entirely from the nvg window as well 16:52:52 oh, one annoying thing about the webchat window is that it gives no indication of when it _has_ disconnected, until i try typing something 16:54:37 oerjan: it should do in the server tab? 16:54:40 as dark red 16:55:29 you mean the tab title will become dark red? 16:55:38 i certainly don't recall that. 16:56:36 well i thought so. but ok 16:57:47 maybe it happens if i'm kicked out, but my browser first has to notice anything has happened... 16:58:51 i have a disturbing hunch that _if_ the disconnects are related to what my housemates are doing on their computers - they just stopped watching a program 17:00:53 i keep forgetting oerjan lives with people 17:01:06 also, that sentence doesn't parse 17:01:20 -!- hagb4rd has quit (Quit: hagb4rd). 17:01:54 oerjan, watching a program on web tv or what? 17:02:23 Vorpal: whatever. he just confirmed they'd been doing that via the net, anyway. 17:02:43 right 17:09:36 -!- oerjan_ has joined. 17:11:25 oerjan_: no luck? 17:11:42 no. or too much, depending :P 17:12:21 oerjan_: you should contact your ISP, then. 17:13:57 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 17:14:20 or get someone without a caps lock and A key to do it for you. 17:15:37 there should be a way to ask a tcp connection to be just a bit more resilient against disconnections :( 17:16:07 I expect TCP/IP are working just fine. what is broken is either your router or one of your ISP's routers 17:16:16 well i guess there might be a bug somewhere that means the connection really _is_ permanently lost 17:16:18 if they are not doing TCP/IP correctly or have severe connection defects... 17:16:35 *is working 17:17:19 the router is, of course, new, and the previous router was far worse. 17:18:24 I would yell at the ISP and, failing that, switch. 17:19:00 my landlady, who would think TCP is a washing machine brand, is the contracter. 17:19:20 I expect TCP/IP are working just fine. what is broken is either your router or one of your ISP's routers <-- might be worth capturing data with wireshark and look for any ICMP packets (such as destination unreachable and so forth) 17:20:20 oerjan_: oh you cannot choose? 17:20:23 ok, then i would move ;) 17:20:41 Vorpal: i assign you to teach oerjan_ how to do that. 17:21:12 oh crap 17:21:17 just read the manual 17:21:25 also I have no clue how to do that under windows 17:21:30 Vorpal: don't worry, i won't force you to 17:22:07 does wireshark even work under windows? 17:22:17 CLEARLY NOT 17:22:45 well, there is a windows installer download, no idea if the actual capturing part works under windows, or if it is just the analysis part 17:22:49 anyway, bbl food 17:22:58 Vorpal: linux works under windows, so why wouldn't wireshark 17:23:34 oerjan_: are you *still* logreading :D 17:32:33 hm 17:32:56 olsner, might be tricky to capture in promisc mode under windows for all I know 17:33:31 -!- ais523 has joined. 17:33:54 back 17:34:05 although yes i'm still logreading 17:34:08 also, -> 17:34:09 hi elliott 17:34:31 hi ais523 17:34:35 are you busy? 17:34:58 hi, and currently catching up stuff that happened while I was offline, do you consider that busy? 17:35:13 well, I have things to say relevant to a portion of that 17:35:20 so, not sure 17:35:54 -!- zzo38 has joined. 17:54:03 oerjan: congrats on your invention by elliott's def <-- thank you. 17:59:52 Hello! 18:00:21 -!- MoALTz__ has joined. 18:02:16 Blerg 18:02:21 Too much chilli :/ 18:02:42 -!- Taneb has quit (Read error: Connection reset by peer). 18:03:13 -!- MoALTz_ has quit (Ping timeout: 252 seconds). 18:05:34 -!- Taneb has joined. 18:05:57 I'll try again 18:05:59 Hello! 18:06:10 Blerg 18:06:12 Too much chilli 18:06:15 :/ 18:08:15 :( 18:09:33 hi elliott 18:09:38 where elliott = monqy 18:09:59 elliott: Now that you're famous, are you going to leave this channel for greener pastures? 18:10:06 > let 1 + 1 = 3 in 1 + 1 18:10:07 3 18:10:08 (elliott's famous?) 18:10:18 ^ (the Haskell equivalent of "where elliott = monqy") 18:10:27 > 1 + 1 where 1 + 1 = 3 18:10:28 : parse error on input `where' 18:10:37 Aww 18:10:45 ais523: "where elliott = monqy" is valid Haskell 18:10:49 foo = elliott where elliott = monqy 18:11:21 hi foo 18:11:24 ah, aha 18:11:30 > 1 + 1 where 1 + 1 = 3 18:11:31 : parse error on input `where' 18:11:42 elliott: doesn't seem to pattern-match, though 18:11:53 no 18:11:56 you just used it in the wrong context 18:11:58 that's an expression 18:11:58 ais523: "where" isn't an expression -- it's associated with bindings. 18:12:03 You need "x = y where ... 18:12:04 " 18:12:23 ah, OK 18:12:24 > 1 + elliott where hi elliott 18:12:25 : parse error on input `where' 18:12:33 :-( 18:12:50 let elliott = monqy where monqy = 4 in elliott 18:12:58 > let elliott = monqy where monqy = 4 in elliott 18:12:58 4 18:12:59 like that? 18:13:01 yes 18:13:42 yes 18:13:58 > let nobody = "nobody"; monqy = nobody; somebody = elliott where elliott = monqy in somebody 18:13:59 "nobody" 18:14:36 -!- zzo38 has left ("Not yet"). 18:15:00 > nobody move where nobody = monqy 18:15:00 : parse error on input `where' 18:15:03 not yet 18:15:15 Not yet? 18:15:57 * zzo38 (~zzo38@24.207.49.17) has left #esoteric ("Not yet") 18:16:06 Ah. 18:16:38 -!- pandu has joined. 18:16:49 fix hi = let monqy = hi monqy in monqy 18:17:06 > fix hi 18:17:08 hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi ... 18:17:09 `welcome pandu 18:17:14 pandu: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 18:17:44 pandu = monqy? 18:18:15 nop 18:18:23 `welcome @echo 18:18:26 ​@echo: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 18:18:28 I'm just looking for some cool channels 18:18:38 #esoteric is the coolest channel 18:18:43 haha 18:18:52 I've toyed with BF before 18:19:03 but not too much else 18:19:07 its fun reading about these 18:19:13 pandu: Have you considered making A BF DERIVATIVE? 18:19:16 It's fun! 18:19:32 It makes a ghost of a vacuum cleaner appear before you 18:19:43 All you do is substitute "hi" for "<" and "monqy" for ">" and so on, and you've invented YOUR VERY OWN PROGRAMMING LANGUAGE! 18:19:50 I've added some language extensions to mine 18:19:56 yes it is fun! 18:20:01 BF+call/cc 18:20:08 what's call/cc? 18:20:18 It's from Lisp 18:20:18 > fix hi 18:20:20 hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi (hi ... 18:20:27 Taneb: Only sort of. :-( 18:20:47 It's sort of from Lisp 18:20:56 so what is it? 18:20:58 It's also in the developement version of BYOB (Snap) 18:21:10 pandu: call-with-current-continuation 18:21:11 Which I'm likely the only one to have heard of it in here 18:21:14 @google what is call/cc 18:21:15 http://en.wikipedia.org/wiki/Call-with-current-continuation 18:21:15 Title: Call-with-current-continuation - Wikipedia, the free encyclopedia 18:22:02 `welcome lambdabot @echo 18:22:05 lambdabot: @echo: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page 18:22:05 hah 18:22:06 echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "HackEgo!codu@codu.org", msgCommand = "PRIVMSG", msgParams = ["#esoteric",":lambdabot: @echo: Welcome to the 18:22:06 international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page"]} rest:"Welcome to the international hub for 18:22:06 esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page" 18:22:16 sheesh 18:22:33 lively in here today 18:23:19 lol 18:23:43 pandu, try creating a language that's as different to brainfuck as you can make it! 18:23:55 @echo @echo 18:23:55 echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "shachaf!~shachaf@li227-219.members.linode.com", msgCommand = "PRIVMSG", msgParams = ["#esoteric",":@echo @echo"]} 18:23:55 rest:"@echo" 18:24:07 THAT's RIGHT, elliott 18:24:09 I really like minimal languages 18:24:17 iota 18:24:24 pandu: Look at our featured language, then. :p 18:24:27 (On http://esolangs.org/wiki/Main_Page.) 18:24:27 yea 18:24:28 // 18:24:30 looking at it right now 18:24:34 /// 18:26:57 WORLD CELEBRITY oerjan_ is available to answer all questions /// :p 18:27:47 I knew I saw something like your name on a van, elliott 18:27:53 http://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCgQFjAA&url=http%3A%2F%2Fwww.icountydurham.co.uk%2Fprofile%2F272906%2FConsett%2FElliot-Hird-and-Partners%2F&ei=DIeAT_j8IeWm0AWBhqXACA&usg=AFQjCNH00jAyLRzeW8upHv13Smbfn0meiw&sig2=USDEHmiPcnGV7qjuQh9mIg 18:28:26 Argh I keep seeing conflicting information about whether Tylenol is safe on an empty stomach 18:28:35 * oerjan_ swats elliott -----### 18:28:39 Although I'm fairly certain it's safer than other painkillers in that situation 18:28:51 oerjan_: Swat me! 18:28:59 Sgeo: No. You will die. Permanently. 18:29:01 * oerjan_ swats shachaf -----### 18:29:06 Taneb: MY SECRET IEDNTITY 18:29:18 elliott, hmm, is there a way to die temporarily? 18:29:23 oerjan_: Kick me! 18:29:27 From this channel. 18:30:08 Sgeo: That's taking Tylenol in any other circumstance. 18:30:13 * oerjan_ investigates the channel walls carefully 18:31:02 what's the main active ingredient in tylenol? 18:31:10 death 18:31:16 it doesn't exist under that name in the UK, although I'm reasonably sure it's something I've heard of 18:31:20 it's paracetamol 18:31:22 under a different name 18:31:24 ah, OK 18:31:36 I have SO MUCH paracetamol 18:31:39 see, what it does is, kills all the pain molecules 18:31:39 It's not even funny 18:31:41 but then _you_ die too 18:31:48 as far as I know, paracetamol is safe unless you overdose, in which case it's pretty lethal 18:31:55 usually the last burst of pain is enough to revive you 18:32:12 but without food on your stomach, there's nothing for the pain to eat to charge up that last blast. 18:32:19 trust me, i'm a scientist 18:32:21 ais523 is UKian? 18:32:27 :-( 18:32:32 shachaf: how did you not figure that out yet? 18:32:35 there's quite a lot of evidence 18:32:38 Although at least some websites of perhaps less than good repute suggest that liver function may be impaired by not eating properly 18:32:38 ais523 is a Birminghamian, iirc 18:32:42 yes 18:32:47 ais523: Like what? 18:32:48 ais523 is a Birminghidgeaux. 18:32:53 I think the actual word is Brummy 18:32:57 I don't know the correct name, so Birminghidgeaux it is. 18:32:59 but I don't really use it much 18:33:01 So, how many people are there in a place which is named .*ham ? 18:33:08 Every place ends in ham. 18:33:08 burning ham 18:33:17 quite a lot, it's a pretty common town naming pattern in the UK 18:33:24 Taneb: somewhere between three people and everyone 18:33:27 -!- pandu has left ("LIST"). 18:33:37 Okay, if we narrow it down to people in this channel 18:33:45 `? hexham 18:33:48 Hexham is a European town. There are five people in Hexham, and at least two of them are in this channel. Ngevd runs the student board. 18:34:05 Ngevd runs the student board, and elliott is school? 18:34:10 I thought it was "there are two people in Hexham, and at least five of them are in this channel" 18:34:14 `? finland 18:34:17 Finland is a European country. There are two people in Finland, and at least five of them are in this channel. Corun drives the bus. 18:34:20 `? norway 18:34:23 Norway is the suburb capital of Sweden. It's where the Nobel Peace Prize is announced. 18:34:37 `? sweden 18:34:40 Sweden is the suburb capital of Norway. It's where all the Nobel prizes are announced, except the Math Prize. 18:34:53 `? america 18:34:56 america? ¯\(°_o)/¯ 18:35:06 TAKE THAT, AMERICA 18:35:06 `? shachaf 18:35:09 No output. 18:35:18 `? england 18:35:21 england? ¯\(°_o)/¯ 18:35:26 `learn shachaf mad 18:35:28 It's traditional. 18:35:29 I knew that. 18:35:34 elliott: :-( 18:35:41 `? monqy 18:35:43 elliott: oh, it was in the finland entry 18:35:44 `? elliott 18:35:44 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 18:35:47 elliott wrote this learn DB, and wrote or improved many of the other commands in this bot. He probably has done other things? 18:35:47 shachaf: don't worry, deleting it is also traditional 18:35:51 `? finland 18:35:52 `learn elliott mad 18:35:54 Finland is a European country. There are two people in Finland, and at least five of them are in this channel. Corun drives the bus. 18:35:55 `run echo 'hi monqy' >wisdom/monqy 18:35:58 No output. 18:36:06 `? monqy 18:36:07 I knew that. 18:36:09 hi monqy 18:36:10 `? ais523 18:36:12 `? europe 18:36:13 `learn elliott will block the next person to modify this entry. 18:36:16 ais523 is ais523. This topic may retroactively become more informative if or when Feather is invented. 18:36:18 wait, that mentions Feather, doesn't it? 18:36:18 I knew that. 18:36:21 yes, bah 18:36:26 `? feather 18:36:32 feather? ¯\(°_o)/¯ 18:36:33 europe? ¯\(°_o)/¯ 18:36:38 `? olsner 18:36:42 olsner? ¯\(°_o)/¯ 18:36:42 `learn ¯\(°_o)/¯ feather? 18:36:44 the shrug is retroactive 18:36:45 oh wait 18:36:46 ​/hackenv/bin/learn: 4: cannot create wisdom/¯\(°_o)/¯: Directory nonexistent \ I knew that. 18:36:48 that'll create the wrong entry 18:36:53 `run echo '¯\(°_o)/¯ feather?' >wisdom/feather 18:36:56 No output. 18:37:00 "Directory nonexistent \ I knew that." 18:37:02 :D 18:37:24 your error checking is fail 18:37:24 `learn Europe is the capital of Hexham. 18:37:27 I knew that. 18:37:43 HackEgo knew that 18:37:47 -!- asiekierka has joined. 18:38:49 `? asiekierka 18:38:52 asiekierka? ¯\(°_o)/¯ 18:39:07 Aww 18:40:10 `? feather 18:40:13 ​¯\(°_o)/¯ feather? 18:40:28 that's not the right format 18:40:34 or wait 18:40:42 the shrug is retroactive 18:41:21 `learn elliott threatens to block me all the time anyway. 18:41:24 I knew that. 18:43:13 oerjan_: did you finish logreading? :P 18:43:40 why, yes, now i'm on to the wikipedia frontpage 18:43:46 X-D 18:44:07 4 hours 26 minutes, goddammit 18:44:36 Taneb: make sure your first visit is appropriately Easter-related. 18:44:41 Taneb: http://en.wikipedia.org/wiki/Main_Page 18:44:48 how long does it take to read the entirety of wikipedia? 18:44:56 olsner: too long 18:44:58 olsner: all the time. 18:47:02 `run mkdir wisdom/¯\(°_o); learn ¯\(°_o)/¯ feather? 18:47:04 bash: -c: line 0: syntax error near unexpected token `)' \ bash: -c: line 0: `mkdir wisdom/¯\(°_o); learn ¯\(°_o)/¯ feather?' 18:47:33 oerjan_: you're probably missing quotes 18:48:23 hmph 18:48:38 `run mkdir 'wisdom/¯\(°_o)'; learn '¯\(°_o)/¯ feather?' 18:48:42 I knew that. 18:48:50 `? ¯\(°_o)/¯ 18:48:53 ​¯\(°_o)/¯ feather? 18:49:08 `run echo 'see ¯\(°_o)/¯' >wisdom/feather 18:49:11 No output. 18:49:22 On another note, why is the logo for the wiki what it is? 18:49:29 oh good grief 18:49:32 not that question again 18:49:38 * oerjan_ swats Taneb -----### 18:49:52 This isn't giving me an answer.... 18:50:01 It's just making me ashamed and in pain 18:50:47 `run echo "The wiki logo is three limes because graue found a picture of three limes and liked it." >wisdom/logo 18:50:49 No output. 18:50:57 `? monqy 18:51:00 hi monqy 18:51:03 yay 18:51:07 hi monqy 18:51:20 Well, now I know 18:52:14 -!- Deewiant has quit (Ping timeout: 252 seconds). 18:52:31 yes, you can always trust HackEgo's wisdom. 18:55:59 -!- Deewiant has joined. 18:57:48 @ping 18:57:48 pong 18:57:53 Okay, I live for now 19:00:02 Taneb hey 19:00:31 Hello 19:08:59 -!- derdon has quit (Remote host closed the connection). 19:20:42 -!- zzo38 has joined. 19:22:17 I think you can have a monad for a final object, and a comonad for an initial object, in any category. Do you know? (I do have an example in a category from a digraph, and in Haskell (although some people disagree in Haskell)) 19:23:22 On the subject of places that end in "ham", I'm going to be in Durham for a bit this summer 19:25:28 If you have a digraph with A->C and B->C then in its category you have C a final object; the endofunctor changes all objects to C, and all morphisms to the identity morphism on C; return is the single path from whatever to C and join is also the identity morphism on C 19:31:56 -!- calamari has joined. 19:47:58 -!- oerjan has quit (Quit: Reticulating splines). 19:48:18 -!- Case1 has joined. 19:53:20 Bye 19:53:21 -!- Taneb has quit (Quit: Goodbye). 19:55:45 ais523: shachaf: zzo38: Welcome to excellent explode terrain. Please begin services. 19:55:58 HLEP 19:56:21 Please begin services.Please begin services.Please begin services. 19:56:55 elliott: Please begin services. 19:57:17 What services do you mean? 19:57:40 Services of excellent explode terrain. Please begin services 19:57:52 Please began services. 19:58:03 please explode services excellently 19:58:14 services, begin explode please 19:58:26 No. You began 19:58:43 no, began is you 19:59:31 I'm began. 19:59:34 Stop. Stop to time. Hi 19:59:38 hello 19:59:42 Welcome. Please beginning services 19:59:51 Please realign calibration metre 19:59:56 Please stop death 19:59:58 Hi. Please beg 20:00:01 Pleased to be begin. 20:00:01 Hi 20:00:33 Welcome. Yes, Thank you. : ) My home does not eat. Yet, but I feel that in 20:00:38 Please begin services 20:00:59 My home doesn't eat either. Yet, anyway. 20:01:24 Please atheist management. 20:01:33 "Does not eat"? Don't you mean "does not compute"? 20:01:45 No . I 'm never mistake in saturday. Start computer on hello. 20:01:52 He began services 20:01:55 computing is not eating, therefore elliott's home computes 20:02:14 echo "Hello, World!" 20:02:26 Im frowning 20:02:50 Please analyse your welcoming message text text message text welcPlease insert floppy 441A. Please begin services 20:03:00 stand by for transmission 20:03:19 Hi 20:03:31 `? logo 20:03:33 The wiki logo is three limes because graue found a picture of three limes and liked it. 20:03:44 Trombone player executed 20:05:30 Please hurt everybodys feelings, Thanks 20:05:43 ouchouchouch 20:06:32 you all suck 20:06:40 oerjan_: you too 20:06:49 yay! 20:07:27 I agree. ouchouchouch. 20:07:50 Suck dirty vacuum cleaner 20:07:55 Trombone player replaced by accordion player 20:08:31 oerjan_: Then you will need a different music; if the music is meant for trombone then it won't be played as well on accordian 20:08:52 sorry, must play same music 20:09:24 _or_ polka. your call. 20:11:43 polka is same music 20:13:00 joik is sami music 20:14:25 welcome to homeliness 20:14:43 is this homely? 20:14:52 no its always 20:20:25 -!- monqy has joined. 20:21:58 hi monqy 20:22:05 hi 20:22:08 -!- yorick has quit (Read error: Connection reset by peer). 20:25:25 -!- yorick has joined. 20:27:44 -!- asiekierka has left ("Wychodzi"). 20:33:19 Facebook can be bizarre at times. 20:37:19 OTHER than the fact that the concept defies physics, why do WiiMotes not have velocitometers :( 20:37:36 It is impossible to measure velociraptors. 20:38:05 surely a velocitometer is possible for standard use, due to them being surrounded by air not vacuum? 20:38:14 RocketJSquirrel: Have you seen some HASKELL i HELPED WRITETODAY? 20:38:20 Had to lowercase bits in the middle to get the emphasis right. 20:38:36 Facebook's relationship stuff is very asymmetrical :( 20:38:40 BEHOLD MORTALS https://raw.github.com/ehird/reflection/master/fast/Data/Reflection.hs Wait did I point monqy to that yet. 20:38:42 monqy: BEHOLD MORTAL 20:38:53 you [pinted me to that laslt night 20:38:58 -!- Case2 has joined. 20:39:13 Is monqy drunk or just being devoured by the typo monster? 20:39:27 monqy is drunk 20:39:33 he's drunk on typo monster blood 20:39:35 monqy: are you sure it was the same one 20:39:38 the pointer one is old hat 20:39:41 this is the New Deal 20:39:50 :o 20:39:58 it's like six lines 20:40:09 hmm, this can't be right, can it? reflect :: proxy s -> a 20:40:19 -!- Case1 has quit (Ping timeout: 264 seconds). 20:40:21 olsner: yes, it can 20:40:28 olsner: it accepts proxy s for any proxy and returns an a 20:40:34 obviously, it can't actually look at the value it gets, due to parametricity 20:40:41 it's just to make the types work out -- so that "s" is referenced there 20:40:46 usually, you will use it with proxy = Proxy 20:40:47 oh, proxy is a type variable? 20:40:50 yeah 20:40:51 where Proxy is data Proxy t = Proxy 20:40:57 obviously! 20:41:01 but it's sometimes convenient to use it for proxys that aren't Proxy without translating them 20:41:03 thus the polymorphism 20:41:25 reify gives you a Proxy, not a proxy, though; it's all very well accepting any value, but producing an any-value is significantly harder :) 20:41:54 just unsafeCoerce from Proxy :) 20:42:18 olsner: hey, this safe is externally pure! 20:42:20 erm 20:42:21 this interface 20:42:24 but this safe too 20:42:41 this stuff is actually useful, believe it or not 20:43:01 https://raw.github.com/ehird/reflection/master/examples/Monoid.hs here's an example of what you can do with it: an instance whose behaviour is determined at runtime 20:43:37 http://hpaste.org/66565 -- basic modular arithmetic implementation where the modulus is encoded in the type (preventing mixing of values from different "modular contexts") and determined at runtime, but you don't have to pass it around everywhere and can use numeric literals 20:43:51 (it's a very streamlined implementation of http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf) 20:45:18 I don't quite understand any of that 20:45:38 maybe the old implementation will enlighten you https://raw.github.com/ehird/reflection/master/slow/Data/Reflection.hs :p 20:45:56 hmm, a function like withMonoid is pretty neat, so I'll have to take the "any" back ... let's say "most" instead 20:46:34 the paper does a good job of explaining it, you just have to remember that their whole hierarchy of successively more powerful reifiers is all flattened with this, we just have one thing that reifies anything, fast 20:47:41 olsner: this is also neat, but more evil https://raw.github.com/ehird/reflection/master/examples/Constraints.hs 20:47:47 -!- pikhq_ has joined. 20:47:51 (will make no sense if you don't grok the new ConstraintKinds stuff) 20:47:55 I didn't write those examples btw, edwardk did 20:48:26 (he also wrote that final stripped down implementation there, my original hack was a few lines longer) 20:48:43 like the monoid example but for any type class automagically? 20:49:10 no, still needs manual work, cf. the Eq stuff at the bottom 20:49:16 the evil here is that it eliminates the "M" lifting step 20:49:24 by coercing the instance into one for the target type itself 20:49:31 obviously this goes haywire if you already have an instance for the same class/type 20:49:35 but if you don't then it's neat :p 20:51:38 -!- pikhq has quit (Ping timeout: 240 seconds). 20:51:59 olsner: anyway, what the http://hpaste.org/66565 thing means is that you can say (2+2) `modulo` 3 and it does what you expect, except that it's not just mod, it evaluates the LHS as a fully modular arithmetic type 20:52:02 i.e. modding at each operation 20:56:40 elliott: hm modulusProxy in that could be just id >:) 20:57:28 oerjan_: oh, indeed 20:57:39 oerjan_: that's one of the examples of why it's convenient but i forgot to use it heh 21:06:45 oerjan_: god nictihget 21:07:02 elliott: god nictihget 21:07:10 sweat drams 21:07:17 i have so many sweat drams 21:07:22 -!- elliott has quit (Quit: Leaving). 21:11:16 That data Proxy t = Proxy; is also what I have recently called Finalize, as in the Finalize monad for any category having a final object 21:21:44 I don't really like the way your dynamically constructed monoid and stuff is implemented; but there probably is no better way in Haskell. 21:25:18 I would do like this (which doesn't work in Haskell): data DynMonoid (x :: *) (mempty :: {x}) (mappend :: {x -> x -> x}) = DynMonoid x; 21:25:24 -!- Phantom_Hoover has joined. 21:26:16 zzo38: the whole reflection package exists to get around the lack of dynamic instances in haskell 21:27:13 even in the original inspiring paper, oleg etc. suggested building a better method into the language 21:27:25 oerjan_: I know that; but still its implementation is not so good in my opinion. It is why I wanted to invent the new programming language instead, with new things differences, let's make up the working group to argue about it too. 21:28:00 Using the declaration I gave, then you will have a type (DynMonoid Int {0} {(+)}) 21:30:03 The kind of DynMonoid then becomes (*(x) -> {x} -> {x -> x -> x} -> *) possibly the syntax for (*(x)) could be changed if you don't like that syntax, though. 21:30:35 ais523: is there some way in mediawiki to insert a pre block "detented" into a nested bulleted list without otherwise interrupting the list nesting? some of the parts of [[List of ideas]] look rather ugly... 21:31:04 oerjan_: yes, write the bulleted list using HTML syntax rather than MediaWiki syntax 21:31:19 alternatively, there used to be some crazy trick using unbalanced tags, not sure if it still works 21:35:53 * oerjan_ thinks he is in over his head on that 21:37:58 -!- MoALTz_ has joined. 21:41:25 -!- MoALTz__ has quit (Ping timeout: 265 seconds). 21:44:05 I have ((Node -> Node) -> PageObjects) and (Node -> m Node) I try to make (m ((Node -> Node) -> PageObjects)) but it seem is not possible? Is it? Is there alternatives ways to make something like that? 21:46:42 zzo38: um, isn't just applying return to the first one? 21:46:57 *that just 21:47:37 http://www.youtube.com/watch?v=j7XR9yH2ETk 21:47:43 Let's try 21:47:57 Yes it seems so 21:47:59 (NSFW) 21:48:39 -!- MoALTz__ has joined. 21:49:38 -!- MoALTz_ has quit (Ping timeout: 265 seconds). 21:50:41 Sgeo: makes me think of that law about parodies 21:51:14 -!- pikhq has joined. 21:51:49 -!- pikhq_ has quit (Ping timeout: 276 seconds). 21:55:54 It doesn't seems to work 21:57:04 oerjan_: That doesn't work, sorry 21:57:30 you need to change ((Node -> Node) -> PageObjects) to ((Node -> m Node) -> m PageObjects) or something 21:59:08 olsner: But then I need (m ((Node -> Node) -> PageObjects)) from that. The other alternative would be to change the datatypes to something else 22:00:51 I suspect that's not what you want :) 22:03:16 Then what? 22:03:52 I do not even know any other datatypes that would work here, though. 22:04:12 I don't really know enough to say... but I'll assume the reason you have a (Node -> m Node) instead of (Node -> Node) is that your node-frobler has some side effects? 22:05:13 then the pageobjectifier needs to thread those effects through in the same monad, or it can't get at the returned Nodes 22:05:20 `echo "XY problem is probably not what you are really after. Try asking about your real underlying problem instead." > 'wisdom/xy problem' 22:05:23 ​"XY problem is probably not what you are really after. Try asking about your real underlying problem instead." > 'wisdom/xy problem' 22:05:30 oops 22:05:33 `run echo "XY problem is probably not what you are really after. Try asking about your real underlying problem instead." > 'wisdom/xy problem' 22:05:36 No output. 22:05:40 olsner: Well, it can; usually Writer but other things can be too 22:05:45 `? XY problem 22:05:45 oerjan_: pff, this is the channel where we go ahead and solve the wrong problem because we can 22:05:47 XY problem is probably not what you are really after. Try asking about your real underlying problem instead. 22:06:18 actually, solving the right problem is probably more boring and therefore something to avoid 22:06:24 olsner: Yes this is the channel that even that is possible....... 22:06:46 But I do think I have another idea now. 22:08:55 What is the module for binary trees? 22:09:51 Data.Tree can do arbitrary arity trees... 22:13:08 Free ((->) Bool) (where Free means a free monad from an endofunctor) works but maybe there is something better 22:15:28 (The rose trees in Data.Tree are like Cofree []) 22:18:12 Another question: Do you know if mathematicians call my Initialize and Finalize endofunctors by different names? 22:21:08 (By Finalize I mean the endofunctor (on any category having a final object) that maps all objects to the final object and all morphisms to the identity morphism of the final object, and a monad where return is the only morphism from any object to the final object, and join is also the identity morphism of the final object.) 22:21:19 (Initialize is then the dual to Finalize.) 22:23:43 -!- MoALTz has joined. 22:23:54 -!- MoALTz__ has quit (Ping timeout: 245 seconds). 22:25:38 -!- MoALTz_ has joined. 22:28:52 -!- MoALTz has quit (Ping timeout: 276 seconds). 22:37:33 -!- Tiktalik has quit (Quit: ZNC - http://znc.in). 22:42:23 -!- tikfreenode has joined. 22:44:31 -!- calamari has left ("Leaving"). 22:54:03 registration for cs373 spring edition is open 22:55:19 -!- Frooxius has joined. 23:00:45 -!- NihilistDandy has joined. 23:06:27 -!- NihilistDandy has quit. 23:06:42 "And yes, I've used XSLT 2.0 extensively. It's "more functional" in much the same way that waterboarding is more pleasant than an iron maiden." 23:14:43 -!- MoALTz_ has quit (Quit: Leaving). 23:21:14 -!- sebbu has quit (Ping timeout: 246 seconds). 23:31:53 -!- sebbu has joined. 23:31:54 -!- sebbu has quit (Changing host). 23:31:54 -!- sebbu has joined. 23:32:00 -!- oerjan_ has quit (Quit: Lost terminal). 23:32:41 -!- Patashu has joined. 23:34:28 -!- Vorpal has quit (Read error: Operation timed out). 23:37:26 -!- ais523 has quit (Remote host closed the connection). 23:52:32 What I am doing is trying to make data DrawingNode = DrawingNode PageObjects Dimen Dimen Dimen that can contain other nodes which are also drawn on the page, and that can be affected and accessed by traverseBox 23:54:56 class Typeable x => NodeClass x where { ... traverseBox :: (Applicative f, Monad f) => (Node -> f Node) -> x -> f Node; ... }; ... data Node where { Node :: forall x. NodeClass x => x -> Node; } deriving Typeable; 23:56:01 I think I have idea 23:59:25 I changed it to data DrawingNode = DrawingNode [Node] ([Node] -> PageObjects) Dimen Dimen Dimen 23:59:31 Hopefully this way it work