Funcon Reuse in Languagesbeta
Currently, Funconsbeta includes 387 funcons (including types, datatypes, and
entities, but not aliases). Of these, 192 are used in language specifications
in Languagesbeta. The number of funcons used for each language is as follows:
The definitions of some of the used funcons reference other funcons, which are
not counted. The remaining funcons have either been used in previous language
specifications, or are expected to be useful in future specifications.
The following tables show which language specifications directly use each
funcon, thereby exhibiting the degree of funcon reuse in Languagesbeta.
Computations
Types of computation
Normal computation
Flowing
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Funcon 
lefttoright 
ltor 





Funcon 
righttoleft 
rtol 
X 
X 
X 
X 
X 
Funcon 
sequential 
seq 

X 

X 
X 
Funcon 
effect 






Funcon 
choice 

X 
X 
X 
X 
X 
Funcon 
iftrueelse 
ifelse 
X 
X 
X 
X 
X 
Funcon 
whiletrue 
while 





Funcon 
dowhiletrue 
dowhile 





Funcon 
interleave 






Datatype 
yielding 






Funcon 
signal 






Funcon 
yielded 






Funcon 
yield 






Funcon 
yieldonvalue 






Funcon 
yieldonabrupt 






Funcon 
atomic 

Giving
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Entity 
givenvalue 

X 
X 
X 
X 
X 
Funcon 
initialisegiving 


X 
X 
X 
X 
Funcon 
give 


X 
X 
X 
X 
Funcon 
given 






Funcon 
nogiven 






Funcon 
lefttorightmap 






Funcon 
interleavemap 


X 



Funcon 
lefttorightrepeat 



X 


Funcon 
interleaverepeat 






Funcon 
lefttorightfilter 






Funcon 
interleavefilter 






Funcon 
foldleft 






Funcon 
foldright 

Binding
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 
X 
X 
X 
X 
X 
Type 
environments 
envs 
X 
X 
X 
X 
X 
Datatype 
identifiers 
ids 





Funcon 
identifiertagged 
idtagged 





Funcon 
freshidentifier 






Entity 
environment 
env 
X 
X 
X 
X 
X 
Funcon 
initialisebinding 

X 
X 

X 

Funcon 
bindvalue 
bind 





Funcon 
unbind 






Funcon 
bounddirectly 

X 
X 
X 
X 
X 
Funcon 
boundvalue 
bound 



X 

Funcon 
closed 

X 
X 
X 
X 
X 
Funcon 
scope 





X 
Funcon 
accumulate 

X 
X 
X 
X 
X 
Funcon 
collateral 






Funcon 
bindrecursively 



X 

X 
Funcon 
recursive 

Generating
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Type 
atoms 






Entity 
usedatomset 






Funcon 
initialisegenerating 



X 
X 

Funcon 
freshatom 






Funcon 
useatomnotin 

Storing
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
locations 
locs 





Type 
stores 






Entity 
store 

X 
X 
X 
X 
X 
Funcon 
initialisestoring 






Funcon 
storeclear 


X 
X 
X 
X 
Datatype 
variables 
vars 





Funcon 
variable 
var 

X 



Funcon 
allocatevariable 
alloc 





Funcon 
recyclevariables 
recycle 





Funcon 
initialisevariable 
init 
X 
X 
X 
X 
X 
Funcon 
allocateinitialisedvariable 
allocinit 
X 
X 
X 
X 
X 
Funcon 
assign 

X 
X 
X 
X 
X 
Funcon 
assigned 






Funcon 
currentvalue 






Funcon 
unassign 






Funcon 
structuralassign 






Funcon 
structuralassigned 

Linking
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
links 






Funcon 
initialiselinking 






Funcon 
link 






Funcon 
freshlink 






Funcon 
freshinitialisedlink 
freshinitlink 





Funcon 
setlink 






Funcon 
followiflink 

Interacting
Output
Abnormal computation
Terminating abruptly
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Funcon 
stuck 






Entity 
abrupted 




X 

Funcon 
finaliseabrupting 






Funcon 
abrupt 






Funcon 
handleabrupt 






Funcon 
finally 

Failing
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
failing 






Funcon 
failed 

X 
X 
X 

X 
Funcon 
finalisefailing 




X 
X 
Funcon 
fail 




X 
X 
Funcon 
else 






Funcon 
elsechoice 

X 
X 
X 
X 
X 
Funcon 
checked 





X 
Funcon 
checktrue 

Throwing
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
throwing 






Funcon 
thrown 


X 


X 
Funcon 
finalisethrowing 


X 


X 
Funcon 
throw 


X 


X 
Funcon 
handlethrown 






Funcon 
handlerecursively 






Funcon 
catchelsethrow 

Returning
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
returning 






Funcon 
returned 






Funcon 
finalisereturning 


X 

X 

Funcon 
return 


X 

X 

Funcon 
handlereturn 

Breaking
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
breaking 






Funcon 
broken 






Funcon 
finalisebreaking 




X 

Funcon 
break 




X 

Funcon 
handlebreak 

Continuing
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
continuing 






Funcon 
continued 






Funcon 
finalisecontinuing 




X 

Funcon 
continue 




X 

Funcon 
handlecontinue 

Controlling
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
continuations 






Funcon 
continuation 






Entity 
plugsignal 






Funcon 
hole 






Funcon 
resumecontinuation 






Entity 
controlsignal 






Funcon 
control 






Funcon 
delimitcurrentcontinuation 
delimitcc 
Values
Value Types
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 

X 

X 
X 
Type 
values 
vals 


X 


Type 
valuetypes 
types 





Type 
emptytype 





X 
Funcon 
isintype 
is 





Funcon 
isvalue 
isval 




X 
Funcon 
whentrue 
when 



X 

Type 
casttotype 
cast 




X 
Type 
groundvalues 
groundvals 

X 

X 
X 
Funcon 
isequal 
iseq 
Primitive values
Booleans
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 
X 

X 
X 
X 
Datatype 
booleans 
bools 
X 
X 
X 
X 
X 
Funcon 
true 

X 
X 
X 
X 
X 
Funcon 
false 

X 
X 
X 
X 
X 
Funcon 
not 






Funcon 
implies 





X 
Funcon 
and 





X 
Funcon 
or 






Funcon 
exclusiveor 
xor 
Integers
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 
X 

X 
X 
X 
Type 
integers 
ints 





Type 
integersfrom 
from 





Type 
integersupto 
upto 




X 
Type 
boundedintegers 
boundedints 





Type 
positiveintegers 
posints 





Type 
negativeintegers 
negints 

X 


X 
Type 
naturalnumbers 
nats 




X 
Funcon 
naturalsuccessor 
natsucc 





Funcon 
naturalpredecessor 
natpred 
X 
X 
X 
X 
X 
Funcon 
integeradd 
intadd 

X 
X 
X 
X 
Funcon 
integersubtract 
intsub 

X 
X 
X 
X 
Funcon 
integermultiply 
intmul 
X 
X 

X 
X 
Funcon 
integerdivide 
intdiv 

X 


X 
Funcon 
integermodulo 
intmod 





Funcon 
integerpower 
intpow 




X 
Funcon 
integerabsolutevalue 
intabs 
X 
X 

X 
X 
Funcon 
integernegate 
intneg 

X 
X 
X 
X 
Funcon 
integerisless 
isless 
X 
X 

X 
X 
Funcon 
integerislessorequal 
islessorequal 

X 

X 
X 
Funcon 
integerisgreater 
isgreater 

X 

X 
X 
Funcon 
integerisgreaterorequal 
isgreaterorequal 





Funcon 
binarynatural 
binary 





Funcon 
octalnatural 
octal 
X 
X 
X 
X 
X 
Funcon 
decimalnatural 
decimal 





Funcon 
hexadecimalnatural 
hexadecimal 




X 
Funcon 
integersequence 

Floats
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 




X 
Datatype 
floatformats 






Funcon 
binary 32 





X 
Funcon 
binary 64 






Funcon 
binary 128 






Funcon 
decimal 64 






Funcon 
decimal 128 





X 
Type 
floats 






Funcon 
float 






Funcon 
quietnotanumber 
q NaN 





Funcon 
signalingnotanumber 
s NaN 





Funcon 
positiveinfinity 
posinf 





Funcon 
negativeinfinity 
neginf 





Funcon 
floatconvert 






Funcon 
floatequal 






Funcon 
floatisless 






Funcon 
floatislessorequal 






Funcon 
floatisgreater 






Funcon 
floatisgreaterorequal 





X 
Funcon 
floatnegate 





X 
Funcon 
floatabsolutevalue 





X 
Funcon 
floatadd 





X 
Funcon 
floatsubtract 





X 
Funcon 
floatmultiply 






Funcon 
floatmultiplyadd 





X 
Funcon 
floatdivide 





X 
Funcon 
floatremainder 





X 
Funcon 
floatsqrt 






Funcon 
floatintegerpower 





X 
Funcon 
floatfloatpower 






Funcon 
floatroundtiestoeven 






Funcon 
floatroundtiestoinfinity 





X 
Funcon 
floatfloor 





X 
Funcon 
floatceiling 





X 
Funcon 
floattruncate 






Funcon 
floatpi 






Funcon 
floate 





X 
Funcon 
floatlog 





X 
Funcon 
floatlog10 





X 
Funcon 
floatexp 





X 
Funcon 
floatsin 





X 
Funcon 
floatcos 





X 
Funcon 
floattan 





X 
Funcon 
floatasin 





X 
Funcon 
floatacos 





X 
Funcon 
floatatan 





X 
Funcon 
floatsinh 





X 
Funcon 
floatcosh 





X 
Funcon 
floattanh 






Funcon 
floatasinh 






Funcon 
floatacosh 






Funcon 
floatatanh 





X 
Funcon 
floatatan2 

Characters
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 




X 
Type 
characters 
chars 





Datatype 
unicodecharacters 
unicodechars 





Type 
unicodepoints 





X 
Funcon 
unicodecharacter 
unicodechar 





Funcon 
unicodepoint 
unicode 





Type 
basicmultilingualplanecharacters 
bmpchars 





Type 
basicmultilingualplanepoints 






Type 
isolatin1characters 
latin 1chars 





Type 
isolatin1points 






Type 
asciicharacters 
asciichars 





Type 
asciipoints 





X 
Type 
asciicharacter 
asciichar 





Funcon 
utf8 






Funcon 
utf16 






Funcon 
utf32 





X 
Funcon 
backspace 





X 
Funcon 
horizontaltab 





X 
Funcon 
linefeed 






Funcon 
formfeed 





X 
Funcon 
carriagereturn 






Funcon 
doublequote 






Funcon 
singlequote 





X 
Funcon 
backslash 

The null value
Composite values
Sequences of values
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 

X 
X 

X 
Funcon 
length 


X 
X 

X 
Funcon 
index 






Funcon 
isin 



X 


Funcon 
first 






Funcon 
second 






Funcon 
third 






Funcon 
firstn 






Funcon 
dropfirstn 





X 
Funcon 
reverse 





X 
Funcon 
nof 





X 
Funcon 
intersperse 

Datatypes
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Funcon 
datatypevalue 






Funcon 
datatypevalueid 






Funcon 
datatypevalueelements 

Tuples
Lists
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 



X 
X 
Datatype 
lists 





X 
Funcon 
list 





X 
Funcon 
listelements 




X 
X 
Funcon 
listnil 
nil 



X 
X 
Funcon 
listcons 
cons 



X 
X 
Funcon 
listhead 
head 



X 
X 
Funcon 
listtail 
tail 




X 
Funcon 
listlength 





X 
Funcon 
listappend 

Strings
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 



X 
X 
Type 
strings 






Funcon 
string 




X 
X 
Funcon 
stringappend 



X 
X 
X 
Funcon 
tostring 

Vectors
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 

X 
X 

X 
Datatype 
vectors 


X 
X 

X 
Funcon 
vector 


X 
X 

X 
Funcon 
vectorelements 

Bits and bit vectors
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Type 
bits 





X 
Datatype 
bitvectors 






Funcon 
bitvector 






Type 
bytes 
octets 




X 
Funcon 
bitvectornot 





X 
Funcon 
bitvectorand 





X 
Funcon 
bitvectoror 





X 
Funcon 
bitvectorxor 





X 
Funcon 
bitvectorshiftleft 





X 
Funcon 
bitvectorlogicalshiftright 





X 
Funcon 
bitvectorarithmeticshiftright 





X 
Funcon 
integertobitvector 





X 
Funcon 
bitvectortointeger 






Funcon 
bitvectortonatural 






Funcon 
unsignedbitvectormaximum 





X 
Funcon 
signedbitvectormaximum 





X 
Funcon 
signedbitvectorminimum 






Funcon 
isinsignedbitvector 






Funcon 
isinunsignedbitvector 

Sets
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 


X 


Type 
sets 





X 
Funcon 
set 





X 
Funcon 
setelements 





X 
Funcon 
isinset 






Funcon 
issubset 






Funcon 
setinsert 



X 


Funcon 
setunite 






Funcon 
setintersect 






Funcon 
setdifference 






Funcon 
setsize 






Funcon 
someelement 






Funcon 
elementnotin 

Maps
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 




X 
Type 
maps 



X 
X 
X 
Funcon 
map 





X 
Funcon 
mapelements 



X 
X 
X 
Funcon 
maplookup 
lookup 




X 
Funcon 
mapdomain 
dom 



X 
X 
Funcon 
mapoverride 





X 
Funcon 
mapunite 






Funcon 
mapdelete 

Multisets (bags)
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Type 
multisets 






Funcon 
multiset 






Funcon 
multisetelements 






Funcon 
multisetoccurrences 






Funcon 
multisetinsert 






Funcon 
multisetdelete 






Funcon 
issubmultiset 

Trees
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
trees 






Funcon 
tree 






Funcon 
treerootvalue 






Funcon 
treebranchsequence 






Funcon 
singlebranchingsequence 






Funcon 
forestrootvaluesequence 






Funcon 
forestbranchsequence 






Funcon 
forestvaluesequence 

Graphs
References and pointers
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 


X 


Datatype 
references 



X 


Funcon 
reference 



X 


Type 
pointers 



X 


Funcon 
dereference 

Records
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 




X 
Datatype 
records 





X 
Funcon 
record 





X 
Funcon 
recordmap 





X 
Funcon 
recordselect 

Variants
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 




X 
Datatype 
variants 





X 
Funcon 
variant 






Funcon 
variantid 






Funcon 
variantvalue 

Classes
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Datatype 
classes 



X 


Funcon 
class 



X 


Funcon 
classinstantiator 






Funcon 
classfeaturemap 






Funcon 
classsuperclassnamesequence 






Funcon 
classnametree 






Funcon 
issubclassname 



X 


Funcon 
classnamesingleinheritancefeaturemap 

Objects
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 


X 
X 

Datatype 
objects 



X 
X 

Funcon 
object 






Funcon 
objectidentity 



X 


Funcon 
objectclassname 




X 

Funcon 
objectfeaturemap 






Funcon 
objectsubobjectsequence 






Funcon 
objecttree 



X 


Funcon 
objectsingleinheritancefeaturemap 

Abstraction values
Generic abstractions
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 





Type 
abstractions 



X 

X 
Funcon 
abstraction 


X 
X 
X 
X 
Funcon 
closure 






Funcon 
enact 

Thunks
Functions
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 

X 
X 
X 
X 
Datatype 
functions 


X 
X 
X 
X 
Funcon 
function 


X 
X 
X 
X 
Funcon 
apply 






Funcon 
supply 






Funcon 
compose 






Funcon 
uncurry 





X 
Funcon 
curry 






Funcon 
partialapply 

Patterns
IMP 
SIMPLE 
MiniJava 
SL 
OCL 
Kind 
Name 
Alias 

X 
X 

X 
Datatype 
patterns 


X 
X 

X 
Funcon 
pattern 





X 
Funcon 
patternany 





X 
Funcon 
patternbind 






Funcon 
patterntype 





X 
Funcon 
patternelse 





X 
Funcon 
patternunite 


X 
X 

X 
Funcon 
match 





X 
Funcon 
matchloosely 





X 
Funcon 
casematch 






Funcon 
casematchloosely 






Funcon 
casevariantvalue 
