Imam Tashdid ul Alam wrote:
what's the difference between data and co-data
exactly? or between inductive data types and
co-inductive data types?
In Haskell there is no such difference, as inductive and coinductive
types coincide in the semantic setting in which Haskell is usually
interpreted.
If there were a difference, that is, if we interpret Haskell minus
general recursion in a somewhat simpler semantic setting, then data
types would contain inly finite values, whereas codata types could also
contain infinite values.
can you give me some
reference points that explain these?
Papers by Uustalu and Vene might be a good start. Watch out for
corecursion and coalgebras.
(read "56")::Integer
does it in fact pass the type (Integer) to the
function (read)?
No, it just says that the result of read should be an Integer.
I guess what we want is for the
(Integer) implementation of the (read) function to
evaluate, not really to cast the value of (read)
function to (Integer).
Exactly. And that's what is happening. Based on the information provided
when giving the result type.
in the regex libraries, (~=)
cast this way results in completely different things
altogether, should type classes have namespaces
associated with them? somewhat like Integer.read "56"?
I don't think that we need this.
this way of selecting the intended implementation,
does it work without trouble with multiparameter type
classes as well?
Yes, as long as enough type information is provided for the typechecker
to decide what is the correct instance to use. One way of reducing the
amount of information needed is using functional dependencies.
theoretically is it possible to do a strictness
analysis without any help from the programmer?
Yes, such analyses exist, and are implemented in GHC, for example. They
are just approximative, and cannot be exact by computability reasons.
Ciao, Janis.
--
Dr. Janis Voigtlaender
http://wwwtcs.inf.tu-dresden.de/~voigt/
mailto:[EMAIL PROTECTED]
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe