, , differentiation?
, getById, , . , Haskell, getById :: Int -> IO AST, - . ( , ), getById AST AST, ? . , , haskell.
, . , ZAST - AST. - .
makeFocus :: ZAST -> Focus ZAST
type Focus =
(ZAST -> ZAST) -> -- The modifier of the "below part"
ZAST -> -- The new "above part", you have to provide it again as it might have changed
ZAST -- The Result
, , ++.
, , , , ( , ..), . , , ++ Haskell.