{"action":"created","issue":{"url":"https://api.github.com/repos/haskell/directory/issues/13","labels_url":"https://api.github.com/repos/haskell/directory/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/haskell/directory/issues/13/comments","events_url":"https://api.github.com/repos/haskell/directory/issues/13/events","html_url":"https://github.com/haskell/directory/issues/13","id":54424305,"number":13,"title":"Implement setModificationTime counterpart to getModificationTime","user":{"login":"hvr","id":285533,"avatar_url":"https://avatars.githubusercontent.com/u/285533?v=3","gravatar_id":"","url":"https://api.github.com/users/hvr","html_url":"https://github.com/hvr","followers_url":"https://api.github.com/users/hvr/followers","following_url":"https://api.github.com/users/hvr/following{/other_user}","gists_url":"https://api.github.com/users/hvr/gists{/gist_id}","starred_url":"https://api.github.com/users/hvr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hvr/subscriptions","organizations_url":"https://api.github.com/users/hvr/orgs","repos_url":"https://api.github.com/users/hvr/repos","events_url":"https://api.github.com/users/hvr/events{/privacy}","received_events_url":"https://api.github.com/users/hvr/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/haskell/directory/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/haskell/directory/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-01-15T08:38:36Z","updated_at":"2015-03-01T13:37:33Z","closed_at":null,"body":"For POSIX it should be a no-brainer, and for Win32 it seems possible as well:\r\n\r\n - http://msdn.microsoft.com/en-us/library/windows/desktop/ms724933%28v=vs.85%29.aspx\r\n - http://stackoverflow.com/questions/2185338/how-to-set-the-modification-time-of-a-file-programmatically\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/haskell/directory/issues/comments/76597015","html_url":"https://github.com/haskell/directory/issues/13#issuecomment-76597015","issue_url":"https://api.github.com/repos/haskell/directory/issues/13","id":76597015,"user":{"login":"Rufflewind","id":6571068,"avatar_url":"https://avatars.githubusercontent.com/u/6571068?v=3","gravatar_id":"","url":"https://api.github.com/users/Rufflewind","html_url":"https://github.com/Rufflewind","followers_url":"https://api.github.com/users/Rufflewind/followers","following_url":"https://api.github.com/users/Rufflewind/following{/other_user}","gists_url":"https://api.github.com/users/Rufflewind/gists{/gist_id}","starred_url":"https://api.github.com/users/Rufflewind/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rufflewind/subscriptions","organizations_url":"https://api.github.com/users/Rufflewind/orgs","repos_url":"https://api.github.com/users/Rufflewind/repos","events_url":"https://api.github.com/users/Rufflewind/events{/privacy}","received_events_url":"https://api.github.com/users/Rufflewind/received_events","type":"User","site_admin":false},"created_at":"2015-03-01T13:37:33Z","updated_at":"2015-03-01T13:37:33Z","body":"The more I think about it, the more I think `Maybe` is the cleanest solution.  I think with `INLINABLE` GHC should be able to optimize out the check (not like it makes any difference anyway, since system calls are already rather slow).  Compare to all the other solutions, the only downside is a slight loss in usability.\r\n\r\nUsing `#define` has the downside of requiring CPP and introducing conditionally-compiled code, which makes it easy to write code that doesn't compile on another platform."}}