3 * Test effect of eta-expanding past (case x of ..)
5 * Bottom strictness isn't right. Should be (eg) SSX, not just X.
7 * Enumeration types in worker/wrapper for strictness analysis
9 * Use (!) types in data cons to unbox.
11 * Check constant folding
13 * .hi file isn't updated if the only change is to the exports.
14 For example, UgenAll.lhs re-exports all of U_binding.hs; when a data type
15 decl in the latter changes, the .hi file for the former isn't updated.
16 I think this happens when a module exports another mdodule thus:
18 module UgenAll( module U_binding, ... ) where
20 * This should be reported as an error:
21 data T k = MkT (k Int#)
23 * Bogus report of overlapped pattern for
24 f (R {field = [c]}) = 1
26 This shows up for TyCon.maybeTyConSingleCon
28 * > module Main( main ) where
40 For ``f'' the following is reported.
43 Pattern match(es) are overlapped in the definition of function `f'
46 There are no complaints for definition for ``g''.
48 * Without -O I don't think we need change the module version
49 if the usages change; I forget why it changes even with -O
51 * Record selectors for existential type; no good! What to do?
52 Record update doesn't make sense either.
54 Need to be careful when figuring out strictness, and when generating
59 * Consructor re-use via CSE
61 Notes on module dependencies
62 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64 The Name/Var/Type group is a bit complicated. Here's the deal
66 Name, PrimRep, FieldLabel (uses Type.Type)
68 Var (uses Const.Con, IdInfo.IdInfo, Type.GenType, Type.Kind)
72 Class (uses TyCon.TyCon, Type.Type, SpecEnv.SpecEnv)
74 TyCon (uses Type.Type, Type.Kind, DataCon.DataCon)
76 Type (uses [DataCon.DataCon])
78 DataCon, TysPrim, Unify, SpecEnv, PprType
80 IdInfo, TysWiredIn (uses DataCon.mkDataCon, [MkId.mkDataConId])
82 PrimOp (uses PprType, TysWiredIn)
84 Const (needs PrimOp, [TysWiredIn.stringTy])
86 Id (needs Const.Con(..)), CoreSyn
90 CoreUnfold (uses OccurAnal)
92 MkId (uses CoreUnfold)
95 PrimOp uses TysWiredIn
100 basicTypes/DataCon.lhs
101 basicTypes/DataCon.hi-boot
105 specialise/SpecUtils.lhs
106 basicTypes/IdUtils.lhs