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' :: (Read a, Show a) =>
(ShellF -> ShellF) ->
Maybe a -> String -> F a (InputMsg a) -> F c d