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
|
module FlatCurry.Typed.Names
( isPrimOp, preludePrimOps, unaryPrimOps, binaryPrimOps
, transPrimTCons, transPrimCons )
where
import FlatCurry.Names2SMT ( unaryPrimOps, binaryPrimOps )
import FlatCurry.Typed.Types
isPrimOp :: QName -> Bool
isPrimOp (mn,fn) = mn=="Prelude" && fn `elem` map fst preludePrimOps
preludePrimOps :: [(String,String)]
preludePrimOps = unaryPrimOps ++ binaryPrimOps ++
[("otherwise","true")
,("if_then_else","ite")
,("choose","choose")
,("lchoice","lchoice")
,("rchoice","rchoice")
,("apply","apply")
]
transPrimTCons :: [(String,String)]
transPrimTCons =
[("Int","Int")
,("Float","Real")
,("Char","Int")
,("[]","List")
,("()","Unit")
,("(,)","Pair")
,("Maybe","Maybe")
,("Either","Either")
,("Ordering","Ordering")
]
transPrimCons :: [(String,String)]
transPrimCons =
[("True","true")
,("False","false")
,("[]","nil")
,(":","insert")
,("()","unit")
,("(,)","mk-pair")
,("LT","LT")
,("EQ","EQ")
,("GT","GT")
,("Nothing","Nothing")
,("Just","Just")
,("Left","Left")
,("Right","Right")
] ++
map (\i -> ('(' : take (i-1) (repeat ',') ++ ")", "Tuple" ++ show i)) [3..15]
|