let tests = ["helloWorld";"Helloworld";"HelloWorld";"Hello";"hello"]
let contains (s:string) (v:string) (c:StringComparison) = s.IndexOf(v,c) >= 0
let optFromBool s = if s then Some() else None
let (|InvariantContainsI|_|) (value:string) (input:string) =
contains input value StringComparison.InvariantCultureIgnoreCase
let boolFromAp (|Pattern|_|) v = match v with |Pattern -> true |_ -> false
let invariantContainsI input = boolFromAp <| (|InvariantContainsI|_|) input
|> Seq.filter (invariantContainsI "helloworld")
let contains v (c:StringComparison) (s:string) = s.IndexOf(v,c) >= 0
let optTFromBool s f = if f s then Some s else None
let (|InvariantContainsI|_|) value (input:string) = optTFromBool input <| contains value StringComparison.InvariantCultureIgnoreCase
|> Seq.choose ((|InvariantContainsI|_|) "helloworld")