-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Hole-Fit Synthesis using ECTAs -- -- A hole-fit plugin for GHC that uses an ECTA to synthesize valid -- hole-fits. See https://github.com/jkoppel/ecta for more details -- on ECTAs! @package ecta-plugin @version 0.1.1.2 module ECTA.Plugin.Utils tyVarMap :: IORef (Map Text TyVar) skeletonToType :: TypeSkeleton -> TcM (Maybe Type) -- | Extremely crude at the moment!! Returns the typeSkeleton and any -- constructors (for instance lookup) typeToSkeleton :: Type -> Maybe (TypeSkeleton, [Type]) typeToSkeletonText :: Outputable a => a -> Maybe Text tyVarToSkeletonText :: Outputable a => a -> Maybe Text constFunc :: Symbol -> Node -> Edge applyOperator :: Comps -> Node tk :: Comps -> Node -> Bool -> Int -> [Node] tkUpToK :: Comps -> Node -> Bool -> Int -> [Node] rtk :: [Argument] -> Comps -> Node -> Bool -> Int -> [Node] rtkOfSize :: [Argument] -> Comps -> Node -> Bool -> Int -> Node rtkUpToK :: [Argument] -> Comps -> Node -> Bool -> Int -> [Node] rtkAtLeast1 :: [Argument] -> Comps -> Node -> Bool -> Int -> [Node] rtkUpToKAtLeast1 :: [Argument] -> Comps -> Node -> Bool -> Int -> [Node] mapp :: Node -> Node -> Node chunks :: Int -> [a] -> [[a]] removeDicts :: Term -> Term parIfReq :: Text -> Text pp :: Term -> Text ppNoPar :: Term -> Text allConstructors :: Comps -> [(Text, Int)] type Comps = [(Text, TypeSkeleton)] mtau :: Comps -> Node globalTyVars :: [Node] generalize :: Comps -> Node -> Node invertMap :: Ord b => Map a b -> Map b [a] prettyMatch :: Map Text TypeSkeleton -> Map Text [Text] -> Term -> TcM [Text] -- | isSafe checks if we can use the type. Sadly ecta doesn't support all -- types as of yet, so we fall back to the regulur valid hole-fits. isSafe :: TypeSkeleton -> Bool module ECTA.Plugin plugin :: Plugin