aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Grois <andi@grois.info>2023-03-24 22:33:21 +0100
committerAndreas Grois <andi@grois.info>2023-03-24 22:33:21 +0100
commit334a080b7fa3da1670cf8ecd160e7bf0e12ae508 (patch)
tree9fb76600c15c71667211c5f7485ec7235e74c607
parent8698f199c2179eacdac202e438fc76a41b5372ef (diff)
Update Readme
-rw-r--r--README.md7
1 files changed, 5 insertions, 2 deletions
diff --git a/README.md b/README.md
index c33adbd..fefe68d 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ If the lifetime of the result of the Functor's `fmap(f)` depends on the lifetime
# Why macros though?
This is mainly because a fully generic implementation seems impossible without [Non-lifetime Binders](https://github.com/rust-lang/rust/issues/108185), which would be needed to express the bound that the type of `Functor<A>::Result<T>` should not depend on `A`. Also, the [Never Type](https://github.com/rust-lang/rust/issues/35121) would be nice to have for a generic implementation.
- I've actually done a [proof-of-concept implementation](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=1af5b0970cfe400a9245483f84080b8f) of a fully generic `Free` type using Nightly, but didn't follow this further yet, because it doesn't work in the stable toolchain yet.
+ I've actually done a [proof-of-concept implementation](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=1af5b0970cfe400a9245483f84080b8f) of a fully generic `Free` type using Nightly, but didn't follow this further, because it doesn't work in the stable toolchain yet.
# A more involved example
@@ -146,4 +146,7 @@ fn main() {
let beers_per_bar = count_beers_consumed_per_bar(the_free_monad);
println!("{:?}", beers_per_bar);
}
-``` \ No newline at end of file
+```
+
+# A note about the origin of this code
+The work on this project started at stillalive studios. The original goal was to learn about potential applications of Free Monads in game development, but this project has meanwhile outgrown that original plan, and has become a full proof-of-concept implementation for Free Monads in Rust. \ No newline at end of file