I am sure there are a billion errors in this.
This is the first one:
    Line:17 - Last generator in do {...} must be an expression
Can Anyone point the errors and maybe tell me if there is a possibility for this to work?
 
import IO
import System
import List
import Maybe
import Char
import Numeric
 
type Name=String
type Room=Int
type Dr=String
type PatientTup=(Name,(Room,Dr))
type PatientList=[PatientTup]
 
main=do userText<-getText
-----------------------------------------------------------------------------------
________getText::IO String
________getText=do nc<-getText
___________________return (:nc)
----------------------------------------------------------------------------------- 
________PatientList::[(String,(Int,String))]
________PatientList=[("Robson, Brian",(2,"MJH")),
_____________________("Hitchin, Linda",(1,"ILR")),
_____________________("Reeve, Paul", (2,"ILR"))]
-----------------------------------------------------------------------------------
________getWards::Int->Int
________getWards PatientList=[Room | (Name,(Room,Dr)) <- PatientList, Room==getText]
_________________do putSpc (length Room)
_________________return(RoomLength)
-----------------------------------------------------------------------------------
________getPatient::String->String
________getPatient PatientList=[Name,Room,Dr | (Name,(Room,Dr)) <- PatientList, Name==getText]
___________________do putChar (Name)
______________________putChar 'is in ward'
______________________putChar (Room)
______________________putChar 'and is treated by'
______________________putChar (Dr)
______________________return (wl)
----------------------------------------------------------------------------------- 
________printFreq::WordList->IO()
________printFreq wl
-----------------------------------------------------------------------------------
________NumberInWard::printFreq(getWards(getText))
----------------------------------------------------------------------------------- 
________PatientInfo::printFreq(getPatient(getText))
----------------------------------------------------------------------------------- 
________setABC::ReceptionReport -> ReceptionReport
________setABC [ ]___=[ ]
________setABC(wn:ws)=setABC[(w,wc) | (w,wc)<-ws, not(isBigger(w,wc)wn)]
_________++[wn]++setABC[(w,wc) | (w,wc) <- ws, isBigger (w,wc) wn]
__________________where
___________________isBigger (w1,wc1) (w2,wc2)
____________________| ord(head(w1))-ord(head(w2))>0=True
____________________| ord(head(w1))-ord(head(w2))<0=False
____________________|length w1>1&&length w2>1
_____________________=isBigger(tail(w1),wc1) (tail(w2),wc2)
____________________|length w1>1&&length w2==1=True
____________________|otherwise=false
-----------------------------------------------------------------------------------
________ReseptionList::String->String
________ReseptionList PatientList=[Name,Room | (Name,(Room,Dr)) <- PatientList]
______________________do sequence (map ReceptionReport wl)
__________________________________where
______________________________________ReceptionReport::setABC((Name,Room))->IO()
______________________________________ReceptionReport(w,wc)=do putStr w
_______________________________________________________________putStr (show w)
_______________________________________________________________putChar 'in'
_______________________________________________________________putStr (show wc)
_______________________________________________________________putChar '\n'
_______________________________________________________________return wl
-----------------------------------------------------------------------------------
________setNum::DoctorsReport -> DoctorsReport
________setNum [ ] = [ ]
________setNum((wn,wcn):DoctorsReport[(w,wc)|(w,wc)<-ws,
_________________________ws<=wcn++[(wn,wcn)]DoctorsReport[(w,wc)|(w,wc)<-ws,wc>wcn]
-----------------------------------------------------------------------------------
________DoctorsList::String->String
________DoctorsList PatientList=[Name,Room | (Name,(Room,Dr)) <- PatientList, Dr==getText]
____________________do sequence (map DoctorsReport wl)   
________________________________where
____________________________________DoctorsReport::setNum((Name,Room))->IO()
____________________________________DoctorsReport(w,wc)=do putStr w
___________________________________________________________putStr (show w)
___________________________________________________________putChar 'in'
___________________________________________________________putStr (show wc)
___________________________________________________________putChar '\n'
_______________________________________________________________return wl
-----------------------------------------------------------------------------------