Hi Ben,

Not sure I understand exactly if this what you want, but if the problem is recursion within monads you might want to take a look at MonadFix or recursive do notation. If I understood more about how they worked I'd give an example, but I don't; I just know they're related to recursion in monads.

https://ocharles.org.uk/blog/posts/2014-12-09-recursive-do.html
https://downloads.haskell.org/~ghc/7.8.1/docs/html/users_guide/syntax-extns.html#recursive-do-notation

בתאריך יום ב׳, 15 בינו׳ 2018, 5:53, מאת Sergiu Ivanov ‏<sivanov@colimite.fr>:
Hello,

Thus quoth  PY  on Mon Jan 15 2018 at 09:08 (+0100):
>
> But there is another good choice: *Mercury*. It supports (sure,
> because it's declarative language and is based on Prolog) special
> notations for computations:

If you prefer a more Haskellish syntax, you may also want to look at
Curry :

  http://www-ps.informatik.uni-kiel.de/currywiki/

Curry has a built-in function called "choice" which allows
"non-deterministic, set-valued" functions.

Now, whichever tool you use, you are probably going to wind up with
monads or with monads in disguise, as Olaf points out.  (And sometimes
disguise may be quite important.)

--
Sergiu
_______________________________________________
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.