liquidhaskell-0.8.10.1: Liquid Types for Haskell
Safe HaskellNone
LanguageHaskell98

Language.Haskell.Liquid.Synthesize.Generate

Synopsis

Documentation

data SearchMode #

Constructors

ArgsMode

searching for arguments of functions that can eventually produce the top level hole fill

ResultMode

searching for the hole fill

Instances

Instances details
Eq SearchMode # 
Instance details

Defined in Language.Haskell.Liquid.Synthesize.Generate

Show SearchMode # 
Instance details

Defined in Language.Haskell.Liquid.Synthesize.Generate

fill :: SearchMode -> Int -> [(Type, CoreExpr, Int)] -> [CoreExpr] -> SM [CoreExpr] #

type Depth = Int #

Pruning terms for function application | --

feasibles :: Depth -> Int -> [(CoreExpr, Int)] -> [Int] #

isFeasible :: Depth -> [[(CoreExpr, Int)]] -> [[Int]] #

findFeasibles :: Depth -> [[(CoreExpr, Int)]] -> ([[Int]], [Int]) #

toExpr :: [Int] -> [(CoreExpr, Int)] -> ([(CoreExpr, Int)], [(CoreExpr, Int)]) #

fixCands :: Int -> [Int] -> [[(CoreExpr, Int)]] -> ([[(CoreExpr, Int)]], [[(CoreExpr, Int)]]) #

replace :: Int -> a -> [a] -> [a] #

The first argument should be an 1-based index.

repeatFix :: [Int] -> [[Int]] -> (Type, CoreExpr, Int) -> [[(CoreExpr, Int)]] -> [CoreExpr] -> SM [CoreExpr] #

prune :: Depth -> (Type, CoreExpr, Int) -> [[(CoreExpr, Int)]] -> SM [CoreExpr] #

fillOne :: (Type, CoreExpr, Int) -> [[(CoreExpr, Int)]] -> SM [CoreExpr] #

applyTerms :: [CoreExpr] -> [[(CoreExpr, Int)]] -> [Type] -> SM [CoreExpr] #

prodScrutinees :: [(Type, CoreExpr, Int)] -> [[[(CoreExpr, Int)]]] -> SM [CoreExpr] #