Hi,

Suppose   a   denotes a type variable. 


1.Can I then say:  Bool  is of type   a ?


2. I suppose I can say that   True   is of type   Bool.  However   True   is not 
itself a type, isn't it?  
I suppose that I cannot say that  True   is  of type   a, isn't it  ? So   True is   a 
 "value"  but not  a  "type value" , isn't?

3. Now  consider the type  of  state transformers  ST s a  :
in the above   s  is a type variable that ranges over the values(?)  of type  State .  
Since   IO a  =  ST RealWorld  a  , I deduce 
that  RealWorld  is not a type variable (because the first letter is a capital) but a 
very specific type : 
i.e. RealWorld is of type State   and   RealWorld itself  contains values  but  not of 
type  State ; 
shouldn't I then say that   s  ranges  over  "type values " of type state
instead of "values" of type State.

4. Consider the type   f :: a -> b -> c.
Can I say that f is of type   a -> b   since b  is a more general type than  the type  
b -> c  , and if this is true can I then say
that f is also of type  a?  And if this is true  I suppose that   "being of type "  is 
a transitive relation among types, isn't?

Hoping to get comments

Friendly

Jan Brosius

Reply via email to