I think you should have a look at optics and namely prisms, (rather than lenses)... in #functionalprogramming
probably a good example of refractive computation
I consider simple pattern matching as an instance of optics behaviour, but I have not spent the time to be fully mathematically correct here: I hope it is so, but I could not provide the correct definitions prooving me right, right now
I like the metaphore of branching as difraction
EDIT: I have to rework the difference refraction/diffraction in physics