{"action":"opened","issue":{"url":"https://api.github.com/repos/FStarLang/FStar/issues/311","labels_url":"https://api.github.com/repos/FStarLang/FStar/issues/311/labels{/name}","comments_url":"https://api.github.com/repos/FStarLang/FStar/issues/311/comments","events_url":"https://api.github.com/repos/FStarLang/FStar/issues/311/events","html_url":"https://github.com/FStarLang/FStar/issues/311","id":100890165,"number":311,"title":"\"Effects PURE and ML cannot be composed\" when all.fst is not in scope","user":{"login":"catalin-hritcu","id":5850655,"avatar_url":"https://avatars.githubusercontent.com/u/5850655?v=3","gravatar_id":"","url":"https://api.github.com/users/catalin-hritcu","html_url":"https://github.com/catalin-hritcu","followers_url":"https://api.github.com/users/catalin-hritcu/followers","following_url":"https://api.github.com/users/catalin-hritcu/following{/other_user}","gists_url":"https://api.github.com/users/catalin-hritcu/gists{/gist_id}","starred_url":"https://api.github.com/users/catalin-hritcu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/catalin-hritcu/subscriptions","organizations_url":"https://api.github.com/users/catalin-hritcu/orgs","repos_url":"https://api.github.com/users/catalin-hritcu/repos","events_url":"https://api.github.com/users/catalin-hritcu/events{/privacy}","received_events_url":"https://api.github.com/users/catalin-hritcu/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-13T23:21:25Z","updated_at":"2015-08-13T23:21:25Z","closed_at":null,"body":"There seems to be a problem with partially applied function definitions when `all.fst` is not in scope. I don't want to import `all.fst` in micro-fstar.fst (and proof files in general) because we only work with Pure things. But without `all.fst` partially applied functions start failing. For instance:\r\n```\r\nval esub_inc2 : var -> Tot exp\r\nlet esub_inc2 = esub_inc_gen 2\r\n```\r\nworks well when all (and all its dependencies: set.fsi heap.fst st.fst) is in scope, but not when they are removed:\r\n```\r\nmicro-fstar.fst(303,0-303,30) : Error\r\nEffects PURE and ML cannot be composed\r\n```\r\nFully applying `esub_inc2` also works around the problem, so the following works even without all:\r\n```\r\nlet esub_inc2 x = esub_inc_gen 2 x\r\n```\r\n"}}