equal
deleted
inserted
replaced
722 & \<open>|\<close> & \<open>type\<^sup>(\<^sup>1\<^sup>)\<close> \<open>\<Rightarrow>\<close> \<open>type\<close> & \<open>(0)\<close> \\ |
722 & \<open>|\<close> & \<open>type\<^sup>(\<^sup>1\<^sup>)\<close> \<open>\<Rightarrow>\<close> \<open>type\<close> & \<open>(0)\<close> \\ |
723 & \<open>|\<close> & \<^verbatim>\<open>[\<close> \<open>type\<close> \<^verbatim>\<open>,\<close> \<open>\<dots>\<close> \<^verbatim>\<open>,\<close> \<open>type\<close> \<^verbatim>\<open>]\<close> \<^verbatim>\<open>=>\<close> \<open>type\<close> & \<open>(0)\<close> \\ |
723 & \<open>|\<close> & \<^verbatim>\<open>[\<close> \<open>type\<close> \<^verbatim>\<open>,\<close> \<open>\<dots>\<close> \<^verbatim>\<open>,\<close> \<open>type\<close> \<^verbatim>\<open>]\<close> \<^verbatim>\<open>=>\<close> \<open>type\<close> & \<open>(0)\<close> \\ |
724 & \<open>|\<close> & \<^verbatim>\<open>[\<close> \<open>type\<close> \<^verbatim>\<open>,\<close> \<open>\<dots>\<close> \<^verbatim>\<open>,\<close> \<open>type\<close> \<^verbatim>\<open>]\<close> \<open>\<Rightarrow>\<close> \<open>type\<close> & \<open>(0)\<close> \\ |
724 & \<open>|\<close> & \<^verbatim>\<open>[\<close> \<open>type\<close> \<^verbatim>\<open>,\<close> \<open>\<dots>\<close> \<^verbatim>\<open>,\<close> \<open>type\<close> \<^verbatim>\<open>]\<close> \<open>\<Rightarrow>\<close> \<open>type\<close> & \<open>(0)\<close> \\ |
725 @{syntax_def (inner) type_name} & = & \<open>id | longid\<close> \\\\ |
725 @{syntax_def (inner) type_name} & = & \<open>id | longid\<close> \\\\ |
726 |
726 |
727 @{syntax_def (inner) sort} & = & @{syntax class_name}~~\<open>|\<close>~~\<^verbatim>\<open>{}\<close> \\ |
727 @{syntax_def (inner) sort} & = & @{syntax class_name}~~\<open>|\<close>~~\<^verbatim>\<open>_\<close>~~\<open>|\<close>~~\<^verbatim>\<open>{}\<close> \\ |
728 & \<open>|\<close> & \<^verbatim>\<open>{\<close> @{syntax class_name} \<^verbatim>\<open>,\<close> \<open>\<dots>\<close> \<^verbatim>\<open>,\<close> @{syntax class_name} \<^verbatim>\<open>}\<close> \\ |
728 & \<open>|\<close> & \<^verbatim>\<open>{\<close> @{syntax class_name} \<^verbatim>\<open>,\<close> \<open>\<dots>\<close> \<^verbatim>\<open>,\<close> @{syntax class_name} \<^verbatim>\<open>}\<close> \\ |
729 @{syntax_def (inner) class_name} & = & \<open>id | longid\<close> \\ |
729 @{syntax_def (inner) class_name} & = & \<open>id | longid\<close> \\ |
730 \end{supertabular} |
730 \end{supertabular} |
731 \end{center} |
731 \end{center} |
732 |
732 |
800 in which case the input is likely to be ambiguous. The correct form is \<open>x < |
800 in which case the input is likely to be ambiguous. The correct form is \<open>x < |
801 (y :: nat)\<close>. |
801 (y :: nat)\<close>. |
802 |
802 |
803 \<^item> Dummy variables (written as underscore) may occur in different |
803 \<^item> Dummy variables (written as underscore) may occur in different |
804 roles. |
804 roles. |
|
805 |
|
806 \<^descr> A sort ``\<open>_\<close>'' refers to a vacuous constraint for type variables, which |
|
807 is effectively ignored in type-inference. |
805 |
808 |
806 \<^descr> A type ``\<open>_\<close>'' or ``\<open>_ :: sort\<close>'' acts like an anonymous inference |
809 \<^descr> A type ``\<open>_\<close>'' or ``\<open>_ :: sort\<close>'' acts like an anonymous inference |
807 parameter, which is filled-in according to the most general type produced |
810 parameter, which is filled-in according to the most general type produced |
808 by the type-checking phase. |
811 by the type-checking phase. |
809 |
812 |