-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Hole-Fit Synthesis using ECTAs
--
-- A hole-fit plugin for GHC that invokes Hectare (based on ECTAs) to
-- synthesize valid hole-fits. See https://github.com/jkoppel/ecta
-- and https://dl.acm.org/doi/10.1145/3547622 for more details on
-- ECTAs and Hectare!
@package ecta-plugin
@version 0.1.1.3
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