ocaml-base-compiler
-
library dynlink
-
module Dynlink
-
-
library ocamlbytecomp
-
module Bytegen
-
module Bytelibrarian
-
module Bytelink
-
module Bytepackager
-
module Compile
-
module Emitcode
-
module Errors
-
module Instruct
-
module Maindriver
-
module Printinstr
-
-
library ocamlcommon
-
module Ast_helper
-
module Attr
-
module Cf
-
module Ci
-
module Cl
-
module Const
-
module Csig
-
module Cstr
-
module Ctf
-
module Cty
-
module Exp
-
module Incl
-
module Mb
-
module Md
-
module Mod
-
module Ms
-
module Mtd
-
module Mty
-
module Of
-
module Opn
-
module Pat
-
module Rf
-
module Sig
-
module Str
-
module Te
-
module Typ
-
module Type
-
module Val
-
module Vb
-
-
module Ast_invariants
-
module Ast_iterator
-
module Ast_mapper
-
module Attr_helper
-
module Binutils
-
module Build_path_prefix_map
-
module Builtin_attributes
-
module Bytesections
-
module CamlinternalMenhirLib
-
module Convert
-
module Simplified
-
-
module EngineTypes
-
module type ENGINE
-
module type INCREMENTAL_ENGINE_START
-
module type MONOLITHIC_ENGINE
-
-
module ErrorReports
-
module General
-
module IncrementalEngine
-
module type EVERYTHING
-
module type INCREMENTAL_ENGINE
-
module type INSPECTION
-
module type SYMBOLS
-
-
module InfiniteArray
-
module InspectionTableFormat
-
module type TABLES
-
-
module LinearizedArray
-
module PackedIntArray
-
module RowDisplacement
-
module StaticVersion
-
module TableFormat
-
module type TABLES
-
-
module TableInterpreter
-
module MakeEngineTable
-
-
-
module Ccomp
-
module Clflags
-
module Compiler_pass
-
module Float_arg_helper
-
module Int_arg_helper
-
-
module Cmi_format
-
module Cmt2annot
-
module Cmt_format
-
module Compenv
-
module Compile_common
-
module Compmisc
-
module Config
-
module Ctype
-
module TypePairs
-
module Unification_trace
-
-
module Datarepr
-
module Debuginfo
-
module Scoped_location
-
-
module Depend
-
module Dll
-
module Docstrings
-
module WithMenhir
-
-
module Domainstate
-
module Env
-
module Envaux
-
module Includeclass
-
module Includecore
-
module Includemod
-
module Lambda
-
module Lexer
-
module Local_store
-
module Location
-
module Longident
-
module Main_args
-
module type Arg_list
-
module type Bytecomp_options
-
module type Bytetop_options
-
module type Common_options
-
module type Compiler_options
-
module type Core_options
-
module Make_bytecomp_options
-
argument 1-_
-
-
module Make_bytetop_options
-
argument 1-_
-
-
module Make_ocamldoc_options
-
argument 1-_
-
-
module Make_optcomp_options
-
argument 1-_
-
-
module Make_opttop_options
-
argument 1-_
-
-
module type Ocamldoc_options
-
module type Optcommon_options
-
module type Optcomp_options
-
module type Opttop_options
-
module type Toplevel_options
-
-
module Makedepend
-
module Matching
-
module Meta
-
module Misc
-
module Color
-
module EnvLazy
-
module Error_style
-
module Int_literal_converter
-
module LongString
-
module Magic_number
-
-
module Mtype
-
module Opcodes
-
module Oprint
-
module Parse
-
module Parser
-
module Incremental
-
module MenhirInterpreter
-
-
module Patterns
-
module General
-
module Half_simple
-
module Head
-
module Non_empty_row
-
module Simple
-
-
module Persistent_env
-
module Consistbl
-
module Persistent_signature
-
-
module Pparse
-
module Pprintast
-
module Predef
-
module Primitive
-
module Printast
-
module Printlambda
-
module Printpat
-
module Printtyp
-
module Conflicts
-
module Naming_context
-
module Out_name
-
-
module Printtyped
-
module Profile
-
module Rec_check
-
module Runtimedef
-
module Simplif
-
module Stypes
-
module Subst
-
module Symtable
-
module Syntaxerr
-
module Targetint
-
module Tast_iterator
-
module Tast_mapper
-
module Terminfo
-
module Translattribute
-
module Translclass
-
module Translcore
-
module Translmod
-
module Translobj
-
module Translprim
-
module Type_immediacy
-
module Violation
-
-
module Typeclass
-
module Typecore
-
module Datatype_kind
-
-
module Typedecl
-
module Typedecl_immediacy
-
module Typedecl_properties
-
module Typedecl_separability
-
module Typedecl_unboxed
-
module Typedecl_variance
-
module Typedtree
-
module Typemod
-
module Sig_component_kind
-
module Signature_names
-
-
module Typeopt
-
module Typetexp
-
module Untypeast
-
module Warnings
-
library ocamlmiddleend
-
module Alias_analysis
-
module Allocated_const
-
module Augment_specialised_args
-
module Definition
-
module type S
-
module What_to_specialise
-
-
module Backend_var
-
module Provenance
-
module With_provenance
-
-
module Build_export_info
-
module Clambda
-
module Clambda_primitives
-
module Closure
-
module Closure_conversion
-
module Closure_conversion_aux
-
module Env
-
module Function_decls
-
module Function_decl
-
-
-
module Closure_element
-
module Closure_id
-
module Closure_middle_end
-
module Closure_offsets
-
module Closure_origin
-
module Compilation_unit
-
module Compilenv
-
module Convert_primitives
-
module Effect_analysis
-
module Export_info
-
module Export_info_for_pack
-
module Extract_projections
-
module Find_recursive_functions
-
module Flambda
-
module Constant_defining_value
-
module With_free_variables
-
-
module Flambda_invariants
-
module Flambda_iterators
-
module Flambda_middle_end
-
module Flambda_to_clambda
-
module Flambda_utils
-
module Switch_storer
-
-
module Freshening
-
module Project_var
-
-
module Id_types
-
module type BaseId
-
module Id
-
module UnitId
-
argument 1-_
-
argument 2-Compilation_unit
-
module Compilation_unit
-
-
-
module Import_approx
-
module Inconstant_idents
-
module Inline_and_simplify
-
module Inline_and_simplify_aux
-
module Inlining_cost
-
module Benefit
-
module Threshold
-
module Whether_sufficient_benefit
-
-
module Inlining_decision
-
module Inlining_stats
-
module Closure_stack
-
-
module Inlining_stats_types
-
module Decision
-
module Inlined
-
module Not_inlined
-
module Not_specialised
-
module Prevented
-
module Specialised
-
-
module Inlining_transforms
-
module Internal_variable_names
-
module Invariant_params
-
module Lift_code
-
module Lift_constants
-
module Linkage_name
-
module Mutable_variable
-
module Pass_wrapper
-
module Printclambda
-
module Printclambda_primitives
-
module Projection
-
module Ref_to_variables
-
module Remove_unused_arguments
-
module Remove_unused_closure_vars
-
module Semantics_of_primitives
-
module Set_of_closures_id
-
module Set_of_closures_origin
-
module Share_constants
-
module Simple_value_approx
-
module Simplify_boxed_integer_ops
-
module Simplify_boxed_int32
-
module Simplify_boxed_int64
-
module Simplify_boxed_nativeint
-
-
module Simplify_common
-
module Simplify_primitives
-
module Static_exception
-
module Un_anf
-
module Unbox_closures
-
module Unbox_free_vars_of_closures
-
module Unbox_specialised_args
-
module Var_within_closure
-
-
library ocamloptcomp
-
module Afl_instrument
-
module Alias_analysis
-
module Allocated_const
-
module Arch
-
module Asmgen
-
module Asmlibrarian
-
module Asmlink
-
module Asmpackager
-
module Augment_specialised_args
-
module Definition
-
module type S
-
module What_to_specialise
-
-
module Available_regs
-
module Backend_var
-
module Provenance
-
module With_provenance
-
-
module Branch_relaxation
-
module Make
-
argument 1-T
-
module Cond_branch
-
-
-
-
module Branch_relaxation_intf
-
module type S
-
module Cond_branch
-
-
-
module Build_export_info
-
module CSEgen
-
module Clambda
-
module Clambda_primitives
-
module Closure
-
module Closure_conversion
-
module Closure_conversion_aux
-
module Env
-
module Function_decls
-
module Function_decl
-
-
-
module Closure_element
-
module Closure_id
-
module Closure_middle_end
-
module Closure_offsets
-
module Closure_origin
-
module Cmm
-
module Cmm_helpers
-
module Cmmgen
-
module Cmmgen_state
-
module Coloring
-
module Comballoc
-
module Compilation_unit
-
module Compilenv
-
module Compute_ranges
-
module Make
-
argument 1-S
-
module Range_info
-
module Subrange_info
-
module Subrange_state
-
module Range
-
module Subrange
-
-
-
module Compute_ranges_intf
-
module type S
-
module Range
-
module Range_info
-
module Subrange
-
module Subrange_info
-
module Subrange_state
-
module type S_functor
-
module Range_info
-
module Subrange_info
-
module Subrange_state
-
module type S_range_info
-
module type S_subrange_info
-
module type S_subrange_state
-
-
module Convert_primitives
-
module Deadcode
-
module Effect_analysis
-
module Emit
-
module Emitaux
-
module Export_info
-
module Export_info_for_pack
-
module Extract_projections
-
module Find_recursive_functions
-
module Flambda
-
module Constant_defining_value
-
module With_free_variables
-
-
module Flambda_invariants
-
module Flambda_iterators
-
module Flambda_middle_end
-
module Flambda_to_clambda
-
module Flambda_utils
-
module Switch_storer
-
-
module Freshening
-
module Project_var
-
-
module Id_types
-
module type BaseId
-
module Id
-
module UnitId
-
argument 1-_
-
argument 2-Compilation_unit
-
module Compilation_unit
-
-
-
module Import_approx
-
module Inconstant_idents
-
module Inline_and_simplify
-
module Inline_and_simplify_aux
-
module Inlining_cost
-
module Benefit
-
module Threshold
-
module Whether_sufficient_benefit
-
-
module Inlining_decision
-
module Inlining_stats
-
module Closure_stack
-
-
module Inlining_stats_types
-
module Decision
-
module Inlined
-
module Not_inlined
-
module Not_specialised
-
module Prevented
-
module Specialised
-
-
module Inlining_transforms
-
module Interf
-
module Internal_variable_names
-
module Interval
-
module Invariant_params
-
module Lift_code
-
module Lift_constants
-
module Linear
-
module Linear_format
-
module Linearize
-
module Linkage_name
-
module Linscan
-
module Liveness
-
module Mach
-
module Mutable_variable
-
module Optcompile
-
module Opterrors
-
module Optmaindriver
-
module Pass_wrapper
-
module Printclambda
-
module Printclambda_primitives
-
module Printcmm
-
module Printlinear
-
module Printmach
-
module Proc
-
module Projection
-
module Ref_to_variables
-
module Reg_availability_set
-
module Reg_with_debug_info
-
module Debug_info
-
module Set
-
-
module Reload
-
module Reloadgen
-
module Remove_unused_arguments
-
module Remove_unused_closure_vars
-
module Schedgen
-
module Scheduling
-
module Selectgen
-
module Coeffect
-
module Effect
-
module Effect_and_coeffect
-
-
module Selection
-
module Semantics_of_primitives
-
module Set_of_closures_id
-
module Set_of_closures_origin
-
module Share_constants
-
module Simple_value_approx
-
module Simplify_boxed_integer_ops
-
module Simplify_boxed_int32
-
module Simplify_boxed_int64
-
module Simplify_boxed_nativeint
-
-
module Simplify_common
-
module Simplify_primitives
-
module Spill
-
module Split
-
module Static_exception
-
module Un_anf
-
module Unbox_closures
-
module Unbox_free_vars_of_closures
-
module Unbox_specialised_args
-
module Var_within_closure
-
module X86_gas
-
module X86_masm
-
module X86_proc
-
-
library odoc_info
-
module Odoc_analyse
-
module Odoc_ast
-
module Typedtree_search
-
module Odoc_class
-
module Odoc_comments
-
module Basic_info_retriever
-
module type Texter
-
-
module Odoc_comments_global
-
module Odoc_config
-
module Odoc_control
-
module Odoc_cross
-
module Odoc_env
-
module Odoc_exception
-
module Odoc_extension
-
module Odoc_global
-
module Odoc_inherit
-
module Odoc_lexer
-
module Odoc_merge
-
module Odoc_messages
-
module Odoc_misc
-
module Odoc_module
-
module Odoc_parameter
-
module Odoc_parser
-
module Odoc_print
-
module Odoc_search
-
module P_name
-
module type Predicates
-
module Search_by_name
-
-
module Odoc_see_lexer
-
module Odoc_sig
-
module type Info_retriever
-
module Signature_search
-
module Odoc_str
-
module Odoc_text_lexer
-
module Odoc_text_parser
-
module Odoc_type
-
module Odoc_types
-
module Odoc_value
-
-
library stdlib
-
module CamlinternalAtomic
-
module CamlinternalFormat
-
module CamlinternalFormatBasics
-
module CamlinternalLazy
-
module CamlinternalMod
-
module CamlinternalOO
-
module Stdlib
-
module Arg
-
module Array
-
module ArrayLabels
-
module Atomic
-
module Bool
-
module Buffer
-
module Bytes
-
module BytesLabels
-
module Callback
-
module Char
-
module Complex
-
module Digest
-
module Either
-
module Ephemeron
-
module GenHashTable
-
module MakeSeeded
-
argument 1-H
-
-
-
module K1
-
module MakeSeeded
-
argument 1-H
-
-
module Kn
-
module MakeSeeded
-
argument 1-H
-
-
module type S
-
module type SeededS
-
-
module Filename
-
module Float
-
module Array
-
module ArrayLabels
-
-
module Format
-
module Fun
-
module Genlex
-
module Hashtbl
-
module type HashedType
-
module MakeSeeded
-
argument 1-H
-
-
module type S
-
module type SeededHashedType
-
module type SeededS
-
-
module Int
-
module Int32
-
module Int64
-
module LargeFile
-
module Lazy
-
module Lexing
-
module List
-
module ListLabels
-
module Map
-
module type OrderedType
-
module type S
-
module Marshal
-
module MoreLabels
-
module Hashtbl
-
module type HashedType
-
module MakeSeeded
-
argument 1-H
-
-
module type S
-
module type SeededHashedType
-
module type SeededS
-
-
module Map
-
module type OrderedType
-
module type S
-
module Set
-
module type OrderedType
-
module type S
-
-
module Nativeint
-
module Obj
-
module Closure
-
module Ephemeron
-
module Extension_constructor
-
-
module Oo
-
module Option
-
module Parsing
-
module Pervasives
-
module Printf
-
module Queue
-
module Result
-
module Seq
-
module Set
-
module type OrderedType
-
module type S
-
module Stack
-
module StdLabels
-
module Stream
-
module String
-
module StringLabels
-
module Sys
-
module Immediate64
-
module type Immediate
-
module Make
-
argument 1-Immediate
-
argument 2-Non_immediate
-
-
module type Non_immediate
-
-
-
module Uchar
-
module Unit
-
-
-
library str
-
module Str
-
-
library unix
-
module UnixLabels
-
module LargeFile
-
type 'a t = unit -> 'a node
The type of delayed lists containing elements of type 'a
. Note that the concrete list node 'a node
is delayed under a closure, not a lazy
block, which means it might be recomputed every time we access it.
A fully-evaluated list node, either empty or containing an element and a delayed tail.
val empty : 'a t
The empty sequence, containing no elements.
val return : 'a -> 'a t
The singleton sequence containing only the given element.
cons x xs
is the sequence containing the element x
followed by the sequence xs
map f seq
returns a new sequence whose elements are the elements of seq
, transformed by f
. This transformation is lazy, it only applies when the result is traversed.
If seq = [1;2;3]
, then map f seq = [f 1; f 2; f 3]
.
Remove from the sequence the elements that do not satisfy the given predicate. This transformation is lazy, it only applies when the result is traversed.
Apply the function to every element; if f x = None
then x
is dropped; if f x = Some y
then y
is returned. This transformation is lazy, it only applies when the result is traversed.
Map each element to a subsequence, then return each element of this sub-sequence in turn. This transformation is lazy, it only applies when the result is traversed.
val fold_left : ( 'a -> 'b -> 'a ) -> 'a -> 'b t -> 'a
Traverse the sequence from left to right, combining each element with the accumulator using the given function. The traversal happens immediately and will not terminate on infinite sequences.
Also see List.fold_left
val iter : ( 'a -> unit ) -> 'a t -> unit
Iterate on the sequence, calling the (imperative) function on every element. The traversal happens immediately and will not terminate on infinite sequences.
val unfold : ( 'b -> ('a * 'b) option ) -> 'b -> 'a t
Build a sequence from a step function and an initial value. unfold f u
returns empty
if f u
returns None
, or fun () -> Cons (x, unfold f y)
if f u
returns Some (x, y)
.
For example, unfold (function [] -> None | h::t -> Some (h,t)) l
is equivalent to List.to_seq l
.