{"action":"created","issue":{"url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1086","labels_url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1086/labels{/name}","comments_url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1086/comments","events_url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1086/events","html_url":"https://github.com/fsprojects/VisualFSharpPowerTools/issues/1086","id":101437177,"number":1086,"title":"Lightweight interface implementation","user":{"login":"isaacabraham","id":1781813,"avatar_url":"https://avatars.githubusercontent.com/u/1781813?v=3","gravatar_id":"","url":"https://api.github.com/users/isaacabraham","html_url":"https://github.com/isaacabraham","followers_url":"https://api.github.com/users/isaacabraham/followers","following_url":"https://api.github.com/users/isaacabraham/following{/other_user}","gists_url":"https://api.github.com/users/isaacabraham/gists{/gist_id}","starred_url":"https://api.github.com/users/isaacabraham/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isaacabraham/subscriptions","organizations_url":"https://api.github.com/users/isaacabraham/orgs","repos_url":"https://api.github.com/users/isaacabraham/repos","events_url":"https://api.github.com/users/isaacabraham/events{/privacy}","received_events_url":"https://api.github.com/users/isaacabraham/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/labels/up-for-grabs","name":"up-for-grabs","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-08-17T14:43:53Z","updated_at":"2015-08-21T17:43:31Z","closed_at":null,"body":"Currently if you have VFPT implement an interface, you get a fully-typed, verbose implementation e.g.\r\n\r\n```fsharp\r\nlet processor = {\r\n    new IEventProcessor with\r\n        member __.CloseAsync(context: PartitionContext, reason: CloseReason): System.Threading.Tasks.Task = \r\n            failwith \"Not implemented yet\"\r\n        \r\n        member __.OpenAsync(context: PartitionContext): System.Threading.Tasks.Task = \r\n            failwith \"Not implemented yet\"\r\n        \r\n        member __.ProcessEventsAsync(context: PartitionContext, messages: System.Collections.Generic.IEnumerable<EventData>): System.Threading.Tasks.Task = \r\n            failwith \"Not implemented yet\"\r\n}\r\n```\r\n\r\nI will almost always simplify the above to: -\r\n\r\n```fsharp\r\nlet processor = {\r\n    new IEventProcessor with\r\n        member __.CloseAsync(context, reason) = failwith \"Not implemented yet\"        \r\n        member __.OpenAsync context = failwith \"Not implemented yet\"        \r\n        member __.ProcessEventsAsync(context, messages) = failwith \"Not implemented yet\"\r\n    }\r\n```\r\n\r\nI know that might not be everyone's cup of tea, but an option to have this would be nice. Even a halfway house that didn't use fully-qualified namespaces but added open statements would be good."},"comment":{"url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/comments/133507857","html_url":"https://github.com/fsprojects/VisualFSharpPowerTools/issues/1086#issuecomment-133507857","issue_url":"https://api.github.com/repos/fsprojects/VisualFSharpPowerTools/issues/1086","id":133507857,"user":{"login":"dungpa","id":941060,"avatar_url":"https://avatars.githubusercontent.com/u/941060?v=3","gravatar_id":"","url":"https://api.github.com/users/dungpa","html_url":"https://github.com/dungpa","followers_url":"https://api.github.com/users/dungpa/followers","following_url":"https://api.github.com/users/dungpa/following{/other_user}","gists_url":"https://api.github.com/users/dungpa/gists{/gist_id}","starred_url":"https://api.github.com/users/dungpa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dungpa/subscriptions","organizations_url":"https://api.github.com/users/dungpa/orgs","repos_url":"https://api.github.com/users/dungpa/repos","events_url":"https://api.github.com/users/dungpa/events{/privacy}","received_events_url":"https://api.github.com/users/dungpa/received_events","type":"User","site_admin":false},"created_at":"2015-08-21T17:43:31Z","updated_at":"2015-08-21T17:43:31Z","body":"@isaacabraham How is it going with ImplementInterface enhancement?"}}