;;;; Copyright 2002, Jonathan Bachrach.  See file TERMS.

(use goo/boot)
(use goo/fun)
(use goo/class)
(use goo/macros)
(use goo/math)
(use goo/types)
(use goo/cols/col)
(use goo/cols/seq)
(use goo/cols/flat)

;; 3.7.5 OPTIONALS

;;;;!! Interface
(exported
 <opts>
)

;;;;!! Implementation

;;;; Collection protocol
(dm col-res-type (c|<opts> => <type>)
  <lst>)

(dm (len inline) (x|<opts> => <int>)
  (@olen x))

(dm elt-or (x|<opts> i|<int> default => <any>)
  (range-check x i)
  (@oelt x i)) ;; TODO: LOW-ELT

(dm to-str (x|<opts> => <str>)
  (cat "$$opts(" (vals-to-str x) ")"))


;;;; Undocumented
(dm (low-elt inline) (x|<opts> i|<int> => <any>)
  (@oelt x i))
