На какой платформе Вы делаете попытку этого? Большинство отладчиков позволяет Вам присоединять к рабочему процессу при помощи идентификатора процесса. Можно или произвести идентификатор процесса через вход или использование чего-то как Диспетчер задач. Как только это достигается, будет возможно осмотреть отдельные потоки и их стеки вызовов.
РЕДАКТИРОВАНИЕ: у Меня нет опыта с Отладчиком GNU (GDB), который является кросс-платформенным, однако я нашел этот ссылка , и это может запустить Вас на правильном пути. Это объясняет, как добавить отладочные символы (удобный для чтения отслеживаний стека) и как дать gdb команду присоединять к рабочему процессу Python.
То, что вы хотите, невозможно выразить напрямую. Это, вероятно, так близко, как вы получите:
newtype MVarList a = MVarList (MVar [a])
instance Blah MVarList where
blah = fmap MVarList . newMVar
Я читал о библиотеке Конала Эллиотта TypeCompose , и мне напомнили об этом вопросе. Вот пример того, как вы можете создавать композицию на уровне типов.
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeSynonymInstances #-}
module Main where
...
import Control.Compose
...
instance Blah (MVar `O` []) where
blah = liftM O . blah2
...