< 1314921892 594716 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Quit: Computer has gone to sleep. < 1314922231 333301 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Grrrr wget < 1314922238 897902 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION wants wget to ignore robots.txt >.> < 1314922280 226049 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you wicked spammer < 1314922306 160857 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :wget has a lot of options look to see if it has the one you want < 1314922332 496451 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION found something online about it < 1314922341 120372 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I don't see this version of wget's --wait thingy < 1314922765 247851 :kmc!~keegan@c-98-216-51-47.hsd1.ma.comcast.net PRIVMSG #esoteric :patch wget problem solved < 1314922794 362181 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :There is no problem < 1314922804 271006 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I think --wait just wasn't listed in --help, or I didn't see it < 1314922831 55031 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :And there is an option to disable checking robots.txt < 1314922914 938509 :mauke!~mauke@p3m/member/mauke PRIVMSG #esoteric :-e robots=off < 1314923020 927904 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Yes < 1314923034 249086 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION is using it to great effect >.> < 1314923189 923546 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Is there an option to change the name of the file to check (other than robots.txt), or to change which entry it searches for in robots.txt? < 1314923219 534478 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1314923362 786561 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I'm not sure what the use of that would be < 1314923379 289738 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Or, um, the first option anyway < 1314923419 172455 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :It's pretty much a standard, if not an official one. About as useless to make an option to change as making a browser that sends RETRIEVE/SEND instead of GET/POST < 1314923476 945513 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :more of that mustafar/dwarf fortress discussion http://www.irregularwebcomic.net/draakslair/viewtopic.php?t=6110 < 1314923609 744643 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au JOIN :#esoteric < 1314931150 674313 :myndzi\!myndzi@c-67-168-184-168.hsd1.wa.comcast.net QUIT :Ping timeout: 240 seconds < 1314932702 929865 :nys!~russia@blk-215-85-41.eastlink.ca QUIT :Quit: f00f < 1314933058 902881 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hello friends. < 1314933097 161804 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I looked in the haskell-src-exts files. The ParseSyntax.hs file (as well as many of the other files) do something, stuff added needs to be added in multiple places manually. For example, PExp needs to also define ann, amap, fmap, etc. But most of that is just the same way. It might seem (to me, at least) a better way using TH-splices generating more-declarations. < 1314933197 797281 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I don't know what it seems to you. < 1314934490 399047 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :The code accumulation in Strathclyde Haskell Enhancement is a very crude idea with code accumulation feature, but it seems insufficient tome (it is also designed for layout mode). That one does not do ordering, removal of duplicates, cooperating with Template Haskell, and a bunch of other stuff. < 1314934540 812203 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :anyone familiar with xpath? < 1314934553 974386 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm wondering if the | can be used to search for elements by multiple criteria < 1314934589 520146 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake QUIT :Quit: Reconnecting < 1314934606 821540 :CakeProphet!~adam@h42.33.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1314934607 150881 :CakeProphet!~adam@h42.33.18.98.dynamic.ip.windstream.net QUIT :Changing host < 1314934607 151140 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1314934680 745448 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric : //a[@class=...|@href=...|@name=...|@id=...] < 1314934786 394937 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Why doesn't "hint" have a function for loading a module from a string instead of from a file? < 1314934866 316842 :MDude!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net NICK :MSleep < 1314934885 697005 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zzo38: because it is really crappy. < 1314934908 426807 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for my IRC bot I worked around this by just writing the string to file and adding the module bits. < 1314934908 773346 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Then how to do it better? < 1314934915 107135 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :mueval has that capability but mueval is also bad. < 1314934962 996346 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :And you must also send expressions to be evaluated as strings, there is no command to interpret a Q Exp instead? < 1314934981 35858 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What program has that one? < 1314935017 884592 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Which are better programs? < 1314935265 272115 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I have no idea. < 1314935272 103155 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :lambdabots code is not bad. < 1314935273 262156 :augur!~augur@129.2.129.32 QUIT :Remote host closed the connection < 1314937086 366904 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What kind of data can be compressed well with run length encoding multiple times? What kind of data should you run length encode and then use Huffman coding on the result? < 1314937151 915373 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au QUIT :Ping timeout: 258 seconds < 1314937910 613335 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :multiple time run length encoding sounds unlikely to improve things < 1314937963 648245 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that's essentially look-and-say transformation, which quickly starts growing exponentially < 1314938015 126876 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Yes I know that is what it is. Doing it a lot will likely grow large. < 1314938060 675476 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :But maybe some data works better doing RLE twice instead of once, or something like that. Maybe you want to combine multiple units into one unit or split units in some cases. < 1314938240 951379 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well in order for the second step to give any further compression, you'd want to collect character c in blocks of length c < 1314938322 543383 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or for the first block in a series, perhaps of length equal to the previous character < 1314938322 920452 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Yes, it is true; but, what if it is variant RLE where the character is implied? For example, you always alternate black and white so you do not need to indicate that < 1314938354 934481 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ah yes. but then the second step would be of a different kind. < 1314938369 366691 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Yes it would be different kind < 1314938393 578438 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :since the RLE coding itself does not preserve that property < 1314938443 719092 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but yes, if you had frequently blocks of black and white that had the same length, then that would work < 1314938536 603054 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Maybe you have "001001001001001001001001" and you should do the encoding to (2,1) and 8(2,1) if such patterns are common in whatever data you are dealing with. < 1314938560 453678 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION is the best programmer in the world. < 1314938562 928623 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I know all of the codes. < 1314938578 78068 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm < 1314938589 495322 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :CakeProphet: Are you sure? I think nobody knows *all* of the codes < 1314938608 338722 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh he does. he just cannot remember which is which. < 1314938609 852166 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :And even if you did I am unsure if that would make you the best programmer in the world < 1314938615 733147 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :famous babel library problem. < 1314938657 511634 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: yes I often get minute details of different languages confused. < 1314938677 801435 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for example: I have accidentaly wrote "using Control.Monad" in Haskell. < 1314938685 805521 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :after some C# programming. < 1314938793 805427 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and after some intense Perl scripting, I find myself wanting to type $ in front of everything. < 1314938827 358954 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for example: in Python I will accidentally type $ instead of % in a string when sprintf'ing it. (sprintf'ing something sounds pretty dirty) < 1314938861 235615 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> sin $2 < 1314938862 284243 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 0.9092974268256817 < 1314938870 493279 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :heh. < 1314938873 312641 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I have Sokoban encoding, that is first RLE of wall/nonwall alternating, next RLE of target/nontarget skipping all walls, next is a more complicated encoding for the crates. (Characters are implied) Some numbers occur much more often than others, usually low numbers occur more than high numbers. < 1314938894 935182 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: I will now code Haskell in that style from now on. < 1314938903 191194 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: O KAY < 1314938921 618270 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I composed a Huffman tree by hand but I made a mistake. < 1314938924 638282 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> let x = 2 in sin $x < 1314938925 604904 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 0.9092974268256817 < 1314938937 954965 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :bashkell < 1314938953 604183 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :CakeProphet: Template Haskell it would do different $ immediately followed by words < 1314938968 942334 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Can you make polyglot program now? < 1314938979 319739 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not with that "feature" no < 1314938992 363912 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :polyglots are essentially done by taking advantage of strings and comments. < 1314938998 792278 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Perl is particularly well-suited for this. < 1314939012 656301 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you can include Perl in almost any polyglot with ease. < 1314939018 241922 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's a little awkward since you cannot do $x = 2 in haskell < 1314939019 203827 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Or, make a Haskell program that does different things, all valid, but still somewhat useful, depending on which language extensions are enabled. < 1314939056 180178 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: right and you can't do let or in in Perl unless you define subroutines with some kind of hacked meaning. < 1314939099 783379 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zzo38: most common extensions wouldn't do that since they usually inroduce some kind of construct or syntax that didn't exist before. overloaded strings could be used for that purpose though. < 1314939123 327668 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: heh the extensions which add keywords or syntax, perhaps < 1314939159 904563 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :rec and ? perhaps < 1314939194 932775 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let f ?x = 2 in f ?3 < 1314939196 62928 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : : Parse error in pattern < 1314939197 521387 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :the easiest way to polyglot Haskell is to use literate Haskell. < 1314939198 514051 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let f ?x = 2 in f ? 3 < 1314939199 568281 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : : Parse error in pattern < 1314939220 192175 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zzo38: also I am slightly drunk so, no, probably can't write a polyglot right now. < 1314939222 536156 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au JOIN :#esoteric < 1314939223 606971 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: i meant for zzo38's distinguishing by haskell extension idea < 1314939236 790298 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: right < 1314939247 701827 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :You can define # as an operator and then do stuff with the magic hash mode and CPP stuff, and it does differently when these are enabled or disabled. < 1314939253 581646 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not sure how ? could be used though < 1314939261 350686 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: ah right < 1314939263 380931 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :doesn't it require an explicit type signature or...? < 1314939275 153043 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no < 1314939280 252916 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let ?x = 2 in ?x < 1314939281 176240 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 2 < 1314939282 568368 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah okay < 1314939313 490565 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what DOES require an explicit type signature other than record fields? < 1314939326 629374 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but it's not quite clear how to get something which parses both with ? as operator and as implicit parameter prefix < 1314939329 383983 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :type defintions, and the like < 1314939345 459275 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Do classes require an explicit type signature? < 1314939347 313653 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: polymorphic recursion < 1314939359 637189 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :higher rank types < 1314939369 118412 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION has really figured out higher rank types yet. < 1314939374 531101 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: not to _use_ them in functions, no < 1314939382 522519 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :basically it means there is a forall in the type, right? < 1314939391 503518 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :very basically... < 1314939394 321792 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :in the type, and not at the front < 1314939395 484227 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What I meant is, in definition of classes < 1314939399 345848 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: right < 1314939415 873248 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: for the methods, yes < 1314939419 789727 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: so for example, a type with an embedded existential is a rank-2 type, yes? < 1314939451 778453 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but class A a is legal by itself i think, a class with no methods < 1314939470 655355 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah, that's interesting. Basically a set of types. < 1314939502 578716 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: i think they are different extensions but you can sometimes convert between using existentials and using higher rank < 1314939534 381594 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes they're different extensions but they both permit the forall syntax. < 1314939550 520485 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :in different places yes < 1314939596 609140 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :basically the syntax for existential types are based on the fact that its _constructors_ has a higher rank type < 1314939611 805513 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :er, or at least polymorphic < 1314939629 845686 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I actually understand how the Perl community has taken influence from Haskell. I believe I've heard people (not on this channel) that it's strange. < 1314939638 470413 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :data SomeShow = forall a. Show a => SomeShow a < 1314939642 486637 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :+mention < 1314939661 914130 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :then SomeShow :: forall a. Show a => SomeShow < 1314939664 897897 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: ah, okay. < 1314939692 699473 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so does RankNTypes permit existentials? < 1314939693 154394 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :er < 1314939700 668146 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*then SomeShow :: forall a. Show a => a -> SomeShow < 1314939730 999728 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i don't _think_ there's any automatic implication anyway, look it up in the user guide :P < 1314939736 855932 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*any way < 1314939752 203799 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*either way < 1314939765 125396 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also how do language extensions work with importing? < 1314939784 680066 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :modules can ignore the language extensions that other modules use. They do not need to explicitly support them, right? < 1314939818 415927 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i don't think they need to. it might depend on what is imported. < 1314939833 794469 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right if the API requires a syntax extension to be used properl < 1314939841 520382 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :y. like fclabels uses TH. < 1314939905 691745 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :of course, if a dependency uses a language extension then the compiler must support that language extension as well. < 1314940359 310474 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com QUIT :Remote host closed the connection < 1314940454 706889 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :01:14 < bob2> oh wait, takewhile < 1314940454 920854 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :01:14 < bob2> I finally understand what it is for < 1314940457 10465 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :#python < 1314940514 810799 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :apropos taking influence from haskell :P < 1314940611 216224 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :itertools, functools, and a very limited list comprehension syntax is probably the only influence Python has from Haskell. < 1314940768 848802 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1314940790 582298 :augur!~augur@129.2.129.32 QUIT :Read error: Connection reset by peer < 1314940823 772489 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1314940905 696001 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Not sure if what I did was a good idea or just really really stupid < 1314941049 333803 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well there's only one way to find out. make that into a fry meme picture and post to reddit. < 1314941143 426681 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :< jtannenbaum> and put a dang comment at the end so people know what you're doing, it's tough to read either way < 1314941163 202597 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in regards to: list(itertools.product(*[range(x) for x in (2,3,4)])) < 1314941168 617490 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :-- #python < 1314941210 123079 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :what's the * for < 1314941224 338762 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :"flattens" a list into function arguments < 1314941241 634604 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :f(*[a,b,c]) = f(a,b,c) < 1314941255 135398 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also works with tuples and other iterators. < 1314941271 141526 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :mhm < 1314941280 649524 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :** is used to translate dictionaries to named arguments. < 1314941287 687061 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :It's not possible to go to an eye doctor to preemptively ask if you just infected your eye, is it? < 1314941305 375936 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it is possible to do that, yes. < 1314941309 536645 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not sure if it'll help though. < 1314941344 925352 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ask a doctor. :P < 1314942867 727723 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Good night < 1314943825 651175 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :Sgeo: what did you do? (the thing that was either good or really really stupid?) < 1314943860 427043 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Poking around my eye to try to deal with an eyelash < 1314943864 775004 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :After my dad told me not to < 1314943878 594795 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I did wash my hands and air-dried them, but not entirely sure if I was vigilant enough about that < 1314943887 103889 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I may have done a bit of poking around before washing < 1314943896 524752 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I did successfully deal with the eyelash < 1314943914 543028 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :oh, that should be fine, just blink furiously for a while so you re-lubricate your eye < 1314943977 784713 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :My finger, while I don't think it touched eyeball, did touch skin that probably did touch eyeball < 1314944065 61742 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :oh no, you touched skin that touches your eyeball? it'd be fine if it was the eyeball directly, but now you're definitely going to die < 1314944085 660390 :mauke!~mauke@p3m/member/mauke PRIVMSG #esoteric :what's so bad about touching eyeballs? < 1314944096 826071 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :it scares Sgeo? :) < 1314944126 911195 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :My dad thought that my eye could get infected like that < 1314944150 279811 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :(By touching the eyeball if my hands weren't really really really clean) < 1314944167 541104 :mauke!~mauke@p3m/member/mauke PRIVMSG #esoteric :oh, then my eyes must be really sick by now < 1314944448 90464 :augur!~augur@129.2.129.32 QUIT :Remote host closed the connection < 1314947401 913508 :azaq23!~derivecto@unaffiliated/azaq23 JOIN :#esoteric < 1314948332 385732 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> (`replicateM` "abc") =<< [0..] < 1314948333 497276 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ["","a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","a... < 1314948838 895911 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so if I wrote a language that compiles to Core < 1314948849 405203 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :would that give me access to Haskell bindings? < 1314948853 306851 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Core? < 1314948912 873742 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :one of GHC's intermediate languages. < 1314949105 910849 :nooga!~nooga@maverick.aircity.pl JOIN :#esoteric < 1314951328 4423 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Ping timeout: 240 seconds < 1314951352 772179 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1314951363 119964 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net JOIN :#esoteric < 1314953029 759090 :FireFly!~firefly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1314953037 217431 :FireFly!~firefly@1-1-3-36a.tul.sth.bostream.se QUIT :Changing host < 1314953037 377400 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1314953172 150393 :Tritonio!~TrT@150.140.22.204 JOIN :#esoteric < 1314954568 372143 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :Sgeo: i recommend you stir your emotions with a moving song or video causing you to cry < 1314954581 276008 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :haha. < 1314954864 368433 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :(to greensleeves) There once was a cat who had come to my home, and it's life had only just begun. < 1314954889 197713 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :It played on the carpet with balls of string, while a small family watched it do it's thing. < 1314954980 22769 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :It jumped on the fridge and slept there all day, or climbed along fences all carefree and gay. < 1314955369 674686 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :im moved < 1314955637 995259 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I moved. < 1314956359 362820 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :the point was to move sgeo :P < 1314956365 475015 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :heheh < 1314956898 376707 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> nub . permutations $ "sgeo" < 1314956900 156854 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ["sgeo","gseo","egso","geso","esgo","sego","oegs","eogs","egos","oges","goe... < 1314956917 209864 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :nub? why would there be any duplicates? < 1314956933 750252 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm a cautious guy. < 1314956986 288774 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :> let permuts = permutations "sgeo" in length $ nub $ permuts == length permuts < 1314956987 390341 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `[[GHC.Types.Char]]' < 1314956987 550370 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred ... < 1314956991 403747 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you would want nub there if it were any string with duplicate characters... so I kind of just use it out of habit. < 1314956997 464751 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes I understand it's the same in this case. < 1314957011 212822 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :> let permuts = permutations "sgeo" in length . nub $ permuts == length permuts < 1314957012 83554 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `[[GHC.Types.Char]]' < 1314957012 253637 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred ... < 1314957022 149680 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Grah < 1314957023 195930 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :Sgeo: what are you trying to do? < 1314957038 527397 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh, I see < 1314957042 234254 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgeo: problem is most likely related to precedence of $ and == < 1314957042 691440 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Have lambdabot tell me if length with and without nub is the same < 1314957050 991683 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :right < 1314957063 797707 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :> let permuts = permutations "sgeo" in (length $ nub $ permuts) == (length permuts) < 1314957064 809775 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : True < 1314957083 264536 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :> let permuts = permutations "sgeo" in (length . nub $ permuts) == (length permuts) < 1314957085 54075 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : True < 1314957097 955369 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Hmm, makes sense < 1314957122 216430 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> let permuts = permutations "lambdabot" in (length . nub $ permuts) == (length permuts) < 1314957126 206174 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1314957132 183131 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric : > let permuts = permutations "aa" in (length . nub $ permuts) == (length permuts) < 1314957161 245194 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> let permuts = permutations "baby" in (length . nub $ permuts) == (length permuts) < 1314957162 965142 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : False < 1314957177 864961 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :#esoteric: conducting groundbreaking research in combinatorics. < 1314957318 306173 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :> permutations "zzz" < 1314957319 349793 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ["zzz","zzz","zzz","zzz","zzz","zzz"] < 1314957334 586211 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION goes to publish a paper < 1314957343 445846 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> join . permutations . "zzz" < 1314957344 321544 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `[a]' < 1314957344 489845 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred type `GHC.Types... < 1314957346 342962 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> join . permutations $ "zzz" < 1314957348 124285 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "zzzzzzzzzzzzzzzzzz" < 1314957349 611252 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> ((==) <*> nub) (permutations "sgeo") < 1314957350 513568 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : True < 1314957353 426057 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> ((==) <*> nub) (permutations "baby") < 1314957354 457902 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : False < 1314957361 784899 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :What's <*> < 1314957367 355620 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::t (<*>) < 1314957367 863159 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :S < 1314957368 467872 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (f :: * -> *) a b. (Applicative f) => f (a -> b) -> f a -> f b < 1314957371 490342 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Oh it's that thing isn't it? < 1314957386 989405 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I have no idea what it''s doing there < 1314957388 803427 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :and yeah for the ((->) a) instance it's S < 1314957389 264740 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for functions <*> is ap is the S combinator. < 1314957392 273030 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION needs sleep < 1314957424 191691 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :And knowledge of what the S combinator does < 1314957434 351379 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :\fgx.fx(gx) < 1314957438 846095 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :f <*> g x = f x (g x) < 1314957439 445668 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes < 1314957440 484284 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that < 1314957500 287239 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh right I forgot to do length on them < 1314957501 11538 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oops < 1314957519 329352 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :probably more efficient to do it this way though. < 1314957519 883604 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :anyway I checked if they were identical rather than merely of the same length < 1314957530 121833 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :CakeProphet: nope < 1314957551 144297 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :more efficient to do the lengths, I'd imagine, since you don't have to do comparisons on all the elements < 1314957582 905802 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :are comparisons more expensive that accumulated addition? also, the false case would be short-circuiting on the shorter list. < 1314957592 144109 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :whereas with length you traverse the entire list. < 1314957615 399904 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er, not on the shorter list < 1314957619 429529 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :just short circuiting on the false case. < 1314957657 120928 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so that gives better average time. :P < 1314957664 708423 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I guess if the'd be different really early on and the lists are really long it'd be best to do straight comparison yeah < 1314957679 375472 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :the thing about comparisons is it depends on the Eq instance < 1314957686 159836 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right < 1314957689 969261 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :could be a 2-d list for example < 1314957692 269960 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but not in this case. < 1314957696 933034 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er... wait < 1314957697 569972 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :lol < 1314957701 681704 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes in this case < 1314957702 196499 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yep < 1314957733 576923 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so yeah length is faster on the true case. < 1314957763 190030 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :just comparison is maybe faster on the false case. < 1314957765 882098 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>_> < 1314957814 841964 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> [1..] == [] < 1314957816 46337 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : False < 1314957818 807796 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> [1..] == [1..] < 1314957822 772865 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1314957832 651750 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> (((==) `on` length) <*> nub) (permutations "sgeo") < 1314957833 579611 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : True < 1314957835 21255 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> (((==) `on` length) <*> nub) (permutations "baby") < 1314957836 145067 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : False < 1314957838 192057 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh wait no < 1314957841 31354 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :mesed that one up < 1314957843 195641 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :confused myself < 1314957852 206637 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :wait no < 1314957856 121329 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :did not mess < 1314957861 314198 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :double confused ;_; < 1314957865 143692 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you want the ap to be on length I would think. < 1314957876 143315 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :?? < 1314957877 682532 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t on < 1314957878 697808 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c < 1314957894 423804 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh nevermind < 1314957903 557133 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no that's correct. < 1314957951 984552 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I want a whole suite of preposition functions. < 1314957974 146455 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :like what < 1314957975 624185 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :on, in, around, about, for, with, without < 1314957993 729498 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :but what would they do < 1314958003 679721 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what they say duh. < 1314958020 950278 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :ok < 1314958045 155262 :azaq23!~derivecto@unaffiliated/azaq23 QUIT :Ping timeout: 260 seconds < 1314958047 988886 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :obviously [] `around` [1,2,3] is [[1,2,3]] < 1314958051 355716 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>_> < 1314958254 13474 :Wamanuz!~Wamanuz@81-233-163-248-no84.tbcn.telia.com QUIT :Remote host closed the connection < 1314958283 818635 :Wamanuz!~Wamanuz@81-233-163-248-no84.tbcn.telia.com JOIN :#esoteric < 1314958284 292279 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :typeclass Match a b where { (===) :: a -> b -> Bool } < 1314958287 690176 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :*class < 1314958307 771976 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :now you can have the clusterfuck that is Perl's ~~ (aka "smart match") operator < 1314958317 562885 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in the form of like 10 instance declarations. < 1314958364 907893 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also can you do things like this in an instance declaration < 1314958383 772983 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :instance (Eq a) => Match a a where (===) = (==) < 1314958410 843225 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :with one of those typeclass extensions? < 1314958494 795338 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I'd find it more elegant to have an isomorphism (or something more general in a good way not a stupid way) typeclass and define (===) in terms of its operations and (==) < 1314958499 580304 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :elegant and useful < 1314958526 155073 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that is not how Perl's smart matching works. :P < 1314958538 753821 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it's DWIS equality. :P < 1314958547 835761 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er DWIM < 1314958568 364914 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :perl the most elegant language < 1314958569 745555 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so there's not really a generalization. < 1314958590 658731 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :nor a haskell implementation < 1314958601 953428 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :CakeProphet: MultiParamTypeClasses for Match, FlexibleInstances for that instance (because it uses 'a' twice) < 1314958604 500678 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I just showed you how it could be done. < 1314958681 579395 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I guess yours accounts for cases wherein an isomorphism doesn't exist but you still want thinks to be considered equal, but this is operation is dumb and nobody should want it ever < 1314958704 929267 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I mostly use it because it provides a quick way to test list membership in Perl < 1314958714 716764 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :(1,2,3,4) ~~ 2 is true < 1314958734 592262 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :ew < 1314958735 487197 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so < 1314958745 516441 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :instance Match [a] a where ... < 1314958752 433183 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :instance Match a [a] where ... < 1314958775 48848 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :`elem` sure is a lot of typing < 1314958779 114194 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: elem`: not found < 1314958787 338964 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :also you'd need an Eq a => in there < 1314958791 870122 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :monqy: yeah because I totally think this is a viable thing in Haskell < 1314958798 244838 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :or equivalent < 1314958800 676 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and not just a thought experiment on how I would implement such a thing. < 1314958832 583617 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :if I were you I'd probably go about implementing it in something along the lines of syb, such as not to have to define instances for every pair of types < 1314958876 660045 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also regexes do regex matching stuff < 1314958913 590557 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I think list ~~ list is intersection for some reason < 1314959038 164606 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so that means it couldn't return Bool < 1314959060 388847 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it would need to return some kind of special data type or Either if there's only two kinds of result < 1314959076 433954 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or Dynamic. :P < 1314959110 476659 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :intersection? not set equality? sure isnt doing what id mean...... < 1314959130 79460 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1314959149 315734 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or you could include the result type as a third typeclass param. < 1314959155 63162 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for great fun. < 1314959171 995359 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :should just name it TripleArgumentFunction instead of Match < 1314959183 65783 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :where by set equality I mean something like ((==) `on` Data.Set.fromList) or ((==) `on` Data.List.Ordered.nub . sort) or something like that < 1314959183 835083 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er TwoArgumentFunction rather < 1314959207 139824 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :at least I think there's a package that provides Data.List.Ordered < 1314959248 358041 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Data.List.Ordered.nub = map head . group < 1314959291 680249 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :her is the Grand Smart Matching table: http://perldoc.perl.org/perlsyn.html#Smart-matching-in-detail < 1314959389 880436 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so list ~~ list is true if all elements ~~ to true with the element of the same index in the other list. < 1314959413 480809 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :that works too I guess < 1314959465 222126 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :obviously it's a very straightforward operator. < 1314959545 404446 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :array ~~ function is like all in Haskell < 1314959681 224997 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :CakeProphet, ~~ is the terrifying, ill-defined operator in Perl, right? < 1314959780 586327 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well, it has a definition, but yes it's somewhat terrifying. < 1314959795 960079 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it is defined by a huge table of which pairs of types results in what. < 1314959806 140971 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :most of it makes some kind of intuitive sense. < 1314959889 80761 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :it has a definition, but it's not a good one < 1314959891 526614 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hence ill-defined < 1314959938 148016 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :where by good I mean "not just a bunch of stupid special cases" < 1314960104 302372 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also none of them are technically special < 1314960106 619343 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :just... cases. :P < 1314960136 363570 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :they are all special like snowflakes they are special snowflakes < 1314960164 732534 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Ruby's === isn't particularly like ~~, is it? < 1314960191 522215 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :=== is the switch-case operator < 1314960199 257927 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :similar but I don't think it's identical < 1314960222 133440 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well, ~~ is also the switch-case operator in Perl so... < 1314960228 941728 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yeah it's derived from that. < 1314960252 39769 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but I do not know how it works exactly. < 1314960314 315304 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :most of what ~~ does is already pretty short code so it's kind of pointless other than it provides a somewhat nice switch-case mechanism. < 1314960457 897905 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hash ~~ array intersects the hash keys with the array elements < 1314960471 551012 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I guess that's kind of useful. < 1314961998 813259 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://www.garshol.priv.no/download/text/perl.html < 1314962016 804983 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :a very lengthy article about why Perl is bad, written by someone who obviously has very little experience with Perl. < 1314962081 726912 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and then starts talking about why Python is awesome < 1314962172 171246 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i like how he uses a paul graham quote in introducing python < 1314962216 935417 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I don't think you get to complain about manipulating complex data structures in Perl if you can't even do it properly. < 1314962231 129535 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :though perhaps that's part of his argument. that stupid people can't figure it out. < 1314962407 603778 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net QUIT :Quit: hello < 1314963709 912228 :azaq23!~derivecto@unaffiliated/azaq23 JOIN :#esoteric < 1314963964 80877 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Read error: Operation timed out < 1314964675 449928 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Anyone know what the contact legs on chips are made from? < 1314965138 327488 :Tritonio!~TrT@150.140.22.204 QUIT :Read error: Connection reset by peer < 1314965393 311325 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :all i can find is that the contacts on RAM are gold-plated. possibly aluminum or tin. < 1314965438 767432 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :something that either doesnt corrode or coated with same < 1314965578 94197 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Argh, I went for steel. < 1314968174 357320 :Necrosporus!~Necrospor@unaffiliated/necrosporus JOIN :#esoteric < 1314968306 618043 :Necrosporus!~Necrospor@unaffiliated/necrosporus QUIT :Quit: Leaving < 1314968536 409575 :Necrosporus!~Necrospor@unaffiliated/necrosporus JOIN :#esoteric < 1314968623 475632 :Necrosporus!~Necrospor@unaffiliated/necrosporus PRIVMSG #esoteric :http://paste.org.ru/?lu3vtb < 1314968637 42 :Necrosporus!~Necrospor@unaffiliated/necrosporus PRIVMSG #esoteric :Do you like it? What' sthat at your opinion? < 1314968673 284851 :loje!~androirc@62.140.137.140 JOIN :#esoteric < 1314969009 280572 :loje!~androirc@62.140.137.140 QUIT :Ping timeout: 240 seconds < 1314973216 91506 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au QUIT :Ping timeout: 240 seconds < 1314973222 24687 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric ::t (.)(.) < 1314973222 726110 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => f1 (a -> b) -> f1 (f a -> f b) < 1314973240 820998 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric ::t (.) < 1314973241 474020 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b < 1314973251 849683 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :That... what. < 1314973257 790099 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :@type (.) < 1314973258 453389 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b < 1314973273 969897 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :That's fmap... < 1314973291 297879 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Quit: Computer has gone to sleep. < 1314973391 489501 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :fmap is a generalization of (Prelude..) and Cale decided that lambdabot should have (.) be generalized as well < 1314973415 708502 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :For this, and other reasons, lambdabot's Haskell dialect is generally known as Caleskell. < 1314973424 111907 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :?ty (++) -- Another example < 1314973425 182410 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall m. (Monoid m) => m -> m -> m < 1314973489 972564 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :fmap is a generalisation of .? < 1314973537 95667 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :(Prelude..) is fmap but limited to the (a->) functor < 1314973547 395466 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Yeah, I was coming to that conclusion. < 1314973554 513468 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :> fmap (+1) (*2) 3 < 1314973555 625730 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 7 < 1314973568 871779 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :> (Prelude..) (+1) (*2) 3 < 1314973569 949967 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Not in scope: `Prelude..' < 1314973575 439784 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Bah. < 1314973578 961953 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :?ty (Prelude..) < 1314973580 31429 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall b c a. (b -> c) -> (a -> b) -> a -> c < 1314973586 783464 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric : > (Prelude.(.)) (+1) (*2) 3 < 1314973593 78961 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :> (Prelude.(.)) (+1) (*2) 3 < 1314973593 699566 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Not in scope: data constructor `Prelude' < 1314973594 37202 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The syntax is (Prelude..) < 1314973618 256481 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I guess it's just missing a qualified import of Prelude < 1314973625 197408 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Or then it's using a modified Prelude. < 1314974790 379252 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1314975519 96572 :MSleep!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net NICK :MDude < 1314977606 478945 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 QUIT :Ping timeout: 245 seconds < 1314978863 395325 :nooga!~nooga@maverick.aircity.pl QUIT :Ping timeout: 264 seconds < 1314980046 634546 :pumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1314980073 460317 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Ping timeout: 240 seconds < 1314980579 753837 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1314981031 725262 :pumpkin!~pumpkin@unaffiliated/pumpkingod NICK :copumpkin < 1314984892 529916 :Wamanuz!~Wamanuz@81-233-163-248-no84.tbcn.telia.com QUIT :Read error: Operation timed out < 1314984926 704043 :Wamanuz!~Wamanuz@81-233-163-248-no84.tbcn.telia.com JOIN :#esoteric < 1314985625 587839 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1314985769 15515 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hi < 1314985769 382346 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott: You have 11 new messages. '/msg lambdabot @messages' to read them. < 1314985775 115387 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :help < 1314985871 47823 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :thank you...everyone... i think ... < 1314986102 896918 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :elliott, says the one who has, on multiple occasions, left 20+ messages in my lambdabot inbox. < 1314986122 892250 :Gregor!foobar@codu.org PRIVMSG #esoteric :@tell Phantom_Hoover spamo < 1314986123 230743 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1314986124 352729 :Gregor!foobar@codu.org PRIVMSG #esoteric :@tell Phantom_Hoover spamo < 1314986124 712591 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1314986127 958929 :Gregor!foobar@codu.org PRIVMSG #esoteric :>_> < 1314986193 458105 :augur!~augur@129.2.129.33 JOIN :#esoteric < 1314986335 733068 :pumpkin!~pumpkin@17.45.135.33 JOIN :#esoteric < 1314986336 406239 :Gregor!foobar@codu.org PRIVMSG #esoteric :So, who wants to continue my dramatic effort at a tweetable interpreter for a TC language in C? < 1314986341 35154 :pumpkin!~pumpkin@17.45.135.33 QUIT :Changing host < 1314986341 195978 :pumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1314986351 305721 :Gregor!foobar@codu.org PRIVMSG #esoteric :I have a tweetable interpreter for a TC-flavored language with restricted addressing >_> < 1314986359 468496 :pumpkin!~pumpkin@unaffiliated/pumpkingod NICK :copumpkin_ < 1314986360 952700 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Nice FSM < 1314986376 387001 :Gregor!foobar@codu.org PRIVMSG #esoteric :Yeah, exactly :P < 1314986384 976437 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Here's my FSM in a tweet < 1314986388 143034 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :main(){return 0;} < 1314986405 841873 :Gregor!foobar@codu.org PRIVMSG #esoteric :char*a,b[9999];main(){gets(a=b);while(*a)a+=(a[*a]-=a[a[1]])?3:a[2];puts(b);} < 1314986406 345528 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Gregor: You have 7 new messages. '/msg lambdabot @messages' to read them. < 1314986407 727441 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :OK, OK, you say, but how do I get it to loop?? < 1314986416 260559 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :main(){if(getchar())for(;;);return 0;} < 1314986427 711767 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: What < 1314986434 567065 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Who spammed Gregor X-D < 1314986443 24285 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Disconnected by services < 1314986446 648308 :copumpkin_!~pumpkin@unaffiliated/pumpkingod NICK :copumpkin < 1314986452 861837 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Phantom_Hoover sez "By the way, two messages does not a spam make." < 1314986461 674519 :Gregor!foobar@codu.org PRIVMSG #esoteric :Of course, replace those " "s with \n/msg lambdabot @tell Gregor < 1314986571 465720 :Gregor!foobar@codu.org PRIVMSG #esoteric :But anyway, my subtract-and-branch-if-zero is pretty sweet, and plenty tweetable at 77 characters, but can only address 256 bytes :P < 1314986578 472028 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :00:10:38: * Sgeo wants wget to ignore robots.txt >.> < 1314986584 794565 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Obviously it is impossible to make wget do this. < 1314986603 302107 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I would be OK with it if it could address, like, at LEAST a gigabyte :P < 1314986611 806698 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :And if there was a way to do so, it would be far too secret to include in the man page. < 1314986612 6350 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them. < 1314986613 458463 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Pffffffffffffff < 1314986642 382297 :kmc!~keegan@c-98-216-51-47.hsd1.ma.comcast.net PRIVMSG #esoteric :void main(int c,char **v){((void(*)(void))v[1])();} < 1314986656 445007 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :kmc: UB < 1314986661 345410 :kmc!~keegan@c-98-216-51-47.hsd1.ma.comcast.net PRIVMSG #esoteric :i know < 1314986662 944202 :Gregor!foobar@codu.org PRIVMSG #esoteric :kmc: omg u so klevr < 1314986672 207483 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :kmc: Come back when you have a C program :P < 1314986706 595968 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :elliott, I figured out how to do it < 1314986719 34119 :kmc!~keegan@c-98-216-51-47.hsd1.ma.comcast.net PRIVMSG #esoteric :void main(){system("gcc /dev/stdin&&./a.out");} < 1314986732 553748 :Gregor!foobar@codu.org PRIVMSG #esoteric :kmc: omg u so klevr < 1314986784 996734 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :kmc: Implementation-defined behaviour :P < 1314986858 812368 :Gregor!foobar@codu.org PRIVMSG #esoteric :Incidentally, mine has /relative/ addressing of 256 bytes, so it can, in fact, access more, but only a 256 byte area around the pc. < 1314986882 518308 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Hmm, I wonder if that's TC (modulo C's limited addressing)? < 1314986888 919011 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You just have to move around a lot. < 1314986911 971257 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I'm fairly certain it's not, since the area you're moving around in is also where the program is, so you'll very quickly run out of space for both your program logic and your actual data. < 1314986929 122407 :Gregor!foobar@codu.org PRIVMSG #esoteric :(Maybe, that's not a real argument of course) < 1314986955 487801 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I kind of feel like you could implement a simple TC language by having a really small program that can self-modify quinelike and move around the actual data... < 1314986968 183570 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That's the fancy-L problem, though < 1314986974 742329 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: But the program and data aren't separate. < 1314986981 359368 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(http://esolangs.org/wiki/%E2%84%92) < 1314986984 148822 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Indeed < 1314987105 175180 :Gregor!foobar@codu.org PRIVMSG #esoteric :ACTION starts vaguely wondering if a subleqalike can make any sense at all if the program and data are separate. Conclusion: lolno. < 1314987555 554055 :Gregor!foobar@codu.org PRIVMSG #esoteric :I also made input and output a requirement in my original design of this :P < 1314987609 266741 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Do you even have a twatter. < 1314987719 691582 :Gregor!foobar@codu.org PRIVMSG #esoteric :Probably? :P < 1314988098 388294 :Gregor!foobar@codu.org PRIVMSG #esoteric :Is EOF equal to a value other than -1 on any system anywhere? >_> < 1314988107 460610 :Gregor!foobar@codu.org PRIVMSG #esoteric :(It's totally lame to assume it's -1, but it would help me SO MUCH) < 1314988147 748343 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Is EOF equal to a value other than -1 on any system anywhere? >_> < 1314988152 985178 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yes, C-compliant DS9ks < 1314988155 542500 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's <0, though < 1314988166 947141 :Gregor!foobar@codu.org PRIVMSG #esoteric :Friggin' DS9k! :P < 1314988182 537853 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: oh my god DS9's computers run DS9k < 1314988182 703133 :Gregor!foobar@codu.org PRIVMSG #esoteric :That still leaves me with (...)>=0 :( < 1314988189 653455 :Gregor!foobar@codu.org PRIVMSG #esoteric :Which is a lot more characters than +1 < 1314988194 69712 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: try using a bit-and? < 1314988199 491940 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :somehow??? < 1314988200 465660 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Has anybody written a C DS9K yet? < 1314988209 47991 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: They're too busy being real systems < 1314988228 442239 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: In less characters than ()>=0? :P < 1314988229 371893 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'll take that as a no < 1314988252 508744 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Gregor: Why do you need the () there but not in the +1 < 1314988276 542455 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I have some plans for such a system but it's too large an undertaking for me to bother < 1314988277 466796 :Gregor!foobar@codu.org PRIVMSG #esoteric :Deewiant: The bit here is while (*++a=getchar()+1) if EOF == -1 < 1314988286 903409 :Gregor!foobar@codu.org PRIVMSG #esoteric :Deewiant: a is an int * here < 1314988288 85612 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You basically need to keep all the types and the like around to be fully pedantic about it < 1314988291 273441 :Gregor!foobar@codu.org PRIVMSG #esoteric :(I'm trying to give it a bigger range) < 1314988300 779803 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And you want pointers' representations as integers to be completely fucked up so that nothing works on them < 1314988315 438124 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(Perhaps have a pointer-integer type so you can yell whenever the program tries to arithmetic on them then cast it back) < 1314988321 804700 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Doesn't matter, everything is int *, nothing is ever accessed char-wise. < 1314988325 669093 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Absolutely < 1314988329 847279 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: ? < 1314988332 572304 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm talking about ds9ks < 1314988335 461413 :Gregor!foobar@codu.org PRIVMSG #esoteric :Oh, sorry, I thought you --- yeah :P < 1314988342 480116 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: The great thing is, it would actually make a useful debugging system :P < 1314988346 359660 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: I figure it'd be... yeah < 1314988349 948830 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because you could provide _really_ helpful error messages at runtime. < 1314988364 789893 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Downside: Really slow, but probably not slower than, like, Ruby, so whatever. < 1314988373 82107 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: So it can just say things like "Undefined behaviour #1234: casting a function pointer to a pointer" or whatever < 1314988377 991460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also you couldn't provide any libraries that make incorrect assumptions i.e. most of them. < 1314988380 20235 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Preferably it would still work < 1314988391 236866 :Gregor!foobar@codu.org PRIVMSG #esoteric :int*a,b[9<<20];main(){a=b;while(scanf("%d",++a)>0);while(*a)a+=(a[*a]-=a[a[1]])?3:a[2];while(a>b)putchar(*--a);} <-- sexy :P < 1314988392 632556 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :So that it could just keep going and outputting more errors < 1314988403 300285 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: If it still works, then it has to use a less rich internal representation, which leads to fewer errors being caught < 1314988408 252817 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But it might be that you have to break everything to.. yeah < 1314988420 464473 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It could work for some things but probably not for function pointers → pointers < 1314988424 506881 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It feels like there should be... yeah < 1314988426 991254 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because function pointers should contain arity and type information < 1314988428 309636 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: ...yeah < 1314988434 905047 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Dammit, stop preëmpting what I say < 1314988438 435740 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Although you could have a function-pointer-pointer type that acts like a pointer but still carries that information :-) < 1314988443 45779 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Then you need a function-pointer-pointer-integer < 1314988465 135747 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: What about that project that's doing an abstract interpreter of C < 1314988468 667175 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :K90 or something? < 1314988471 223631 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Klee? < 1314988477 733393 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It was something involving K < 1314988493 736069 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :IIRC they don't have several important valid things < 1314988495 978666 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Klee is the symbolic VM for LLVM < 1314988506 114201 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :http://klee.llvm.org/Tutorial-1.html ;; This is cool, but no. < 1314988532 368546 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: It was literally translating the abstract semantics of C to something machine-readable, IIRC < 1314988534 288592 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Well, for C, but I suppose you can theoretically use it with anything LLVM < 1314988542 363901 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: And had this massive test suite or something < 1314988580 744881 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I can't seem to find it :/ < 1314988643 960561 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I have a feeling it's impossible to detect all such bugs, though < 1314988659 834476 :Lymee!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1314988672 484846 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: http://www.softlab.ntua.gr/~nickie/Thesis/ related? < 1314988676 193589 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Like, either you reject valid programs (does complicated sizeof-related tricks but it turns out that it's provably OK for every valid sizeof) or they slip through the cracks < 1314988692 221574 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I don't think so, it was much more recent than that, but maybe I'm wrong < 1314988695 287337 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It was something you could actually run < 1314988745 206887 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Oh wellz, can't find it either < 1314988763 290014 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And yeah, you can't detect all bugs < 1314988770 265235 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Halting problem should be enough to prove it :-P < 1314988797 50886 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But you can probably reject just about every nontrivial C program and that's enough for me < 1314988854 404046 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hey, I try very hard to stay within semantic limits < 1314988897 657138 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: When I was working on mcmap's Guile branch I left a long comment when I assumed a SCM could be casted to a (void *), despite the fact that any non-pointer representation would be insane, and that (void *) was incredibly tied into the current Guile implementation < 1314988904 881143 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because, hey, it COULD be an integer index into a heap :-P < 1314988911 431048 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That's... bigger than a pointer? < 1314988922 284151 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hell, could be a function pointer < 1314988961 358295 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Do you typically take into account that INT_MAX might be 32767 and that increasing an int past that is UB? < 1314988993 169673 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: BTW, how does mushspace do the caching of the "currently relevant" array? Just stores a global masked x/y and checks the masked x/y of the "lookup cell" function is the same before hashtable lookups? < 1314989006 834298 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :There's a separate cursor structure < 1314989013 780296 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: And I'd consider making an increment past 32767 a user error < 1314989014 660314 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Which you use if you want to cache where you are < 1314989018 709847 :ralc!~ralc@79.142.230.243.static.knet.bolignet.dk JOIN :#esoteric < 1314989023 7521 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(That's one thing you can't catch generically, incidentally) < 1314989046 59499 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So much for your minimal API :P < 1314989056 171500 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's a separate thing < 1314989086 360191 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's more like iterating over the structure than doing individual accesses < 1314989089 231921 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That is not implementable ideally without using the internal structure details < 1314989098 871012 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Unless you expose a way to get an array out? < 1314989106 852551 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No, cursor is complicated < 1314989124 568848 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Eh? < 1314989146 31750 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm saying that I couldn't implement my own cursor with the same efficiency using your public API sans cursor, so it is part of the core :P < 1314989163 482266 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yes, agreed < 1314989187 115639 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But my point was that it's a (fairly) minimal API for what it does < 1314989193 544543 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: But that would be resolved if you provided a way to go from (x,y) -> array, I think? < 1314989204 877236 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Unless I totally misunderstand how your fungespace works < 1314989216 794372 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I don't think that'd suffice < 1314989222 609501 :fizzie!fis@iris.zem.fi JOIN :#esoteric < 1314989232 45335 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You also need at least the bounds in that array that you're allowed to access < 1314989252 86935 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Both (x,y) and (start_idx,end_idx) < 1314989281 835200 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And then for multidimensional cases you need the full AABB data, i.e. width/area so you can stride properly between start_idx/end_idx < 1314989301 115818 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And then you might run into the hash table < 1314989308 61850 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No, it's too complicated :-) < 1314989326 668135 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's the next thing I need to C-ify < 1314989344 939257 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Back < 1314989358 260451 :boily!~boily@mtl.savoirfairelinux.net QUIT :Quit: WeeChat 0.3.5 < 1314989368 957155 :Gregor!foobar@codu.org PRIVMSG #esoteric :lololol @ "BUGS" section in malloc(3). < 1314989371 99031 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Maybe you should expose an internal AABB API that the public API is based on :P < 1314989375 260715 :Gregor!foobar@codu.org PRIVMSG #esoteric :Somebody doesn't like Linux's overcommit behavior :P < 1314989386 757140 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Overcommit is utterly stupid < 1314989397 560840 :Gregor!foobar@codu.org PRIVMSG #esoteric :"In case Linux is employed under circumstances where it would be less desirable to suddenly lose some randomly picked processes, ..." < 1314989405 986802 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Unfortunately it's the easiest way to achieve a heap with nice properties < 1314989410 197831 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So I can't really turn it off < 1314989417 626639 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(SBCL uses it f.e.) < 1314989489 751446 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: I'd rather make the whole thing as opaque as possible < 1314989491 695602 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Isn't there a a /proc/ thing that can turn it off? < 1314989513 338376 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yes, /proc/sys/vm/overcommit_* < 1314989548 591336 :Gregor!foobar@codu.org PRIVMSG #esoteric :Anyway, int*a,b[9<<20];main(){a=b;while(scanf("%d",++a)>0);while(*a)a+=(a[*a]-=a[a[1]])?3:a[2];while(a>b)putchar(*--a);} < 1314989576 111625 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Do you think sysadmins remember to do that? < 1314989613 873452 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: That's why it'd be an internal thing :P < 1314989627 659749 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: i.e. subject to change whenever the internal representation does < 1314989636 263701 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(But more stable than poking members directly) < 1314989655 19308 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: I'll add it when somebody needs it :-P < 1314989661 587028 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You do, see cursor.c :P < 1314989680 555982 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I can poke members directly? < 1314989734 507385 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Well, I don't know how cursor.c works, but we've established it isn't implemented with the API < 1314989738 626636 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So there is surely some . or -> in it < 1314989749 611111 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1314989752 3631 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yes, exactly < 1314989754 607303 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And I can do that < 1314989759 228354 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :So I don't need an "AABB API" < 1314989764 177450 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Because I can just do aabb->foo < 1314989773 377200 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And not worry about breakage < 1314989786 746159 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Yes, but you need the AABB API, you're just working around it by doing fragile things < 1314989797 457876 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And taking advantage of your enviable maintainer position to ensure it doesn't break < 1314989798 871520 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :This is the kind of thing that is supposed to be fragile < 1314989805 999981 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :My character set has a left-facing swatstika but not a right-facing one. < 1314989807 979124 :azaq23!~derivecto@unaffiliated/azaq23 QUIT :Quit: Leaving. < 1314989811 433535 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :*sigh* < 1314989814 555566 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :If I mess with the internal representation of mush_aabb I really do need to rethink everything :-P < 1314989843 833679 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: Heh. < 1314989849 620432 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Which one is the one the Nazis used? < 1314989861 881772 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :The Nazis used the 45-degrees rotated one < 1314989874 131157 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :thanks < 1314989893 277856 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Right-facing. < 1314989988 774549 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Strafgesetzbuch_%C2%A7_86a < 1314989993 551029 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Way to free speech, Germany. < 1314989999 218780 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: BTW, s/character set/font/ < 1314990006 237182 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :elliott, erm, yes. < 1314990009 532577 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also, you don't know about that? < 1314990019 759610 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I did. < 1314990030 668045 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Although I didn't know the precise nature of the law. < 1314990051 363350 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"In late 2005 police raided the offices of the punk rock label and mail order store "Nix Gut Records" and confiscated merchandise depicting crossed-out swastikas and fists smashing swastikas." < 1314990052 182673 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Pro. < 1314990095 778761 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :http://en.wikipedia.org/wiki/File:98-animate.gif Surely there are easier ways to accomplish this. < 1314990122 574426 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I really want to punch these people, which distresses me because I don't really like people who want to punch people. < 1314990188 468878 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't think you can blame them for wanting to de-nazificate in the forties, but it's long-obsolete by now of course. < 1314990198 567500 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And obviously hasn't stopped neo-Nazis. < 1314990240 788114 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, I don't know if I like zenburn. < 1314990314 179510 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Has anyone here used Scion with Emacs? I suppose that's vanishingly unlikely. < 1314990848 805707 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Neo-Nazis should use symbolism common German alphabetic in order to show problems with these laws < 1314990914 717759 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :And the Swastika does not even necessarily have to do with Nazi, even though the Wikipedia article says the law applies to all forms. < 1314991351 94905 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I have read that Supero makes a Haskell code as fast as C, but it is still experimental < 1314991417 682646 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Some stuff from Supero is now in GHC IIRC < 1314991427 164871 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I may be wrong < 1314991428 499579 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But similar things < 1314991453 64557 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :The swastika has been stigmatized by the nazis. But the history of it is probably complicated full of many twists and turns through various cultures. < 1314991485 949711 :cheater!~ubuntu@ip-80-226-24-3.vodafone-net.de PRIVMSG #esoteric :i was in a discount shop here in germany today < 1314991497 169520 :cheater!~ubuntu@ip-80-226-24-3.vodafone-net.de PRIVMSG #esoteric :and they had those clothes racks in shape of a swastika < 1314991508 368340 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :Then again I guess it's not a debate of historical accuracy. < 1314991595 222101 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :i should just stay out of this one < 1314991620 760690 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Maybe there should be a compiler option to tell it to also make small system small executable file omitting a lot of things not required for operation of the program. < 1314991659 16216 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I don't know how Supero compares in memory and file size; they only show that the speed is as fast as C. < 1314991946 980249 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1314992090 587907 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Re: my circular dependencies, I asked Haskell and apparently the only decent solution is to put everything in Types/Internal.hs; for each type, have Types/Internal/T.hs that imports Types.Internal and just re-exports T(..) with all constructors, and ensure these are the only modules that import Types.Internal; have Types that imports Types.Internal and just re-exports the external API; and have each individual T module import Types.Inte < 1314992090 747761 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :rnal.T. < 1314992109 913198 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :A solution almost as elegant as the reciprocal of how many files it produces. < 1314992147 779438 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric ::-D < 1314992182 4578 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Having said that, I'd only have two Types.Internal.Foo modules to start with... but it's a slippery slope. < 1314992220 378875 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: The other solution was to not use a global Types thing, but just turn anything circular into a type parameter, meaning I need newtype wrappers for the actual usage. :-| < 1314992312 858336 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Hmm, how does that work? < 1314992345 127722 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: module A where {import B; data A = A B;}; module B where {import A; data B = B A;} < 1314992347 139859 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :--> < 1314992377 950201 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :module A where {data A b = A b;}; module B where {import A; data B = B (A B);} < 1314992396 278702 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's not quite a newtype-wrapper, but eurgh, that's even worse than exposing constructors I shouldn't; it's exposing the structure itself. < 1314992415 398831 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But doesn't A need to use the API of B < 1314992443 895866 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Put that in the structure? :-) < 1314992476 277310 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :22:33:09 My dad thought that my eye could get infected like that < 1314992476 478496 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :22:33:32 (By touching the eyeball if my hands weren't really really really clean) < 1314992477 475690 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You could still split them up into Types modules but just have one Types.Internal.X for each type, and then you don't need a Types.Internal, just a Types that re-exports the public interface and I guess defines the instantiations of the type variables < 1314992478 314531 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But ugh < 1314992490 244732 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: thank you, I was going to logread but now I won't < 1314992494 495102 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I mean, you have something like module A where f :: A -> Int; f (A b) = g b < 1314992513 76821 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And now you have f :: A b -> Int; f (A _) = error "derp" < 1314992514 36084 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :_could_ may be the operative word here. i've done that thousands of times. < 1314992517 164376 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I meant put "g" in the structure but that was facetious. < 1314992521 475464 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Like I said, < 1314992522 790409 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Deewiant: You could still split them up into Types modules but just have one Types.Internal.X for each type, and then you don't need a Types.Internal, just a Types that re-exports the public interface and I guess defines the instantiations of the type variables < 1314992563 443707 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Right, but if you do that you might as well go with the earlier solution < 1314992572 408286 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :although come to think of it, my eye _does_ tend to get irritated if i don't wash my hands first. < 1314992573 120270 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah (this one's less files though) < 1314992629 726879 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(also if the speck or eyelash is damn hard to get hold of) < 1314992672 195567 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also i sometimes pluck nosehairs, which i hear risks me getting an infection in my nose spreading to my brain or something. < 1314992763 75112 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Only if you pluck them all or something, I think < 1314992790 769011 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Point being that they're there for a purpose but ±1 hair obviously shouldn't make a difference < 1314992801 410440 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION systematically starts plucking all his nose hairs. < 1314992806 764544 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Pretty much the best way to commit suicide I can think of. < 1314992887 898142 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Wikipedia says there's no evidence for it being dangerous, d'oh < 1314992893 776918 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i minimize it somewhat by using my electric razor instead. < 1314992918 898884 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also you are far too young to have significant nose hair. < 1314992948 309217 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sorry but your lawn is comfortable. < 1314992958 945280 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :wat < 1314992963 835607 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I am not getting off it, < 1314992979 997932 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ok, but then you better start mowing. < 1314993017 725540 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'll use an electric razor < 1314993106 494563 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :reminds me of my "russ" year, where we had silly assigned tasks, one of which was to cleanse the town square pavillion with a toothbrush. < 1314993164 757494 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: FWIW, the main interdependency is due to fingerprints < 1314993198 461449 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: also why are you not taking my `addquote bait. < 1314993200 554916 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: IPs have to hold loaded FP instructions (which obviously include Shiro monadic actions), and Shiro is StateT FungeState IO, and FungeState has to contain IPs < 1314993209 612665 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: Which line < 1314993233 800106 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :at least a couple of them, i think < 1314993256 747263 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: sorry im, not smart < 1314993275 5504 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :`addquote ALL THE LINES < 1314993278 981287 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :637) ALL THE LINES < 1314993286 605267 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION whistles innocently < 1314993291 56497 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :`delquote 637 < 1314993292 501082 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION cries < 1314993293 624581 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :​*poof* < 1314993295 629848 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::( < 1314993305 144927 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what do you want me to addquote :( < 1314993328 707665 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :...if you cannot see it yourself then it probably isn't good enough anyhow. < 1314993420 295586 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you think too highly of my opinions, < 1314993430 994214 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is it the mowing one... < 1314993435 410740 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is it the far too young one...help < 1314993455 360743 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :neither of those, but if you think they fit... < 1314993483 777149 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is it toothbrush anecdote, < 1314993490 423204 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the "also i sometimes pluck nosehairs" is the one where i started wondering if someone would addquote it < 1314993492 240105 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is it although come to think of it, my eye _does_ tend to get irritated if i don't wash my hands first. < 1314993492 818631 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :help < 1314993501 572826 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: o < 1314993505 70164 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i thought about, that one, < 1314993506 878132 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and the toothbrush one too < 1314993511 511831 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but i thought it was too much like usual you... < 1314993515 654771 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :heh :P < 1314993531 456930 :Slereah!x@ANantes-259-1-255-27.w83-195.abo.wanadoo.fr JOIN :#esoteric < 1314993589 589115 :GuestIceKovu!x@ANantes-259-1-253-100.w83-195.abo.wanadoo.fr QUIT :Ping timeout: 276 seconds < 1314993850 587061 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :is CakeProphet still idle < 1314993868 695613 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : > let permuts = permutations "baby" in (length . nub $ permuts) == (length permuts) < 1314993895 506816 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :because i could tell him that is True for a finite list iff it has no duplicate elements < 1314993955 39386 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and also that compiling to ghc core may be awkward because there is no easy way to compile _from_ it < 1314993961 414463 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that is probably his intention, no? < 1314993972 28907 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :what is < 1314993975 463228 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : because i could tell him that is True for a finite list iff it has no duplicate elements < 1314993992 651988 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and whatever he's doing, if he's planning on compiling to ghc core: ha ha ha ha ha ha ha < 1314994012 273294 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :03:41:25: zzo38: because it is really crappy. < 1314994014 354367 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hint is not really crappy. < 1314994033 38189 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i have for a few months now since i discovered the reflection package thought that it _really_ needs to be written in core. < 1314994053 724001 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :with the new ghc plugins, maybe it would even be plausible to achieve < 1314994079 663072 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hmm, what would it do as core? < 1314994139 950373 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :...create a typeclass dictionary _directly_ rather than via ridiculously convoluted whatchamacallit in the type system < 1314994156 727450 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: I am 99 percent sure the limiation of hint there is a limitation in _GHC_, not in hint. < 1314994170 202320 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(whatchamacallit represents a simple word which my brain refuses to remember) < 1314994173 162264 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You could make a symlink to an FD and try and load that. < 1314994188 922187 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: coercion? casting? < 1314994200 279646 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no, much worse < 1314994205 583681 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: unsafeness? < 1314994222 627459 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: but I didn't know Core could create typeclass dictionaries. Hey, I wonder if reflection's implementation solves the problem I had with my hack? < 1314994236 622240 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :those are not _inefficient_ per se. what it does is ridiculously roundabout. < 1314994254 516142 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: (did you see that hack?) < 1314994261 462134 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(I'm convinced I could make it work reliably somehow...) < 1314994265 744917 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: well i'm _assuming_ core must be able to, since haskell sometimes requires generating them on the fly < 1314994280 488110 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :e.g. with polymorphic recursion < 1314994283 896091 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :um it does? surely not report Haskell, iirc with report Haskell typeclasses can be eliminated at runtime entirely < 1314994298 448316 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I know they can't with GHC, but I'd be surprised if they needed to be _created_ at runtime < 1314994300 656022 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no they cannot, not when there is polymorphic recursion < 1314994301 405929 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :rather than just passed around < 1314994308 27320 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: can you do polymorphic recursion in report haskell? < 1314994323 118006 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yes. you just need an explicit type declaration < 1314994329 98868 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok then < 1314994334 534758 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: (http://hpaste.org/50760 is the hack I am referring to) < 1314994337 333288 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the main function works if you do < 1314994340 238259 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :main = a >> b < 1314994343 255144 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :where a and b are the two statements there < 1314994369 552942 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the idea, if that worked, was to define some TH stuff to define the GADT for an arbitrary specified class, and the functions < 1314994395 334582 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I think it could also let you create dictionaries at runtime, actually < 1314994406 813361 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if a class contains (a :: T) and (b :: S), then you need < 1314994413 677334 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :erm, and has type parameter t < 1314994415 773078 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then you need < 1314994425 676719 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :newtype Runtime = Runtime { value :: t, _a :: T, _b :: S } < 1314994440 580193 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance Runtime where a = _a; b = _b < 1314994443 317116 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm with some things to unwrap the value < 1314994453 680241 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess it might not be doable exactly like that but I think you can achieve it in general < 1314994459 394099 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :anyway, it's a cool hack :P < 1314994479 906196 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: well reflection is stronger since it generates a dictionary containing an actual _value_ in it < 1314994498 668959 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :stronger than unsafeCoerce? :P < 1314994509 680966 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yes. < 1314994517 169627 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well, possibly. < 1314994530 704088 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I think I could achieve the same thing, really, with a combination of that runtime method plus unsafeCastD, but maybe I'm wrong < 1314994538 702368 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ShowD a is basically a reification of the show dictionary there, after all < 1314994560 27593 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and I believe you can define < 1314994568 568863 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ExplicitShow -> ShowD, ShowD -> ExplicitShow < 1314994571 770952 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :where ExplicitShow is < 1314994582 419975 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :erm, add type parameters there < 1314994586 15609 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data ExplicitShow a = ExplicitShow { explicit_show :: a -> String } < 1314994599 210372 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which is all you need to do generate an instance at runtime. < 1314994610 279522 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so the only problem is that mine breaks if you don't separate out each relevant statement :D < 1314994613 229677 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I think I need to twiddle with the inliner < 1314994624 348016 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I wish core wasn't so damn hard to read < 1314994636 157150 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :huh, it is actually doing some inlining here < 1314994653 24281 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :litD :: ShowD String < 1314994653 183977 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :litD = unsafeCastD (ShowD :: ShowD Lit) < 1314994659 68584 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :does that actually _work_? < 1314994673 803973 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yes. read the comment: it works in GHCi < 1314994675 857099 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and if you change main to < 1314994678 814872 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :main :: IO () < 1314994679 51819 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :main = a >> b < 1314994679 211632 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :a = print "Hello, world!" < 1314994679 211811 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :b = withInstance litD $ print "Hello, world!" < 1314994680 667579 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that works too < 1314994691 139174 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(it isn't really a GHCi problem, more a global-vs-subexpression problem, I think) < 1314994702 613809 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :because the do statement that is main has the incorrect behaviour in ghci too. < 1314994717 530551 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: but yes, it works, proving that ShowD is a bona-fide dictionary at runtime < 1314994734 639341 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and ofc newtypes have identical representation, so the Lit instance is "another" Show instance for String < 1314994822 143711 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i vaguely recall implicit parameters supposedly have similar problems in some uses < 1314994830 683187 :ralc!~ralc@79.142.230.243.static.knet.bolignet.dk QUIT :Ping timeout: 260 seconds < 1314994883 916625 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you mean implementation difficulties or actual runtime bugs? < 1314994886 776761 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and they are of course the closest thing ghc has to a _supported_ runtime value-wrapping dictionary < 1314994919 578149 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i think i mean unintuitive differences between expressions that _should_ behave the same < 1314994957 815893 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1314994965 62399 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I read in the manual about how adding a type signature can change the result < 1314994968 920225 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which is gross < 1314995019 720560 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: anyway your ShowD still doesn't allow you to wrap a runtime-constructed value into a dictionary, i think. you can replace a dictionary with a different one, but it still must be compile-time defined. < 1314995044 635385 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :reflection gets around that by essentially defining _all_ necessary dictionaries at compile-time < 1314995072 133524 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and using type system calculations to choose the right one < 1314995083 325880 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Reflection? < 1314995087 953124 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :As in Data.Reflection? < 1314995089 235600 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um no, I _told_ you you can explicitly do it at runtime < 1314995095 303979 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Sgeo: a hackage package < 1314995096 45871 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : and I believe you can define < 1314995096 206227 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ExplicitShow -> ShowD, ShowD -> ExplicitShow < 1314995096 206419 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : where ExplicitShow is < 1314995096 206522 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : erm, add type parameters there < 1314995096 206625 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : data ExplicitShow a = ExplicitShow { explicit_show :: a -> String } < 1314995169 107118 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it probably requires lots of unsafeCoerce to do, but I believe it's perfectly possible < 1314995185 540379 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: you figure that out then >:) < 1314995212 626381 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :maybe one could do a more efficient implementation of reflection that way, then < 1314995240 703393 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm, it's certainly rather tricky :) but I _think_ it's possible < 1314995248 498776 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it might have to be < 1314995254 468872 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ExplicitShow a -> ShowD (Wrapper a) < 1314995261 383806 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: would that still lead to an efficient reflection? < 1314995269 763020 :sllide!~jari@ip565eb113.direct-adsl.nl JOIN :#esoteric < 1314995295 628363 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hm I suppose not, that's a rather obvious instance after all < 1314995296 417778 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but maybe < 1314995309 379802 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I suppose I should ask what the runtime representation of dictionaries is like? < 1314995463 888048 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i suppose it would be obvious from the core, i haven't tried testing it < 1314995489 225335 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :nothing is obvious from Core :) < 1314995523 219585 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also a polymorphic recursion case to show how values or at least subdictionaries are put into them < 1314995531 991446 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan see he core. he has the power. < 1314995564 578370 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :data Tree a = Leaf a | Tree (a,a) deriving Show would be a good example, i think < 1314995571 605591 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I found in some foot-shooting list they added how to shoot your foot with Haskell: Make a copy of the entire universe except your foot has a hole. < 1314995614 164443 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: heh < 1314995656 718332 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that might be FullBinaryTree, technically < 1314995715 279968 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: ^ that should be an example of a Show instance that requires generating new Show instances internally < 1314995728 796910 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I believe you typo'd < 1314995732 687072 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what you have there is not a tree. < 1314995748 443336 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: that might be FullBinaryTree, technically < 1314995760 746920 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :um no, I believe you've made a _big_ mistake. < 1314995764 222222 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what you have is Either a (a,a). < 1314995772 846100 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :...ah. < 1314995791 24815 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*data Tree a = Leaf a | Tree (Tree (a,a)) < 1314995795 898834 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that makes more sense :) < 1314995806 208649 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I might look at the show instance for that, but anything with constructors is really hideous in core < 1314995886 166123 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: maybe the function showLeaf (Leaf a) = show a; showLeaf (Tree t) = showLeaf t might be cleaner? < 1314995901 38644 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hmm, yes, probably < 1314995909 706813 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'll try that < 1314995982 941125 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: heh, either the dictionary gets inlined somehow, or ghc-core is hiding it from me >_< < 1314995992 233253 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ouch < 1314996029 222314 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :maybe i'm wrong about the construction-on-the-fly then, although how could that be... < 1314996034 887998 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: http://hpaste.org/50901 < 1314996051 355202 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's obviously taking in a show instance < 1314996052 954141 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :($dShow_aiO) < 1314996058 448335 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but it just passes it onto show < 1314996061 783674 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it doesn't need to construct anything < 1314996073 483064 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it does a worker/wrapper transform by the looks of it so that $dShow_aiO is only passed in once rather than on recursion < 1314996078 97808 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :lvl_sjs being the worker < 1314996079 781198 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net JOIN :#esoteric < 1314996176 466849 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: no, a_sjx is a constructed Show instance < 1314996196 824441 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh < 1314996204 910239 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :$fShow(,) is ShowD a -> ShowD b -> ShowD (a,b)? < 1314996207 50743 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :approximately < 1314996220 767295 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :probably < 1314996223 58612 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: sounds like I need to define my own tuple type to see what $fShow(,) looks like < 1314996241 114309 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm, right < 1314996281 481034 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: aha < 1314996320 761333 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm? < 1314996345 675190 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: http://hpaste.org/50902 < 1314996354 233681 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I suspect this more be readable without the -O2 I gave it < 1314996426 581460 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yeah I have no idea what that is saying. < 1314996439 332391 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh hm < 1314996445 67429 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I should define my own that uses show rather than showsPrec < 1314996487 380693 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :are these instances of show? < 1314996487 541012 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that might be easier to read yeah < 1314996493 823267 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: yes < 1314996512 565493 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :M.$fShowTuple [InlPrag=[ALWAYS] CONLIKE] < 1314996512 725511 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : :: forall a_abQ b_abR. < 1314996512 725771 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (Show a_abQ, Show b_abR) => < 1314996512 725877 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Show (M.Tuple a_abQ b_abR) < 1314996512 726013 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[GblId[DFunId], < 1314996514 627618 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Arity=2, < 1314996515 495985 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :M. = method? < 1314996516 516455 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Unf=DFun(arity=4) D:Show [{M.$fShowTuple_$cshowsPrec}, < 1314996518 646537 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : {M.$fShowTuple_$cshow}, {M.$fShowTuple_$cshowList}]] < 1314996520 517772 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :M.$fShowTuple = < 1314996522 577575 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : \ (@ a_abQ) < 1314996524 491007 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: btw this is somewhat vaguely descended from your question about compiling to core < 1314996524 651048 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (@ b_abR) < 1314996525 318578 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :$ = perl? :P < 1314996526 640352 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ($dShow_afR :: Show a_abQ) < 1314996528 561586 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ($dShow1_afS :: Show b_abR) -> < 1314996530 709787 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : D:Show < 1314996531 582035 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: ah I see. < 1314996532 613313 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : @ (M.Tuple a_abQ b_abR) < 1314996534 505334 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (M.$fShowTuple_$cshowsPrec @ a_abQ @ b_abR $dShow_afR $dShow1_afS) < 1314996536 496477 :elliott!~elliott@unaffiliated/elliott PART #esoteric :"Leaving" < 1314996540 538231 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1314996543 564049 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes I was wondering if I could utilize Haskell bindings if I had a language that compiled to Core. < 1314996544 516425 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (M.$fShowTuple_$cshowList @ a_abQ @ b_abR $dShow_afR $dShow1_afS) < 1314996546 490820 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :flood but w/e < 1314996548 507083 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: M is my module obviously < 1314996549 919912 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: my comment to which is that ghc makes it very awkward if at all possible to compile _from_ core < 1314996550 677585 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: there you go, that's what they look like in Core < 1314996552 505510 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok let's try that again < 1314996554 647317 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: core cannot be compiled < 1314996560 438399 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's not possible < 1314996562 729237 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :there is no parser < 1314996585 594939 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: http://hpaste.org/raw/50903 < 1314996585 927570 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :none of the other ILs too I imagine? < 1314996594 155954 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that's what the instance constructor looks like < 1314996604 824512 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: Cmm has a parser; in fact part of the RTS is written in Cmm < 1314996622 969021 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: Agda compiles to Haskell with a lot of unsafeCoerces < 1314996629 363518 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(for "performance") < 1314996632 957644 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(it's still slow) < 1314996657 4698 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so then I would use Cmm as my target and hope that at that level there's still interfacable bindings. < 1314996677 508437 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: anyway, I suppose this just begs the question of what D:Show looks like < 1314996701 377115 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: it won't work well. < 1314996719 166082 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Haskell.NET < 1314996766 177259 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it would be nice if they redesigned the ILs to support other languages using Haskells awesome libraries for awesome things. < 1314996766 477736 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: there is however last (well, the only time) i checked in the ghc API a _very_ rudimentary function for compiling a single module from the _internal_ core representation < 1314996790 84198 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but it has a comment to the effect it has only been tested for that case < 1314996800 396147 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh good. < 1314996813 154067 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(well had, there's a new ghc version out so things might have improved for all i know) < 1314996819 514098 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*may < 1314996819 988035 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :sounds like a good basis to build a compiler on. < 1314997004 809885 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i suppose D:Show is the constructor for a Show dictionary, which is just passed the methods? also i assume you have the code for M.$fShowTuple_$cshowsPrec etc. in your full output. < 1314997026 29876 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :essentially any kind of language I build on top of Haskell's environment would be more or less a set of extensions. < 1314997037 138647 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but enough to warrant a new language/dialect < 1314997046 125006 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh hey, I could always compile to Haskell. < 1314997065 387718 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I do have the code but it's boring. Yes, D:Show is the dictionary constructor, which I bet isn't given any real "definition" in Core, but I can define my own class to check. < 1314997118 234432 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: why wouldn't it have a definition, i assume Show is a completely ordinary class if you ignore derivations... < 1314997141 386145 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it probably is in whatever module defines Show < 1314997167 894096 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yes, but D: _is_ the class < 1314997179 908221 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but OK, I'll define my own class to see < 1314997208 341952 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yep, at least with ghc-core, D:Aah isn't created < 1314997209 131794 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :just < 1314997213 217821 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :M.ooh [InlPrag=[NEVER]] :: forall a_abI. M.Ooh a_abI => a_abI < 1314997213 383790 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[GblId[ClassOp], < 1314997213 544069 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Arity=1, < 1314997213 544279 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Unf=Unf{Src=, TopLvl=True, Arity=1, Value=True, < 1314997213 544393 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ConLike=True, Cheap=True, Expandable=True, < 1314997213 736417 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)}, < 1314997215 512405 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : RULES: Built in rule for M.ooh: "Class op ooh"] < 1314997217 489845 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :M.ooh = < 1314997219 469476 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : \ (@ a_abI) (tpl_B1 [Occ=Once!] :: M.Ooh a_abI) -> < 1314997221 478455 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case tpl_B1 of _ { M.D:Ooh tpl_B2 [Occ=Once] _ -> tpl_B2 } < 1314997223 516865 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and the same for my other method aah < 1314997228 390722 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I suspect D:Ooh is "defined" at some other level < 1314997275 489525 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :a magical land deep below Core < 1314997280 801041 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: there is also the new ghc plugin system in the latest version, which i assume does core to core transformations < 1314997290 995534 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: just checked with -ddump-simpl < 1314997296 506928 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if D:Ooh is defined in core, it's sure not printed by GHC < 1314997306 796221 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I suspect, instead, the typeclass info goes into the .hi < 1314997316 901496 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ah < 1314997321 147834 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and then the actual Cmm or whatever for the class constructor is constructed on the fly < 1314997341 254460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: otoh, from the way pattern-matching and the like is used in it, I have this _wonderful_ feeling that it might look like a regular data type < 1314997341 794080 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. < 1314997348 786055 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class Ooh a where { ooh :: a; aah :: a -> () } < 1314997350 163070 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :might look like < 1314997356 987187 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data Ooh a = Ooh { ooh :: a, aah :: a -> () } < 1314997357 958427 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :at runtime < 1314997374 185787 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :...otherwise "case" has special behaviour when you use something prefixed with D: < 1314997375 501684 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which is gross < 1314997386 68706 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: well afaiu core's System F has no concept of classes and instances, so it should be that way < 1314997390 487738 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: ewwwww < 1314997404 101844 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: What? < 1314997407 360242 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: indeed < 1314997409 587207 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :gross. < 1314997411 620304 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: but I mean, it could be unboxed ors omething < 1314997419 937904 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: what is? < 1314997432 901359 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :special cases of case. < 1314997441 818374 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: the one thing istr reading is that dictionaries are always unboxed as a whole < 1314997446 562167 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: it was just a hypothesis < 1314997471 738169 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm well I wish I knew how Core parameter lists worked, because normal parameters seem to be prefixed with @ like (@ a) but the typeclasses aren't < 1314997485 739091 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess it might mean unboxed < 1314997502 796184 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: um @ signifies a _type_ parameter, not a value, iiuc < 1314997506 164495 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh < 1314997511 27729 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that makes more sense :) < 1314997516 644593 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: but modulo unboxing, I suspect you can simply define the equivalent (existential) data type for a class and have it be coercable directly to the dictionary type < 1314997527 779217 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :system F works that way with explicit type arguments < 1314997537 675732 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ooh, if ShowD looks like (ShowD UnboxedDictionary), then it's boxed < 1314997551 55856 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: and so an explicitly-defined record should have the same runtime representation as ShowD < 1314997553 373391 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and be coercable directly < 1314997583 324588 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: maybe. but that still leaves the question of getting any runtime value _into_ a dictionary < 1314997584 171278 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it is defined by a huge table of which pairs of types results in what. < 1314997589 518625 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er what < 1314997596 304104 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :wrong paste :P < 1314997603 952614 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://hackage.haskell.org/trac/ghc/browser/compiler/supercompile/Supercompile/Core/Syntax.hs?rev=5a142af2955f7cda76c2e63104e7672044cffaa2 < 1314997614 891949 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is this helpful? I'm guessing it's Core syntax stuff < 1314997622 270543 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(which in my understanding is the sticking point which makes all of reflection's hoops necessary) < 1314997625 51805 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: not... really < 1314997640 698059 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I'm still not sure what you _mean_ by that < 1314997641 653673 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if you have < 1314997659 635370 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data ExplicitShow a = ExplicitShow { show :: a -> String, shows :: blah blah, showsPrec :: blah blah, showList :: blah blah } < 1314997671 161782 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and ExplicitShow a -> ShowD a (and assuming ShowD and withInstance work properly) < 1314997685 590460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then how does that not let you put any runtime value in you want? < 1314997687 269697 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :http://research.microsoft.com/en-us/um/people/simonpj/papers/ext-f/fc-tldi.pdf < 1314997754 211378 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :doesn't seem to mention the @ so I guess it's not an exact replica of what GHC uses. < 1314997865 64476 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: oh you are assuming dictionaries have the exact same representation as an ordinary record. yeah i guess if you could do that... < 1314997884 41694 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(you probably want to at least use seq on that record first) < 1314997886 328688 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: well they are eliminated with "case" in core in the _exact same way_ data-types are. < 1314997931 641814 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: so either case changes behaviour based on something totally gross like whether the name is a class dictionary, or it's equivalent to a data-type, modulo strictness and unboxing < 1314997946 705265 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: the CONLIKE pragma, does it mean that the function result is always a strict constructor? < 1314997955 517458 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :strictness can be controlled, and since my ShowD introduces an additional layer, if dictionaries are unboxed than ExplicitShow should have the exact same representation as ShowD < 1314997963 52703 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: no, that's an inlining thing < 1314997970 829166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CONLIKE means it's safe to duplicate a call at very low cost < 1314997973 446120 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :istr seeing it before but have forgotten < 1314997975 725234 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(this is in the manual) < 1314997977 351378 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ok < 1314997979 382091 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's useful for rules < 1314997994 757484 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@a is apparently a "type argument" < 1314997995 250196 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v < 1314998017 484506 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: yes, that's what oerjan told me right after I asked :P < 1314998081 878766 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>_> < 1314998093 404239 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: well since core is supposed to be extremely simple they probably haven't made a distinction unless it's absolutely necessary < 1314998108 172859 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: indeed. so they should, in fact, have the exact same representation < 1314998110 190305 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(between data and dictionary) < 1314998114 685315 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?src Show < 1314998115 110493 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :class Show a where < 1314998115 272552 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : showsPrec :: Int -> a -> ShowS < 1314998115 272717 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : show :: a -> String < 1314998115 272821 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : showList :: [a] -> ShowS < 1314998124 214544 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm, I hope that ordering is authoritative < 1314998135 214920 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :seems to be the same in ghci so that's good < 1314998154 362426 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :why would ordering matter are you doing something icky :( < 1314998168 664842 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: yes < 1314998173 14706 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::( < 1314998185 433138 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: it's the same as in the core you pasted < 1314998190 25407 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: heh, thanks :P < 1314998203 392991 :augur!~augur@129.2.129.33 QUIT :Remote host closed the connection < 1314998251 358532 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :monqy: he is going to use unsafeCoerce to convert a record into a class instance :P < 1314998275 814862 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm I suspect the fields are _not_ strict < 1314998277 96809 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you can do < 1314998282 676482 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance Show Blah where show = error "x" < 1314998287 474073 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and it works fine until you call show < 1314998291 197259 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: indeed < 1314998298 11929 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so it's just the record itself that's strict < 1314998328 327810 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and the report afair says that undefined methods are treated as, well, undefined < 1314998355 973745 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(i think i recently saw that ghc has a specific exception for those though) < 1314998358 89792 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it works < 1314998361 550935 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :dear god, it works < 1314998385 435764 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> b < 1314998385 595696 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*** Exception: help < 1314998389 713328 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :explicit_lit :: ExplicitShow String < 1314998389 879958 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :explicit_lit = ExplicitShow < 1314998390 39859 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : { explicit_showsPrec = error "help" < 1314998390 40098 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , explicit_show = \s -> s < 1314998390 40225 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , explicit_showList = error "helpList" } < 1314998391 814065 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> "*MW" ++ cycle "AH" < 1314998393 483044 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "*MWAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA... < 1314998407 477749 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :er, hm. < 1314998411 109213 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but why is it using the showList case? < 1314998426 826592 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess I should try something that isn't a list type first < 1314998432 944723 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you mean showsPrec? < 1314998446 92789 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh < 1314998447 134886 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :duh :) < 1314998457 324744 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?src show < 1314998457 950229 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :show x = shows x "" < 1314998458 613464 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?src showList < 1314998459 298655 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. It can only be attributed to human error. < 1314998462 925471 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :>:| < 1314998496 25569 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> b < 1314998496 226396 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :: internal error: PAP object entered! < 1314998496 386755 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (GHC version 7.0.4 for x86_64_unknown_linux) < 1314998496 386937 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug < 1314998496 387041 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Process haskell aborted < 1314998498 919873 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it could be worse < 1314998502 261814 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok, so function members don't work. < 1314998507 44770 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"enter" is unsafeCoerce jargon I know. < 1314998508 184644 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :::::D < 1314998515 678047 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: maybe function fields do have to be strict, or something... < 1314998534 224922 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :indeed, error "x" works but \_ -> error "x" doesn't < 1314998543 53158 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :clearly this is a question for #haskell-in-depth < 1314998557 454440 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: insane idea: you might want to convert a Show dictionary _to_ your type so you can use the usual showsPrec and showList from it < 1314998580 687063 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that is indeed insane. < 1314998598 924373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: I'm asking #ghc < 1314998611 79966 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :see elliott get banned from #ghc for life < 1314998611 823602 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :probably a better place to ask. < 1314998615 896930 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that would be useful, yes < 1314998623 293887 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and might help me find out what the difference in representation is < 1314998629 945351 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION is currently waiting for the banhammer < 1314998641 860216 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is the excitement in #ghc now < 1314998646 310214 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no < 1314998654 394109 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> explicit_show (implicit (ShowD :: ShowD String)) "abc" < 1314998654 563836 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :" < 1314998654 724238 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Process haskell segmentation fault < 1314998655 490202 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ah. < 1314998659 607979 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :#esoteric is always the root of the party. < 1314998670 958871 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok I should probably try a class that contains some innocuous value rather than a function. < 1314998671 117443 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, idea for elliottcraft: http://www.youtube.com/watch?v=ZXxDnx_UE6I (yogscast) < 1314998739 876861 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, watch it! < 1314998741 601347 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :looks nice < 1314998749 469219 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :yep < 1314998755 870116 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :not sure it fits in stylistically < 1314998791 90187 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, no, but you could do a game like it that was high def in other places too. I think it could work fairly well, and would also avoid "yet another minecraft clone" feel < 1314998804 395089 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't want it to look like the real world, at least < 1314998809 52173 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that boat sure is hd < 1314998845 312243 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :go underwater dammit < 1314998866 166023 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, he doesn't in the video sadly < 1314998886 71986 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, I will probably try out that mod tomorrow < 1314998903 142168 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :should run fine on my high end gpu < 1314998910 935207 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : indeed, error "x" works but \_ -> error "x" doesn't <-- so this is the same as that difference between data and function for unsafeCoerce, right? < 1314998915 845566 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :do the squisd like it < 1314998925 161251 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :no idea < 1314998933 105171 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I suspect so; I wonder if unsafeCoerce (error "x" :: Int) :: function type works the same way? < 1314998934 976773 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I suspect it might < 1314998937 8503 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :except the ohter way around < 1314998942 113442 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, also I think that mod needs a HD texture pack to not be too jarring < 1314998950 635841 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION tries strictifying for the hell of it < 1314998985 317120 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, I'd also like to see waterfalls < 1314998987 816566 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: wat, now it uses show instead of showsPrec < 1314998994 384551 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, I think that's correct < 1314998996 811008 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :print should invoke show, after all < 1314999002 389122 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> explicit_show (implicit (ShowD :: ShowD String)) "abc" < 1314999002 632122 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :" < 1314999002 791915 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Process haskell segmentation fault < 1314999006 367466 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :haksel :( < 1314999018 167306 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what, then changing show to < 1314999020 445579 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :\_ -> error "help show" < 1314999022 775098 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :causes showList to be called < 1314999026 92765 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : Process haskell segmentation fault <-- how? < 1314999026 869372 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh duh < 1314999027 192721 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: um shouldn't you have an argument for the actual value _printed_? < 1314999029 731631 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :because < 1314999033 726645 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :strict fields < 1314999034 110167 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :duh < 1314999038 405739 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: it's not hard < 1314999043 62308 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> b < 1314999043 222527 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :: internal error: PAP object entered! < 1314999043 222729 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (GHC version 7.0.4 for x86_64_unknown_linux) < 1314999043 222843 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug < 1314999043 222947 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Process haskell aborted < 1314999046 499275 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok that is definitely not better. < 1314999049 536314 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, using some language extension? < 1314999055 174525 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: unsafecoerce < 1314999057 425503 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :ah < 1314999066 243801 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :well okay, no wonder it crashes < 1314999066 841857 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: it looks to me like your explicit_show has one argument missing < 1314999074 676179 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Warning: Ignoring unusable UNPACK pragma on the < 1314999074 921837 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : third argument of `ExplicitShow' < 1314999081 782704 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :guess you can't unpack functions < 1314999085 299026 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , explicit_show :: {-# UNPACK #-} !(a -> String) < 1314999085 987633 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: no? < 1314999089 101951 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the implementation did < 1314999091 712212 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but that's before i strictified < 1314999097 738745 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: if you mean i missed out the argument, duh < 1314999098 676719 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you can say < 1314999100 607755 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :show = error "foo" < 1314999101 79229 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :too < 1314999111 969352 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well yes < 1314999112 608718 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but hmm < 1314999129 347644 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok i suspect the function representation is different, then. < 1314999130 752498 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but if it doesn't error, it needs to be a function? < 1314999134 249929 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i am not sure _how_. < 1314999167 375403 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: what does that M.$fShowTuple_$cshow you didn't paste before look like? < 1314999194 966537 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um, like you'd expect it to? do you want me to run it again < 1314999226 532313 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's just that it's what's put in the dictionary < 1314999228 173957 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :M.$w$cshow < 1314999228 333941 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : :: forall a_abJ b_abK. < 1314999228 334158 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (Show a_abJ, Show b_abK) => < 1314999228 334263 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : a_abJ -> b_abK -> [Char] < 1314999228 334365 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[GblId, < 1314999228 746463 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Arity=4, < 1314999230 855158 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Unf=Unf{Src=, TopLvl=True, Arity=4, Value=True, < 1314999232 764106 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ConLike=True, Cheap=True, Expandable=True, < 1314999234 829060 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Guidance=IF_ARGS [3 3 0 0] 14 3}] < 1314999236 594453 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :M.$w$cshow = < 1314999238 700310 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : \ (@ a_abJ) < 1314999240 666916 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (@ b_abK) < 1314999244 674864 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (w_sio :: Show a_abJ) < 1314999246 889846 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (w1_sip :: Show b_abK) < 1314999248 660769 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (ww_sis :: a_abJ) < 1314999250 713890 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (ww1_sit :: b_abK) -> < 1314999252 682801 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : : < 1314999253 856191 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :how long is this? < 1314999254 830396 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : @ Char < 1314999256 669698 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : M.$fShowTuple4 < 1314999258 845177 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (++ < 1314999260 657911 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : @ Char < 1314999262 488631 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[boring stuff] < 1314999264 673936 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's for < 1314999266 724786 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance (Show a, Show b) => Show (Tuple a b) where < 1314999267 987033 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :pastebin might have taken less time to paste < 1314999268 913083 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : show (Tuple a b) = "X" ++ show a ++ "Y" ++ show b ++ "Z" < 1314999270 838913 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh hm < 1314999274 714304 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's not M.$fShowTuple_$cshow < 1314999276 755209 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: http://sprunge.us/fLTc < 1314999433 166630 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: found the discrepancy yet? :-P < 1314999450 934401 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :erm no < 1314999457 806124 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION got into a debate on the difference between setting attributes to None vs. using getattr and setattr to check for undefined attributes in objects that may or may not have a large number of attributes defined. < 1314999462 41887 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in #python < 1314999482 123107 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :my stance was that it made no difference. and there's what that checking for attribute existence is /bad style. < 1314999487 431845 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the former is obviously the correct solution. < 1314999491 511354 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the other one is horrible. < 1314999493 812880 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :... < 1314999502 118682 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if you disagree, you are wrong. (this is true independent of language.) < 1314999524 772418 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I say it makes no difference and amounts to almost the same code. < 1314999559 782634 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yes, you have repeatedly shown a lack of understanding of possible vs. a good idea < 1314999592 680122 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no difference. same amount of code. < 1314999617 456704 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :actually more in the case of None because you have to set all of the attributes to None. < 1314999636 472414 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :lines of code is not the only way to measure code. < 1314999641 502827 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :correct you are. < 1314999649 35168 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but it _is_ revealing that you are using it that way. < 1314999684 919389 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is hasattr(self, "attr") or getattr(self, "attr", default) objectively worse than self.attr is None and self.attr if self.attr is None else default? < 1314999700 805872 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or is it just a stylistic preference? < 1314999701 311140 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yep < 1314999704 942742 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :objectively worse < 1314999714 66339 :Nisstyre!~yours@infocalypse-net.info QUIT :Quit: Leaving < 1314999747 113728 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: my hunch is that if that error happens when functions and data types are confused, then something _must_ be applied to the wrong number of arguments somewhere < 1314999771 213315 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I have a feeling that classes contain multiple argument functions < 1314999773 878609 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :im agre with elliott < 1314999774 409354 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :same code. in the same place. to the same effect. I don't see the difference other "oh no this one uses strings literals". < 1314999778 700190 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: or something < 1314999781 622828 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm ,ayme bt not < 1314999783 135236 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :*other than < 1314999798 277476 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: sorry, I doubt I could explain it to you because of your incorrect perspective. < 1314999807 474184 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: but a method can be any haskell value can it not < 1314999826 118564 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: doesn't stop ghc treating them specially < 1314999830 823043 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok did you actually look at that core? i fnot i will < 1314999841 952122 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :say if you put trace on one like trace "mumble" $ \x -> ... wouldn't that trace have to be applied only once < 1314999861 731459 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and even if you just seq the method < 1314999864 630504 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i don't think there's any guarantees about thta < 1314999869 899986 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :trace is unsafe < 1314999877 254975 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ok not guarantee but most likely < 1314999887 17353 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ok did you actually look at that core? i fnot i will < 1314999894 476513 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i guess my seq comment is what i really mean < 1314999913 890235 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i don't know what i'm comparing _to_ :P < 1314999921 796878 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um what i pasted above < 1314999927 828959 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is the actual M.$w$cshow implementation < 1314999953 429500 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :which is put in a record? < 1314999966 456016 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :um, no, this is the old testcase you asked about. < 1314999977 707246 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :do you want me to define an equivalent function at top level and show that? < 1314999983 484049 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I agree it makes sense when there's only a small number of attributes to set to None. but the context was for a game in which the object could easily have large numbers of attributes undefined. < 1314999990 371581 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yes. but now i don't know what the things in the records look like :P < 1314999993 652338 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: sorry, uninterested. < 1315000001 980162 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: gimme a minute < 1315000069 58709 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :http://sprunge.us/cDPR < 1315000079 890058 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ah. < 1315000219 773712 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: btw are you making sure to evaluate your record before unsafeCoerce'ing it? < 1315000227 147211 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: with seq, yes. < 1315000248 145945 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Is this program the Obfuscated Haskell Contest program? Not quite. < 1315000256 37139 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm might strictness analysis mess that up somehow? < 1315000279 720578 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :turning off -O removes strictness analysis right? < 1315000302 210317 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :some tasks require more performance than others. if the data set is large such as hex editing a 1gb file or doing batch processing then performance will matter more and more. or some programs such as "some" video games or emulators will seek to maximize performance. < 1315000308 928860 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i mean, if ghc doesn't think that unsafeCoerce can change whether something is strict, that might mess things up < 1315000336 945427 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au PRIVMSG #esoteric :And with multitasking apps will want each other to be polite guests < 1315000361 110553 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm < 1315000365 499035 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what do you mean? < 1315000372 184426 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh i think i might need pseq instead of seq to be sure < 1315000383 897853 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: ah right that might work < 1315000452 557325 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i mean, it might detect that the seq is redundant in something like x `seq` unsafeCoerce x, but be wrong because x is put into a dictionary on the converted side < 1315000458 845747 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :er < 1315000488 333801 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: well pseq did not help. < 1315000489 379273 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :* x `seq` unsafeCoerce (YourStrictRecord x) < 1315000503 636209 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :explicit :: ExplicitShow a -> ShowD a < 1315000503 838909 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :explicit a = a `pseq` unsafeCoerce a < 1315000513 524669 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no seqing of the fields is done; that's surely incorrect to do < 1315000538 859704 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: seq one of the fields you don't use, for good measure :P < 1315000539 744782 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Does the program I posted work? < 1315000549 484760 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Improve it if you like to do so < 1315000553 685409 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :in fact if possible _print_ it IO < 1315000566 847006 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :then ghc cannot possibly get around evaluating it first < 1315000572 575961 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*in IO < 1315000575 161516 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um I have no idea what you are talking about, do you mean for the conversion the other way around? < 1315000591 82600 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :explicit_lit :: ExplicitShow String < 1315000591 242725 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :explicit_lit = ExplicitShow < 1315000591 242903 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : { explicit_showsPrec = \_ -> error "help" -- \_ s t -> s ++ t < 1315000591 243068 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , explicit_show = \_ -> error "help show" < 1315000591 243176 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , explicit_showList = \_ -> error "help showList" } < 1315000594 399437 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :how will printing any of these help at all? < 1315000629 726568 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: er they are _all_ error? i guess that's not useful to print. you might apply and catch. < 1315000674 78127 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i'm just suggesting making as absolutely sure as you can that ghc doesn't convince itself that it can avoid evaluating the record before converting it < 1315000686 72875 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I could just look at the core rather than relying on voodoo. < 1315000691 850777 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or that :P < 1315000723 546319 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: it's just that the one thing i _do_ recall about ghc's class dictionaries is that ghc assumes they are strict < 1315000744 690914 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so a value containing them will not have them evaluated before use < 1315000759 592735 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: the fact that I get the errors properly if I do (error "foo") rather than (\_ -> error "foo") seems to prove I'm doing it right. < 1315000762 821333 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :or it'd just segfault or whatever. < 1315000765 331007 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if it was lazy < 1315000768 223034 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: ok < 1315000774 88833 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :main3 = < 1315000774 248769 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : lazy < 1315000774 248953 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : @ (ShowD String) < 1315000774 249061 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (main4 < 1315000774 249164 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : `cast` (CoUnsafe < 1315000774 778564 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (ExplicitShow String) (ShowD String) < 1315000776 593945 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : :: ExplicitShow String ~ ShowD String)) < 1315000778 737232 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i have no idea what's going on :D < 1315000794 325855 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :WHAT < 1315000810 152755 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :main3 lazy ShowD is my rapper name. < 1315000811 564042 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: hm maybe a class method really _must_ not be a function in that unsafeCoerce sense, then. < 1315000820 462111 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :CoUnsafe sounds good < 1315000839 396074 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: just a second, something's insane < 1315000853 704652 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :we all are < 1315000865 268176 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :_wtf._ < 1315000880 97679 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it briefly worked (producing "help show") < 1315000883 463682 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but on GHCi restart, it doesn't. < 1315000915 428864 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: unfortunately nobody is replying in the ghc chanenl :( < 1315000928 765624 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm < 1315000954 532421 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok i'm going to try the thing i was going to try < 1315001006 761624 :Necrosporus!~Necrospor@unaffiliated/necrosporus QUIT :Ping timeout: 245 seconds < 1315001010 859674 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: they've gone into hiding. btw what happens if you have a method whose type is _not_ a function? < 1315001022 886509 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i.e. an actual data type < 1315001034 598408 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I was going to try that next, but I'm going to figure this out first < 1315001043 449961 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :food -> < 1315001052 821783 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :M.ooh' = plusInt < 1315001052 981592 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :M.$fOohInt = < 1315001052 981691 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : plusInt < 1315001052 981735 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : `cast` (sym (M.NTCo:T:Ooh Int) < 1315001052 981776 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : :: (Int -> Int -> Int) < 1315001053 809674 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ~ < 1315001055 800103 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : M.T:Ooh Int) < 1315001064 367739 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok so the core definition is identical apart from a cast < 1315001082 109575 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and I think casts are just unsafeCoerce casts plus a proof < 1315001317 834195 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :this looks pretty helpful: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Coercions < 1315001392 325406 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"The nd binding extracts the Num superclass dictionary from the C dictionary; the case expression is called a superclass selector." < 1315001401 727423 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm < 1315001410 222768 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: Show has no superclasses but maybe it has a free field for them? < 1315001420 459497 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :huh < 1315001435 568572 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm < 1315001461 975294 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: btw when you had just error ..., the correct error was raised according to which method you were trying to call? < 1315001478 276506 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yes, except when i wanted to unbox < 1315001486 463711 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which just failed horribly < 1315001548 861714 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :05:28:07: It's not possible to go to an eye doctor to preemptively ask if you just infected your eye, is it? < 1315001552 901068 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i'm blaming you for my suffering < 1315001564 144189 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :O KAY < 1315001568 144906 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :tempted to touch my eye to feel smug but i'd have a hard time making myself do that < 1315001569 190851 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric ::t Some < 1315001569 851951 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: data constructor `Some' < 1315001573 799251 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric ::t \x -> Some x < 1315001574 453583 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: data constructor `Some' < 1315001576 610039 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :ACTION ? < 1315001580 805597 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: ? < 1315001590 505425 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it helps to ask a question in english rather than just babbling invalid haskell < 1315001600 494333 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what do you think Some is? < 1315001604 699374 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Experiments. >:c < 1315001608 915250 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what do you think Some is? < 1315001618 907792 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :a -> Maybe a? < 1315001619 793221 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Isn't Some the ML equiv of Just? < 1315001622 411209 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: Just < 1315001626 639047 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Uh opps < 1315001628 560739 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Wrong language < 1315001681 398561 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I am the right language. < 1315001689 184340 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I will guide your communication. < 1315001700 45062 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :ok < 1315001722 733315 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :10:16:41: CakeProphet: MultiParamTypeClasses for Match, FlexibleInstances for that instance (because it uses 'a' twice) < 1315001726 281631 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Undecidable < 1315001728 823762 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instances, that is < 1315001733 493377 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Not needed for that alone < 1315001743 838539 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :um are you sure? maybe Overlapping then? < 1315001744 646114 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I know that < 1315001747 706481 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance (C a) => D a < 1315001748 393108 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is not ok < 1315001754 921924 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i would be surprised if the additional thing made it work < 1315001756 729534 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I am sure, I checked it < 1315001758 461012 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :overlapping sounds like the right qualifier. < 1315001761 697711 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :MPTCs + Flexible < 1315001761 857711 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1315001787 582246 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :maybe flexible in overlapping in the case that the instances... overlap < 1315001791 468664 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/in/and/ < 1315001803 837155 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :overlappinginstances implies flexibleinstances < 1315001812 721549 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah okay < 1315001834 375335 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION has never need the .*?instances extensions < 1315001879 279882 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I've needed flexible once but other than that I've just read the manual pages < 1315001885 595027 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :13:02:16: -!- Necrosporus has joined #esoteric. < 1315001885 847297 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :13:03:43: http://paste.org.ru/?lu3vtb < 1315001886 7128 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :13:03:57: Do you like it? What' sthat at your opinion? < 1315001886 196618 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hi < 1315001899 464782 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: I need flexible constantly < 1315001903 2596 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but obviously if you want to overlap you probably want to be flexible. < 1315001909 844205 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :14:21:13: That's fmap... < 1315001916 204228 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: it's the _wrong_ generalisation. < 1315001919 871990 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(.) should be (Control.Category..) < 1315001925 473607 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :map should be fmap though. < 1315001932 954504 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Control.Category didn't exist at the time IIRC < 1315001936 144172 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and (++) being Monoid is right < 1315001945 874080 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :> (P..) < 1315001946 907529 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Overlapping instances for GHC.Show.Show < 1315001947 80579 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ((b ->... < 1315001950 530548 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: < 1315001952 768436 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude is P < 1315001963 758920 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Darn < 1315001964 203060 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Why < 1315001987 850215 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Concision? It's IRC < 1315001988 613220 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :BRB < 1315001996 31367 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Why not both < 1315002039 902855 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is there anything ($) could be generalized to? < 1315002059 837903 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yes < 1315002066 638358 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :id < 1315002090 318357 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :($) :: (a -> b) -> a -> b; ($) = id < 1315002091 932364 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : tempted to touch my eye to feel smug but i'd have a hard time making myself do that <-- NORTHUMBRIAN TOUCHES EYE TO FEEL SMUG, EYE FALLS OUT < 1315002163 398030 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@hoogle m a b -> a -> b < 1315002164 124961 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Monad.Reader runReader :: Reader r a -> r -> a < 1315002164 284985 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Monad.State.Lazy evalState :: State s a -> s -> a < 1315002164 285170 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Monad.State.Strict evalState :: State s a -> s -> a < 1315002185 788794 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what < 1315002200 87897 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that is a generalization of )$_ < 1315002201 759399 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :($) < 1315002302 951754 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au JOIN :#esoteric < 1315002383 518542 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :class Whatever (~>) where ($) :: (a ~> b) -> a -> b ? < 1315002417 422873 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes. < 1315002439 578759 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yes that's the gnera;lization of which iw as thinking too < 1315002451 81840 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I would say Applicative but that is already taken. < 1315002468 114969 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :?ty app < 1315002469 319841 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (a :: * -> * -> *) b c. (ArrowApply a) => a (a b c, b) c < 1315002474 808189 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I think that's what you guys want < 1315002496 438035 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but what if I dislike arrows? < 1315002507 104886 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :?src ArrowApply < 1315002507 264857 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. :( < 1315002509 763091 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::( < 1315002521 54502 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that doesn't look like the correct type. < 1315002522 237701 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :class Arrow a => ArrowApply a where that function < 1315002523 264770 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :too many tuples. :P < 1315002545 182958 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :specifically one too many. < 1315002583 218380 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :!haskell take 20 $ Unsafe.Coerce.unsafeCoerce [1..] :: [()] < 1315002589 403221 :EgoBot!foobar@codu.org PRIVMSG #esoteric :​[(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()] < 1315002592 510655 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :that looks a little bit different than ours, anyway < 1315002614 216732 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also filter could be generalized. < 1315002614 611899 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :!haskell take 20 $ Unsafe.Coerce.unsafeCoerce [Left 1, Right 2] :: [()] < 1315002616 828429 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t filter < 1315002617 607436 :EgoBot!foobar@codu.org PRIVMSG #esoteric :​[(),()] < 1315002617 938180 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. (a -> Bool) -> [a] -> [a] < 1315002631 636264 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :(a -> Bool) -> t a -> t a < 1315002642 492475 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :?ty app .: (,) < 1315002643 637969 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall b b1. (b -> b1) -> b -> b1 < 1315002682 411150 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@hoogle filter < 1315002683 26688 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude filter :: (a -> Bool) -> [a] -> [a] < 1315002683 186842 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.ByteString filter :: (Word8 -> Bool) -> ByteString -> ByteString < 1315002683 187105 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.IntMap filter :: (a -> Bool) -> IntMap a -> IntMap a < 1315002699 575031 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::t (.:) < 1315002700 232725 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a b (f :: * -> *) (g :: * -> *). (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) < 1315002702 29878 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t Data.Traversable.filter < 1315002703 34073 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: `Data.Traversable.filter' < 1315002715 354391 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm i guess it cannot remove elements < 1315002730 574120 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: is ByteString a synonym for Something Word8? < 1315002764 827056 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's an unpacked array of Word8, yes < 1315002778 542662 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well more or less < 1315002806 941325 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*unboxed < 1315002837 245339 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@hoogle fromList < 1315002837 948831 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.HashTable fromList :: Eq key => (key -> Int32) -> [(key, val)] -> IO (HashTable key val) < 1315002838 108831 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.IntMap fromList :: [(Key, a)] -> IntMap a < 1315002838 109005 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.IntSet fromList :: [Int] -> IntSet < 1315002860 856732 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@hoogle Foldable f => [a] -> f a < 1315002861 568871 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Test.QuickCheck elements :: [a] -> Gen a < 1315002861 728732 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.Maybe listToMaybe :: [a] -> Maybe a < 1315002861 728917 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.Sequence fromList :: [a] -> Seq a < 1315002868 967037 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :bah < 1315002920 241924 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :class FromListable a r where fromList :: [a] -> r < 1315002932 241238 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :maybe with a fundep < 1315002952 623133 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: that's just Monoid really < 1315002962 666211 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well, nearly < 1315003001 427209 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@hoogle (a -> Bool) -> f a -> f a < 1315003001 999154 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.IntMap filter :: (a -> Bool) -> IntMap a -> IntMap a < 1315003002 159131 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude dropWhile :: (a -> Bool) -> [a] -> [a] < 1315003002 159310 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude filter :: (a -> Bool) -> [a] -> [a] < 1315003024 604421 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@hoogle NotABloodyList f => (a -> Bool) -> f a -> f a < 1315003025 110608 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Warning: Unknown class NotABloodyList < 1315003025 277892 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.IntMap filter :: (a -> Bool) -> IntMap a -> IntMap a < 1315003025 437674 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude dropWhile :: (a -> Bool) -> [a] -> [a] < 1315003071 555653 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :they could extend the query syntax that way < 1315003077 210622 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :having constrains placed before a => < 1315003094 533700 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i thought they did < 1315003125 247728 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's just always fuzzy when there's no perfect match < 1315003162 344275 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@hoogle Monad m => [m a] -> m [a] < 1315003162 991560 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude sequence :: Monad m => [m a] -> m [a] < 1315003163 151450 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Monad sequence :: Monad m => [m a] -> m [a] < 1315003163 151546 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.Traversable sequence :: (Traversable t, Monad m) => t (m a) -> m (t a) < 1315003175 188889 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@hoogle Applicative m => [m a] -> m [a] < 1315003175 998918 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a) < 1315003176 158701 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude sequence :: Monad m => [m a] -> m [a] < 1315003176 158789 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Monad sequence :: Monad m => [m a] -> m [a] < 1315003184 639768 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah it does < 1315003218 750037 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no I mean constrains like "t is not a list" < 1315003228 668804 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not class constraints. < 1315003244 19916 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :back < 1315003265 797111 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: ive seen < 1315003276 516732 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hi>? < 1315003280 260370 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class (Arrow (~>)) =. ArrowApply (~>) where (($) :: (a ~> b) -> a -> b < 1315003283 15064 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :as opposed to the existing arrowapply < 1315003319 167705 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :since arrows are lame and nobody likes to use them. < 1315003335 92433 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what's the need for the Arrow (~>) context there.... < 1315003351 919845 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: because it was in terms of arrow? < 1315003365 398273 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :why must it?? < 1315003365 605423 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :anything that can be applied should be an arrow anyhow, whether you like arrows or not < 1315003374 454735 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :mmh < 1315003381 350385 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you should be able to write the arrow functions < 1315003384 907819 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :whether you like the Arrow class or not < 1315003394 262086 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :otherwise your application has no laws and is hence useless < 1315003411 438390 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>_> < 1315003425 174264 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t \p m = m >>= \x -> if p x then return x else mzero < 1315003426 309343 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :parse error on input `=' < 1315003428 251087 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :thankfully I will never use CakeProphet's code. < 1315003428 413852 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :laws -> practical use. The elliott law. < 1315003432 664581 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t \p m -> m >>= \x -> if p x then return x else mzero < 1315003433 632160 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (m :: * -> *) a. (MonadPlus m) => (a -> Bool) -> m a -> m a < 1315003438 402463 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What does "Irrefutable pattern failed" mean in Haskell? < 1315003440 213335 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: sorry, you do not undrestand programming. < 1315003442 384513 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :understand < 1315003443 184115 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is there any good alternative to arows is Category&Applicative useful for that I've also heard of a Generalized Arrows thing but maybe that is not a real thing maybe I should make my own alteratnive to do the things I want to do < 1315003454 775942 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :zzo38: depends what your code is < 1315003467 264570 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let Left x = Right "like this" in x < 1315003468 371608 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : *Exception: :3:4-29: Irrefutable pattern failed for pattern Da... < 1315003469 181858 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: you cannot use applicative in the arrowapply head because it must be universally quantified. < 1315003470 918244 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: if you want me to see it they way you do then you'll have to use words for that. < 1315003502 346134 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: i'm not interested in doing so, because I've tried before and it was fruitless; I suspect either time and experience will make you clear up your confusion, or nothing will < 1315003524 106204 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :oerjan: How does that do? < 1315003524 266177 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: it's for when a failing match is lazy so it is not checked until another expression is evaluated < 1315003552 420 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :matches are by default lazy in let and where, but strict in case and function arguments < 1315003581 558247 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but you can turn strict matches into lazy with ~ or lazy into strict with ! (the latter is an extension) < 1315003581 835554 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :But what does let Left x = Right "like this" in x even supposed to do? < 1315003591 5859 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :zzo38: fail, badly < 1315003599 121799 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hth < 1315003607 247114 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: though I do find it a bit insulting that I apparently don't _understand_ programming because I do not see it in this way. < 1315003626 643636 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :as if the way I have been viewing it is totally invalid and does not correspond to actual programming. < 1315003634 26268 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What is that syntax supposed to mean? < 1315003646 46565 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> let (x, y) = (5, 3) in (y, x) < 1315003646 206643 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: it defines Left x lazily to be the result of the expression Right "like this". if it was Left x = Left "like this", then it would simply make x = "like this" < 1315003646 599467 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : (3,5) < 1315003647 859505 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: I predict that any further responses I make will only offend you more, so I'm not going to < 1315003670 616569 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok i'm going to adjust my code for the exciting class: class Ooh a where ooh :: a < 1315003686 306988 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :ooh < 1315003687 900673 :Gregor!foobar@codu.org PRIVMSG #esoteric :(06:48:02 PM) CDGregorR: int*a,b[9<<20];main(){a=b;while(scanf("%d",++a)>0);while(*a)a+=(a[*a]-=a[a[1]])?3:a[2];while(a>b)putchar(*--a);} < 1315003688 218614 :Gregor!foobar@codu.org PRIVMSG #esoteric :(06:48:30 PM) -: I see a :( in there < 1315003688 378615 :Gregor!foobar@codu.org PRIVMSG #esoteric :(06:48:35 PM) -: That's how I'd feel about it, too < 1315003694 974516 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: it makes more sense if Right "like this" is replaced by an expression which is not known whether it is Left or Right, though < 1315003720 681321 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: or rather one you know to be Left or Right. < 1315003722 685388 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: then nothing has been learned by either of us from this conversation. congratulations. < 1315003725 311785 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(it is not good practice to assume :P) < 1315003733 554347 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION moves on to other things. < 1315003738 499380 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: you are the one who was sarcastic and pinged me after I made a statement. < 1315003743 625483 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :did you _expect_ to get anything from it? < 1315003748 641843 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: and supposedly you should only _use_ such an expression Left x = y if you are sure that y evaluates to a Left value, but if you do a mistake you get that "irrefutable pattern" error < 1315003762 609085 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*such a definition < 1315003768 453869 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I would like to. < 1315003777 409614 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: then maybe start it in a better way next time < 1315003783 585347 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Now it says "No instance for (Show GHC.Prim.Any)" if I type x or Left x or Right x < 1315003784 899235 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I suspect the source of my unreliability is withInstance, btw < 1315003811 514717 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it should really be some core that takes the dictionary out of the ShowD and applies k to it < 1315003825 259411 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I might be able to coerce that into working if I can figure out how to unbox it properly < 1315003827 861137 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: that's a different error because x defaults to type Any < 1315003843 887375 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(when there are no other restrictions on it) < 1315003878 321730 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: however that's a bit weird that there is no Show instance < 1315003880 376844 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> [] < 1315003881 453818 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1315003917 753248 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um of course there is no Show Any instance. < 1315003921 471500 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[] only works because of defaulting. < 1315003924 507132 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh wait ghc defaults it to () < 1315003934 487871 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I was basically saying I don't understand how a set of laws corresponds directly to usefulness. < 1315003945 643020 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not that I don't understand the importance of laws. < 1315003948 843486 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: oh hm. the default to Any is only if there are _no_ type classes involved. < 1315003964 853878 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: incidentally Any won't show up like that in error messages soon < 1315003967 443150 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :instance Eq (->) where < 1315003968 694661 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it was fixed recently iirc < 1315003973 78745 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: as I could make something completely useless that also has laws. < 1315003974 125397 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@let x = [] < 1315003975 349422 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Defined. < 1315003978 390967 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> x < 1315003979 526491 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Ambiguous occurrence `x' < 1315003979 686784 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : It could refer to either `L.x', defined at "hm" < 1315004000 420179 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "hm" < 1315004012 193836 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@list let < 1315004012 700068 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :eval provides: run let undefine < 1315004015 881343 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@undefine < 1315004020 921708 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> x < 1315004022 13714 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : x < 1315004031 422349 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :huh it gives no message < 1315004037 418243 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@let x' = [] < 1315004038 524596 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Defined. < 1315004040 450522 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> x' < 1315004042 134381 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1315004047 866449 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t x' < 1315004048 991803 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. [a] < 1315004051 990824 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :bah < 1315004057 246791 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: (~a -> ~b) =/= (a -> b) < 1315004063 327232 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no monomorphism restriction for @let < 1315004073 638271 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or wait < 1315004089 403714 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> (x' :: String, x' :: [Bool]) < 1315004091 197269 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ("",[]) < 1315004095 378049 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :indeed not < 1315004098 559877 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: is ~ laziness in this case? I've never seen ~ used like that. < 1315004104 959196 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or is it not? < 1315004122 30745 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :aka complement. < 1315004142 814286 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :How is a definition such as Left x = Right "like this" can be used afterward? < 1315004166 610119 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: what I said was not code. < 1315004177 551944 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> withInstance explicitTestD (ooh :: Int) < 1315004177 754941 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :99 < 1315004180 395022 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok so data values work. < 1315004190 344686 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: ah, well then it is not very enlightening to me. < 1315004194 751452 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> ooh :: Int < 1315004194 911180 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :9 < 1315004197 260046 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: maybe so. < 1315004208 629872 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: so there _is_ something different about functions in dictionaries < 1315004237 30081 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :has #ghc answered yet < 1315004249 332103 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: no < 1315004254 727011 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::( < 1315004272 223727 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: it is not very difficult nor time consuming to explain what you mean. < 1315004290 594610 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: that is where you are wrong < 1315004308 263489 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: oh wait I understand. :P < 1315004321 850312 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :logic, not types. < 1315004352 885408 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I've asked #ghc about how functions are represented in typeclass dictionaries, anyway < 1315004353 181969 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : oerjan: I suspect the source of my unreliability is withInstance, btw <-- would the higher rank method used in reflection be good enough for you? < 1315004364 469962 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what type signature? < 1315004369 491924 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :reify :: a -> (forall s. Reifies s a => Proxy s -> w) -> w < 1315004378 183305 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that's... close to what i have < 1315004379 587229 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :withInstance :: OohD a -> ((Ooh a) => r) -> r < 1315004381 510759 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I suppose I could do < 1315004384 706628 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :withInstance :: OohD a -> (forall b. (Ooh b) => r) -> r < 1315004389 270682 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but that would rather reduce usefulness, I think < 1315004393 458511 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :although, hmm < 1315004396 247836 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :withInstance print "foo" would work < 1315004419 531245 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: okay so then practical use -> laws would be the logical equivalent of your statement. < 1315004424 175930 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :which I still do not see as being true. < 1315004449 43960 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: I was replying to your statement with a demonstration of its fallacy. < 1315004467 185400 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right, and I just revised it. < 1315004478 383527 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :meta-conversation is cool though. < 1315004509 221552 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm afraid you have no idea what I'm talking about. < 1315004511 923822 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :anyway < 1315004523 542590 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I guess quantification might fix it by forcing explicit dictionary passing but I'm mostly sceptical of the implementation < 1315004530 454538 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: it cannot, that's an error which i just made to demonstrate how the Irrefutable pattern error message happens. Left x = Left "like this" would be useable, though. < 1315004599 727880 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: if you get an Irrefutable pattern error in your own code, though, it might because you are making something similar to Left x = y where you _think_ y is a Left value but it actually sometimes is a Right value. < 1315004608 694690 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*might be because < 1315004628 7593 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but it could be with other data type constructors, of course. < 1315004649 116356 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: you said, in effect, no laws -> useless. I made the wrong implication from that, you showed that it was incorrect. So I revised to use -> laws, which I still do not agree with. Is that not what we just talked about? < 1315004700 323762 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: because of laziness, it is allowed to define Left x = y even if y is a Right value, as long you don't actually _use_ y in that case. but it may be easy to do a mistake then. < 1315004754 540706 :Gregor!foobar@codu.org PRIVMSG #esoteric :Argh, my TinyTC was wrong :( < 1315004789 999930 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Quit: Computer has gone to sleep. < 1315004812 978292 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor: I thought I had just realized that your name is Roger G. but whois says otherwise. :( < 1315004829 533191 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for some reason I like reverse names. < 1315004836 684885 :Gregor!foobar@codu.org PRIVMSG #esoteric :Ohhhhhhhhhhhhhhhhhhhhhhhhhkidoke. < 1315004843 643850 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>_> < 1315004853 366842 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :CakeProphet, take a guess what Gregor's name is < 1315004860 690610 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor. < 1315004866 978572 :Gregor!foobar@codu.org PRIVMSG #esoteric :*clap clap clap* < 1315004870 463344 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that's what whois says. < 1315004881 222043 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :BUT IT COULD EASILY BE ROGER G. < 1315004884 750679 :Gregor!foobar@codu.org PRIVMSG #esoteric :I'm not much of a mystery :P < 1315004888 172607 :Gregor!foobar@codu.org PRIVMSG #esoteric :I exist ... ON THE INTERNET! < 1315004923 557996 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :assholes. < 1315004931 103606 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::'( < 1315004940 621486 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I think most people have only one... < 1315004942 522780 :Gregor!foobar@codu.org PRIVMSG #esoteric :All of this is distracting from the tragedy of my TinyTC being wrong. < 1315004952 432239 :Gregor!foobar@codu.org PRIVMSG #esoteric :int*a,b[9<<20];main(){a=b;while(scanf("%d",a++)>0);a=b;while(*a)a+=(a[*a]-=a[a[1]])?3:a[2];while(a>b)putchar(*--a);} // this is corrected, but 117 characters :( < 1315004955 881567 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor: perhaps this is not a bad thing perhaps. < 1315004985 755941 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Gregor, clearly, you have to change your other name to conform to CakeProphet's specs... in ... weirdly < 1315005041 650330 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not at all. < 1315005056 105456 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: well you need _some_ way to prevent ghc from lifting print "hello world" entirely out of your carefully constructed context :P < 1315005089 47856 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I was merely sharing an amusing and false connection I made. < 1315005099 66709 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :because Roger G. is a funny name. < 1315005131 838143 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that Tehpor Pekac guy has some wild ideas < 1315005132 67237 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: doing it at the top-level seems to make it work for some reason < 1315005139 618758 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: how was it wrong? < 1315005167 801120 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I ++a'd even when it didn't read in an int, so *a was always 0 by the time the loop started. < 1315005174 546135 :Gregor!foobar@codu.org PRIVMSG #esoteric :So, it never went into the loop at all >_> < 1315005184 425928 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :heh < 1315005188 866369 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: yeah but obviously it will be brittle since ghc is by haskell semantics _allowed_ to do that lifting. < 1315005223 254497 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yeah. I think the quantified type might avoid that? < 1315005236 194640 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm maybe: < 1315005238 522714 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :withInstance :: OohD a -> (forall b. (Ooh b, a ~ b) => r) -> r < 1315005241 318451 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :to get the full power < 1315005244 920650 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :maybe < 1315005260 629556 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor: is it okay if I call you Roger from now on? < 1315005264 816481 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(it'd be nice to call random monomorphic methods but fuck up the instances they use, but GHC _definitely_ erases too much for that) < 1315005268 588459 :Gregor!foobar@codu.org PRIVMSG #esoteric :Nope ;P < 1315005278 240255 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(and I guess I should avoid allowing you to see that by sticking to the plain universal rank-two type) < 1315005300 280138 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION decides to ignore Roger's wishes wrt whether Roger wants to be called Roger < 1315005324 916261 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I think this is an excelelnt idea Oeg S. < 1315005338 548130 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hey no oegs < 1315005347 6498 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah Sgeo is the reversed name < 1315005356 456948 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so he's actually S. Geo < 1315005365 137687 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that's intruding on my alphabet territory < 1315005377 505034 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :my real name is yqno m. < 1315005387 888481 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net NICK :Sgelo < 1315005399 5041 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :shut up, Monq Y. < 1315005424 612286 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and someone is trying _very_ hard to hide that his real name is L. Toilet < 1315005459 192032 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION go too far < 1315005461 914729 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION fails to get people to infer that he's pretending to be Oleg :( < 1315005471 712502 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I caught it.. < 1315005476 822487 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :me too.......... < 1315005478 456138 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :substitute oleg < 1315005483 162180 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I AM A MASTER OF MYSTERIES < 1315005485 65564 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :but which oleg are you < 1315005485 469535 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I REVERSE ALL NAMES. < 1315005486 768976 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :which < 1315005487 757205 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oleg < 1315005507 792753 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I SEE ALL OF THE SECRET CODES. < 1315005523 872129 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ellio turd, toilet l., i am poop in every way :( < 1315005531 675173 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION cries < 1315005544 557267 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I keep my window covered by a bedsheet so that the government cannot spy on me with their spy crafts. < 1315005548 16009 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :your life is so shitty < 1315005571 673067 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::'( < 1315005594 615928 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :-_;; my soul is black like the night. < 1315005608 581999 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :me too < 1315005639 795527 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I do not know how to make a crying emo face. ;_;;? < 1315005678 47000 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I also do not know what contractions are help. < 1315005683 775663 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Sometimes I like to touch sharp things and feel their sharpness. < 1315005704 730267 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION #s Phantom_Hoover  < 1315005711 127806 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I made a Haskell program to know the extensions: http://sprunge.us/CBKY < 1315005714 183626 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yesterday i cut myself < 1315005714 663964 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgelo: gros < 1315005715 266313 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :s < 1315005720 143224 :monqy!~swell@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :trying to open a bottle of cranbery juice < 1315005732 453145 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION belatedly recognized the gross interpretation of that < 1315005732 695959 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :monqy, ah, you're getting into the spirit. < 1315005745 954462 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgelo: there's a gross interpretation? < 1315005747 9854 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Do you work at Starbucks? < 1315005798 798920 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Sgelo: he is too young do not explain it it is too gross. < 1315005831 788628 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"I think if we are going to allow ourselves the luxury of semantic breakage, it should at least be worth the cost" --Malcom Wallace on seq < 1315005848 996610 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it's not worth the cost? < 1315005881 570333 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :not as the report specifies it IHO < 1315005968 964187 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :seq is both luxurious and not worth the cost? Sounds expensive. < 1315005990 534162 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I have discussed making a Haskell program that is programmed to tell what extensions it uses, now I have done so. Other ideas are, extend it with the capability to tell if it is Literate Haskell or not, as well as be valid programs in other programming languages such as C, C++, INTERCAL, TeX, Brainfuck, Malbolge, AWK, ... < 1315005990 694240 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's a quibble about the Report, nothing much to do with usage. < 1315006027 535930 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zzo38: isBrainfuck = True < 1315006036 372422 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: :D < 1315006091 60600 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :CakeProphet: I mean that it will do something proper, too. Of course any file with balanced [] is a valid Brainfuck program < 1315006112 560619 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"After all the Report doesn't actually say < 1315006112 797880 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that monomorphic pattern-bound variables are shared, either." huh < 1315006129 724597 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :proper? like sipping tea and maintaining upright posture? < 1315006157 588493 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I don't know how a computer program can do that, but if you can figure it out then do so < 1315006169 153344 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :It can also make output. < 1315006174 768377 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Attention spammers: Asthma is not a vaginal infection < 1315006187 783421 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I have seen a polyglot program that makes output to tell you what programming language it is. < 1315006206 156840 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1315006213 616304 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n", < 1315006215 905622 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Sgelo: that would be hysterical < 1315006230 967967 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: annoyingly I can't cast (forall b. (C b) => r) to (CD b -> r), because that's an additional layer of boxing < 1315006249 972796 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :How does the ("Pyt" + "hon" or " Perl ") part work in Perl? < 1315006254 872120 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Deewiant: Yes, something like that < 1315006270 252615 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgelo: . is concat in perl < 1315006272 125536 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :+ is numeric < 1315006273 775716 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Sgelo: Both get coerced to integers < 1315006280 387148 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Ah, ok < 1315006283 994096 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so it becomes 0 which is false < 1315006364 467015 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but 0 is apparently not false in Ruby? < 1315006404 71354 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Right, only false and nil are < 1315006404 652933 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :IIRC < 1315006407 452921 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah < 1315006414 933636 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which is far more correct than the hideous Python/Perl behaviour. < 1315006416 461721 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t (print "Just another", ((0 and " Ruby ") or ("Pyt" + "hon" or " Perl ")), "hacker.\n") < 1315006417 759602 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `t -> t1 -> [Char]' < 1315006417 919535 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred type `[Char]' < 1315006417 919720 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : In the second argument of `(+)', namely `"hon" or " Perl "' < 1315006421 927371 :itidus20!~itidus20@CPE-60-224-1-106.srql1.win.bigpond.net.au QUIT :Ping timeout: 257 seconds < 1315006439 414633 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :SHOCKING < 1315006512 435886 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :elliott, well, objects in Python can define what happens when they're tested by if < 1315006535 955887 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgelo: so? 0 is not false < 1315006538 164983 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :neither is [] < 1315006563 196562 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :C begs to differ < 1315006582 844761 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: char a[] = {}; // a isn't false after this, is it? < 1315006587 498721 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it's convenient that they are false though. < 1315006587 996445 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But anyway, C is wrong about most things. < 1315006593 968755 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No, but int a = 0 is < 1315006599 628008 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Although the one I have seen, if I remember correctly, includes Plain TeX, C, C++, LaTeX, Perl, and a few more, but not Haskell. < 1315006602 590449 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: when have you ever exploited the "==0 being false" behaviour in Python? < 1315006615 63070 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I can see the argument for [], but unless your language has no boolean type, 0 being false is pure insanity. < 1315006623 490762 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I have used if list: to test if it is empty < 1315006627 912333 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or None < 1315006650 365009 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I used LSL's similar behavior.... but I really shouldn't have < 1315006652 244436 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's not an answer to the question I asked you < 1315006653 536688 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :But there are other TeX formats as well, such as AMS-TeX, and there is primitive TeX which I sometimes find a use for. < 1315006656 301855 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :None is ~ nil, so Ruby has that too < 1315006677 9203 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I don't really understand the question ==0 is not valid Python. :P < 1315006694 773298 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh nevermind. < 1315006700 618765 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Some function returns -1 if it can't find the item in the list.... I did if(llWhatever(...)+1) < 1315006708 423800 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: x == 0 is perfectly valid Python. < 1315006714 767177 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well, I've used it in a while loop I believe. I'm sure it would be useful as an if. < 1315006738 660825 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok, so "I believe" with no example and "I'm sure". < 1315006741 893376 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Note: I recognize now how "clever" (bad) that sort of thing is < 1315006769 631280 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :uh, I think it's perfectly valid but I'm not going to get involved in yet another one of these debates. < 1315006797 629890 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :because it is preference and not objective. < 1315006814 559676 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that is how you resolve all debates about languages < 1315006816 221222 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :10:20:18 00:10:38: * Sgeo wants wget to ignore robots.txt >.> < 1315006816 382306 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :10:20:24 Obviously it is impossible to make wget do this. < 1315006829 777092 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well _i_ thought so, but Sgeo managed to. < 1315006838 717097 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: over tiny trivial things, yes. < 1315006843 29691 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: whoosh. < 1315006848 117288 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: haha < 1315006854 773397 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: not really < 1315006876 429782 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i'm pointing out that if you are insulting sgeo for believing that, you are really insulting me :P < 1315006892 123397 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm sure I could go through VB and find things that are objectively bad. < 1315006897 805409 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I insult for more than pure factual content < 1315006936 857210 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i _do_ recall i could not manage to find it in the manpage, so they are not exactly advertising how to do it. < 1315006949 37898 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(which is somewhat reasonable i guess) < 1315006956 944398 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :It's a config file option < 1315006961 718321 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-e is documented < 1315006970 15481 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and the man page points you to GNU info for documentation on .wgetrc/-e < 1315006970 175343 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :And -e lets you set config file options on the command-line < 1315006983 640920 :Sgelo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :And googling pretty much gives you the answer < 1315007086 875265 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well it's not in the _obvious_ place < 1315007092 779654 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION sulks in the corner < 1315007105 228467 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: /pats < 1315007356 766302 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I am a spider. < 1315007534 989868 :FireFly!~firefly@unaffiliated/firefly QUIT :Quit: FireFly < 1315007621 198850 :kmc_!~keegan@c-98-216-51-47.hsd1.ma.comcast.net JOIN :#esoteric < 1315007692 298492 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :elliott: that's where i keep my Porn And Trailers < 1315007742 293320 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :pugs and togs < 1315007782 76498 :kmc!~keegan@c-98-216-51-47.hsd1.ma.comcast.net QUIT :Ping timeout: 245 seconds