Skip to content

Instantly share code, notes, and snippets.

@smarter
Created August 22, 2018 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save smarter/1c564e65514d328462e7453162ccfb65 to your computer and use it in GitHub Desktop.
Save smarter/1c564e65514d328462e7453162ccfb65 to your computer and use it in GitHub Desktop.
object foo {
abstract sealed class num
final case class One() extends num
final case class Bit0(a: num) extends num
final case class Bit1(a: num) extends num
abstract sealed class char
final case class zero_char() extends char
final case class Char(a: num) extends char
def integer_of_char(x0: char): BigInt = x0 match {
case Char(Bit1(Bit1(Bit1(Bit1(Bit1(Bit1(Bit1(One())))))))) => BigInt(255)
case Char(Bit0(Bit1(Bit1(Bit1(Bit1(Bit1(Bit1(One())))))))) => BigInt(254)
case Char(Bit1(Bit0(Bit1(Bit1(Bit1(Bit1(Bit1(One())))))))) => BigInt(253)
case Char(Bit0(Bit0(Bit1(Bit1(Bit1(Bit1(Bit1(One())))))))) => BigInt(252)
case Char(Bit1(Bit1(Bit0(Bit1(Bit1(Bit1(Bit1(One())))))))) => BigInt(251)
case Char(Bit0(Bit1(Bit0(Bit1(Bit1(Bit1(Bit1(One())))))))) => BigInt(250)
case Char(Bit1(Bit0(Bit0(Bit1(Bit1(Bit1(Bit1(One())))))))) => BigInt(249)
case Char(Bit0(Bit0(Bit0(Bit1(Bit1(Bit1(Bit1(One())))))))) => BigInt(248)
case Char(Bit1(Bit1(Bit1(Bit0(Bit1(Bit1(Bit1(One())))))))) => BigInt(247)
case Char(Bit0(Bit1(Bit1(Bit0(Bit1(Bit1(Bit1(One())))))))) => BigInt(246)
case Char(Bit1(Bit0(Bit1(Bit0(Bit1(Bit1(Bit1(One())))))))) => BigInt(245)
case Char(Bit0(Bit0(Bit1(Bit0(Bit1(Bit1(Bit1(One())))))))) => BigInt(244)
case Char(Bit1(Bit1(Bit0(Bit0(Bit1(Bit1(Bit1(One())))))))) => BigInt(243)
case Char(Bit0(Bit1(Bit0(Bit0(Bit1(Bit1(Bit1(One())))))))) => BigInt(242)
case Char(Bit1(Bit0(Bit0(Bit0(Bit1(Bit1(Bit1(One())))))))) => BigInt(241)
case Char(Bit0(Bit0(Bit0(Bit0(Bit1(Bit1(Bit1(One())))))))) => BigInt(240)
case Char(Bit1(Bit1(Bit1(Bit1(Bit0(Bit1(Bit1(One())))))))) => BigInt(239)
case Char(Bit0(Bit1(Bit1(Bit1(Bit0(Bit1(Bit1(One())))))))) => BigInt(238)
case Char(Bit1(Bit0(Bit1(Bit1(Bit0(Bit1(Bit1(One())))))))) => BigInt(237)
case Char(Bit0(Bit0(Bit1(Bit1(Bit0(Bit1(Bit1(One())))))))) => BigInt(236)
case Char(Bit1(Bit1(Bit0(Bit1(Bit0(Bit1(Bit1(One())))))))) => BigInt(235)
case Char(Bit0(Bit1(Bit0(Bit1(Bit0(Bit1(Bit1(One())))))))) => BigInt(234)
case Char(Bit1(Bit0(Bit0(Bit1(Bit0(Bit1(Bit1(One())))))))) => BigInt(233)
case Char(Bit0(Bit0(Bit0(Bit1(Bit0(Bit1(Bit1(One())))))))) => BigInt(232)
case Char(Bit1(Bit1(Bit1(Bit0(Bit0(Bit1(Bit1(One())))))))) => BigInt(231)
case Char(Bit0(Bit1(Bit1(Bit0(Bit0(Bit1(Bit1(One())))))))) => BigInt(230)
case Char(Bit1(Bit0(Bit1(Bit0(Bit0(Bit1(Bit1(One())))))))) => BigInt(229)
case Char(Bit0(Bit0(Bit1(Bit0(Bit0(Bit1(Bit1(One())))))))) => BigInt(228)
case Char(Bit1(Bit1(Bit0(Bit0(Bit0(Bit1(Bit1(One())))))))) => BigInt(227)
case Char(Bit0(Bit1(Bit0(Bit0(Bit0(Bit1(Bit1(One())))))))) => BigInt(226)
case Char(Bit1(Bit0(Bit0(Bit0(Bit0(Bit1(Bit1(One())))))))) => BigInt(225)
case Char(Bit0(Bit0(Bit0(Bit0(Bit0(Bit1(Bit1(One())))))))) => BigInt(224)
case Char(Bit1(Bit1(Bit1(Bit1(Bit1(Bit0(Bit1(One())))))))) => BigInt(223)
case Char(Bit0(Bit1(Bit1(Bit1(Bit1(Bit0(Bit1(One())))))))) => BigInt(222)
case Char(Bit1(Bit0(Bit1(Bit1(Bit1(Bit0(Bit1(One())))))))) => BigInt(221)
case Char(Bit0(Bit0(Bit1(Bit1(Bit1(Bit0(Bit1(One())))))))) => BigInt(220)
case Char(Bit1(Bit1(Bit0(Bit1(Bit1(Bit0(Bit1(One())))))))) => BigInt(219)
case Char(Bit0(Bit1(Bit0(Bit1(Bit1(Bit0(Bit1(One())))))))) => BigInt(218)
case Char(Bit1(Bit0(Bit0(Bit1(Bit1(Bit0(Bit1(One())))))))) => BigInt(217)
case Char(Bit0(Bit0(Bit0(Bit1(Bit1(Bit0(Bit1(One())))))))) => BigInt(216)
case Char(Bit1(Bit1(Bit1(Bit0(Bit1(Bit0(Bit1(One())))))))) => BigInt(215)
case Char(Bit0(Bit1(Bit1(Bit0(Bit1(Bit0(Bit1(One())))))))) => BigInt(214)
case Char(Bit1(Bit0(Bit1(Bit0(Bit1(Bit0(Bit1(One())))))))) => BigInt(213)
case Char(Bit0(Bit0(Bit1(Bit0(Bit1(Bit0(Bit1(One())))))))) => BigInt(212)
case Char(Bit1(Bit1(Bit0(Bit0(Bit1(Bit0(Bit1(One())))))))) => BigInt(211)
case Char(Bit0(Bit1(Bit0(Bit0(Bit1(Bit0(Bit1(One())))))))) => BigInt(210)
case Char(Bit1(Bit0(Bit0(Bit0(Bit1(Bit0(Bit1(One())))))))) => BigInt(209)
case Char(Bit0(Bit0(Bit0(Bit0(Bit1(Bit0(Bit1(One())))))))) => BigInt(208)
case Char(Bit1(Bit1(Bit1(Bit1(Bit0(Bit0(Bit1(One())))))))) => BigInt(207)
case Char(Bit0(Bit1(Bit1(Bit1(Bit0(Bit0(Bit1(One())))))))) => BigInt(206)
case Char(Bit1(Bit0(Bit1(Bit1(Bit0(Bit0(Bit1(One())))))))) => BigInt(205)
case Char(Bit0(Bit0(Bit1(Bit1(Bit0(Bit0(Bit1(One())))))))) => BigInt(204)
case Char(Bit1(Bit1(Bit0(Bit1(Bit0(Bit0(Bit1(One())))))))) => BigInt(203)
case Char(Bit0(Bit1(Bit0(Bit1(Bit0(Bit0(Bit1(One())))))))) => BigInt(202)
case Char(Bit1(Bit0(Bit0(Bit1(Bit0(Bit0(Bit1(One())))))))) => BigInt(201)
case Char(Bit0(Bit0(Bit0(Bit1(Bit0(Bit0(Bit1(One())))))))) => BigInt(200)
case Char(Bit1(Bit1(Bit1(Bit0(Bit0(Bit0(Bit1(One())))))))) => BigInt(199)
case Char(Bit0(Bit1(Bit1(Bit0(Bit0(Bit0(Bit1(One())))))))) => BigInt(198)
case Char(Bit1(Bit0(Bit1(Bit0(Bit0(Bit0(Bit1(One())))))))) => BigInt(197)
case Char(Bit0(Bit0(Bit1(Bit0(Bit0(Bit0(Bit1(One())))))))) => BigInt(196)
case Char(Bit1(Bit1(Bit0(Bit0(Bit0(Bit0(Bit1(One())))))))) => BigInt(195)
case Char(Bit0(Bit1(Bit0(Bit0(Bit0(Bit0(Bit1(One())))))))) => BigInt(194)
case Char(Bit1(Bit0(Bit0(Bit0(Bit0(Bit0(Bit1(One())))))))) => BigInt(193)
case Char(Bit0(Bit0(Bit0(Bit0(Bit0(Bit0(Bit1(One())))))))) => BigInt(192)
case Char(Bit1(Bit1(Bit1(Bit1(Bit1(Bit1(Bit0(One())))))))) => BigInt(191)
case Char(Bit0(Bit1(Bit1(Bit1(Bit1(Bit1(Bit0(One())))))))) => BigInt(190)
case Char(Bit1(Bit0(Bit1(Bit1(Bit1(Bit1(Bit0(One())))))))) => BigInt(189)
case Char(Bit0(Bit0(Bit1(Bit1(Bit1(Bit1(Bit0(One())))))))) => BigInt(188)
case Char(Bit1(Bit1(Bit0(Bit1(Bit1(Bit1(Bit0(One())))))))) => BigInt(187)
case Char(Bit0(Bit1(Bit0(Bit1(Bit1(Bit1(Bit0(One())))))))) => BigInt(186)
case Char(Bit1(Bit0(Bit0(Bit1(Bit1(Bit1(Bit0(One())))))))) => BigInt(185)
case Char(Bit0(Bit0(Bit0(Bit1(Bit1(Bit1(Bit0(One())))))))) => BigInt(184)
case Char(Bit1(Bit1(Bit1(Bit0(Bit1(Bit1(Bit0(One())))))))) => BigInt(183)
case Char(Bit0(Bit1(Bit1(Bit0(Bit1(Bit1(Bit0(One())))))))) => BigInt(182)
case Char(Bit1(Bit0(Bit1(Bit0(Bit1(Bit1(Bit0(One())))))))) => BigInt(181)
case Char(Bit0(Bit0(Bit1(Bit0(Bit1(Bit1(Bit0(One())))))))) => BigInt(180)
case Char(Bit1(Bit1(Bit0(Bit0(Bit1(Bit1(Bit0(One())))))))) => BigInt(179)
case Char(Bit0(Bit1(Bit0(Bit0(Bit1(Bit1(Bit0(One())))))))) => BigInt(178)
case Char(Bit1(Bit0(Bit0(Bit0(Bit1(Bit1(Bit0(One())))))))) => BigInt(177)
case Char(Bit0(Bit0(Bit0(Bit0(Bit1(Bit1(Bit0(One())))))))) => BigInt(176)
case Char(Bit1(Bit1(Bit1(Bit1(Bit0(Bit1(Bit0(One())))))))) => BigInt(175)
case Char(Bit0(Bit1(Bit1(Bit1(Bit0(Bit1(Bit0(One())))))))) => BigInt(174)
case Char(Bit1(Bit0(Bit1(Bit1(Bit0(Bit1(Bit0(One())))))))) => BigInt(173)
case Char(Bit0(Bit0(Bit1(Bit1(Bit0(Bit1(Bit0(One())))))))) => BigInt(172)
case Char(Bit1(Bit1(Bit0(Bit1(Bit0(Bit1(Bit0(One())))))))) => BigInt(171)
case Char(Bit0(Bit1(Bit0(Bit1(Bit0(Bit1(Bit0(One())))))))) => BigInt(170)
case Char(Bit1(Bit0(Bit0(Bit1(Bit0(Bit1(Bit0(One())))))))) => BigInt(169)
case Char(Bit0(Bit0(Bit0(Bit1(Bit0(Bit1(Bit0(One())))))))) => BigInt(168)
case Char(Bit1(Bit1(Bit1(Bit0(Bit0(Bit1(Bit0(One())))))))) => BigInt(167)
case Char(Bit0(Bit1(Bit1(Bit0(Bit0(Bit1(Bit0(One())))))))) => BigInt(166)
case Char(Bit1(Bit0(Bit1(Bit0(Bit0(Bit1(Bit0(One())))))))) => BigInt(165)
case Char(Bit0(Bit0(Bit1(Bit0(Bit0(Bit1(Bit0(One())))))))) => BigInt(164)
case Char(Bit1(Bit1(Bit0(Bit0(Bit0(Bit1(Bit0(One())))))))) => BigInt(163)
case Char(Bit0(Bit1(Bit0(Bit0(Bit0(Bit1(Bit0(One())))))))) => BigInt(162)
case Char(Bit1(Bit0(Bit0(Bit0(Bit0(Bit1(Bit0(One())))))))) => BigInt(161)
case Char(Bit0(Bit0(Bit0(Bit0(Bit0(Bit1(Bit0(One())))))))) => BigInt(160)
case Char(Bit1(Bit1(Bit1(Bit1(Bit1(Bit0(Bit0(One())))))))) => BigInt(159)
case Char(Bit0(Bit1(Bit1(Bit1(Bit1(Bit0(Bit0(One())))))))) => BigInt(158)
case Char(Bit1(Bit0(Bit1(Bit1(Bit1(Bit0(Bit0(One())))))))) => BigInt(157)
case Char(Bit0(Bit0(Bit1(Bit1(Bit1(Bit0(Bit0(One())))))))) => BigInt(156)
case Char(Bit1(Bit1(Bit0(Bit1(Bit1(Bit0(Bit0(One())))))))) => BigInt(155)
case Char(Bit0(Bit1(Bit0(Bit1(Bit1(Bit0(Bit0(One())))))))) => BigInt(154)
case Char(Bit1(Bit0(Bit0(Bit1(Bit1(Bit0(Bit0(One())))))))) => BigInt(153)
case Char(Bit0(Bit0(Bit0(Bit1(Bit1(Bit0(Bit0(One())))))))) => BigInt(152)
case Char(Bit1(Bit1(Bit1(Bit0(Bit1(Bit0(Bit0(One())))))))) => BigInt(151)
case Char(Bit0(Bit1(Bit1(Bit0(Bit1(Bit0(Bit0(One())))))))) => BigInt(150)
case Char(Bit1(Bit0(Bit1(Bit0(Bit1(Bit0(Bit0(One())))))))) => BigInt(149)
case Char(Bit0(Bit0(Bit1(Bit0(Bit1(Bit0(Bit0(One())))))))) => BigInt(148)
case Char(Bit1(Bit1(Bit0(Bit0(Bit1(Bit0(Bit0(One())))))))) => BigInt(147)
case Char(Bit0(Bit1(Bit0(Bit0(Bit1(Bit0(Bit0(One())))))))) => BigInt(146)
case Char(Bit1(Bit0(Bit0(Bit0(Bit1(Bit0(Bit0(One())))))))) => BigInt(145)
case Char(Bit0(Bit0(Bit0(Bit0(Bit1(Bit0(Bit0(One())))))))) => BigInt(144)
case Char(Bit1(Bit1(Bit1(Bit1(Bit0(Bit0(Bit0(One())))))))) => BigInt(143)
case Char(Bit0(Bit1(Bit1(Bit1(Bit0(Bit0(Bit0(One())))))))) => BigInt(142)
case Char(Bit1(Bit0(Bit1(Bit1(Bit0(Bit0(Bit0(One())))))))) => BigInt(141)
case Char(Bit0(Bit0(Bit1(Bit1(Bit0(Bit0(Bit0(One())))))))) => BigInt(140)
case Char(Bit1(Bit1(Bit0(Bit1(Bit0(Bit0(Bit0(One())))))))) => BigInt(139)
case Char(Bit0(Bit1(Bit0(Bit1(Bit0(Bit0(Bit0(One())))))))) => BigInt(138)
case Char(Bit1(Bit0(Bit0(Bit1(Bit0(Bit0(Bit0(One())))))))) => BigInt(137)
case Char(Bit0(Bit0(Bit0(Bit1(Bit0(Bit0(Bit0(One())))))))) => BigInt(136)
case Char(Bit1(Bit1(Bit1(Bit0(Bit0(Bit0(Bit0(One())))))))) => BigInt(135)
case Char(Bit0(Bit1(Bit1(Bit0(Bit0(Bit0(Bit0(One())))))))) => BigInt(134)
case Char(Bit1(Bit0(Bit1(Bit0(Bit0(Bit0(Bit0(One())))))))) => BigInt(133)
case Char(Bit0(Bit0(Bit1(Bit0(Bit0(Bit0(Bit0(One())))))))) => BigInt(132)
case Char(Bit1(Bit1(Bit0(Bit0(Bit0(Bit0(Bit0(One())))))))) => BigInt(131)
case Char(Bit0(Bit1(Bit0(Bit0(Bit0(Bit0(Bit0(One())))))))) => BigInt(130)
case Char(Bit1(Bit0(Bit0(Bit0(Bit0(Bit0(Bit0(One())))))))) => BigInt(129)
case Char(Bit0(Bit0(Bit0(Bit0(Bit0(Bit0(Bit0(One())))))))) => BigInt(128)
case Char(Bit1(Bit1(Bit1(Bit1(Bit1(Bit1(One()))))))) => BigInt(127)
case Char(Bit0(Bit1(Bit1(Bit1(Bit1(Bit1(One()))))))) => BigInt(126)
case Char(Bit1(Bit0(Bit1(Bit1(Bit1(Bit1(One()))))))) => BigInt(125)
case Char(Bit0(Bit0(Bit1(Bit1(Bit1(Bit1(One()))))))) => BigInt(124)
case Char(Bit1(Bit1(Bit0(Bit1(Bit1(Bit1(One()))))))) => BigInt(123)
case Char(Bit0(Bit1(Bit0(Bit1(Bit1(Bit1(One()))))))) => BigInt(122)
case Char(Bit1(Bit0(Bit0(Bit1(Bit1(Bit1(One()))))))) => BigInt(121)
case Char(Bit0(Bit0(Bit0(Bit1(Bit1(Bit1(One()))))))) => BigInt(120)
case Char(Bit1(Bit1(Bit1(Bit0(Bit1(Bit1(One()))))))) => BigInt(119)
case Char(Bit0(Bit1(Bit1(Bit0(Bit1(Bit1(One()))))))) => BigInt(118)
case Char(Bit1(Bit0(Bit1(Bit0(Bit1(Bit1(One()))))))) => BigInt(117)
case Char(Bit0(Bit0(Bit1(Bit0(Bit1(Bit1(One()))))))) => BigInt(116)
case Char(Bit1(Bit1(Bit0(Bit0(Bit1(Bit1(One()))))))) => BigInt(115)
case Char(Bit0(Bit1(Bit0(Bit0(Bit1(Bit1(One()))))))) => BigInt(114)
case Char(Bit1(Bit0(Bit0(Bit0(Bit1(Bit1(One()))))))) => BigInt(113)
case Char(Bit0(Bit0(Bit0(Bit0(Bit1(Bit1(One()))))))) => BigInt(112)
case Char(Bit1(Bit1(Bit1(Bit1(Bit0(Bit1(One()))))))) => BigInt(111)
case Char(Bit0(Bit1(Bit1(Bit1(Bit0(Bit1(One()))))))) => BigInt(110)
case Char(Bit1(Bit0(Bit1(Bit1(Bit0(Bit1(One()))))))) => BigInt(109)
case Char(Bit0(Bit0(Bit1(Bit1(Bit0(Bit1(One()))))))) => BigInt(108)
case Char(Bit1(Bit1(Bit0(Bit1(Bit0(Bit1(One()))))))) => BigInt(107)
case Char(Bit0(Bit1(Bit0(Bit1(Bit0(Bit1(One()))))))) => BigInt(106)
case Char(Bit1(Bit0(Bit0(Bit1(Bit0(Bit1(One()))))))) => BigInt(105)
case Char(Bit0(Bit0(Bit0(Bit1(Bit0(Bit1(One()))))))) => BigInt(104)
case Char(Bit1(Bit1(Bit1(Bit0(Bit0(Bit1(One()))))))) => BigInt(103)
case Char(Bit0(Bit1(Bit1(Bit0(Bit0(Bit1(One()))))))) => BigInt(102)
case Char(Bit1(Bit0(Bit1(Bit0(Bit0(Bit1(One()))))))) => BigInt(101)
case Char(Bit0(Bit0(Bit1(Bit0(Bit0(Bit1(One()))))))) => BigInt(100)
case Char(Bit1(Bit1(Bit0(Bit0(Bit0(Bit1(One()))))))) => BigInt(99)
case Char(Bit0(Bit1(Bit0(Bit0(Bit0(Bit1(One()))))))) => BigInt(98)
case Char(Bit1(Bit0(Bit0(Bit0(Bit0(Bit1(One()))))))) => BigInt(97)
case Char(Bit0(Bit0(Bit0(Bit0(Bit0(Bit1(One()))))))) => BigInt(96)
case Char(Bit1(Bit1(Bit1(Bit1(Bit1(Bit0(One()))))))) => BigInt(95)
case Char(Bit0(Bit1(Bit1(Bit1(Bit1(Bit0(One()))))))) => BigInt(94)
case Char(Bit1(Bit0(Bit1(Bit1(Bit1(Bit0(One()))))))) => BigInt(93)
case Char(Bit0(Bit0(Bit1(Bit1(Bit1(Bit0(One()))))))) => BigInt(92)
case Char(Bit1(Bit1(Bit0(Bit1(Bit1(Bit0(One()))))))) => BigInt(91)
case Char(Bit0(Bit1(Bit0(Bit1(Bit1(Bit0(One()))))))) => BigInt(90)
case Char(Bit1(Bit0(Bit0(Bit1(Bit1(Bit0(One()))))))) => BigInt(89)
case Char(Bit0(Bit0(Bit0(Bit1(Bit1(Bit0(One()))))))) => BigInt(88)
case Char(Bit1(Bit1(Bit1(Bit0(Bit1(Bit0(One()))))))) => BigInt(87)
case Char(Bit0(Bit1(Bit1(Bit0(Bit1(Bit0(One()))))))) => BigInt(86)
case Char(Bit1(Bit0(Bit1(Bit0(Bit1(Bit0(One()))))))) => BigInt(85)
case Char(Bit0(Bit0(Bit1(Bit0(Bit1(Bit0(One()))))))) => BigInt(84)
case Char(Bit1(Bit1(Bit0(Bit0(Bit1(Bit0(One()))))))) => BigInt(83)
case Char(Bit0(Bit1(Bit0(Bit0(Bit1(Bit0(One()))))))) => BigInt(82)
case Char(Bit1(Bit0(Bit0(Bit0(Bit1(Bit0(One()))))))) => BigInt(81)
case Char(Bit0(Bit0(Bit0(Bit0(Bit1(Bit0(One()))))))) => BigInt(80)
case Char(Bit1(Bit1(Bit1(Bit1(Bit0(Bit0(One()))))))) => BigInt(79)
case Char(Bit0(Bit1(Bit1(Bit1(Bit0(Bit0(One()))))))) => BigInt(78)
case Char(Bit1(Bit0(Bit1(Bit1(Bit0(Bit0(One()))))))) => BigInt(77)
case Char(Bit0(Bit0(Bit1(Bit1(Bit0(Bit0(One()))))))) => BigInt(76)
case Char(Bit1(Bit1(Bit0(Bit1(Bit0(Bit0(One()))))))) => BigInt(75)
case Char(Bit0(Bit1(Bit0(Bit1(Bit0(Bit0(One()))))))) => BigInt(74)
case Char(Bit1(Bit0(Bit0(Bit1(Bit0(Bit0(One()))))))) => BigInt(73)
case Char(Bit0(Bit0(Bit0(Bit1(Bit0(Bit0(One()))))))) => BigInt(72)
case Char(Bit1(Bit1(Bit1(Bit0(Bit0(Bit0(One()))))))) => BigInt(71)
case Char(Bit0(Bit1(Bit1(Bit0(Bit0(Bit0(One()))))))) => BigInt(70)
case Char(Bit1(Bit0(Bit1(Bit0(Bit0(Bit0(One()))))))) => BigInt(69)
case Char(Bit0(Bit0(Bit1(Bit0(Bit0(Bit0(One()))))))) => BigInt(68)
case Char(Bit1(Bit1(Bit0(Bit0(Bit0(Bit0(One()))))))) => BigInt(67)
case Char(Bit0(Bit1(Bit0(Bit0(Bit0(Bit0(One()))))))) => BigInt(66)
case Char(Bit1(Bit0(Bit0(Bit0(Bit0(Bit0(One()))))))) => BigInt(65)
case Char(Bit0(Bit0(Bit0(Bit0(Bit0(Bit0(One()))))))) => BigInt(64)
case Char(Bit1(Bit1(Bit1(Bit1(Bit1(One())))))) => BigInt(63)
case Char(Bit0(Bit1(Bit1(Bit1(Bit1(One())))))) => BigInt(62)
case Char(Bit1(Bit0(Bit1(Bit1(Bit1(One())))))) => BigInt(61)
case Char(Bit0(Bit0(Bit1(Bit1(Bit1(One())))))) => BigInt(60)
case Char(Bit1(Bit1(Bit0(Bit1(Bit1(One())))))) => BigInt(59)
case Char(Bit0(Bit1(Bit0(Bit1(Bit1(One())))))) => BigInt(58)
case Char(Bit1(Bit0(Bit0(Bit1(Bit1(One())))))) => BigInt(57)
case Char(Bit0(Bit0(Bit0(Bit1(Bit1(One())))))) => BigInt(56)
case Char(Bit1(Bit1(Bit1(Bit0(Bit1(One())))))) => BigInt(55)
case Char(Bit0(Bit1(Bit1(Bit0(Bit1(One())))))) => BigInt(54)
case Char(Bit1(Bit0(Bit1(Bit0(Bit1(One())))))) => BigInt(53)
case Char(Bit0(Bit0(Bit1(Bit0(Bit1(One())))))) => BigInt(52)
case Char(Bit1(Bit1(Bit0(Bit0(Bit1(One())))))) => BigInt(51)
case Char(Bit0(Bit1(Bit0(Bit0(Bit1(One())))))) => BigInt(50)
case Char(Bit1(Bit0(Bit0(Bit0(Bit1(One())))))) => BigInt(49)
case Char(Bit0(Bit0(Bit0(Bit0(Bit1(One())))))) => BigInt(48)
case Char(Bit1(Bit1(Bit1(Bit1(Bit0(One())))))) => BigInt(47)
case Char(Bit0(Bit1(Bit1(Bit1(Bit0(One())))))) => BigInt(46)
case Char(Bit1(Bit0(Bit1(Bit1(Bit0(One())))))) => BigInt(45)
case Char(Bit0(Bit0(Bit1(Bit1(Bit0(One())))))) => BigInt(44)
case Char(Bit1(Bit1(Bit0(Bit1(Bit0(One())))))) => BigInt(43)
case Char(Bit0(Bit1(Bit0(Bit1(Bit0(One())))))) => BigInt(42)
case Char(Bit1(Bit0(Bit0(Bit1(Bit0(One())))))) => BigInt(41)
case Char(Bit0(Bit0(Bit0(Bit1(Bit0(One())))))) => BigInt(40)
case Char(Bit1(Bit1(Bit1(Bit0(Bit0(One())))))) => BigInt(39)
case Char(Bit0(Bit1(Bit1(Bit0(Bit0(One())))))) => BigInt(38)
case Char(Bit1(Bit0(Bit1(Bit0(Bit0(One())))))) => BigInt(37)
case Char(Bit0(Bit0(Bit1(Bit0(Bit0(One())))))) => BigInt(36)
case Char(Bit1(Bit1(Bit0(Bit0(Bit0(One())))))) => BigInt(35)
case Char(Bit0(Bit1(Bit0(Bit0(Bit0(One())))))) => BigInt(34)
case Char(Bit1(Bit0(Bit0(Bit0(Bit0(One())))))) => BigInt(33)
case Char(Bit0(Bit0(Bit0(Bit0(Bit0(One())))))) => BigInt(32)
case Char(Bit1(Bit1(Bit1(Bit1(One()))))) => BigInt(31)
case Char(Bit0(Bit1(Bit1(Bit1(One()))))) => BigInt(30)
case Char(Bit1(Bit0(Bit1(Bit1(One()))))) => BigInt(29)
case Char(Bit0(Bit0(Bit1(Bit1(One()))))) => BigInt(28)
case Char(Bit1(Bit1(Bit0(Bit1(One()))))) => BigInt(27)
case Char(Bit0(Bit1(Bit0(Bit1(One()))))) => BigInt(26)
case Char(Bit1(Bit0(Bit0(Bit1(One()))))) => BigInt(25)
case Char(Bit0(Bit0(Bit0(Bit1(One()))))) => BigInt(24)
case Char(Bit1(Bit1(Bit1(Bit0(One()))))) => BigInt(23)
case Char(Bit0(Bit1(Bit1(Bit0(One()))))) => BigInt(22)
case Char(Bit1(Bit0(Bit1(Bit0(One()))))) => BigInt(21)
case Char(Bit0(Bit0(Bit1(Bit0(One()))))) => BigInt(20)
case Char(Bit1(Bit1(Bit0(Bit0(One()))))) => BigInt(19)
case Char(Bit0(Bit1(Bit0(Bit0(One()))))) => BigInt(18)
case Char(Bit1(Bit0(Bit0(Bit0(One()))))) => BigInt(17)
case Char(Bit0(Bit0(Bit0(Bit0(One()))))) => BigInt(16)
case Char(Bit1(Bit1(Bit1(One())))) => BigInt(15)
case Char(Bit0(Bit1(Bit1(One())))) => BigInt(14)
case Char(Bit1(Bit0(Bit1(One())))) => BigInt(13)
case Char(Bit0(Bit0(Bit1(One())))) => BigInt(12)
case Char(Bit1(Bit1(Bit0(One())))) => BigInt(11)
case Char(Bit0(Bit1(Bit0(One())))) => BigInt(10)
case Char(Bit1(Bit0(Bit0(One())))) => BigInt(9)
case Char(Bit0(Bit0(Bit0(One())))) => BigInt(8)
case Char(Bit1(Bit1(One()))) => BigInt(7)
case Char(Bit0(Bit1(One()))) => BigInt(6)
case Char(Bit1(Bit0(One()))) => BigInt(5)
case Char(Bit0(Bit0(One()))) => BigInt(4)
case Char(Bit1(One())) => BigInt(3)
case Char(Bit0(One())) => BigInt(2)
case Char(One()) => BigInt(1)
case zero_char() => BigInt(0)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment