scopeStatic :: SemanticUnit -> Bool
scopeStatic su
    | elem kd [Package, Interface] = error $ "wrong call to scopeStatic"
    | (kd == Class) = False
    | otherwise = rst
    where
        kd = kind su
        rst = case kd of
                Method (FUNC mds _ _ _ _) -> elem "static" mds
                Field (SYM mds _ _ _) _ -> elem "static" mds
                _ -> scopeStatic (inheritFrom su)
scopeStatic :: SemanticUnit -> Bool
scopeStatic su
    | elem kd [Package, Interface] = error $ "wrong call to scopeStatic"
    | (kd == Class) = False
    | otherwise = rst
    where
        kd = kind su
        rst = case kd of
                Method (FUNC mds _ _ _ _) -> elem "static" mds
                Field (SYM mds _ _ _) _ -> elem "static" mds
                _ -> scopeStatic (inheritFrom su)
scopeStatic su
    | elem kd [Package, Interface] = error $ "wrong call to scopeStatic"
    | (kd == Class) = False
    | otherwise = rst
    where
        kd = kind su
        rst = case kd of
                Method (FUNC mds _ _ _ _) -> elem "static" mds
                Field (SYM mds _ _ _) _ -> elem "static" mds
                _ -> scopeStatic (inheritFrom su)