Well the definition clearly falls under the monomorphism restriction as
laid down by the Report, because you haven't given a signature for
us,n,j.  I suggest 

ctPar :: (?ctPar::CTPar) => CTPar
ctPar = ?ctPar

(us,n,j) = ctPar

That should work

Simon

| -----Original Message-----
| From: Jorge Adriano [mailto:[EMAIL PROTECTED]]
| Sent: 13 February 2003 14:36
| To: Haskell Cafe; [EMAIL PROTECTED]
| Subject: Pattern matching, implict par. question
| 
| Hello, When trying
| 
| type CTPar = ([Double],Int,Int)
| ctPar          ::(?ctPar::CTPar)=>CTPar
| ctPar@(us,n,j) = ?ctPar
| 
| I got this error message in ghci is:
| "    Illegal overloaded type signature(s)
|         in a binding group for ctPar, us, n, j
|         that falls under the monomorphism restriction
|     When generalising the type(s) for ctPar, us, n, j
| Failed, modules loaded: CrossTypeOps."
| 
| Should the monomorphis restriction really apply here?
| The values of us,j,n do depend on the context, but not their types
(right?).
| 
| J.A.
| 
| 
| _______________________________________________
| Glasgow-haskell-users mailing list
| [EMAIL PROTECTED]
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to