Skip to content

Instantly share code, notes, and snippets.

@pocketberserker
Created December 6, 2012 08:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pocketberserker/4222818 to your computer and use it in GitHub Desktop.
Save pocketberserker/4222818 to your computer and use it in GitHub Desktop.
FSharpx.Iterateeのシグネチャを書いてみた
namespace FSharpx
type Stream<'a> =
| Chunk of 'a
| Empty
| EOF
type Iteratee<'el,'a> =
| Done of 'a * Stream<'el>
| Error of exn
| Continue of (Stream<'el> -> Iteratee<'el,'a>)
type Enumerator<'el,'a> = Iteratee<'el,'a> -> Iteratee<'el,'a>
type Enumeratee<'elo,'eli,'a> =
Iteratee<'eli,'a> -> Iteratee<'elo,Iteratee<'eli,'a>>
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
module Iteratee =
val returnI : 'a -> Iteratee<'b,'a>
val empty<'a> : Iteratee<'a,unit>
val doneI : 'a -> Stream<'b> -> Iteratee<'b,'a>
val continueI : (Stream<'a> -> Iteratee<'a,'b>) -> Iteratee<'a,'b>
val throw : exn -> Iteratee<'a,'b>
val bind : ('a -> Iteratee<'b,'c>) -> Iteratee<'b,'a> -> Iteratee<'b,'c>
val opt : Iteratee<'a,'b> -> Iteratee<'a,'b option>
val catchError :
(exn -> Iteratee<'a,'b>) -> Iteratee<'a,'b> -> Iteratee<'a,'b>
val tryFinally : (unit -> unit) -> Iteratee<'a,'b> -> Iteratee<'a,'b>
val enumEOF : Iteratee<'a,'b> -> Iteratee<'c,'b>
val enumErr : exn -> 'a -> Iteratee<'b,'c>
val run_ : Iteratee<'a,'b> -> Choice<'b,exn>
val run : Iteratee<'a,'b> -> 'b
type IterateeBuilder =
new : unit -> IterateeBuilder
member
Bind : m:Iteratee<'q,'r> * f:('r -> Iteratee<'q,'s>) ->
Iteratee<'q,'s>
member
Combine : comp1:Iteratee<'n,unit> * comp2:Iteratee<'n,'o> ->
Iteratee<'n,'o>
member Delay : f:(unit -> Iteratee<'l,'m>) -> Iteratee<'l,'m>
member
For : sequence:#seq<'b> * body:('b -> Iteratee<'c,unit>) ->
Iteratee<'c,unit>
member Return : x:'a2 -> Iteratee<'a3,'a2>
member ReturnFrom : m:Iteratee<'t,'a1> -> Iteratee<'t,'a1>
member
TryFinally : m:Iteratee<'h,'i> * compensation:(unit -> unit) ->
Iteratee<'h,'i>
member
TryWith : m:Iteratee<'j,'k> * handler:(exn -> Iteratee<'j,'k>) ->
Iteratee<'j,'k>
member
Using : res:'e * body:('e -> Iteratee<'f,'g>) -> Iteratee<'f,'g>
when 'e :> System.IDisposable and 'e : null
member
While : guard:(unit -> bool) * m:Iteratee<'d,unit> ->
Iteratee<'d,unit>
member Zero : unit -> Iteratee<'p,unit>
val iteratee : IterateeBuilder
val inline returnM : 'a -> Iteratee<'b,'a>
val inline ( >>= ) :
Iteratee<'a,'b> -> ('b -> Iteratee<'a,'c>) -> Iteratee<'a,'c>
val inline ( =<< ) :
('a -> Iteratee<'b,'c>) -> Iteratee<'b,'a> -> Iteratee<'b,'c>
val inline ( <*> ) :
Iteratee<'a,('b -> 'c)> -> Iteratee<'a,'b> -> Iteratee<'a,'c>
val inline ap :
Iteratee<'a,'b> -> Iteratee<'a,('b -> 'c)> -> Iteratee<'a,'c>
val inline map : ('a -> 'b) -> Iteratee<'c,'a> -> Iteratee<'c,'b>
val inline ( <!> ) : ('a -> 'b) -> Iteratee<'c,'a> -> Iteratee<'c,'b>
val inline lift2 :
('a -> 'b -> 'c) -> Iteratee<'d,'a> -> Iteratee<'d,'b> -> Iteratee<'d,'c>
val inline ( *> ) : Iteratee<'a,'b> -> Iteratee<'a,'c> -> Iteratee<'a,'c>
val inline ( <* ) : Iteratee<'a,'b> -> Iteratee<'a,'c> -> Iteratee<'a,'b>
val inline ( >>. ) : Iteratee<'a,'b> -> Iteratee<'a,'c> -> Iteratee<'a,'c>
val inline ( >=> ) :
('a -> Iteratee<'b,'c>) ->
('c -> Iteratee<'b,'d>) -> 'a -> Iteratee<'b,'d>
val inline ( <=< ) :
('a -> Iteratee<'b,'c>) ->
(('d -> Iteratee<'b,'a>) -> 'd -> Iteratee<'b,'c>)
val joinI : Iteratee<'a,Iteratee<'b,'c>> -> Iteratee<'a,'c>
val enumList : 'a list -> Enumerator<'a,'b>
val checkDoneEx :
Stream<'c> -> ((Stream<'a> -> Iteratee<'a,'b>) -> Iteratee<'c,Iteratee<'a,'b>>) -> Enumeratee<'c,'a,'b>
val checkDone :
((Stream<'a> -> Iteratee<'a,'b>) -> Iteratee<'c,Iteratee<'a,'b>>) -> Enumeratee<'c,'a,'b>
val checkContinue0 :
(Enumerator<'a,'b> -> (Stream<'a> -> Iteratee<'a,'b>) -> Iteratee<'a,'b>) -> Enumerator<'a,'b>
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
module List =
val fold : ('a -> 'b -> 'a) -> 'a -> Iteratee<'b list,'a>
val length<'a> : Iteratee<'a list,int>
val peek<'a> : Iteratee<'a list,'a option>
val head<'a> : Iteratee<'a list,'a option>
val drop : int -> Iteratee<'a list,unit>
val dropWhile : ('a -> bool) -> Iteratee<'a list,unit>
val dropUntil : ('a -> bool) -> Iteratee<'a list,unit>
val take : int -> Iteratee<'a list,'a list>
val takeWhile : ('a -> bool) -> Iteratee<'a list,'a list>
val takeUntil : ('a -> bool) -> Iteratee<'a list,'a list>
val heads : 'a list -> Iteratee<'a list,int> when 'a : equality
val many : Iteratee<'a,'b list> -> Iteratee<'a,'b list list>
val skipNewline : Iteratee<char list,int>
val readLine : Iteratee<char list,char list>
val readLines : Iteratee<char list,System.String list>
val consume<'a> : Iteratee<'a list,'a list>
val enumeratePure1Chunk : 'a list -> Enumerator<'a list,'b>
val enumeratePureNChunk : int -> 'a list -> Enumerator<'a list,'b>
val enumerate : 'a list -> Enumerator<'a list,'b>
val connect : Iteratee<'a,'b> -> 'a list -> 'b * 'a list
val repeat : 'a -> Enumerator<'a list,'b>
val replicate : int -> 'a -> Enumerator<'a list,'b>
val isolate : int -> Enumeratee<'a list, 'a list,'b>
val isolateWhile :
('a -> bool) -> Enumeratee<'a list, 'a list,'b>
val isolateUntil :
('a -> bool) -> Enumeratee<'a list, 'a list,'b>
val concatMap :
('a -> 'b) -> Enumeratee<'a list, 'b, 'c>
val map :
('a -> 'b) -> Enumeratee<'a list, 'b list, 'c>
val filter : ('a -> bool) -> Enumeratee<'a list, 'a list, 'b>
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
module Binary =
type BS = ByteString
val fold : ('a -> byte -> 'a) -> 'a -> Iteratee<ByteString,'a>
val length : Iteratee<ByteString,int>
val peek : Iteratee<ByteString,byte option>
val head : Iteratee<ByteString,byte option>
val drop : int -> Iteratee<ByteString,unit>
val private dropWithPredicate :
'a -> ('a -> ByteString -> ByteString) -> Iteratee<ByteString,unit>
val dropWhile : (byte -> bool) -> Iteratee<ByteString,unit>
val dropUntil : (byte -> bool) -> Iteratee<ByteString,unit>
val take : int -> Iteratee<ByteString,ByteString>
val private takeWithPredicate :
('a -> bool) ->
(('a -> bool) -> ByteString -> ByteString * ByteString) ->
Iteratee<ByteString,ByteString>
val takeWhile : (byte -> bool) -> Iteratee<ByteString,ByteString>
val takeUntil : (byte -> bool) -> Iteratee<ByteString,ByteString>
val heads : ByteString -> Iteratee<ByteString,int>
val many : Iteratee<'a,ByteString> -> Iteratee<'a,ByteString list>
val skipNewline : Iteratee<ByteString,int>
val readLine : Iteratee<ByteString,ByteString>
val readLines : Iteratee<ByteString,ByteString list>
val consume : Iteratee<ByteString,ByteString>
val enumeratePure1Chunk :
ByteString -> Enumerator<ByteString,'b>
val enumeratePureNChunk :
int -> ByteString -> Enumerator<ByteString,'b>
val enumerate :
ByteString -> Enumerator<ByteString,'b>
val connect :
Iteratee<'a,'b> ->
Async<FSharp.Control.AsyncSeqInner<'a>> ->
Async<'b * FSharp.Control.AsyncSeq<'a>>
val repeat : byte -> Enumerator<ByteString, 'a>
val replicate :
int -> byte -> Enumerator<ByteString, 'a>
val isolate :
int -> Enumeratee<ByteString,ByteString,'a>
val isolateWhile :
(byte -> bool) -> Enumeratee<ByteString,ByteString,'a>
val isolateUntil :
(byte -> bool) -> Enumeratee<ByteString,ByteString,'a>
val concatMap :
(byte -> ByteString) -> Enumeratee<ByteString,ByteString,'a>
val map :
(byte -> byte) -> Enumeratee<ByteString,ByteString,'a>
val filter :
(byte -> bool) -> Enumeratee<ByteString, ByteString, 'a>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment