<div dir="ltr">The solution is in the stack.yaml file of this project<div><a href="https://github.com/mlitchard/reflex-todo" target="_blank" style="color:rgb(125,93,138);font-family:verdana,arial,helvetica,sans-serif;font-size:14px;background-color:rgb(255,255,255);box-sizing:border-box;text-decoration:none;margin:0px">https://github.com/mlitchard/<wbr>reflex-todo</a><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 3, 2018 at 8:16 AM, Magnus Therning <span dir="ltr"><<a href="mailto:magnus@therning.org" target="_blank">magnus@therning.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
Michael Litchard <<a href="mailto:litchard.michael@gmail.com" target="_blank">litchard.michael@gmail.com</a>> writes:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I've found a solution. I'm sure your answer helps someone with a different<br>
problem.<br>
</blockquote>
<br></span>
And your solution was?<br>
<br>
/M<div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Fri, Jul 27, 2018 at 7:47 AM, Sridhar Ratnakumar <<br>
<a href="mailto:pervasiveproximity@gmail.com" target="_blank">pervasiveproximity@gmail.com</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This doesn't directly answer your question, however in the case that all<br>
you want is to get started with a simple Reflex-DOM app, I'd suggest<br>
starting with obelisk:<br>
- <a href="https://github.com/obsidiansystems/obelisk" rel="noreferrer" target="_blank">https://github.com/obsidiansys<wbr>tems/obelisk</a><br>
- <a href="https://youtu.be/riJuXDIUMA0?t=30m15s" rel="noreferrer" target="_blank">https://youtu.be/riJuXDIUMA0?t<wbr>=30m15s</a><br>
<br>
Then you can just run `ob repl` to get into the repl.<br>
<br>
cheers,<br>
-srid<br>
<a href="https://www.srid.ca/" rel="noreferrer" target="_blank">https://www.srid.ca/</a><br>
<br>
<br>
On Tue, 24 Jul 2018 at 14:04, Michael Litchard <<a href="mailto:litchard.michael@gmail.com" target="_blank">litchard.michael@gmail.com</a>><br>
wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I've created a minimal example to show you what I've tried. Below is also<br>
a truncated error log. Could someone help me figure out how to get ghci<br>
working with this example?<br>
<br>
<a href="https://github.com/mlitchard/reflex-todo" rel="noreferrer" target="_blank">https://github.com/mlitchard/r<wbr>eflex-todo</a><br>
<br>
stack repl --stack-yaml=stack-ghc.yaml<br>
<br>
Truncated error log<br>
<br>
Error: -- While building custom Setup.hs for package jsaddle-dom-0.9.2.0<br>
using: /home/mlitchard/.stack/setup-e<wbr>xe-cache/x86_64-linux/Cabal-<br>
simple_mPHDZzAJ_1.24.2.0_ghc-8<wbr>.0.2 --builddir=.stack-work/dist/x8<wbr>6_64-linux/Cabal-1.24.2.0<br>
build lib:jsaddle-dom --ghc-options " -ddump-hi -ddump-to-file" Process<br>
exited with code: ExitFailure 1 Logs have been written to:<br>
/home/mlitchard/projects/git/r<wbr>eflex-todo/.stack-work/logs/<br>
jsaddle-dom-0.9.2.0.log<br>
<br>
Preprocessing library jsaddle-dom-0.9.2.0... [587 of 599] Compiling<br>
JSDOM.Custom.XMLHttpRequest ( src/JSDOM/Custom/XMLHttpReques<wbr>t.hs,<br>
.stack-work/dist/x86_64-linux/<wbr>Cabal-1.24.2.0/build/JSDOM/Cus<wbr>tom/XMLHttpRequest.o<br>
) /home/mlitchard/projects/git/r<wbr>eflex-todo/.stack-work/<br>
downloaded/Vheiln5kqwE0/src/JS<wbr>DOM/Custom/XMLHttpRequest.hs:<wbr>39:46: error:<br>
• Could not deduce (Control.Monad.Catch.MonadThro<wbr>w<br>
Language.Javascript.JSaddle.Ty<wbr>pes.JSM) arising from a use of ‘throwM’<br>
from the context: MonadDOM m bound by the type signature for: throwXHRError<br>
:: MonadDOM m => Maybe XHRError -> m () at src/JSDOM/Custom/XMLHttpReques<wbr>t.hs:38:1-53<br>
• In the second argument of ‘(.)’, namely ‘throwM’ In the second argument<br>
of ‘maybe’, namely ‘(liftDOM . throwM)’ In the expression: maybe (return<br>
()) (liftDOM . throwM) /home/mlitchard/projects/git/<br>
reflex-todo/.stack-work/downlo<wbr>aded/Vheiln5kqwE0/src/<br>
JSDOM/Custom/XMLHttpRequest.hs<wbr>:42:20: error: • No instance for<br>
(Control.Monad.Catch.MonadMask Language.Javascript.JSaddle.Ty<wbr>pes.JSM)<br>
arising from a use of ‘bracket’ • In the first argument of ‘(.)’, namely<br>
‘bracket aquire id’ In the expression: bracket aquire id . const In an<br>
equation for ‘withEvent’: withEvent aquire = bracket aquire id . const<br>
/home/mlitchard/projects/git/r<wbr>eflex-todo/.stack-work/<br>
downloaded/Vheiln5kqwE0/src/JS<wbr>DOM/Custom/XMLHttpRequest.hs:<wbr>45:31: error:<br>
• Could not deduce (Control.Monad.Catch.MonadCatc<wbr>h<br>
Language.Javascript.JSaddle.Ty<wbr>pes.JSM) arising from an operator section<br>
from the context: MonadDOM m bound by the type signature for: send' ::<br>
MonadDOM m => XMLHttpRequest -> Maybe JSVal -> m () at src/JSDOM/Custom/XMLHttpReques<wbr>t.hs:44:1-62<br>
• In the expression: (`onException` abort self) In the second argument of<br>
‘($)’, namely ‘(`onException` abort self) $ do { result <- liftIO<br>
newEmptyMVar; r <- withEvent (onAsync self Generated.error . liftIO $<br>
putMVar result (Just XHRError)) $ withEvent (onAsync self abortEvent .<br>
liftIO $ putMVar result (Just XHRAborted)) $ withEvent (onAsync self load .<br>
liftIO $ putMVar result Nothing) $ do { void $ case mbVal of { Nothing -><br>
... Just val -> ... }; liftIO $ takeMVar result }; throwXHRError r }’ In<br>
the expression: liftDOM $ (`onException` abort self) $ do { result <-<br>
liftIO newEmptyMVar; r <- withEvent (onAsync self Generated.error . liftIO<br>
$ putMVar result (Just XHRError)) $ withEvent (onAsync self abortEvent .<br>
liftIO $ putMVar result (Just XHRAborted)) $ withEvent (onAsync self load .<br>
liftIO $ putMVar result Nothing) $ do { void $ case mbVal of { Nothing -><br>
... Just val -> ... }; liftIO $ takeMVar result }; throwXHRError r }<br>
______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/haskell-caf<wbr>e</a><br>
Only members subscribed via the mailman list are allowed to post.<br>
</blockquote>
<br>
<br>
</blockquote>
______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/haskell-caf<wbr>e</a><br>
Only members subscribed via the mailman list are allowed to post.<br>
</blockquote>
<br>
<br></div></div>
--<br>
Magnus Therning              OpenPGP: 0x927912051716CE39<br>
email: <a href="mailto:magnus@therning.org" target="_blank">magnus@therning.org</a>   jabber: <a href="mailto:magnus@therning.org" target="_blank">magnus@therning.org</a><br>
twitter: magthe               <a href="http://therning.org/magnus" rel="noreferrer" target="_blank">http://therning.org/magnus</a><br>
<br>
Computers are useless. They can only give you answers.<br>
    — Pablo Picasso<br>
<br>______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
Only members subscribed via the mailman list are allowed to post.<br></blockquote></div><br></div>