prelude: :gerbil/compiler/ssxi
package: std/misc

(begin
  (declare-type
   std/misc/lru#lru-cache::t
   (@struct-type std/misc/lru#lru-cache::t #f 5 :init! ((final: . #t))))
  (declare-type
   std/misc/lru#lru-cache?
   (@struct-pred std/misc/lru#lru-cache::t))
  (declare-type
   std/misc/lru#make-lru-cache
   (@struct-cons std/misc/lru#lru-cache::t))
  (declare-type
   std/misc/lru#lru-cache-ht
   (@struct-getf std/misc/lru#lru-cache::t 0 #f))
  (declare-type
   std/misc/lru#lru-cache-hd
   (@struct-getf std/misc/lru#lru-cache::t 1 #f))
  (declare-type
   std/misc/lru#lru-cache-tl
   (@struct-getf std/misc/lru#lru-cache::t 2 #f))
  (declare-type
   std/misc/lru#lru-cache-size
   (@struct-getf std/misc/lru#lru-cache::t 3 #f))
  (declare-type
   std/misc/lru#lru-cache-cap
   (@struct-getf std/misc/lru#lru-cache::t 4 #f))
  (declare-type
   std/misc/lru#lru-cache-ht-set!
   (@struct-setf std/misc/lru#lru-cache::t 0 #f))
  (declare-type
   std/misc/lru#lru-cache-hd-set!
   (@struct-setf std/misc/lru#lru-cache::t 1 #f))
  (declare-type
   std/misc/lru#lru-cache-tl-set!
   (@struct-setf std/misc/lru#lru-cache::t 2 #f))
  (declare-type
   std/misc/lru#lru-cache-size-set!
   (@struct-setf std/misc/lru#lru-cache::t 3 #f))
  (declare-type
   std/misc/lru#lru-cache-cap-set!
   (@struct-setf std/misc/lru#lru-cache::t 4 #f))
  (declare-type
   std/misc/lru#&lru-cache-ht
   (@struct-getf std/misc/lru#lru-cache::t 0 #t))
  (declare-type
   std/misc/lru#&lru-cache-hd
   (@struct-getf std/misc/lru#lru-cache::t 1 #t))
  (declare-type
   std/misc/lru#&lru-cache-tl
   (@struct-getf std/misc/lru#lru-cache::t 2 #t))
  (declare-type
   std/misc/lru#&lru-cache-size
   (@struct-getf std/misc/lru#lru-cache::t 3 #t))
  (declare-type
   std/misc/lru#&lru-cache-cap
   (@struct-getf std/misc/lru#lru-cache::t 4 #t))
  (declare-type
   std/misc/lru#&lru-cache-ht-set!
   (@struct-setf std/misc/lru#lru-cache::t 0 #t))
  (declare-type
   std/misc/lru#&lru-cache-hd-set!
   (@struct-setf std/misc/lru#lru-cache::t 1 #t))
  (declare-type
   std/misc/lru#&lru-cache-tl-set!
   (@struct-setf std/misc/lru#lru-cache::t 2 #t))
  (declare-type
   std/misc/lru#&lru-cache-size-set!
   (@struct-setf std/misc/lru#lru-cache::t 3 #t))
  (declare-type
   std/misc/lru#&lru-cache-cap-set!
   (@struct-setf std/misc/lru#lru-cache::t 4 #t))
  (declare-type
   std/misc/lru#node::t
   (@struct-type std/misc/lru#node::t #f 4 #f ((final: . #t))))
  (declare-type std/misc/lru#node? (@struct-pred std/misc/lru#node::t))
  (declare-type std/misc/lru#make-node (@struct-cons std/misc/lru#node::t))
  (declare-type std/misc/lru#node-key (@struct-getf std/misc/lru#node::t 0 #f))
  (declare-type std/misc/lru#node-val (@struct-getf std/misc/lru#node::t 1 #f))
  (declare-type
   std/misc/lru#node-prev
   (@struct-getf std/misc/lru#node::t 2 #f))
  (declare-type
   std/misc/lru#node-next
   (@struct-getf std/misc/lru#node::t 3 #f))
  (declare-type
   std/misc/lru#node-key-set!
   (@struct-setf std/misc/lru#node::t 0 #f))
  (declare-type
   std/misc/lru#node-val-set!
   (@struct-setf std/misc/lru#node::t 1 #f))
  (declare-type
   std/misc/lru#node-prev-set!
   (@struct-setf std/misc/lru#node::t 2 #f))
  (declare-type
   std/misc/lru#node-next-set!
   (@struct-setf std/misc/lru#node::t 3 #f))
  (declare-type
   std/misc/lru#&node-key
   (@struct-getf std/misc/lru#node::t 0 #t))
  (declare-type
   std/misc/lru#&node-val
   (@struct-getf std/misc/lru#node::t 1 #t))
  (declare-type
   std/misc/lru#&node-prev
   (@struct-getf std/misc/lru#node::t 2 #t))
  (declare-type
   std/misc/lru#&node-next
   (@struct-getf std/misc/lru#node::t 3 #t))
  (declare-type
   std/misc/lru#&node-key-set!
   (@struct-setf std/misc/lru#node::t 0 #t))
  (declare-type
   std/misc/lru#&node-val-set!
   (@struct-setf std/misc/lru#node::t 1 #t))
  (declare-type
   std/misc/lru#&node-prev-set!
   (@struct-setf std/misc/lru#node::t 2 #t))
  (declare-type
   std/misc/lru#&node-next-set!
   (@struct-setf std/misc/lru#node::t 3 #t))
  (declare-type std/misc/lru#lru-cache:::init! (@lambda 2 #f))
  (declare-method
   std/misc/lru#lru-cache::t
   :init!
   std/misc/lru#lru-cache:::init!
   #f)
  (declare-type std/misc/lru#lru-cache-ref__% (@lambda 3 #f))
  (declare-type std/misc/lru#lru-cache-ref__0 (@lambda 2 #f))
  (declare-type
   std/misc/lru#lru-cache-ref
   (@case-lambda
    (2 std/misc/lru#lru-cache-ref__0)
    (3 std/misc/lru#lru-cache-ref__%)))
  (declare-type std/misc/lru#lru-cache-touch! (@lambda 2 #f))
  (declare-type std/misc/lru#lru-cache-get (@lambda 2 #f))
  (declare-type std/misc/lru#lru-cache-put! (@lambda 3 #f))
  (declare-type std/misc/lru#lru-cache-remove! (@lambda 2 #f))
  (declare-type std/misc/lru#lru-cache-flush! (@lambda 1 #f))
  (declare-type std/misc/lru#lru-cache-for-each (@lambda 2 #f))
  (declare-type std/misc/lru#lru-cache-walk (@lambda 2 #f))
  (declare-type std/misc/lru#lru-cache-fold (@lambda 3 #f))
  (declare-type std/misc/lru#lru-cache-foldr (@lambda 3 #f))
  (declare-type std/misc/lru#lru-cache->list (@lambda 1 #f))
  (declare-type
   std/misc/lru#:iter::lru-cache
   (@lambda 1 std/misc/lru#in-lru-cache))
  (declare-type std/misc/lru#in-lru-cache (@lambda 1 #f))
  (declare-type std/misc/lru#in-lru-cache-keys (@lambda 1 #f))
  (declare-type std/misc/lru#in-lru-cache-values (@lambda 1 #f)))
