-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Type Safe and End to End Decision Tree -- -- Please see the README on Github at -- https://github.com/MarisaKirisame/HappyTree#readme @package HappyTree @version 0.2018.1.8 module Data.HappyTree data RevAppendSym0 (l_ahok :: TyFun [a6989586621679075741] (TyFun [a6989586621679075741] [a6989586621679075741] -> Type)) RevAppendSym0KindInference :: RevAppendSym0 data RevAppendSym1 (l_ahoi :: [a6989586621679075741]) (l_ahoh :: TyFun [a6989586621679075741] [a6989586621679075741]) RevAppendSym1KindInference :: RevAppendSym1 type RevAppendSym2 (t_ahof :: [a6989586621679075741]) (t_ahog :: [a6989586621679075741]) = RevAppend t_ahof t_ahog data SelElemAuxSym0 (l_ahox :: TyFun [a6989586621679075740] (TyFun [a6989586621679075740] [(a6989586621679075740, [a6989586621679075740])] -> Type)) SelElemAuxSym0KindInference :: SelElemAuxSym0 data SelElemAuxSym1 (l_ahov :: [a6989586621679075740]) (l_ahou :: TyFun [a6989586621679075740] [(a6989586621679075740, [a6989586621679075740])]) SelElemAuxSym1KindInference :: SelElemAuxSym1 type SelElemAuxSym2 (t_ahos :: [a6989586621679075740]) (t_ahot :: [a6989586621679075740]) = SelElemAux t_ahos t_ahot type SelElemSym1 (t_ahoH :: [a6989586621679075739]) = SelElem t_ahoH data SelElemSym0 (l_ahoI :: TyFun [a6989586621679075739] [(a6989586621679075739, [a6989586621679075739])]) SelElemSym0KindInference :: SelElemSym0 sSelElem :: forall (t_ahoQ :: [a_ah9F]). Sing t_ahoQ -> Sing (Apply SelElemSym0 t_ahoQ :: [(a_ah9F, [a_ah9F])]) sSelElemAux :: forall (t_ahoO :: [a_ah9G]) (t_ahoP :: [a_ah9G]). Sing t_ahoO -> Sing t_ahoP -> Sing (Apply (Apply SelElemAuxSym0 t_ahoO) t_ahoP :: [(a_ah9G, [a_ah9G])]) sRevAppend :: forall (t_ahoM :: [a_ah9H]) (t_ahoN :: [a_ah9H]). Sing t_ahoM -> Sing t_ahoN -> Sing (Apply (Apply RevAppendSym0 t_ahoM) t_ahoN :: [a_ah9H]) selElem :: [a_ah9F] -> [(a_ah9F, [a_ah9F])] selElemAux :: [a_ah9G] -> [a_ah9G] -> [(a_ah9G, [a_ah9G])] revAppend :: [a_ah9H] -> [a_ah9H] -> [a_ah9H] takeElemAux :: [a] -> [a] -> [([a], a, [a])] takeElem :: [a] -> [([a], a, [a])] data SelElemTypeAux a SelElemTypeAux :: (Fst a) -> (NP I (Snd a)) -> SelElemTypeAux a type SelElemAuxType a b = NP SelElemTypeAux (SelElemAux a b) type SelElemType a = SelElemAuxType '[] a npRevAppend :: NP f a -> NP f b -> NP f (RevAppend a b) npSelElemAux :: NP I a -> NP I b -> SelElemAuxType a b npSelElem :: NP I a -> SelElemAuxType '[] a dictSList :: SList a -> Dict (SListI a) sListCons :: Proxy a -> SList b -> SList (a : b) npAppend :: NP f a -> NP f b -> NP f (a :++ b) npToSList :: NP f a -> SList a newtype SplitOnAux a b c SplitOnAux :: DecisionTree (c :++ a) b -> SplitOnAux a b c [runSplitOnAux] :: SplitOnAux a b c -> DecisionTree (c :++ a) b data SplitOn (b :: *) (x :: (*, [*])) SplitOn :: (Fst x -> SOP I c) -> (NP (SplitOnAux (Snd x) b) c) -> SplitOn data DecisionTree (a :: [*]) (b :: *) Leaf :: (NP I a -> b) -> DecisionTree Split :: (NS (SplitOn b) (SelElem a)) -> DecisionTree eval :: DecisionTree a b -> NP I a -> b entropy :: Ord a => [a] -> Double data IndexAux (l :: k) (r :: k) IndexAux :: IndexAux newtype Index (l :: [k]) (x :: k) Index :: NS (IndexAux x) l -> Index [runIndex] :: Index -> NS (IndexAux x) l fromIndex :: SListI l => NP f l -> Index l x -> f x class GetIndex l x getIndex :: GetIndex l x => Proxy l -> Proxy x -> Index l x newtype SplitFunAuxAux b d SplitFunAuxAux :: [(NP I d, b)] -> SplitFunAuxAux b d [runSplitFunAuxAux] :: SplitFunAuxAux b d -> [(NP I d, b)] data SplitFun env a b SplitFun :: (a -> SOP I c) -> (NP (SplitFunAuxAux b) c) -> SplitFun env a b unitSplitFun :: [b] -> SplitFun env a b splitFunP :: (SListI2 c, All2 (GetIndex env) c) => Proxy c -> (a -> SOP I c) -> NP (SplitFunAuxAux b) c -> SplitFun env a b data SplitStrat (env :: [*]) a SplitStrat :: (forall b. [(a, b)] -> [SplitFun env a b]) -> SplitStrat a runSplitFun :: () => SplitStrat env a -> [(a, b)] -> [SplitFun env a b] type SplitStrats cur env = NP (SplitStrat env) cur splitStaticAux :: SplitStrat env a -> Proxy (GetIndex env) splitStatic :: (SListI2 c, All2 (GetIndex env) c) => (a -> SOP I c) -> SplitStrat env a splitOrd :: (Ord a, GetIndex env a) => SplitStrat env a splitStructure :: (Generic a, SListI2 (Code a), All2 (GetIndex env) (Code a)) => SplitStrat env a getIndex2 :: All (GetIndex l) r => SList r -> NP (Index l) r mode :: Ord a => [a] -> a nMinOnAux :: Ord b => (forall x. f x -> b) -> NP f a -> Maybe (b, NS f a) nMinOn :: Ord b => (forall x. f x -> b) -> NP f a -> Maybe (NS f a) data SelElemTypeAuxIndex env a SelElemTypeAuxIndex :: (Index env (Fst a)) -> (NP (Index env) (Snd a)) -> SelElemTypeAuxIndex env a selElemTypeAuxIndex :: NP (Index env) a -> NP (Index env) b -> NP (SelElemTypeAuxIndex env) (SelElemAux a b) fromSF :: SplitFun (env :: [*]) a b -> Proxy (All (GetIndex env)) newtype BuildAuxAux a b BuildAuxAux :: [(a, Fst b, NP I (Snd b))] -> BuildAuxAux a b [runBuildAuxAux] :: BuildAuxAux a b -> [(a, Fst b, NP I (Snd b))] data Score Destructing :: Score Deciding :: Double -> Score newtype WithScore b x WithScore :: (Score, (SplitOn b x)) -> WithScore b x [runWithScore] :: WithScore b x -> (Score, (SplitOn b x)) buildTree :: (SListI env, Ord b) => SplitStrats env env -> NP (Index env) (Snd a1) -> b -> SplitFun env (Fst a1) (b, NP I (Snd a1)) -> (Score, SplitOn b a1) buildAux :: (SListI env, Ord b) => NP (Index env) a -> SplitStrats env env -> [(NP I a, b)] -> b -> DecisionTree a b build :: (All (GetIndex env) a, SListI env, Ord b) => SplitStrats env env -> [(NP I a, b)] -> b -> DecisionTree a b instance GHC.Classes.Eq Data.HappyTree.Score instance GHC.Classes.Ord Data.HappyTree.Score instance GHC.Base.Monoid (Data.HappyTree.SplitStrat env a) instance forall k (r :: [k]) (x :: k) (l :: k). Data.HappyTree.GetIndex r x => Data.HappyTree.GetIndex (l : r) x instance forall k (l :: k) (r :: [k]). Data.HappyTree.GetIndex (l : r) l instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.HappyTree.SelElemSym0 instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.HappyTree.SelElemAuxSym1 instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.HappyTree.SelElemAuxSym0 instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.HappyTree.RevAppendSym1 instance Data.Singletons.SuppressUnusedWarnings.SuppressUnusedWarnings Data.HappyTree.RevAppendSym0