Recall that Haskell type names begin with capital letters, so the type of checkBalance must be
checkBalance :: AcInfo -> AcNo -> Amnt
In your question, you seem to be aiming at using list comprehension, but you don't have the correct syntax.
checkBalance dbase number = head [amnt | (acNo, name, city, amnt) <- dbase, acNo == number]
This definition is great if the account is in dbase
* Main> checkBalance bankAccounts "oo1"
100
but explodes when it is not.
* Main> checkBalance bankAccounts "001"
*** Exception: Prelude.head: empty list
The best type for checkBalance is
checkBalance :: AcInfo -> AcNo -> Maybe Amnt
to represent the general case, i.e. dbase may or may not contain number .
source share