"Minor" in the sense that it's mostly just moving definitions around. Definition or type changes are few, and trivial.
Move ResourceSpec, EntityCommand and TempfileOnExit types, and their companion optics, from Purebred.Types.Mailcap to Purebred.System.Process This is a more appropriate home.
Remove unused function handleIOException
Move decodeLenient to new module Purebred.Types.String. This avoids the full import of Purebred.Types in Purebred.System.Process, which avoids an import cycle due to the moved definitions.
Move toProcessConfigWithTemplate from Purebred.System.Process to Purebred.Types.Mailcap. It becomes a non-exported helper function.
Move Purebred.Storage.Mail.mkConfig to Purebred.Types.Mailcap.mailcapHandlerToEntityCommand. It becomes a pure function (previously had a redundant use of pure and a redundant constraints). The implementation is otherwise the same. Refactor call sites.
Refactor openCommand' to use mailcapHandlerToEntityCommand.
(draft PR; I might add more commits)
"Minor" in the sense that it's mostly just moving definitions around. Definition or type changes are few, and trivial.
Move
ResourceSpec
,EntityCommand
andTempfileOnExit
types, and their companion optics, fromPurebred.Types.Mailcap
toPurebred.System.Process
This is a more appropriate home.Remove unused function
handleIOException
Move
decodeLenient
to new modulePurebred.Types.String
. This avoids the full import ofPurebred.Types
inPurebred.System.Process
, which avoids an import cycle due to the moved definitions.Move
toProcessConfigWithTemplate
fromPurebred.System.Process
toPurebred.Types.Mailcap
. It becomes a non-exported helper function.Move
Purebred.Storage.Mail.mkConfig
toPurebred.Types.Mailcap.mailcapHandlerToEntityCommand
. It becomes a pure function (previously had a redundant use ofpure
and a redundant constraints). The implementation is otherwise the same. Refactor call sites.Refactor
openCommand'
to usemailcapHandlerToEntityCommand
.