我正在更新我的ReadArgs package。我曾要求爲Data.Text和FileSystem.Path.FilePath添加Arguable
實例。前者是沒什麼大不了的,因爲它是在base
包,但後者需要system-filepath
創建孤立實例或添加虛假依賴關係?
所以,我可以釋放ReadArgs-ext
包,充滿了孤兒情況的,我也可以有額外的外部依賴更新ReadArgs
包。哪個選項更有意義?
我正在更新我的ReadArgs package。我曾要求爲Data.Text和FileSystem.Path.FilePath添加Arguable
實例。前者是沒什麼大不了的,因爲它是在base
包,但後者需要system-filepath
創建孤立實例或添加虛假依賴關係?
所以,我可以釋放ReadArgs-ext
包,充滿了孤兒情況的,我也可以有額外的外部依賴更新ReadArgs
包。哪個選項更有意義?
我通常的經驗法則是傾向於爲Haskell Platform中的包添加實例,但不涉及較少的便攜式元素,如圖形。這涵蓋filepath
和text
。既然你已經在處理外部世界的命令行參數,那麼這些都不是特別令人震驚的加法。
孤兒會導致非常可怕的問題。
我沒有在我的包中使用它們95%,並且我會盡我所能避免使用它們的包。
兩個例外我在這一點上是reducers
和包裝完整的vector-instances
我拿起幾個失蹤類羣,因爲我不願意讓我的整個層次的軟件包依賴於vector
,從Safe
降級一切Trustworthy
。
我發現當我試圖添加一個孤兒實例時,我通常可以通過提供某種WrappedMonad
類新型包裝來提升或降低另一個類。
我肯定會說-exts。如果人們需要它們,你希望這些實例可用,而不是強迫依賴它們,這樣這些實例實際上可用。 只要確保文檔中明確指出有這些實例的另一個包。 – identity