agocorona / MFlow

(Haskell) Web application server with stateful, type safe user interactions and widget combinators
http://mflowdemo.herokuapp.com
Other
100 stars 12 forks source link

MFlow build failure - probably WAI, conduit, maybe ghc 7.8.2.20140609 #41

Open stuartallenmills opened 10 years ago

stuartallenmills commented 10 years ago

I notice that you don't have any version constraints on the yesod team stuff. I think they've made changes, and based on the errors I don't think it's ghc. Anyways here is the errors I've got so far

[11 of 13] Compiling MFlow.Wai ( src\MFlow\Wai.hs, dist\build\MFlow\Wai.o )

src\MFlow\Wai.hs:95:6: Couldn't match type Response' withIO ResponseReceived' Expected type: ((Response -> IO ResponseReceived) -> (ByteString, [Cookie])) -> ((ByteString, [Cookie]) -> (Response -> IO ResponseReceived) -> Response) -> (Response -> IO ResponseReceived) -> IO ResponseReceived Actual type: ((Response -> IO ResponseReceived) -> (ByteString, [Cookie])) -> ((ByteString, [Cookie]) -> (Response -> IO ResponseReceived) -> Response) -> (Response -> IO ResponseReceived) -> Response In a stmt of a 'do' block: (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return (fl, []) Nothing -> do { fl <- liftIO $ newFlow; return (fl, [...]) } } In the expression: do { let httpreq1 = requestHeaders req1; let cookies = getCookies httpreq1; (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return (fl, []) Nothing -> do { ... } }; input <- case parseMethod $ requestMethod req1 of { Right POST -> do { ... } Right GET -> return . Prelude.map (\ (x, y) -> ...) $ queryString req1 }; .... } In an equation for `waiMessageFlow': waiMessageFlow req1 = do { let httpreq1 = ...; let cookies = ...; (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return ... Nothing -> ... }; .... }

src\MFlow\Wai.hs:111:36: Couldn't match type IO ByteString' withConduitM () ByteString IO ()' Expected type: Source IO ByteString Actual type: IO ByteString In the first argument of ($$)', namelyrequestBody req1' In the second argument of ($)', namely requestBody req1 $$ CList.consume'

src\MFlow\Wai.hs:143:10: Could not deduce (Eq t0) arising from a use of lookup' from the context (IResource a, Data.String.IsString t1, Eq t1) bound by the inferred type of putStateCookie :: (IResource a, Data.String.IsString t1, Eq t1) => a -> [(t0, (t, String, t1, t2))] -> IO () at src\MFlow\Wai.hs:(142,1)-(148,98) The type variablet0' is ambiguous Relevant bindings include cookies :: [(t0, (t, String, t1, t2))](bound at srcMFlowWai.hs:142:20) putStateCookie :: a -> [(t0, (t, String, t1, t2))] -> IO () (bound at src\MFlow\Wai.hs:142:1) Note: there are several potential instances: instance Eq Cookie -- Defined at src\MFlow\Cookies.hs:42:15 instance Eq Data.Char.GeneralCategory -- Defined in Data.Char' instance Eq a => Eq (Maybe a) -- Defined inData.Maybe' ...plus 178 others In the expression: lookup statCookieName cookies In the expression: case lookup statCookieName cookies of { Nothing -> return () Just (statCookieName, str, "/", ) -> modifyMVar tvresources $ \ mmap -> case mmap of { Just map -> ... Nothing -> ... } } In an equation for `putStateCookie': putStateCookie req cookies = case lookup statCookieName cookies of { Nothing -> return () Just (statCookieName, str, "/", ) -> modifyMVar tvresources $ \ mmap -> ... }

agocorona commented 10 years ago

Are you using the github repo?

It compiles well with the cabal update of two days ago and ghc 7.6.3 . (I can not update right not)

2014-06-25 16:36 GMT+02:00 Stuart Mills notifications@github.com:

I notice that you don't have any version constraints on the yesod team stuff. I think they've made changes, and based on the errors I don't think it's ghc. Anyways here is the errors I've got so far

[11 of 13] Compiling MFlow.Wai ( src\MFlow\Wai.hs, dist\build\MFlow\Wai.o )

src\MFlow\Wai.hs:95:6: Couldn't match type Response' withIO ResponseReceived' Expected type: ((Response -> IO ResponseReceived) -> (ByteString, [Cookie])) -> ((ByteString, [Cookie]) -> (Response -> IO ResponseReceived) -> Response) -> (Response -> IO ResponseReceived) -> IO ResponseReceived Actual type: ((Response -> IO ResponseReceived) -> (ByteString, [Cookie])) -> ((ByteString, [Cookie]) -> (Response -> IO ResponseReceived) -> Response) -> (Response -> IO ResponseReceived) -> Response In a stmt of a 'do' block: (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return (fl, []) Nothing -> do { fl <- liftIO $ newFlow; return (fl, [...]) } } In the expression: do { let httpreq1 = requestHeaders req1; let cookies = getCookies httpreq1; (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return (fl, []) Nothing -> do { ... } }; input <- case parseMethod $ requestMethod req1 of { Right POST -> do { ... } Right GET -> return . Prelude.map (\ (x, y) -> ...) $ queryString req1 }; .... } In an equation for `waiMessageFlow': waiMessageFlow req1 = do { let httpreq1 = ...; let cookies = ...; (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return ... Nothing -> ... }; .... }

src\MFlow\Wai.hs:111:36: Couldn't match type IO ByteString' withConduitM () ByteString IO ()' Expected type: Source IO ByteString Actual type: IO ByteString In the first argument of ($$)', namelyrequestBody req1' In the second argument of ($)', namely requestBody req1 $$ CList.consume'

src\MFlow\Wai.hs:143:10: Could not deduce (Eq t0) arising from a use of lookup' from the context (IResource a, Data.String.IsString t1, Eq t1) bound by the inferred type of putStateCookie :: (IResource a, Data.String.IsString t1, Eq t1) => a -> [(t0, (t, String, t1, t2))] -> IO () at src\MFlow\Wai.hs:(142,1)-(148,98) The type variablet0' is ambiguous Relevant bindings include cookies :: (t0, (t, String, t1, t2)) putStateCookie :: a -> [(t0, (t, String, t1, t2))] -> IO () (bound at src\MFlow\Wai.hs:142:1) Note: there are several potential instances: instance Eq Cookie -- Defined at src\MFlow\Cookies.hs:42:15 instance Eq Data.Char.GeneralCategory -- Defined in Data.Char' instance Eq a => Eq (Maybe a) -- Defined inData.Maybe' ...plus 178 others In the expression: lookup statCookieName cookies In the expression: case lookup statCookieName cookies of { Nothing -> return () Just (statCookieName, str, "/", ) -> modifyMVar tvresources $ \ mmap -> case mmap of { Just map -> ... Nothing -> ... } } In an equation for `putStateCookie': putStateCookie req cookies = case lookup statCookieName cookies of { Nothing -> return () Just (statCookieName, str, "/", ) -> modifyMVar tvresources $ \ mmap -> ... }

— Reply to this email directly or view it on GitHub https://github.com/agocorona/MFlow/issues/41.

Alberto.

stuartallenmills commented 10 years ago

Yes, I'm trying to build everything including the demos from GitHub. I have installed MFlow itself successfully under 7.8.2 (from Hackage).

There are problems with 7.6.3 and 7.8.2 x86_64 on mingw32_64 with some libraries (persistent, yaml, unix-compat, system-fileiO). Most of these have been solved in 7.8.2.2014*., and the unix-compat can be patched (some system calls until 7.8.3 comes out, which is supposed to fix the system calls).

I tried to setup a 7.6.3 env, but as I mentioned there are too many glitches.

With 7.8.2.2014* everything seemed to work (especially persistent!) until I finally got to MFlow in the build.

Hopefully whatever is up will be fixed by 7.8.3 release, but if you're bored you might glance at the error messages since 7.8.2.2014* is on the way to 7.8.3.

I know that msnoyman had to make some changes to yesod-bin to handle some changes in 7.8.3.

On 6/25/2014 2:00 PM, agocorona wrote:

Are you using the github repo?

It compiles well with the cabal update of two days ago and ghc 7.6.3 . (I can not update right not)

2014-06-25 16:36 GMT+02:00 Stuart Mills notifications@github.com:

I notice that you don't have any version constraints on the yesod team stuff. I think they've made changes, and based on the errors I don't think it's ghc. Anyways here is the errors I've got so far

[11 of 13] Compiling MFlow.Wai ( src\MFlow\Wai.hs, dist\build\MFlow\Wai.o )

src\MFlow\Wai.hs:95:6: Couldn't match type Response' withIO ResponseReceived' Expected type: ((Response -> IO ResponseReceived) -> (ByteString, [Cookie])) -> ((ByteString, [Cookie]) -> (Response -> IO ResponseReceived) -> Response) -> (Response -> IO ResponseReceived) -> IO ResponseReceived Actual type: ((Response -> IO ResponseReceived) -> (ByteString, [Cookie])) -> ((ByteString, [Cookie]) -> (Response -> IO ResponseReceived) -> Response) -> (Response -> IO ResponseReceived) -> Response In a stmt of a 'do' block: (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return (fl, []) Nothing -> do { fl <- liftIO $ newFlow; return (fl, [...]) } } In the expression: do { let httpreq1 = requestHeaders req1; let cookies = getCookies httpreq1; (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return (fl, []) Nothing -> do { ... } }; input <- case parseMethod $ requestMethod req1 of { Right POST -> do { ... } Right GET -> return . Prelude.map (\ (x, y) -> ...) $ queryString req1 }; .... } In an equation for `waiMessageFlow': waiMessageFlow req1 = do { let httpreq1 = ...; let cookies = ...; (flowval, retcookies) <- case lookup flow cookies of { Just fl -> return ... Nothing -> ... }; .... }

src\MFlow\Wai.hs:111:36: Couldn't match type IO ByteString' withConduitM () ByteString IO ()' Expected type: Source IO ByteString Actual type: IO ByteString In the first argument of ($$)', namelyrequestBody req1' In the second argument of ($)', namely requestBody req1 $$ CList.consume'

src\MFlow\Wai.hs:143:10: Could not deduce (Eq t0) arising from a use of lookup' from the context (IResource a, Data.String.IsString t1, Eq t1) bound by the inferred type of putStateCookie :: (IResource a, Data.String.IsString t1, Eq t1) => a -> [(t0, (t, String, t1, t2))] -> IO () at src\MFlow\Wai.hs:(142,1)-(148,98) The type variablet0' is ambiguous Relevant bindings include cookies :: (t0, (t, String, t1, t2)) putStateCookie :: a -> [(t0, (t, String, t1, t2))] -> IO () (bound at src\MFlow\Wai.hs:142:1) Note: there are several potential instances: instance Eq Cookie -- Defined at src\MFlow\Cookies.hs:42:15 instance Eq Data.Char.GeneralCategory -- Defined in Data.Char' instance Eq a => Eq (Maybe a) -- Defined inData.Maybe' ...plus 178 others In the expression: lookup statCookieName cookies In the expression: case lookup statCookieName cookies of { Nothing -> return () Just (statCookieName, str, "/", ) -> modifyMVar tvresources $ \ mmap -> case mmap of { Just map -> ... Nothing -> ... } } In an equation for `putStateCookie': putStateCookie req cookies = case lookup statCookieName cookies of { Nothing -> return () Just (statCookieName, str, "/", ) -> modifyMVar tvresources $ \ mmap -> ... }

— Reply to this email directly or view it on GitHub https://github.com/agocorona/MFlow/issues/41.

Alberto.

— Reply to this email directly or view it on GitHub https://github.com/agocorona/MFlow/issues/41#issuecomment-47158096.