let f1 () = [1UL..10UL]
let f2 () = [10UL..1UL]
let f3 () = [1UL..1UL..10UL]
let f4 () = [1UL..2UL..10UL]
let f5 () = [10UL..1UL..1UL]
let f6 start = [start..10UL]
let f7 finish = [1UL..finish]
let f8 (start: uint64) finish = [start..finish]
let f9 start = [start..1UL..10UL]
let f10 step = [1UL..step..10UL]
let f11 finish = [1UL..1UL..finish]
let f12 start step = [start..step..10UL]
let f13 start finish = [start..1UL..finish]
let f14 step finish = [1UL..step..finish]
let f15 (start: uint64) step finish = [start..step..finish]
let f16 f = [f ()..10UL]
let f17 f = [1UL..f ()]
let f18 (f: unit -> uint64) g = [f ()..g()]
let f19 f = [f ()..1UL..10UL]
let f20 f = [1UL..f ()..10UL]
let f21 f = [1UL..1UL..f ()]
let f22 (f: unit -> uint64) g h = [f ()..g ()..h ()]
