12:30:02phantomicsYou may want to look into the Cassowary constraint solver for layout logic: https://github.com/slightlyoff/cassowary.js, https://constraints.cs.washington.edu/cassowary/
12:38:17bitblit1phantomics: Woah, that's pretty cool, will check that out.
12:47:18phantomicsHere's a discussion of Cassowary and some other algos: https://news.ycombinator.com/item?id=13124584
12:49:42hayleyShinmera implemented Cassowary, called Classowary from memory.
13:01:57bitblit1How do I create a macro wrapper around a function which is sensitive to keyword arguments passed to it effeciently? For example:
13:02:25bitblit1I have a function whose argument list looks like this: `(&key (host "") (display 0 display-p) (screen 0 screen-p))`
13:03:00bitblit1I want to create a macro/function which would run it in a separate thread and take the exact arguments
13:03:21bitblit1so it's argument list should also look exactly the same.
13:09:34flip214bitblit1: you can use &rest to capture all arguments and relay them on; but be aware that a macro gets _unevaluated_ arguments whereas the function gets _evaluated_ args