CurryInfo: base-3.4.0 / Data.List.splitOn

definition: Info
 
splitOn :: Eq a => [a] -> [a] -> [[a]]
splitOn []          _  = error "splitOn called with an empty pattern"
splitOn [x]         xs = split (x ==) xs
splitOn sep@(_:_:_) xs = go xs
 where
  go []       = [[]]
  go l@(y:ys) | sep `isPrefixOf` l = [] : go (drop len l)
              | otherwise          = let (zs:zss) = go ys in (y:zs):zss
  len = length sep
demand: Info
 argument 2
deterministic: Info
 deterministic operation
documentation: Info
 
Breaks the second list argument into pieces separated by the first
list argument, consuming the delimiter. An empty delimiter is
invalid, and will cause an error to be raised.
failfree: Info
 (_, _, _)
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,{:},_) |-> {:}}
name: Info
 splitOn
precedence: Info
 no precedence defined
result-values: Info
 {:}
signature: Info
 Prelude.Eq a => [a] -> [a] -> [[a]]
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term