data :list (a)
| :cons { a -o (box (:list a)) -o (:list a) }
| :nil (:list a)

def sum { (:list int) -> int }
| (:nil) => 0
| (:cons x xs) => { x + (sum (deref xs)) }

def range { int -> int -> (:list int) }
| 
