getIC :: Sources' a => (a -> GPU b) -> Int -> IC
getIC a n = snd (runGPU (a t)) -- (variable "tid") 
    where 
      t = evalState (mkSrc "source" n) initState
getIC :: Sources' a => (a -> GPU b) -> Int -> IC
getIC a n = snd (runGPU (a t)) -- (variable "tid") 
    where 
      t = evalState (mkSrc "source" n) initState
getIC a n = snd (runGPU (a t)) -- (variable "tid") 
    where 
      t = evalState (mkSrc "source" n) initState