Michael Roth wrote:
Did you mean:

        isolate :: Stack s1 a -> Stack s2 a
        isolate stack = Stack f where f xs = ( fst $ run stack [], xs)

Yes. What's slightly interesting is the way the types promise the isolation: the Stack s1 action clearly can't be consuming any of the [s2] stack, because that is the wrong type. This continues to hold even if you happen to run it with s1 == s2.

Jules
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to