;; -*- Mode: Irken -*-

(define (eq? a b)
  (%%cexp ('a 'a -> bool) "%0==%1" a b))

(define (+ a b)
  (%%cexp (int int -> int) "%0+%1" a b))

(define (- a b)
  (%%cexp (int int -> int) "%0-%1" a b))

(define klength
  (:nil) -> 0
  (:kons _ y) -> (+ 1 (klength y)))

(define kn
  0 -> (:nil)
  n -> (:kons n (kn (- n 1))))

(klength (kn 5))