1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
-- Programmed by Jedidiah Barber
-- Licensed under the Sunset License v1.0
-- See license.txt for further details
generic
package Kompsos.Prelude is
type World is new Mu_World with private;
Empty_World : constant World;
-- caro --
function Head
(This : in World;
Full_List, Head_Term : in Term'Class)
return World;
procedure Head
(This : in out World;
Full_List, Head_Term : in Term'Class);
-- cdro --
function Tail
(This : in World;
Full_List, Tail_Term : in Term'Class)
return World;
procedure Tail
(This : in out World;
Full_List, Tail_Term : in Term'Class);
-- conso --
function Cons
(This : in World;
Head_Term, Tail_Term, Full_List : in Term'Class)
return World;
procedure Cons
(This : in out World;
Head_Term, Tail_Term, Full_List : in Term'Class);
-- nullo --
function Nil
(This : in World;
Nil_Term : in Term'Class)
return World;
procedure Nil
(This : in out World;
Nil_Term : in Term'Class);
-- eqo --
-- Skipped due to being a synonym for Unify
-- eq-caro --
-- Skipped due to being a synonym for Head
-- pairo --
function Pair
(This : in World;
Pair_Term : in Term'Class)
return World;
procedure Pair
(This : in out World;
Pair_Term : in Term'Class);
-- listo --
function Linked_List
(This : in World;
List_Term : in Term'Class)
return World;
procedure Linked_List
(This : in out World;
List_Term : in Term'Class);
-- membero --
function Member
(This : in World;
Item_Term, List_Term : in Term'Class)
return World;
procedure Member
(This : in out World;
Item_Term, List_Term : in Term'Class);
-- rembero --
function Remove
(This : in World;
Item_Term, List_Term, Out_Term : in Term'Class)
return World;
procedure Remove
(This : in out World;
Item_Term, List_Term, Out_Term : in Term'Class);
-- appendo --
function Append
(This : in World;
List_Term, Item_Term, Out_Term : in Term'Class)
return World;
procedure Append
(This : in out World;
List_Term, Item_Term, Out_Term : in Term'Class);
-- anyo --
-- Skipped due to Recurse doing the same thing
-- nevero --
-- Skipped since it just creates a failed World
-- alwayso --
-- Skipped due to Recurse doing the same thing
private
type World is new Mu_World with null record;
Empty_World : constant World := (Empty_Mu_World with null record);
end Kompsos.Prelude;
|