[Haskell-cafe] Need some help figuring out how to use the repl with reflex using only stack

Michael Litchard michael at schmong.org
Fri Aug 3 22:16:00 UTC 2018


The solution is in the stack.yaml file of this project
https://github.com/mlitchard/reflex-todo

On Fri, Aug 3, 2018 at 8:16 AM, Magnus Therning <magnus at therning.org> wrote:

>
> Michael Litchard <litchard.michael at gmail.com> writes:
>
> I've found a solution. I'm sure your answer helps someone with a different
>> problem.
>>
>
> And your solution was?
>
> /M
>
>
> On Fri, Jul 27, 2018 at 7:47 AM, Sridhar Ratnakumar <
>> pervasiveproximity at gmail.com> wrote:
>>
>> This doesn't directly answer your question, however in the case that all
>>> you want is to get started with a simple Reflex-DOM app, I'd suggest
>>> starting with obelisk:
>>> - https://github.com/obsidiansystems/obelisk
>>> - https://youtu.be/riJuXDIUMA0?t=30m15s
>>>
>>> Then you can just run `ob repl` to get into the repl.
>>>
>>> cheers,
>>> -srid
>>> https://www.srid.ca/
>>>
>>>
>>> On Tue, 24 Jul 2018 at 14:04, Michael Litchard <
>>> litchard.michael at gmail.com>
>>> wrote:
>>>
>>> I've created a minimal example to show you what I've tried. Below is also
>>>> a truncated error log. Could someone help me figure out how to get ghci
>>>> working with this example?
>>>>
>>>> https://github.com/mlitchard/reflex-todo
>>>>
>>>> stack repl --stack-yaml=stack-ghc.yaml
>>>>
>>>> Truncated error log
>>>>
>>>> Error: -- While building custom Setup.hs for package jsaddle-dom-0.9.2.0
>>>> using: /home/mlitchard/.stack/setup-exe-cache/x86_64-linux/Cabal-
>>>> simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-work/dist/x8
>>>> 6_64-linux/Cabal-1.24.2.0
>>>> build lib:jsaddle-dom --ghc-options " -ddump-hi -ddump-to-file" Process
>>>> exited with code: ExitFailure 1 Logs have been written to:
>>>> /home/mlitchard/projects/git/reflex-todo/.stack-work/logs/
>>>> jsaddle-dom-0.9.2.0.log
>>>>
>>>> Preprocessing library jsaddle-dom-0.9.2.0... [587 of 599] Compiling
>>>> JSDOM.Custom.XMLHttpRequest ( src/JSDOM/Custom/XMLHttpRequest.hs,
>>>> .stack-work/dist/x86_64-linux/Cabal-1.24.2.0/build/JSDOM/Cus
>>>> tom/XMLHttpRequest.o
>>>> ) /home/mlitchard/projects/git/reflex-todo/.stack-work/
>>>> downloaded/Vheiln5kqwE0/src/JSDOM/Custom/XMLHttpRequest.hs:39:46:
>>>> error:
>>>> • Could not deduce (Control.Monad.Catch.MonadThrow
>>>> Language.Javascript.JSaddle.Types.JSM) arising from a use of ‘throwM’
>>>> from the context: MonadDOM m bound by the type signature for:
>>>> throwXHRError
>>>> :: MonadDOM m => Maybe XHRError -> m () at
>>>> src/JSDOM/Custom/XMLHttpRequest.hs:38:1-53
>>>> • In the second argument of ‘(.)’, namely ‘throwM’ In the second
>>>> argument
>>>> of ‘maybe’, namely ‘(liftDOM . throwM)’ In the expression: maybe (return
>>>> ()) (liftDOM . throwM) /home/mlitchard/projects/git/
>>>> reflex-todo/.stack-work/downloaded/Vheiln5kqwE0/src/
>>>> JSDOM/Custom/XMLHttpRequest.hs:42:20: error: • No instance for
>>>> (Control.Monad.Catch.MonadMask Language.Javascript.JSaddle.Types.JSM)
>>>> arising from a use of ‘bracket’ • In the first argument of ‘(.)’, namely
>>>> ‘bracket aquire id’ In the expression: bracket aquire id . const In an
>>>> equation for ‘withEvent’: withEvent aquire = bracket aquire id . const
>>>> /home/mlitchard/projects/git/reflex-todo/.stack-work/
>>>> downloaded/Vheiln5kqwE0/src/JSDOM/Custom/XMLHttpRequest.hs:45:31:
>>>> error:
>>>> • Could not deduce (Control.Monad.Catch.MonadCatch
>>>> Language.Javascript.JSaddle.Types.JSM) arising from an operator section
>>>> from the context: MonadDOM m bound by the type signature for: send' ::
>>>> MonadDOM m => XMLHttpRequest -> Maybe JSVal -> m () at
>>>> src/JSDOM/Custom/XMLHttpRequest.hs:44:1-62
>>>> • In the expression: (`onException` abort self) In the second argument
>>>> of
>>>> ‘($)’, namely ‘(`onException` abort self) $ do { result <- liftIO
>>>> newEmptyMVar; r <- withEvent (onAsync self Generated.error . liftIO $
>>>> putMVar result (Just XHRError)) $ withEvent (onAsync self abortEvent .
>>>> liftIO $ putMVar result (Just XHRAborted)) $ withEvent (onAsync self
>>>> load .
>>>> liftIO $ putMVar result Nothing) $ do { void $ case mbVal of { Nothing
>>>> ->
>>>> ... Just val -> ... }; liftIO $ takeMVar result }; throwXHRError r }’ In
>>>> the expression: liftDOM $ (`onException` abort self) $ do { result <-
>>>> liftIO newEmptyMVar; r <- withEvent (onAsync self Generated.error .
>>>> liftIO
>>>> $ putMVar result (Just XHRError)) $ withEvent (onAsync self abortEvent .
>>>> liftIO $ putMVar result (Just XHRAborted)) $ withEvent (onAsync self
>>>> load .
>>>> liftIO $ putMVar result Nothing) $ do { void $ case mbVal of { Nothing
>>>> ->
>>>> ... Just val -> ... }; liftIO $ takeMVar result }; throwXHRError r }
>>>> _______________________________________________
>>>> Haskell-Cafe mailing list
>>>> To (un)subscribe, modify options or view archives go to:
>>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>>> Only members subscribed via the mailman list are allowed to post.
>>>>
>>>
>>>
>>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>>
>
>
> --
> Magnus Therning              OpenPGP: 0x927912051716CE39
> email: magnus at therning.org   jabber: magnus at therning.org
> twitter: magthe               http://therning.org/magnus
>
> Computers are useless. They can only give you answers.
>     — Pablo Picasso
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180803/d1f8035d/attachment.html>


More information about the Haskell-Cafe mailing list