anchor.diff:      {nil}
       {join (list (join (head x) (head y))) (zip (tail x) (tail y))}
   })
  +
  +(defn {comp & fs} {
  +  (fn {fs args} {
  +    foldr (fn {z g} {z g}) ((last fs) args) (but-last fs)
  +  }) fs
  +})
  
positive.code: 
  (defn {sum l} { reduce + 0 l })
  (defn {product l} { reduce * 1 l })
  
  (defn {filter f l} {
    if (empty? l)
  
negative.code:       {list l}}
  })
  
  (defn {range start end} {
    if (> start end)
      {nil}
      {join (list start) (range (inc start) end)}
  })
  
  ;; functional
  
  (defn {apply f xs} {
  