
Tardis--Haskell package for sending state backwards and forwards through time - tikhonj
https://github.com/DanBurton/tardis
======
ordinary
I was 'slightly' sceptical upon seeing the title. The readme makes it clear no
fundamental laws of nature are violated: this package sends information
forwards through time, but can obviously only _receive_ it from the past.

I admit to feeling at the same time both vindicated in my scepticism, and
disappointed at there being no breakthrough in physics.

~~~
joshzayin
The readme does in fact make that claim: "The Reverse State monad allows you
to do the reverse: send information backwards to the past, or receive
information from the future."

I'm curious as to what exactly that means, but without further explanation I'm
going to assume that the thing running in the "past" just waits for
information from the "future". It's possible they mean something else, of
course, but that's my first guess.

~~~
EvilTerran
Well, the past doesn't necessarily have to wait for the value from the future
to arrive, thanks to lazy evaluation. But yes, you've got the basic gist of
it.

State and Reverse State are both about having a single conceptually-mutable
"cell" (although that can, of course, be a complex value like a mapping or
whatever), written with "put" and read with "get" -- take a minimal example:

    
    
      do put "Past"
         x <- get
         put "Future"
         return x
    

In State, that would result in "Past"; in Reverse State, it would result in
"Future".

The blog posts linked at the bottom of the readme may help make things
clearer.

------
sordina
Reminds me of the talk "Temporally Quaquaversal Virtual Nanomachine
Programming In Multiple Topologically Connected Quantum-Relativistic Parallel
Timespaces...Made Easy!" surrounding some 'similar' ideas in Perl:

[http://blip.tv/oreilly-open-source-
convention/oscon-2008-dam...](http://blip.tv/oreilly-open-source-
convention/oscon-2008-damian-conway-thoughtstream-temporally-quaquaversal-
virtual-nanomachine-programming-in-multiple-t-1151669)

~~~
sordina
For those that don't want to wait until the similarities emerge, they begin at
~39 minutes. Obviously the primary motivation of the talk was entertainment,
however, I imagine that the Perl implementation of "positronic variables" is
actually somewhat equivalent to TardisT IO.

Although, this is just a guess as I don't know if the perl implementation is
available anywhere.

------
jheriko
This looks like labelling something really mundane and normal as something
special. Typcial academic code bs.

Well done for managing to so thoroughly over engineer something so trivial.
There is no problem you can solve with this that isn't trivially solvable if
you use sensible tools. :)

