019: Integer が多倍長になっていない

↑up

概要

ランタイムにおいて、Int, Integer が同じ扱いになっているのを改める。

調査ログ

2020-05-06 (Wed)

060 にて、fromInteger にも対応して整数リテラルが正しく多相になったので、 本件に取り掛かりたい。

壊さずに段階的に改変していきたい。

本件のついでに、instance Enum Integer も実装して、Integer 型の arithmeticseq も test/sample に加えたい

あと、現状では IntLiteral の内部データが int になっていたように思うので、それを long に直しておきたい。

実装

以下のように、すんなり進められた:

また、instance Enum Integer の定義を lib/Prelude.hs に追加(そのために Prim.integerFromInt を追加など若干の修正も)

以下のテストを追加した: