CurryInfo: cass-analysis-4.0.0 / Analysis.TotallyDefined.siblingConsAndDecl

definition:
siblingConsAndDecl :: Analysis (TypeDecl, [(QName,Int)])
siblingConsAndDecl =
  simpleConstructorAnalysis "SiblingConsAndDecl" consNamesArOfType
 where
  -- get all constructor names and arities of a datatype declaration
  consNamesArOfType cdecl t = (t, cs)
    where cs = case t of
            Type _ _ _ consDecls ->
              map (\cd -> (consName cd, consArity cd))
                  (filter (\cd -> consName cd /= consName cdecl) consDecls)
            TypeSyn _ _ _ _ -> []
            TypeNew _ _ _ _ -> []
demand:
no demanded arguments
deterministic:
deterministic operation
failfree:
()
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{() |-> {SimpleConstructorAnalysis}}
name:
siblingConsAndDecl
precedence:
no precedence defined
result-values:
{SimpleConstructorAnalysis}
signature:
Analysis.Types.Analysis (FlatCurry.Types.TypeDecl, [((String, String), Prelude.Int)])
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
reducible on all ground data terms