ViewerInfix :: Infix -> String -> String -> Viewer (a -> b -> c)
ViewerApp :: Viewer (b -> a) -> Viewer b -> Viewer a
-runViewer :: Viewer a -> ViewerEnv -> ShowS
-runViewer (Viewer v) env = v env
-runViewer (ViewerInfix _op name _infixName) _env = showString name
-runViewer (ViewerUnifix _op name _unifixName) _env = showString name
-runViewer (ViewerApp f x) env =
+view :: Viewer a -> ViewerEnv -> ShowS
+view (Viewer v) env = v env
+view (ViewerInfix _op name _infixName) _env = showString name
+view (ViewerUnifix _op name _unifixName) _env = showString name
+view (ViewerApp f x) env =
pairViewer env op Fun.$
- runViewer f env{viewEnv_op = (op, SideL)}
+ view f env{viewEnv_op = (op, SideL)}
Fun.. showString " "
- Fun.. runViewer x env{viewEnv_op = (op, SideR)}
+ Fun.. view x env{viewEnv_op = (op, SideR)}
where
op = infixN 10
fromString s = Viewer Fun.$ \_env -> showString s
instance Show (Viewer a) where
showsPrec p =
- ( `runViewer`
+ ( `view`
ViewerEnv
{ viewEnv_op = (infixN p, SideL)
, viewEnv_pair = pairParen
in showString "\\"
Fun.. x
Fun.. showString " -> "
- Fun.. runViewer
+ Fun.. view
(f (Viewer (\_env -> x)))
env
{ viewEnv_op = (op, SideL)
in showString "\\"
Fun.. x
Fun.. showString " -> "
- Fun.. runViewer
+ Fun.. view
(f (Viewer (\_env -> x)))
env
{ viewEnv_op = (op, SideL)
instance Instantiable Viewer where
ViewerInfix op _name infixName .@ ViewerApp x y = Viewer Fun.$ \env ->
pairViewer env op Fun.$
- runViewer x env{viewEnv_op = (op, SideL)}
+ view x env{viewEnv_op = (op, SideL)}
Fun.. showString " "
Fun.. showString infixName
Fun.. showString " "
- Fun.. runViewer y env{viewEnv_op = (op, SideR)}
+ Fun.. view y env{viewEnv_op = (op, SideR)}
ViewerInfix op name _infixName .@ x = Viewer Fun.$ \env ->
showParen Prelude.True Fun.$
- runViewer x env{viewEnv_op = (op, SideL)}
+ view x env{viewEnv_op = (op, SideL)}
Fun.. showString " "
Fun.. showString name
f .@ x = ViewerApp f x
ifThenElse test ok ko = Viewer Fun.$ \env ->
pairViewer env op Fun.$
showString "if"
- Fun.. runViewer test env{viewEnv_op = (op, SideL)}
+ Fun.. view test env{viewEnv_op = (op, SideL)}
Fun.. showString "then"
- Fun.. runViewer ok env{viewEnv_op = (op, SideL)}
+ Fun.. view ok env{viewEnv_op = (op, SideL)}
Fun.. showString "else"
- Fun.. runViewer ko env{viewEnv_op = (op, SideL)}
+ Fun.. view ko env{viewEnv_op = (op, SideL)}
where
op = infixN 0