git.iko.soy/rowtype-yoga/psfp
on 081ef00 help sign in
87 lines 3.0 kB history raw
1// Generated by purs version 0.13.6
2"use strict";
3var $foreign = require("./foreign.js");
4var Data_Bounded = require("../Data.Bounded/index.js");
5var Data_Maybe = require("../Data.Maybe/index.js");
6var Data_Ord = require("../Data.Ord/index.js");
7var Cardinality = function (x) {
8 return x;
9};
10var Enum = function (Ord0, pred, succ) {
11 this.Ord0 = Ord0;
12 this.pred = pred;
13 this.succ = succ;
14};
15var BoundedEnum = function (Bounded0, Enum1, cardinality, fromEnum, toEnum) {
16 this.Bounded0 = Bounded0;
17 this.Enum1 = Enum1;
18 this.cardinality = cardinality;
19 this.fromEnum = fromEnum;
20 this.toEnum = toEnum;
21};
22var toEnum = function (dict) {
23 return dict.toEnum;
24};
25var fromEnum = function (dict) {
26 return dict.fromEnum;
27};
28var toEnumWithDefaults = function (dictBoundedEnum) {
29 return function (low) {
30 return function (high) {
31 return function (x) {
32 var v = toEnum(dictBoundedEnum)(x);
33 if (v instanceof Data_Maybe.Just) {
34 return v.value0;
35 };
36 if (v instanceof Data_Maybe.Nothing) {
37 var $134 = x < fromEnum(dictBoundedEnum)(Data_Bounded.bottom(dictBoundedEnum.Bounded0()));
38 if ($134) {
39 return low;
40 };
41 return high;
42 };
43 throw new Error("Failed pattern match at Data.Enum (line 158, column 33 - line 160, column 62): " + [ v.constructor.name ]);
44 };
45 };
46 };
47};
48var defaultSucc = function (toEnum$prime) {
49 return function (fromEnum$prime) {
50 return function (a) {
51 return toEnum$prime(fromEnum$prime(a) + 1 | 0);
52 };
53 };
54};
55var defaultPred = function (toEnum$prime) {
56 return function (fromEnum$prime) {
57 return function (a) {
58 return toEnum$prime(fromEnum$prime(a) - 1 | 0);
59 };
60 };
61};
62var charToEnum = function (v) {
63 if (v >= Data_Bounded.bottom(Data_Bounded.boundedInt) && v <= Data_Bounded.top(Data_Bounded.boundedInt)) {
64 return new Data_Maybe.Just($foreign.fromCharCode(v));
65 };
66 return Data_Maybe.Nothing.value;
67};
68var enumChar = new Enum(function ($dollar__unused) {
69 return Data_Ord.ordChar;
70}, defaultPred(charToEnum)($foreign.toCharCode), defaultSucc(charToEnum)($foreign.toCharCode));
71var boundedEnumChar = new BoundedEnum(function ($dollar__unused) {
72 return Data_Bounded.boundedChar;
73}, function ($dollar__unused) {
74 return enumChar;
75}, $foreign.toCharCode(Data_Bounded.top(Data_Bounded.boundedChar)) - $foreign.toCharCode(Data_Bounded.bottom(Data_Bounded.boundedChar)) | 0, $foreign.toCharCode, charToEnum);
76module.exports = {
77 Enum: Enum,
78 BoundedEnum: BoundedEnum,
79 toEnum: toEnum,
80 fromEnum: fromEnum,
81 toEnumWithDefaults: toEnumWithDefaults,
82 Cardinality: Cardinality,
83 defaultSucc: defaultSucc,
84 defaultPred: defaultPred,
85 enumChar: enumChar,
86 boundedEnumChar: boundedEnumChar
87};