Changed letrec datatype so its not dependent