@@ -1,70 +0,0 @@
1−package purescript
2−
3−//go:generate purs --version
4−
5−import "sync"
6−
7−type Any interface{}
8−
9−type Fn = func(Any) Any
10−type EffFn = func() Any
11−type Dict = map[string]Any
12−
13−type Once = sync.Once
14−
15−type Fn1 = func(Any) Any
16−type Fn2 = func(Any, Any) Any
17−type Fn3 = func(Any, Any, Any) Any
18−type Fn4 = func(Any, Any, Any, Any) Any
19−type Fn5 = func(Any, Any, Any, Any, Any) Any
20−type Fn6 = func(Any, Any, Any, Any, Any, Any) Any
21−type Fn7 = func(Any, Any, Any, Any, Any, Any, Any) Any
22−type Fn8 = func(Any, Any, Any, Any, Any, Any, Any, Any) Any
23−type Fn9 = func(Any, Any, Any, Any, Any, Any, Any, Any, Any) Any
24−type Fn10 = func(Any, Any, Any, Any, Any, Any, Any, Any, Any, Any) Any
25−
26−const Undefined = "undefined"
27−
28−var foreign = make(map[string]Dict)
29−
30−func Foreign(key string) Dict {
31− value, found := foreign[key]
32− if !found {
33− value = make(Dict)
34− foreign[key] = value
35− }
36− return value
37−}
38−
39−func Apply(f Any, args ...Any) Any {
40− result := f
41− for _, arg := range args {
42− fn, _ := result.(Fn)
43− result = fn(arg)
44− }
45− return result
46−}
47−
48−func Run(f Any, args ...Any) Any {
49− fn, _ := f.(EffFn)
50− return fn()
51−}
52−
53−func Get(dict map[string]Any, key string) Any {
54− value, ok := dict[key]
55− if !ok {
56− panic("Foreign value '" + key + "' not found")
57− }
58− return value
59−}
60−
61−func Contains(dict Any, key string) bool {
62− d, _ := dict.(map[string]Any)
63− _, found := d[key]
64− return found
65−}
66−
67−func Length(arr Any) Any {
68− a, _ := arr.([]Any)
69− return len(a)
70−}