¿Cómo interpretar callCC en haskell?

En Esquema ejecutando una continuación obtenida de uncall/cc salta efectivamente a esa llamada / cc inicial y restablece la pila de llamadas guardadas.

Acabo de empezar a aprender Haskell y estoy tratando de averiguar cómo comprender.callCC. Eso es tratar de comprender.callCC en términos de comprensión de Scheme'scall/cc. La implementación decallCC es

callCC f = cont $ \h -> runCont (f (\a -> cont $ \_ -> h a)) h

Por lo que sé, no se menciona nada relacionado con las pilas de llamadas guardadas o restablecidas. ¿Cómo se interpreta uno?callCC en Haskell viniendo de la familiaridad con Scheme'scall/cc.

Edit: Tal vez si alguien pudiera traducir lo siguiente a Haskell, eso me ayudaría a entender.

(define (f return)
  (return 2)
  3)

(display (f (lambda (x) x))) ; displays 3

(display (call-with-current-continuation f)) ; displays 2

Respuestas a la pregunta(2)

Su respuesta a la pregunta