Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- abspatvarname :: String
- costCaseSplitVeryHigh :: Cost
- costCaseSplitHigh :: Cost
- costCaseSplitLow :: Cost
- costAddVarDepth :: Cost
- data HI a = HI Hiding a
- drophid :: [HI a] -> [a]
- type CSPat o = HI (CSPatI o)
- type CSCtx o = [HI (MId, MExp o)]
- data CSPatI o
- type Sol o = [(CSCtx o, [CSPat o], Maybe (MExp o))]
- caseSplitSearch :: forall o. IORef Int -> Int -> [ConstRef o] -> Maybe (EqReasoningConsts o) -> Int -> Cost -> ConstRef o -> CSCtx o -> MExp o -> [CSPat o] -> IO [Sol o]
- caseSplitSearch' :: forall o. (Cost -> CSCtx o -> MExp o -> ([Nat], Nat, [Nat]) -> IO (Maybe (MExp o))) -> Int -> Cost -> ConstRef o -> CSCtx o -> MExp o -> [CSPat o] -> IO [Sol o]
- infertypevar :: CSCtx o -> Nat -> MExp o
- class Replace t u where
- type ReplaceWith t u
- replace' :: Nat -> MExp (ReplaceWith t u) -> t -> Reader (Nat, Nat) u
- replace :: Replace t u => Nat -> Nat -> MExp (ReplaceWith t u) -> t -> u
- betareduce :: MExp o -> MArgList o -> MExp o
- concatargs :: MArgList o -> MArgList o -> MArgList o
- replacep :: forall o. Nat -> Nat -> CSPatI o -> MExp o -> CSPat o -> CSPat o
- type Assignments o = [(Nat, Exp o)]
- class Unify t where
- unify :: Unify t => t -> t -> Maybe (Assignments (UnifiesTo t))
- notequal :: Unify t => Nat -> Nat -> t -> t -> IO Bool
- unifyVar :: Nat -> Exp o -> StateT (Assignments o) Maybe ()
- unifyexp :: MExp o -> MExp o -> Maybe [(Nat, MExp o)]
- class Lift t where
- lift :: Lift t => Nat -> t -> t
- removevar :: CSCtx o -> MExp o -> [CSPat o] -> [(Nat, MExp o)] -> (CSCtx o, MExp o, [CSPat o])
- findperm :: [MExp o] -> Maybe [Nat]
- freevars :: FreeVars t => t -> [Nat]
- applyperm :: [Nat] -> CSCtx o -> MExp o -> [CSPat o] -> (CSCtx o, MExp o, [CSPat o])
- ren :: [Nat] -> Nat -> Int
- seqctx :: CSCtx o -> CSCtx o
- depthofvar :: Nat -> [CSPat o] -> Nat
- class LocalTerminationEnv a where
- sizeAndBoundVars :: a -> (Sum Nat, [Nat])
- localTerminationEnv :: [CSPat o] -> ([Nat], Nat, [Nat])
- localTerminationSidecond :: ([Nat], Nat, [Nat]) -> ConstRef o -> MExp o -> EE (MyPB o)
- getblks :: MExp o -> IO [Nat]
Documentation
Instances
LocalTerminationEnv a => LocalTerminationEnv (HI a) Source # | |
Defined in Agda.Auto.CaseSplit | |
Renaming t => Renaming (HI t) Source # | |
Defined in Agda.Auto.CaseSplit |
CSPatConApp (ConstRef o) [CSPat o] | |
CSPatProj (ConstRef o) | |
CSPatVar Nat | |
CSPatExp (MExp o) | |
CSWith (MExp o) | |
CSAbsurd | |
CSOmittedArg |
Instances
LocalTerminationEnv (CSPatI o) Source # | |
Defined in Agda.Auto.CaseSplit | |
Renaming (CSPatI o) Source # | |
Defined in Agda.Auto.CaseSplit |
caseSplitSearch :: forall o. IORef Int -> Int -> [ConstRef o] -> Maybe (EqReasoningConsts o) -> Int -> Cost -> ConstRef o -> CSCtx o -> MExp o -> [CSPat o] -> IO [Sol o] Source #
caseSplitSearch' :: forall o. (Cost -> CSCtx o -> MExp o -> ([Nat], Nat, [Nat]) -> IO (Maybe (MExp o))) -> Int -> Cost -> ConstRef o -> CSCtx o -> MExp o -> [CSPat o] -> IO [Sol o] Source #
class Replace t u where Source #
type ReplaceWith t u Source #
type Assignments o = [(Nat, Exp o)] Source #
unify' :: t -> t -> StateT (Assignments (UnifiesTo t)) Maybe () Source #
notequal' :: t -> t -> ReaderT (Nat, Nat) (StateT (Assignments (UnifiesTo t)) IO) Bool Source #
removevar :: CSCtx o -> MExp o -> [CSPat o] -> [(Nat, MExp o)] -> (CSCtx o, MExp o, [CSPat o]) Source #
class LocalTerminationEnv a where Source #
Speculation: Type class computing the size (?) of a pattern and collecting the vars it introduces
Instances
LocalTerminationEnv (CSPatI o) Source # | |
Defined in Agda.Auto.CaseSplit | |
LocalTerminationEnv a => LocalTerminationEnv (HI a) Source # | |
Defined in Agda.Auto.CaseSplit | |
LocalTerminationEnv (MArgList o) Source # | |
Defined in Agda.Auto.CaseSplit | |
LocalTerminationEnv (MExp o) Source # | |
Defined in Agda.Auto.CaseSplit | |
LocalTerminationEnv a => LocalTerminationEnv [a] Source # | |
Defined in Agda.Auto.CaseSplit | |
(LocalTerminationEnv a, LocalTerminationEnv b) => LocalTerminationEnv (a, b) Source # | |
Defined in Agda.Auto.CaseSplit |