implementation module htmlTrivial
import StdMaybe, StdGeneric, StdArray, StdClass, StdInt, StdList, StdString
derive bimap Maybe, (,)
// converting strings to lists and backwards
mkString :: ![Char] -> *String
mkString listofchar = {c \\ c <- listofchar }
mkList :: !String -> [Char]
mkList string = [c \\ c <-: string ]
FindSubstr :: .[a] !.[a] -> (!Bool,!Int) | == a
FindSubstr substr list = FindSubstr` list 0
where
lsubstr = length substr
FindSubstr` list=:[] _ = (False,0)
FindSubstr` list=:[x:xs] index
| substr == take lsubstr list = (True,index)
| otherwise = FindSubstr` xs (index + 1)
stl :: !u:[.a] -> v:[.a], [u <= v]
stl [] = []
stl [x:xs] = xs
// Useful string concatenation function
(<+++) infixl :: !String !a -> String | toString a
(<+++) str x = str +++ toString x
(+++>) infixr :: !a !String -> String | toString a
(+++>) x str = toString x +++ str
(??) infixl 9 :: ![a] !a -> Int | == a
(??) [a:as] b
| a==b = 0
| otherwise = 1 + as??b
(??) [] _
= -1
const2 :: .a !.b -> .b
const2 _ x = x