-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell to and from Scalameta -- -- Use a script to convert from Scalameta Source string to mirroring -- Haskell classes, types and instances. Use the Show instances to -- convert from mirrored Haskell types to Scalameta string. @package hascalam @version 0.1.1.1 module HaScalaM.Classes.Base class (Tree t, WithBody b ct) => CaseTree t b ct pat :: CaseTree t b ct => ct -> t class Tree t => Ctor t class (SyntaxValuesClauses v pc, WithBody t f) => Function v pc t f paramClause :: Function v pc t f => f -> pc class (Name n, Tree t) => Member n t name :: Member n t => t -> n class (Tree v, Tree t) => SyntaxValuesClauses v t values :: SyntaxValuesClauses v t => t -> [v] class SyntaxValuesClauses v t => ArgClause v t class (Tree f, ArgClause v t, Tree y) => Apply f v t y fun :: Apply f v t y => y -> f argClause :: Apply f v t y => y -> t class (Tree l, Name n, Tree a, Tree x) => Infix l n a x lhs :: Infix l n a x => x -> l op :: Infix l n a x => x -> n arg :: Infix l n a x => x -> a class (Tree v, Tree t) => Tuple v t args :: Tuple v t => t -> [v] class Tree m => Mod m class Mod m => ArgsType m class Mod m => ParamsType m class Mod m => Variant m class Tree n => Name n value :: Name n => n -> String class (Mod m, Name n, Member n p) => Param m n p mods' :: Param m n p => p -> [m] class (Param m n p, SyntaxValuesClauses p pc) => ParamClause m n p pc class Tree t => Pat t class (Pat p, ArgClause p t) => ArgClauseP p t class Tree t => Ref t class Tree s => Stat s class Tree t class (Tree t, Tree w) => WithBody t w body :: WithBody t w => w -> t class (CaseTree t b ct, Tree w) => WithCases t b ct w cases :: WithCases t b ct w => w -> [ct] class (Mod m, Tree w) => WithMods m w mods :: WithMods m w => w -> [m] class (Ref r, Tree w) => WithWithin r w within :: WithWithin r w => w -> r module HaScalaM.Classes.Ref class Tree t => RefT t class Tree t' => RefT' t' module HaScalaM.Classes.Type class (Type' t', CaseTree t' t' ct) => Type'Case t' ct data FuncParamClause' t' [FuncParamClause'] :: Type' t' => [t'] -> FuncParamClause' t' class (Type' t', Function t' (FuncParamClause' t') t' f) => FunctionT' t' f res :: FunctionT' t' f => f -> t' class (NameT' n', Member n' t') => MemberT' n' t' class Name n' => NameT' n' class (WithT'ParamClause m n p' t' b' pc' p', Bounds' t' b') => ParamT' m n p' t' b' pc' tbounds' :: ParamT' m n p' t' b' pc' => p' -> b' vbounds' :: ParamT' m n p' t' b' pc' => p' -> [t'] cbounds' :: ParamT' m n p' t' b' pc' => p' -> [t'] class (ParamT' m n p' t' b' pc', ParamClause m n p' pc') => ParamClauseT' m n p' t' b' pc' class (Type' t', ArgClause t' t) => ArgClauseT' t' t class Tree t' => Type' t' class (Type' t', Tree b') => Bounds' t' b' lo :: Bounds' t' b' => b' -> Maybe t' hi :: Bounds' t' b' => b' -> Maybe t' class (Type' t', Tree w) => WithDeclTpe t' w decltpe :: WithDeclTpe t' w => w -> t' class (Type' t', Tree w) => WithDeclTpeOpt t' w decltpeOpt :: WithDeclTpeOpt t' w => w -> Maybe t' class (ParamClauseT' m n p' t' b' pc', Tree w) => WithT'ParamClause m n p' t' b' pc' w t'paramClause :: WithT'ParamClause m n p' t' b' pc' w => w -> pc' module HaScalaM.Classes.Term class (Pat p, Term t, CaseTree p t ct) => Case p t ct class (ParamClause m n p pc, ParamT m n p t' t, Function p pc t f) => FunctionT m n p pc t' t f class (NameT n, Member n t) => MemberT n t class Name t => NameT t class (Param m n p, WithDeclTpeOpt t' p, Term t) => ParamT m n p t' t defaultOpt :: ParamT m n p t' t => p -> Maybe t class (ParamsType m, ParamT m n p t' t, ParamClause m n p pc) => ParamClauseT m n p t' t pc mod' :: ParamClauseT m n p t' t pc => pc -> Maybe m class (ArgsType m, Term t, ArgClause t ac) => ArgClauseT m t ac mod :: ArgClauseT m t ac => ac -> Maybe m class Tree t => Term t class (ParamClauseT m n p t' t pc, Tree w) => WithParamClauses m n p t' t pc w paramClauses :: WithParamClauses m n p t' t pc w => w -> [pc] module HaScalaM.Classes.Enums class Tree t => Enumerator t class (Pat p, Term b, WithBody b t) => CaseGenerator p b t patCG :: CaseGenerator p b t => t -> p rhsCG :: CaseGenerator p b t => t -> b class (Pat p, Term b, WithBody b t) => Generator p b t patG :: Generator p b t => t -> p rhsG :: Generator p b t => t -> b class (Tree t, Term b) => Guard b t condG :: Guard b t => t -> b class (Pat p, Term b, WithBody b t) => Val p b t patV :: Val p b t => t -> p rhsV :: Val p b t => t -> b class (Enumerator e, Tree w) => WithEnums e w enums :: WithEnums e w => w -> [e] module HaScalaM.Classes.Stat class Tree s => Decl s class Tree s => Defn s class Tree r => Importee r class (RefT r, Importee i, Tree t) => Importer r i t ref :: Importer r i t => t -> r importees :: Importer r i t => t -> [i] class (Importer r i t, Tree s) => ImportExportStat r i t s importers :: ImportExportStat r i t s => s -> [t] class (MemberT' t'n t'd, WithMods m t'd, WithT'ParamClause m n p' t' b' pc' t'd) => Type'Def m n t'n p' t' b' pc' t'd bounds' :: Type'Def m n t'n p' t' b' pc' t'd => t'd -> b' module HaScalaM.Classes class (Init m n t' t ac i, Tree a) => Annot m n t' t ac i a init :: Annot m n t' t ac i a => a -> i class (WithParamClauses m n p t' t pc c, Ctor c) => Primary m n p t' t pc c mods :: Primary m n p t' t pc c => c -> [m] class (WithParamClauses m n p t' t pc c, Init m n t' t ac i, Stat s, Ctor c) => Secondary m n p t' t pc ac i s c class (Name n, Type' t', ArgClauseT m t ac, Tree i) => Init m n t' t ac i tpe :: Init m n t' t ac i => i -> t' name' :: Init m n t' t ac i => i -> n argClauses :: Init m n t' t ac i => i -> [ac] class Tree t => Lit t class (ParamClauseT' m n p' t' b' pc', ParamClauseT m n p t' t pc, Tree g) => ParamClauseGroup m n p p' t' b' t pc pc' g t'paramClause' :: ParamClauseGroup m n p p' t' b' t pc pc' g => g -> pc' paramClauses' :: ParamClauseGroup m n p p' t' b' t pc pc' g => g -> [pc] class (Name n, WithDeclTpeOpt t' p) => Self n t' p class (Stat s, Tree t) => Source s t stats' :: Source s t => t -> [s] class (Init m n t' t ac i, Stat s, Self n t' p, Tree e) => Template m n t' t ac i p s e early :: Template m n t' t ac i p s e => e -> [s] inits :: Template m n t' t ac i p s e => e -> [i] self :: Template m n t' t ac i p s e => e -> p stats :: Template m n t' t ac i p s e => e -> [s] derives :: Template m n t' t ac i p s e => e -> [t'] class (Primary m n p t' t pc c, Tree w) => WithCtor m n p t' t pc c w ctor :: WithCtor m n p t' t pc c w => w -> c class (Template m n t' t ac i p s e, Tree w) => WithTemplate m n t' t ac i p s e w templ :: WithTemplate m n t' t ac i p s e w => w -> e class (ParamClauseGroup m n p p' t' b' t pc pc' g, WithParamClauses m n p t' t pc w) => WithParamClauseGroup m n p p' t' b' t pc pc' g w paramClauseGroup :: WithParamClauseGroup m n p p' t' b' t pc pc' g w => w -> Maybe g class (ParamClauseGroup m n p p' t' b' t pc pc' g, Tree w) => WithParamClauseGroups m n p p' t' b' t pc pc' g w paramClauseGroups :: WithParamClauseGroups m n p p' t' b' t pc pc' g w => w -> [g] module HaScalaM.Types.Base data SmAnnotM m n t' t ac i [SmAnnotM] :: Init m n t' t ac i => i -> SmAnnotM m n t' t ac i data SmCtorSecondaryS m n p t' t pc ac i s [SmCtorSecondaryS] :: (ParamClauseT m n p t' t pc, Init m n t' t ac i, Stat s) => [m] -> n -> [pc] -> i -> [s] -> SmCtorSecondaryS m n p t' t pc ac i s data SmLit [SmBooleanL] :: Bool -> SmLit [SmByteL] :: Int8 -> SmLit [SmCharL] :: Char -> SmLit [SmDoubleL] :: Double -> SmLit [SmFloatL] :: Float -> SmLit [SmIntL] :: Int -> SmLit [SmLongL] :: Int64 -> SmLit [SmNullL] :: SmLit [SmShortL] :: Int16 -> SmLit [SmStringL] :: String -> SmLit [SmSymbolL] :: Symbol -> SmLit [SmUnitL] :: SmLit data SmModM [SmAbstractM] :: SmModM [SmCaseM] :: SmModM [SmCovariantM] :: Variant m => SmModM [SmContravariantM] :: Variant m => SmModM [SmErasedM] :: SmModM [SmFinalM] :: SmModM [SmImplicitM] :: ParamsType m => SmModM [SmInfixM] :: SmModM [SmInlineM] :: SmModM [SmLazyM] :: SmModM [SmOpaqueM] :: SmModM [SmOpenM] :: SmModM [SmOverrideM] :: SmModM [SmSealedM] :: SmModM [SmSuperM] :: SmModM [SmTransparentM] :: SmModM [SmUsingM] :: (ArgsType m, ParamsType m) => SmModM [SmValParamM] :: SmModM [SmVarParamM] :: SmModM data SmAccessM r [SmPrivateM] :: Ref r => r -> SmAccessM r [SmProtectedM] :: Ref r => r -> SmAccessM r data SmNameN [SmAnonymousN] :: SmNameN [SmIndeterminateN] :: String -> SmNameN [SmPlaceholderN] :: SmNameN [SmThisN] :: SmNameN newtype Symbol Symbol :: String -> Symbol [name] :: Symbol -> String module HaScalaM.Types.Enums data SmCaseGeneratorE p b [SmCaseGeneratorE] :: (Pat p, Term b) => p -> b -> SmCaseGeneratorE p b data SmGeneratorE p b [SmGeneratorE] :: (Pat p, Term b) => p -> b -> SmGeneratorE p b data SmGuardE b [SmGuardE] :: Term b => b -> SmGuardE b data SmValE p b [SmValE] :: (Pat p, Term b) => p -> b -> SmValE p b module HaScalaM.Types.Ref data SmRefT n t [SmApplyUnaryRT] :: (Name n, Term t) => n -> t -> SmRefT n t [SmSuperRT] :: Name n => n -> n -> SmRefT n t [SmThisRT] :: Name n => n -> SmRefT n t data SmAnonymousRT [SmAnonymousRT] :: SmAnonymousRT data SmSelectRT tn t [SmSelectRT] :: (Name tn, Term t) => t -> tn -> SmSelectRT tn t data SmRefT' t'n t' r [SmProjectRT'] :: (NameT' t'n, Type' t') => t' -> t'n -> SmRefT' t'n t' r [SmSelectRT'] :: (NameT' t'n, RefT r) => r -> t'n -> SmRefT' t'n t' r [SmSingletonRT'] :: RefT r => r -> SmRefT' t'n t' r module HaScalaM.Types.Pat data SmExtractP t p ac [SmExtractP] :: (Term t, Pat p, ArgClauseP p ac) => t -> ac -> SmExtractP t p ac data SmExtractInfixP tn p ac [SmExtractInfixP] :: (NameT tn, Pat p, ArgClauseP p ac) => p -> tn -> ac -> SmExtractInfixP tn p ac data SmMacroP t [SmMacroP] :: Term t => t -> SmMacroP t data SmTupleP p [SmTupleP] :: Pat p => [p] -> SmTupleP p data SmVarP tn [SmVarP] :: NameT tn => tn -> SmVarP tn module HaScalaM.Types.Stat data SmDef'S m n tn p p' t' b' t pc pc' g [SmDef'S] :: (NameT tn, ParamClauseGroup m n p p' t' b' t pc pc' g) => [m] -> tn -> [g] -> t' -> SmDef'S m n tn p p' t' b' t pc pc' g data SmGiven'S m n tn p p' t' b' t pc pc' g [SmGiven'S] :: (NameT tn, ParamClauseGroup m n p p' t' b' t pc pc' g) => [m] -> tn -> Maybe g -> t' -> SmGiven'S m n tn p p' t' b' t pc pc' g data SmType'S m n t'n p' t' b' pc' [SmType'S] :: (NameT' t'n, ParamClauseT' m n p' t' b' pc') => [m] -> t'n -> pc' -> b' -> SmType'S m n t'n p' t' b' pc' data SmVal'S m p t' [SmVal'S] :: (Mod m, Pat p, Type' t') => [m] -> [p] -> t' -> SmVal'S m p t' data SmVar'S m p t' [SmVar'S] :: (Mod m, Pat p, Type' t') => [m] -> [p] -> t' -> SmVar'S m p t' data SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e [SmClassS] :: (NameT' t'n, ParamClauseT' m n p' t' b' pc', Primary m n p t' t pc c, Template m n t' t ac i f s e) => [m] -> t'n -> pc' -> c -> e -> SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e data SmDefS m n tn p p' t' b' t pc pc' g [SmDefS] :: (NameT tn, ParamClauseGroup m n p p' t' b' t pc pc' g) => [m] -> tn -> [g] -> Maybe t' -> t -> SmDefS m n tn p p' t' b' t pc pc' g data SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e [SmEnumS] :: (NameT' t'n, ParamClauseT' m n p' t' b' pc', Primary m n p t' t pc c, Template m n t' t ac i f s e) => [m] -> t'n -> pc' -> c -> e -> SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e data SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i [SmEnumCaseS] :: (NameT tn, ParamClauseT' m n p' t' b' pc', Primary m n p t' t pc c, Init m n t' t ac i) => [m] -> tn -> pc' -> c -> [i] -> SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i data SmExtensionGroupS m n p p' t' b' t pc pc' s g [SmExtensionGroupS] :: (ParamClauseGroup m n p p' t' b' t pc pc' g, Stat s) => Maybe g -> s -> SmExtensionGroupS m n p p' t' b' t pc pc' s g data SmGivenS m n p p' t' b' t pc pc' ac i f s e g [SmGivenS] :: (ParamClauseGroup m n p p' t' b' t pc pc' g, Template m n t' t ac i f s e) => [m] -> n -> Maybe g -> e -> SmGivenS m n p p' t' b' t pc pc' ac i f s e g data SmGivenAliasS m n p p' t' b' t pc pc' g [SmGivenAliasS] :: ParamClauseGroup m n p p' t' b' t pc pc' g => [m] -> n -> Maybe g -> t' -> t -> SmGivenAliasS m n p p' t' b' t pc pc' g data SmMacroS m n tn p p' t' b' t pc pc' g [SmMacroS] :: (NameT tn, ParamClauseGroup m n p p' t' b' t pc pc' g) => [m] -> tn -> [g] -> Maybe t' -> t -> SmMacroS m n tn p p' t' b' t pc pc' g data SmObjectS m n tn t' t ac i f s e [SmObjectS] :: (NameT tn, Template m n t' t ac i f s e) => [m] -> tn -> e -> SmObjectS m n tn t' t ac i f s e data SmRepeatedEnumCase m tn [SmRepeatedEnumCase] :: (Mod m, NameT tn) => [m] -> [tn] -> SmRepeatedEnumCase m tn data SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e [SmTraitS] :: (NameT' t'n, ParamClauseT' m n p' t' b' pc', Primary m n p t' t pc c, Template m n t' t ac i f s e) => [m] -> t'n -> pc' -> c -> e -> SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e data SmTypeS m n t'n p' t' b' pc' [SmTypeS] :: (NameT' t'n, ParamClauseT' m n p' t' b' pc') => [m] -> t'n -> pc' -> t' -> b' -> SmTypeS m n t'n p' t' b' pc' data SmValS m p t' t [SmValS] :: (Mod m, Pat p, Type' t', Term t) => [m] -> [p] -> Maybe t' -> t -> SmValS m p t' t data SmVarS m p t' t [SmVarS] :: (Mod m, Pat p, Type' t', Term t) => [m] -> [p] -> Maybe t' -> t -> SmVarS m p t' t data SmImportExportStatS r i t [SmImportS] :: Importer r i t => [t] -> SmImportExportStatS r i t [SmExportS] :: Importer r i t => [t] -> SmImportExportStatS r i t data SmPkgS r s [SmPkgS] :: (RefT r, Stat s) => r -> [s] -> SmPkgS r s data SmPkgObjectS m n tn t' t ac i f s e [SmPkgObjectS] :: (NameT tn, Template m n t' t ac i f s e) => [m] -> tn -> e -> SmPkgObjectS m n tn t' t ac i f s e module HaScalaM.Types.Term data SmApplyT m t ac [SmApplyT] :: ArgClauseT m t ac => t -> ac -> SmApplyT m t ac [SmApplyUsingT] :: ArgClauseT m t ac => t -> ac -> SmApplyT m t ac data SmApplyInfixT m tn t t' ac' ac [SmApplyInfixT] :: (NameT tn, ArgClauseT' t' ac', ArgClauseT m t ac) => t -> tn -> ac' -> ac -> SmApplyInfixT m tn t t' ac' ac data SmApplyType'T t t' ac' [SmApplyType'T] :: (Term t, ArgClauseT' t' ac') => t -> ac' -> SmApplyType'T t t' ac' data SmAssignT t [SmAssignT] :: Term t => t -> t -> SmAssignT t data SmContextFunctionT m n p t' t pc [SmContextFunctionT] :: ParamClauseT m n p t' t pc => pc -> t -> SmContextFunctionT m n p t' t pc data SmDoT t [SmDoT] :: Term t => t -> t -> SmDoT t data SmForT e t [SmForT] :: (Enumerator e, Term t) => [e] -> t -> SmForT e t data SmForYieldT e t [SmForYieldT] :: (Enumerator e, Term t) => [e] -> t -> SmForYieldT e t data SmFunctionT m n p t' t pc [SmFunctionT] :: ParamClauseT m n p t' t pc => pc -> t -> SmFunctionT m n p t' t pc data SmMatchT p t ct [SmMatchT] :: Case p t ct => t -> [ct] -> SmMatchT p t ct data SmNewAnonymousT m n t' t ac i p s e [SmNewAnonymousT] :: Template m n t' t ac i p s e => e -> SmNewAnonymousT m n t' t ac i p s e data SmPartialFunctionT p t ct [SmPartialFunctionT] :: Case p t ct => [ct] -> SmPartialFunctionT p t ct data SmPolyFunctionT m n p' t' b' pc' t [SmPolyFunctionT] :: (ParamClauseT' m n p' t' b' pc', Term t) => pc' -> t -> SmPolyFunctionT m n p' t' b' pc' t data SmTryT p t ct [SmTryT] :: Case p t ct => t -> [ct] -> Maybe t -> SmTryT p t ct data SmTupleT t [SmTupleT] :: Term t => [t] -> SmTupleT t data SmWhileT t [SmWhileT] :: Term t => t -> t -> SmWhileT t module HaScalaM.Types.Type data SmApplyT' t' ac' [SmApplyT'] :: ArgClauseT' t' ac' => t' -> ac' -> SmApplyT' t' ac' data SmApplyInfixT' t'n t' [SmApplyInfixT'] :: (NameT' t'n, Type' t') => t' -> t'n -> t' -> SmApplyInfixT' t'n t' data SmContextFunctionT' t' [SmContextFunctionT'] :: Type' t' => FuncParamClause' t' -> t' -> SmContextFunctionT' t' data SmFunctionT' t' [SmFunctionT'] :: Type' t' => FuncParamClause' t' -> t' -> SmFunctionT' t' data SmLambdaT' m n p' t' b' pc' [SmLambdaT'] :: ParamClauseT' m n p' t' b' pc' => pc' -> t' -> SmLambdaT' m n p' t' b' pc' data SmMacroT' t [SmMacroT'] :: Term t => t -> SmMacroT' t data SmMatchT' t' ct [SmMatchT'] :: Type'Case t' ct => t' -> [ct] -> SmMatchT' t' ct data SmPolyFunctionT' m n p' t' b' pc' [SmPolyFunctionT'] :: ParamClauseT' m n p' t' b' pc' => pc' -> t' -> SmPolyFunctionT' m n p' t' b' pc' data SmTupleT' t' [SmTupleT'] :: Type' t' => [t'] -> SmTupleT' t' data SmVarT' t'n [SmVarT'] :: NameT' t'n => t'n -> SmVarT' t'n module HaScalaM.Types.Tilde data SmCaseCT p t [SmCaseC] :: (p ~ SmPat, t ~ SmTerm, Pat p, Term t) => p -> Maybe t -> t -> SmCaseCT p t data SmType'CaseCT t' [SmType'CaseT'C] :: (t' ~ SmType', Type' t') => t' -> t' -> SmType'CaseCT t' data SmCtorPrimary m n p t' t pc [SmCtorPrimary] :: (m ~ SmMod, n ~ SmName, p ~ SmParamT m n t' t, pc ~ SmParamClauseT m n p t' t, ParamClauseT m n p t' t pc) => [m] -> n -> [pc] -> SmCtorPrimary m n p t' t pc data SmEnumerator [ECaseGenerator] :: (p ~ SmPat, b ~ SmTerm, Pat p, Term b) => SmCaseGeneratorE p b -> SmEnumerator [EGenerator] :: (p ~ SmPat, b ~ SmTerm, Pat p, Term b) => SmGeneratorE p b -> SmEnumerator [EGuard] :: (b ~ SmTerm, Term b) => SmGuardE b -> SmEnumerator [EVal] :: (p ~ SmPat, b ~ SmTerm, Pat p, Term b) => SmValE p b -> SmEnumerator data SmImportee [SmGivenI] :: (t' ~ SmType', Type' t') => t' -> SmImportee [SmGivenAllI] :: SmImportee [SmNameI] :: (n ~ SmName, Name n) => n -> SmImportee [SmRenameI] :: (n ~ SmName, Name n) => n -> n -> SmImportee [SmUnimportI] :: (n ~ SmName, Name n) => n -> SmImportee [SmWildcardI] :: SmImportee data SmImporter r i [SmImporter] :: (r ~ SmRef, i ~ SmImportee, RefT r, Importee i) => r -> [i] -> SmImporter r i data SmInit m n t' t ac [SmInit] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, Name n, Type' t', ArgClauseT m t ac) => t' -> n -> [ac] -> SmInit m n t' t ac data SmMod [MAnnot] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, Init m n t' t ac i) => SmAnnotM m n t' t ac i -> SmMod [MMod] :: SmModM -> SmMod [MAccess] :: (r ~ SmRef_, Ref r) => SmAccessM r -> SmMod data SmName [NAnonymous] :: SmAnonymousRT -> SmName [NName] :: SmNameN -> SmName [NTName] :: SmNameT -> SmName [NT'Name] :: SmNameT' -> SmName data SmNameT [SmNameT] :: String -> SmNameT data SmNameT' [SmNameT'] :: String -> SmNameT' data SmParamClauseGroup m n p p' t' b' t pc pc' [SmParamClauseGroup] :: (m ~ SmMod, n ~ SmName, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', ParamClauseT' m n p' t' b' pc', ParamClauseT m n p t' t pc) => pc' -> [pc] -> SmParamClauseGroup m n p p' t' b' t pc pc' data SmPatP [SmAlternativeP] :: (p ~ SmPat, Pat p) => p -> p -> SmPatP [SmBindP] :: (p ~ SmPat, Pat p) => p -> p -> SmPatP [SmGivenP] :: (t' ~ SmType', Type' t') => t' -> SmPatP [SmInterpolateP] :: (tn ~ SmNameT, l ~ SmLit, p ~ SmPat, NameT tn, Lit l, Pat p) => tn -> [l] -> [p] -> SmPatP [SmNameP] :: (tn ~ SmNameT, NameT tn) => tn -> SmPatP [SmRepeatedP] :: (tn ~ SmNameT, NameT tn) => tn -> SmPatP [SmSelectP] :: (tn ~ SmNameT, t ~ SmTerm, NameT tn, Term t) => SmSelectRT tn t -> SmPatP [SmSeqWildcardP] :: SmPatP [SmTypedP] :: (p ~ SmPat, t' ~ SmType', Type' t', Pat p, Type' t') => p -> t' -> SmPatP [SmWildcardP] :: SmPatP [SmXmlP] :: (l ~ SmLit, p ~ SmPat, Lit l, Pat p) => [l] -> [p] -> SmPatP data SmPat [PExtract] :: (t ~ SmTerm, p ~ SmPat, ac ~ SmArgClauseP p, Term t, Pat p, ArgClauseP p ac) => SmExtractP t p ac -> SmPat [PExtractInfix] :: (tn ~ SmNameT, p ~ SmPat, ac ~ SmArgClauseP p, NameT tn, Pat p, ArgClauseP p ac) => SmExtractInfixP tn p ac -> SmPat [PLit] :: SmLit -> SmPat [PMacro] :: (t ~ SmTerm, Term t) => SmMacroP t -> SmPat [PPat] :: SmPatP -> SmPat [PTuple] :: (p ~ SmPat, Pat p) => SmTupleP p -> SmPat [PVar] :: (tn ~ SmNameT, NameT tn) => SmVarP tn -> SmPat data SmArgClauseP p [SmArgClauseP] :: (p ~ SmPat, Pat p) => [p] -> SmArgClauseP p data SmRef_ [RImportee] :: SmImportee -> SmRef_ [RInit] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, Name n, Type' t', ArgClauseT m t ac) => SmInit m n t' t ac -> SmRef_ [RName] :: SmName -> SmRef_ [R_TRef] :: SmRef -> SmRef_ [R_T'Ref] :: SmRef' -> SmRef_ data SmRef [RTAnonymous] :: SmAnonymousRT -> SmRef [RTName] :: SmNameT -> SmRef [RTRef] :: (n ~ SmNameT, t ~ SmTerm) => SmRefT n t -> SmRef [RTSelect] :: (tn ~ SmNameT, t ~ SmTerm, Name tn, Term t) => SmSelectRT tn t -> SmRef data SmRef' [RT'Name] :: SmNameT' -> SmRef' [RT'Ref] :: (t'n ~ SmNameT', t' ~ SmType', r ~ SmRef) => SmRefT' t'n t' r -> SmRef' data SmSelf n t' [SmSelf] :: (n ~ SmName, t' ~ SmType', Name n, Type' t') => n -> Maybe t' -> SmSelf n t' data SmStat [S''] :: String -> SmStat [SCtorSecondary] :: (m ~ SmMod, n ~ SmName, p ~ SmParamT m n t' t, t' ~ SmType', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, s ~ SmStat, ParamClauseT m n p t' t pc, Init m n t' t ac i, Stat s) => SmCtorSecondaryS m n p t' t pc ac i s -> SmStat [SDef'] :: (m ~ SmMod, n ~ SmName, tn ~ SmNameT, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', g ~ SmParamClauseGroup m n p p' t' b' t pc pc', NameT tn, ParamClauseGroup m n p p' t' b' t pc pc' g) => SmDef'S m n tn p p' t' b' t pc pc' g -> SmStat [SGiven'] :: (m ~ SmMod, n ~ SmName, tn ~ SmNameT, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', g ~ SmParamClauseGroup m n p p' t' b' t pc pc', NameT tn, ParamClauseGroup m n p p' t' b' t pc pc' g) => SmGiven'S m n tn p p' t' b' t pc pc' g -> SmStat [SType'] :: (m ~ SmMod, n ~ SmName, t'n ~ SmNameT', p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', pc' ~ SmParamClauseT' m n p' t' b', NameT' t'n, ParamClauseT' m n p' t' b' pc') => SmType'S m n t'n p' t' b' pc' -> SmStat [SVal'] :: (m ~ SmMod, p ~ SmPat, t' ~ SmType', Mod m, Pat p, Type' t') => SmVal'S m p t' -> SmStat [SVar'] :: (m ~ SmMod, p ~ SmPat, t' ~ SmType', Mod m, Pat p, Type' t') => SmVar'S m p t' -> SmStat [SClass] :: (m ~ SmMod, n ~ SmName, t'n ~ SmNameT', p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', c ~ SmCtorPrimary m n p t' t pc, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, f ~ SmSelf n t', s ~ SmStat, e ~ SmTemplate m n t' t ac i f s, NameT' t'n, ParamClauseT' m n p' t' b' pc', Primary m n p t' t pc c, Template m n t' t ac i f s e) => SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e -> SmStat [SDef] :: (m ~ SmMod, n ~ SmName, tn ~ SmNameT, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', g ~ SmParamClauseGroup m n p p' t' b' t pc pc', NameT tn, ParamClauseGroup m n p p' t' b' t pc pc' g) => SmDefS m n tn p p' t' b' t pc pc' g -> SmStat [SEnum] :: (m ~ SmMod, n ~ SmName, t'n ~ SmNameT', p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', c ~ SmCtorPrimary m n p t' t pc, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, f ~ SmSelf n t', s ~ SmStat, e ~ SmTemplate m n t' t ac i f s, NameT' t'n, ParamClauseT' m n p' t' b' pc', Primary m n p t' t pc c, Template m n t' t ac i f s e) => SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e -> SmStat [SEnumCase] :: (m ~ SmMod, n ~ SmName, tn ~ SmNameT, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', c ~ SmCtorPrimary m n p t' t pc, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, NameT tn, ParamClauseT' m n p' t' b' pc', Primary m n p t' t pc c, Init m n t' t ac i) => SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i -> SmStat [SExtensionGroup] :: (m ~ SmMod, n ~ SmName, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', s ~ SmStat, g ~ SmParamClauseGroup m n p p' t' b' t pc pc', ParamClauseGroup m n p p' t' b' t pc pc' g, Stat s) => SmExtensionGroupS m n p p' t' b' t pc pc' s g -> SmStat [SGiven] :: (m ~ SmMod, n ~ SmName, tn ~ SmNameT, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', g ~ SmParamClauseGroup m n p p' t' b' t pc pc', ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, f ~ SmSelf n t', s ~ SmStat, e ~ SmTemplate m n t' t ac i f s, ParamClauseGroup m n p p' t' b' t pc pc' g, Template m n t' t ac i f s e) => SmGivenS m n p p' t' b' t pc pc' ac i f s e g -> SmStat [SImpExp] :: (r ~ SmRef, i ~ SmImportee, t ~ SmImporter r i, Importer r i t) => SmImportExportStatS r i t -> SmStat [SGivenAlias] :: (m ~ SmMod, n ~ SmName, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', g ~ SmParamClauseGroup m n p p' t' b' t pc pc', ParamClauseGroup m n p p' t' b' t pc pc' g) => SmGivenAliasS m n p p' t' b' t pc pc' g -> SmStat [SMacro] :: (m ~ SmMod, n ~ SmName, tn ~ SmNameT, p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', g ~ SmParamClauseGroup m n p p' t' b' t pc pc', NameT tn, ParamClauseGroup m n p p' t' b' t pc pc' g) => SmMacroS m n tn p p' t' b' t pc pc' g -> SmStat [SObject] :: (m ~ SmMod, n ~ SmName, tn ~ SmNameT, p ~ SmParamT m n t' t, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, f ~ SmSelf n t', s ~ SmStat, e ~ SmTemplate m n t' t ac i f s, NameT tn, Template m n t' t ac i f s e) => SmObjectS m n tn t' t ac i f s e -> SmStat [SPkg] :: (r ~ SmRef, s ~ SmStat, RefT r, Stat s) => SmPkgS r s -> SmStat [SPkgObject] :: (m ~ SmMod, n ~ SmName, tn ~ SmNameT, p ~ SmParamT m n t' t, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, f ~ SmSelf n t', s ~ SmStat, e ~ SmTemplate m n t' t ac i f s, NameT tn, Template m n t' t ac i f s e) => SmPkgObjectS m n tn t' t ac i f s e -> SmStat [SRepeatedEnumCase] :: (m ~ SmMod, tn ~ SmNameT, Mod m, NameT tn) => SmRepeatedEnumCase m tn -> SmStat [STerm] :: SmTerm -> SmStat [STrait] :: (m ~ SmMod, n ~ SmName, t'n ~ SmNameT', p ~ SmParamT m n t' t, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, pc' ~ SmParamClauseT' m n p' t' b', c ~ SmCtorPrimary m n p t' t pc, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, f ~ SmSelf n t', s ~ SmStat, e ~ SmTemplate m n t' t ac i f s, NameT' t'n, ParamClauseT' m n p' t' b' pc', Primary m n p t' t pc c, Template m n t' t ac i f s e) => SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e -> SmStat [SType] :: (m ~ SmMod, n ~ SmName, t'n ~ SmNameT', p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', pc' ~ SmParamClauseT' m n p' t' b', NameT' t'n, ParamClauseT' m n p' t' b' pc') => SmTypeS m n t'n p' t' b' pc' -> SmStat [SVal] :: (m ~ SmMod, p ~ SmPat, t' ~ SmType', t ~ SmTerm, Mod m, Pat p, Type' t', Term t) => SmValS m p t' t -> SmStat [SVar] :: (m ~ SmMod, p ~ SmPat, t' ~ SmType', t ~ SmTerm, Mod m, Pat p, Type' t', Term t) => SmVarS m p t' t -> SmStat data SmSource s [SmSource] :: (s ~ SmStat, Stat s) => [s] -> SmSource s data SmTemplate m n t' t ac i p s [SmTemplate] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, s ~ SmStat, p ~ SmSelf n t', Init m n t' t ac i, Stat s, Self n t' p) => [s] -> [i] -> p -> [s] -> [t'] -> SmTemplate m n t' t ac i p s data SmTermT [SmAnnotateT] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, n ~ SmName, a ~ SmAnnotM m n t' t ac i, Annot m n t' t ac i a) => t -> [a] -> SmTermT [SmAnonymousFunctionT] :: (t ~ SmTerm, Term t) => t -> SmTermT [SmAscribeT] :: (t ~ SmTerm, t' ~ SmType', Term t, Type' t') => t -> t' -> SmTermT [SmBlockT] :: (s ~ SmStat, Stat s) => [s] -> SmTermT [SmEndMarkerT] :: (tn ~ SmNameT, NameT tn) => tn -> SmTermT [SmEtaT] :: (t ~ SmTerm, Term t) => t -> SmTermT [SmIfT] :: (m ~ SmMod, t ~ SmTerm, Mod m, Term t) => t -> t -> t -> [m] -> SmTermT [SmInterpolateT] :: (tn ~ SmNameT, l ~ SmLit, t ~ SmTerm, NameT tn, Lit l, Term t) => tn -> [l] -> [t] -> SmTermT [SmNewT] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, Init m n t' t ac i) => i -> SmTermT [SmPlaceholder] :: SmTermT [SmQuotedMacroExprT] :: (t ~ SmTerm, Term t) => t -> SmTermT [SmQuotedMacroType'T] :: (t' ~ SmType', Type' t') => t' -> SmTermT [SmRepeatedT] :: (t ~ SmTerm, Term t) => t -> SmTermT [SmReturnT] :: (t ~ SmTerm, Term t) => t -> SmTermT [SmSplicedMacroExprT] :: (t ~ SmTerm, Term t) => t -> SmTermT [SmSplicedMacroPatT] :: (p ~ SmPat, Pat p) => p -> SmTermT [SmThrowT] :: (t ~ SmTerm, Term t) => t -> SmTermT [SmTryWithHandlerT] :: (t ~ SmTerm, Term t) => t -> t -> t -> SmTermT [SmXmlT] :: (l ~ SmLit, t ~ SmTerm, Lit l, Term t) => [l] -> [t] -> SmTermT data SmTerm [T''] :: String -> SmTerm [TApply] :: (m ~ SmMod, t ~ SmTerm, ac ~ SmArgClauseT m t, ArgClauseT m t ac) => SmApplyT m t ac -> SmTerm [TApplyInfix] :: (m ~ SmMod, tn ~ SmNameT, t' ~ SmType', t ~ SmTerm, ac' ~ SmArgClauseT' t', ac ~ SmArgClauseT m t, NameT tn, ArgClauseT' t' ac', ArgClauseT m t ac) => SmApplyInfixT m tn t t' ac' ac -> SmTerm [TApplyType'] :: (t ~ SmTerm, t' ~ SmType', ac' ~ SmArgClauseT' t', Term t, ArgClauseT' t' ac') => SmApplyType'T t t' ac' -> SmTerm [TAssign] :: (t ~ SmTerm, Term t) => SmAssignT t -> SmTerm [TContextFunction] :: (m ~ SmMod, n ~ SmName, p ~ SmParamT m n t' t, t' ~ SmType', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, ParamClauseT m n p t' t pc) => SmContextFunctionT m n p t' t pc -> SmTerm [TDo] :: (t ~ SmTerm, Term t) => SmDoT t -> SmTerm [TFor] :: (e ~ SmEnumerator, t ~ SmTerm, Enumerator e, Term t) => SmForT e t -> SmTerm [TForYield] :: (e ~ SmEnumerator, t ~ SmTerm, Enumerator e, Term t) => SmForYieldT e t -> SmTerm [TFunction] :: (m ~ SmMod, n ~ SmName, p ~ SmParamT m n t' t, t' ~ SmType', t ~ SmTerm, pc ~ SmParamClauseT m n p t' t, ParamClauseT m n p t' t pc) => SmFunctionT m n p t' t pc -> SmTerm [TLit] :: SmLit -> SmTerm [TMatch] :: (p ~ SmPat, t ~ SmTerm, ct ~ SmCaseCT p t, Case p t ct) => SmMatchT p t ct -> SmTerm [TNewAnonymous] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', t ~ SmTerm, ac ~ SmArgClauseT m t, i ~ SmInit m n t' t ac, p ~ SmSelf n t', s ~ SmStat, e ~ SmTemplate m n t' t ac i p s, Template m n t' t ac i p s e) => SmNewAnonymousT m n t' t ac i p s e -> SmTerm [TPartialFunction] :: (p ~ SmPat, t ~ SmTerm, ct ~ SmCaseCT p t, Case p t ct) => SmPartialFunctionT p t ct -> SmTerm [TPolyFunction] :: (m ~ SmMod, n ~ SmName, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', pc' ~ SmParamClauseT' m n p' t' b', t ~ SmTerm, ParamClauseT' m n p' t' b' pc', Term t) => SmPolyFunctionT m n p' t' b' pc' t -> SmTerm [TRef] :: SmRef -> SmTerm [TTerm] :: SmTermT -> SmTerm [TTry] :: (p ~ SmPat, t ~ SmTerm, ct ~ SmCaseCT p t, Case p t ct) => SmTryT p t ct -> SmTerm [TTuple] :: (t ~ SmTerm, Term t) => SmTupleT t -> SmTerm [TWhile] :: (t ~ SmTerm, Term t) => SmWhileT t -> SmTerm data SmArgClauseT m t [SmArgClauseT] :: (m ~ SmMod, t ~ SmTerm, ArgsType m, Term t) => [t] -> Maybe m -> SmArgClauseT m t data SmParamT m n t' t [SmParamT] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', t ~ SmTerm, Mod m, Name n, Type' t', Term t) => [m] -> n -> Maybe t' -> Maybe t -> SmParamT m n t' t data SmParamClauseT m n p t' t [SmParamClauseT] :: (p ~ SmParamT m n t' t, ParamsType m, ParamT m n p t' t) => [p] -> Maybe m -> SmParamClauseT m n p t' t data SmType'T' [SmAndT'] :: (t' ~ SmType', Type' t') => t' -> t' -> SmType'T' [SmAnnotateT'] :: (m ~ SmMod, n ~ SmName, t' ~ SmType', ac ~ SmArgClauseT m t, a ~ SmAnnotM m n t' t ac i, i ~ SmInit m n t' t ac, Annot m n t' t ac i a) => t' -> [a] -> SmType'T' [SmAnonymousLambdaT'] :: (t' ~ SmType', Type' t') => t' -> SmType'T' [SmAnonymousNameT'] :: SmType'T' [SmAnonymousParamT'] :: (m ~ SmMod, Variant m) => Maybe m -> SmType'T' [SmBlockT'] :: (m ~ SmMod, n ~ SmName, t'n ~ SmNameT', p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', pc' ~ SmParamClauseT' m n p' t' b', t'd ~ SmType'Def m n t'n p' t' b' pc', Type'Def m n t'n p' t' b' pc' t'd) => [t'd] -> t' -> SmType'T' [SmByNameT'] :: (t' ~ SmType', Type' t') => t' -> SmType'T' [SmExistentialT'] :: (t' ~ SmType', s ~ SmStat, Type' t', Stat s) => t' -> [s] -> SmType'T' [SmImplicitFunctionT'] :: (t' ~ SmType', Type' t') => [t'] -> t' -> SmType'T' [SmMethodT'] :: (m ~ SmMod, n ~ SmName, p ~ SmParamT m n t' t, t ~ SmTerm, t' ~ SmType', pc ~ SmParamClauseT m n p t' t, ParamClauseT m n p t' t pc) => [pc] -> t' -> SmType'T' [SmOrT'] :: (t' ~ SmType', Type' t') => t' -> t' -> SmType'T' [SmRefineT'] :: (t' ~ SmType', s ~ SmStat, Type' t', Stat s) => Maybe t' -> [s] -> SmType'T' [SmRepeatedT'] :: (t' ~ SmType', Type' t') => t' -> SmType'T' [SmPatWildcardT'] :: SmType'T' [SmWithT'] :: (t' ~ SmType', Type' t') => t' -> t' -> SmType'T' [SmWildcardT'] :: (t' ~ SmType', b' ~ SmBounds' t', Type' t', Bounds' t' b') => b' -> SmType'T' data SmType' [T'Apply] :: (n ~ SmName, t' ~ SmType', ac' ~ SmArgClauseT' t', ArgClauseT' t' ac') => SmApplyT' t' ac' -> SmType' [T'ApplyInfix] :: (t'n ~ SmNameT', t' ~ SmType', NameT' t'n, Type' t') => SmApplyInfixT' t'n t' -> SmType' [T'ContextFunction] :: (t' ~ SmType', Type' t') => SmContextFunctionT' t' -> SmType' [T'Function] :: (t' ~ SmType', Type' t') => SmFunctionT' t' -> SmType' [T'Lambda] :: (m ~ SmMod, n ~ SmName, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', pc' ~ SmParamClauseT' m n p' t' b', ParamClauseT' m n p' t' b' pc') => SmLambdaT' m n p' t' b' pc' -> SmType' [T'Lit] :: SmLit -> SmType' [T'Macro] :: (t ~ SmTerm, Term t) => SmMacroT' t -> SmType' [T'Match] :: (t' ~ SmType', ct ~ SmType'CaseCT t', Type'Case t' ct) => SmMatchT' t' ct -> SmType' [T'PolyFunction] :: (m ~ SmMod, n ~ SmName, p' ~ SmParamT' m n t' b', t' ~ SmType', b' ~ SmBounds' t', pc' ~ SmParamClauseT' m n p' t' b', ParamClauseT' m n p' t' b' pc') => SmPolyFunctionT' m n p' t' b' pc' -> SmType' [T'Ref] :: SmRef' -> SmType' [T'Tuple] :: (t' ~ SmType', Type' t') => SmTupleT' t' -> SmType' [T'Type'] :: SmType'T' -> SmType' [T'Var] :: (t'n ~ SmNameT', NameT' t'n) => SmVarT' t'n -> SmType' data SmArgClauseT' t' [SmArgClauseT'] :: (t' ~ SmType', Type' t') => [t'] -> SmArgClauseT' t' data SmBounds' t' [SmBounds'] :: (t' ~ SmType', Type' t') => Maybe t' -> Maybe t' -> SmBounds' t' data SmType'Def m n t'n p' t' b' pc' [T'DType'] :: SmType'S m n t'n p' t' b' pc' -> SmType'Def m n t'n p' t' b' pc' [T'DType] :: SmTypeS m n t'n p' t' b' pc' -> SmType'Def m n t'n p' t' b' pc' data SmParamT' m n t' b' [SmParamT'] :: (n ~ SmName, p' ~ SmParamT' m n t' b', pc' ~ SmParamClauseT' m n p' t' b', Mod m, Name n, Bounds' t' b') => [m] -> n -> pc' -> b' -> [t'] -> [t'] -> SmParamT' m n t' b' data SmParamClauseT' m n p' t' b' [SmParamClauseT'] :: (p' ~ SmParamT' m n t' b', Mod m, Name n, Bounds' t' b') => [p'] -> SmParamClauseT' m n p' t' b' module HaScalaM.Instances.Tilde instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmCtorPrimary m n p t' t pc) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Base.Ctor (HaScalaM.Types.Tilde.SmCtorPrimary m n p t' t pc) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Tilde.SmCtorPrimary m n p t' t pc) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, pc GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT m n p t' t, HaScalaM.Classes.Term.ParamClauseT m n p t' t pc) => HaScalaM.Classes.Primary m n p t' t pc (HaScalaM.Types.Tilde.SmCtorPrimary m n p t' t pc) instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmMod instance HaScalaM.Classes.Base.Mod HaScalaM.Types.Tilde.SmMod instance HaScalaM.Classes.Base.ArgsType HaScalaM.Types.Tilde.SmMod instance HaScalaM.Classes.Base.ParamsType HaScalaM.Types.Tilde.SmMod instance HaScalaM.Classes.Base.Variant HaScalaM.Types.Tilde.SmMod instance (HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Term.ParamClauseT m n p t' t pc) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc') instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t, p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b', t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', b' GHC.Types.~ HaScalaM.Types.Tilde.SmBounds' t', t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, pc GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT m n p t' t, pc' GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b', HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Term.ParamClauseT m n p t' t pc) => HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' (HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc') instance (HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmSelf n t') instance (HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Base.Member n (HaScalaM.Types.Tilde.SmSelf n t') instance (HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Type.WithDeclTpeOpt t' (HaScalaM.Types.Tilde.SmSelf n t') instance (n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Self n t' (HaScalaM.Types.Tilde.SmSelf n t') instance HaScalaM.Classes.Base.Stat s => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmSource s) instance (s GHC.Types.~ HaScalaM.Types.Tilde.SmStat, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Source s (HaScalaM.Types.Tilde.SmSource s) instance (HaScalaM.Classes.Init m n t' t ac i, HaScalaM.Classes.Base.Stat s, HaScalaM.Classes.Self n t' p) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmTemplate m n t' t ac i p s) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, ac GHC.Types.~ HaScalaM.Types.Tilde.SmArgClauseT m t, i GHC.Types.~ HaScalaM.Types.Tilde.SmInit m n t' t ac, s GHC.Types.~ HaScalaM.Types.Tilde.SmStat, p GHC.Types.~ HaScalaM.Types.Tilde.SmSelf n t', HaScalaM.Classes.Init m n t' t ac i, HaScalaM.Classes.Base.Stat s, HaScalaM.Classes.Self n t' p) => HaScalaM.Classes.Template m n t' t ac i p s (HaScalaM.Types.Tilde.SmTemplate m n t' t ac i p s) module HaScalaM.Instances.Term instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmCaseCT p t) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Tilde.SmCaseCT p t) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.CaseTree p t (HaScalaM.Types.Tilde.SmCaseCT p t) instance (p GHC.Types.~ HaScalaM.Types.Tilde.SmPat, t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Term.Case p t (HaScalaM.Types.Tilde.SmCaseCT p t) instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmTerm instance HaScalaM.Classes.Term.Term HaScalaM.Types.Tilde.SmTerm instance HaScalaM.Classes.Term.ArgClauseT m t ac => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmApplyT m t ac) instance HaScalaM.Classes.Term.ArgClauseT m t ac => HaScalaM.Classes.Base.Apply t t ac (HaScalaM.Types.Term.SmApplyT m t ac) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ArgClauseT' t' ac', HaScalaM.Classes.Term.ArgClauseT m t ac) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmApplyInfixT m tn t t' ac' ac) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ArgClauseT' t' ac', HaScalaM.Classes.Term.ArgClauseT m t ac) => HaScalaM.Classes.Base.Infix t tn ac (HaScalaM.Types.Term.SmApplyInfixT m tn t t' ac' ac) instance (HaScalaM.Classes.Term.Term t, HaScalaM.Classes.Type.ArgClauseT' t' ac') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmApplyType'T t t' ac') instance (HaScalaM.Classes.Term.Term t, HaScalaM.Classes.Type.ArgClauseT' t' ac') => HaScalaM.Classes.Base.Apply t t' ac' (HaScalaM.Types.Term.SmApplyType'T t t' ac') instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmAssignT t) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Term.SmAssignT t) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmContextFunctionT m n p t' t pc) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Term.SmContextFunctionT m n p t' t pc) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Base.Function p pc t (HaScalaM.Types.Term.SmContextFunctionT m n p t' t pc) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmDoT t) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Term.SmDoT t) instance (HaScalaM.Classes.Enums.Enumerator e, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmForT e t) instance (HaScalaM.Classes.Enums.Enumerator e, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Term.SmForT e t) instance (HaScalaM.Classes.Enums.Enumerator e, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Enums.WithEnums e (HaScalaM.Types.Term.SmForT e t) instance (HaScalaM.Classes.Enums.Enumerator e, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmForYieldT e t) instance (HaScalaM.Classes.Enums.Enumerator e, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Term.SmForYieldT e t) instance (HaScalaM.Classes.Enums.Enumerator e, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Enums.WithEnums e (HaScalaM.Types.Term.SmForYieldT e t) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmFunctionT m n p t' t pc) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Term.SmFunctionT m n p t' t pc) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Base.Function p pc t (HaScalaM.Types.Term.SmFunctionT m n p t' t pc) instance HaScalaM.Classes.Term.ParamClauseT m n p t' t pc => HaScalaM.Classes.Term.FunctionT m n p pc t' t (HaScalaM.Types.Term.SmFunctionT m n p t' t pc) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term t, HaScalaM.Classes.Term.Case p t ct) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmMatchT p t ct) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term t, HaScalaM.Classes.Term.Case p t ct) => HaScalaM.Classes.Base.WithCases p t ct (HaScalaM.Types.Term.SmMatchT p t ct) instance HaScalaM.Classes.Template m n t' t ac i p s e => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmNewAnonymousT m n t' t ac i p s e) instance HaScalaM.Classes.Template m n t' t ac i p s e => HaScalaM.Classes.WithTemplate m n t' t ac i p s e (HaScalaM.Types.Term.SmNewAnonymousT m n t' t ac i p s e) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term t, HaScalaM.Classes.Term.Case p t ct) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmPartialFunctionT p t ct) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term t, HaScalaM.Classes.Term.Case p t ct) => HaScalaM.Classes.Base.WithCases p t ct (HaScalaM.Types.Term.SmPartialFunctionT p t ct) instance (HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmPolyFunctionT m n p' t' b' pc' t) instance (HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Term.SmPolyFunctionT m n p' t' b' pc' t) instance (HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Function p' pc' t (HaScalaM.Types.Term.SmPolyFunctionT m n p' t' b' pc' t) instance (HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Term.SmPolyFunctionT m n p' t' b' pc' t) instance HaScalaM.Classes.Term.Case p t ct => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmTryT p t ct) instance HaScalaM.Classes.Term.Case p t ct => HaScalaM.Classes.Base.WithCases p t ct (HaScalaM.Types.Term.SmTryT p t ct) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmTupleT t) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.Tuple t (HaScalaM.Types.Term.SmTupleT t) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Term.SmWhileT t) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Term.SmWhileT t) instance (HaScalaM.Classes.Base.ArgsType m, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmArgClauseT m t) instance (t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, HaScalaM.Classes.Base.ArgsType m, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.SyntaxValuesClauses t (HaScalaM.Types.Tilde.SmArgClauseT m t) instance (t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, HaScalaM.Classes.Base.ArgsType m, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.ArgClause t (HaScalaM.Types.Tilde.SmArgClauseT m t) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, HaScalaM.Classes.Base.ArgsType m, HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Term.ArgClauseT m t (HaScalaM.Types.Tilde.SmArgClauseT m t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmParamT m n t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Member n (HaScalaM.Types.Tilde.SmParamT m n t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Param m n (HaScalaM.Types.Tilde.SmParamT m n t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Type.WithDeclTpeOpt t' (HaScalaM.Types.Tilde.SmParamT m n t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Term.ParamT m n (HaScalaM.Types.Tilde.SmParamT m n t' t) t' t instance (p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t, HaScalaM.Classes.Base.ParamsType m, HaScalaM.Classes.Term.ParamT m n p t' t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmParamClauseT m n p t' t) instance (p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t, HaScalaM.Classes.Base.ParamsType m, HaScalaM.Classes.Term.ParamT m n p t' t) => HaScalaM.Classes.Base.SyntaxValuesClauses p (HaScalaM.Types.Tilde.SmParamClauseT m n p t' t) instance (p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t, HaScalaM.Classes.Base.ParamsType m, HaScalaM.Classes.Term.ParamT m n p t' t) => HaScalaM.Classes.Base.ParamClause m n p (HaScalaM.Types.Tilde.SmParamClauseT m n p t' t) instance (p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t, HaScalaM.Classes.Base.ParamsType m, HaScalaM.Classes.Term.ParamT m n p t' t) => HaScalaM.Classes.Term.ParamClauseT m n p t' t (HaScalaM.Types.Tilde.SmParamClauseT m n p t' t) module HaScalaM.Instances.Stat.Defn instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.Member t'n (HaScalaM.Types.Stat.SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Type.MemberT' t'n (HaScalaM.Types.Stat.SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Stat.SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.WithCtor m n p t' t pc c (HaScalaM.Types.Stat.SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.WithTemplate m n t' t ac i f s e (HaScalaM.Types.Stat.SmClassS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.Member tn (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.MemberT tn (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.WithParamClauseGroup m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.WithParamClauseGroups m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Type.WithDeclTpeOpt t' (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Stat.SmDefS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.Member t'n (HaScalaM.Types.Stat.SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Type.MemberT' t'n (HaScalaM.Types.Stat.SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Stat.SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.WithCtor m n p t' t pc c (HaScalaM.Types.Stat.SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.WithTemplate m n t' t ac i f s e (HaScalaM.Types.Stat.SmEnumS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Init m n t' t ac i) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Init m n t' t ac i) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Init m n t' t ac i) => HaScalaM.Classes.Base.Member tn (HaScalaM.Types.Stat.SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Init m n t' t ac i) => HaScalaM.Classes.Term.MemberT tn (HaScalaM.Types.Stat.SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Init m n t' t ac i) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Init m n t' t ac i) => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Stat.SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Init m n t' t ac i) => HaScalaM.Classes.WithCtor m n p t' t pc c (HaScalaM.Types.Stat.SmEnumCaseS m n tn p p' t' b' t pc pc' c ac i) instance (HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmExtensionGroupS m n p p' t' b' t pc pc' s g) instance (HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmExtensionGroupS m n p p' t' b' t pc pc' s g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Stat.SmExtensionGroupS m n p p' t' b' t pc pc' s g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.WithParamClauseGroup m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmExtensionGroupS m n p p' t' b' t pc pc' s g) instance (HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Base.WithBody s (HaScalaM.Types.Stat.SmExtensionGroupS m n p p' t' b' t pc pc' s g) instance HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmGivenAliasS m n p p' t' b' t pc pc' g) instance HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmGivenAliasS m n p p' t' b' t pc pc' g) instance HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmGivenAliasS m n p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Stat.SmGivenAliasS m n p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.WithParamClauseGroup m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmGivenAliasS m n p p' t' b' t pc pc' g) instance HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g => HaScalaM.Classes.Type.WithDeclTpe t' (HaScalaM.Types.Stat.SmGivenAliasS m n p p' t' b' t pc pc' g) instance HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Stat.SmGivenAliasS m n p p' t' b' t pc pc' g) instance (HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmGivenS m n p p' t' b' t pc pc' ac i f s e g) instance (HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmGivenS m n p p' t' b' t pc pc' ac i f s e g) instance (HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmGivenS m n p p' t' b' t pc pc' ac i f s e g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Stat.SmGivenS m n p p' t' b' t pc pc' ac i f s e g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.WithParamClauseGroup m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmGivenS m n p p' t' b' t pc pc' ac i f s e g) instance (HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.WithTemplate m n t' t ac i f s e (HaScalaM.Types.Stat.SmGivenS m n p p' t' b' t pc pc' ac i f s e g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.Member tn (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.MemberT tn (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.WithParamClauseGroup m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.WithParamClauseGroups m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Type.WithDeclTpeOpt t' (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Stat.SmMacroS m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmObjectS m n tn p t' t ac i s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmObjectS m n tn p t' t ac i s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.Base.Member tn (HaScalaM.Types.Stat.SmObjectS m n tn p t' t ac i s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.Term.MemberT tn (HaScalaM.Types.Stat.SmObjectS m n tn p t' t ac i s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmObjectS m n tn p t' t ac i s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.WithTemplate m n t' t ac i p s e (HaScalaM.Types.Stat.SmObjectS m n tn p t' t ac i s e) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Term.NameT tn) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmRepeatedEnumCase m tn) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Term.NameT tn) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmRepeatedEnumCase m tn) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Term.NameT tn) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmRepeatedEnumCase m tn) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.Member t'n (HaScalaM.Types.Stat.SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Type.MemberT' t'n (HaScalaM.Types.Stat.SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Stat.SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.WithCtor m n p t' t pc c (HaScalaM.Types.Stat.SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc', HaScalaM.Classes.Primary m n p t' t pc c, HaScalaM.Classes.Template m n t' t ac i f s e) => HaScalaM.Classes.WithTemplate m n t' t ac i f s e (HaScalaM.Types.Stat.SmTraitS m n t'n p p' t' b' t pc pc' c ac i f s e) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmTypeS m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Stat.Decl (HaScalaM.Types.Stat.SmTypeS m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Stat.SmTypeS m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmTypeS m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.Member t'n (HaScalaM.Types.Stat.SmTypeS m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Type.MemberT' t'n (HaScalaM.Types.Stat.SmTypeS m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Stat.Type'Def m n t'n p' t' b' pc' (HaScalaM.Types.Stat.SmTypeS m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.WithBody t' (HaScalaM.Types.Stat.SmTypeS m n t'n p' t' b' pc') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmValS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmValS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmValS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Type.WithDeclTpeOpt t' (HaScalaM.Types.Stat.SmValS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Stat.SmValS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmVarS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Stat.Defn (HaScalaM.Types.Stat.SmVarS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmVarS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Type.WithDeclTpeOpt t' (HaScalaM.Types.Stat.SmVarS m p t' t) instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.Term t) => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Stat.SmVarS m p t' t) module HaScalaM.Instances.Ref instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmName instance HaScalaM.Classes.Base.Name HaScalaM.Types.Tilde.SmName instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmNameT instance HaScalaM.Classes.Base.Name HaScalaM.Types.Tilde.SmNameT instance HaScalaM.Classes.Term.NameT HaScalaM.Types.Tilde.SmNameT instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmNameT' instance HaScalaM.Classes.Base.Name HaScalaM.Types.Tilde.SmNameT' instance HaScalaM.Classes.Type.NameT' HaScalaM.Types.Tilde.SmNameT' instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmRef_ instance HaScalaM.Classes.Base.Ref HaScalaM.Types.Tilde.SmRef_ instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmRef instance HaScalaM.Classes.Ref.RefT HaScalaM.Types.Tilde.SmRef instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmRef' instance HaScalaM.Classes.Ref.RefT' HaScalaM.Types.Tilde.SmRef' module HaScalaM.Instances.Stat instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmImportee instance HaScalaM.Classes.Stat.Importee HaScalaM.Types.Tilde.SmImportee instance (HaScalaM.Classes.Ref.RefT r, HaScalaM.Classes.Stat.Importee i) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmImporter r i) instance (r GHC.Types.~ HaScalaM.Types.Tilde.SmRef, i GHC.Types.~ HaScalaM.Types.Tilde.SmImportee, HaScalaM.Classes.Ref.RefT r, HaScalaM.Classes.Stat.Importee i) => HaScalaM.Classes.Stat.Importer r i (HaScalaM.Types.Tilde.SmImporter r i) instance HaScalaM.Classes.Stat.Importer r i t => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmImportExportStatS r i t) instance HaScalaM.Classes.Stat.Importer r i t => HaScalaM.Classes.Stat.ImportExportStat r i t (HaScalaM.Types.Stat.SmImportExportStatS r i t) instance HaScalaM.Classes.Base.Stat s => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmPkgS HaScalaM.Types.Tilde.SmRef s) instance HaScalaM.Classes.Base.Stat s => HaScalaM.Classes.Base.Member HaScalaM.Types.Tilde.SmNameT (HaScalaM.Types.Stat.SmPkgS HaScalaM.Types.Tilde.SmRef s) instance HaScalaM.Classes.Base.Stat s => HaScalaM.Classes.Term.MemberT HaScalaM.Types.Tilde.SmNameT (HaScalaM.Types.Stat.SmPkgS HaScalaM.Types.Tilde.SmRef s) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmPkgObjectS m n p tn t' t ac i s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmPkgObjectS m n p tn t' t ac i s e) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Template m n t' t ac i p s e) => HaScalaM.Classes.WithTemplate m n t' t ac i p s e (HaScalaM.Types.Stat.SmPkgObjectS m n p tn t' t ac i s e) instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmStat instance HaScalaM.Classes.Base.Stat HaScalaM.Types.Tilde.SmStat module HaScalaM.Instances.Pat instance HaScalaM.Classes.Base.Pat p => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmArgClauseP p) instance HaScalaM.Classes.Base.Pat p => HaScalaM.Classes.Base.SyntaxValuesClauses p (HaScalaM.Types.Tilde.SmArgClauseP p) instance HaScalaM.Classes.Base.Pat p => HaScalaM.Classes.Base.ArgClause p (HaScalaM.Types.Tilde.SmArgClauseP p) instance HaScalaM.Classes.Base.Pat p => HaScalaM.Classes.Base.ArgClauseP p (HaScalaM.Types.Tilde.SmArgClauseP p) instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmPatP instance (HaScalaM.Classes.Term.Term t, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Base.ArgClauseP p ac) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Pat.SmExtractP t p ac) instance (HaScalaM.Classes.Term.Term t, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Base.ArgClauseP p ac) => HaScalaM.Classes.Base.Apply t p ac (HaScalaM.Types.Pat.SmExtractP t p ac) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Base.ArgClauseP p ac) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Pat.SmExtractInfixP tn p ac) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Base.ArgClauseP p ac) => HaScalaM.Classes.Base.Infix p tn ac (HaScalaM.Types.Pat.SmExtractInfixP tn p ac) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Pat.SmMacroP t) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Pat.SmMacroP t) instance HaScalaM.Classes.Base.Pat p => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Pat.SmTupleP p) instance HaScalaM.Classes.Base.Pat p => HaScalaM.Classes.Base.Tuple p (HaScalaM.Types.Pat.SmTupleP p) instance HaScalaM.Classes.Term.NameT tn => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Pat.SmVarP tn) instance HaScalaM.Classes.Term.NameT tn => HaScalaM.Classes.Base.Member tn (HaScalaM.Types.Pat.SmVarP tn) instance HaScalaM.Classes.Term.NameT tn => HaScalaM.Classes.Term.MemberT tn (HaScalaM.Types.Pat.SmVarP tn) instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmPat instance HaScalaM.Classes.Base.Pat HaScalaM.Types.Tilde.SmPat module HaScalaM.Instances.Enums instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Enums.SmCaseGeneratorE p b) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b) => HaScalaM.Classes.Base.WithBody b (HaScalaM.Types.Enums.SmCaseGeneratorE p b) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b) => HaScalaM.Classes.Enums.CaseGenerator p b (HaScalaM.Types.Enums.SmCaseGeneratorE p b) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Enums.SmGeneratorE p b) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b) => HaScalaM.Classes.Base.WithBody b (HaScalaM.Types.Enums.SmGeneratorE p b) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b, HaScalaM.Classes.Base.WithBody (HaScalaM.Types.Enums.SmGeneratorE p b) b) => HaScalaM.Classes.Enums.Generator p b (HaScalaM.Types.Enums.SmGeneratorE p b) instance HaScalaM.Classes.Term.Term b => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Enums.SmGuardE b) instance HaScalaM.Classes.Term.Term b => HaScalaM.Classes.Enums.Guard b (HaScalaM.Types.Enums.SmGuardE b) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Enums.SmValE p b) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b) => HaScalaM.Classes.Base.WithBody b (HaScalaM.Types.Enums.SmValE p b) instance (HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Term.Term b) => HaScalaM.Classes.Enums.Val p b (HaScalaM.Types.Enums.SmValE p b) instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmEnumerator instance HaScalaM.Classes.Enums.Enumerator HaScalaM.Types.Tilde.SmEnumerator module HaScalaM.Instances.Base instance (HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.ArgClauseT m t ac) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmInit m n t' t ac) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', ac GHC.Types.~ HaScalaM.Types.Tilde.SmArgClauseT m t, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Type' t', HaScalaM.Classes.Term.ArgClauseT m t ac) => HaScalaM.Classes.Init m n t' t ac (HaScalaM.Types.Tilde.SmInit m n t' t ac) instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Base.SmLit instance HaScalaM.Classes.Lit HaScalaM.Types.Base.SmLit instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Base.SmModM instance HaScalaM.Classes.Base.Ref r => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Base.SmAccessM r) instance HaScalaM.Classes.Base.Ref r => HaScalaM.Classes.Base.WithWithin r (HaScalaM.Types.Base.SmAccessM r) module HaScalaM.Instances instance HaScalaM.Classes.Init m n t' t ac i => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Base.SmAnnotM m n t' t ac i) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, ac GHC.Types.~ HaScalaM.Types.Tilde.SmArgClauseT m t, i GHC.Types.~ HaScalaM.Types.Tilde.SmInit m n t' t ac, HaScalaM.Classes.Init m n t' t ac i) => HaScalaM.Classes.Annot m n t' t ac i (HaScalaM.Types.Base.SmAnnotM m n t' t ac i) instance (HaScalaM.Classes.Term.ParamClauseT m n p t' t pc, HaScalaM.Classes.Init m n t' t ac i, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Base.SmCtorSecondaryS m n p t' t pc ac i s) instance (HaScalaM.Classes.Term.ParamClauseT m n p t' t pc, HaScalaM.Classes.Init m n t' t ac i, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Base.Ctor (HaScalaM.Types.Base.SmCtorSecondaryS m n p t' t pc ac i s) instance (HaScalaM.Classes.Term.ParamClauseT m n p t' t pc, HaScalaM.Classes.Init m n t' t ac i, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Base.SmCtorSecondaryS m n p t' t pc ac i s) instance (HaScalaM.Classes.Term.ParamClauseT m n p t' t pc, HaScalaM.Classes.Init m n t' t ac i, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Base.SmCtorSecondaryS m n p t' t pc ac i s) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, pc GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT m n p t' t, ac GHC.Types.~ HaScalaM.Types.Tilde.SmArgClauseT m t, i GHC.Types.~ HaScalaM.Types.Tilde.SmInit m n t' t ac, s GHC.Types.~ HaScalaM.Types.Tilde.SmStat, HaScalaM.Classes.Init m n t' t ac i, HaScalaM.Classes.Term.ParamClauseT m n p t' t pc, HaScalaM.Classes.Init m n t' t ac i, HaScalaM.Classes.Base.Stat s) => HaScalaM.Classes.Secondary m n p t' t pc ac i s (HaScalaM.Types.Base.SmCtorSecondaryS m n p t' t pc ac i s) module HaScalaM.Instances.Type instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmType'CaseCT t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.WithBody t' (HaScalaM.Types.Tilde.SmType'CaseCT t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.CaseTree t' t' (HaScalaM.Types.Tilde.SmType'CaseCT t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Type.Type'Case t' (HaScalaM.Types.Tilde.SmType'CaseCT t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Tree (HaScalaM.Classes.Type.FuncParamClause' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.SyntaxValuesClauses t' (HaScalaM.Classes.Type.FuncParamClause' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmArgClauseT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.SyntaxValuesClauses t' (HaScalaM.Types.Tilde.SmArgClauseT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.ArgClause t' (HaScalaM.Types.Tilde.SmArgClauseT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Type.ArgClauseT' t' (HaScalaM.Types.Tilde.SmArgClauseT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmBounds' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Type.Bounds' t' (HaScalaM.Types.Tilde.SmBounds' t') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmType'Def m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.Member t'n (HaScalaM.Types.Tilde.SmType'Def m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Type.MemberT' t'n (HaScalaM.Types.Tilde.SmType'Def m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Tilde.SmType'Def m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Tilde.SmType'Def m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Stat.Type'Def m n t'n p' t' b' pc' (HaScalaM.Types.Tilde.SmType'Def m n t'n p' t' b' pc') instance HaScalaM.Classes.Type.ArgClauseT' t' ac' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmApplyT' t' ac') instance HaScalaM.Classes.Type.ArgClauseT' t' ac' => HaScalaM.Classes.Base.Apply t' t' ac' (HaScalaM.Types.Type.SmApplyT' t' ac') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmApplyInfixT' t'n t') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Base.Infix t' t'n t' (HaScalaM.Types.Type.SmApplyInfixT' t'n t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmContextFunctionT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.WithBody t' (HaScalaM.Types.Type.SmContextFunctionT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Function t' (HaScalaM.Classes.Type.FuncParamClause' t') t' (HaScalaM.Types.Type.SmContextFunctionT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Type.FunctionT' t' (HaScalaM.Types.Type.SmContextFunctionT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmFunctionT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.WithBody t' (HaScalaM.Types.Type.SmFunctionT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Function t' (HaScalaM.Classes.Type.FuncParamClause' t') t' (HaScalaM.Types.Type.SmFunctionT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Type.FunctionT' t' (HaScalaM.Types.Type.SmFunctionT' t') instance HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmLambdaT' m n p' t' b' pc') instance HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc' => HaScalaM.Classes.Base.WithBody t' (HaScalaM.Types.Type.SmLambdaT' m n p' t' b' pc') instance HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc' => HaScalaM.Classes.Base.Function p' pc' t' (HaScalaM.Types.Type.SmLambdaT' m n p' t' b' pc') instance HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc' => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Type.SmLambdaT' m n p' t' b' pc') instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmMacroT' t) instance HaScalaM.Classes.Term.Term t => HaScalaM.Classes.Base.WithBody t (HaScalaM.Types.Type.SmMacroT' t) instance HaScalaM.Classes.Type.Type'Case t' ct => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmMatchT' t' ct) instance HaScalaM.Classes.Type.Type'Case t' ct => HaScalaM.Classes.Base.WithCases t' t' ct (HaScalaM.Types.Type.SmMatchT' t' ct) instance HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmPolyFunctionT' m n p' t' b' pc') instance HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc' => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Type.SmPolyFunctionT' m n p' t' b' pc') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmTupleT' t') instance HaScalaM.Classes.Type.Type' t' => HaScalaM.Classes.Base.Tuple t' (HaScalaM.Types.Type.SmTupleT' t') instance HaScalaM.Classes.Type.NameT' n => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Type.SmVarT' n) instance HaScalaM.Classes.Type.NameT' n => HaScalaM.Classes.Base.Member n (HaScalaM.Types.Type.SmVarT' n) instance HaScalaM.Classes.Type.NameT' n => HaScalaM.Classes.Type.MemberT' n (HaScalaM.Types.Type.SmVarT' n) instance HaScalaM.Classes.Base.Tree HaScalaM.Types.Tilde.SmType' instance HaScalaM.Classes.Type.Type' HaScalaM.Types.Tilde.SmType' instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmParamT' m n t' b') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b') => HaScalaM.Classes.Base.Member n (HaScalaM.Types.Tilde.SmParamT' m n t' b') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b') => HaScalaM.Classes.Base.Param m n (HaScalaM.Types.Tilde.SmParamT' m n t' b') instance (p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b', pc' GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b', HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b', HaScalaM.Classes.Type.ParamT' m n p' t' b' pc', HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Tilde.SmParamT' m n t' b') instance (p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b', pc' GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b', HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b') => HaScalaM.Classes.Type.ParamT' m n (HaScalaM.Types.Tilde.SmParamT' m n t' b') t' b' pc' instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b') instance (p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b', HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b') => HaScalaM.Classes.Base.SyntaxValuesClauses p' (HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b') instance (p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b', HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b') => HaScalaM.Classes.Base.ParamClause m n p' (HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b') instance (p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b', HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Name n, HaScalaM.Classes.Type.Bounds' t' b') => HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' (HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b') module HaScalaM.Instances.Stat.Decl instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Stat.Decl (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.Member tn (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.MemberT tn (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.WithParamClauseGroup m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.WithParamClauseGroups m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Type.WithDeclTpe t' (HaScalaM.Types.Stat.SmDef'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmGiven'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Stat.Decl (HaScalaM.Types.Stat.SmGiven'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.Member tn (HaScalaM.Types.Stat.SmGiven'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.MemberT tn (HaScalaM.Types.Stat.SmGiven'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmGiven'S m n tn p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Term.WithParamClauses m n p t' t pc (HaScalaM.Types.Stat.SmGiven'S m n tn p p' t' b' t pc pc' g) instance (g GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc', HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.WithParamClauseGroup m n p p' t' b' t pc pc' g (HaScalaM.Types.Stat.SmGiven'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Term.NameT tn, HaScalaM.Classes.ParamClauseGroup m n p p' t' b' t pc pc' g) => HaScalaM.Classes.Type.WithDeclTpe t' (HaScalaM.Types.Stat.SmGiven'S m n tn p p' t' b' t pc pc' g) instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmType'S m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Stat.Decl (HaScalaM.Types.Stat.SmType'S m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Type.WithT'ParamClause m n p' t' b' pc' (HaScalaM.Types.Stat.SmType'S m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmType'S m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Base.Member t'n (HaScalaM.Types.Stat.SmType'S m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Type.MemberT' t'n (HaScalaM.Types.Stat.SmType'S m n t'n p' t' b' pc') instance (HaScalaM.Classes.Type.NameT' t'n, HaScalaM.Classes.Type.ParamClauseT' m n p' t' b' pc') => HaScalaM.Classes.Stat.Type'Def m n t'n p' t' b' pc' (HaScalaM.Types.Stat.SmType'S m n t'n p' t' b' pc') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmVal'S m p t') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Stat.Decl (HaScalaM.Types.Stat.SmVal'S m p t') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmVal'S m p t') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Type.WithDeclTpe t' (HaScalaM.Types.Stat.SmVal'S m p t') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Base.Tree (HaScalaM.Types.Stat.SmVar'S m p t') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Stat.Decl (HaScalaM.Types.Stat.SmVar'S m p t') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Base.WithMods m (HaScalaM.Types.Stat.SmVar'S m p t') instance (HaScalaM.Classes.Base.Mod m, HaScalaM.Classes.Base.Pat p, HaScalaM.Classes.Type.Type' t') => HaScalaM.Classes.Type.WithDeclTpe t' (HaScalaM.Types.Stat.SmVar'S m p t') module HaScalaM.Instances.Show csv :: Show t => [t] -> String lst :: Show t => [t] -> String seq :: Show t => [t] -> String opt :: Show t => Maybe t -> String instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', ac GHC.Types.~ HaScalaM.Types.Tilde.SmArgClauseT m t, i GHC.Types.~ HaScalaM.Types.Tilde.SmInit m n t' t ac) => GHC.Show.Show (HaScalaM.Types.Base.SmAnnotM m n t' t ac i) instance (p GHC.Types.~ HaScalaM.Types.Tilde.SmPat, t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm) => GHC.Show.Show (HaScalaM.Types.Tilde.SmCaseCT p t) instance (t' GHC.Types.~ HaScalaM.Types.Tilde.SmType') => GHC.Show.Show (HaScalaM.Types.Tilde.SmType'CaseCT t') instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t, pc GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT m n p t' t) => GHC.Show.Show (HaScalaM.Types.Tilde.SmCtorPrimary m n p t' t pc) instance GHC.Show.Show HaScalaM.Types.Tilde.SmEnumerator instance (t' GHC.Types.~ HaScalaM.Types.Tilde.SmType') => GHC.Show.Show (HaScalaM.Classes.Type.FuncParamClause' t') instance (n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', ac GHC.Types.~ HaScalaM.Types.Tilde.SmArgClauseT m t) => GHC.Show.Show (HaScalaM.Types.Tilde.SmInit m n t' t ac) instance GHC.Show.Show HaScalaM.Types.Tilde.SmImportee instance GHC.Show.Show (HaScalaM.Types.Tilde.SmImporter r i) instance GHC.Show.Show HaScalaM.Types.Base.SmLit instance (i GHC.Types.~ HaScalaM.Types.Tilde.SmInit m n t' t ac, r GHC.Types.~ HaScalaM.Types.Tilde.SmRef_) => GHC.Show.Show HaScalaM.Types.Tilde.SmMod instance GHC.Show.Show HaScalaM.Types.Tilde.SmName instance GHC.Show.Show HaScalaM.Types.Tilde.SmNameT instance GHC.Show.Show HaScalaM.Types.Tilde.SmNameT' instance GHC.Show.Show (HaScalaM.Types.Tilde.SmParamClauseGroup m n p p' t' b' t pc pc') instance GHC.Show.Show HaScalaM.Types.Tilde.SmPat instance GHC.Show.Show (HaScalaM.Types.Tilde.SmArgClauseP p) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm) => GHC.Show.Show (HaScalaM.Types.Tilde.SmParamT m n t' t) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm, p GHC.Types.~ HaScalaM.Types.Tilde.SmParamT m n t' t) => GHC.Show.Show (HaScalaM.Types.Tilde.SmParamClauseT m n p t' t) instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', b' GHC.Types.~ HaScalaM.Types.Tilde.SmBounds' t', p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b', pc' GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b') => GHC.Show.Show (HaScalaM.Types.Tilde.SmParamT' m n t' b') instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', b' GHC.Types.~ HaScalaM.Types.Tilde.SmBounds' t', p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b') => GHC.Show.Show (HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b') instance GHC.Show.Show HaScalaM.Types.Tilde.SmRef_ instance GHC.Show.Show HaScalaM.Types.Tilde.SmRef instance GHC.Show.Show HaScalaM.Types.Tilde.SmRef' instance (n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t' GHC.Types.~ HaScalaM.Types.Tilde.SmType') => GHC.Show.Show (HaScalaM.Types.Tilde.SmSelf n t') instance GHC.Show.Show HaScalaM.Types.Tilde.SmStat instance GHC.Show.Show (HaScalaM.Types.Tilde.SmSource s) instance GHC.Show.Show HaScalaM.Types.Base.Symbol instance GHC.Show.Show (HaScalaM.Types.Tilde.SmTemplate m n t' t ac i p s) instance GHC.Show.Show HaScalaM.Types.Tilde.SmTerm instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, t GHC.Types.~ HaScalaM.Types.Tilde.SmTerm) => GHC.Show.Show (HaScalaM.Types.Tilde.SmArgClauseT m t) instance GHC.Show.Show HaScalaM.Types.Tilde.SmType' instance (t' GHC.Types.~ HaScalaM.Types.Tilde.SmType') => GHC.Show.Show (HaScalaM.Types.Tilde.SmArgClauseT' t') instance (t' GHC.Types.~ HaScalaM.Types.Tilde.SmType') => GHC.Show.Show (HaScalaM.Types.Tilde.SmBounds' t') instance (m GHC.Types.~ HaScalaM.Types.Tilde.SmMod, n GHC.Types.~ HaScalaM.Types.Tilde.SmName, t'n GHC.Types.~ HaScalaM.Types.Tilde.SmNameT', p' GHC.Types.~ HaScalaM.Types.Tilde.SmParamT' m n t' b', t' GHC.Types.~ HaScalaM.Types.Tilde.SmType', b' GHC.Types.~ HaScalaM.Types.Tilde.SmBounds' t', pc' GHC.Types.~ HaScalaM.Types.Tilde.SmParamClauseT' m n p' t' b') => GHC.Show.Show (HaScalaM.Types.Tilde.SmType'Def m n t'n p' t' b' pc')