CurryInfo: filepath-3.0.0 / System.FilePath.splitExtension

definition:
splitExtension :: FilePath -> (String, String)
splitExtension x = case d of
    []     -> (x,"")
    (y:ys) -> (a ++ reverse ys, y : reverse c)
  where
    (a,b) = splitFileName_ x
    (c,d) = break isExtSeparator $ reverse b
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
-- | Split on the extension. 'addExtension' is the inverse.
--
-- > uncurry (++) (splitExtension x) == x
-- > uncurry addExtension (splitExtension x) == x
-- > splitExtension "file.txt" == ("file",".txt")
-- > splitExtension "file" == ("file","")
-- > splitExtension "file/file.txt" == ("file/file",".txt")
-- > splitExtension "file.txt/boris" == ("file.txt/boris","")
-- > splitExtension "file.txt/boris.ext" == ("file.txt/boris",".ext")
-- > splitExtension "file/path.txt.bob.fred" == ("file/path.txt.bob",".fred")
-- > splitExtension "file/path.txt/" == ("file/path.txt/","")
failfree:
_
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_) |-> {(,)}}
name:
splitExtension
precedence:
no precedence defined
result-values:
{(,)}
signature:
String -> (String, String)
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term