display :: Shell ()
apply :: R a -> Shell ()
query :: T a b -> Shell b
I propose we add two principles.
When we return textual information to the user, we standardize around DocH. This is because the user can decide how wide the screen is, if they want LaTeX, the can pretty printer to LaTeX, etc.
We only print to the screen for debugging, not regular output. For regular output, we use DocH.
The means we have the types
display :: Shell DocH
apply :: R a -> Shell DocH -- returns the current tree, after the rewrite.
query :: T a b -> Shell b
The GHCi pretty printer can handle DocH - I've make this change already.
Notes:
We will throw alway our DocH result if we are running a script. This is not lazy, because of the RPC. We might be able to detect when this happens automatically.
display might now be an instance of apply or query.
We have a number of top-level shell commands.
I propose we add two principles.
DocH
. This is because the user can decide how wide the screen is, if they want LaTeX, the can pretty printer to LaTeX, etc.DocH
.The means we have the types
The GHCi pretty printer can handle DocH - I've make this change already.
Notes:
apply
orquery
.