fileShellF' :: (ShellF -> ShellF) ->
(c1 -> String, String -> String ⊕ c1, Maybe c1) ->
String -> F c1 (InputMsg c1) -> F c2 d
textFileShellF' :: (ShellF -> ShellF) -> String -> F String (InputMsg String) -> F c d
showReadFileShellF' :: (Show c1, Read c1) =>
(ShellF -> ShellF) ->
Maybe c1 -> String -> F c1 (InputMsg c1) -> F c2 d