You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I feel like on the engineering side I've picked some libraries where nicer options might be available, notably using a combination of haskell-src-exts and hint for respectively constructing and evaluating ASTs as opposed to using ghc-lib / ghc-lib-parser to stick with native functionality.
fnIoPairs / evaluating functions on their sample inputs to get outputs (for dataset generation seemingly my main performance culprit, see run-time performance #5)
exprType: get the type of an expression
genInputs: generate examples -- this part only works on concrete (instantiated) types not containing functions 😐, but that's on QuickCheck that I'm using for this (if thru the interpreter).
fitExpr: check if a candidate fits into a hole by just type-checking the result through the interpreter (then checking if the expression type is still a function if using currying over lambdas).
I feel like on the engineering side I've picked some libraries where nicer options might be available, notably using a combination of
haskell-src-exts
andhint
for respectively constructing and evaluating ASTs as opposed to usingghc-lib
/ghc-lib-parser
to stick with native functionality.things I'm using the interpreter for:
instantiateTypes
/ zonkingmatchesConstraints
/ type matchingfnIoPairs
/ evaluating functions on their sample inputs to get outputs (for dataset generation seemingly my main performance culprit, see run-time performance #5)exprType
: get the type of an expressiongenInputs
: generate examples -- this part only works on concrete (instantiated) types not containing functions 😐, but that's onQuickCheck
that I'm using for this (if thru the interpreter).fitExpr
: check if a candidate fits into a hole by just type-checking the result through the interpreter (then checking if the expression type is still a function if using currying over lambdas).some places I may wanna check for inspiration:
djinn
/djinn-ghc
:haskell-src-exts
but uses its own AST thingHelp
Djinn does *not* instantiate polymorphic functions
, which sounds... worse than my thing? tho for generation mine is still undirected brute-force...etaReduce
(which I wanna delegate to hlint (synthesize legible programs #22) and equivalence/matching logic which may be of interest to me for deduping types/expressions...hoogle
: also useshaskell-src-exts
tho nohint
. question: can I learn from their type matching to get rid of some interpreter calls?ormolu
, which using reverse dependency search I found usesghc-lib-parser
. this handles parsing and printing./r/haskell
to get my engineering decisions on this peer-reviewed: posted here.The text was updated successfully, but these errors were encountered: