00:00 (join) neilv 00:02 neilv: if i want to install the racket version that is on the path to becoming 5.1.2, do i get it from http://pre.racket-lang.org/installers/ or somewhere else? 00:03 neilv: > You are about to download: plt-5.1.2.3-src-unix.tgz (16M) 00:03 neilv: seems promising, but I'm just double-checking 00:04 offby1: couldn't tell ya 00:08 (join) kennyd 00:11 (join) asurai 00:11 (quit) asurai: Client Quit 00:14 neilv: the c part of the build seems a lot faster since the gui ffi stuff, unsurprisingly 00:14 (quit) bmp: Ping timeout: 260 seconds 00:21 dnolen: anyone here familiar with Racket's pattern matcher (implementation details) ? 00:32 (join) jonrafkind 00:40 (quit) neilv: Ping timeout: 255 seconds 00:54 (join) jeapostrophe 01:03 (quit) jeapostrophe: Quit: jeapostrophe 01:15 (join) neilv 01:30 (quit) dnolen: Quit: dnolen 01:34 (quit) jonrafkind: Ping timeout: 250 seconds 01:44 (join) hkBst 01:57 (quit) dherman: Quit: dherman 02:14 (quit) hussaibi: Ping timeout: 252 seconds 02:14 (quit) hussaibi_: Ping timeout: 252 seconds 03:05 (quit) sheikra: Ping timeout: 255 seconds 03:16 (quit) neilv: Ping timeout: 255 seconds 03:59 (quit) realitygrill: Quit: realitygrill 04:03 (join) tfb 04:08 (join) neilv 04:08 (quit) neilv: Changing host 04:08 (join) neilv 04:08 (quit) neilv: Client Quit 04:56 (join) masm 05:13 (quit) DGASAU: Ping timeout: 264 seconds 05:38 (quit) doc_who: Read error: No route to host 05:49 (quit) hkBst: Ping timeout: 255 seconds 06:02 (quit) gienah: Quit: leaving 06:02 (join) hkBst 06:20 (quit) hkBst: Ping timeout: 240 seconds 06:24 (join) hkBst 06:37 (join) MayDaniel 06:47 (quit) hkBst: Ping timeout: 240 seconds 07:03 (join) sheikra 07:05 (join) hkBst 07:09 (quit) DT``: Ping timeout: 264 seconds 07:10 (quit) hkBst: Ping timeout: 276 seconds 07:14 (join) hkBst 07:18 (quit) hkBst: Ping timeout: 258 seconds 07:20 (join) hkBst 07:22 (join) DT`` 07:31 (quit) MayDaniel: Read error: Connection reset by peer 07:34 (quit) hkBst: Ping timeout: 252 seconds 07:36 (join) hkBst 07:50 (join) dnolen_ 07:54 (quit) hkBst: Ping timeout: 255 seconds 07:56 (join) hkBst 08:24 (join) drdo 08:45 (join) jeapostrophe 08:50 (join) RacketCommitBot 08:50 RacketCommitBot: [racket] plt pushed 1 new commit to master: https://github.com/plt/racket/commit/fba1777b8ad6d84200e17c85896f9f6d210b0d1d 08:50 RacketCommitBot: [racket/master] fix contract - Matthew Flatt 08:50 (part) RacketCommitBot 09:15 (join) sheikra_ 09:19 (join) sheikra__ 09:19 (quit) sheikra: Ping timeout: 276 seconds 09:22 (quit) sheikra_: Ping timeout: 246 seconds 09:23 (quit) dnolen_: Quit: dnolen_ 09:37 (join) MayDaniel 09:53 (quit) hkBst: Read error: Connection reset by peer 09:53 (join) ChibaPet 10:27 (join) realitygrill 10:34 (join) anRch 10:36 (join) Flatlander 10:36 (quit) Flatlander: Client Quit 10:47 (join) dnolen 10:49 (join) jao 10:54 (quit) sheikra__: Read error: Connection reset by peer 10:54 (join) sheikra__ 10:57 (quit) jeapostrophe: Quit: jeapostrophe 11:02 (quit) realitygrill: Quit: realitygrill 11:02 (join) upwardindex 11:03 (join) realitygrill 11:06 (quit) realitygrill: Client Quit 11:08 (part) dnolen 11:08 (join) dnolen 11:11 (join) jeapostrophe 11:15 (quit) jeapostrophe: Client Quit 11:22 (join) jonrafkind 11:32 (join) jeapostrophe 11:37 (quit) jeapostrophe: Quit: jeapostrophe 11:41 (quit) anRch: Quit: anRch 11:51 (join) anRch_ 12:01 (join) anRch 12:02 (quit) anRch_: Read error: Connection reset by peer 12:20 (quit) anRch: Quit: anRch 12:21 (quit) upwardindex: Quit: upwardindex 12:26 ChibaPet: Eli, are you about? 12:28 (quit) tfb: Ping timeout: 260 seconds 12:28 (join) carleastlund 12:36 (nick) elliottcable -> sad_elliottcable 12:38 (join) JuanDaugherty 12:38 (nick) sad_elliottcable -> elliottcable 12:41 (join) jeapostrophe 12:44 (quit) jeapostrophe: Client Quit 12:44 (join) lucian 12:51 (join) shofetim 12:55 (quit) shofetim: Remote host closed the connection 12:56 (join) shofetim 12:59 clklein: I was pleasantly surprised to see that `for-template' works in `provide' but now unpleasantly confused about how to use it. 13:01 drdo: net/imap doesn't support SEARCH or am i missing something? 13:01 jonrafkind: i think you can only provide things for-template that were required for-template 13:02 clklein: For a module to provide a binding at some level, does it need to already be defined at that level? I take it, for example ... 13:02 jonrafkind: yes 13:02 clklein: jonrafkind: that's what I was going to ask :) 13:03 clklein: I figured what I thought I found was too convenient to be true 13:03 (join) tunes 13:21 (join) sheikra 13:31 (quit) tunes: Read error: Operation timed out 13:31 sheikra: Is there a way to let the racket interpreter repl work in typed racket mode by default? 13:31 (join) littlebobby 13:34 (join) joshcough 13:36 (join) anRch 13:39 (join) viller 13:39 viller: is there a document that highlights the ways racket has improved on standard scheme? 13:41 jonrafkind: I haven't heard of such a thing.. but it sounds like a good addition to somewhere in the docs 13:46 (join) tunes 13:52 sheikra: Can I compile a racket program into a standalone executable? 13:52 (quit) viller: Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330] 13:54 ohwow_: sheikra: yes 13:54 ohwow_: man raco 13:54 ohwow_: http://docs.racket-lang.org/guide/exe.html 13:54 sheikra: thanks. I'll have a look 13:57 clklein: sheikra: "racket -I typed/racket" 13:59 sheikra: clklein: it works. thank you. 14:00 clklein: np 14:00 (join) jeapostrophe 14:01 (quit) jeapostrophe: Client Quit 14:04 (quit) JuanDaugherty: Remote host closed the connection 14:16 (quit) lucian: Read error: Connection reset by peer 14:18 (join) lucian 14:24 sheikra: hmm.. here is a weird thing I'm fighting with the module system with ... 14:25 sheikra: I have a "virtual" function in a file, which I hope its redefinition would change the behavior of the code that depend on it. But racket would not let me redefine it... 14:26 sheikra: It feels like that this "virtual" function should become the module's "parameter"... 14:28 (quit) lucian: Quit: Ex-Chat 14:28 (quit) carleastlund: Quit: carleastlund 14:32 (join) lucian 14:40 clklein: sheikra: What do you mean by a "virtual" function? 14:40 sheikra: clklein: ah, I'm abusing the terms here. I mean a function whose redefinition can change the behavior of all the code that depend on it. 14:40 clklein: Are you after something that's like `require' but doesn't force you to refer to a particular module? 14:41 clklein: And what do you mean by redefinition? 14:42 sheikra: clklein: say the function already has a definition in the module A. Now from module B, I want to redefine this function, so that all the code in module A would be affected by the change 14:43 (quit) lucian: Read error: Connection reset by peer 14:43 clklein: Do you mean "edit the source code of module B" or "write B so that running it changes code that refers to module A"? 14:43 (quit) anRch: Quit: anRch 14:43 sheikra: the latter 14:43 clklein: Sorry, what I meant by "what do you mean by redefinition" probably wasn't clear :) 14:44 clklein: Anyway, I understand now. 14:44 sheikra: Is there a way, or do I need to change my design? 14:45 clklein: You can have A export a box containing the function that B replaces. 14:46 sheikra: sound like it should work... 14:46 sheikra: are there better ways? This sounds a little hacky ;-) 14:47 clklein: Yes, it's not a good thing :) 14:47 clklein: I would change my design. 14:47 sheikra: but maybe my design is bad. it's not very modular 14:49 (join) dherman 14:50 (join) lucian 14:51 sheikra: Let me make it concrete, I'm making a cross-language "semantic diff" tool. Each language has its own module. From the generic "diff" module there are some functions which will get the name of a node using a function named "get-name". But this function should be "overridden" by the modules for different languages. 14:52 stamourv: sheikra: It sounds like either the class system or the unit system would do what you want. 14:52 sheikra: stamourv: what's the unit system? 14:52 stamourv: Units are first class modules. 14:52 (join) jeapostrophe 14:53 clklein: sheikra: http://docs.racket-lang.org/guide/units.html 14:53 stamourv: You basically specify the dependencies of a unit, and hook it up to any other unit that exports the dependencies. 14:53 (quit) jeapostrophe: Client Quit 14:53 clklein: or http://docs.racket-lang.org/guide/classes.html 14:54 stamourv: So you could have your `diff' unit import a signature that includes `get-name' and others. 14:54 stamourv: And the unit for each language would export the signature, providing concrete bindings for `get-name' and the rest. 14:56 sheikra: stamourv: I guess that's it. I'll figure out how to use it. thank you 14:57 stamourv: If you have any questions, you're welcome to ask. 15:01 (quit) shofetim: Remote host closed the connection 15:05 (quit) sheikra: Ping timeout: 250 seconds 15:05 (quit) sheikra__: Ping timeout: 255 seconds 15:15 (join) RacketCommitBot 15:15 RacketCommitBot: [racket] plt pushed 1 new commit to master: https://github.com/plt/racket/commit/3f4074296882a40d25be10c88327535484456335 15:15 RacketCommitBot: [racket/master] Remove bash completion for commands we don't provide. - Vincent St-Amour 15:15 (part) RacketCommitBot 15:17 (join) JuanDaugherty 15:24 (join) jeapostrophe 15:31 (quit) dnolen: Quit: Page closed 15:41 eli: ChibaPet: ? 15:44 ChibaPet: Eli, I was going to ask about your desktop issue, but someone posted what I was going to suggest to the mailing list. 15:45 ChibaPet: Did you resolve it? 15:46 clklein: or http://docs.racket-lang.org/guide/classes.html 15:46 clklein: oops, sorry... "up-enter" in wrong window 15:47 (join) dnolen 15:49 (quit) MayDaniel: Read error: Connection reset by peer 15:49 (join) MayDaniel 15:50 eli: ChibaPet: It wasn't actually solved, but the main thing that bugged me went away. 15:50 eli: I'll post a reply in a few minutes... 15:50 ChibaPet: ok 15:55 eli: ChibaPet: Um... what I apparently *meant* to say is that Carl would reply... 15:55 ChibaPet: Just read that. That works. I've seen Macs behave poorly with unusual monitor configurations in the past, so what he describes seems reasonable as an explanation. 15:56 eli: Yeah, that was our best guess, though it's still weird. 15:56 (join) jules2 15:57 eli: I also tried looking at various /var/log/stuffs but there was no error message or anything similar. 15:57 ChibaPet: When in doubt, blow away parts of your library, where those preferences are stored. 15:57 ChibaPet: (per-user library, of course) 15:58 eli: I was trying to find these too, but that didn't help either. 15:58 eli: BTW, where is that "Detect Displays" button supposed to be? 15:58 ChibaPet: Monitor config utility, as I remember. 15:58 ChibaPet: (I'm not in front of a Mac right now.) 16:00 eli: Where would I find that? 16:00 ChibaPet: Apple menu, system settings (forgetting actual name), display settings. 16:01 ChibaPet: It should be on the hardware row, if I remember correctly. 16:01 ChibaPet: For your in-home-directory prefs, I believe you can get a completely fresh set my moving aside your Library folder. 16:02 (quit) JuanDaugherty: Quit: JuanDaugherty 16:02 jules2: how would you write something like a CPS transform macro, that transforms a tree recursively and does different things depending on the kind of node it's at (a constant, a variable, a function application)? 16:02 eli: There's a "displays" the hardware row, but no detection button there. 16:02 ChibaPet: But then, I've never encountered precisely that issue, so I'm only guessing it's there. What I've encountered in the past involves windows living on no-longer-present displays. 16:02 ChibaPet: Checking, co-worker has a Mac. 16:04 eli: jules2: A macro should be able to do that fine... 16:04 jules2: can you do it with syntax-rules? 16:04 (quit) littlebobby: Quit: Ex-Chat 16:04 ChibaPet: Yeah, it ought to be there. System Settings -> Displays, and "Detect Displays" in the bottom right corner. There's also evidently a "detect displays" available in the "monitors" menu item you can add. Co-worker's Mac is running Lion, but this isn't a new thing. 16:05 eli: jules2: No, you'll need `syntax-case' for that. 16:07 eli: ChibaPet: I don't have that... http://tmp.barzilay.org/x.png 16:07 stamourv: eli: If you're doing this on kauai/weatherwax, they're running pretty old versions of OS X. 16:08 stamourv: Apple doesn't ship updates for PPC machines anymore, so they're stuck with 10.4, or something. 16:08 eli: stamourv: But I suspect that something like detecting which monitor you have would have been pretty ancient. 16:08 ChibaPet: That's interesting. I suspect it might know you're on virtual hardware. Do you also not have the item in the menu bar that notes? 16:08 eli: It's 10.5.8 16:09 eli: ChibaPet: Yeah -- there's just a few resolution choices, and then "Number of Recent Items" and "Displays Preferences...". 16:10 stamourv: eli: If the lack of monitors is really a problem (i.e., it's not just that you don't like the desktop picture), there's a spare monitor lying around, and I can hook it up temporarily to either of the machines. 16:10 ChibaPet: Strange. If it were me I'd move aside my library and see if that helped, and if it didn't I'd chock it up to opaque proprietary badness. 16:10 stamourv: But I'm not leaving it there long term, my desk is already crowded. 16:12 (part) joshcough 16:13 eli: stamourv: I don't think it'd matter. Just replied. 16:21 (quit) jeapostrophe: Quit: jeapostrophe 16:22 (quit) jules2: Ping timeout: 258 seconds 16:25 eli: ChibaPet: No, blowing out ~/Library didn't work... Got me back to the annoying Aurora bg... 16:35 (join) tfb 16:44 (quit) DT``: Read error: Connection reset by peer 16:45 (quit) lucian: Ping timeout: 240 seconds 16:57 (join) RacketCommitBot 16:57 RacketCommitBot: [racket] plt pushed 5 new commits to master: https://github.com/plt/racket/compare/3f40742...63af93f 16:57 RacketCommitBot: [racket/master] Much improved `wrapped-output'. - Eli Barzilay 16:57 RacketCommitBot: [racket/master] Revert "Have DrDr keep ignoring the random seeds." - Eli Barzilay 16:57 RacketCommitBot: [racket/master] Fix `unstable/time' & xrepl use. - Eli Barzilay 16:57 (part) RacketCommitBot 17:09 (join) lucian 17:25 (join) DT`` 17:26 (quit) lucian: Quit: Ex-Chat 17:30 (join) RacketCommitBot 17:30 RacketCommitBot: [racket] plt pushed 3 new commits to master: https://github.com/plt/racket/compare/63af93f...b972a09 17:30 RacketCommitBot: [racket/master] added a #:security-guard argument to: - Robby Findler 17:30 RacketCommitBot: [racket/master] add test case for PR 12084, clean up exception predicates in test suite a little - Robby Findler 17:30 RacketCommitBot: [racket/master] Added online expansion and compilation of files - Robby Findler 17:30 (part) RacketCommitBot 17:31 jonrafkind: yay parallel check syntax 17:44 (quit) kennyd: Ping timeout: 276 seconds 17:47 (quit) dherman: Quit: dherman 17:49 (join) kennyd 17:50 (join) dherman 17:50 (quit) dherman: Client Quit 17:51 (quit) MayDaniel: Read error: Connection reset by peer 18:00 (join) dherman 18:12 (quit) ChibaPet: Quit: Leaving. 18:34 (quit) dnolen: Ping timeout: 252 seconds 18:37 (part) drdo: "ERC Version 5.3 (IRC client for Emacs)" 18:37 (join) misterm 18:38 (quit) jonrafkind: Ping timeout: 260 seconds 18:44 (quit) tfb: Ping timeout: 276 seconds 19:16 (join) dnolen 19:17 (join) tfb 19:35 (join) ChibaPet 19:42 (join) JuanDaugherty 19:48 (quit) Daemmerung: Quit: Smoove out. 20:12 (quit) tfb: Quit: sleeping 20:14 (quit) dherman: Quit: dherman 20:22 ChibaPet: Is there any point to reporting a bug against the last release? My wife downloaded a nightly build on her Mac, and in the nightly build, she can paste pictures from HTDPv2 into DrRacket. With the release (MacOS Intel) the paste didn't work. 20:22 ChibaPet: (I've got her transforming animate values to get her rocket to move in different directions. It's fun watching her command of the variables developing.) 20:27 (join) sheikra 20:28 (join) sheikra__ 20:32 ChibaPet: posted this to the list 20:36 (quit) JuanDaugherty: Remote host closed the connection 20:43 (quit) masm: Ping timeout: 276 seconds 20:44 (quit) misterm: Read error: No route to host 20:45 offby1: I'd report it 20:57 (join) kevin01123 20:59 (quit) kevin01123: Remote host closed the connection 21:23 eli: ChibaPet: Is that the last release, as in 5.1.1? 21:24 eli: Or the one that will be published very soon -- using the pre-release candidate builds? (Currently 5.1.1.900) 21:24 sheikra: hey, there is a minor bug in http://docs.racket-lang.org/guide/Linking_Units.html 21:25 sheikra: There should be a line that says (require "toy-store-sig.rkt") 21:25 eli: sheikra: Where on the page? 21:26 sheikra: eli: beginning of the first program 21:26 sheikra: "store-specific-factory-unit.rkt" 21:26 sheikra: it only required one signature 21:27 sheikra: it needs both signature files 21:28 sheikra: The module system is very interesting. I'm trying to use it to solve some of the headaches in my design. 21:29 eli: You mean the *unit* system? 21:29 sheikra: eli: oh yes. unit system 21:29 eli: In any case, it sounds questionable, because it looks like the code is actually evaluated. 21:30 eli: But there are other weird things there -- the last example has "(list (toy )(toy ))" 21:30 sheikra: eli: really? I got an error when I load it 21:30 sheikra: oh I didn't notice that 21:31 sheikra: yep. that's something weird. 21:31 eli: It might be a typo -- that example might not be evaluated, or maybe evaluated but not displayed. 21:32 eli: The missing `require', that is. 21:32 eli: That last thing might be some problematic rendering of `toy' values and the constructor-style printouts. 21:32 eli: I'll forward it to FF. 21:36 eli: Ha, yeah, it's faking it -- it only evaluates the `define-unit' form. 21:36 sheikra: There seems to be a problem even if I add another (require ..) in the file 21:37 eli: Yeah? 21:37 sheikra: I had to require both signature files in the repl in order to make the last examples evaluate 21:37 sheikra: I'll have breakfast and try again.. 21:38 eli: OK. Do you want me to CC you so you can provide more details when you get there? 21:42 sheikra: sure. yinwang0@gmail.com 21:45 eli: sheikra: Um, are you not Eric Dobson? 21:45 eli: Ugh, I think I'm getting senile. 21:45 sheikra: eli: heheh :) 21:46 eli: Unmnemonic usernames confuse me. 21:47 eli: sheikra: Aha! I'm not *that* senile. 21:48 eli: Eric uses `mithos28' in here, and his git username is `shekari'. 21:49 eli: sheikra: Even your avatar things look similar... 21:49 eli: (on github.) 21:50 sheikra: eli: really! 21:50 eli: He's has a star that I always thought is an eye... 21:50 eli: (of some animal) 21:50 sheikra: eli: The two signature files need to be required before the linking 21:51 sheikra: eli: what's his github user name? I'd like to have a look 21:52 eli: But one is required -- "toy-factory-sig.rkt" no? 21:52 sheikra: eli: oh, you just mentioned that. I'm getting senile this time 21:52 eli: sheikra: https://github.com/shekari 21:52 eli: Yeah... It's infectious. 21:53 sheikra: eli: the signatures are never required at top-level 21:53 eli: Yeah, I just got there.. 21:54 eli: And that code *is* evaluated -- but the previous things are all fakes, all of the relevant definitions are basically evaluated directly, which makes the examples run even with these problems. 21:55 sheikra: eli: the (list (toy) (toy)) is because build-toys in store-specific-factory-unit.rkt doesn't not specify a color 21:55 sheikra: eli: just change the line in build-toys to (make-toy store-color) 21:55 eli: I didn't actually follow the code, but the current printout is definitely bogus. 21:55 eli: The spacing is wrong -- that ")(" should never happen. 21:56 eli: sheikra: OK, sent. 21:56 sheikra: eli: thanks 21:58 sheikra: eli: I saw racket-llvm on shekari's repositories. Does racket use llvm? 22:00 eli: No, we had an llvm experiment a good while ago, but it wasn't successful and eventually we went with gnu lightening. 22:00 eli: But that code looks like some different llvm interface. 22:01 (quit) sheikra__: Quit: Leaving 22:02 (join) RacketCommitBot 22:02 RacketCommitBot: [racket] plt pushed 4 new commits to master: https://github.com/plt/racket/compare/b972a09...37c43c2 22:02 RacketCommitBot: [racket/master] fix `namespace-attach-module{-declaration}' problem - Matthew Flatt 22:02 RacketCommitBot: [racket/master] fix docs - Matthew Flatt 22:02 RacketCommitBot: [racket/master] doc typo - Matthew Flatt 22:02 (part) RacketCommitBot 22:03 sheikra: got it. why would you need gnu lightening or llvm? schemers are not supposed depend on those things ;-) 22:03 sheikra: oh, let me try to my understanding of unit system and see if there are bugs in my mind... 22:04 sheikra: try to explain... 22:05 sheikra: ok, basically, the (import ...) and (export ...) pair is a signature of a function. So (import toy-store^) 22:05 sheikra: (export toy-factory^) is something similar to (toy-store^ -> toy-factory^), but at a module level ... 22:05 eli: sheikra: Strictly speaking you don't need them -- but in practice it's easier to use an established project to generate machine code rather than doing it from scratch. 22:07 sheikra: I wonder if I can understand it that way 22:20 sheikra: eli: typed racket seems to have a really powerful type system. are you familiar with that? 22:29 ChibaPet: Hi, sorry, was AFK. Yes, 5.1.1. 22:50 (join) dherman 22:53 eli: ChibaPet: In that case there's not much to worry about, since 5.1.2 will come out very soon. 22:53 eli: As in "a few hours away", provided that I don't crash on the way. 22:54 eli: sheikra: Yes, I know much more about the type system than the unit one. 22:55 ChibaPet: heh 22:56 ChibaPet: I hadn't realized it was a point release. Makes sense for that to be the correct fix then. 22:57 eli: Well, we increment the third number for most "normal" releases, and the second for major changes -- like the gui rewrite that took us from 5.0.2 to 5.1, so that's not specific for these kind of bugs. 23:02 ChibaPet: It gives the impression that there's not support for the older third-number release, with a suggestion to upgrade. 23:02 ChibaPet: I tend to think of, for instance, x.0.1 to x.0.2 to mean "absolutely safe" generally, as most people do it. 23:07 (join) jeapostrophe 23:10 (quit) jeapostrophe: Client Quit 23:13 (quit) jao: Ping timeout: 252 seconds 23:13 ChibaPet: g'night all 23:13 (quit) ChibaPet: Quit: Leaving. 23:26 (join) RacketCommitBot 23:26 RacketCommitBot: [racket] plt pushed 4 new commits to release: https://github.com/plt/racket/compare/f4cab3e...e75fc54 23:26 RacketCommitBot: [racket/release] Updated DrRacket images - Eli Barzilay 23:26 RacketCommitBot: [racket/release] Fix `unstable/time' & xrepl use. - Eli Barzilay 23:26 RacketCommitBot: [racket/release] Update version number for the v5.1.2 release - Eli Barzilay 23:26 (part) RacketCommitBot 23:36 (quit) sheikra: Read error: Connection reset by peer 23:37 (join) sheikra 23:38 (join) jonrafkind 23:57 sheikra: eli: cool! I sent a detailed fix to the documentation for units. I'll talk to you later about types when I get back (if you didn't crash :-))