←2017-05-24 2017-05-25 2017-05-26→ ↑2017 ↑all
00:00:17 <zzo38> You choose one number 0 to 9 for each ability score. For each one, add that number to 1d8 then. Calculate total of all numbers. Calculate the percentage of total of each and use a lookup table. And then you get 2 bonus points for free; +1 bonus point for every full 3 points your total is below 72.
00:00:51 <zzo38> You get to try twice and can choose which set of ability scores you want.
00:02:30 -!- augur has quit (Remote host closed the connection).
00:02:31 <zzo38> (Normally a computer is used to implement this method; I used the TI-92 programmable graphing calculator.)
00:02:42 <zzo38> Do you like this? Do you understand this kind of things?
00:02:45 -!- tromp has joined.
00:03:04 -!- augur has joined.
00:03:04 <T-Rog> Yes. Do you have a C or C++ implementation of this program?
00:03:53 <zzo38> No; only on TI-92 calculator, so far. (Later I may make an implementation in C or JavaScript though.)
00:05:47 <T-Rog> although I'm not sure what the lookup table is for
00:07:07 -!- augur has quit (Ping timeout: 240 seconds).
00:09:39 <zzo38> Do you like these level20.tex stuff?
00:11:15 <quintopia> zzello38
00:11:22 <quintopia> ill look at it later
00:11:36 <zzo38> OK
00:15:17 <zzo38> Here a description of the Goldilock's Method: http://sprunge.us/CeiY
00:17:44 <doesthiswork> if I've got a collection of vertexes on an N-cube what's largest distance I can place another vertex from them?
00:23:26 <zzo38> I don't know?
00:25:12 -!- augur has joined.
00:27:06 <doesthiswork> me neither, and I am unusually fuzzythoughted today
00:32:22 <Phantom_Hoover> write them as binary words
00:32:30 <Phantom_Hoover> and them all together and take the inverse
00:32:35 <Phantom_Hoover> or them all together and take the inverse
00:33:28 <Phantom_Hoover> pick a word which has every low bit from the former and every high bit from the latter
00:33:48 <Phantom_Hoover> this is surely a bad way of doing it
00:36:29 <Phantom_Hoover> indeed it is outright wrong
00:36:33 <doesthiswork> there are many sets where a vertex fulfilling that condition doesn't exist
00:37:02 <Phantom_Hoover> how did i even think that would work
00:37:07 <Phantom_Hoover> i'm too tired for this shit
00:37:59 <doesthiswork> At least it performs better than chance
00:39:03 <doesthiswork> my first try was to treat the dimensions as independent and choose the least occupied half in each one
00:40:52 <doesthiswork> but there could be there
00:42:44 <doesthiswork> s/ /one
00:46:45 -!- sleffy has quit (Ping timeout: 246 seconds).
00:47:17 <shachaf> `5 w
00:47:22 <HackEgo> 1/3:turkey//Turkey was the center of an empire that gobbled up much of Eastern Europe and the Middle East, something which brought them into conflict with Ostrich. In the 19th century the overstuffed empire started declining, and after the Great War it was cut up like so much Shish Kebab. \ i,i//i,i is short for "I have wasps in my underw
00:47:39 <shachaf> `n
00:47:40 <HackEgo> 2/3:ear, and I want to distract myself by saying". \ brick//Brick goes in brain. The statutory punishment for perpetrators of brainfuck derivatives. \ sauron//Sauron is the eponymous protagonist of the Lord of the Rings series. He serves primarily as narrator and the main driver of the plot. His heroic exploits include the resurrection of
00:47:43 <shachaf> `n
00:47:44 <HackEgo> 3/3: the Kings of Men and the conquest of the racists of Gondor. \ ough//Ough is equivalent to any and every possible VC syllable.
00:48:20 <boily> QUINTHELLOPIA!
00:48:27 <shachaf> `forget ough
00:48:29 <HackEgo> Forget what?
00:48:43 <fizzie> doesthiswork: If you don't care too much, you could always just start somewhere, iterate over all N edges, and walk to a (potentially bad) local minimum that way.
00:50:18 <doesthiswork> is there a way I can ensure that I'm in the basin of the global minima first?
00:51:05 <fizzie> Can't think of anything obvious, but that's not saying much.
00:55:43 <doesthiswork> I'll probably go with splitting on the dimension with the most difference and then add one to the weight of all the points on that size
00:57:20 <fizzie> Someone says it's an open problem how to select M binary strings of length N that have the largest possible minimum Hamming distance (or the largest number of M that still has minimum distance >= d), which are a little different problems but sorta similar.
00:59:01 <doesthiswork> Yeah, I think I'm asking a special case that isn't any easier
01:04:17 <doesthiswork> is there anything published?
01:06:09 -!- Sprocklem has joined.
01:17:01 -!- erkin has quit (Read error: Connection reset by peer).
01:17:48 -!- erkin has joined.
01:23:44 -!- tromp has quit (Remote host closed the connection).
01:37:36 <zzo38> I found the following Magic: the Gathering card that someone made up: Phyrexian Elemental War Mage {8} Legendary Artifact Creature - Artifact Mage (6/8) ;; Protection from players, but not combat damage dealt by creatures ;; Elementalist ({BWGRU}, {X}) ;; Elemental casting
01:38:47 <boily> Elementalist? Elemental casting???
01:39:01 <zzo38> It makes no sense.
01:44:32 <Phantom_Hoover> huh
01:44:41 <Phantom_Hoover> anyone know if ais523 is still working on his doctorate??
01:44:51 <alercah> long finished
01:45:21 <Phantom_Hoover> guessed as much but google wasn't helping
01:46:03 <zzo38> Maybe it isn't on Google
01:46:15 <shachaf> nothing isn't on google hth
01:58:22 -!- Sprocklem has quit (Ping timeout: 246 seconds).
02:16:15 -!- T-Rog has quit (Ping timeout: 260 seconds).
02:17:50 -!- tromp has joined.
02:19:45 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:22:17 -!- jaboja has quit (Read error: Connection reset by peer).
02:23:15 -!- jaboja has joined.
02:32:49 -!- Yurume______ has joined.
02:36:55 -!- Yurume______ has quit (Remote host closed the connection).
02:39:36 -!- boily has quit (Quit: BLAST CHICKEN).
02:44:09 -!- Yurume______ has joined.
02:44:23 -!- Yurume______ has quit (Remote host closed the connection).
03:04:59 <HackEgo> [wiki] [[StackStacks]] https://esolangs.org/w/index.php?diff=51991&oldid=44305 * Oj742 * (+143) /* Examples */ Truth Machine
03:25:11 -!- wob_jonas has joined.
03:26:35 <wob_jonas> argh! the library catalog http://is down, so I can't extend my library borrows! I hope they fix that until tomorrow
03:26:47 <wob_jonas> @messages-loud
03:26:47 <lambdabot> oerjan said 3d 52m 43s ago: <wob_jonas> I don't understand. Why would you need `3 and similar commands? <-- `3 is a joke command i made because `2 and `4 do entirely different things. `2 already
03:26:47 <lambdabot> behaves as you suggest.
03:26:50 <wob_jonas> yeah
03:34:40 -!- sleffy has joined.
03:35:50 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
03:48:49 <izabera> i have pointers that i get from malloc with 16 byte alignment, what's a good hash function for them?
03:49:16 <alercah> sah256
03:49:22 <alercah> *sha
03:49:28 <izabera> ...no <.<
03:49:30 -!- Sprocklem has joined.
03:49:33 <izabera> something fast for hash tables
03:56:57 -!- sleffy has quit (Ping timeout: 260 seconds).
04:11:25 -!- sleffy has joined.
04:52:57 -!- wob_jonas has joined.
04:53:20 <wob_jonas> `olist 1072
04:53:23 <HackEgo> olist 1072: shachaf oerjan Sgeo FireFly boily nortti b_jonas
04:53:26 -!- wob_jonas has quit (Client Quit).
05:02:44 -!- MDude has quit (Ping timeout: 272 seconds).
05:02:52 -!- MDead has changed nick to MDude.
05:10:01 -!- doesthiswork has quit (Quit: Leaving.).
05:15:07 -!- Yurume______ has joined.
05:20:20 -!- ais523 has joined.
05:30:59 -!- doesthiswork has joined.
05:31:52 <shachaf> O, now I see.
05:37:29 -!- tromp has quit (Remote host closed the connection).
05:54:18 -!- jaboja has quit (Remote host closed the connection).
06:04:51 -!- wob_jonas has joined.
06:05:03 <wob_jonas> ais523! I haven't seen you for a long time
06:05:38 <ais523> nowdays I don't often join IRC, it's too much of a distraction and people keep demanding things from me
06:05:46 <ais523> (that said, didn't I see /you/ over at PPCG a while back?)
06:06:07 <wob_jonas> possibly. I posted a second answer there.
06:06:29 <ais523> right now I'm in the middle of a long backup
06:06:37 <wob_jonas> I don't much like PPCG because their golf challenge rules are somewhat vague and inconsistent about how golf takes input or output
06:07:43 <zzo38> wob_jonas: Did you try extending your library borrow by telephone?
06:08:22 <ais523> here: https://codegolf.meta.stackexchange.com/q/2447/62131
06:08:50 <ais523> that's a thread mostly about voting on what methods are allowed and what aren't, although it doesn't always produce conclusive results and I don't agree with all the results
06:10:35 <ais523> the "you can crash for boolean false" post is very controversial, it's on +19/-9 at the moment, which is very close to the ⅔ threshold specified by the post, and it's crossed the threshold several times in the last few days…
06:18:52 <wob_jonas> ais523: I looked at that thread. it wasn't clear enough. specifically, I wanted to know if it's valid to produce the output of the challenge on stdout but also print some irrelevant message to stderr. apparently it's valid.
06:19:17 <ais523> finding rules on meta is hard
06:19:23 <ais523> there are plans to do something about it but no real motion
06:19:26 <APic> Moin
06:19:35 <APic> Celebrate Towel-Day!
06:19:58 <zzo38> On anarchy golf, it is (almost) always valid to print irrelevant stuff on stderr, I think, as long as the correct output is printed to stdout (and not excessive stuff).
06:20:11 <wob_jonas> I know it's not easy because ppcg does a shitton of languages, so you can't just have a challenge demand output on stdout, because that would exclude some languages.
06:20:22 <wob_jonas> zzo38: anagolf restricts languages more
06:20:32 <wob_jonas> yeah, it still has like fifty or something
06:21:03 <zzo38> Yes, it does, but I am just saying that that is generally the policy on anarchy golf, at least.
06:21:10 -!- hakatashi has quit (Remote host closed the connection).
06:21:18 <ais523> wob_jonas: looks like there's a good summary post here (which I'd never seen before): https://codegolf.meta.stackexchange.com/a/9658/62131
06:21:29 -!- hakatashi has joined.
06:21:52 <wob_jonas> but anagolf doesn't let you submit golf in, like, some programmable calculator or 80s home computer that doesn't know what stdout is
06:22:26 <zzo38> That is true too, that it doesn't.
06:23:14 <wob_jonas> though admittedly it does allow z80 without OS and some very minimal IO conventions
06:27:06 <zzo38> I did also once make up a way to make a code golf with 6502 instruction set, using a file with a one byte header. The NMOS 6502 instruction set is used, and executing any unstable instruction means it is automatically wrong (although stable unofficial instructions are OK). The memory map and I/O and a few other thing are controlled by the one byte header.
06:28:23 <wob_jonas> zzo38: memory map? as in, the input and output may be mapped to memory? or you may have banking?
06:29:08 <wob_jonas> zzo38: do you have a link?
06:29:59 <zzo38> There is no bankswitching, although it does control what address the I/O is mapped to. Let me to see if I have a link
06:30:53 -!- hppavilion[1] has joined.
06:31:34 <wob_jonas> ais523: I've bought the PDF ebook version of Knuth TAOCP volumes 1,2,3,4. They're great. I've only seen one error:
06:31:53 <wob_jonas> in vol 1, the three greek letters in the MIX character set don't show up correctly (in the character set table and a few times in the text), instead some characters that look like accents are shown. I wonder what could have caused that error.
06:37:35 <zzo38> wob_jonas: http://zzo38computer.org/textfile/miscellaneous/golf6502
06:37:56 -!- tromp has joined.
06:38:56 <wob_jonas> zzo38: have you written an impl of this and tell anagolf to use it?
06:39:05 <zzo38> Not yet.
06:39:17 <wob_jonas> (or just published an impl and use it on pccg to solve new golf tasks or something)
06:40:04 <zzo38> I might do though, if so, probably writing in C and will provide a command-line switch to enable/disable standard tables and to tell how to report execution of unstable opcodes.
06:42:43 -!- tromp has quit (Ping timeout: 260 seconds).
06:45:36 <wob_jonas> zzo38: plus you could make an article on the esowiki, because this counts as an esolang
06:46:35 <zzo38> Yes, I could (unless someone else might do first, if you want to, in which case I may still improve it)
06:52:19 <HackEgo> [wiki] [[///]] https://esolangs.org/w/index.php?diff=51992&oldid=51380 * Oerjan * (+279) /* Quines */ Add my PPCG quine
06:54:53 <wob_jonas> zzo38: spec doesn't tell what the starting PC is. this is especially non-obvious for mapper 2.
06:55:08 <HackEgo> [wiki] [[List of quines]] https://esolangs.org/w/index.php?diff=51993&oldid=51266 * Oerjan * (+278) /* /// */ Add my PPCG quine
06:55:42 <zzo38> It does. The low 2-bits of the header byte give the starting PC.
06:56:05 <wob_jonas> ah!
06:56:27 <wob_jonas> so PC is always between 0 and 3?
06:56:28 <wob_jonas> ok
06:56:59 <zzo38> Yes.
06:58:23 -!- FreeFull has quit.
07:24:46 -!- ais523 has quit.
07:28:54 -!- doesthiswork has quit (Quit: Leaving.).
07:30:51 <Sgeo> Why do I suddenly want to learn JVM bytecode?
07:30:53 <Sgeo> I should sleep
07:32:57 -!- doesthiswork has joined.
07:36:52 -!- sleffy has quit (Ping timeout: 260 seconds).
07:43:47 -!- Sprocklem has quit (Ping timeout: 240 seconds).
08:12:38 -!- Akaibu has quit (Quit: Connection closed for inactivity).
08:12:49 -!- doesthiswork has quit (Quit: Leaving.).
08:17:25 -!- APic has quit (Quit: bbl).
08:23:37 <zzo38> Do you like the implementation of /// that I had made up? I am not sure how it should be worked in to the article in wiki, though. Do you know?
08:38:26 -!- tromp has joined.
08:42:47 -!- tromp has quit (Ping timeout: 240 seconds).
08:57:15 -!- nullcone has quit (Quit: Connection closed for inactivity).
09:26:17 -!- APic has joined.
09:34:55 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
09:47:57 -!- xkapastel has quit (Quit: Connection closed for inactivity).
09:48:07 -!- oerjan has quit (Quit: Nite).
10:27:12 -!- Phantom_Hoover has joined.
10:27:12 -!- Phantom_Hoover has quit (Changing host).
10:27:12 -!- Phantom_Hoover has joined.
10:38:23 -!- augur has quit (Remote host closed the connection).
10:57:17 -!- nullcone has joined.
11:15:43 -!- augur has joined.
11:20:15 -!- augur has quit (Ping timeout: 246 seconds).
11:21:53 -!- augur has joined.
11:39:52 -!- tromp has joined.
11:42:08 -!- augur has quit (Remote host closed the connection).
11:44:47 -!- tromp has quit (Ping timeout: 260 seconds).
11:45:31 -!- boily has joined.
12:06:43 -!- AnotherTest has joined.
12:14:32 -!- hppavilion[1] has quit (Ping timeout: 260 seconds).
12:29:20 -!- boily has quit (Quit: LOOKING CHICKEN).
12:52:52 -!- AnotherTest has quit (Ping timeout: 246 seconds).
13:11:23 -!- tromp has joined.
13:16:06 -!- tromp has quit (Ping timeout: 260 seconds).
13:25:26 -!- Slereah has joined.
13:27:03 -!- nullcone has quit (Quit: Connection closed for inactivity).
13:27:04 -!- Slereah__ has quit (Ping timeout: 240 seconds).
13:52:31 -!- tromp has joined.
14:00:26 -!- doesthiswork has joined.
14:08:08 -!- tromp has quit (Remote host closed the connection).
14:26:53 -!- GeekDude has joined.
14:57:20 -!- `^_^v has joined.
15:05:27 -!- doesthiswork has quit (Quit: Leaving.).
15:08:40 -!- tromp has joined.
15:13:15 -!- tromp has quit (Ping timeout: 260 seconds).
15:44:37 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
15:46:14 -!- augur has joined.
16:04:35 -!- g4z3 has joined.
16:05:41 -!- g4z3 has quit (Remote host closed the connection).
16:06:13 -!- augur has quit (Remote host closed the connection).
16:09:10 -!- g4z3 has joined.
16:15:11 -!- g4z3 has quit (Quit: Leaving).
16:16:29 -!- g4z3 has joined.
16:16:45 -!- g4z3 has quit (Remote host closed the connection).
16:37:07 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
16:39:59 <zzo38> Will you notify Lode Vandevenne about the changes I have made into LodePNG? Maybe they will want to merge them in their official version also
16:46:10 -!- pelegreno___ has joined.
16:48:10 -!- augur has joined.
16:48:34 -!- pelegreno__ has quit (Ping timeout: 240 seconds).
17:09:26 -!- tromp has joined.
17:13:37 -!- tromp has quit (Ping timeout: 246 seconds).
17:47:21 -!- jaboja has joined.
17:49:07 -!- erkin has joined.
17:58:14 -!- Phantom_Hoover has joined.
17:58:14 -!- Phantom_Hoover has quit (Changing host).
17:58:14 -!- Phantom_Hoover has joined.
17:58:25 -!- FreeFull has joined.
18:06:43 -!- sleffy has joined.
18:09:56 -!- tromp has joined.
18:14:27 -!- tromp has quit (Ping timeout: 240 seconds).
18:32:40 -!- augur has quit (Remote host closed the connection).
18:34:15 <quintopia> no one knows how to contact that guy
18:37:13 -!- electrolex has joined.
18:42:54 <int-e> true, there's absolutely no hint on http://lodev.org/lodepng/ not even a link to a github page
18:44:45 <int-e> and http://lodev.org/contact.html also cannot be found
18:47:47 -!- jaboja has quit (Ping timeout: 240 seconds).
18:49:21 -!- hppavilion[1] has joined.
19:49:08 -!- nullcone has joined.
19:50:34 -!- Yurume______ has quit (Ping timeout: 240 seconds).
20:03:48 -!- Yurume______ has joined.
20:16:49 -!- `^_^v has quit (Quit: This computer has gone to sleep).
20:17:45 -!- augur has joined.
20:23:04 -!- `^_^v has joined.
20:28:07 -!- Akaibu has joined.
20:31:48 -!- erkin has quit (Quit: Ouch! Got SIGABRT, dying...).
20:35:09 -!- Remavas has joined.
20:41:35 -!- augur has quit (Remote host closed the connection).
20:43:10 -!- tromp has joined.
20:44:14 -!- augur has joined.
21:00:21 -!- tromp has quit (Remote host closed the connection).
21:14:50 -!- Mr2001 has quit (Quit: Page closed).
21:25:40 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
21:32:36 -!- hakatashi has quit (Remote host closed the connection).
21:32:54 -!- hakatashi has joined.
21:42:51 -!- Phantom_Hoover has joined.
22:00:59 -!- tromp has joined.
22:06:04 -!- tromp has quit (Ping timeout: 268 seconds).
22:19:10 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:26:55 -!- Remavas has quit (Ping timeout: 258 seconds).
22:41:33 -!- AnotherTest has joined.
22:41:33 -!- AnotherTest has quit (Client Quit).
22:44:30 -!- sleffy has quit (Ping timeout: 260 seconds).
22:50:28 <shachaf> What do you think of that one type that paper defines?
22:50:47 <Cale> I didn't see it yet. The pull of the hallway is too strong
22:50:53 <Cale> But I'll watch it online :)
22:51:07 <Cale> Do you have a link to the paper handy?
22:51:09 <shachaf> instance Monad Dist where { return = Return; (>>=) = Bind }
22:51:13 <shachaf> http://mlg.eng.cam.ac.uk/pub/pdf/SciGhaGor15.pdf
22:51:34 <shachaf> This is kind of like a free monad except not satisfying the monad laws?
22:51:59 <shachaf> Unless you define equality some unusual way, I guess.
22:52:10 <shachaf> But why not just make it a free monad?
22:52:29 <Cale> Yeah, they should have just gone with a free monad there
22:52:52 <shachaf> Maybe the advantage of a nonfree monad is that you keep the user's association rather than right-associating everything.
22:53:00 <shachaf> And then maybe you can do something clever with it. Can you?
22:53:18 <Cale> mmm...maybe
22:53:30 <shachaf> But I didn't see whether they do that.
22:53:37 <Cale> But if you're going to try to be clever, I would expect to have a Then constructor as well
22:53:48 <Cale> Because the function argument to Bind is as good as a black box
22:53:58 <Cale> Also, probably you'd want Applicative stuff
22:54:14 <Cale> So that you could avoid Bind as much as possible
22:54:15 <shachaf> Applicative is certainly much better for this sort of trickery, if you have it.
22:54:41 <shachaf> I think of join as a "choke point" or something, something that you want to minimize the use of as much as possible even if you do have monad operations.
22:54:46 -!- boily has joined.
22:54:48 <boily> `w
22:54:51 <shachaf> E.g. join (f <\$> x <*> y <*> z)
22:54:52 <Cale> To some extent, it doesn't matter, up to some notion of semantic equivalence, it would satisfy the monad laws
22:54:58 <HackEgo> ​`slwd//`slwd <wisdom name>//<sed script>
22:55:05 <Cale> Like, if the constructors of the data type aren't exposed by the module
22:55:30 <Cale> CBind is interesting though
22:55:32 <shachaf> Sure, you can define your own equality which does this quotienting thing.
22:55:42 <Cale> I'm not entirely sure what to make of that
22:56:01 <shachaf> What was that one free monad implementation that was a newtype with a forall?
22:56:57 <Cale> Are you thinking of the "Freer monad"?
22:57:15 <shachaf> Hmm, I don't think so.
22:58:13 <shachaf> Oh, it was the thing roconnor named after twanvl. http://r6.ca/blog/20140210T181244Z.html
22:59:33 <shachaf> `4 w
22:59:38 <HackEgo> 1/2:eridanipoid//Eridanipoids form a category of uncategorifiable stellar remnants. They form dense clusters of unmovable and unstoppable objects. \ canaima//Canaima is a secret Venezuelan project to overrun #esoteric with incomprehensible people who have no idea why they're here. \ ladder jump//Ladder jump is the phenomenon that in pract
22:59:53 <shachaf> `n
22:59:54 <HackEgo> 2/2:ically all platformer games where the player character can climb up on ladders, it's faster to repeatedly jump and grab the ladder than to climb. \ mosquito//Mosquitos are tiny vampires, sucking out your soul.
23:00:13 <shachaf> Cale: Have you seen zzo38's Free type? I don't remember what he called it.
23:00:41 <Cale> oh
23:01:30 <shachaf> Foo f a = forall r. f r -> (a -> r) -> r
23:02:50 <shachaf> As zzo38 points out, Foo Void1 = Proxy, Foo Proxy = Identity, Foo Identity = Maybe, Foo (Const e) = (e ->), Foo (e ->) = Either e
23:02:53 <shachaf> And so on.
23:03:14 <Cale> Right, yeah, the van Laarhoven free monad. I actually rather like that one, as it's easy to explain from a software engineering kind of perspective.
23:03:51 <Cale> It's what you naturally end up with by abstracting over a bunch of operations, and then abstracting over the way you're doing that :)
23:04:13 <shachaf> There's the definition of various free algebraic structures using forall.
23:04:28 <shachaf> E.g. FreeGroup a = forall r. Group r => (a -> r) -> r
23:04:33 <shachaf> Is this the same sort of thing?
23:12:55 <Cale> Basically.
23:13:58 <Cale> I guess actually saying what "the same sort of thing" means in a formal way is a bit tricky though.
23:14:44 <Cale> There's probably some means of doing it, and it probably involves Kan extensions somehow :D
23:17:25 <shachaf> how kould it not?
23:17:40 <shachaf> Anyway is this Foo type also related to adjunctions?
23:24:44 -!- sleffy has joined.