diff --git a/README.md b/README.md index d212907..a88ef98 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ aren't they in the app rules?) (var) G(x) = s - G |= M t <= s + G |= s <= M t ------------- G |- x => M t @@ -74,4 +74,5 @@ So, good next steps: include rules for "lift" and "return" and the specialized Id-"lift". 2. write down the typing rule for let 3. how annoying is type-level application? -4. can using the standard rule instead of the nonstandard one reduce the number of monad law applications we need to use to get something reasonable? +4. can using the standard rule instead of the nonstandard one reduce the number + of monad law applications we need to use to get something reasonable? diff --git a/TC.hs b/TC.hs index 67a45c4..1a44f75 100644 --- a/TC.hs +++ b/TC.hs @@ -23,7 +23,7 @@ data Type deriving (Eq, Ord, Show, Read) data Constraint = MonadVar :> MonadVar deriving (Eq, Ord, Show, Read) -data Scheme = Forall [String] [Constraint] MType deriving (Eq, Ord, Show, Read) +data Scheme = Forall [Variable] [Constraint] MType deriving (Eq, Ord, Show, Read) type Context = [(Variable, Scheme)] newtype Letter = Letter { unLetter :: Char } deriving (Eq, Ord)