dataNntpManager=NntpManager{server::String,username::String,password::String,port::PortID,maxCons::Int,taskQueue::MVar[NntpTask],-- All tasks must be -- in here exactly once at all times (Unless killed)taskCount::MVarInt-- Only used for making task uids}dataNntpTask=NntpTask{uid::Int,manager::NntpManager,action::forallb.MVar(MVar(Nntpb),(Handle->Nntpb))}createNntpTask::NntpManager->IONntpTaskcreateNntpTaskman=dooldTaskCount<-takeMVar(taskCountman)letnewTaskCount=oldTaskCount+1putMVar(taskCountman)newTaskCountact<-newEmptyMVarletvalue=NntpTask{----------------------- This is line 85uid=oldTaskCount,manager=man,action=act}modifyMVar_(taskQueueman)(return.(++[value]))returnvalue---------------------------------------------------------------Nntp.hs:85:14:InferredtypeislesspolymorphicthanexpectedQuantifiedtypevariable`b'ismentionedintheenvironment:act::MVar(MVar(Nntpb),Handle->Nntpb)(boundatNntp.hs:84:2)Inthe`action'fieldofarecordIntheexpression:NntpTask{uid=oldTaskCount,manager=man,action=act}Inthedefinitionof`value':value=NntpTask{uid=oldTaskCount,manager=man,action=act}Failed,modulesloaded:YEnc.