FSharpPlus


Extension Methods

Some methods are also exposed as extensions. This makes possible some uses from C#

Here are some examples:

open FSharpPlus.Extensions

let opt  = Option.Sequence [Some 1; Some 2]
let asn = Async.Sequence [| async {return 1}; async {return 2} |]
namespace FSharpPlus
module Extensions

from FSharpPlus
val opt : seq<int> option
Multiple items
module Option

from FSharpPlus

--------------------
module Option

from Microsoft.FSharp.Core
static member Option.Sequence : t:seq<'T option> -> seq<'T> option
union case Option.Some: Value: 'T -> Option<'T>
val asn : Async<int array>
Multiple items
module Async

from FSharpPlus

--------------------
type Async =
  static member AsBeginEnd : computation:('Arg -> Async<'T>) -> ('Arg * AsyncCallback * obj -> IAsyncResult) * (IAsyncResult -> 'T) * (IAsyncResult -> unit)
  static member AwaitEvent : event:IEvent<'Del,'T> * ?cancelAction:(unit -> unit) -> Async<'T> (requires delegate and 'Del :> Delegate)
  static member AwaitIAsyncResult : iar:IAsyncResult * ?millisecondsTimeout:int -> Async<bool>
  static member AwaitTask : task:Task -> Async<unit>
  static member AwaitTask : task:Task<'T> -> Async<'T>
  static member AwaitWaitHandle : waitHandle:WaitHandle * ?millisecondsTimeout:int -> Async<bool>
  static member CancelDefaultToken : unit -> unit
  static member Catch : computation:Async<'T> -> Async<Choice<'T,exn>>
  static member Choice : computations:seq<Async<'T option>> -> Async<'T option>
  static member FromBeginEnd : beginAction:(AsyncCallback * obj -> IAsyncResult) * endAction:(IAsyncResult -> 'T) * ?cancelAction:(unit -> unit) -> Async<'T>
  ...

--------------------
type Async<'T> =
static member Async.Sequence : t:seq<Async<'a>> -> Async<seq<'a>>
static member Async.Sequence : t:Async<'a1> list -> Async<'a1 list>
static member Async.Sequence : t:Async<'a> array -> Async<'a array>
static member Async.Sequence : t:Result<Async<'T>,'Error> -> Async<Result<'T,'Error>>
static member Async.Sequence : t:Choice<Async<'T>,'Choice2Of2> -> Async<Choice<'T,'Choice2Of2>>
val async : AsyncBuilder