git.iko.soy/rowtype-yoga/psfp
on fb93bc9 help sign in
148 lines 4.3 kB history raw
1// Generated by purs version 0.13.6
2"use strict";
3var $foreign = require("./foreign.js");
4var Data_Eq = require("../Data.Eq/index.js");
5var Data_Ordering = require("../Data.Ordering/index.js");
6var Ord = function (Eq0, compare) {
7 this.Eq0 = Eq0;
8 this.compare = compare;
9};
10var ordNumber = new Ord(function ($dollar__unused) {
11 return Data_Eq.eqNumber;
12}, $foreign.ordNumberImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));
13var ordInt = new Ord(function ($dollar__unused) {
14 return Data_Eq.eqInt;
15}, $foreign.ordIntImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));
16var ordChar = new Ord(function ($dollar__unused) {
17 return Data_Eq.eqChar;
18}, $foreign.ordCharImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value));
19var compare = function (dict) {
20 return dict.compare;
21};
22var comparing = function (dictOrd) {
23 return function (f) {
24 return function (x) {
25 return function (y) {
26 return compare(dictOrd)(f(x))(f(y));
27 };
28 };
29 };
30};
31var greaterThan = function (dictOrd) {
32 return function (a1) {
33 return function (a2) {
34 var v = compare(dictOrd)(a1)(a2);
35 if (v instanceof Data_Ordering.GT) {
36 return true;
37 };
38 return false;
39 };
40 };
41};
42var greaterThanOrEq = function (dictOrd) {
43 return function (a1) {
44 return function (a2) {
45 var v = compare(dictOrd)(a1)(a2);
46 if (v instanceof Data_Ordering.LT) {
47 return false;
48 };
49 return true;
50 };
51 };
52};
53var lessThan = function (dictOrd) {
54 return function (a1) {
55 return function (a2) {
56 var v = compare(dictOrd)(a1)(a2);
57 if (v instanceof Data_Ordering.LT) {
58 return true;
59 };
60 return false;
61 };
62 };
63};
64var lessThanOrEq = function (dictOrd) {
65 return function (a1) {
66 return function (a2) {
67 var v = compare(dictOrd)(a1)(a2);
68 if (v instanceof Data_Ordering.GT) {
69 return false;
70 };
71 return true;
72 };
73 };
74};
75var max = function (dictOrd) {
76 return function (x) {
77 return function (y) {
78 var v = compare(dictOrd)(x)(y);
79 if (v instanceof Data_Ordering.LT) {
80 return y;
81 };
82 if (v instanceof Data_Ordering.EQ) {
83 return x;
84 };
85 if (v instanceof Data_Ordering.GT) {
86 return x;
87 };
88 throw new Error("Failed pattern match at Data.Ord (line 167, column 3 - line 170, column 12): " + [ v.constructor.name ]);
89 };
90 };
91};
92var min = function (dictOrd) {
93 return function (x) {
94 return function (y) {
95 var v = compare(dictOrd)(x)(y);
96 if (v instanceof Data_Ordering.LT) {
97 return x;
98 };
99 if (v instanceof Data_Ordering.EQ) {
100 return x;
101 };
102 if (v instanceof Data_Ordering.GT) {
103 return y;
104 };
105 throw new Error("Failed pattern match at Data.Ord (line 158, column 3 - line 161, column 12): " + [ v.constructor.name ]);
106 };
107 };
108};
109var clamp = function (dictOrd) {
110 return function (low) {
111 return function (hi) {
112 return function (x) {
113 return min(dictOrd)(hi)(max(dictOrd)(low)(x));
114 };
115 };
116 };
117};
118var between = function (dictOrd) {
119 return function (low) {
120 return function (hi) {
121 return function (x) {
122 if (lessThan(dictOrd)(x)(low)) {
123 return false;
124 };
125 if (greaterThan(dictOrd)(x)(hi)) {
126 return false;
127 };
128 return true;
129 };
130 };
131 };
132};
133module.exports = {
134 Ord: Ord,
135 compare: compare,
136 lessThan: lessThan,
137 lessThanOrEq: lessThanOrEq,
138 greaterThan: greaterThan,
139 greaterThanOrEq: greaterThanOrEq,
140 comparing: comparing,
141 min: min,
142 max: max,
143 clamp: clamp,
144 between: between,
145 ordInt: ordInt,
146 ordNumber: ordNumber,
147 ordChar: ordChar
148};