have another look at 
https://hackage.haskell.org/packaggetCallStackgetCallStacke/base-4.16.0.0/docs/GHC-Stack.html#v:callStack

You need
```   
let l = getCallStack callStack
print (length l)
```
the `getCallStack` does not return an "IO" value..


On Sun, Dec 12, 2021, 12:58 Michael Turner <michael.eugene.turner@gmail.com> wrote:
The following prints 1, as you'd expect:
-----------------
import GHC.Stack

foo :: HasCallStack => IO ()
foo = do
   print (length (getCallStack callStack))

main =
  foo
-------------------
But when I make it this:
...
   l <- getCallStack callStack ;
   print (length l)

 I get all this:
------------------------------------------
...
    • Couldn't match type ‘[]’ with ‘IO’
      Expected type: IO ([Char], SrcLoc)
        Actual type: [([Char], SrcLoc)]
    • In a stmt of a 'do' block: l <- getCallStack callStack
      In the expression:
        do l <- getCallStack callStack
           print (length l)
      In an equation for ‘foo’:
          foo
            = do l <- getCallStack callStack
                 print (length l)
  |
5 |    l <- getCallStack callStack ;
  |         ^^^^^^^^^^^^^^^^^^^^^^
--------------------------------------------

What am I not seeing?


Regards,
Michael Turner
Executive Director
Project Persephone
1-25-33 Takadanobaba

Shinjuku-ku Tokyo 169-0075
Mobile: +81 (90) 5203-8682
turner@projectpersephone.org

Understand - http://www.projectpersephone.org/
Join - http://www.facebook.com/groups/ProjectPersephone/
Donate - http://www.patreon.com/ProjectPersephone
Volunteer - https://github.com/ProjectPersephone

"Love does not consist in gazing at each other, but in looking outward
together in the same direction." -- Antoine de Saint-Exupéry
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners