@@ -20,8 +20,12 @@ import qualified Type.Environment as Env
2020import qualified Type.Constrain.Literal as Literal
2121import qualified Type.Constrain.Pattern as Pattern
2222
23−constrain :: Env.Environment -> Canonical.Expr -> Type
24− -> ErrorT [PP.Doc] IO TypeConstraint
23+
24+constrain
25+ :: Env.Environment
26+ -> Canonical.Expr
27+ -> Type
28+ -> ErrorT [PP.Doc] IO TypeConstraint
2529constrain env (A region expr) tipe =
2630 let list t = Env.get env Env.types "List" <| t
2731 and = A region . CAnd
@@ -37,7 +41,7 @@ constrain env (A region expr) tipe =
3741 exists $ \attr ->
3842 exists $ \unif ->
3943 let
40− shaderTipe a u v = Env.get env Env.types "Graphics.WebGL.Shader" <| a <| u <| v
44+ shaderTipe a u v = Env.get env Env.types "WebGL.Shader" <| a <| u <| v
4145 glTipe = Env.get env Env.types . Lit.glTipeName
4246 makeRec accessor baseRec =
4347 let decls = accessor gltipe
@@ -166,6 +170,7 @@ constrain env (A region expr) tipe =
166170 PortOut _ _ signal ->
167171 constrain env signal tipe
168172
173+
169174constrainDef env info (Canonical.Definition pattern expr maybeTipe) =
170175 let qs = [] -- should come from the def, but I'm not sure what would live there...
171176 (schemes, rigidQuantifiers, flexibleQuantifiers, headers, c2, c1) = info
@@ -205,6 +210,7 @@ constrainDef env info (Canonical.Definition pattern expr maybeTipe) =
205210
206211 _ -> error ("problem in constrainDef with " ++ show pattern)
207212
213+
208214expandPattern :: Canonical.Def -> [Canonical.Def]
209215expandPattern def@(Canonical.Definition pattern lexpr@(A r _) maybeType) =
210216 case pattern of
@@ -216,9 +222,10 @@ expandPattern def@(Canonical.Definition pattern lexpr@(A r _) maybeType) =
216222 mkVar = A r . localVar
217223 toDef y = Canonical.Definition (P.Var y) (A r $ Case (mkVar x) [(pattern, mkVar y)]) Nothing
218224
225+
219226try :: Region -> ErrorT (Region -> PP.Doc) IO a -> ErrorT [PP.Doc] IO a
220−try region computation = do
221− result <- liftIO $ runErrorT computation
222− case result of
223− Left err -> throwError [err region]
224− Right value -> return value
227+try region computation =
228+ do result <- liftIO $ runErrorT computation
229+ case result of
230+ Left err -> throwError [err region]
231+ Right value -> return value