- Sep 20, 2006
-
-
chak@cse.unsw.edu.au. authored
-
chak@cse.unsw.edu.au. authored
- They got lost during manual patching, as they are file additions.
-
chak@cse.unsw.edu.au. authored
Wed Sep 20 04:01:18 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Adapt FC-code in TcUnify to pre-subsumption
-
chak@cse.unsw.edu.au. authored
Wed Sep 20 02:52:00 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Some more ASSERTs
-
chak@cse.unsw.edu.au. authored
Wed Sep 20 02:27:26 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * SPJ's fix to resolve conflict in instFun
-
chak@cse.unsw.edu.au. authored
Tue Sep 19 14:12:36 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Adjust code from manual merges
-
chak@cse.unsw.edu.au. authored
Tue Sep 19 14:11:55 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Adapt TcFix imports
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:52:34 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Basic set up for global family instance environment Fri Sep 15 15:20:44 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Basic set up for global family instance environment
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:50:42 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Import/export of data constructors in family instances Tue Sep 12 13:54:37 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Import/export of data constructors in family instances - Data constructors of a data/newtype family F can be exported and imported by writing F(..) or F(ConName). - This appears the most natural from a user's persepctive - although, it has a slightly different flavour than similar import/exports items for closed data types. The data constructors denoted by F(..) vary in dependence on the visible data instances. - This has been non-trivial to achieve as RnNames derives its knowledge of what sub-binders an F(..) item exports/imports from the relation specified by Name.nameParent - ie, the constructors of a data/newtype instance need to have the family name (not the internal name of the representation tycon) as their parent. *** WARNING: This patched changes the iface format! *** *** Please re-compile from scratch! ***
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:49:35 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Use smart lookup for tycons Tue Sep 12 12:55:10 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Use smart lookup for tycons
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:48:41 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix type checking of imported data instances Mon Sep 11 20:06:51 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix type checking of imported data instances - When reading a data/newtype instance from an interface, the data constructors have their own universals that do not necessarily match up with their tycon's type parameters. (Whereas when type checking source, they are always the same.) - Hence, we need to be careful when building the wrapper signature of imported data constructors from data/newtype instances, and rename the type variables in the instance types appropriately.
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:48:00 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix category of representation tycon Mon Sep 11 16:18:51 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix category of representation tycon
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:42:48 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Option -findexed-types Fri Sep 8 21:35:37 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Option -findexed-types - Introduced the switch -findexed-types to activate the indexed type family framework. - The switch enables the special 'family' and allows kind signatures (which are currently compulsory for associated families).
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:40:42 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Get of fam inst index in ifaces Fri Sep 8 16:31:26 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Get of fam inst index in ifaces - Removes the explicit index to get unique names for derived tycons for family instances again, following a suggestion by SPJ. - We now derive the coercion tycon name from the name of the representation tycon, which is in the iface anyways. *** WARNING: Change of interface file format! *** *** Recompile from scratch! ***
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:40:05 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Clean up and refactor in SimplUtils.mkCase1 (identity case) Wed Sep 6 07:42:45 EDT 2006 simonpj@microsoft.com * Clean up and refactor in SimplUtils.mkCase1 (identity case)
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:36:03 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * ATs are now implicitTyThings Tue Sep 5 21:09:54 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * ATs are now implicitTyThings
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:35:24 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Straightened out implicit coercions for indexed types Mon Sep 4 23:46:14 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Straightened out implicit coercions for indexed types - HscTypes.implicitTyThings and LoadIface.ifaceDeclSubBndrs now include the coercion of indexed data/newtypes. - Name generation for the internal names of indexed data/newtypes now uses the same counter that generates the dfun unique indexes (ie, class and type instances are counted with the one counter). We could make this two separate counters if that's what's preferred. - The unique index of a data/newtype instances needs to go into the iface, so that we can generate the same names on slurping in the iface as when the original module was generated. This is a bit yucky, but I don't see a way to avoid that (other than putting the full blown internal tycon name and coercion name into the iface, which IMHO would be worse). - The predicate for when a datacon has a wrapper didn't take GADT equations nor whether it comes froma family instance into account. *** WARNING! This patch changed the interface file format. *** *** Please recompile from scratch. ***
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:34:38 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fixed two bugs concerning fanilies Mon Sep 4 20:59:49 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fixed two bugs concerning fanilies
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:24:27 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Indexed newtypes Thu Aug 31 22:09:21 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Indexed newtypes - This patch makes indexed newtypes work - Only lightly tested - We need to distinguish between open and closed newtypes in a number of places, because looking through newtypes doesn't work easily for open ones.
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:23:39 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Check category of type instances and some newtype family fixes Thu Aug 31 16:54:14 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Check category of type instances and some newtype family fixes
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:19:10 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Better error message for indexes that must be variables Wed Aug 30 20:21:33 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Better error message for indexes that must be variables
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:18:18 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Checking conformance of AT indexes with instance heads Wed Aug 30 20:13:52 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Checking conformance of AT indexes with instance heads
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:17:18 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Warn of missing ATs and complain about bad ATs Mon Aug 28 22:26:22 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Warn of missing ATs and complain about bad ATs
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:16:40 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Check that AT instance is in a class Sat Aug 26 21:49:56 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Check that AT instance is in a class
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:13:47 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Kind sig for toplevel family decls is optional Sat Aug 26 19:03:50 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Kind sig for toplevel family decls is optional - Kind sigs are still compulsory for AT family decls. Changing this is more tricky, as AT decls don't have the family keyword and hence look like empty data decls. That impacts reduce/reduce conflicts and/or the criteria for checking whether a TyData variant is a family signature. - Also removed iso from the syntax (it's still in the lexer in case we want to resurrect it).
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:12:51 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fixed bug in coercion for indexed data types Fri Aug 25 16:45:29 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fixed bug in coercion for indexed data types - Significant examples are starting to work; eg, generic finite maps: class GMapKey k where data GMap k :: * -> * empty :: GMap k v lookup :: k -> GMap k v -> Maybe v insert :: k -> v -> GMap k v -> GMap k v instance GMapKey Int where data GMap Int v = GMapInt (Map.Map Int v) empty = GMapInt Map.empty lookup k (GMapInt m) = Map.lookup k m insert k v (GMapInt m) = GMapInt (Map.insert k v m) instance GMapKey Char where data GMap Char v = GMapChar (GMap Int v) empty = GMapChar empty lookup k (GMapChar m) = lookup (ord k) m insert k v (GMapChar m) = GMapChar (insert (ord k) v m) instance GMapKey () where data GMap () v = GMapUnit (Maybe v) empty = GMapUnit Nothing lookup () (GMapUnit v) = v insert () v (GMapUnit _) = GMapUnit $ Just v instance (GMapKey a, GMapKey b) => GMapKey (a, b) where data GMap (a, b) v = GMapPair (GMap a (GMap b v)) empty = GMapPair empty lookup (a, b) (GMapPair gm) = lookup a gm >>= lookup b insert (a, b) v (GMapPair gm) = GMapPair $ case lookup a gm of Nothing -> insert a (insert b v empty) gm Just gm2 -> insert a (insert b v gm2 ) gm instance (GMapKey a, GMapKey b) => GMapKey (Either a b) where data GMap (Either a b) v = GMapEither (GMap a v) (GMap b v) empty = GMapEither empty empty lookup (Left a) (GMapEither gm1 _gm2) = lookup a gm1 lookup (Right b) (GMapEither _gm1 gm2 ) = lookup b gm2 insert (Left a) v (GMapEither gm1 gm2) = GMapEither (insert a v gm1) gm2 insert (Right a) v (GMapEither gm1 gm2) = GMapEither gm1 (insert a v gm2)
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:11:24 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Pattern matching of indexed data types Thu Aug 24 14:17:44 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Pattern matching of indexed data types - This patch is the last major puzzle piece to type check and desugar indexed data types (both toplevel and associated with a class). - However, it needs more testing - esp wrt to accumlating CoPats - and some static sanity checks for data instance declarations are still missing. - There are now two detailed notes in MkIds and TcPat on how the worker/wrapper and coercion story for indexed data types works.
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:07:30 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Introduce coercions for data instance decls Tue Aug 22 20:33:46 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Introduce coercions for data instance decls - data instance declarations implicitly generate a coercion moving between the representation type and family instance type. - The coercion is *implicitly* generated when type checking both source and ifaces. Ie, we don't safe it in ifaces - this is really exactly as newtype coercions are handled. - The previous addition of the instance types to DataCons has been moved to the representation TyCon. This is more efficient as it is shared between all constructors of one representation tycon and it also gathers everything about data instances (family tycon, instance types, and coercion) in one place: the algTcParent field of TyCon. - The coercion is already used in the datacon wrappers, but not yet during type checking pattern matching of indexed data types. - The code has only been lightly tested, but doesn't seem to break features not related to indexed types. For indexed data types only the pattern matching tc code (in TcPat.tcConPat) and some well-formedness checks are still missing. And there will surely be some bugs to fix. (newtypes still require some more work.) ** WARNING: Interface file format changed! ** ** Recompile from scratch! **
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:06:51 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fixed two data family bugs Mon Aug 21 15:16:16 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fixed two data family bugs - Too liberal pattern matching in `tcTyClDecl1' - Open TyCons must always be exposed (ie, never be turned into abstract tycons during tidying)
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:06:12 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix the tyvars used for data con signatures Sat Aug 19 17:19:25 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix the tyvars used for data con signatures
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:05:18 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Extend TyCons and DataCons to represent data instance decls Fri Aug 18 19:11:37 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Extend TyCons and DataCons to represent data instance decls - This is a faily involved patch, but it is not entirely complete: + The data con wrapper code for instance data cons needs to apply the coercions (which we still have to generate). + There are still bugs, but it doesn't seem to affect the compilation of code that doesn't use type families. ** WARNING: Yet another change of the iface format. ** ** Recompile everything. **
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:04:12 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix TcSplice after some type family related changes Wed Aug 16 19:51:27 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix TcSplice after some type family related changes
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 19:03:31 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Make sure ATs are included into the temporary env for tc knot tying Wed Aug 16 17:52:40 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Make sure ATs are included into the temporary env for tc knot tying
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 18:58:51 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Extend Class.Class to include the TyCons of ATs Wed Aug 16 16:15:31 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Extend Class.Class to include the TyCons of ATs
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 18:58:14 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix kind lookup in kcIdxTyPats Tue Aug 15 21:02:34 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Fix kind lookup in kcIdxTyPats
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 18:50:35 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Extended TyCon and friends to represent family declarations Tue Aug 15 16:52:31 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Extended TyCon and friends to represent family declarations
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 18:39:03 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Kind and type checking of indexed types Fri Aug 11 16:09:13 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Kind and type checking of indexed types - Type checking of kind signatures - Kind and type checking of instances of indexed types - Validity checks for ATs are still *missing* (ie, that the type indexes coincide with the class parameters and that the defined ATs really belong to the class).
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 17:45:06 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Another comment Wed Aug 9 04:48:18 EDT 2006 simonpj@microsoft.com * Another comment
-
chak@cse.unsw.edu.au. authored
Mon Sep 18 17:44:24 EDT 2006 Manuel M T Chakravarty <chak@cse.unsw.edu.au> * Add missing co_vars to tcIfaceDataAlt Wed Aug 9 04:45:33 EDT 2006 simonpj@microsoft.com * Add missing co_vars to tcIfaceDataAlt