MagicHaskeller-0.9.7.1: Automatic inductive functional programmer by systematic search
Safe HaskellNone
LanguageHaskell2010

MagicHaskeller.CoreLang

Synopsis

Documentation

type Var = Int16 Source #

data CoreExpr Source #

Instances

Instances details
Eq CoreExpr Source # 
Instance details

Defined in MagicHaskeller.CoreLang

Ord CoreExpr Source # 
Instance details

Defined in MagicHaskeller.CoreLang

Show CoreExpr Source # 
Instance details

Defined in MagicHaskeller.CoreLang

Expression CoreExpr Source # 
Instance details

Defined in MagicHaskeller.Expression

Methods

mkHead :: (Integral i, Integral j) => (CoreExpr -> Dynamic) -> i -> j -> j -> CoreExpr -> CoreExpr Source #

toCE :: CoreExpr -> CoreExpr Source #

fromCE :: (CoreExpr -> Dynamic) -> CoreExpr -> CoreExpr Source #

mapCE :: (CoreExpr -> CoreExpr) -> CoreExpr -> CoreExpr Source #

aeAppErr :: String -> CoreExpr -> CoreExpr -> CoreExpr Source #

appEnv :: Int8 -> CoreExpr -> CoreExpr -> CoreExpr Source #

toAnnExpr :: (CoreExpr -> Dynamic) -> CoreExpr -> AnnExpr Source #

toAnnExprWind :: (CoreExpr -> Dynamic) -> Type -> CoreExpr -> AnnExpr Source #

toAnnExprWindWind :: (CoreExpr -> Dynamic) -> Type -> CoreExpr -> AnnExpr Source #

fromAnnExpr :: AnnExpr -> CoreExpr Source #

reorganize :: Monad m => ([Type] -> m [CoreExpr]) -> [Type] -> m [CoreExpr] Source #

reorganize' :: Monad m => ([Type] -> m [CoreExpr]) -> [Type] -> m [CoreExpr] Source #

reorganizeId :: ([Type] -> [CoreExpr]) -> [Type] -> [CoreExpr] Source #

replaceVars' :: Int8 -> CoreExpr -> [Int8] -> CoreExpr Source #

reorganizeId' :: Functor m => ([Type] -> m CoreExpr) -> [Type] -> m CoreExpr Source #

decodeVars :: Int -> [Int8] -> CoreExpr -> CoreExpr Source #

ProgramGeneratorIO (PGSFIOR CoreExpr) Source # 
Instance details

Defined in MagicHaskeller.ProgGenSFIORef

adjustXs :: (Bits a, Num a) => a -> Int8 -> CoreExpr -> CoreExpr Source #

unboundXs :: (Bits a, Num a) => Int8 -> CoreExpr -> a Source #

sub :: Integral i => i -> CoreExpr -> [CoreExpr] Source #

bra :: Integral i => i -> CoreExpr -> [CoreExpr] Source #

parentsOfLeaves :: CoreExpr -> [CoreExpr] Source #

parentsOfLeaves collects branch nodes whose children are leaf nodes. This can be used for incremental learning.

pol :: Integral i => i -> CoreExpr -> [CoreExpr] Source #

napply :: Integral i => i -> (a -> a) -> a -> a Source #

newtype HValue Source #

Constructors

HV (forall a. a) 

primitivesToVL :: TyConLib -> [Primitive] -> VarLib Source #

dynamicsToVL :: [Dynamic] -> VarLib Source #

dynamicsToVL is useful for incremental learning.

listToArray :: (Integral i, Ix i) => [a] -> Array i a Source #

defaultVarLib :: VarLib Source #

defaultVarLib can be used as a VarLib for testing and debugging. Currently this is used only by the analytical synthesizer.

defaultPrimitives :: [Dynamic] Source #

defaultPrimitives is the set of primitives that we want to make sure to appear in VarLib but may not appear in the primitive set with which to synthesize. In other words, it is the set of primitives we want to make sure to assign IDs to.

Orphan instances