I can define an empty data type in Curry, e.g.:
data A
The built-in types such as Char, Int and Float are defined this way in the =
Prelude. Prior to the introduction of typeclasses the Curry frontend would=
translate this to a FlatCurry Type with no constructors. Newer versions p=
roduce a type with one constructor named "_Constr#A".
I'd like to understand how to interpret this. Is the above legal Curry? I=
s this perhaps a forward declaration or opaque type? Can the type, A, be d=
efined later? If so, would it have to be defined in the same module? Is t=
his documented somewhere?
I'm tempted to reject such a declaration unless the system can find a built=
-in definition but I don't want to reject legal programs.
-Andy
_______________________________________________
curry mailing list -- curry_at_lists.rwth-aachen.de
To unsubscribe send an email to curry-leave_at_lists.rwth-aachen.de
https://lists.rwth-aachen.de/postorius/lists/curry.lists.rwth-aachen.de
Received on Mo Mai 27 2019 - 15:11:40 CEST