
New patches:

[Improve (->) situation somewhat
Samuel Bronson <naesten@gmail.com>**20080318033431
 Control.Arrow still won't quite work... something about Control.Arrow.172_a not getting a kind inferred...
] {
hunk ./FrontEnd/Class.hs 32
+import FrontEnd.Tc.Kind
hunk ./FrontEnd/Class.hs 209
-   | classKind == argTypeKind
+   | length classKind == length argTypeKind, and subsumptions
hunk ./FrontEnd/Class.hs 214
-                      " (with kind " ++ show classKind ++ ")"
+                      " (with kind " ++ show classKind ++ ") " ++ show subsumptions
hunk ./FrontEnd/Class.hs 219
+   subsumptions = zipWith isSubsumedBy classKind argTypeKind
hunk ./FrontEnd/HsParser.y 97
+      '?'     { Quest }
hunk ./FrontEnd/HsParser.y 421
+       |  '?'                   { hsKindQuest }
hunk ./FrontEnd/HsParser.y 861
+      | '?'                   { UnQual (hsSymbol "?") }
hunk ./FrontEnd/HsParser.y 951
-fun_tycon_name        = Qual (Module "Jhc@") (HsIdent "->")
+fun_tycon_name        = Qual (Module "Jhc.Basics") (HsIdent "->")
hunk ./FrontEnd/HsSyn.hs 425
+hsKindQuest = HsKind (Qual (Module "Jhc@") (HsIdent "?"))
hunk ./FrontEnd/KindInfer.hs 317
-hsKindToKind a | a == hsKindStar = kindStar
-hsKindToKind a | a == hsKindHash = kindHash
+hsKindToKind a | a == hsKindStar       = kindStar
+               | a == hsKindHash       = kindHash
+               | a == hsKindQuest      = kindFunRet
+               | a == hsKindQuestQuest = kindArg
hunk ./FrontEnd/Lexer.hs 83
+        | Quest
hunk ./FrontEnd/Lexer.hs 149
- ( "??",  QuestQuest ),--ditto
- ( "*!",  StarBang ),--ditto
+ ( "?",  Quest ),     --ditto
+ ( "??", QuestQuest ),--ditto
+ ( "*!", StarBang ),--ditto
hunk ./FrontEnd/Rename.hs 102
+            | nameName tc_Arrow == hsName, Module "Jhc.Basics" == mod
+                = let nn = hsName in (nn,nn):r
hunk ./FrontEnd/Rename.hs 701
+    | nameName tc_Arrow == hsName = return hsName
hunk ./FrontEnd/Representation.hs 337
-                     x -> error $ "Type.getType: kind error in: " ++ (show typ)
+                     x -> error $ "Representation.getType: kind error in: " ++ (show typ)
hunk ./FrontEnd/Tc/Kind.hs 12
+    isSubsumedBy,
hunk ./FrontEnd/Tc/Kind.hs 41
-    *?  #
-   /  \
-  *    !
+    *  #
+
hunk ./FrontEnd/Tc/Kind.hs 58
+KNamed s1 `isSubsumedBy2` KNamed s2   = s1 == s2
+_         `isSubsumedBy2` KQuest      = True
+Star      `isSubsumedBy2` KQuestQuest = True
+KHash     `isSubsumedBy2` KQuestQuest = True
+k1        `isSubsumedBy2` k2          = k1 == k2
+
hunk ./FrontEnd/Tc/Kind.hs 76
+KBase kb    `isSubsumedBy` KBase kb'    = isSubsumedBy2 kb kb'
+Kfun  k1 k2 `isSubsumedBy` Kfun k1' k2' = isSubsumedBy k1 k1' && isSubsumedBy k2 k2'
+_           `isSubsumedBy` _            = False
+
hunk ./FrontEnd/Tc/Monad.hs 423
-evalType t = findType t >>= evalTAssoc
+evalType t = findType t >>= evalTAssoc >>= evalArrowApp
hunk ./FrontEnd/Tc/Monad.hs 439
+
+evalArrowApp (TAp (TAp (TCon tcon) ta) tb) 
+    | tyconName tcon == tc_Arrow = return (TArrow ta tb) 
+
+evalArrowApp t = return t
+
+
hunk ./Name/Names.hs 64
-tc_Arrow = toName TypeConstructor  ("Jhc@","->")
+tc_Arrow = toName TypeConstructor  ("Jhc.Basics","->")
hunk ./lib/base/Jhc/Basics.hs 7
+data (->) :: ?? -> ? -> *
}

[Add Control.Monad.Instances to base package
Samuel Bronson <naesten@gmail.com>**20080318224345] {
adddir ./lib/base/Control/Monad
addfile ./lib/base/Control/Monad/Instances.hs
hunk ./lib/base/Control/Monad/Instances.hs 1
+{-# OPTIONS_NHC98 --prelude #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Control.Monad.Instances
+-- Copyright   :  (c) The University of Glasgow 2001
+-- License     :  BSD-style (see the file libraries/base/LICENSE)
+--
+-- Maintainer  :  libraries@haskell.org
+-- Stability   :  provisional
+-- Portability :  portable
+--
+-- 'Functor' and 'Monad' instances for @(->) r@ and
+-- 'Functor' instances for @(,) a@ and @'Either' a@.
+
+module Control.Monad.Instances (Functor(..),Monad(..)) where
+
+import Prelude
+
+instance Functor ((->) r) where
+        fmap = (.)
+
+instance Monad ((->) r) where
+        return = const
+        f >>= k = \ r -> k (f r) r
+
+instance Functor ((,) a) where
+        fmap f (x,y) = (x, f y)
+
+instance Functor (Either a) where
+        fmap _ (Left x) = Left x
+        fmap f (Right y) = Right (f y)
hunk ./lib/base/base.cabal 6
+                 Control.Monad.Instances,
}

Context:

[clean out old IORef code now that we use Alloc and Index
John Meacham <john@repetae.net>**20080312233220] 
[fill out System.IO routines
John Meacham <john@repetae.net>**20080312045536] 
[when generating an 'if' statement, compare pointers directly when possible.
John Meacham <john@repetae.net>**20080312031931] 
[add code generation for FPwr and FAtan2
John Meacham <john@repetae.net>**20080312031859] 
[perform casting of return values of c calls to avoid spurious warnings from c compiler
John Meacham <john@repetae.net>**20080311181707] 
[Convenience command :recompile for GHCi usage; accompanying Makefile.am changes
Samuel Bronson <naesten@gmail.com>**20080312220054] 
[modify hashconster to know we don't need to allocate nodes that have no fields, modify code to always emit heap-less nodes when the node has no arguments
John Meacham <john@repetae.net>**20080311170446] 
[don't create constant entries in memory when they can be encoded in a sptr_t
John Meacham <john@repetae.net>**20080311010726] 
[don't store nodes that consist solely of a 'WHAT' field on the heap, encode it directly into the wptr_t.
John Meacham <john@repetae.net>**20080310170229] 
[add flag to C types to say whether the garbage collector might be interested in them. add macros for getting at the 'what' field.
John Meacham <john@repetae.net>**20080310124540] 
[add documentation of run time system to the manual
John Meacham <john@repetae.net>**20080310101340] 
[change function pointer representation so the GC can tell whether to follow pointers.
John Meacham <john@repetae.net>**20080308014755] 
[update datestamp
John Meacham <john@repetae.net>**20080309042215] 
[Misc. comments
Samuel Bronson <naesten@gmail.com>**20080308164934] 
[TAG frinredvos
John Meacham <john@repetae.net>**20080307160355] 
Patch bundle hash:
0ae4eee8cbfab57ab9c2173a37b7dce580fff0e3
