8:
9:
-let aa = Some " this string " |> TrimNonEmptyString.TryCreate
+let aa = Some " this string " |> TrimNonEmptyString.TryCreate
-let bb = "this string " |> TrimNonEmptyString.TryCreate
+let bb = "this string " |> TrimNonEmptyString.TryCreate
-let cc = "this string " |> TrimNonEmptyString.Create
+let cc = "this string " |> TrimNonEmptyString.Create
-let dd = [" this string "; "that string"; "the other string "] |> TrimNonEmptyString.Create
+let dd = [" this string "; "that string"; "the other string "] |> TrimNonEmptyString.Create
-let ee = [|" this string "; "that string"; "the other string "|] |> TrimNonEmptyString.Create
+let ee = [|" this string "; "that string"; "the other string "|] |> TrimNonEmptyString.Create
|
@@ -358,156 +356,152 @@
|
module TrivialT1toT2 =
- let tryConstruct normalize fn v =
- fn (normalize v)
-
- let tryConstructIndexToString i =
- tryConstruct id (fun i' ->
- (match i' with
- | n when n < 0 -> "negative"
- | n when n > 0 -> "positive"
+ let tryConstruct normalize fn v =
+ fn (normalize v)
+
+ let tryConstructIndexToString i =
+ tryConstruct id (fun i' ->
+ (match i' with
+ | n when n < 0 -> "negative"
+ | n when n > 0 -> "positive"
| _ -> "zero" )
- |> Some ) i
+ |> Some ) i
- let tryIndexToString _ v = tryConstruct id tryConstructIndexToString v
+ let tryIndexToString _ v = tryConstruct id tryConstructIndexToString v
- type IndexToStringCctor() =
- inherit Cctor<unit, int, string>((), tryIndexToString)
+ type IndexToStringCctor() =
+ inherit Cctor<unit, int, string>((), tryIndexToString)
-type IndexToString = DependentType<TrivialT1toT2.IndexToStringCctor, unit, int, string>
+type IndexToString = DependentType<TrivialT1toT2.IndexToStringCctor, unit, int, string>
-let neg = (IndexToString.TryCreate -100).Value
+let neg = (IndexToString.TryCreate -100).Value
-printfn "%s" neg.Value
+printfn "%s" neg.Value
|
namespace DependentTypes
-Multiple items
module DependentTypes
from DependentTypes
--------------------
namespace DependentTypes
-namespace System
-val verifyTrimNonEmptyString : 'a -> value:string -> string option
-val value : string
-Multiple items
val string : value:'T -> string
--------------------
type string = String
-Multiple items
type String =
new : value:char -> string + 7 overloads
member Chars : int -> char
member Clone : unit -> obj
member CompareTo : value:obj -> int + 1 overload
member Contains : value:string -> bool
member CopyTo : sourceIndex:int * destination:char[] * destinationIndex:int * count:int -> unit
member EndsWith : value:string -> bool + 2 overloads
member Equals : obj:obj -> bool + 2 overloads
member GetEnumerator : unit -> CharEnumerator
member GetHashCode : unit -> int
...
--------------------
String(value: nativeptr<char>) : String
String(value: nativeptr<sbyte>) : String
String(value: char []) : String
String(c: char, count: int) : String
String(value: nativeptr<char>, startIndex: int, length: int) : String
String(value: nativeptr<sbyte>, startIndex: int, length: int) : String
String(value: char [], startIndex: int, length: int) : String
String(value: nativeptr<sbyte>, startIndex: int, length: int, enc: Text.Encoding) : String
-String.IsNullOrWhiteSpace(value: string) : bool
-union case Option.None: Option<'T>
-union case Option.Some: Value: 'T -> Option<'T>
-String.Trim() : string
String.Trim([<ParamArray>] trimChars: char []) : string
-Multiple items
type NonEmptyValidator =
inherit Cctor<unit,string,string>
new : unit -> NonEmptyValidator
--------------------
new : unit -> NonEmptyValidator
-Multiple items
type Cctor<'Config,'T,'T2> =
new : config:'Config * vfn:('Config -> 'T -> Option<'T2>) -> Cctor<'Config,'T,'T2>
member TryCreate : x:'T -> Option<'T2>
--------------------
new : config:'Config * vfn:('Config -> 'T -> Option<'T2>) -> Cctor<'Config,'T,'T2>
-type unit = Unit
-Multiple items
type NonEmpty =
inherit NonEmptyValidator
new : unit -> NonEmpty
--------------------
new : unit -> NonEmpty
-type TrimNonEmptyString = DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>
-Multiple items
union case LimitedValue.DependentType: 'T -> LimitedValue<'Validator,'Config,'T>
--------------------
type DependentType<'Cctor,'Config,'T,'T2 (requires 'Cctor :> Cctor<'Config,'T,'T2> and default constructor)> =
| DependentType of 'T2
override ToString : unit -> string
member Value : 'T2
static member ConvertTo : x:DependentType<'x,'y,'q,'r> -> Option<DependentType<'a,'b,'r,'s>> (requires 'x :> Cctor<'y,'q,'r> and default constructor and 'a :> Cctor<'b,'r,'s> and default constructor)
static member Create : xs:'T list -> DependentType<'Cctor,'Config,'T,'T2> list
static member Create : xs:seq<'T> -> seq<DependentType<'Cctor,'Config,'T,'T2>>
static member Create : x:'T -> DependentType<'Cctor,'Config,'T,'T2>
static member Extract : x:DependentType<'Cctor,'Config,'T,'T2> -> 'T2
static member TryCreate : x:'T option -> Option<DependentType<'Cctor,'Config,'T,'T2>>
static member TryCreate : x:'T -> Option<DependentType<'Cctor,'Config,'T,'T2>>
-module TrimNonEmptyStringDef
from Tutorial
-Multiple items
type NonEmpty =
inherit NonEmptyValidator
new : unit -> NonEmpty
--------------------
new : unit -> TrimNonEmptyStringDef.NonEmpty
-val myGoodString : DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>
-static member DependentType.TryCreate : x:'T option -> Option<DependentType<'Cctor,'Config,'T,'T2>>
static member DependentType.TryCreate : x:'T -> Option<DependentType<'Cctor,'Config,'T,'T2>>
-val notTrimNonEmptyString : Option<DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>>
-val printfn : format:Printf.TextWriterFormat<'T> -> 'T
-property DependentType.Value: string
-property Option.IsNone: bool
-val verifyUtcDateTime : 'a -> value:DateTime -> DateTime option
-val value : DateTime
-Multiple items
type DateTime =
struct
new : ticks:int64 -> DateTime + 10 overloads
member Add : value:TimeSpan -> DateTime
member AddDays : value:float -> DateTime
member AddHours : value:float -> DateTime
member AddMilliseconds : value:float -> DateTime
member AddMinutes : value:float -> DateTime
member AddMonths : months:int -> DateTime
member AddSeconds : value:float -> DateTime
member AddTicks : value:int64 -> DateTime
member AddYears : value:int -> DateTime
...
end
--------------------
DateTime ()
(+0 other overloads)
DateTime(ticks: int64) : DateTime
(+0 other overloads)
DateTime(ticks: int64, kind: DateTimeKind) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, calendar: Globalization.Calendar) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, kind: DateTimeKind) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, calendar: Globalization.Calendar) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, millisecond: int) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, millisecond: int, kind: DateTimeKind) : DateTime
(+0 other overloads)
-DateTime.ToUniversalTime() : DateTime
-Multiple items
type UtcDateTimeValidator =
inherit Cctor<unit,DateTime,DateTime>
new : unit -> UtcDateTimeValidator
--------------------
new : unit -> UtcDateTimeValidator
-Multiple items
type ValidUtcDateTime =
inherit UtcDateTimeValidator
new : unit -> ValidUtcDateTime
--------------------
new : unit -> ValidUtcDateTime
-type UtcDateTime = DependentType<UtcDateTimeDef.ValidUtcDateTime,unit,DateTime,DateTime>
-module UtcDateTimeDef
from Tutorial
-Multiple items
type ValidUtcDateTime =
inherit UtcDateTimeValidator
new : unit -> ValidUtcDateTime
--------------------
new : unit -> UtcDateTimeDef.ValidUtcDateTime
-val utcTime : DependentType<UtcDateTimeDef.ValidUtcDateTime,unit,DateTime,DateTime>
-property DateTime.Now: DateTime
-static member DependentType.Create : xs:'T list -> DependentType<'Cctor,'Config,'T,'T2> list
static member DependentType.Create : xs:seq<'T> -> seq<DependentType<'Cctor,'Config,'T,'T2>>
static member DependentType.Create : x:'T -> DependentType<'Cctor,'Config,'T,'T2>
-val validate : normalize:('a -> 'b) -> fn:('b -> bool) -> v:'a -> 'b option
-val normalize : ('a -> 'b)
-val fn : ('b -> bool)
-val v : 'a
-val validateRange : min:'a * max:'a -> v:'a -> 'a option (requires comparison)
-val min : 'a (requires comparison)
-val max : 'a (requires comparison)
-val v : 'a (requires comparison)
-val id : x:'T -> 'T
-Multiple items
type NumRangeValidator =
inherit Cctor<(int * int),int,int>
new : config:(int * int) -> NumRangeValidator
--------------------
new : config:(int * int) -> NumRangeValidator
-val config : int * int
-Multiple items
val int : value:'T -> int (requires member op_Explicit)
--------------------
type int = int32
--------------------
type int<'Measure> = int
-Multiple items
type MaxPos100 =
inherit NumRangeValidator
new : unit -> MaxPos100
--------------------
new : unit -> MaxPos100
-type PositiveInt100 = DependentType<MaxPos100,(int * int),int,int>
-val a : PositiveInt100 option
-type 'T option = Option<'T>
-val mkDependentType : x:'S -> Option<'T> (requires member TryCreate)
-val b : Option<DependentType<MaxPos100,(int * int),int,int>>
-val a' : int
-property Option.Value: PositiveInt100
-val extract : x:'S -> 'T (requires member Extract)
-val b' : int
-property Option.Value: DependentType<MaxPos100,(int * int),int,int>
-property DependentType.Value: int
-Object.ToString() : string
-Multiple items
type MaxPos200 =
inherit NumRangeValidator
new : unit -> MaxPos200
--------------------
new : unit -> MaxPos200
-type PositiveInt200 = DependentType<MaxPos100,(int * int),int,int>
-val valToString5 : Option<PositiveInt200>
-module Option
from Microsoft.FSharp.Core
-val convertTo : x:'S -> Option<'T> (requires member ConvertTo)
-property Option.Value: PositiveInt200
-Object.GetType() : Type
-val verifyNonEmptySet : 'a -> value:Set<'T> -> Set<'T> option (requires comparison)
-val value : Set<'T> (requires comparison)
-Multiple items
module Set
from Microsoft.FSharp.Collections
--------------------
type Set<'T (requires comparison)> =
interface IComparable
interface IEnumerable
interface IEnumerable<'T>
interface ICollection<'T>
new : elements:seq<'T> -> Set<'T>
member Add : value:'T -> Set<'T>
member Contains : value:'T -> bool
override Equals : obj -> bool
member IsProperSubsetOf : otherSet:Set<'T> -> bool
member IsProperSupersetOf : otherSet:Set<'T> -> bool
...
--------------------
new : elements:seq<'T> -> Set<'T>
-property Set.Count: int
-Multiple items
type NonEmptySetValidator<'T (requires comparison)> =
inherit Cctor<unit,Set<'T>,Set<'T>>
new : unit -> NonEmptySetValidator<'T>
--------------------
new : unit -> NonEmptySetValidator<'T>
-Multiple items
type ValidNonEmptySet<'T (requires comparison)> =
inherit NonEmptySetValidator<'T>
new : unit -> ValidNonEmptySet<'T>
--------------------
new : unit -> ValidNonEmptySet<'T>
-type NonEmptySet<'T (requires comparison)> = DependentType<NonEmptySetDef.ValidNonEmptySet<'T>,unit,Set<'T>,Set<'T>>
-module NonEmptySetDef
from Tutorial
-Multiple items
type ValidNonEmptySet<'T (requires comparison)> =
inherit NonEmptySetValidator<'T>
new : unit -> ValidNonEmptySet<'T>
--------------------
new : unit -> NonEmptySetDef.ValidNonEmptySet<'T>
-val myNonEmptyIntSet : DependentType<NonEmptySetDef.ValidNonEmptySet<int>,unit,Set<int>,Set<int>>
-val ofList : elements:'T list -> Set<'T> (requires comparison)
-val myNonEmptyStringSet : DependentType<NonEmptySetDef.ValidNonEmptySet<string>,unit,Set<string>,Set<string>>
-val validate : fn:('a -> bool) -> v:'a -> 'a option
-val fn : ('a -> bool)
-val validateMin : min:'a -> v:'a -> 'a option (requires comparison)
-val validateMax : max:'a -> v:'a -> 'a option (requires comparison)
-Multiple items
type NumRangeValidator =
inherit Validator<(int * int),int>
new : config:(int * int) -> NumRangeValidator
--------------------
new : config:(int * int) -> NumRangeValidator
-Multiple items
type Validator<'Config,'T> =
new : config:'Config * vfn:('Config -> 'T -> Option<'T>) -> Validator<'Config,'T>
member Validate : x:'T -> Option<'T>
--------------------
new : config:'Config * vfn:('Config -> 'T -> Option<'T>) -> Validator<'Config,'T>
-Multiple items
type MinNumRangeValidator =
inherit Validator<int,int>
new : config:int -> MinNumRangeValidator
--------------------
new : config:int -> MinNumRangeValidator
-val config : int
-Multiple items
type MaxNumRangeValidator =
inherit Validator<int,int>
new : config:int -> MaxNumRangeValidator
--------------------
new : config:int -> MaxNumRangeValidator
-Multiple items
type MaxPos150 =
inherit NumRangeValidator
new : unit -> MaxPos150
--------------------
new : unit -> MaxPos150
-Multiple items
type MaxPos20000 =
inherit NumRangeValidator
new : unit -> MaxPos20000
--------------------
new : unit -> MaxPos20000
-Multiple items
type RangeMinus100To100 =
inherit NumRangeValidator
new : unit -> RangeMinus100To100
--------------------
new : unit -> RangeMinus100To100
-Multiple items
type Min101 =
inherit MinNumRangeValidator
new : unit -> Min101
--------------------
new : unit -> Min101
-Multiple items
type MaxMinus101 =
inherit MaxNumRangeValidator
new : unit -> MaxMinus101
--------------------
new : unit -> MaxMinus101
-type PositiveInt150 = LimitedValue<IntRange.MaxPos150,(int * int),int>
-type LimitedValue<'Validator,'Config,'T (requires 'Validator :> Validator<'Config,'T> and default constructor)> =
| DependentType of 'T
member Value : 'T
static member ConvertTo : x:LimitedValue<'x,'y,'q> -> Option<LimitedValue<'a,'b,'q>> (requires 'x :> Validator<'y,'q> and default constructor and 'a :> Validator<'b,'q> and default constructor)
static member Create : xs:'T list -> LimitedValue<'Validator,'Config,'T> list
static member Create : xs:seq<'T> -> seq<LimitedValue<'Validator,'Config,'T>>
static member Create : x:'T -> LimitedValue<'Validator,'Config,'T>
static member Extract : x:LimitedValue<'Validator,'Config,'T> -> 'T
static member TryCreate : x:'T -> Option<LimitedValue<'Validator,'Config,'T>>
-module IntRange
from Tutorial
-Multiple items
type MaxPos150 =
inherit NumRangeValidator
new : unit -> MaxPos150
--------------------
new : unit -> IntRange.MaxPos150
-type PositiveInt20000 = LimitedValue<IntRange.MaxPos20000,(int * int),int>
-Multiple items
type MaxPos20000 =
inherit NumRangeValidator
new : unit -> MaxPos20000
--------------------
new : unit -> IntRange.MaxPos20000
-type Minus100To100 = LimitedValue<IntRange.RangeMinus100To100,(int * int),int>
-Multiple items
type RangeMinus100To100 =
inherit NumRangeValidator
new : unit -> RangeMinus100To100
--------------------
new : unit -> IntRange.RangeMinus100To100
-type GT100 = LimitedValue<IntRange.Min101,int,int>
-Multiple items
type Min101 =
inherit MinNumRangeValidator
new : unit -> Min101
--------------------
new : unit -> IntRange.Min101
-type LTminus100 = LimitedValue<IntRange.MaxMinus101,int,int>
-Multiple items
type MaxMinus101 =
inherit MaxNumRangeValidator
new : unit -> MaxMinus101
--------------------
new : unit -> IntRange.MaxMinus101
-val aa : Option<DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>>
-val bb : Option<DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>>
-val cc : DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>
-val dd : DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string> list
-val ee : seq<DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>>
-val tryConstruct : normalize:('a -> 'b) -> fn:('b -> 'c) -> v:'a -> 'c
-val fn : ('b -> 'c)
-val tryConstructIndexToString : i:int -> string option
-val i : int
-val i' : int
-val n : int
-val tryIndexToString : 'a -> v:int -> string option
-val v : int
-Multiple items
type IndexToStringCctor =
inherit Cctor<unit,int,string>
new : unit -> IndexToStringCctor
--------------------
new : unit -> IndexToStringCctor
-type IndexToString = DependentType<TrivialT1toT2.IndexToStringCctor,unit,int,string>
-module TrivialT1toT2
from Tutorial
-Multiple items
type IndexToStringCctor =
inherit Cctor<unit,int,string>
new : unit -> IndexToStringCctor
--------------------
new : unit -> TrivialT1toT2.IndexToStringCctor
-val neg : DependentType<TrivialT1toT2.IndexToStringCctor,unit,int,string>
+namespace System
+val verifyTrimNonEmptyString : 'a -> value:string -> string option
+val value : string
+Multiple items
val string : value:'T -> string
--------------------
type string = String
+Multiple items
type String =
new : value:char -> string + 7 overloads
member Chars : int -> char
member Clone : unit -> obj
member CompareTo : value:obj -> int + 1 overload
member Contains : value:string -> bool
member CopyTo : sourceIndex:int * destination:char[] * destinationIndex:int * count:int -> unit
member EndsWith : value:string -> bool + 2 overloads
member Equals : obj:obj -> bool + 2 overloads
member GetEnumerator : unit -> CharEnumerator
member GetHashCode : unit -> int
...
--------------------
String(value: nativeptr<char>) : String
String(value: nativeptr<sbyte>) : String
String(value: char []) : String
String(c: char, count: int) : String
String(value: nativeptr<char>, startIndex: int, length: int) : String
String(value: nativeptr<sbyte>, startIndex: int, length: int) : String
String(value: char [], startIndex: int, length: int) : String
String(value: nativeptr<sbyte>, startIndex: int, length: int, enc: Text.Encoding) : String
+String.IsNullOrWhiteSpace(value: string) : bool
+union case Option.None: Option<'T>
+union case Option.Some: Value: 'T -> Option<'T>
+String.Trim() : string
String.Trim([<ParamArray>] trimChars: char []) : string
+Multiple items
type NonEmptyValidator =
inherit Cctor<unit,string,string>
new : unit -> NonEmptyValidator
--------------------
new : unit -> NonEmptyValidator
+Multiple items
type Cctor<'Config,'T,'T2> =
new : config:'Config * vfn:('Config -> 'T -> Option<'T2>) -> Cctor<'Config,'T,'T2>
member TryCreate : x:'T -> Option<'T2>
--------------------
new : config:'Config * vfn:('Config -> 'T -> Option<'T2>) -> Cctor<'Config,'T,'T2>
+type unit = Unit
+Multiple items
type NonEmpty =
inherit NonEmptyValidator
new : unit -> NonEmpty
--------------------
new : unit -> NonEmpty
+type TrimNonEmptyString = DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>
+Multiple items
union case LimitedValue.DependentType: 'T -> LimitedValue<'Validator,'Config,'T>
--------------------
type DependentType<'Cctor,'Config,'T,'T2 (requires 'Cctor :> Cctor<'Config,'T,'T2> and default constructor)> =
| DependentType of 'T2
override ToString : unit -> string
member Value : 'T2
static member ConvertTo : x:DependentType<'x,'y,'q,'r> -> Option<DependentType<'a,'b,'r,'s>> (requires 'x :> Cctor<'y,'q,'r> and default constructor and 'a :> Cctor<'b,'r,'s> and default constructor)
static member Create : xs:'T list -> DependentType<'Cctor,'Config,'T,'T2> list
static member Create : xs:seq<'T> -> seq<DependentType<'Cctor,'Config,'T,'T2>>
static member Create : x:'T -> DependentType<'Cctor,'Config,'T,'T2>
static member Extract : x:DependentType<'Cctor,'Config,'T,'T2> -> 'T2
static member TryCreate : x:'T option -> Option<DependentType<'Cctor,'Config,'T,'T2>>
static member TryCreate : x:'T -> Option<DependentType<'Cctor,'Config,'T,'T2>>
+module TrimNonEmptyStringDef
from Tutorial
+Multiple items
type NonEmpty =
inherit NonEmptyValidator
new : unit -> NonEmpty
--------------------
new : unit -> TrimNonEmptyStringDef.NonEmpty
+val myGoodString : DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>
+static member DependentType.TryCreate : x:'T option -> Option<DependentType<'Cctor,'Config,'T,'T2>>
static member DependentType.TryCreate : x:'T -> Option<DependentType<'Cctor,'Config,'T,'T2>>
+val notTrimNonEmptyString : Option<DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>>
+val printfn : format:Printf.TextWriterFormat<'T> -> 'T
+property DependentType.Value: string
+property Option.IsNone: bool
+val verifyUtcDateTime : 'a -> value:DateTime -> DateTime option
+val value : DateTime
+Multiple items
type DateTime =
struct
new : ticks:int64 -> DateTime + 10 overloads
member Add : value:TimeSpan -> DateTime
member AddDays : value:float -> DateTime
member AddHours : value:float -> DateTime
member AddMilliseconds : value:float -> DateTime
member AddMinutes : value:float -> DateTime
member AddMonths : months:int -> DateTime
member AddSeconds : value:float -> DateTime
member AddTicks : value:int64 -> DateTime
member AddYears : value:int -> DateTime
...
end
--------------------
DateTime ()
(+0 other overloads)
DateTime(ticks: int64) : DateTime
(+0 other overloads)
DateTime(ticks: int64, kind: DateTimeKind) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, calendar: Globalization.Calendar) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, kind: DateTimeKind) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, calendar: Globalization.Calendar) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, millisecond: int) : DateTime
(+0 other overloads)
DateTime(year: int, month: int, day: int, hour: int, minute: int, second: int, millisecond: int, kind: DateTimeKind) : DateTime
(+0 other overloads)
+DateTime.ToUniversalTime() : DateTime
+Multiple items
type UtcDateTimeValidator =
inherit Cctor<unit,DateTime,DateTime>
new : unit -> UtcDateTimeValidator
--------------------
new : unit -> UtcDateTimeValidator
+Multiple items
type ValidUtcDateTime =
inherit UtcDateTimeValidator
new : unit -> ValidUtcDateTime
--------------------
new : unit -> ValidUtcDateTime
+type UtcDateTime = DependentType<UtcDateTimeDef.ValidUtcDateTime,unit,DateTime,DateTime>
+module UtcDateTimeDef
from Tutorial
+Multiple items
type ValidUtcDateTime =
inherit UtcDateTimeValidator
new : unit -> ValidUtcDateTime
--------------------
new : unit -> UtcDateTimeDef.ValidUtcDateTime
+val utcTime : DependentType<UtcDateTimeDef.ValidUtcDateTime,unit,DateTime,DateTime>
+property DateTime.Now: DateTime
+static member DependentType.Create : xs:'T list -> DependentType<'Cctor,'Config,'T,'T2> list
static member DependentType.Create : xs:seq<'T> -> seq<DependentType<'Cctor,'Config,'T,'T2>>
static member DependentType.Create : x:'T -> DependentType<'Cctor,'Config,'T,'T2>
+val validate : normalize:('a -> 'b) -> fn:('b -> bool) -> v:'a -> 'b option
+val normalize : ('a -> 'b)
+val fn : ('b -> bool)
+val v : 'a
+val validateRange : min:'a * max:'a -> v:'a -> 'a option (requires comparison)
+val min : 'a (requires comparison)
+val max : 'a (requires comparison)
+val v : 'a (requires comparison)
+val id : x:'T -> 'T
+Multiple items
type NumRangeValidator =
inherit Cctor<(int * int),int,int>
new : config:(int * int) -> NumRangeValidator
--------------------
new : config:(int * int) -> NumRangeValidator
+val config : int * int
+Multiple items
val int : value:'T -> int (requires member op_Explicit)
--------------------
type int = int32
--------------------
type int<'Measure> = int
+Multiple items
type MaxPos100 =
inherit NumRangeValidator
new : unit -> MaxPos100
--------------------
new : unit -> MaxPos100
+type PositiveInt100 = DependentType<MaxPos100,(int * int),int,int>
+val a : PositiveInt100 option
+type 'T option = Option<'T>
+val b : Option<DependentType<MaxPos100,(int * int),int,int>>
+val a' : int
+property Option.Value: PositiveInt100
+val b' : int
+property Option.Value: DependentType<MaxPos100,(int * int),int,int>
+property DependentType.Value: int
+Object.ToString() : string
+Multiple items
type MaxPos200 =
inherit NumRangeValidator
new : unit -> MaxPos200
--------------------
new : unit -> MaxPos200
+type PositiveInt200 = DependentType<MaxPos100,(int * int),int,int>
+val valToString5 : Option<PositiveInt200>
+module Option
from Microsoft.FSharp.Core
+property Option.Value: PositiveInt200
+Object.GetType() : Type
+val verifyNonEmptySet : 'a -> value:Set<'T> -> Set<'T> option (requires comparison)
+val value : Set<'T> (requires comparison)
+Multiple items
module Set
from Microsoft.FSharp.Collections
--------------------
type Set<'T (requires comparison)> =
interface IComparable
interface IEnumerable
interface IEnumerable<'T>
interface ICollection<'T>
new : elements:seq<'T> -> Set<'T>
member Add : value:'T -> Set<'T>
member Contains : value:'T -> bool
override Equals : obj -> bool
member IsProperSubsetOf : otherSet:Set<'T> -> bool
member IsProperSupersetOf : otherSet:Set<'T> -> bool
...
--------------------
new : elements:seq<'T> -> Set<'T>
+property Set.Count: int
+Multiple items
type NonEmptySetValidator<'T (requires comparison)> =
inherit Cctor<unit,Set<'T>,Set<'T>>
new : unit -> NonEmptySetValidator<'T>
--------------------
new : unit -> NonEmptySetValidator<'T>
+Multiple items
type ValidNonEmptySet<'T (requires comparison)> =
inherit NonEmptySetValidator<'T>
new : unit -> ValidNonEmptySet<'T>
--------------------
new : unit -> ValidNonEmptySet<'T>
+type NonEmptySet<'T (requires comparison)> = DependentType<NonEmptySetDef.ValidNonEmptySet<'T>,unit,Set<'T>,Set<'T>>
+module NonEmptySetDef
from Tutorial
+Multiple items
type ValidNonEmptySet<'T (requires comparison)> =
inherit NonEmptySetValidator<'T>
new : unit -> ValidNonEmptySet<'T>
--------------------
new : unit -> NonEmptySetDef.ValidNonEmptySet<'T>
+val myNonEmptyIntSet : DependentType<NonEmptySetDef.ValidNonEmptySet<int>,unit,Set<int>,Set<int>>
+val ofList : elements:'T list -> Set<'T> (requires comparison)
+val myNonEmptyStringSet : DependentType<NonEmptySetDef.ValidNonEmptySet<string>,unit,Set<string>,Set<string>>
+val validate : fn:('a -> bool) -> v:'a -> 'a option
+val fn : ('a -> bool)
+val validateMin : min:'a -> v:'a -> 'a option (requires comparison)
+val validateMax : max:'a -> v:'a -> 'a option (requires comparison)
+Multiple items
type NumRangeValidator =
inherit Validator<(int * int),int>
new : config:(int * int) -> NumRangeValidator
--------------------
new : config:(int * int) -> NumRangeValidator
+Multiple items
type Validator<'Config,'T> =
new : config:'Config * vfn:('Config -> 'T -> Option<'T>) -> Validator<'Config,'T>
member Validate : x:'T -> Option<'T>
--------------------
new : config:'Config * vfn:('Config -> 'T -> Option<'T>) -> Validator<'Config,'T>
+Multiple items
type MinNumRangeValidator =
inherit Validator<int,int>
new : config:int -> MinNumRangeValidator
--------------------
new : config:int -> MinNumRangeValidator
+val config : int
+Multiple items
type MaxNumRangeValidator =
inherit Validator<int,int>
new : config:int -> MaxNumRangeValidator
--------------------
new : config:int -> MaxNumRangeValidator
+Multiple items
type MaxPos150 =
inherit NumRangeValidator
new : unit -> MaxPos150
--------------------
new : unit -> MaxPos150
+Multiple items
type MaxPos20000 =
inherit NumRangeValidator
new : unit -> MaxPos20000
--------------------
new : unit -> MaxPos20000
+Multiple items
type RangeMinus100To100 =
inherit NumRangeValidator
new : unit -> RangeMinus100To100
--------------------
new : unit -> RangeMinus100To100
+Multiple items
type Min101 =
inherit MinNumRangeValidator
new : unit -> Min101
--------------------
new : unit -> Min101
+Multiple items
type MaxMinus101 =
inherit MaxNumRangeValidator
new : unit -> MaxMinus101
--------------------
new : unit -> MaxMinus101
+type PositiveInt150 = LimitedValue<IntRange.MaxPos150,(int * int),int>
+type LimitedValue<'Validator,'Config,'T (requires 'Validator :> Validator<'Config,'T> and default constructor)> =
| DependentType of 'T
member Value : 'T
static member ConvertTo : x:LimitedValue<'x,'y,'q> -> Option<LimitedValue<'a,'b,'q>> (requires 'x :> Validator<'y,'q> and default constructor and 'a :> Validator<'b,'q> and default constructor)
static member Create : xs:'T list -> LimitedValue<'Validator,'Config,'T> list
static member Create : xs:seq<'T> -> seq<LimitedValue<'Validator,'Config,'T>>
static member Create : x:'T -> LimitedValue<'Validator,'Config,'T>
static member Extract : x:LimitedValue<'Validator,'Config,'T> -> 'T
static member TryCreate : x:'T -> Option<LimitedValue<'Validator,'Config,'T>>
+module IntRange
from Tutorial
+Multiple items
type MaxPos150 =
inherit NumRangeValidator
new : unit -> MaxPos150
--------------------
new : unit -> IntRange.MaxPos150
+type PositiveInt20000 = LimitedValue<IntRange.MaxPos20000,(int * int),int>
+Multiple items
type MaxPos20000 =
inherit NumRangeValidator
new : unit -> MaxPos20000
--------------------
new : unit -> IntRange.MaxPos20000
+type Minus100To100 = LimitedValue<IntRange.RangeMinus100To100,(int * int),int>
+Multiple items
type RangeMinus100To100 =
inherit NumRangeValidator
new : unit -> RangeMinus100To100
--------------------
new : unit -> IntRange.RangeMinus100To100
+type GT100 = LimitedValue<IntRange.Min101,int,int>
+Multiple items
type Min101 =
inherit MinNumRangeValidator
new : unit -> Min101
--------------------
new : unit -> IntRange.Min101
+type LTminus100 = LimitedValue<IntRange.MaxMinus101,int,int>
+Multiple items
type MaxMinus101 =
inherit MaxNumRangeValidator
new : unit -> MaxMinus101
--------------------
new : unit -> IntRange.MaxMinus101
+val aa : Option<DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>>
+val bb : Option<DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>>
+val cc : DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>
+val dd : DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string> list
+val ee : seq<DependentType<TrimNonEmptyStringDef.NonEmpty,unit,string,string>>
+val tryConstruct : normalize:('a -> 'b) -> fn:('b -> 'c) -> v:'a -> 'c
+val fn : ('b -> 'c)
+val tryConstructIndexToString : i:int -> string option
+val i : int
+val i' : int
+val n : int
+val tryIndexToString : 'a -> v:int -> string option
+val v : int
+Multiple items
type IndexToStringCctor =
inherit Cctor<unit,int,string>
new : unit -> IndexToStringCctor
--------------------
new : unit -> IndexToStringCctor
+type IndexToString = DependentType<TrivialT1toT2.IndexToStringCctor,unit,int,string>
+module TrivialT1toT2
from Tutorial
+Multiple items
type IndexToStringCctor =
inherit Cctor<unit,int,string>
new : unit -> IndexToStringCctor
--------------------
new : unit -> TrivialT1toT2.IndexToStringCctor
+val neg : DependentType<TrivialT1toT2.IndexToStringCctor,unit,int,string>