packages feed

purescript 0.1.4 → 0.1.5

raw patch · 2 files changed

+9/−6 lines, 2 files

Files

purescript.cabal view
@@ -1,5 +1,5 @@ name: purescript-version: 0.1.4+version: 0.1.5 cabal-version: >=1.8 build-type: Simple license: MIT
src/Language/PureScript/TypeChecker/Types.hs view
@@ -436,18 +436,21 @@   me <- fresh   (cs, m) <- typeConstraintsForBinder val binder   return (TypeConstraint me (TUnknown val) (BinderOrigin b) : cs, M.insert name me m)-typeConstraintsForBinder val b@(GuardedBinder cond binder) = do-  (cs1, m) <- typeConstraintsForBinder val binder-  (cs2, n) <- typeConstraints m cond-  return (TypeConstraint n Boolean (ValueOrigin cond) : cs1 ++ cs2, m) +typeConstraintsForGuardedBinder :: M.Map Ident Int -> Int -> Binder -> Check ([TypeConstraint], M.Map Ident Int)+typeConstraintsForGuardedBinder m val b@(GuardedBinder cond binder) = do+  (cs1, m1) <- typeConstraintsForBinder val binder+  (cs2, n) <- typeConstraints (m `M.union` m1) cond+  return (TypeConstraint n Boolean (ValueOrigin cond) : cs1 ++ cs2, m1)+typeConstraintsForGuardedBinder m val b = typeConstraintsForBinder val b >>= return+ constantBinder :: Binder -> Int -> Type -> Check ([TypeConstraint], M.Map Ident Int) constantBinder b val ty = return ([TypeConstraint val ty (BinderOrigin b)], M.empty)  typeConstraintsForBinders :: M.Map Ident Int -> Int -> Int -> [(Binder, Value)] -> Check [TypeConstraint] typeConstraintsForBinders _ _ _ [] = return [] typeConstraintsForBinders m nval ret ((binder, val):bs) = do-  (cs1, m1) <- typeConstraintsForBinder nval binder+  (cs1, m1) <- typeConstraintsForGuardedBinder m nval binder   (cs2, n2) <- typeConstraints (m `M.union` m1) val   cs3 <- typeConstraintsForBinders m nval ret bs   return (TypeConstraint n2 (TUnknown ret) (BinderOrigin binder) : cs1 ++ cs2 ++ cs3)