UNSTABLE: it compiles but faults.  Really need to just write out test cases...