(defvar *pair*
  (lambda (x)
    (lambda (y)
      (lambda (z)
        (funcall (funcall z x) y)))))
(defvar *first*
  (lambda (p)
    (funcall p
             (lambda (x)
               (lambda (y) x)))))
(defvar *second*
  (lambda (p)
    (funcall p
             (lambda (x)
               (lambda (y) y)))))

;; SQLITE> (funcall *first* (funcall (funcall *pair* 1) 2))
;; 1
;; SQLITE> (funcall *second* (funcall (funcall *pair* 1) 2))
;; 2