CurryInfo: sourceproggui-3.0.0 / SourceProgGUI.groupFuns

definition:
groupFuns :: [(String,Int)] -> [(String,(Int,Int))]
groupFuns [] = []
groupFuns [(f,i)] = [(f,(i,i))]
groupFuns [(f1,i1),(f2,i2)] = 
  if f1==f2 then [(f1,(i1,i2))] else
  if null f2 then [(f1,(i1,i1))] else [(f1,(i1,i1)),(f2,(i2,i2))]
groupFuns ((f1,i1):(f2,i2):(f3,i3):fis)
 | null f2 && f1==f3 = groupFuns ((f1,i1):(f3,i3):fis)
 | null f2 = (f1,(i1,i2-1)) : groupFuns ((f3,i3):fis)
 | f1==f2 = groupFuns ((f1,i1):(f3,i3):fis)
 | otherwise = (f1,(i1,i2-1)) : groupFuns ((f2,i2):(f3,i3):fis)
demand:
argument 1
deterministic:
deterministic operation
failfree:
_
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{({[]}) |-> {[]} || ({:}) |-> {:,[]}}
name:
groupFuns
precedence:
no precedence defined
result-values:
{:,[]}
signature:
[(String, Prelude.Int)] -> [(String, (Prelude.Int, Prelude.Int))]
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term