Mar 06, 2-3 PM (93)
Mar 06, 3-4 PM (37)
Mar 06, 4-5 PM (40)
Mar 06, 5-6 PM (20)
Mar 06, 6-7 PM (16)
Mar 06, 7-8 PM (22)
Mar 06, 8-9 PM (15)
Mar 06, 9-10 PM (13)
Mar 06, 10-11 PM (28)
Mar 06, 11-12 AM (22)
Mar 07, 12-1 AM (16)
Mar 07, 1-2 AM (1)
Mar 07, 2-3 AM (6)
Mar 07, 3-4 AM (0)
Mar 07, 4-5 AM (1)
Mar 07, 5-6 AM (5)
Mar 07, 6-7 AM (7)
Mar 07, 7-8 AM (7)
Mar 07, 8-9 AM (4)
Mar 07, 9-10 AM (3)
Mar 07, 10-11 AM (0)
Mar 07, 11-12 PM (4)
Mar 07, 12-1 PM (6)
Mar 07, 1-2 PM (2)
Mar 07, 2-3 PM (6)
Mar 07, 3-4 PM (22)
Mar 07, 4-5 PM (21)
Mar 07, 5-6 PM (5)
Mar 07, 6-7 PM (0)
Mar 07, 7-8 PM (7)
Mar 07, 8-9 PM (10)
Mar 07, 9-10 PM (7)
Mar 07, 10-11 PM (37)
Mar 07, 11-12 AM (28)
Mar 08, 12-1 AM (3)
Mar 08, 1-2 AM (5)
Mar 08, 2-3 AM (6)
Mar 08, 3-4 AM (3)
Mar 08, 4-5 AM (1)
Mar 08, 5-6 AM (1)
Mar 08, 6-7 AM (2)
Mar 08, 7-8 AM (4)
Mar 08, 8-9 AM (10)
Mar 08, 9-10 AM (2)
Mar 08, 10-11 AM (0)
Mar 08, 11-12 PM (1)
Mar 08, 12-1 PM (3)
Mar 08, 1-2 PM (6)
Mar 08, 2-3 PM (6)
Mar 08, 3-4 PM (15)
Mar 08, 4-5 PM (0)
Mar 08, 5-6 PM (31)
Mar 08, 6-7 PM (7)
Mar 08, 7-8 PM (8)
Mar 08, 8-9 PM (12)
Mar 08, 9-10 PM (1)
Mar 08, 10-11 PM (25)
Mar 08, 11-12 AM (25)
Mar 09, 12-1 AM (6)
Mar 09, 1-2 AM (5)
Mar 09, 2-3 AM (22)
Mar 09, 3-4 AM (20)
Mar 09, 4-5 AM (2)
Mar 09, 5-6 AM (5)
Mar 09, 6-7 AM (3)
Mar 09, 7-8 AM (21)
Mar 09, 8-9 AM (36)
Mar 09, 9-10 AM (30)
Mar 09, 10-11 AM (44)
Mar 09, 11-12 PM (31)
Mar 09, 12-1 PM (60)
Mar 09, 1-2 PM (24)
Mar 09, 2-3 PM (74)
Mar 09, 3-4 PM (60)
Mar 09, 4-5 PM (127)
Mar 09, 5-6 PM (50)
Mar 09, 6-7 PM (54)
Mar 09, 7-8 PM (23)
Mar 09, 8-9 PM (25)
Mar 09, 9-10 PM (13)
Mar 09, 10-11 PM (60)
Mar 09, 11-12 AM (24)
Mar 10, 12-1 AM (5)
Mar 10, 1-2 AM (35)
Mar 10, 2-3 AM (34)
Mar 10, 3-4 AM (6)
Mar 10, 4-5 AM (3)
Mar 10, 5-6 AM (5)
Mar 10, 6-7 AM (20)
Mar 10, 7-8 AM (69)
Mar 10, 8-9 AM (110)
Mar 10, 9-10 AM (30)
Mar 10, 10-11 AM (30)
Mar 10, 11-12 PM (53)
Mar 10, 12-1 PM (65)
Mar 10, 1-2 PM (51)
Mar 10, 2-3 PM (90)
Mar 10, 3-4 PM (39)
Mar 10, 4-5 PM (44)
Mar 10, 5-6 PM (26)
Mar 10, 6-7 PM (10)
Mar 10, 7-8 PM (30)
Mar 10, 8-9 PM (15)
Mar 10, 9-10 PM (33)
Mar 10, 10-11 PM (30)
Mar 10, 11-12 AM (46)
Mar 11, 12-1 AM (13)
Mar 11, 1-2 AM (10)
Mar 11, 2-3 AM (6)
Mar 11, 3-4 AM (0)
Mar 11, 4-5 AM (4)
Mar 11, 5-6 AM (3)
Mar 11, 6-7 AM (26)
Mar 11, 7-8 AM (41)
Mar 11, 8-9 AM (94)
Mar 11, 9-10 AM (24)
Mar 11, 10-11 AM (67)
Mar 11, 11-12 PM (37)
Mar 11, 12-1 PM (67)
Mar 11, 1-2 PM (63)
Mar 11, 2-3 PM (42)
Mar 11, 3-4 PM (45)
Mar 11, 4-5 PM (41)
Mar 11, 5-6 PM (51)
Mar 11, 6-7 PM (35)
Mar 11, 7-8 PM (20)
Mar 11, 8-9 PM (39)
Mar 11, 9-10 PM (14)
Mar 11, 10-11 PM (57)
Mar 11, 11-12 AM (43)
Mar 12, 12-1 AM (4)
Mar 12, 1-2 AM (8)
Mar 12, 2-3 AM (6)
Mar 12, 3-4 AM (3)
Mar 12, 4-5 AM (4)
Mar 12, 5-6 AM (8)
Mar 12, 6-7 AM (46)
Mar 12, 7-8 AM (15)
Mar 12, 8-9 AM (62)
Mar 12, 9-10 AM (50)
Mar 12, 10-11 AM (87)
Mar 12, 11-12 PM (29)
Mar 12, 12-1 PM (60)
Mar 12, 1-2 PM (51)
Mar 12, 2-3 PM (46)
Mar 12, 3-4 PM (60)
Mar 12, 4-5 PM (23)
Mar 12, 5-6 PM (26)
Mar 12, 6-7 PM (13)
Mar 12, 7-8 PM (39)
Mar 12, 8-9 PM (28)
Mar 12, 9-10 PM (9)
Mar 12, 10-11 PM (41)
Mar 12, 11-12 AM (16)
Mar 13, 12-1 AM (7)
Mar 13, 1-2 AM (21)
Mar 13, 2-3 AM (13)
Mar 13, 3-4 AM (7)
Mar 13, 4-5 AM (1)
Mar 13, 5-6 AM (2)
Mar 13, 6-7 AM (7)
Mar 13, 7-8 AM (32)
Mar 13, 8-9 AM (48)
Mar 13, 9-10 AM (89)
Mar 13, 10-11 AM (25)
Mar 13, 11-12 PM (32)
Mar 13, 12-1 PM (53)
Mar 13, 1-2 PM (50)
Mar 13, 2-3 PM (12)
4,273 commits this week Mar 06, 2026 - Mar 13, 2026
Remove Generic-based Flat derivation machinery (#7542)
The internal flat library contained Generic-based Flat class derivation
via GHC.Generics that had a bug: deserializing large enum types (512+
constructors) consumed infinite memory. While not a security risk (UPLC
on-chain code uses only manual Flat instances), the buggy dead code was
distracting. This commit removes the entire Generic derivation machinery.

Changes:

1. Add manual Flat instances to all types that previously relied on
   Generic defaults: Maybe, Either, Complex, [], NonEmpty, tuples (2-7),
   Tree, Filler, PostAligned, PreAligned, SrcSpan, SrcSpans, and all PIR
   types (Recursivity, Strictness, Datatype, Binding, Program, Term).
   Manual encoding is bit-identical to the Generic encoding.

2. Add missing `size` methods to partial Flat instances in
   FlatInstances.hs (Name, Version, VarDecl, TyVarDecl, Program,
   NamedDeBruijn) and Value.hs (K, Quantity, Value) that previously
   relied on the Generic default for `size`.

3. Gut Class.hs: remove ~440 lines of GFlat*/GEncode*/GSize* classes,
   NumConstructors type family, all Generic default method implementations,
   and associated imports/pragmas/re-exports.

4. Remove ENUM_LARGE test infrastructure (E256/E258 types, Flat/Arbitrary
   instances, ~530 lines) and delete Core.hs inspection tests.

5. Fix transitive import breakage: files that got Generic from the
   PlutusCore.Flat re-export now import GHC.Generics directly.
   Remove `hiding (to)` from imports that no longer re-export Generics.

6. Strip Generic-specific doctests from Tutorial.hs.

All existing tests pass (5281 across 4 suites). Manual instances produce
bit-identical encoding verified by round-trip tests and golden files.