[m-rev.] for review: Delete Erlang-specific standard library modules.

Peter Wang novalazy at gmail.com
Tue Oct 27 14:51:16 AEDT 2020


library/MODULES_UNDOC:
library/Mercury.options:
library/construct.m:
library/deconstruct.m:
library/erlang_builtin.m:
library/erlang_rtti_implementation.m:
library/library.m:
library/type_desc.m:
    Delete erlang_builtin and erlang_rtti_implementation modules.
---
 library/MODULES_UNDOC                |    2 -
 library/Mercury.options              |   11 -
 library/construct.m                  |   95 +-
 library/deconstruct.m                |   51 +-
 library/erlang_builtin.m             |  145 --
 library/erlang_rtti_implementation.m | 2635 --------------------------
 library/library.m                    |    4 -
 library/type_desc.m                  |   82 +-
 8 files changed, 51 insertions(+), 2974 deletions(-)
 delete mode 100644 library/erlang_builtin.m
 delete mode 100644 library/erlang_rtti_implementation.m

diff --git a/library/MODULES_UNDOC b/library/MODULES_UNDOC
index b1cd56fbc..fa7cca798 100644
--- a/library/MODULES_UNDOC
+++ b/library/MODULES_UNDOC
@@ -1,6 +1,4 @@
 backjump.m
-erlang_builtin.m
-erlang_rtti_implementation.m
 mer_std.m
 mutvar.m
 par_builtin.m
diff --git a/library/Mercury.options b/library/Mercury.options
index 5c1f2b785..fed83309e 100644
--- a/library/Mercury.options
+++ b/library/Mercury.options
@@ -31,11 +31,6 @@ MCFLAGS-std_util                += --no-halt-at-warn
 MCFLAGS-dir                     += --no-halt-at-warn
 MCFLAGS-exception               += --no-halt-at-warn
 
-# Workaround for a compiler abort with --profile-for-implicit-parallelism.
-# Bug #98 in Mantis.
-#
-MCFLAGS-erlang_rtti_implementation += --no-inline-simple
-
 # io.m uses library features that are supported by POSIX but which are not
 # part of ANSI C, such as `struct stat', fileno(), and putenv().
 # We need to pass --no-ansi to mgnuc to ensure that these are declared.
@@ -49,8 +44,6 @@ MCFLAGS-stream                  += --no-warn-unknown-format-calls
 MCFLAGS-stream.string_writer    += --no-warn-unknown-format-calls
 MCFLAGS-string                  += --no-warn-unknown-format-calls
 
-MCFLAGS-erlang_builtin          += --no-warn-nothing-exported
-MCFLAGS-erlang_conf             += --no-warn-nothing-exported
 MCFLAGS-mer_std                 += --no-warn-nothing-exported
 
 # Avoid warnings about insts with non-existent function symbols in their
@@ -87,10 +80,6 @@ MCFLAGS-bitmap                  += --no-erlang-native-code
 # and comparison code for lazy values.
 MCFLAGS-lazy                    += --no-warn-non-term-special-preds
 
-# Work around a problem with --warn-unused-imports: it complains about
-# erlang_rtti_implementation, which is needed in some grades.
-MCFLAGS-type_desc               += --no-warn-unused-imports
-
 # Keep all modules' contents in a consistent order, except these (for now).
 MCFLAGS-array                   += --no-warn-inconsistent-pred-order-clauses
 MCFLAGS-bt_array                += --no-warn-inconsistent-pred-order-clauses
diff --git a/library/construct.m b/library/construct.m
index 850f9355f..f95452bea 100644
--- a/library/construct.m
+++ b/library/construct.m
@@ -127,10 +127,6 @@
 :- import_module int.
 :- import_module require.
 
-% For use by the Erlang backends.
-%
-:- use_module erlang_rtti_implementation.
-
 % For use by the Java and C# backends.
 %
 :- use_module rtti_implementation.
@@ -153,12 +149,8 @@
 }").
 
 num_functors(TypeDesc) = NumFunctors :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        NumFunctors = erlang_rtti_implementation.num_functors(TypeDesc)
-    else
-        type_desc_to_type_info(TypeDesc, TypeInfo),
-        rtti_implementation.type_info_num_functors(TypeInfo, NumFunctors)
-    ).
+    type_desc_to_type_info(TypeDesc, TypeInfo),
+    rtti_implementation.type_info_num_functors(TypeInfo, NumFunctors).
 
 det_num_functors(TypeInfo) =
     ( if N = num_functors(TypeInfo) then
@@ -182,23 +174,11 @@ get_functor_with_names(TypeDesc, I, Functor, Arity,
 
 get_functor_internal(TypeDesc, FunctorNumber, FunctorName, Arity,
         PseudoTypeDescList) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.get_functor(TypeDesc, FunctorNumber,
-            FunctorName, Arity, TypeDescList),
-        % XXX This old comment is wrong now:
-        % The backends in which we use this definition of this predicate don't
-        % yet support function symbols with existential types, which is the
-        % only kind of function symbol in which we may want to return unbound.
-        PseudoTypeDescList = list.map(type_desc_to_pseudo_type_desc,
-            TypeDescList)
-    else
-        type_desc_to_type_info(TypeDesc, TypeInfo),
-        rtti_implementation.type_info_get_functor(TypeInfo, FunctorNumber,
-            FunctorName, Arity, PseudoTypeInfoList),
-        % Assumes they have the same representation.
-        private_builtin.unsafe_type_cast(PseudoTypeInfoList,
-            PseudoTypeDescList)
-    ).
+    type_desc_to_type_info(TypeDesc, TypeInfo),
+    rtti_implementation.type_info_get_functor(TypeInfo, FunctorNumber,
+        FunctorName, Arity, PseudoTypeInfoList),
+    % Assumes they have the same representation.
+    private_builtin.unsafe_type_cast(PseudoTypeInfoList, PseudoTypeDescList).
 
 :- pragma foreign_proc("C",
     get_functor_internal(TypeDesc::in, FunctorNumber::in, FunctorName::out,
@@ -257,23 +237,11 @@ get_functor_internal(TypeDesc, FunctorNumber, FunctorName, Arity,
 
 get_functor_with_names_internal(TypeDesc, FunctorNumber, FunctorName, Arity,
         PseudoTypeDescList, Names) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.get_functor_with_names(TypeDesc,
-            FunctorNumber, FunctorName, Arity, TypeDescList, Names),
-        % XXX This old comment is wrong now:
-        % The backends in which we use this definition of this predicate don't
-        % yet support function symbols with existential types, which is the
-        % only kind of function symbol in which we may want to return unbound.
-        PseudoTypeDescList = list.map(type_desc_to_pseudo_type_desc,
-            TypeDescList)
-    else
-        type_desc_to_type_info(TypeDesc, TypeInfo),
-        rtti_implementation.type_info_get_functor_with_names(TypeInfo,
-            FunctorNumber, FunctorName, Arity, PseudoTypeInfoList, Names),
-        % Assumes they have the same representation.
-        private_builtin.unsafe_type_cast(PseudoTypeInfoList,
-            PseudoTypeDescList)
-    ).
+    type_desc_to_type_info(TypeDesc, TypeInfo),
+    rtti_implementation.type_info_get_functor_with_names(TypeInfo,
+        FunctorNumber, FunctorName, Arity, PseudoTypeInfoList, Names),
+    % Assumes they have the same representation.
+    private_builtin.unsafe_type_cast(PseudoTypeInfoList, PseudoTypeDescList).
 
 :- pragma foreign_proc("C",
     get_functor_with_names_internal(TypeDesc::in, FunctorNumber::in,
@@ -378,14 +346,9 @@ get_functor_ordinal(TypeDesc, FunctorNumber) = Ordinal :-
     get_functor_ordinal(TypeDesc, FunctorNumber, Ordinal).
 
 get_functor_ordinal(TypeDesc, FunctorNumber, Ordinal) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.get_functor_ordinal(TypeDesc, FunctorNumber,
-            Ordinal)
-    else
-        type_desc_to_type_info(TypeDesc, TypeInfo),
-        rtti_implementation.type_info_get_functor_ordinal(TypeInfo,
-            FunctorNumber, Ordinal)
-    ).
+    type_desc_to_type_info(TypeDesc, TypeInfo),
+    rtti_implementation.type_info_get_functor_ordinal(TypeInfo,
+        FunctorNumber, Ordinal).
 
 :- pragma foreign_proc("C",
     get_functor_ordinal(TypeDesc::in, FunctorNumber::in, Ordinal::out),
@@ -488,14 +451,9 @@ get_functor_ordinal(TypeDesc, FunctorNumber, Ordinal) :-
 }").
 
 get_functor_lex(TypeDesc, Ordinal) = FunctorNumber :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.get_functor_lex(TypeDesc, Ordinal,
-            FunctorNumber)
-    else
-        type_desc_to_type_info(TypeDesc, TypeInfo),
-        rtti_implementation.type_info_get_functor_lex(TypeInfo, Ordinal,
-            FunctorNumber)
-    ).
+    type_desc_to_type_info(TypeDesc, TypeInfo),
+    rtti_implementation.type_info_get_functor_lex(TypeInfo, Ordinal,
+        FunctorNumber).
 
 :- pragma foreign_proc("C",
     get_functor_lex(TypeDesc::in, Ordinal::in) = (FunctorNumber::out),
@@ -1282,12 +1240,8 @@ ML_copy_tagword_args(MR_Word *arg_list_ptr, const MR_Word ptag,
 }").
 
 construct(TypeDesc, Index, Args) = Term :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        Term = erlang_rtti_implementation.construct(TypeDesc, Index, Args)
-    else
-        type_desc_to_type_info(TypeDesc, TypeInfo),
-        Term = rtti_implementation.construct(TypeInfo, Index, Args)
-    ).
+    type_desc_to_type_info(TypeDesc, TypeInfo),
+    Term = rtti_implementation.construct(TypeInfo, Index, Args).
 
 construct_tuple(Args) =
     construct_tuple_2(Args, list.map(univ_type, Args), list.length(Args)).
@@ -1338,12 +1292,7 @@ construct_tuple(Args) =
 }").
 
 construct_tuple_2(Args, ArgTypeDescs, Arity) = Term :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        Term = erlang_rtti_implementation.construct_tuple_2(Args, ArgTypeDescs,
-            Arity)
-    else
-        list.map(type_desc_to_type_info, ArgTypeDescs, ArgTypeInfos),
-        Term = rtti_implementation.construct_tuple_2(Args, ArgTypeInfos, Arity)
-    ).
+    list.map(type_desc_to_type_info, ArgTypeDescs, ArgTypeInfos),
+    Term = rtti_implementation.construct_tuple_2(Args, ArgTypeInfos, Arity).
 
 %---------------------------------------------------------------------------%
diff --git a/library/deconstruct.m b/library/deconstruct.m
index 75e3ff981..069eef60a 100644
--- a/library/deconstruct.m
+++ b/library/deconstruct.m
@@ -288,10 +288,6 @@
 :- import_module require.
 :- import_module type_desc.
 
-% For use by the Erlang backends.
-%
-:- use_module erlang_rtti_implementation.
-
 % For use by the Java and C# backends.
 %
 :- use_module rtti_implementation.
@@ -420,12 +416,8 @@ functor_idcc(Term, Functor, Arity) :-
 SUCCESS_INDICATOR = (FunctorNumber >= 0);
 }").
 
-functor_number(Term, FunctorNumber, Arity) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.functor_number(Term, FunctorNumber, Arity)
-    else
-        private_builtin.sorry("deconstruct.functor_number")
-    ).
+functor_number(_Term, _FunctorNumber, _Arity) :-
+    private_builtin.sorry("deconstruct.functor_number").
 
 :- pragma foreign_proc("C",
     functor_number_cc(Term::in, FunctorNumber::out, Arity::out),
@@ -448,12 +440,7 @@ SUCCESS_INDICATOR = (FunctorNumber >= 0);
 }").
 
 functor_number_cc(Term, FunctorNumber, Arity) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.functor_number_cc(Term, FunctorNumber,
-            Arity)
-    else
-        rtti_implementation.functor_number_cc(Term, FunctorNumber, Arity)
-    ).
+    rtti_implementation.functor_number_cc(Term, FunctorNumber, Arity).
 
 %---------------------------------------------------------------------------%
 
@@ -569,21 +556,6 @@ deconstruct(Term, NonCanon, Functor, Arity, Arguments) :-
     ).
 
 deconstruct_du(Term, NonCanon, FunctorNumber, Arity, Arguments) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.deconstruct_du(Term, NonCanon,
-            FunctorNumber, Arity, Arguments)
-    else
-        deconstruct_du_2(Term, NonCanon, FunctorNumber, Arity, Arguments)
-    ).
-
-:- pred deconstruct_du_2(T, noncanon_handling, functor_number_lex,
-    int, list(univ)).
-:- mode deconstruct_du_2(in, in(do_not_allow), out, out, out) is semidet.
-:- mode deconstruct_du_2(in, in(include_details_cc), out, out, out)
-    is cc_nondet.
-:- mode deconstruct_du_2(in, in, out, out, out) is cc_nondet.
-
-deconstruct_du_2(Term, NonCanon, FunctorNumber, Arity, Arguments) :-
     ( if _ = construct.num_functors(type_of(Term)) then
         (
             NonCanon = do_not_allow,
@@ -1078,15 +1050,8 @@ limited_deconstruct_idcc(Term, _MaxArity, Functor, Arity, Arguments) :-
 :- pragma consider_used(local_deconstruct/6).
 
 local_deconstruct(Term, NonCanon, Functor, FunctorNumber, Arity, Arguments) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.deconstruct(Term, NonCanon, Functor, Arity,
-            Arguments),
-        % XXX incomplete
-        FunctorNumber = 0
-    else
-        rtti_implementation.deconstruct(Term, NonCanon, Functor, FunctorNumber,
-            Arity, Arguments)
-    ).
+    rtti_implementation.deconstruct(Term, NonCanon, Functor, FunctorNumber,
+        Arity, Arguments).
 
 :- pred local_univ_named_arg(T, noncanon_handling, string, univ).
 :- mode local_univ_named_arg(in, in(do_not_allow), in, out) is semidet.
@@ -1096,11 +1061,7 @@ local_deconstruct(Term, NonCanon, Functor, FunctorNumber, Arity, Arguments) :-
 :- pragma consider_used(local_univ_named_arg/4).
 
 local_univ_named_arg(Term, NonCanon, Name, Argument) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        private_builtin.sorry("local_univ_named_arg")
-    else
-        rtti_implementation.univ_named_arg(Term, NonCanon, Name, Argument)
-    ).
+    rtti_implementation.univ_named_arg(Term, NonCanon, Name, Argument).
 
 %---------------------------------------------------------------------------%
 %---------------------------------------------------------------------------%
diff --git a/library/erlang_builtin.m b/library/erlang_builtin.m
deleted file mode 100644
index 42586068c..000000000
--- a/library/erlang_builtin.m
+++ /dev/null
[snip]

diff --git a/library/erlang_rtti_implementation.m b/library/erlang_rtti_implementation.m
deleted file mode 100644
index a27e74eab..000000000
--- a/library/erlang_rtti_implementation.m
+++ /dev/null
[snip]

diff --git a/library/library.m b/library/library.m
index 5275ce6c2..947a6c53a 100644
--- a/library/library.m
+++ b/library/library.m
@@ -179,8 +179,6 @@
 % NOTE: changes to this list may need to be reflected
 % in mdbcomp/builtin_modules.m.
 %
-:- import_module erlang_builtin.
-:- import_module erlang_rtti_implementation.
 :- import_module mutvar.
 :- import_module par_builtin.
 :- import_module private_builtin.
@@ -265,8 +263,6 @@ mercury_std_library_module("dir").
 mercury_std_library_module("edit_seq").
 mercury_std_library_module("enum").
 mercury_std_library_module("eqvclass").
-mercury_std_library_module("erlang_builtin").
-mercury_std_library_module("erlang_rtti_implementation").
 mercury_std_library_module("exception").
 mercury_std_library_module("fat_sparse_bitset").
 mercury_std_library_module("float").
diff --git a/library/type_desc.m b/library/type_desc.m
index 586561fe9..fa09be4c5 100644
--- a/library/type_desc.m
+++ b/library/type_desc.m
@@ -239,8 +239,6 @@
 :- import_module require.
 :- import_module string.
 
-:- use_module erlang_rtti_implementation.
-
 :- pragma foreign_decl("C", "
 #include ""mercury_heap.h""         // for MR_incr_hp_msg() etc.
 #include ""mercury_misc.h""         // for MR_fatal_error()
@@ -304,12 +302,8 @@ pseudo_type_desc_to_rep(PseudoTypeDesc) = PseudoTypeRep :-
 ").
 
 is_univ_pseudo_type_desc(PTD, N) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.is_univ_pseudo_type_desc(PTD, N)
-    else
-        pseudo_type_desc_to_pseudo_type_info(PTD, PTI),
-        rtti_implementation.is_univ_pseudo_type_info(PTI, N)
-    ).
+    pseudo_type_desc_to_pseudo_type_info(PTD, PTI),
+    rtti_implementation.is_univ_pseudo_type_info(PTI, N).
 
 :- pred is_exist_pseudo_type_desc(pseudo_type_desc::in, int::out) is semidet.
 
@@ -332,12 +326,8 @@ is_univ_pseudo_type_desc(PTD, N) :-
 ").
 
 is_exist_pseudo_type_desc(PTD, N) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.is_exist_pseudo_type_desc(PTD, N)
-    else
-        pseudo_type_desc_to_pseudo_type_info(PTD, PTI),
-        rtti_implementation.is_exist_pseudo_type_info(PTI, N)
-    ).
+    pseudo_type_desc_to_pseudo_type_info(PTD, PTI),
+    rtti_implementation.is_exist_pseudo_type_info(PTI, N).
 
 %---------------------------------------------------------------------------%
 
@@ -581,16 +571,11 @@ type_arg_names([Type | Types], IsFunc, ArgNames) :-
 }").
 
 type_ctor_and_args(TypeDesc, TypeCtorDesc, ArgTypeDescs) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.type_ctor_desc_and_args(TypeDesc,
-            TypeCtorDesc, ArgTypeDescs)
-    else
-        type_desc_to_type_info(TypeDesc, TypeInfo),
-        rtti_implementation.type_ctor_and_args(TypeInfo, TypeCtorInfo,
-            ArgTypeInfos),
-        make_type_ctor_desc(TypeInfo, TypeCtorInfo, TypeCtorDesc),
-        type_info_list_to_type_desc_list(ArgTypeInfos, ArgTypeDescs)
-    ).
+    type_desc_to_type_info(TypeDesc, TypeInfo),
+    rtti_implementation.type_ctor_and_args(TypeInfo, TypeCtorInfo,
+        ArgTypeInfos),
+    make_type_ctor_desc(TypeInfo, TypeCtorInfo, TypeCtorDesc),
+    type_info_list_to_type_desc_list(ArgTypeInfos, ArgTypeDescs).
 
 :- pragma foreign_proc("C",
     pseudo_type_ctor_and_args(PseudoTypeDesc::in, TypeCtorDesc::out,
@@ -611,18 +596,12 @@ type_ctor_and_args(TypeDesc, TypeCtorDesc, ArgTypeDescs) :-
 }").
 
 pseudo_type_ctor_and_args(PseudoTypeDesc, TypeCtorDesc, ArgPseudoTypeDescs) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.pseudo_type_ctor_and_args(PseudoTypeDesc,
-            TypeCtorDesc, ArgPseudoTypeDescs)
-    else
-        pseudo_type_desc_to_pseudo_type_info(PseudoTypeDesc, PseudoTypeInfo),
-        rtti_implementation.pseudo_type_ctor_and_args(PseudoTypeInfo,
-            TypeCtorInfo, ArgPseudoTypeInfos),
-        Arity = list.length(ArgPseudoTypeInfos),
-        make_type_ctor_desc_with_arity(Arity, TypeCtorInfo, TypeCtorDesc),
-        private_builtin.unsafe_type_cast(ArgPseudoTypeInfos,
-            ArgPseudoTypeDescs)
-    ).
+    pseudo_type_desc_to_pseudo_type_info(PseudoTypeDesc, PseudoTypeInfo),
+    rtti_implementation.pseudo_type_ctor_and_args(PseudoTypeInfo,
+        TypeCtorInfo, ArgPseudoTypeInfos),
+    Arity = list.length(ArgPseudoTypeInfos),
+    make_type_ctor_desc_with_arity(Arity, TypeCtorInfo, TypeCtorDesc),
+    private_builtin.unsafe_type_cast(ArgPseudoTypeInfos, ArgPseudoTypeDescs).
 
 %---------------------------------------------------------------------------%
 
@@ -645,13 +624,9 @@ pseudo_type_ctor_and_args(PseudoTypeDesc, TypeCtorDesc, ArgPseudoTypeDescs) :-
 }").
 
 type_ctor(TypeDesc) = TypeCtorDesc :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.type_ctor_desc(TypeDesc, TypeCtorDesc)
-    else
-        type_desc_to_type_info(TypeDesc, TypeInfo),
-        TypeCtorInfo = rtti_implementation.get_type_ctor_info(TypeInfo),
-        make_type_ctor_desc(TypeInfo, TypeCtorInfo, TypeCtorDesc)
-    ).
+    type_desc_to_type_info(TypeDesc, TypeInfo),
+    TypeCtorInfo = rtti_implementation.get_type_ctor_info(TypeInfo),
+    make_type_ctor_desc(TypeInfo, TypeCtorInfo, TypeCtorDesc).
 
 :- pragma foreign_proc("C",
     pseudo_type_ctor(PseudoTypeInfo::in) = (TypeCtor::out),
@@ -844,14 +819,9 @@ make_type_ctor_desc_with_arity(_, _, _) :-
 
 type_ctor_name_and_arity(TypeCtorDesc, ModuleName, TypeCtorName,
         TypeCtorArity) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.type_ctor_desc_name_and_arity(TypeCtorDesc,
-            ModuleName, TypeCtorName, TypeCtorArity)
-    else
-        type_ctor_desc_to_type_ctor_info(TypeCtorDesc, TypeCtorInfo),
-        rtti_implementation.type_ctor_name_and_arity(TypeCtorInfo,
-            ModuleName, TypeCtorName, TypeCtorArity)
-    ).
+    type_ctor_desc_to_type_ctor_info(TypeCtorDesc, TypeCtorInfo),
+    rtti_implementation.type_ctor_name_and_arity(TypeCtorInfo,
+        ModuleName, TypeCtorName, TypeCtorArity).
 
 :- pred type_ctor_desc_to_type_ctor_info(type_ctor_desc::in,
     rtti_implementation.type_ctor_info::out) is det.
@@ -869,14 +839,8 @@ type_ctor_desc_to_type_ctor_info(TypeCtorDesc, TypeCtorInfo) :-
 :- pragma promise_equivalent_clauses(make_type/2).
 :- pragma no_determinism_warning(make_type/2).
 
-make_type(TypeCtorDesc::in, ArgTypes::in) = (TypeDesc::out) :-
-    ( if erlang_rtti_implementation.is_erlang_backend then
-        erlang_rtti_implementation.make_type_desc(TypeCtorDesc, ArgTypes,
-            TypeDesc)
-    else
-        private_builtin.sorry("make_type(in, in) = out")
-    ).
-
+make_type(_TypeCtorDesc::in, _ArgTypes::in) = (_TypeDesc::out) :-
+    private_builtin.sorry("make_type(in, in) = out").
 make_type(_TypeCtorDesc::out, _ArgTypes::out) = (_TypeDesc::in) :-
     private_builtin.sorry("make_type(out, out) = in").
 
-- 
2.28.0



More information about the reviews mailing list