I'm trying to understand continuation passing and Call-with-current-continuation. As per this page: https://en.wikipedia.org/wiki/Monad_(functional_programming)#Continuation_monad the call with CC method is implemented as follows:
call_cc :: ((a -> (b -> r) -> r) -> (a -> r) -> r) -> (a -> r) -> r
call_cc f k = f (\t x -> k t) k
As described by this signature and implementation.
However, we can see that the x parameter is here never used.
Does it mean that any continuation passed to f is always ignored that the initial continuation k is always replacing it?
In that case, does it mean that call-with-cc can only ever call a function with that is one-level deep and not more? (because the next function that would be called in a normal control flow with a continuation x is ignored)
In that case it seems very limiting, what is its practical use?