Schould I make my own c-in method here

This is a good start :

; Implement the comp function.

(defn my-comp
  ([] identity)
  ([f] f)
  ([f g]
   (fn
     ([] (f (g)))
     ([x] (f (g x))))))