Massive patch to compile with modern versions of the libraries. This is only 1/2...
[clinton/lisp-on-lines.git] / src / lines.lisp
1 (in-package :lisp-on-lines)
2
3 (define-layered-function line-in (name)
4 (:method-combination append)
5 (:method append (thing)
6 '()))
7
8 (defmacro defline (name (specializer &rest layers-and-combination-keywords) &body docstring-and-body)
9 `(progn
10 (define-layered-method
11 ,name
12 ,@layers-and-combination-keywords
13 ,@(unless
14 (or (third layers-and-combination-keywords)
15 (and layers-and-combination-keywords
16 (null (cdr layers-and-combination-keywords))))
17 '(APPEND))
18 (,specializer)
19 ,(when (cdr docstring-and-body)
20 (car docstring-and-body))
21
22 ,(or (cdr docstring-and-body) (car docstring-and-body)))))
23
24