{-# LANGUAGE TypeFamilies, FlexibleContexts #-} module Language.Haskell.Tools.Refactor.Builtin.HelloRefactor where import Language.Haskell.Tools.PrettyPrint (prettyPrint) import Language.Haskell.Tools.Refactor import Control.Reference ((.-)) import Debug.Trace (trace) import SrcLoc (RealSrcSpan) tryItOut :: String -> String -> IO () tryItOut = tryRefactor (localRefactoring . helloRefactor) helloRefactor :: RealSrcSpan -> LocalRefactoring helloRefactor sp = return . (nodesContained sp .- helloExpr) helloExpr :: Expr -> Expr helloExpr e = trace ("\n### Hello: " ++ prettyPrint e) $ e