src/method-impl.lisp, etc.: Add a `readonly' message property.
[sod] / doc / SYMBOLS
index c49d475..7e18dcd 100644 (file)
 -----------------------------------------------------------------------------
 Package `sod'
 
-pset-proto.lisp
-  add-property                                  function
-  check--unused-properties
-  coerce-property-value                         generic
-  decode-property                               generic
-  get-property                                  function
-  make-property                                 function
-  make-property-set                             function
-  make-pset                                     function
-  p-key                                         function setf
-  p-name                                        function setf
-  p-seenp                                       function setf
-  p-type                                        function setf
-  p-value                                       function setf
-  property                                      class
-  property-key                                  function
-  property-set                                  generic
-  propertyp                                     function
-  pset                                          class
-  pset-get                                      function
-  pset-map                                      function
-  pset-store                                    function
-  psetp                                         function
-  store-property                                function
-  with-pset-iterator                            macro
+builtin.lisp
+  *builtin-module*                              variable
+  make-builtin-module                           function
 
-pset-parse.lisp
-  parse-property-set                            function
+c-types-class-impl.lisp
+  c-class-type                                  class
+  c-type-class                                  generic setf-generic
+  cl:class                                      class c-type-form
+  find-class-type                               function
+  find-sod-class                                function
+  make-class-type                               function
+  record-sod-class                              function
 
-output-proto.lisp
-  add-sequencer-constraint                      generic
-  add-sequencer-item-function                   generic
-  ensure-sequencer-item                         generic
-  hook-output                                   generic
-  invoke-sequencer-items                        generic
-  make-sequencer-item                           function
-  sequence-output                               macro
-  sequencer                                     class
-  sequencer-constraints                         generic setf
-  sequencer-item                                class
-  sequencer-item-functions                      function setf
-  sequencer-item-name                           function
-  sequencer-item-p                              function
-  sequencer-table                               generic
+c-types-impl.lisp
+  cl:*                                          variable function c-type-form
+  alignas
+  alignas-storage-specifier                     class
+  cl:array                                      class c-type-form
+  atomic                                        c-type-form
+  bool                                          c-type-spec c-type-form
+  c-array-dimensions                            generic
+  c-array-type                                  class
+  c-atomic-type                                 class
+  c-enum-type                                   class
+  c-function-arguments                          generic
+  c-function-keywords                           generic
+  c-function-type                               class
+  c-keyword-function-type                       class
+  c-pointer-type                                class
+  c-struct-type                                 class
+  c-tagged-type-kind                            generic
+  c-type-bool                                   variable
+  c-type-char                                   variable
+  c-type-double                                 variable
+  c-type-double-complex                         variable
+  c-type-double-imaginary                       variable
+  c-type-float                                  variable
+  c-type-float-complex                          variable
+  c-type-float-imaginary                        variable
+  c-type-int                                    variable
+  c-type-int-fast16-t                           variable
+  c-type-int-fast32-t                           variable
+  c-type-int-fast64-t                           variable
+  c-type-int-fast8-t                            variable
+  c-type-int-least16-t                          variable
+  c-type-int-least32-t                          variable
+  c-type-int-least64-t                          variable
+  c-type-int-least8-t                           variable
+  c-type-int16-t                                variable
+  c-type-int32-t                                variable
+  c-type-int64-t                                variable
+  c-type-int8-t                                 variable
+  c-type-intmax-t                               variable
+  c-type-intptr-t                               variable
+  c-type-long                                   variable
+  c-type-long-double                            variable
+  c-type-long-double-complex                    variable
+  c-type-long-double-imaginary                  variable
+  c-type-long-long                              variable
+  c-type-name                                   generic
+  c-type-ptrdiff-t                              variable
+  c-type-short                                  variable
+  c-type-signed-char                            variable
+  c-type-size-t                                 variable
+  c-type-tag                                    generic
+  c-type-uint-fast16-t                          variable
+  c-type-uint-fast32-t                          variable
+  c-type-uint-fast64-t                          variable
+  c-type-uint-fast8-t                           variable
+  c-type-uint-least16-t                         variable
+  c-type-uint-least32-t                         variable
+  c-type-uint-least64-t                         variable
+  c-type-uint-least8-t                          variable
+  c-type-uint16-t                               variable
+  c-type-uint32-t                               variable
+  c-type-uint64-t                               variable
+  c-type-uint8-t                                variable
+  c-type-uintmax-t                              variable
+  c-type-uintptr-t                              variable
+  c-type-unsigned                               variable
+  c-type-unsigned-char                          variable
+  c-type-unsigned-long                          variable
+  c-type-unsigned-long-long                     variable
+  c-type-unsigned-short                         variable
+  c-type-va-list                                variable
+  c-type-void                                   variable
+  c-type-wchar-t                                variable
+  c-union-type                                  class
+  cl:char                                       function setf-function c-type-spec c-type-form parser-form
+  commentify-argument-names                     function
+  commentify-function-type                      function
+  const-string                                  c-type-spec
+  define-simple-c-type                          macro
+  double                                        c-type-spec c-type-form
+  double-complex                                c-type-spec c-type-form
+  double-imaginary                              c-type-spec c-type-form
+  enum                                          c-type-form
+  find-simple-c-type                            function
+  cl:float                                      function class c-type-spec c-type-form
+  float-complex                                 c-type-spec c-type-form
+  float-imaginary                               c-type-spec c-type-form
+  fn                                            c-type-form
+  fun                                           c-type-form
+  func                                          c-type-form
+  cl:function                                   function class c-type-form
+  sod-utilities:int                             c-type-spec c-type-form opthandler
+  int-fast16-t                                  c-type-spec c-type-form
+  int-fast32-t                                  c-type-spec c-type-form
+  int-fast64-t                                  c-type-spec c-type-form
+  int-fast8-t                                   c-type-spec c-type-form
+  int-least16-t                                 c-type-spec c-type-form
+  int-least32-t                                 c-type-spec c-type-form
+  int-least64-t                                 c-type-spec c-type-form
+  int-least8-t                                  c-type-spec c-type-form
+  int16-t                                       c-type-spec c-type-form
+  int32-t                                       c-type-spec c-type-form
+  int64-t                                       c-type-spec c-type-form
+  int8-t                                        c-type-spec c-type-form
+  intmax-t                                      c-type-spec c-type-form
+  intptr-t                                      c-type-spec c-type-form
+  kind-c-tagged-type                            generic
+  llong                                         c-type-spec
+  long                                          c-type-spec c-type-form
+  long-double                                   c-type-spec c-type-form
+  long-double-complex                           c-type-spec c-type-form
+  long-double-imaginary                         c-type-spec c-type-form
+  long-int                                      c-type-spec
+  long-long                                     c-type-spec c-type-form
+  long-long-int                                 c-type-spec
+  make-array-type                               function
+  make-atomic-type                              function
+  make-c-tagged-type                            function
+  make-enum-type                                function
+  make-function-type                            function
+  make-keyword-function-type                    function
+  make-pointer-type                             function
+  make-simple-type                              function
+  make-struct-type                              function
+  make-union-type                               function
+  merge-keyword-lists                           function
+  cl:nil                                        constant c-type-form parser-spec parser-form
+  pointer                                       c-type-form
+  pprint-argument-list                          function
+  pprint-c-function-type                        function
+  ptr                                           c-type-form
+  ptrdiff-t                                     c-type-spec c-type-form
+  reify-variable-argument-tail                  function
+  cl:schar                                      function setf-function c-type-spec
+  short                                         c-type-spec c-type-form
+  short-int                                     c-type-spec
+  signed                                        c-type-spec
+  signed-char                                   c-type-spec c-type-form
+  signed-int                                    c-type-spec
+  signed-long                                   c-type-spec
+  signed-long-int                               c-type-spec
+  signed-long-long                              c-type-spec
+  signed-long-long-int                          c-type-spec
+  signed-short                                  c-type-spec
+  signed-short-int                              c-type-spec
+  simple-c-type                                 class
+  sint                                          c-type-spec
+  size-t                                        c-type-spec c-type-form
+  sllong                                        c-type-spec
+  slong                                         c-type-spec
+  specs                                         c-type-form
+  sshort                                        c-type-spec
+  cl:string                                     function class c-type-spec opthandler
+  struct                                        c-type-form
+  tagged-c-type                                 class
+  uchar                                         c-type-spec
+  uint                                          c-type-spec
+  uint-fast16-t                                 c-type-spec c-type-form
+  uint-fast32-t                                 c-type-spec c-type-form
+  uint-fast64-t                                 c-type-spec c-type-form
+  uint-fast8-t                                  c-type-spec c-type-form
+  uint-least16-t                                c-type-spec c-type-form
+  uint-least32-t                                c-type-spec c-type-form
+  uint-least64-t                                c-type-spec c-type-form
+  uint-least8-t                                 c-type-spec c-type-form
+  uint16-t                                      c-type-spec c-type-form
+  uint32-t                                      c-type-spec c-type-form
+  uint64-t                                      c-type-spec c-type-form
+  uint8-t                                       c-type-spec c-type-form
+  uintmax-t                                     c-type-spec c-type-form
+  uintptr-t                                     c-type-spec c-type-form
+  ullong                                        c-type-spec
+  ulong                                         c-type-spec
+  cl:union                                      function c-type-form
+  unsigned                                      c-type-spec c-type-form
+  unsigned-char                                 c-type-spec c-type-form
+  unsigned-int                                  c-type-spec
+  unsigned-long                                 c-type-spec c-type-form
+  unsigned-long-int                             c-type-spec
+  unsigned-long-long                            c-type-spec c-type-form
+  unsigned-long-long-int                        c-type-spec
+  unsigned-short                                c-type-spec c-type-form
+  unsigned-short-int                            c-type-spec
+  ushort                                        c-type-spec
+  va-list                                       c-type-spec c-type-form
+  vec                                           c-type-form
+  void                                          c-type-spec c-type-form
+  wchar-t                                       c-type-spec c-type-form
+  []                                            c-type-form
 
-module-proto.lisp
-  *module*                                      variable
-  add-clear-the-decks-function                  function
-  add-module-binding                            function
-  add-to-module                                 generic
-  clear-the-decks                               function
-  define-clear-the-decks                        macro
-  define-module                                 macro
-  define-module-var                             macro
-  finalize-module                               generic
-  module                                        class
-  module-dependencies                           generic setf
-  module-import                                 generic
-  module-items                                  generic setf
-  module-name                                   generic
-  module-pset                                   generic
-  with-module-environment                       macro
-  with-temporary-module                         macro
+c-types-parse.lisp
+  parse-c-type                                  function
+  parse-declarator                              function
 
-module-parse.lisp
-  read-module                                   function
+c-types-proto.lisp
+  argument                                      class
+  argument-default                              function
+  argument-name                                 function
+  argument-type                                 function
+  argumentp                                     function
+  c-name-case                                   function
+  c-qualifier-keyword                           generic
+  c-storage-specifiers-type                     class
+  c-type                                        macro class
+  c-type-alias                                  macro
+  c-type-equal-p                                generic
+  c-type-qualifier-keywords                     function
+  c-type-qualifiers                             generic
+  c-type-space                                  function
+  c-type-specifiers                             generic
+  c-type-subtype                                generic
+  canonify-qualifiers                           function
+  commentify-argument-name                      generic
+  defctype                                      macro
+  define-c-storage-specifier-syntax             macro
+  define-c-type-syntax                          macro
+  expand-c-storage-specifier                    generic
+  expand-c-storage-specifier-form               generic
+  expand-c-type-form                            generic
+  expand-c-type-spec                            generic
+  format-qualifiers                             function
+  make-argument                                 function
+  maybe-in-parens                               macro
+  pprint-c-storage-specifier                    generic
+  pprint-c-type                                 generic
+  print-c-storage-specifier                     generic
+  print-c-type                                  generic
+  qualifiable-c-type                            class
+  qualify-c-type                                generic
+  wrap-c-type                                   function
 
-module-output.lisp
-  banner                                        function
-  declare-output-type                           function
-  guard-name                                    function
-  output-module                                 function
-  output-type-pathname                          function
+class-finalize-impl.lisp
+  c3-cpl                                        function
+  clos-cpl                                      function
+  dylan-cpl                                     function
+  flavors-cpl                                   function
+  l*loops-cpl                                   function
+  merge-class-lists                             function
+  python-cpl                                    function
+  report-class-list-merge-error                 function
 
-module-impl.lisp
-  *module-dirs*                                 variable
-  c-fragment                                    class
-  code-fragment-item                            class
-  find-file                                     function
-  type-item                                     class
+class-finalize-proto.lisp
+  check-class-initializer                       generic
+  check-sod-class                               generic
+  compute-chains                                generic
+  compute-cpl                                   generic
+  finalization-error                            macro
+  finalization-failed                           function
+  finalize-sod-class                            generic
 
-method-proto.lisp
-  codegen-class                                 generic
-  codegen-message                               generic
-  codegen-method                                generic
-  codegen-target                                generic
-  compute-effective-method-body                 generic
-  compute-effective-methods                     generic
-  compute-method-entry-functions                generic
-  compute-sod-effective-method                  generic
-  convert-to-ilayout-inst                       class
-  effective-method                              class
-  effective-method-basic-argument-names         generic
-  effective-method-class                        generic
-  effective-method-function-name                generic
-  effective-method-message                      generic
-  ensure-ilayout-var                            function
-  inst-chain-head                               generic
-  inst-class                                    generic
-  inst-expr                                     generic
-  invoke-delegation-chain                       function
-  invoke-method                                 function
-  make-convert-to-ilayout-inst                  function
-  make-method-entries                           generic
-  make-trampoline                               function
-  message-effective-method-class                generic
-  method-codegen                                class
-  method-entry                                  class
-  method-entry-chain-head                       generic
-  method-entry-chain-tail                       generic
-  method-entry-effective-method                 generic
-  method-entry-function-name                    generic
-  method-entry-function-type                    generic
-  method-entry-slot-name                        generic
-  primary-method-class                          generic
-  simple-method-body                            generic
-  sod-message-argument-tail                     generic
-  sod-message-no-varargs-tail                   generic
-  sod-method-function-name                      generic
-  sod-method-function-type                      generic
-  sod-method-next-method-type                   generic
-  varargs-message-p                             function
+class-layout-impl.lisp
+  effective-slot-initializer-function           generic
+  effective-slot-prepare-function               generic
+  sod-class-effective-slot                      class
+  sod-class-slot                                class
+  sod-slot-initializer-function                 generic
+  sod-slot-prepare-function                     generic
 
-method-impl.lisp
-  basic-direct-method                           class
-  basic-effective-method                        class
-  basic-effective-method-body                   function
-  basic-message                                 class
-  daemon-direct-method                          class
-  delegating-direct-method                      class
-  simple-effective-method                       class
-  simple-message                                class
-  standard-effective-method                     class
-  standard-message                              class
+class-layout-proto.lisp
+  base-offset                                   class
+  base-offset-chain-head                        generic
+  base-offset-class                             generic
+  chain-offset                                  class
+  chain-offset-chain-head                       generic
+  chain-offset-class                            generic
+  chain-offset-target-head                      generic
+  class-pointer                                 class
+  class-pointer-chain-head                      generic
+  class-pointer-class                           generic
+  class-pointer-meta-chain-head                 generic
+  class-pointer-metaclass                       generic
+  compute-effective-slot                        generic
+  compute-ichain                                generic
+  compute-ilayout                               generic
+  compute-islots                                generic
+  compute-vtable                                generic
+  compute-vtable-items                          generic
+  compute-vtables                               generic
+  compute-vtmsgs                                generic
+  effective-slot                                class
+  effective-slot-class                          generic
+  effective-slot-direct-slot                    generic
+  effective-slot-initializer                    generic
+  find-class-initializer                        generic
+  find-slot-initargs                            generic
+  find-slot-initializer                         generic
+  ichain                                        class
+  ichain-body                                   generic
+  ichain-class                                  generic
+  ichain-head                                   generic
+  ichain-tail                                   generic
+  ilayout                                       class
+  ilayout-class                                 generic
+  ilayout-ichains                               generic
+  islots                                        class
+  islots-class                                  generic
+  islots-slots                                  generic
+  islots-subclass                               generic
+  make-base-offset                              generic
+  make-chain-offset                             generic
+  make-class-pointer                            generic
+  vtable                                        class
+  vtable-body                                   generic
+  vtable-chain-head                             generic
+  vtable-chain-tail                             generic
+  vtable-class                                  generic
+  vtable-pointer                                class
+  vtable-pointer-chain-head                     generic
+  vtable-pointer-chain-tail                     generic
+  vtable-pointer-class                          generic
+  vtmsgs                                        class
+  vtmsgs-chain-head                             generic
+  vtmsgs-chain-tail                             generic
+  vtmsgs-class                                  generic
+  vtmsgs-entries                                generic
+  vtmsgs-subclass                               generic
 
-method-aggregate.lisp
-  aggregating-effective-method                  class
-  aggregating-message                           class
-  aggregating-message-properties                generic
-  check-aggregating-message-type                generic
-  compute-aggregating-message-kernel            generic
-  define-aggregating-method-combination         macro
+class-make-impl.lisp
+  check-method-argument-lists                   function
+  check-method-return-type                      function
+  check-method-return-type-against-message      function
 
-lexer-proto.lisp
-  define-indicator                              function
-  lexer-error                                   function
-  sod-token-scanner                             class
-  syntax-error                                  function
+class-make-proto.lisp
+  check-message-type                            generic
+  check-method-type                             generic
+  guess-metaclass                               generic
+  make-sod-class                                function
+  make-sod-class-initfrag                       generic
+  make-sod-class-initializer                    generic
+  make-sod-class-tearfrag                       generic
+  make-sod-initializer-using-slot               generic
+  make-sod-instance-initializer                 generic
+  make-sod-message                              generic
+  make-sod-method                               generic
+  make-sod-method-using-message                 generic
+  make-sod-slot                                 generic
+  make-sod-slot-initarg                         generic
+  make-sod-slot-initarg-using-slot              generic
+  make-sod-user-initarg                         generic
+  sod-initarg-argument                          generic
+  sod-message-method-class                      generic
 
-fragment-parse.lisp
-  parse-delimited-fragment                      function
-  scan-c-fragment                               function
+class-output.lisp
+  *instance-class*                              variable
+  emit-class-conversion-macro                   generic
+  emit-class-object-decl                        generic
+  emit-class-typedef                            generic
+  emit-message-macro                            generic
+  emit-message-macro-defn                       generic
 
-final.lisp
-  *debugout-pathname*                           variable
-  *sod-version*                                 variable
-  exercise                                      function
-  test-module                                   function
+class-utilities.lisp
+  argument-lists-compatible-p                   function
+  find-class-slot-by-name                       function
+  find-instance-slot-by-name                    function
+  find-message-by-name                          function
+  find-root-metaclass                           function
+  find-root-superclass                          function
+  find-superclass-by-nick                       function
+  ichain-struct-tag                             function
+  ichain-union-tag                              function
+  ilayout-struct-tag                            function
+  inheritance-path-reporter-state               class
+  islots-struct-tag                             function
+  make-inheritance-path-reporter-state          function
+  message-macro-name                            function
+  report-inheritance-path                       function
+  select-minimal-class-property                 function
+  sod-subclass-p                                function
+  valid-name-p                                  function
+  vtable-name                                   function
+  vtable-struct-tag                             function
+  vtable-union-tag                              function
+  vtmsgs-struct-tag                             function
+
+classes.lisp
+  sod-class                                     class
+  sod-class-chain                               generic
+  sod-class-chain-head                          generic
+  sod-class-chain-link                          generic
+  sod-class-chains                              generic
+  sod-class-class-initializers                  generic setf-generic
+  sod-class-direct-superclasses                 generic
+  sod-class-effective-methods                   generic
+  sod-class-ilayout                             generic
+  sod-class-initargs                            generic setf-generic
+  sod-class-initfrags                           generic setf-generic
+  sod-class-initializer                         class
+  sod-class-instance-initializers               generic setf-generic
+  sod-class-messages                            generic setf-generic
+  sod-class-metaclass                           generic
+  sod-class-methods                             generic setf-generic
+  sod-class-name                                generic
+  sod-class-nickname                            generic
+  sod-class-precedence-list                     generic
+  sod-class-slots                               generic setf-generic
+  sod-class-state                               generic
+  sod-class-tearfrags                           generic setf-generic
+  sod-class-type                                generic
+  sod-class-vtables                             generic
+  sod-initarg                                   class
+  sod-initarg-class                             generic
+  sod-initarg-default                           generic
+  sod-initarg-name                              generic
+  sod-initarg-slot                              generic
+  sod-initarg-type                              generic
+  sod-initializer                               class
+  sod-initializer-class                         generic
+  sod-initializer-slot                          generic
+  sod-initializer-value                         generic
+  sod-instance-initializer                      class
+  sod-message                                   class
+  sod-message-class                             generic
+  sod-message-name                              generic
+  sod-message-readonly-p                        generic
+  sod-message-type                              generic
+  sod-method                                    class
+  sod-method-body                               generic
+  sod-method-class                              generic
+  sod-method-message                            generic
+  sod-method-type                               generic
+  sod-slot                                      class
+  sod-slot-class                                generic
+  sod-slot-initarg                              class
+  sod-slot-name                                 generic
+  sod-slot-type                                 generic
+  sod-user-initarg                              class
+
+codegen-impl.lisp
+  codegen                                       class
+  temporary-argument                            class
+  temporary-function                            function class
+  temporary-variable                            class
 
 codegen-proto.lisp
+  *null-pointer*                                variable
   *sod-ap*                                      variable
   *sod-master-ap*                               variable
+  banner-inst                                   class
   block-inst                                    class
   break-inst                                    class
+  call-inst                                     class
   codegen-add-function                          generic
   codegen-build-function                        function
-  codegen-functions                             generic setf
+  codegen-functions                             generic
   codegen-pop                                   generic
   codegen-pop-block                             generic
   codegen-pop-function                          generic
   codegen-push                                  generic
+  cond-inst                                     class
   continue-inst                                 class
   convert-stmts                                 function
   definst                                       macro
+  deliver-call                                  function
   deliver-expr                                  function
+  do-while-inst                                 class
+  emit-banner                                   function
   emit-decl                                     generic
   emit-decls                                    generic
   emit-inst                                     generic
   emit-insts                                    generic
   ensure-var                                    generic
   expr-inst                                     class
+  for-inst                                      class
+  format-banner-comment                         function
   format-compound-statement                     macro
   format-temporary-name                         generic
   function-inst                                 class
+  if-inst                                       class
   inst                                          class
+  inst-alt                                      generic
+  inst-args                                     generic
+  inst-banner                                   generic
+  inst-banner-args                              generic
   inst-body                                     generic
+  inst-cond                                     generic
+  inst-conseq                                   generic
+  inst-control                                  generic
   inst-decls                                    generic
   inst-expr                                     generic
+  inst-func                                     generic
   inst-init                                     generic
   inst-metric                                   generic
   inst-name                                     generic
   inst-op                                       generic
   inst-type                                     generic
+  inst-update                                   generic
   inst-var                                      generic
+  make-banner-inst                              function
   make-block-inst                               function
   make-break-inst                               function
+  make-call-inst                                function
+  make-cond-inst                                function
   make-continue-inst                            function
+  make-do-while-inst                            function
   make-expr-inst                                function
+  make-for-inst                                 function
   make-function-inst                            function
+  make-if-inst                                  function
   make-return-inst                              function
   make-set-inst                                 function
   make-update-inst                              function
   make-var-inst                                 function
+  make-while-inst                               function
   return-inst                                   class
   set-inst                                      class
   temp-tag                                      generic
   temporary-name                                class
   temporary-var                                 generic
   update-inst                                   class
-  var-in-use-p                                  generic setf
+  var-in-use-p                                  generic setf-generic
   var-inst                                      class
+  while-inst                                    class
   with-temporary-var                            macro
 
-codegen-impl.lisp
-  call-inst                                     class
-  codegen                                       class
-  do-while-inst                                 class
-  if-inst                                       class
-  inst-alt                                      generic
-  inst-ap                                       generic
-  inst-arg                                      generic
-  inst-args                                     generic
-  inst-body                                     generic
-  inst-cond                                     generic
-  inst-conseq                                   generic
-  inst-from                                     generic
-  inst-func                                     generic
-  inst-to                                       generic
-  make-call-inst                                function
-  make-do-while-inst                            function
-  make-if-inst                                  function
-  make-va-copy-inst                             function
-  make-va-end-inst                              function
-  make-va-start-inst                            function
-  make-while-inst                               function
-  temporary-argument                            class
-  temporary-function                            function class
-  temporary-variable                            class
-  va-copy-inst                                  class
-  va-end-inst                                   class
-  va-start-inst                                 class
-  while-inst                                    class
+final.lisp
+  *debugout-pathname*                           variable
+  *sod-version*                                 variable
+  exercise                                      function
+  test-module                                   function
+  test-parse-c-type                             function
+  test-parse-pset                               function
+  test-parser                                   macro
 
-classes.lisp
-  sod-class                                     class
-  sod-class-chain                               generic setf
-  sod-class-chain-head                          generic setf
-  sod-class-chain-link                          generic
-  sod-class-chains                              generic setf
-  sod-class-class-initializers                  generic setf
-  sod-class-direct-superclasses                 generic
-  sod-class-ilayout                             generic setf
-  sod-class-initializer                         class
-  sod-class-instance-initializers               generic setf
-  sod-class-messages                            generic setf
-  sod-class-metaclass                           generic
-  sod-class-methods                             generic setf
-  sod-class-name                                generic
-  sod-class-nickname                            generic
-  sod-class-precedence-list                     generic setf
-  sod-class-slots                               generic setf
-  sod-class-state                               generic setf
-  sod-class-type                                generic setf
-  sod-class-vtables                             generic setf
-  sod-initializer                               class
-  sod-initializer-class                         generic
-  sod-initializer-slot                          generic
-  sod-initializer-value-form                    generic
-  sod-initializer-value-kind                    generic
-  sod-instance-initializer                      class
-  sod-message                                   class
-  sod-message-class                             generic
-  sod-message-name                              generic
-  sod-message-type                              generic
-  sod-method                                    class
-  sod-method-body                               generic
-  sod-method-class                              generic
-  sod-method-message                            generic
-  sod-method-type                               generic
-  sod-slot                                      class
-  sod-slot-class                                generic
-  sod-slot-name                                 generic
-  sod-slot-type                                 generic
+fragment-parse.lisp
+  parse-delimited-fragment                      function
+  scan-c-fragment                               function
 
-class-utilities.lisp
-  argument-lists-compatible-p                   function
-  find-class-slot-by-name                       function
-  find-instance-slot-by-name                    function
-  find-message-by-name                          function
-  find-root-metaclass                           function
-  find-root-superclass                          function
-  find-superclass-by-nick                       function
-  ichain-struct-tag                             function
-  ichain-union-tag                              function
-  ilayout-struct-tag                            function
-  islots-struct-tag                             function
-  message-macro-name                            function
-  sod-subclass-p                                function
-  valid-name-p                                  function
-  vtable-name                                   function
-  vtable-struct-tag                             function
-  vtable-union-tag                              function
-  vtmsgs-struct-tag                             function
+lexer-proto.lisp
+  define-indicator                              function
+  cl:error                                      function class parser-form
+  lexer-error                                   function class
+  must                                          parser-form
+  scan-comment                                  function
+  skip-until                                    parser-form
+  sod-token-scanner                             class
+  syntax-error                                  function class
 
-class-make-proto.lisp
-  check-message-type                            generic
-  check-method-type                             generic
-  define-sod-class                              macro
-  guess-metaclass                               generic
-  make-sod-class                                function
-  make-sod-class-initializer                    generic
-  make-sod-initializer-using-slot               generic
-  make-sod-instance-initializer                 generic
-  make-sod-message                              generic
-  make-sod-method                               generic
-  make-sod-method-using-message                 generic
-  make-sod-slot                                 generic
-  sod-message-method-class                      generic
+method-aggregate.lisp
+  aggregating-effective-method                  class
+  aggregating-message                           class
+  aggregating-message-properties                generic
+  check-aggregating-message-type                generic
+  compute-aggregating-message-kernel            generic
+  define-aggregating-method-combination         macro
+  sod-message-combination                       generic
+  sod-message-kernel-function                   generic
+
+method-impl.lisp
+  basic-direct-method                           class
+  basic-effective-method                        class
+  basic-effective-method-body                   function
+  basic-message                                 class
+  daemon-direct-method                          class
+  delegating-direct-method                      class
+  effective-method-after-methods                generic
+  effective-method-around-methods               generic
+  effective-method-before-methods               generic
+  effective-method-functions                    generic
+  simple-effective-method                       class
+  simple-message                                class
+  sod-method-role                               generic
+  standard-effective-method                     class
+  standard-message                              class
+
+method-proto.lisp
+  codegen-class                                 generic
+  codegen-message                               generic
+  codegen-method                                generic
+  codegen-target                                generic
+  compute-effective-method-body                 generic
+  compute-effective-method-keyword-arguments    function
+  compute-effective-methods                     generic
+  compute-method-entry-functions                generic
+  compute-sod-effective-method                  generic
+  convert-to-ilayout-inst                       class
+  effective-method                              class
+  effective-method-basic-argument-names         generic
+  effective-method-class                        generic
+  effective-method-function-name                generic
+  effective-method-keywords                     generic
+  effective-method-live-p                       generic
+  effective-method-message                      generic
+  ensure-ilayout-var                            function
+  inst-chain-head                               generic
+  inst-class                                    generic
+  inst-expr                                     generic
+  invoke-delegation-chain                       function
+  invoke-method                                 function
+  keyword-message-p                             function
+  make-convert-to-ilayout-inst                  function
+  make-method-entries                           generic
+  make-trampoline                               function
+  method-codegen                                class
+  method-entry                                  class
+  method-entry-chain-head                       generic
+  method-entry-chain-tail                       generic
+  method-entry-effective-method                 generic
+  method-entry-function-name                    generic
+  method-entry-function-type                    generic
+  method-entry-role                             generic
+  method-entry-slot-name                        generic
+  method-entry-slot-name-by-role                generic
+  primary-method-class                          generic
+  simple-method-body                            generic
+  sod-message-applicable-methods                generic
+  sod-message-argument-tail                     generic
+  sod-message-check-methods                     generic
+  sod-message-effective-method-class            generic
+  sod-message-keyword-argument-lists            generic
+  sod-message-receiver-type                     generic
+  sod-method-description                        generic
+  sod-method-function-name                      generic
+  sod-method-function-type                      generic
+  sod-method-next-method-type                   generic
+  varargs-message-p                             function
 
-class-layout-proto.lisp
-  base-offset                                   class
-  base-offset-chain-head                        generic
-  base-offset-class                             generic
-  chain-offset                                  class
-  chain-offset-chain-head                       generic
-  chain-offset-class                            generic
-  chain-offset-target-head                      generic
-  class-pointer                                 class
-  class-pointer-chain-head                      generic
-  class-pointer-class                           generic
-  class-pointer-meta-chain-head                 generic
-  class-pointer-metaclass                       generic
-  compute-effective-slot                        generic
-  compute-ichain                                generic
-  compute-ilayout                               generic
-  compute-islots                                generic
-  compute-vtable                                generic
-  compute-vtable-items                          generic
-  compute-vtables                               generic
-  compute-vtmsgs                                generic
-  effective-slot                                class
-  effective-slot-class                          generic
-  effective-slot-direct-slot                    generic
-  effective-slot-initializer                    generic
-  find-slot-initializer                         generic
-  ichain                                        class
-  ichain-body                                   generic
-  ichain-class                                  generic
-  ichain-head                                   generic
-  ichain-tail                                   generic
-  ilayout                                       class
-  ilayout-class                                 generic
-  ilayout-ichains                               generic
-  islots                                        class
-  islots-class                                  generic
-  islots-slots                                  generic
-  islots-subclass                               generic
-  make-base-offset                              generic
-  make-class-pointer                            generic
-  vtable                                        class
-  vtable-body                                   generic
-  vtable-chain-head                             generic
-  vtable-chain-tail                             generic
-  vtable-class                                  generic
-  vtable-pointer                                class
-  vtable-pointer-chain-head                     generic
-  vtable-pointer-chain-tail                     generic
-  vtable-pointer-class                          generic
+module-impl.lisp
+  *module-dirs*                                 variable
+  code-fragment                                 generic
+  code-fragment-constraints                     generic
+  code-fragment-item                            class
+  code-fragment-name                            generic
+  code-fragment-reason                          generic
+  find-file                                     function
+  type-item                                     class
 
-class-layout-impl.lisp
-  sod-class-effective-slot                      class
-  sod-class-slot                                class
+module-output.lisp
+  banner                                        function
+  declare-output-type                           function
+  guard-name                                    function
+  module-output-file                            generic
+  one-off-output                                function
+  output-module                                 function
+  output-type-pathname                          function
+  write-dependency-file                         generic
 
-c-types-proto.lisp
-  argument                                      class
-  argument-name                                 function setf
-  argument-type                                 function setf
-  argumentp                                     function
-  c-name-case                                   function
-  c-type                                        macro class
-  c-type-alias                                  macro
-  c-type-equal-p                                generic
-  c-type-qualifiers                             generic
-  c-type-space                                  function
-  c-type-subtype                                generic
-  canonify-qualifiers                           function
-  commentify-argument-name                      generic
-  defctype                                      macro
-  define-c-type-syntax                          macro
-  expand-c-type-form                            generic
-  expand-c-type-spec                            generic
-  format-qualifiers                             function
-  make-argument                                 function
-  maybe-in-parens                               macro
-  pprint-c-type                                 generic
-  print-c-type                                  generic
-  qualifiable-c-type                            class
-  qualify-c-type                                generic
+module-parse.lisp
+  class-item
+  read-module                                   function
 
-c-types-parse.lisp
-  parse-c-type                                  function
-  parse-declarator                              function
+module-proto.lisp
+  *module*                                      variable
+  add-clear-the-decks-function                  function
+  add-module-binding                            function
+  add-to-module                                 generic
+  c-fragment                                    class
+  c-fragment-text                               generic
+  clear-the-decks                               function
+  define-clear-the-decks                        macro
+  define-module                                 macro
+  define-module-var                             macro
+  finalize-module                               generic
+  module                                        class
+  module-dependencies                           generic setf-generic
+  module-errors                                 generic
+  module-files                                  generic setf-generic
+  module-import                                 generic
+  module-items                                  generic setf-generic
+  module-name                                   generic
+  module-pset                                   generic
+  module-state                                  generic setf-generic
+  with-module-environment                       macro
+  with-temporary-module                         macro
 
-c-types-impl.lisp
-  cl:*                                          variable function c-type
-  cl:array                                      class c-type
-  c-array-dimensions                            generic
-  c-array-type                                  class
-  c-enum-type                                   class
-  c-function-arguments                          generic
-  c-function-type                               class
-  c-pointer-type                                class
-  c-struct-type                                 class
-  c-tagged-type-kind                            generic
-  c-type-name                                   generic
-  c-type-tag                                    generic
-  c-union-type                                  class
-  cl:char                                       function setf c-type parser
-  commentify-argument-names                     function
-  commentify-function-type                      function
-  const-string                                  c-type
-  define-simple-c-type                          macro
-  double                                        c-type
-  enum                                          c-type
-  cl:float                                      function class c-type
-  fn                                            c-type
-  fun                                           c-type
-  func                                          c-type
-  cl:function                                   function class c-type
-  int                                           c-type
-  kind-c-tagged-type                            generic
-  llong                                         c-type
-  long                                          c-type
-  long-double                                   c-type
-  long-int                                      c-type
-  long-long                                     c-type
-  long-long-int                                 c-type
-  make-array-type                               function
-  make-c-tagged-type                            function
-  make-enum-type                                function
-  make-function-type                            function
-  make-pointer-type                             function
-  make-simple-type                              function
-  make-struct-type                              function
-  make-union-type                               function
-  cl:nil                                        constant c-type parser
-  pointer                                       c-type
-  ptr                                           c-type
-  ptrdiff-t                                     c-type
-  cl:schar                                      function setf c-type
-  short                                         c-type
-  short-int                                     c-type
-  signed                                        c-type
-  signed-char                                   c-type
-  signed-int                                    c-type
-  signed-long                                   c-type
-  signed-long-int                               c-type
-  signed-long-long                              c-type
-  signed-long-long-int                          c-type
-  signed-short                                  c-type
-  signed-short-int                              c-type
-  simple-c-type                                 class
-  sint                                          c-type
-  size-t                                        c-type
-  sllong                                        c-type
-  slong                                         c-type
-  sshort                                        c-type
-  cl:string                                     function class c-type opthandler
-  struct                                        c-type
-  tagged-c-type                                 class
-  uchar                                         c-type
-  uint                                          c-type
-  ullong                                        c-type
-  ulong                                         c-type
-  cl:union                                      function c-type
-  unsigned                                      c-type
-  unsigned-char                                 c-type
-  unsigned-int                                  c-type
-  unsigned-long                                 c-type
-  unsigned-long-int                             c-type
-  unsigned-long-long                            c-type
-  unsigned-long-long-int                        c-type
-  unsigned-short                                c-type
-  unsigned-short-int                            c-type
-  ushort                                        c-type
-  va-list                                       c-type
-  vec                                           c-type
-  void                                          c-type
-  []                                            c-type
+output-proto.lisp
+  add-sequencer-constraint                      generic
+  add-sequencer-item-function                   generic
+  ensure-sequencer-item                         generic
+  hook-output                                   generic
+  invoke-sequencer-items                        generic
+  make-sequencer-item                           function
+  sequence-output                               macro
+  sequencer                                     class
+  sequencer-constraints                         generic setf-generic
+  sequencer-item                                class
+  sequencer-item-functions                      function setf-function
+  sequencer-item-name                           function
+  sequencer-item-p                              function
+  sequencer-table                               generic
 
-c-types-class-impl.lisp
-  c-class-type                                  class
-  c-type-class                                  generic setf
-  cl:class                                      class c-type
-  find-class-type                               function
-  find-sod-class                                function
-  make-class-type                               function
-  record-sod-class                              function
+pset-parse.lisp
+  parse-property                                function
+  parse-property-set                            function
 
-builtin.lisp
-  *builtin-module*                              variable
-  make-builtin-module                           function
+pset-proto.lisp
+  add-property                                  function
+  check-unused-properties                       function
+  coerce-property-value                         generic
+  decode-property                               generic
+  default-slot-from-property                    macro
+  get-property                                  function
+  make-property                                 function
+  make-property-set                             function
+  make-pset                                     function
+  p-key                                         function
+  p-name                                        function
+  p-seenp                                       function setf-function
+  p-type                                        function
+  p-value                                       function
+  property                                      class
+  property-key                                  function
+  property-set                                  generic
+  propertyp                                     function
+  pset                                          class
+  pset-get                                      function
+  pset-map                                      function
+  pset-store                                    function
+  psetp                                         function
+  store-property                                function
+  with-pset-iterator                            macro
 
 Classes:
 cl:t
   sb-pcl::slot-object
+    cl:condition
+      sod-parser:condition-with-location
+        sod-parser:error-with-location [cl:error]
+          sod-parser:base-lexer-error
+            lexer-error [sod-parser:parser-error]
+          sod-parser:base-syntax-error
+            syntax-error [sod-parser:parser-error]
+      cl:serious-condition
+        cl:error
+          sod-parser:error-with-location [sod-parser:condition-with-location]
+            sod-parser:base-lexer-error
+              lexer-error [sod-parser:parser-error]
+            sod-parser:base-syntax-error
+              syntax-error [sod-parser:parser-error]
+          sod-parser:parser-error
+            lexer-error [sod-parser:base-lexer-error]
+            syntax-error [sod-parser:base-syntax-error]
     cl:standard-object
+      alignas-storage-specifier
       base-offset
       sod::basic-codegen
         codegen
@@ -516,7 +756,10 @@ cl:t
       c-type
         c-array-type
         c-function-type
+          c-keyword-function-type
+        c-storage-specifiers-type
         qualifiable-c-type
+          c-atomic-type
           c-pointer-type
           simple-c-type
             c-class-type
@@ -538,22 +781,23 @@ cl:t
         sod-class-effective-slot
       ichain
       ilayout
+      inheritance-path-reporter-state
       inst
+        banner-inst
         block-inst
         break-inst
         call-inst
+        cond-inst
         continue-inst
         convert-to-ilayout-inst
         do-while-inst
         expr-inst
+        for-inst
         function-inst
         if-inst
         return-inst
         set-inst
         update-inst
-        va-copy-inst
-        va-end-inst
-        va-start-inst
         var-inst
         while-inst
       islots
@@ -568,6 +812,9 @@ cl:t
           cl:class [sb-pcl::definition-source-mixin sb-pcl::standard-specializer]
       sequencer
       sod-class
+      sod-initarg
+        sod-slot-initarg
+        sod-user-initarg
       sod-initializer
         sod-class-initializer
         sod-instance-initializer
@@ -591,6 +838,7 @@ cl:t
       type-item
       vtable
       vtable-pointer
+      vtmsgs
     cl:structure-object
       argument
       property
@@ -605,41 +853,56 @@ add-sequencer-item-function
 add-to-module
   module t
 aggregating-message-properties
-  aggregating-message (eql :custom)
   t t
+  aggregating-message (eql :custom)
 base-offset-chain-head
   base-offset
 base-offset-class
   base-offset
 c-array-dimensions
   c-array-type
+c-fragment-text
+  c-fragment
 c-function-arguments
   c-function-type
+c-function-keywords
+  c-keyword-function-type
+c-qualifier-keyword
+  (eql :atomic)
+  cl:symbol
 c-tagged-type-kind
-  c-union-type
-  c-struct-type
   c-enum-type
+  c-struct-type
+  c-union-type
 c-type-class
   c-class-type
 (setf c-type-class)
   t c-class-type
 c-type-equal-p
-  c-class-type c-class-type
-  c-function-type c-function-type
-  c-array-type c-array-type
-  c-pointer-type c-pointer-type
-  tagged-c-type tagged-c-type
-  simple-c-type simple-c-type
-  qualifiable-c-type qualifiable-c-type
-  t t
+  t t [and]
+  c-array-type c-array-type [and]
+  c-atomic-type c-atomic-type [and]
+  c-class-type c-class-type [and]
+  c-function-type c-function-type [and]
+  c-keyword-function-type c-keyword-function-type [and]
+  c-pointer-type c-pointer-type [and]
+  c-storage-specifiers-type c-type [:around]
+  c-type c-storage-specifiers-type [:around]
+  qualifiable-c-type qualifiable-c-type [and]
+  simple-c-type simple-c-type [and]
+  tagged-c-type tagged-c-type [and]
 c-type-name
   simple-c-type
 c-type-qualifiers
   qualifiable-c-type
+c-type-specifiers
+  c-storage-specifiers-type
 c-type-subtype
-  c-function-type
   c-array-type
+  c-atomic-type
+  c-function-type
   c-pointer-type
+  c-storage-specifiers-type
 c-type-tag
   tagged-c-type
 chain-offset-chain-head
@@ -649,18 +912,22 @@ chain-offset-class
 chain-offset-target-head
   chain-offset
 check-aggregating-message-type
-  aggregating-message (eql :or) c-function-type
-  aggregating-message (eql :and) c-function-type
-  aggregating-message (eql :progn) c-function-type
   t t t
+  aggregating-message (eql :progn) c-function-type
+check-class-initializer
+  effective-slot sod-class
+  sod-class-effective-slot sod-class
 check-message-type
   aggregating-message t
-  sod-message c-type
   sod-message c-function-type
+  sod-message c-type
 check-method-type
   daemon-direct-method sod-message c-function-type
+  sod-method aggregating-message c-function-type
   sod-method sod-message c-function-type
   sod-method sod-message c-type
+check-sod-class
+  sod-class
 class-pointer-chain-head
   class-pointer
 class-pointer-class
@@ -669,14 +936,20 @@ class-pointer-meta-chain-head
   class-pointer
 class-pointer-metaclass
   class-pointer
+code-fragment
+  code-fragment-item
+code-fragment-constraints
+  code-fragment-item
+code-fragment-name
+  code-fragment-item
+code-fragment-reason
+  code-fragment-item
 codegen-add-function
   codegen t
 codegen-class
   method-codegen
 codegen-functions
   codegen
-(setf codegen-functions)
-  t codegen
 codegen-message
   method-codegen
 codegen-method
@@ -692,29 +965,38 @@ codegen-push
 codegen-target
   method-codegen
 coerce-property-value
-  cl:symbol (eql :symbol) (eql :id)
-  cl:string (eql :string) (eql :id)
-  cl:string (eql :string) (eql :symbol)
+  cl:integer (eql :int) (eql :boolean)
+  cl:string (eql :id) (eql :boolean)
+  cl:string (eql :id) (eql :keyword)
   cl:string (eql :id) (eql :symbol)
+  cl:string (eql :id) (eql :type)
+  cl:string (eql :string) (eql :id)
   cl:string (eql :string) (eql :keyword)
-  cl:string (eql :id) (eql :keyword)
+  cl:string (eql :string) (eql :symbol)
+  cl:symbol (eql :symbol) (eql :boolean)
+  cl:symbol (eql :symbol) (eql :id)
   cl:symbol (eql :symbol) (eql :keyword)
-  t t t
   t t (eql cl:t)
+  t t t
 commentify-argument-name
-  temporary-name
   cl:null
   t
+  temporary-name
 compute-aggregating-message-kernel
-  aggregating-message (eql :custom) t t t t
-  aggregating-message (eql :or) t t t t
   aggregating-message (eql :and) t t t t
+  aggregating-message (eql :custom) t t t t
   aggregating-message (eql :max) t t t t
   aggregating-message (eql :min) t t t t
+  aggregating-message (eql :or) t t t t
   aggregating-message (eql :product) t t t t
-  aggregating-message (eql :sum) t t t t
   aggregating-message (eql :progn) t t t t
+  aggregating-message (eql :sum) t t t t
+compute-chains
+  sod-class
+compute-cpl
+  sod-class
 compute-effective-method-body
+  basic-effective-method t t [:around]
   simple-effective-method t t
 compute-effective-methods
   sod-class
@@ -728,8 +1010,8 @@ compute-ilayout
 compute-islots
   sod-class sod-class
 compute-method-entry-functions
-  simple-effective-method
   basic-effective-method
+  effective-method [:around]
 compute-sod-effective-method
   sod-message sod-class
 compute-vtable
@@ -741,19 +1023,35 @@ compute-vtables
 compute-vtmsgs
   sod-class sod-class sod-class sod-class
 decode-property
-  cl:symbol
-  cl:integer
-  cl:string
   cl:character
-  property
   cl:cons
   cl:function
+  cl:integer
+  cl:string
+  cl:symbol
+  c-fragment
+  c-type
+  property
+effective-method-after-methods
+  basic-effective-method
+effective-method-around-methods
+  basic-effective-method
 effective-method-basic-argument-names
   basic-effective-method
+effective-method-before-methods
+  basic-effective-method
 effective-method-class
   effective-method
 effective-method-function-name
   effective-method
+effective-method-functions
+  basic-effective-method
+effective-method-keywords
+  effective-method
+effective-method-live-p
+  aggregating-effective-method
+  sod::lifecycle-effective-method
+  simple-effective-method
 effective-method-message
   effective-method
 effective-slot-class
@@ -762,6 +1060,16 @@ effective-slot-direct-slot
   effective-slot
 effective-slot-initializer
   effective-slot
+effective-slot-initializer-function
+  sod-class-effective-slot
+effective-slot-prepare-function
+  sod-class-effective-slot
+emit-class-conversion-macro
+  sod-class sod-class t
+emit-class-object-decl
+  sod-class t
+emit-class-typedef
+  sod-class t
 emit-decl
   sod::basic-codegen t
 emit-decls
@@ -769,157 +1077,254 @@ emit-decls
 emit-inst
   sod::basic-codegen t
 emit-insts
-  sod::basic-codegen t
   t t
+  sod::basic-codegen t
+emit-message-macro
+  sod-class method-entry t
+emit-message-macro-defn
+  sod-class method-entry t t t t t
+  sod-class method-entry t t t t t [:around]
 ensure-sequencer-item
   sequencer t
 ensure-var
   sod::basic-codegen t t
+expand-c-storage-specifier
+  cl:list
+  cl:symbol
+expand-c-storage-specifier-form
+  (eql alignas) t
+  (eql sod-parser:lisp) t
 expand-c-type-form
+  (eql cl:*) t
+  (eql cl:array) t
+  (eql cl:char) t
   (eql cl:class) t
-  (eql fn) t
-  (eql func) t
-  (eql cl:nil) t
+  (eql cl:float) t
   (eql cl:function) t
-  (eql fun) t
-  (eql vec) t
-  (eql cl:array) t
-  (eql []) t
-  (eql ptr) t
-  (eql pointer) t
-  (eql cl:*) t
+  (eql cl:nil) t
   (eql cl:union) t
-  (eql struct) t
+  (eql atomic) t
+  (eql bool) t
+  (eql double) t
+  (eql double-complex) t
+  (eql double-imaginary) t
   (eql enum) t
-  (eql ptrdiff-t) t
-  (eql size-t) t
-  (eql va-list) t
+  (eql float-complex) t
+  (eql float-imaginary) t
+  (eql fn) t
+  (eql fun) t
+  (eql func) t
+  (eql int-fast16-t) t
+  (eql int-fast32-t) t
+  (eql int-fast64-t) t
+  (eql int-fast8-t) t
+  (eql int-least16-t) t
+  (eql int-least32-t) t
+  (eql int-least64-t) t
+  (eql int-least8-t) t
+  (eql int16-t) t
+  (eql int32-t) t
+  (eql int64-t) t
+  (eql int8-t) t
+  (eql intmax-t) t
+  (eql intptr-t) t
+  (eql long) t
   (eql long-double) t
-  (eql double) t
-  (eql cl:float) t
-  (eql unsigned-long-long) t
+  (eql long-double-complex) t
+  (eql long-double-imaginary) t
   (eql long-long) t
-  (eql unsigned-long) t
-  (eql long) t
-  (eql unsigned-short) t
+  (eql pointer) t
+  (eql ptr) t
+  (eql ptrdiff-t) t
   (eql short) t
-  (eql unsigned) t
-  (eql int) t
   (eql signed-char) t
+  (eql size-t) t
+  (eql specs) t
+  (eql struct) t
+  (eql uint-fast16-t) t
+  (eql uint-fast32-t) t
+  (eql uint-fast64-t) t
+  (eql uint-fast8-t) t
+  (eql uint-least16-t) t
+  (eql uint-least32-t) t
+  (eql uint-least64-t) t
+  (eql uint-least8-t) t
+  (eql uint16-t) t
+  (eql uint32-t) t
+  (eql uint64-t) t
+  (eql uint8-t) t
+  (eql uintmax-t) t
+  (eql uintptr-t) t
+  (eql unsigned) t
   (eql unsigned-char) t
-  (eql cl:char) t
+  (eql unsigned-long) t
+  (eql unsigned-long-long) t
+  (eql unsigned-short) t
+  (eql va-list) t
+  (eql vec) t
   (eql void) t
-  cl:string t
+  (eql wchar-t) t
+  (eql []) t
   (eql sod-parser:lisp) t
+  (eql sod-utilities:int) t
+  cl:string t
 expand-c-type-spec
-  (eql const-string)
+  (eql cl:char)
+  (eql cl:float)
+  (eql cl:schar)
   (eql cl:string)
-  (eql ptrdiff-t)
-  (eql size-t)
-  (eql va-list)
-  (eql long-double)
+  (eql bool)
+  (eql const-string)
   (eql double)
-  (eql cl:float)
-  (eql ullong)
-  (eql unsigned-long-long-int)
-  (eql unsigned-long-long)
-  (eql sllong)
+  (eql double-complex)
+  (eql double-imaginary)
+  (eql float-complex)
+  (eql float-imaginary)
+  (eql int-fast16-t)
+  (eql int-fast32-t)
+  (eql int-fast64-t)
+  (eql int-fast8-t)
+  (eql int-least16-t)
+  (eql int-least32-t)
+  (eql int-least64-t)
+  (eql int-least8-t)
+  (eql int16-t)
+  (eql int32-t)
+  (eql int64-t)
+  (eql int8-t)
+  (eql intmax-t)
+  (eql intptr-t)
   (eql llong)
-  (eql signed-long-long-int)
+  (eql long)
+  (eql long-double)
+  (eql long-double-complex)
+  (eql long-double-imaginary)
+  (eql long-int)
+  (eql long-long)
   (eql long-long-int)
+  (eql ptrdiff-t)
+  (eql short)
+  (eql short-int)
+  (eql signed)
+  (eql signed-char)
+  (eql signed-int)
+  (eql signed-long)
+  (eql signed-long-int)
   (eql signed-long-long)
-  (eql long-long)
-  (eql ulong)
-  (eql unsigned-long-int)
-  (eql unsigned-long)
+  (eql signed-long-long-int)
+  (eql signed-short)
+  (eql signed-short-int)
+  (eql sint)
+  (eql size-t)
+  (eql sllong)
   (eql slong)
-  (eql signed-long-int)
-  (eql long-int)
-  (eql signed-long)
-  (eql long)
-  (eql ushort)
-  (eql unsigned-short-int)
-  (eql unsigned-short)
   (eql sshort)
-  (eql signed-short-int)
-  (eql short-int)
-  (eql signed-short)
-  (eql short)
+  (eql uchar)
   (eql uint)
-  (eql unsigned-int)
+  (eql uint-fast16-t)
+  (eql uint-fast32-t)
+  (eql uint-fast64-t)
+  (eql uint-fast8-t)
+  (eql uint-least16-t)
+  (eql uint-least32-t)
+  (eql uint-least64-t)
+  (eql uint-least8-t)
+  (eql uint16-t)
+  (eql uint32-t)
+  (eql uint64-t)
+  (eql uint8-t)
+  (eql uintmax-t)
+  (eql uintptr-t)
+  (eql ullong)
+  (eql ulong)
   (eql unsigned)
-  (eql sint)
-  (eql signed-int)
-  (eql signed)
-  (eql int)
-  (eql cl:schar)
-  (eql signed-char)
-  (eql uchar)
   (eql unsigned-char)
-  (eql cl:char)
+  (eql unsigned-int)
+  (eql unsigned-long)
+  (eql unsigned-long-int)
+  (eql unsigned-long-long)
+  (eql unsigned-long-long-int)
+  (eql unsigned-short)
+  (eql unsigned-short-int)
+  (eql ushort)
+  (eql va-list)
   (eql void)
-  cl:string
+  (eql wchar-t)
+  (eql sod-utilities:int)
   cl:list
+  cl:string
 sod-parser:file-location
+  c-fragment
   property
-  sod-method
-  sod-message
+  sod-class
+  sod-initarg
   sod-initializer
+  sod-message
+  sod-method
   sod-slot
-  sod-class
 finalize-module
   module
+finalize-sod-class
+  sod-class
+  sod-class [:around]
+find-class-initializer
+  effective-slot sod-class
+find-slot-initargs
+  sod-class sod-slot
 find-slot-initializer
   sod-class sod-slot
 format-temporary-name
-  temporary-function t
-  temporary-variable t
   temporary-argument t
+  temporary-function t
   temporary-name t
+  temporary-variable t
 guess-metaclass
   sod-class
 hook-output
-  effective-slot (eql cl:class) t
-  sod-class-effective-slot (eql cl:class) t
-  vtable-pointer (eql cl:class) t
-  islots (eql cl:class) t
-  ichain (eql cl:class) t
-  method-entry (eql :c) t
-  sod::vtmsgs (eql :c) t
-  chain-offset (eql :c) t
+  t t t
   base-offset (eql :c) t
-  class-pointer (eql :c) t
-  vtable (eql :c) t
+  base-offset (eql :h) t
   basic-effective-method (eql :c) t
-  sod-method (eql :c) t
-  delegating-direct-method (eql :c) t
-  sod-class (eql :c) t
+  chain-offset (eql :c) t
   chain-offset (eql :h) t
-  base-offset (eql :h) t
+  class-pointer (eql :c) t
   class-pointer (eql :h) t
-  method-entry (eql sod::vtmsgs) t
-  sod::vtmsgs t t
-  sod::vtmsgs (eql sod::vtmsgs) t
-  sod::vtmsgs (eql :h) t
-  vtable (eql :h) t
-  sod-method (eql :h) t
-  vtable t t
-  islots (eql :h) t
-  islots t t
-  vtable-pointer (eql :h) t
-  ichain (eql ilayout) t
+  code-fragment-item t t
+  delegating-direct-method (eql :c) t
+  effective-slot (eql cl:class) t
   ichain (eql :h) t
+  ichain (eql cl:class) t
+  ichain (eql ilayout) t
+  ichain t t [:after]
+  ilayout (eql :h) t [:after]
   ilayout (eql :h) t
-  ichain t t
-  ilayout t t
-  sod-slot (eql islots) t
-  sod-class t t
-  sod-class (eql :h) t
+  ilayout t t [:after]
+  islots (eql :h) t
+  islots (eql cl:class) t
+  islots t t [:after]
+  method-entry (eql :c) t
+  method-entry (eql vtmsgs) t
   module (eql :c) t
   module (eql :h) t
-  code-fragment-item t t
-  module t t
-  t t t
+  module t t [:after]
+  sod-class (eql :c) t [:after]
+  sod-class (eql :c) t
+  sod-class (eql :h) t [:after]
+  sod-class (eql :h) t
+  sod-class t t [:after]
+  sod-class-effective-slot (eql cl:class) t
+  sod-method (eql :c) t
+  sod-method (eql :h) t
+  sod-slot (eql islots) t
+  vtable (eql :c) t
+  vtable (eql :h) t
+  vtable t t [:after]
+  vtable-pointer (eql :h) t
+  vtable-pointer (eql cl:class) t
+  vtmsgs (eql :c) t
+  vtmsgs (eql :h) t
+  vtmsgs (eql vtmsgs) t
+  vtmsgs t t [:after]
 ichain-body
   ichain
 ichain-class
@@ -933,77 +1338,85 @@ ilayout-class
 ilayout-ichains
   ilayout
 inst-alt
+  cond-inst
   if-inst
-inst-ap
-  va-end-inst
-  va-start-inst
-inst-arg
-  va-start-inst
 inst-args
+  banner-inst
   call-inst
+inst-banner
+  function-inst
+inst-banner-args
+  function-inst
 inst-body
+  block-inst
   do-while-inst
-  while-inst
+  for-inst
   function-inst
-  block-inst
+  while-inst
 inst-chain-head
   convert-to-ilayout-inst
 inst-class
   convert-to-ilayout-inst
 inst-cond
+  cond-inst
   do-while-inst
-  while-inst
+  for-inst
   if-inst
+  while-inst
 inst-conseq
+  cond-inst
   if-inst
+inst-control
+  banner-inst
 inst-decls
   block-inst
 inst-expr
   convert-to-ilayout-inst
   expr-inst
   return-inst
-  update-inst
   set-inst
-inst-from
-  va-copy-inst
+  update-inst
 inst-func
   call-inst
 inst-init
+  for-inst
   var-inst
 inst-metric
-  convert-to-ilayout-inst
+  cl:list
+  cl:null
+  t
+  banner-inst
+  block-inst
+  break-inst
   call-inst
-  va-end-inst
-  va-copy-inst
-  va-start-inst
+  cond-inst
+  continue-inst
+  convert-to-ilayout-inst
   do-while-inst
-  while-inst
-  if-inst
-  function-inst
-  block-inst
   expr-inst
-  continue-inst
-  break-inst
+  for-inst
+  function-inst
+  if-inst
   return-inst
-  update-inst
   set-inst
+  sod::suppliedp-struct-inst
+  update-inst
   var-inst
-  t
-  cl:null
-  cl:list
+  while-inst
 inst-name
   function-inst
   var-inst
 inst-op
   update-inst
-inst-to
-  va-copy-inst
 inst-type
   function-inst
   var-inst
+inst-update
+  for-inst
 inst-var
-  update-inst
   set-inst
+  sod::suppliedp-struct-inst
+  update-inst
 invoke-sequencer-items
   sequencer
 islots-class
@@ -1013,11 +1426,13 @@ islots-slots
 islots-subclass
   islots
 kind-c-tagged-type
-  (eql :union)
-  (eql :struct)
   (eql :enum)
+  (eql :struct)
+  (eql :union)
 make-base-offset
   sod-class sod-class
+make-chain-offset
+  sod-class sod-class sod-class
 make-class-pointer
   sod-class sod-class sod-class sod-class
 cl:make-load-form
@@ -1026,12 +1441,16 @@ make-method-entries
   basic-effective-method sod-class sod-class
 sod-parser:make-scanner-stream
   sod-token-scanner
+make-sod-class-initfrag
+  sod-class t t
 make-sod-class-initializer
-  sod-class t t t t t
+  sod-class t t t t
+make-sod-class-tearfrag
+  sod-class t t
 make-sod-initializer-using-slot
-  sod-class sod-slot t t t t t
+  sod-class sod-slot t t t t
 make-sod-instance-initializer
-  sod-class t t t t t
+  sod-class t t t t
 make-sod-message
   sod-class t t t
 make-sod-method
@@ -1040,9 +1459,12 @@ make-sod-method-using-message
   sod-message sod-class t t t t
 make-sod-slot
   sod-class t t t
-message-effective-method-class
-  aggregating-message
-  standard-message
+make-sod-slot-initarg
+  sod-class t t t t
+make-sod-slot-initarg-using-slot
+  sod-class t sod-slot t
+make-sod-user-initarg
+  sod-class t t t
 method-entry-chain-head
   method-entry
 method-entry-chain-tail
@@ -1053,84 +1475,117 @@ method-entry-function-name
   effective-method sod-class t
 method-entry-function-type
   method-entry
+method-entry-role
+  method-entry
 method-entry-slot-name
   method-entry
+method-entry-slot-name-by-role
+  method-entry (eql :valist) t
+  method-entry (eql cl:nil) t
 module-dependencies
   module
 (setf module-dependencies)
   t module
+module-errors
+  module
+module-files
+  module
+(setf module-files)
+  t module
 module-import
+  t
+  module
   sod-class
   type-item
-  module
-  t
 module-items
   module
 (setf module-items)
   t module
 module-name
   module
+module-output-file
+  module cl:pathname t
+  module cl:symbol t
 module-pset
   module
+module-state
+  module
+(setf module-state)
+  t module
+pprint-c-storage-specifier
+  cl:symbol t
+  alignas-storage-specifier t
 pprint-c-type
-  c-function-type t t
+  t t t [:around]
   c-array-type t t
+  c-atomic-type t t
+  c-function-type t t
+  c-keyword-function-type t t
   c-pointer-type t t
-  tagged-c-type t t
+  c-storage-specifiers-type t t
   simple-c-type t t
-  t t t
+  tagged-c-type t t
 primary-method-class
-  standard-message
   simple-message
+  standard-message
+print-c-storage-specifier
+  t cl:symbol
+  t t
+  t alignas-storage-specifier
 print-c-type
+  t c-array-type
+  t c-atomic-type
   t c-class-type
   t c-function-type
-  t c-array-type
   t c-pointer-type
-  t tagged-c-type
-  t simple-c-type
-cl:print-object
-  vtable t
-  chain-offset t
-  base-offset t
-  class-pointer t
-  ilayout t
-  ichain t
-  vtable-pointer t
-  islots t
-  method-entry t
-  effective-method t
-  effective-slot t
-  convert-to-ilayout-inst t
-  sequencer-item t
+  t c-storage-specifiers-type
+  t simple-c-type
+  t tagged-c-type
+cl:print-object
+  banner-inst t
+  base-offset t
+  block-inst t
+  break-inst t
   c-fragment t
+  c-type t
   call-inst t
-  va-end-inst t
-  va-copy-inst t
-  va-start-inst t
+  chain-offset t
+  class-pointer t
+  cond-inst t
+  continue-inst t
+  convert-to-ilayout-inst t
   do-while-inst t
-  while-inst t
-  if-inst t
-  temporary-name t
-  function-inst t
-  block-inst t
+  effective-method t
+  effective-slot t
   expr-inst t
-  continue-inst t
-  break-inst t
+  for-inst t
+  function-inst t
+  ichain t
+  if-inst t
+  ilayout t
+  islots t
+  method-entry t
+  pset t
   return-inst t
-  update-inst t
+  sequencer-item t
   set-inst t
-  var-inst t
-  pset t
-  sod-method t
-  sod-message t
+  sod-class t
   sod-initializer t
+  sod-message t
+  sod-method t
   sod-slot t
-  sod-class t
-  c-type t
+  sod-slot-initarg t
+  sod-user-initarg t
+  temporary-name t
+  update-inst t
+  var-inst t
+  vtable t
+  vtable-pointer t
+  vtmsgs t
+  while-inst t
 property-set
-  pset
   cl:list
+  pset
 qualify-c-type
   qualifiable-c-type t
 sod-parser:scanner-token
@@ -1142,56 +1597,61 @@ sequencer-constraints
 sequencer-table
   sequencer
 cl:shared-initialize
-  aggregating-message t
-  method-codegen t
-  simple-effective-method t
-  basic-direct-method t
-  sod-class-slot t
-  sod-method t
-  sod-message t
-  sod-initializer t
-  sod-slot t
-  sod-class t
-  module t
-  c-function-type t
-  sod-token-scanner t
+  aggregating-message t [:before]
+  basic-direct-method t [:after]
+  c-function-type t [:after]
+  c-keyword-function-type t [:after]
+  effective-method t [:after]
+  method-codegen t [:after]
+  module t [:after]
+  sequencer t
+  simple-effective-method t [:after]
+  sod-class t [:after]
+  sod-class-slot t [:after]
+  sod-initializer t [:after]
+  sod-message t [:after]
+  sod-method t [:after]
+  sod-slot t [:after]
+  sod-token-scanner t [:after]
 simple-method-body
   aggregating-effective-method t t
+  sod::lifecycle-effective-method t t
   standard-effective-method t t
 cl:slot-unbound
-  t basic-effective-method (eql sod::functions)
+  t basic-direct-method (eql sod::function-type)
   t basic-effective-method (eql sod::basic-argument-names)
+  t basic-effective-method (eql sod::functions)
+  t basic-message (eql sod::argument-tail)
   t delegating-direct-method (eql sod::function-type)
   t delegating-direct-method (eql sod::next-method-type)
-  t basic-direct-method (eql sod::function-type)
-  t basic-message (eql sod::no-varargs-tail)
-  t basic-message (eql sod::argument-tail)
-  t sod-class (eql sod::vtables)
-  t sod-class (eql sod::effective-methods)
   t sod-class (eql sod::%ilayout)
+  t sod-class (eql sod::effective-methods)
+  t sod-class (eql sod::vtables)
 sod-class-chain
   sod-class
-(setf sod-class-chain)
-  t sod-class
 sod-class-chain-head
   sod-class
-(setf sod-class-chain-head)
-  t sod-class
 sod-class-chain-link
   sod-class
 sod-class-chains
   sod-class
-(setf sod-class-chains)
-  t sod-class
 sod-class-class-initializers
   sod-class
 (setf sod-class-class-initializers)
   t sod-class
 sod-class-direct-superclasses
   sod-class
+sod-class-effective-methods
+  sod-class
 sod-class-ilayout
   sod-class
-(setf sod-class-ilayout)
+sod-class-initargs
+  sod-class
+(setf sod-class-initargs)
+  t sod-class
+sod-class-initfrags
+  sod-class
+(setf sod-class-initfrags)
   t sod-class
 sod-class-instance-initializers
   sod-class
@@ -1213,50 +1673,77 @@ sod-class-nickname
   sod-class
 sod-class-precedence-list
   sod-class
-(setf sod-class-precedence-list)
-  t sod-class
 sod-class-slots
   sod-class
 (setf sod-class-slots)
   t sod-class
 sod-class-state
   sod-class
-(setf sod-class-state)
+sod-class-tearfrags
+  sod-class
+(setf sod-class-tearfrags)
   t sod-class
 sod-class-type
   sod-class
-(setf sod-class-type)
-  t sod-class
 sod-class-vtables
   sod-class
-(setf sod-class-vtables)
-  t sod-class
+sod-initarg-argument
+  sod-initarg
+sod-initarg-class
+  sod-initarg
+sod-initarg-default
+  sod-initarg
+  sod-user-initarg
+sod-initarg-name
+  sod-initarg
+sod-initarg-slot
+  sod-slot-initarg
+sod-initarg-type
+  sod-initarg
 sod-initializer-class
   sod-initializer
 sod-initializer-slot
   sod-initializer
-sod-initializer-value-form
-  sod-initializer
-sod-initializer-value-kind
+sod-initializer-value
   sod-initializer
+sod-message-applicable-methods
+  sod-message sod-class
 sod-message-argument-tail
   basic-message
+sod-message-check-methods
+  sod-message sod-class t
 sod-message-class
   sod-message
+sod-message-combination
+  aggregating-message
+sod-message-effective-method-class
+  aggregating-message
+  sod::initialization-message
+  standard-message
+  sod::teardown-message
+sod-message-kernel-function
+  aggregating-message
+sod-message-keyword-argument-lists
+  sod::initialization-message sod-class t t
+  sod-message sod-class t t
 sod-message-method-class
-  simple-message sod-class t
   basic-message sod-class t
+  simple-message sod-class t
   sod-message sod-class t
 sod-message-name
   sod-message
-sod-message-no-varargs-tail
-  basic-message
+sod-message-readonly-p
+  sod-message
+sod-message-receiver-type
+  sod-message sod-class
 sod-message-type
   sod-message
 sod-method-body
   sod-method
 sod-method-class
   sod-method
+sod-method-description
+  basic-direct-method
 sod-method-function-name
   basic-direct-method
 sod-method-function-type
@@ -1265,12 +1752,18 @@ sod-method-message
   sod-method
 sod-method-next-method-type
   delegating-direct-method
+sod-method-role
+  basic-direct-method
 sod-method-type
   sod-method
 sod-slot-class
   sod-slot
+sod-slot-initializer-function
+  sod-class-slot
 sod-slot-name
   sod-slot
+sod-slot-prepare-function
+  sod-class-slot
 sod-slot-type
   sod-slot
 temp-tag
@@ -1278,8 +1771,8 @@ temp-tag
 temporary-var
   sod::basic-codegen t
 var-in-use-p
-  temporary-variable
   t
+  temporary-variable
 (setf var-in-use-p)
   t temporary-variable
 vtable-body
@@ -1296,20 +1789,46 @@ vtable-pointer-chain-tail
   vtable-pointer
 vtable-pointer-class
   vtable-pointer
+vtmsgs-chain-head
+  vtmsgs
+vtmsgs-chain-tail
+  vtmsgs
+vtmsgs-class
+  vtmsgs
+vtmsgs-entries
+  vtmsgs
+vtmsgs-subclass
+  vtmsgs
+write-dependency-file
+  module t t
+
+-----------------------------------------------------------------------------
+Package `sod-frontend'
+
+frontend.lisp
+  augment-options                               function
+  main                                          function
+
+Classes:
+cl:t
+
+Methods:
 
 -----------------------------------------------------------------------------
 Package `sod-parser'
 
 floc-proto.lisp
-  cerror*                                       function
+  base-lexer-error                              class
+  base-syntax-error                             class
   cerror*-with-location                         function
   cerror-with-location                          function
+  classify-condition                            generic
   condition-with-location                       class
   count-and-report-errors                       macro
-  enclosed-condition                            generic
-  enclosing-condition                           class
   enclosing-condition-with-location             class
+  enclosing-condition-with-location-type        generic
   enclosing-error-with-location                 class
+  enclosing-information-with-location           class
   enclosing-warning-with-location               class
   error-with-location                           function class
   file-location                                 generic class
@@ -1317,30 +1836,37 @@ floc-proto.lisp
   file-location-filename                        function
   file-location-line                            function
   file-location-p                               function
+  info-with-location                            function
+  information-with-location                     class
   make-condition-with-location                  function
   make-file-location                            function
+  parser-error                                  class
+  parser-error-expected                         generic
+  parser-error-found                            generic
+  report-parser-error                           function
   simple-condition-with-location                class
   simple-error-with-location                    class
+  simple-information-with-location              class
+  simple-lexer-error                            class
+  simple-syntax-error                           class
   simple-warning-with-location                  class
   warn-with-location                            function
   warning-with-location                         class
   with-default-error-location                   macro
 
 parser-expr-proto.lisp
-  apply-operator                                generic
   binop                                         macro
   close-parenthesis                             class
-  expr                                          parser
+  expr                                          parser-form
   lparen                                        function
   open-parenthesis                              class
+  operator-associativity                        generic
   operator-left-precedence                      generic
   operator-push-action                          generic
   operator-right-precedence                     generic
   postop                                        macro
   prefix-operator                               class
   preop                                         macro
-  push-operator                                 generic
-  push-value                                    generic
   rparen                                        function
   simple-binary-operator                        class
   simple-operator                               class
@@ -1353,28 +1879,31 @@ parser-impl.lisp
   string-parser                                 class
 
 parser-proto.lisp
-  ?                                             parser
-  cl:and                                        macro parser
+  ?                                             parser-form
+  cl:and                                        macro parser-form
   call-pluggable-parser                         function
-  cl:char                                       function setf c-type parser
+  cl:char                                       function setf-function c-type-spec c-type-form parser-form
   character-parser-context                      class
   combine-parser-failures                       function
+  commit                                        parser-form
   cond-parse                                    macro
   define-pluggable-parser                       macro
   defparse                                      macro
   expand-parser-form                            generic
   expand-parser-spec                            generic
-  filter                                        parser
-  if-char                                       parser
+  filter                                        parser-form
+  if-char                                       parser-form
   if-parse                                      macro
   sod-utilities:it
-  label                                         parser
-  lisp                                          c-type parser
-  cl:list                                       function class parser opthandler
-  many                                          parser
-  cl:not                                        function parser
-  cl:or                                         macro parser
+  label                                         parser-form
+  lisp                                          c-type-form parser-form
+  cl:list                                       function class parser-form opthandler
+  many                                          parser-form
+  cl:not                                        function parser-form
+  cl:or                                         macro parser-form
   parse
+  parse-empty                                   function
+  parse-fail                                    function
   parser                                        macro
   parser-at-eof-p                               generic
   parser-capture-place                          generic
@@ -1385,13 +1914,13 @@ parser-proto.lisp
   parser-step                                   generic
   parser-token-type                             generic
   parser-token-value                            generic
-  peek                                          parser
-  plug                                          parser
+  peek                                          parser-form
+  plug                                          parser-form
   pluggable-parser-add                          function
-  cl:satisfies                                  parser
-  seq                                           parser
-  skip-many                                     parser
-  token                                         parser
+  cl:satisfies                                  parser-form
+  seq                                           parser-form
+  skip-many                                     parser-form
+  token                                         parser-form
   token-parser-context                          class
   when-parse                                    macro
   with-parser-context                           macro
@@ -1401,6 +1930,7 @@ parser-proto.lisp
 scanner-charbuf-impl.lisp
   charbuf-scanner                               class
   charbuf-scanner-map                           generic
+  charbuf-scanner-place                         class
   charbuf-scanner-place-p                       function
   charbuf-scanner-stream                        class
 
@@ -1420,12 +1950,13 @@ scanner-proto.lisp
   parser-scanner                                generic
   scanner-at-eof-p                              generic
   scanner-capture-place                         generic
-  scanner-column                                generic setf
+  scanner-column                                generic setf-generic
   scanner-context                               class
   scanner-current-char                          generic
+  scanner-file-location                         function
   scanner-filename                              generic
   scanner-interval                              generic
-  scanner-line                                  generic setf
+  scanner-line                                  generic setf-generic
   scanner-release-place                         generic
   scanner-restore-place                         generic
   scanner-step                                  generic
@@ -1439,19 +1970,81 @@ scanner-proto.lisp
   token-value                                   generic
   with-scanner-place                            macro
 
-streams-impl.lisp
+streams-proto.lisp
   position-aware-input-stream                   class
   position-aware-output-stream                  class
   position-aware-stream                         class
-  position-aware-stream-column                  generic setf
-  position-aware-stream-line                    generic setf
-
-streams-proto.lisp
+  position-aware-stream-column                  generic setf-generic
+  position-aware-stream-file                    generic setf-generic
+  position-aware-stream-line                    generic setf-generic
+  stream-line-and-column                        generic
   stream-pathname                               generic
 
 Classes:
 cl:t
   sb-pcl::slot-object
+    cl:condition
+      condition-with-location
+        enclosing-condition-with-location [sod-utilities:enclosing-condition]
+          enclosing-error-with-location [cl:error]
+          enclosing-information-with-location [sod-utilities:information]
+          enclosing-warning-with-location [cl:warning]
+        error-with-location [cl:error]
+          base-lexer-error
+            simple-lexer-error [simple-error-with-location]
+          base-syntax-error
+            simple-syntax-error [simple-error-with-location]
+          simple-error-with-location [cl:simple-error]
+            simple-lexer-error [base-lexer-error]
+            simple-syntax-error [base-syntax-error]
+        information-with-location [sod-utilities:information]
+          simple-information-with-location [sod-utilities:simple-information]
+        simple-condition-with-location [cl:simple-condition]
+        warning-with-location [cl:warning]
+          simple-warning-with-location [cl:simple-warning]
+      sod-utilities:enclosing-condition
+        enclosing-condition-with-location [condition-with-location]
+          enclosing-error-with-location [cl:error]
+          enclosing-information-with-location [sod-utilities:information]
+          enclosing-warning-with-location [cl:warning]
+      sod-utilities:information
+        enclosing-information-with-location [enclosing-condition-with-location]
+        information-with-location [condition-with-location]
+          simple-information-with-location [sod-utilities:simple-information]
+        sod-utilities:simple-information [cl:simple-condition]
+          simple-information-with-location [information-with-location]
+      cl:serious-condition
+        cl:error
+          enclosing-error-with-location [enclosing-condition-with-location]
+          error-with-location [condition-with-location]
+            base-lexer-error
+              simple-lexer-error [simple-error-with-location]
+            base-syntax-error
+              simple-syntax-error [simple-error-with-location]
+            simple-error-with-location [cl:simple-error]
+              simple-lexer-error [base-lexer-error]
+              simple-syntax-error [base-syntax-error]
+          parser-error
+          cl:simple-error [cl:simple-condition]
+            simple-error-with-location [error-with-location]
+              simple-lexer-error [base-lexer-error]
+              simple-syntax-error [base-syntax-error]
+      cl:simple-condition
+        simple-condition-with-location [condition-with-location]
+        cl:simple-error [cl:error]
+          simple-error-with-location [error-with-location]
+            simple-lexer-error [base-lexer-error]
+            simple-syntax-error [base-syntax-error]
+        sod-utilities:simple-information [sod-utilities:information]
+          simple-information-with-location [information-with-location]
+        cl:simple-warning [cl:warning]
+          simple-warning-with-location [warning-with-location]
+      cl:warning
+        enclosing-warning-with-location [enclosing-condition-with-location]
+        cl:simple-warning [cl:simple-condition]
+          simple-warning-with-location [warning-with-location]
+        warning-with-location [condition-with-location]
+          simple-warning-with-location [cl:simple-warning]
     cl:standard-object
       character-parser-context
         character-scanner-context [scanner-context]
@@ -1509,6 +2102,7 @@ cl:t
         token-scanner-context [scanner-context]
       token-scanner
     cl:structure-object
+      charbuf-scanner-place
       file-location
       list-scanner
       string-scanner
@@ -1548,113 +2142,130 @@ cl:t
             position-aware-input-stream [position-aware-stream]
 
 Methods:
-apply-operator
-  open-parenthesis sod-parser::expression-parse-state
-  simple-binary-operator sod-parser::expression-parse-state
-  simple-unary-operator sod-parser::expression-parse-state
 charbuf-scanner-map
   charbuf-scanner t
-enclosed-condition
-  enclosing-condition
+classify-condition
+  cl:error
+  cl:warning
+  base-lexer-error
+  base-syntax-error
+  sod-utilities:information
+enclosing-condition-with-location-type
+  cl:condition
+  cl:error
+  cl:warning
+  sod-utilities:information
 expand-parser-form
-  token-scanner-context (eql cl:error) t
-  token-scanner-context (eql sod::skip-until) t
-  t (eql expr) t
-  list-parser (eql cl:type) t
-  list-parser (eql cl:quote) t
-  token-parser-context (eql token) t
-  character-parser-context (eql filter) t
-  character-parser-context (eql cl:not) t
-  character-parser-context (eql cl:satisfies) t
-  character-parser-context (eql cl:char) t
-  character-parser-context (eql if-char) t
-  t (eql peek) t
-  t (eql plug) t
-  t (eql ?) t
-  t (eql cl:or) t
-  t (eql skip-many) t
-  t (eql cl:list) t
-  t (eql many) t
-  t (eql lisp) t
   t (eql cl:and) t
-  t (eql seq) t
-  t (eql cl:when) t
+  t (eql cl:list) t
   t (eql cl:nil) t
+  t (eql cl:or) t
   t (eql cl:t) t
+  t (eql cl:when) t
+  t (eql ?) t
+  t (eql commit) t
+  t (eql expr) t
   t (eql label) t
+  t (eql lisp) t
+  t (eql many) t
+  t (eql peek) t
+  t (eql plug) t
+  t (eql seq) t
+  t (eql skip-many) t
   t t t
+  character-parser-context (eql cl:char) t
+  character-parser-context (eql cl:not) t
+  character-parser-context (eql cl:satisfies) t
+  character-parser-context (eql filter) t
+  character-parser-context (eql if-char) t
+  list-parser (eql cl:quote) t
+  list-parser (eql cl:type) t
+  token-parser-context (eql token) t
+  token-scanner-context (eql cl:error) t
+  token-scanner-context (eql sod:must) t
+  token-scanner-context (eql sod:skip-until) t
 expand-parser-spec
-  list-parser t
-  token-parser-context cl:string
-  token-parser-context t
-  character-parser-context cl:string
-  character-parser-context (eql :whitespace)
-  character-parser-context cl:character
-  character-parser-context (eql :any)
+  t (eql :eof)
   t (eql cl:nil)
   t (eql cl:t)
-  t (eql :eof)
   t cl:list
+  character-parser-context (eql :any)
+  character-parser-context (eql :whitespace)
+  character-parser-context cl:character
+  character-parser-context cl:string
+  list-parser t
+  token-parser-context cl:string
+  token-parser-context t
 file-location
+  cl:stream
+  t
+  sod:c-fragment
   sod:property
-  sod:sod-method
-  sod:sod-message
+  sod:sod-class
+  sod:sod-initarg
   sod:sod-initializer
+  sod:sod-message
+  sod:sod-method
   sod:sod-slot
-  sod:sod-class
-  token-scanner-place
-  sod-parser::charbuf-scanner-place
-  token-scanner
   character-scanner
-  position-aware-stream
-  cl:stream
-  t
+  charbuf-scanner-place
   condition-with-location
   file-location
+  position-aware-stream
+  string-scanner
+  token-scanner
+  token-scanner-place
 cl:make-load-form
   file-location
 make-scanner-stream
   sod:sod-token-scanner
+  character-scanner
   charbuf-scanner
   string-scanner
-  character-scanner
+operator-associativity
+  t
+  simple-binary-operator
 operator-left-precedence
-  simple-postfix-operator
   simple-binary-operator
+  simple-postfix-operator
 operator-push-action
-  open-parenthesis t
-  t open-parenthesis
   t t
+  t open-parenthesis
+  open-parenthesis t
 operator-right-precedence
-  simple-prefix-operator
-  simple-postfix-operator
   simple-binary-operator
+  simple-postfix-operator
+  simple-prefix-operator
 parser-at-eof-p
+  list-parser
   scanner-context
   string-parser
-  list-parser
   token-parser-context
 parser-capture-place
+  t
+  list-parser
   scanner-context
   string-parser
-  list-parser
-  t
 parser-current-char
   character-scanner-context
   string-parser
+parser-error-expected
+  parser-error
+parser-error-found
+  parser-error
 parser-places-must-be-released-p
+  t
+  list-parser
   sod-parser::list-scanner-context
-  sod-parser::string-scanner-context
   string-parser
-  list-parser
-  t
+  sod-parser::string-scanner-context
 parser-release-place
-  scanner-context t
   t t
+  scanner-context t
 parser-restore-place
+  list-parser t
   scanner-context t
   string-parser t
-  list-parser t
 parser-scanner
   scanner-context
 parser-step
@@ -1668,82 +2279,86 @@ position-aware-stream-column
   position-aware-stream
 (setf position-aware-stream-column)
   t position-aware-stream
+position-aware-stream-file
+  position-aware-stream
+(setf position-aware-stream-file)
+  t position-aware-stream
 position-aware-stream-line
   position-aware-stream
 (setf position-aware-stream-line)
   t position-aware-stream
 cl:print-object
-  simple-operator t
   file-location t
-push-operator
-  close-parenthesis sod-parser::expression-parse-state
-  open-parenthesis sod-parser::expression-parse-state
-  prefix-operator sod-parser::expression-parse-state
-  t sod-parser::expression-parse-state
-push-value
-  t sod-parser::expression-parse-state
+  simple-operator t
 scanner-at-eof-p
-  token-scanner
   charbuf-scanner
   list-scanner
   string-scanner
-scanner-capture-place
   token-scanner
+scanner-capture-place
+  t
   charbuf-scanner
   list-scanner
   string-scanner
-  t
+  token-scanner
 scanner-column
+  t
   charbuf-scanner
+  string-scanner
   token-scanner
-  t
 (setf scanner-column)
   t token-scanner
 scanner-current-char
   charbuf-scanner
   string-scanner
 scanner-filename
+  t
   charbuf-scanner
+  string-scanner
   token-scanner
-  t
 scanner-interval
   charbuf-scanner t
   string-scanner t
 scanner-line
+  t
   charbuf-scanner
+  string-scanner
   token-scanner
-  t
 (setf scanner-line)
   t token-scanner
 scanner-release-place
-  token-scanner t
-  charbuf-scanner t
   t t
-scanner-restore-place
+  charbuf-scanner t
   token-scanner t
+scanner-restore-place
   charbuf-scanner t
   list-scanner t
   string-scanner t
+  token-scanner t
 scanner-step
-  token-scanner
   charbuf-scanner
   list-scanner
   string-scanner
+  token-scanner
 scanner-token
   sod:sod-token-scanner
 scanner-unread
   charbuf-scanner t
+  string-scanner t
 cl:shared-initialize
-  simple-binary-operator t
-  token-scanner t
-  charbuf-scanner t
+  charbuf-scanner t [:after]
+  simple-binary-operator t [:after]
+  token-scanner t [:after]
+stream-line-and-column
+  cl:stream
+  position-aware-stream
 sb-gray:stream-line-column
   position-aware-output-stream
 stream-pathname
+  cl:file-stream
+  cl:stream
   position-aware-stream
   sod-parser::proxy-stream
-  cl:stream
-  cl:file-stream
 sb-gray:stream-peek-char
   character-scanner-stream
 sb-gray:stream-read-char
@@ -1775,8 +2390,8 @@ token-value
   list-scanner
   token-scanner
 wrap-parser
-  string-parser t
   t t
+  string-parser t
 
 -----------------------------------------------------------------------------
 Package `optparse'
@@ -1800,26 +2415,26 @@ optparse.lisp
   exit                                          function
   help-options                                  optmacro
   inc                                           opthandler
-  int                                           opthandler
+  sod-utilities:int                             c-type-spec c-type-form opthandler
   invoke-option-handler                         function
   cl:keyword                                    opthandler
-  cl:list                                       function class parser opthandler
+  cl:list                                       function class parser-form opthandler
   make-option                                   function
   make-option-parser                            function
   moan                                          function
-  op-long-only-p                                function setf
-  op-negated-numeric-p                          function setf
-  op-negated-p                                  function setf
-  op-non-option                                 function setf
-  op-numeric-p                                  function setf
-  op-options                                    function setf
-  opt-arg-name                                  function setf
-  opt-arg-optional-p                            function setf
-  opt-documentation                             function setf
-  opt-long-name                                 function setf
-  opt-negated-tag                               function setf
-  opt-short-name                                function setf
-  opt-tag                                       function setf
+  op-long-only-p                                function setf-function
+  op-negated-numeric-p                          function setf-function
+  op-negated-p                                  function setf-function
+  op-non-option                                 function setf-function
+  op-numeric-p                                  function setf-function
+  op-options                                    function setf-function
+  opt-arg-name                                  function setf-function
+  opt-arg-optional-p                            function setf-function
+  opt-documentation                             function setf-function
+  opt-long-name                                 function setf-function
+  opt-negated-tag                               function setf-function
+  opt-short-name                                function setf-function
+  opt-tag                                       function setf-function
   option                                        class
   option-parse-error                            function class
   option-parse-next                             function
@@ -1838,16 +2453,18 @@ optparse.lisp
   show-help                                     function
   show-usage                                    function
   simple-usage                                  function
-  cl:string                                     function class c-type opthandler
+  cl:string                                     function class c-type-spec opthandler
   with-unix-error-reporting                     macro
 
-Leaked slot names: cl:documentation, options
-  option: cl:documentation
-  option-parser: options
-
 Classes:
 cl:t
   sb-pcl::slot-object
+    cl:condition
+      cl:serious-condition
+        cl:error
+          option-parse-error [cl:simple-condition]
+      cl:simple-condition
+        option-parse-error [cl:error]
     cl:structure-object
       option
       option-parser
@@ -1860,6 +2477,7 @@ cl:print-object
 Package `sod-utilities'
 
 utilities.lisp
+  aand                                          macro
   acase                                         macro
   acond                                         macro
   aecase                                        macro
@@ -1870,19 +2488,31 @@ utilities.lisp
   awhen                                         macro
   backtrack-position                            function
   categorize                                    macro
+  cerror*                                       function
   compose                                       function
   copy-instance                                 function
   copy-instance-using-class                     generic
+  cross-product                                 function
   default-slot                                  macro
   define-access-wrapper                         macro
   define-on-demand-slot                         macro
+  defvar-unbound                                macro
+  designated-condition                          function
+  distinguished-point-shortest-paths            function
   dosequence                                    macro
+  enclosed-condition                            generic
+  enclosing-condition                           class
   sb-mop:eql-specializer                        class
   sb-mop:eql-specializer-object                 generic
+  find-duplicates                               function
   frob-identifier                               function
-  sb-mop:generic-function-methods               generic setf
+  sb-mop:generic-function-methods               generic setf-generic
   inconsistent-merge-error                      class
+  info                                          function
+  information                                   class
   instance-initargs                             generic
+  int                                           c-type-spec c-type-form opthandler
+  invoke-associated-restart                     function
   it
   lbuild-add                                    function
   lbuild-add-list                               function
@@ -1894,11 +2524,18 @@ utilities.lisp
   mappend                                       function
   maybe-print-unreadable-object                 macro
   merge-error-candidates                        generic
+  merge-error-present-function                  generic
   merge-lists                                   function
   sb-mop:method-specializers                    generic
+  noted                                         function
   once-only                                     macro
   parse-body                                    function
-  ref                                           function setf
+  partial-order-minima                          function
+  print-ugly-stuff                              function
+  promiscuous-cerror                            function
+  ref                                           function setf-function
+  simple-control-error                          class
+  simple-information                            class
   symbolicate                                   function
   update-position                               function
   whitespace-char-p                             function
@@ -1908,6 +2545,21 @@ utilities.lisp
 Classes:
 cl:t
   sb-pcl::slot-object
+    cl:condition
+      enclosing-condition
+      information
+        simple-information [cl:simple-condition]
+      cl:serious-condition
+        cl:error
+          cl:control-error
+            simple-control-error [cl:simple-error]
+          inconsistent-merge-error
+          cl:simple-error [cl:simple-condition]
+            simple-control-error [cl:control-error]
+      cl:simple-condition
+        cl:simple-error [cl:error]
+          simple-control-error [cl:control-error]
+        simple-information [information]
     cl:standard-object
       sb-mop:metaobject
         sb-mop:specializer
@@ -1921,8 +2573,14 @@ cl:t
       loc
 
 Methods:
+sod-parser:classify-condition
+  information
 copy-instance-using-class
   cl:standard-class t
+enclosed-condition
+  enclosing-condition
+sod-parser:enclosing-condition-with-location-type
+  information
 sb-mop:eql-specializer-object
   sb-mop:eql-specializer
 sb-mop:generic-function-methods
@@ -1933,6 +2591,8 @@ instance-initargs
   cl:standard-object
 merge-error-candidates
   inconsistent-merge-error
+merge-error-present-function
+  inconsistent-merge-error
 sb-mop:method-specializers
   cl:standard-method