aboutsummaryrefslogtreecommitdiff
path: root/module/c/eval2.scm
blob: d58f20bfa993daaa609c981864a8fca1d7205a47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(define-module (c eval2)
  :use-module ((hnh util) :select (->))
  :export (C-TRUE
           C-FALSE
           boolean->c-boolean
           c-boolean->boolean
           c-not))


(define C-TRUE 1)
(define C-FALSE 0)

(define (boolean->c-boolean bool)
  (if bool C-TRUE C-FALSE))

(define (c-boolean->boolean bool)
  (not (zero? bool)))

(define (c-not b)
  (-> b c-boolean->boolean not boolean->c-boolean))