diff --git a/base/docs/Control.App.Console.html b/base/docs/Control.App.Console.html index ddae3ee80a..6d24bb6385 100644 --- a/base/docs/Control.App.Console.html +++ b/base/docs/Control.App.Console.html @@ -61,4 +61,4 @@ -

Control.App.Console(source)

Reexports

importpublic Control.App

Definitions

interfaceConsole : ListError->Type
Parameters: e
Methods:
putChar : Char->Appe ()
putStr : String->Appe ()
getChar : AppeChar
getLine : AppeString

Implementation: 
PrimIOe=>Consolee
putChar : Consolee=>Char->Appe ()
Totality: total
Visibility: public export
putStr : Consolee=>String->Appe ()
Totality: total
Visibility: public export
getChar : Consolee=>AppeChar
Totality: total
Visibility: public export
getLine : Consolee=>AppeString
Totality: total
Visibility: public export
putStrLn : Consolee=>String->Appe ()
Totality: total
Visibility: export
putCharLn : Consolee=>Char->Appe ()
Totality: total
Visibility: export
print : Showa=>Consolee=>a->Appe ()
Totality: total
Visibility: export
printLn : Showa=>Consolee=>a->Appe ()
Totality: total
Visibility: export
\ No newline at end of file +

Control.App.Console(source)

Reexports

importpublic Control.App

Definitions

interfaceConsole : ListError->Type
Parameters: e
Methods:
putChar : Char->Appe ()
putStr : String->Appe ()
getChar : AppeChar
getLine : AppeString

Implementation: 
PrimIOe=>Consolee
putChar : Consolee=>Char->Appe ()
Totality: total
Visibility: public export
putStr : Consolee=>String->Appe ()
Totality: total
Visibility: public export
getChar : Consolee=>AppeChar
Totality: total
Visibility: public export
getLine : Consolee=>AppeString
Totality: total
Visibility: public export
putStrLn : Consolee=>String->Appe ()
Totality: total
Visibility: export
putCharLn : Consolee=>Char->Appe ()
Totality: total
Visibility: export
print : Showa=>Consolee=>a->Appe ()
Totality: total
Visibility: export
printLn : Showa=>Consolee=>a->Appe ()
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Control.App.FileIO.html b/base/docs/Control.App.FileIO.html index a4e497918b..ef1b28877d 100644 --- a/base/docs/Control.App.FileIO.html +++ b/base/docs/Control.App.FileIO.html @@ -61,4 +61,4 @@ -

Control.App.FileIO(source)

Definitions

interfaceFileIO : ListError->Type
Parameters: e
Constraints: Has (Exception IOError :: Nil) e
Methods:
withFile : String->Mode-> (IOError->Appea) -> (File->Appea) ->Appea
fGetStr : File->AppeString
fGetChars : File->Int->AppeString
fGetChar : File->AppeChar
fPutStr : File->String->Appe ()
fPutStrLn : File->String->Appe ()
fflush : File->Appe ()
fEOF : File->AppeBool

Implementation: 
Has [PrimIO, ExceptionIOError] e=>FileIOe
withFile : FileIOe=>String->Mode-> (IOError->Appea) -> (File->Appea) ->Appea
Visibility: public export
fGetStr : FileIOe=>File->AppeString
Visibility: public export
fGetChars : FileIOe=>File->Int->AppeString
Visibility: public export
fGetChar : FileIOe=>File->AppeChar
Visibility: public export
fPutStr : FileIOe=>File->String->Appe ()
Visibility: public export
fPutStrLn : FileIOe=>File->String->Appe ()
Visibility: public export
fflush : FileIOe=>File->Appe ()
Visibility: public export
fEOF : FileIOe=>File->AppeBool
Visibility: public export
readFile : FileIOe=>String->AppeString
Visibility: export
withFileIO : Has [PrimIO] e=>App (IOError::e) a-> (a->Appeb) -> (IOError->Appeb) ->Appeb
Visibility: export
\ No newline at end of file +

Control.App.FileIO(source)

Definitions

interfaceFileIO : ListError->Type
Parameters: e
Constraints: Has (Exception IOError :: Nil) e
Methods:
withFile : String->Mode-> (IOError->Appea) -> (File->Appea) ->Appea
fGetStr : File->AppeString
fGetChars : File->Int->AppeString
fGetChar : File->AppeChar
fPutStr : File->String->Appe ()
fPutStrLn : File->String->Appe ()
fflush : File->Appe ()
fEOF : File->AppeBool

Implementation: 
Has [PrimIO, ExceptionIOError] e=>FileIOe
withFile : FileIOe=>String->Mode-> (IOError->Appea) -> (File->Appea) ->Appea
Visibility: public export
fGetStr : FileIOe=>File->AppeString
Visibility: public export
fGetChars : FileIOe=>File->Int->AppeString
Visibility: public export
fGetChar : FileIOe=>File->AppeChar
Visibility: public export
fPutStr : FileIOe=>File->String->Appe ()
Visibility: public export
fPutStrLn : FileIOe=>File->String->Appe ()
Visibility: public export
fflush : FileIOe=>File->Appe ()
Visibility: public export
fEOF : FileIOe=>File->AppeBool
Visibility: public export
readFile : FileIOe=>String->AppeString
Visibility: export
withFileIO : Has [PrimIO] e=>App (IOError::e) a-> (a->Appeb) -> (IOError->Appeb) ->Appeb
Visibility: export
\ No newline at end of file diff --git a/base/docs/Control.App.html b/base/docs/Control.App.html index 097be62d97..b5f220e66e 100644 --- a/base/docs/Control.App.html +++ b/base/docs/Control.App.html @@ -61,4 +61,4 @@ -

Control.App(source)

Definitions

Error : Type
  `Error` is a type synonym for `Type`, specify for exception handling.

Visibility: public export
dataHasErr : Error->ListError->Type
Totality: total
Visibility: public export
Constructors:
Here : HasErre (e::es)
There : HasErrees->HasErre (e'::es)

Hint: 
HasErrAppHasIOe=>PrimIOe
dataPath : Type
  States whether the program's execution path is linear or might throw exceptions so that we can know
whether it is safe to reference linear resources.

Totality: total
Visibility: public export
Constructors:
MayThrow : Path
NoThrow : Path

Hints:
Applicative (Appes)
Functor (Appes)
Uninhabited (OneOf [] p)
dataUsage : Type
Totality: total
Visibility: public export
Constructors:
One : Usage
Any : Usage
0Has : List (a->Type) ->a->Type
Visibility: public export
dataSafeBind : Path->Path->Type
Totality: total
Visibility: public export
Constructors:
SafeSame : SafeBindll
SafeToThrow : SafeBindNoThrowMayThrow
dataApp : {defaultMayThrow_ : Path} ->ListError->Type->Type
  A type supports throwing and catching exceptions. See `interface Exception err e` for details.
@ l An implicit Path states whether the program's execution path is linear or might throw
exceptions. The default value is `MayThrow` which represents that the program might throw.
@ es A list of exception types that can be thrown. Constrained interfaces can be defined by
parameterising with a list of errors `es`.

Totality: total
Visibility: export
Constructor: 
MkApp : (1_ : ((1_ : %World) ->AppRes (execTylet))) ->Appet

Hints:
Applicative (Appes)
Functor (Appes)
Monad (Appes)
dataApp1 : {defaultOne_ : Usage} ->ListError->Type->Type
Totality: total
Visibility: export
Constructor: 
MkApp1 : (1_ : ((1_ : %World) ->App1Resut)) ->App1et
Cont1Type : Usage->Type->Usage->ListError->Type->Type
Visibility: public export
bindApp1 : (1_ : App1ea) -> (1_ : Cont1Typeuau'eb) ->App1eb
Visibility: export
dataAppHasIO : Type
  When type is present in app "errors" list, app is allowed to perform I/O.

Totality: total
Visibility: public export
Hints:
HasErrAppHasIOe=>PrimIOe
UninhabitedAppHasIO
bindL : Appea-> (1_ : (a->Appeb)) ->Appeb
Visibility: export
seqL : Appe () -> (1_ : Appeb) ->Appeb
Visibility: export
app : (1_ : Appea) ->App1ea
Visibility: export
app1 : (1_ : App1ea) ->Appea
Visibility: export
(>>=) : SafeBindll'=>Appea-> (a->Appeb) ->Appeb
Visibility: export
Fixity Declaration: infixl operator, level 1
(>>=) : (1_ : App1ea) -> (1_ : Cont1Typeuau'eb) ->App1eb
Visibility: export
Fixity Declaration: infixl operator, level 1
(>>) : (1_ : App1e ()) -> (1_ : App1eb) ->App1eb
Visibility: export
Fixity Declaration: infixl operator, level 1
pure : a->App1ea
Visibility: export
pure1 : (1_ : a) ->App1ea
Visibility: export
dataState : a->Type->ListError->Type
Totality: total
Visibility: export
Constructor: 
MkState : IOReft->Statetagte

Hint: 
Statetagte->Statetagt (eff::e)
mapState : Statetagte->Statetagt (eff::e)
Visibility: export
get : (0tag : {_:2831}) ->Statetagte=>Appet
Visibility: export
put : (0tag : {_:2883}) ->Statetagte=>t->Appe ()
Visibility: export
modify : (0tag : {_:2941}) ->Statetagte=> (t->t) ->Appe ()
Visibility: export
new : t-> (Statetagte=>Appea) ->Appea
Visibility: export
Exception : Error->ListError->Type
  An alias for `HasErr`.

Visibility: public export
throw : HasErrerres=>err->Appesa
Visibility: export
catch : HasErrerres=>Appesa-> (err->Appesa) ->Appesa
Visibility: export
handle : App (err::e) a-> (a->Appeb) -> (err->Appeb) ->Appeb
Visibility: export
lift : Appea->App (err::e) a
Visibility: export
Init : ListError
Visibility: public export
run : AppInita->IOa
  The only way provided by `Control.App` to run an App.
@ Init A concrete list of errors.

Visibility: export
noThrow : AppInita->AppInita
Visibility: export
interfacePrimIO : ListError->Type
Parameters: e
Methods:
primIO : IOa->Appea
primIO1 : (1_ : IOa) ->App1ea
fork : (PrimIOe'=>Appe' ()) ->Appe ()

Implementation: 
HasErrAppHasIOe=>PrimIOe
primIO : PrimIOe=>IOa->Appea
Visibility: public export
primIO1 : PrimIOe=> (1_ : IOa) ->App1ea
Visibility: public export
fork : PrimIOe=> (PrimIOe'=>Appe' ()) ->Appe ()
Visibility: public export
new1 : t-> (1_ : (Statetagte=>App1ea)) ->App1ea
Visibility: export
dataFileEx : Type
Totality: total
Visibility: public export
Constructors:
GenericFileEx : Int->FileEx
FileReadError : FileEx
FileWriteError : FileEx
FileNotFound : FileEx
PermissionDenied : FileEx
FileExists : FileEx

Hint: 
ShowFileEx
dataIOError : Type
Totality: total
Visibility: public export
Constructors:
GenericErr : String->IOError
FileErr : FileEx->IOError

Hint: 
ShowIOError
\ No newline at end of file +

Control.App(source)

Definitions

Error : Type
  `Error` is a type synonym for `Type`, specify for exception handling.

Visibility: public export
dataHasErr : Error->ListError->Type
Totality: total
Visibility: public export
Constructors:
Here : HasErre (e::es)
There : HasErrees->HasErre (e'::es)

Hint: 
HasErrAppHasIOe=>PrimIOe
dataPath : Type
  States whether the program's execution path is linear or might throw exceptions so that we can know
whether it is safe to reference linear resources.

Totality: total
Visibility: public export
Constructors:
MayThrow : Path
NoThrow : Path

Hints:
Applicative (Appes)
Functor (Appes)
Uninhabited (OneOf [] p)
dataUsage : Type
Totality: total
Visibility: public export
Constructors:
One : Usage
Any : Usage
0Has : List (a->Type) ->a->Type
Visibility: public export
dataSafeBind : Path->Path->Type
Totality: total
Visibility: public export
Constructors:
SafeSame : SafeBindll
SafeToThrow : SafeBindNoThrowMayThrow
dataApp : {defaultMayThrow_ : Path} ->ListError->Type->Type
  A type supports throwing and catching exceptions. See `interface Exception err e` for details.
@ l An implicit Path states whether the program's execution path is linear or might throw
exceptions. The default value is `MayThrow` which represents that the program might throw.
@ es A list of exception types that can be thrown. Constrained interfaces can be defined by
parameterising with a list of errors `es`.

Totality: total
Visibility: export
Constructor: 
MkApp : (1_ : ((1_ : %World) ->AppRes (execTylet))) ->Appet

Hints:
Applicative (Appes)
Functor (Appes)
Monad (Appes)
dataApp1 : {defaultOne_ : Usage} ->ListError->Type->Type
Totality: total
Visibility: export
Constructor: 
MkApp1 : (1_ : ((1_ : %World) ->App1Resut)) ->App1et
Cont1Type : Usage->Type->Usage->ListError->Type->Type
Visibility: public export
bindApp1 : (1_ : App1ea) -> (1_ : Cont1Typeuau'eb) ->App1eb
Visibility: export
dataAppHasIO : Type
  When type is present in app "errors" list, app is allowed to perform I/O.

Totality: total
Visibility: public export
Hints:
HasErrAppHasIOe=>PrimIOe
UninhabitedAppHasIO
bindL : Appea-> (1_ : (a->Appeb)) ->Appeb
Visibility: export
seqL : Appe () -> (1_ : Appeb) ->Appeb
Visibility: export
app : (1_ : Appea) ->App1ea
Visibility: export
app1 : (1_ : App1ea) ->Appea
Visibility: export
(>>=) : SafeBindll'=>Appea-> (a->Appeb) ->Appeb
Visibility: export
Fixity Declaration: infixl operator, level 1
(>>=) : (1_ : App1ea) -> (1_ : Cont1Typeuau'eb) ->App1eb
Visibility: export
Fixity Declaration: infixl operator, level 1
(>>) : (1_ : App1e ()) -> (1_ : App1eb) ->App1eb
Visibility: export
Fixity Declaration: infixl operator, level 1
pure : a->App1ea
Visibility: export
pure1 : (1_ : a) ->App1ea
Visibility: export
dataState : a->Type->ListError->Type
Totality: total
Visibility: export
Constructor: 
MkState : IOReft->Statetagte

Hint: 
Statetagte->Statetagt (eff::e)
mapState : Statetagte->Statetagt (eff::e)
Visibility: export
get : (0tag : {_:2831}) ->Statetagte=>Appet
Visibility: export
put : (0tag : {_:2883}) ->Statetagte=>t->Appe ()
Visibility: export
modify : (0tag : {_:2941}) ->Statetagte=> (t->t) ->Appe ()
Visibility: export
new : t-> (Statetagte=>Appea) ->Appea
Visibility: export
Exception : Error->ListError->Type
  An alias for `HasErr`.

Visibility: public export
throw : HasErrerres=>err->Appesa
Visibility: export
catch : HasErrerres=>Appesa-> (err->Appesa) ->Appesa
Visibility: export
handle : App (err::e) a-> (a->Appeb) -> (err->Appeb) ->Appeb
Visibility: export
lift : Appea->App (err::e) a
Visibility: export
Init : ListError
Visibility: public export
run : AppInita->IOa
  The only way provided by `Control.App` to run an App.
@ Init A concrete list of errors.

Visibility: export
noThrow : AppInita->AppInita
Visibility: export
interfacePrimIO : ListError->Type
Parameters: e
Methods:
primIO : IOa->Appea
primIO1 : (1_ : IOa) ->App1ea
fork : (PrimIOe'=>Appe' ()) ->Appe ()

Implementation: 
HasErrAppHasIOe=>PrimIOe
primIO : PrimIOe=>IOa->Appea
Visibility: public export
primIO1 : PrimIOe=> (1_ : IOa) ->App1ea
Visibility: public export
fork : PrimIOe=> (PrimIOe'=>Appe' ()) ->Appe ()
Visibility: public export
new1 : t-> (1_ : (Statetagte=>App1ea)) ->App1ea
Visibility: export
dataFileEx : Type
Totality: total
Visibility: public export
Constructors:
GenericFileEx : Int->FileEx
FileReadError : FileEx
FileWriteError : FileEx
FileNotFound : FileEx
PermissionDenied : FileEx
FileExists : FileEx

Hint: 
ShowFileEx
dataIOError : Type
Totality: total
Visibility: public export
Constructors:
GenericErr : String->IOError
FileErr : FileEx->IOError

Hint: 
ShowIOError
\ No newline at end of file diff --git a/base/docs/Control.Applicative.Const.html b/base/docs/Control.Applicative.Const.html index b67f24f804..b9ac3d27e1 100644 --- a/base/docs/Control.Applicative.Const.html +++ b/base/docs/Control.Applicative.Const.html @@ -61,4 +61,4 @@ -

Control.Applicative.Const(source)

Definitions

recordConst : Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkConst : a->Constab

Projection: 
.runConst : Constab->a

Hints:
Absa=>Abs (Constab)
Monoida=>Applicative (Consta)
BifoldableConst
BifunctorConst
BitraversableConst
Bitsa=>Bits (Constab)
Contravariant (Consta)
Eqa=>Eq (Constab)
Foldable (Consta)
Fractionala=>Fractional (Constab)
FromStringa=>FromString (Constab)
Functor (Consta)
Integrala=>Integral (Constab)
Monoida=>Monoid (Constab)
Nega=>Neg (Constab)
Numa=>Num (Constab)
Orda=>Ord (Constab)
Semigroupa=>Semigroup (Constab)
Showa=>Show (Constab)
Traversable (Consta)
.runConst : Constab->a
Totality: total
Visibility: public export
runConst : Constab->a
Totality: total
Visibility: public export
\ No newline at end of file +

Control.Applicative.Const(source)

Definitions

recordConst : Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkConst : a->Constab

Projection: 
.runConst : Constab->a

Hints:
Absa=>Abs (Constab)
Monoida=>Applicative (Consta)
BifoldableConst
BifunctorConst
BitraversableConst
Bitsa=>Bits (Constab)
Contravariant (Consta)
Eqa=>Eq (Constab)
Foldable (Consta)
Fractionala=>Fractional (Constab)
FromStringa=>FromString (Constab)
Functor (Consta)
Integrala=>Integral (Constab)
Monoida=>Monoid (Constab)
Nega=>Neg (Constab)
Numa=>Num (Constab)
Orda=>Ord (Constab)
Semigroupa=>Semigroup (Constab)
Showa=>Show (Constab)
Traversable (Consta)
.runConst : Constab->a
Totality: total
Visibility: public export
runConst : Constab->a
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Function.FunExt.html b/base/docs/Control.Function.FunExt.html index c96ece0390..4f45e5073d 100644 --- a/base/docs/Control.Function.FunExt.html +++ b/base/docs/Control.Function.FunExt.html @@ -61,4 +61,4 @@ -

Control.Function.FunExt(source)

Definitions

interfaceFunExt : Type
  This interface contains a proposition for the function extensionality.
It is not meant to be ever implemented.
It can be used to mark properties as requiring function extensionality to hold,
i.e. its main objective is to provide a universal way to formulate a conditional property
that holds only in the presence of function extensionality.

Methods:
funExt : {0b : a->Type} -> ((x : a) ->fx=gx) ->f=g
funExt : FunExt=> {0b : a->Type} -> ((x : a) ->fx=gx) ->f=g
Totality: total
Visibility: public export
\ No newline at end of file +

Control.Function.FunExt(source)

Definitions

interfaceFunExt : Type
  This interface contains a proposition for the function extensionality.
It is not meant to be ever implemented.
It can be used to mark properties as requiring function extensionality to hold,
i.e. its main objective is to provide a universal way to formulate a conditional property
that holds only in the presence of function extensionality.

Methods:
funExt : {0b : a->Type} -> ((x : a) ->fx=gx) ->f=g
funExt : FunExt=> {0b : a->Type} -> ((x : a) ->fx=gx) ->f=g
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Function.html b/base/docs/Control.Function.html index f4e3d5537e..620867da73 100644 --- a/base/docs/Control.Function.html +++ b/base/docs/Control.Function.html @@ -61,4 +61,4 @@ -

Control.Function(source)

Definitions

interfaceInjective : (a->b) ->Type
  An injective function maps distinct elements to distinct elements.

Parameters: f
Constructor: 
MkInjective

Methods:
injective : fx=fy->x=y

Implementations:
InjectiveLeft
InjectiveRight
Injective (\{arg:0}=>x:::{arg:0})
Injective (\{arg:0}=>{arg:0}:::ys)
InjectiveThis
InjectiveThat
Injective (Bothx)
Injective (\{arg:0}=>Both{arg:0}y)
Injective ((x::))
Injective (\x=>x::xs)
InjectiveJust
InjectiveS
InjectiveFS
InjectivefinToNat
injective : Injectivef=>fx=fy->x=y
Totality: total
Visibility: public export
inj : (0f : (a->b)) -> {auto0_ : Injectivef} -> (0_ : fx=fy) ->x=y
Totality: total
Visibility: public export
interfaceBiinjective : (a->b->c) ->Type
  An bi-injective function maps distinct elements to distinct elements in both arguments.
This is more strict than injectivity on each of arguments.
For instance, list appending is injective on both arguments but is not biinjective.

Parameters: f
Constructor: 
MkBiinjective

Methods:
biinjective : fxv=fyw-> (x=y, v=w)

Implementations:
Biinjective(:::)
BiinjectiveBoth
Biinjective(::)
Biinjective(::)
BiinjectiveMkPair
Biinjective(:<)
biinjective : Biinjectivef=>fxv=fyw-> (x=y, v=w)
Totality: total
Visibility: public export
biinj : (0f : ({type_of_y:1507}->{type_of_w:1506}->{a:1508})) -> {auto0_ : Biinjectivef} -> (0_ : fxv=fyw) -> (x=y, v=w)
Totality: total
Visibility: public export
\ No newline at end of file +

Control.Function(source)

Definitions

interfaceInjective : (a->b) ->Type
  An injective function maps distinct elements to distinct elements.

Parameters: f
Constructor: 
MkInjective

Methods:
injective : fx=fy->x=y

Implementations:
InjectiveLeft
InjectiveRight
Injective (\{arg:0}=>x:::{arg:0})
Injective (\{arg:0}=>{arg:0}:::ys)
InjectiveThis
InjectiveThat
Injective (Bothx)
Injective (\{arg:0}=>Both{arg:0}y)
Injective ((x::))
Injective (\x=>x::xs)
InjectiveJust
InjectiveS
InjectiveFS
InjectivefinToNat
injective : Injectivef=>fx=fy->x=y
Totality: total
Visibility: public export
inj : (0f : (a->b)) -> {auto0_ : Injectivef} -> (0_ : fx=fy) ->x=y
Totality: total
Visibility: public export
interfaceBiinjective : (a->b->c) ->Type
  An bi-injective function maps distinct elements to distinct elements in both arguments.
This is more strict than injectivity on each of arguments.
For instance, list appending is injective on both arguments but is not biinjective.

Parameters: f
Constructor: 
MkBiinjective

Methods:
biinjective : fxv=fyw-> (x=y, v=w)

Implementations:
Biinjective(:::)
BiinjectiveBoth
Biinjective(::)
Biinjective(::)
BiinjectiveMkPair
Biinjective(:<)
biinjective : Biinjectivef=>fxv=fyw-> (x=y, v=w)
Totality: total
Visibility: public export
biinj : (0f : ({type_of_y:1507}->{type_of_w:1506}->{a:1508})) -> {auto0_ : Biinjectivef} -> (0_ : fxv=fyw) -> (x=y, v=w)
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Either.html b/base/docs/Control.Monad.Either.html index 173af98566..69dd7a4e6b 100644 --- a/base/docs/Control.Monad.Either.html +++ b/base/docs/Control.Monad.Either.html @@ -61,4 +61,4 @@ -

Control.Monad.Either(source)

Reexports

importpublic Control.Monad.Error.Either as Control.Monad.Either
importpublic Control.Monad.Error.Interface as Control.Monad.Either
\ No newline at end of file +

Control.Monad.Either(source)

Reexports

importpublic Control.Monad.Error.Either as Control.Monad.Either
importpublic Control.Monad.Error.Interface as Control.Monad.Either
\ No newline at end of file diff --git a/base/docs/Control.Monad.Error.Either.html b/base/docs/Control.Monad.Error.Either.html index 9bbb9c9ec6..0325d08475 100644 --- a/base/docs/Control.Monad.Error.Either.html +++ b/base/docs/Control.Monad.Error.Either.html @@ -63,4 +63,4 @@

Control.Monad.Error.Either(source)

Provides a monad transformer `EitherT` that extends an inner monad with the
 ability to throw and catch exceptions.
-

Definitions

dataEitherT : Type-> (Type->Type) ->Type->Type
  A monad transformer extending an inner monad with the ability to throw and
catch exceptions.

Sequenced actions produce an exception if either action produces an
exception, with preference for the first exception. If neither produce an
exception, neither does the sequence of actions.

`MaybeT m a` is equivalent to `EitherT () m a`, that is, an computation
that can only throw a single, information-less exception.

Totality: total
Visibility: public export
Constructor: 
MkEitherT : m (Eitherea) ->EitherTema

Hints:
(Monadm, Monoide) =>Alternative (EitherTem)
Applicativem=>Applicative (EitherTem)
Eq (m (Eitherea)) =>Eq (EitherTema)
Foldablem=>Foldable (EitherTem)
Functorm=>Functor (EitherTem)
HasIOm=>HasIO (EitherTem)
Monadm=>Monad (EitherTem)
Monadm=>MonadErrore (EitherTem)
MonadTrans (EitherTe)
Ord (m (Eitherea)) =>Ord (EitherTema)
Monadm=>Semigroup (EitherTema)
Show (m (Eitherea)) =>Show (EitherTema)
Traversablem=>Traversable (EitherTem)
runEitherT : EitherTema->m (Eitherea)
  Unwrap an `EitherT` computation.

Totality: total
Visibility: public export
eitherT : Monadm=> (a->mc) -> (b->mc) ->EitherTamb->mc
  Run an `EitherT` computation, handling results and exceptions with seperate
functions.

This is a version of `either` lifted to work with `EitherT`.

Totality: total
Visibility: public export
mapEitherT : (m (Eitherea) ->n (Eithere'a')) ->EitherTema->EitherTe'na'
  Map over the underlying monadic computation.

Totality: total
Visibility: public export
bimapEitherT : Functorm=> (a->c) -> (b->d) ->EitherTamb->EitherTcmd
  Map over the result or the exception of a monadic computation.

Totality: total
Visibility: public export
left : Applicativem=>e->EitherTema
  A version of `Left` lifted to work with `EitherT`.

This is equivalent to `throwE`.

Totality: total
Visibility: public export
right : Applicativem=>a->EitherTema
  A version of `Right` lifted to work with `EitherT`.

This is equivalent to `pure`.

Totality: total
Visibility: public export
swapEitherT : Functorm=>EitherTema->EitherTame
  Swap the result and the exception of a monadic computation.

Totality: total
Visibility: public export
throwE : Applicativem=>e->EitherTema
  Throw an exception in a monadic computation.

Totality: total
Visibility: public export
catchE : Monadm=>EitherTema-> (e->EitherTe'ma) ->EitherTe'ma
  Handle an exception thrown in a monadic computation.

Since the handler catches all errors thrown in the computation, it may
raise a different exception type.

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataEitherT : Type-> (Type->Type) ->Type->Type
  A monad transformer extending an inner monad with the ability to throw and
catch exceptions.

Sequenced actions produce an exception if either action produces an
exception, with preference for the first exception. If neither produce an
exception, neither does the sequence of actions.

`MaybeT m a` is equivalent to `EitherT () m a`, that is, an computation
that can only throw a single, information-less exception.

Totality: total
Visibility: public export
Constructor: 
MkEitherT : m (Eitherea) ->EitherTema

Hints:
(Monadm, Monoide) =>Alternative (EitherTem)
Applicativem=>Applicative (EitherTem)
Eq (m (Eitherea)) =>Eq (EitherTema)
Foldablem=>Foldable (EitherTem)
Functorm=>Functor (EitherTem)
HasIOm=>HasIO (EitherTem)
Monadm=>Monad (EitherTem)
Monadm=>MonadErrore (EitherTem)
MonadTrans (EitherTe)
Ord (m (Eitherea)) =>Ord (EitherTema)
Monadm=>Semigroup (EitherTema)
Show (m (Eitherea)) =>Show (EitherTema)
Traversablem=>Traversable (EitherTem)
runEitherT : EitherTema->m (Eitherea)
  Unwrap an `EitherT` computation.

Totality: total
Visibility: public export
eitherT : Monadm=> (a->mc) -> (b->mc) ->EitherTamb->mc
  Run an `EitherT` computation, handling results and exceptions with seperate
functions.

This is a version of `either` lifted to work with `EitherT`.

Totality: total
Visibility: public export
mapEitherT : (m (Eitherea) ->n (Eithere'a')) ->EitherTema->EitherTe'na'
  Map over the underlying monadic computation.

Totality: total
Visibility: public export
bimapEitherT : Functorm=> (a->c) -> (b->d) ->EitherTamb->EitherTcmd
  Map over the result or the exception of a monadic computation.

Totality: total
Visibility: public export
left : Applicativem=>e->EitherTema
  A version of `Left` lifted to work with `EitherT`.

This is equivalent to `throwE`.

Totality: total
Visibility: public export
right : Applicativem=>a->EitherTema
  A version of `Right` lifted to work with `EitherT`.

This is equivalent to `pure`.

Totality: total
Visibility: public export
swapEitherT : Functorm=>EitherTema->EitherTame
  Swap the result and the exception of a monadic computation.

Totality: total
Visibility: public export
throwE : Applicativem=>e->EitherTema
  Throw an exception in a monadic computation.

Totality: total
Visibility: public export
catchE : Monadm=>EitherTema-> (e->EitherTe'ma) ->EitherTe'ma
  Handle an exception thrown in a monadic computation.

Since the handler catches all errors thrown in the computation, it may
raise a different exception type.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Error.Interface.html b/base/docs/Control.Monad.Error.Interface.html index 6f66d08d7e..18a19032fd 100644 --- a/base/docs/Control.Monad.Error.Interface.html +++ b/base/docs/Control.Monad.Error.Interface.html @@ -62,4 +62,4 @@

Control.Monad.Error.Interface(source)

The Error monad (also called the Exception monad).
-

Definitions

interfaceMonadError : Type-> (Type->Type) ->Type
  The strategy of combining computations that can throw exceptions
by bypassing bound functions
from the point an exception is thrown to the point that it is handled.
Is parameterized over the type of error information and
the monad type constructor.
It is common to use `Either String` as the monad type constructor
for an error monad in which error descriptions take the form of strings.
In that case and many other common cases the resulting monad is already defined
as an instance of the 'MonadError' class.

Parameters: e, m
Constraints: Monad m
Methods:
throwError : e->ma
  Is used within a monadic computation to begin exception processing.
catchError : ma-> (e->ma) ->ma
  A handler function to handle previous errors and return to normal execution.
A common idiom is:

```idris example
do { action1; action2; action3 } `catchError` handler
```

Implementations:
MonadError () Maybe
Monadm=>MonadError () (MaybeTm)
MonadErrore (Eithere)
Monadm=>MonadErrore (EitherTem)
MonadErrorem=>MonadErrore (MaybeTm)
MonadErrorem=>MonadErrore (ReaderTrm)
MonadErrorem=>MonadErrore (StateTrm)
MonadErrorem=>MonadErrore (RWSTrwsm)
MonadErrorem=>MonadErrore (WriterTwm)
throwError : MonadErrorem=>e->ma
  Is used within a monadic computation to begin exception processing.

Totality: total
Visibility: public export
catchError : MonadErrorem=>ma-> (e->ma) ->ma
  A handler function to handle previous errors and return to normal execution.
A common idiom is:

```idris example
do { action1; action2; action3 } `catchError` handler
```

Totality: total
Visibility: public export
liftEither : MonadErrorem=>Eitherea->ma
  Lifts an `Either e` into any `MonadError e`.

Totality: total
Visibility: public export
tryError : MonadErrorem=>ma->m (Eitherea)
  Makes a success or failure of an action visible in
the return type.

Totality: total
Visibility: public export
withError : MonadErrorem=> (e->e) ->ma->ma
  `MonadError` analogue to the `withEitherT` function.
Modify the value (but not the type) of an error.
If you need to change the type of `e` use `mapError`.

Totality: total
Visibility: public export
handleError : MonadErrorem=> (e->ma) ->ma->ma
  Flipped version of `catchError`.

Totality: total
Visibility: public export
mapError : (MonadErrorem, MonadErrore'n) => (m (Eitherea) ->n (Eithere'b)) ->ma->nb
  `MonadError` analogue of the `mapEitherT` function.  The
computation is unwrapped, a function is applied to the `Either`, and
the result is lifted into the second `MonadError` instance.

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

interfaceMonadError : Type-> (Type->Type) ->Type
  The strategy of combining computations that can throw exceptions
by bypassing bound functions
from the point an exception is thrown to the point that it is handled.
Is parameterized over the type of error information and
the monad type constructor.
It is common to use `Either String` as the monad type constructor
for an error monad in which error descriptions take the form of strings.
In that case and many other common cases the resulting monad is already defined
as an instance of the 'MonadError' class.

Parameters: e, m
Constraints: Monad m
Methods:
throwError : e->ma
  Is used within a monadic computation to begin exception processing.
catchError : ma-> (e->ma) ->ma
  A handler function to handle previous errors and return to normal execution.
A common idiom is:

```idris example
do { action1; action2; action3 } `catchError` handler
```

Implementations:
MonadError () Maybe
Monadm=>MonadError () (MaybeTm)
MonadErrore (Eithere)
Monadm=>MonadErrore (EitherTem)
MonadErrorem=>MonadErrore (MaybeTm)
MonadErrorem=>MonadErrore (ReaderTrm)
MonadErrorem=>MonadErrore (StateTrm)
MonadErrorem=>MonadErrore (RWSTrwsm)
MonadErrorem=>MonadErrore (WriterTwm)
throwError : MonadErrorem=>e->ma
  Is used within a monadic computation to begin exception processing.

Totality: total
Visibility: public export
catchError : MonadErrorem=>ma-> (e->ma) ->ma
  A handler function to handle previous errors and return to normal execution.
A common idiom is:

```idris example
do { action1; action2; action3 } `catchError` handler
```

Totality: total
Visibility: public export
liftEither : MonadErrorem=>Eitherea->ma
  Lifts an `Either e` into any `MonadError e`.

Totality: total
Visibility: public export
tryError : MonadErrorem=>ma->m (Eitherea)
  Makes a success or failure of an action visible in
the return type.

Totality: total
Visibility: public export
withError : MonadErrorem=> (e->e) ->ma->ma
  `MonadError` analogue to the `withEitherT` function.
Modify the value (but not the type) of an error.
If you need to change the type of `e` use `mapError`.

Totality: total
Visibility: public export
handleError : MonadErrorem=> (e->ma) ->ma->ma
  Flipped version of `catchError`.

Totality: total
Visibility: public export
mapError : (MonadErrorem, MonadErrore'n) => (m (Eitherea) ->n (Eithere'b)) ->ma->nb
  `MonadError` analogue of the `mapEitherT` function.  The
computation is unwrapped, a function is applied to the `Either`, and
the result is lifted into the second `MonadError` instance.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Identity.html b/base/docs/Control.Monad.Identity.html index 9584b1e917..35d8d02542 100644 --- a/base/docs/Control.Monad.Identity.html +++ b/base/docs/Control.Monad.Identity.html @@ -61,4 +61,4 @@ -

Control.Monad.Identity(source)

Definitions

recordIdentity : Type->Type
  The identity monad. This monad provides no abilities other than pure
computation.

Totality: total
Visibility: public export
Constructor: 
Id : a->Identitya

Projection: 
.runIdentity : Identitya->a

Hints:
Absa=>Abs (Identitya)
ApplicativeIdentity
Bitsa=>Bits (Identitya)
Eqa=>Eq (Identitya)
Fractionala=>Fractional (Identitya)
FromStringa=>FromString (Identitya)
FunctorIdentity
Integrala=>Integral (Identitya)
MonadIdentity
Monoida=>Monoid (Identitya)
Nega=>Neg (Identitya)
Numa=>Num (Identitya)
Orda=>Ord (Identitya)
Semigroupa=>Semigroup (Identitya)
Showa=>Show (Identitya)
.runIdentity : Identitya->a
Totality: total
Visibility: public export
runIdentity : Identitya->a
Totality: total
Visibility: public export
\ No newline at end of file +

Control.Monad.Identity(source)

Definitions

recordIdentity : Type->Type
  The identity monad. This monad provides no abilities other than pure
computation.

Totality: total
Visibility: public export
Constructor: 
Id : a->Identitya

Projection: 
.runIdentity : Identitya->a

Hints:
Absa=>Abs (Identitya)
ApplicativeIdentity
Bitsa=>Bits (Identitya)
Eqa=>Eq (Identitya)
Fractionala=>Fractional (Identitya)
FromStringa=>FromString (Identitya)
FunctorIdentity
Integrala=>Integral (Identitya)
MonadIdentity
Monoida=>Monoid (Identitya)
Nega=>Neg (Identitya)
Numa=>Num (Identitya)
Orda=>Ord (Identitya)
Semigroupa=>Semigroup (Identitya)
Showa=>Show (Identitya)
.runIdentity : Identitya->a
Totality: total
Visibility: public export
runIdentity : Identitya->a
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Maybe.html b/base/docs/Control.Monad.Maybe.html index 26fae1c1a5..2e063e3855 100644 --- a/base/docs/Control.Monad.Maybe.html +++ b/base/docs/Control.Monad.Maybe.html @@ -61,4 +61,4 @@ -

Control.Monad.Maybe(source)

Definitions

dataMaybeT : (Type->Type) ->Type->Type
  A monad transformer extending an inner monad with the ability to not return
a result.

Sequenced actions produce a result only if both actions return a result.

`MaybeT m a` is equivalent to `EitherT () m a`, that is, an computation
that can only throw a single, information-less exception.

Totality: total
Visibility: public export
Constructor: 
MkMaybeT : m (Maybea) ->MaybeTma

Hints:
Monadm=>Alternative (MaybeTm)
Applicativem=>Applicative (MaybeTm)
Eq (m (Maybea)) =>Eq (MaybeTma)
Foldablem=>Foldable (MaybeTm)
Functorm=>Functor (MaybeTm)
HasIOm=>HasIO (MaybeTm)
Monadm=>Monad (MaybeTm)
Monadm=>MonadError () (MaybeTm)
MonadErrorem=>MonadErrore (MaybeTm)
MonadTransMaybeT
Monadm=>Monoid (MaybeTma)
Ord (m (Maybea)) =>Ord (MaybeTma)
Monadm=>Semigroup (MaybeTma)
Show (m (Maybea)) =>Show (MaybeTma)
Traversablem=>Traversable (MaybeTm)
runMaybeT : MaybeTma->m (Maybea)
  Unwrap a `MaybeT` computation.

Totality: total
Visibility: public export
isNothingT : Functorm=>MaybeTma->mBool
  Check if a monadic computation returns a result. This returns `False` if
the computation returns a result, and `True` otherwise.

This is a version of `isNothing` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
isJustT : Functorm=>MaybeTma->mBool
  Check if a monadic computation returns a result. This returns `True` if
the computation returns a result, and `False` otherwise.

This is a version of `isJust` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
maybeT : Monadm=>mb-> (a->mb) ->MaybeTma->mb
  Run a `MaybeT` computation, handling the case of a result or no result
seperately.

This is a version of `maybe` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
fromMaybeT : Monadm=>ma->MaybeTma->ma
  Run a `MaybeT` computation providing a default value.

This is a version of `fromMaybe` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
toMaybeT : Functorm=>Bool->ma->MaybeTma
  Return a value if a condition is met, or else no value.

This is a version of `toMaybe` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
mapMaybeT : (m (Maybea) ->n (Maybea')) ->MaybeTma->MaybeTna'
  Map over the underlying computation.

Totality: total
Visibility: public export
just : Applicativem=>a->MaybeTma
  A version of `Just` lifted to work with `MaybeT`.

This is equivalent to `pure`.

Totality: total
Visibility: public export
nothing : Applicativem=>MaybeTma
  A version of `Nothing` lifted to work with `MaybeT`.

This is equivalent to `throwE ()`.

Totality: total
Visibility: public export
\ No newline at end of file +

Control.Monad.Maybe(source)

Definitions

dataMaybeT : (Type->Type) ->Type->Type
  A monad transformer extending an inner monad with the ability to not return
a result.

Sequenced actions produce a result only if both actions return a result.

`MaybeT m a` is equivalent to `EitherT () m a`, that is, an computation
that can only throw a single, information-less exception.

Totality: total
Visibility: public export
Constructor: 
MkMaybeT : m (Maybea) ->MaybeTma

Hints:
Monadm=>Alternative (MaybeTm)
Applicativem=>Applicative (MaybeTm)
Eq (m (Maybea)) =>Eq (MaybeTma)
Foldablem=>Foldable (MaybeTm)
Functorm=>Functor (MaybeTm)
HasIOm=>HasIO (MaybeTm)
Monadm=>Monad (MaybeTm)
Monadm=>MonadError () (MaybeTm)
MonadErrorem=>MonadErrore (MaybeTm)
MonadTransMaybeT
Monadm=>Monoid (MaybeTma)
Ord (m (Maybea)) =>Ord (MaybeTma)
Monadm=>Semigroup (MaybeTma)
Show (m (Maybea)) =>Show (MaybeTma)
Traversablem=>Traversable (MaybeTm)
runMaybeT : MaybeTma->m (Maybea)
  Unwrap a `MaybeT` computation.

Totality: total
Visibility: public export
isNothingT : Functorm=>MaybeTma->mBool
  Check if a monadic computation returns a result. This returns `False` if
the computation returns a result, and `True` otherwise.

This is a version of `isNothing` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
isJustT : Functorm=>MaybeTma->mBool
  Check if a monadic computation returns a result. This returns `True` if
the computation returns a result, and `False` otherwise.

This is a version of `isJust` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
maybeT : Monadm=>mb-> (a->mb) ->MaybeTma->mb
  Run a `MaybeT` computation, handling the case of a result or no result
seperately.

This is a version of `maybe` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
fromMaybeT : Monadm=>ma->MaybeTma->ma
  Run a `MaybeT` computation providing a default value.

This is a version of `fromMaybe` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
toMaybeT : Functorm=>Bool->ma->MaybeTma
  Return a value if a condition is met, or else no value.

This is a version of `toMaybe` lifted to work with `MaybeT`.

Totality: total
Visibility: public export
mapMaybeT : (m (Maybea) ->n (Maybea')) ->MaybeTma->MaybeTna'
  Map over the underlying computation.

Totality: total
Visibility: public export
just : Applicativem=>a->MaybeTma
  A version of `Just` lifted to work with `MaybeT`.

This is equivalent to `pure`.

Totality: total
Visibility: public export
nothing : Applicativem=>MaybeTma
  A version of `Nothing` lifted to work with `MaybeT`.

This is equivalent to `throwE ()`.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.RWS.CPS.html b/base/docs/Control.Monad.RWS.CPS.html index 08120bfc3e..8a121d514a 100644 --- a/base/docs/Control.Monad.RWS.CPS.html +++ b/base/docs/Control.Monad.RWS.CPS.html @@ -65,4 +65,4 @@ that accumulation of values does not happen in the Applicative and Monad instances but when invoking `Writer`-specific functions like `writer` or `listen`. -

Definitions

recordRWST : Type->Type->Type-> (Type->Type) ->Type->Type
  A monad transformer extending an inner monad `m` with the ability to read
an environment of type `r`, collect an output of type `w` and update a
state of type `s`.

This is equivalent to `ReaderT r (WriterT w (StateT s m)) a`, but fuses the
three layers.

Totality: total
Visibility: public export
Constructor: 
MkRWST : (r->s->w->m (a, (s, w))) ->RWSTrwsma

Projection: 
.unRWST : RWSTrwsma->r->s->w->m (a, (s, w))

Hints:
(Monadm, Alternativem) =>Alternative (RWSTrwsm)
Monadm=>Applicative (RWSTrwsm)
Functorm=>Functor (RWSTrwsm)
HasIOm=>HasIO (RWSTrwsm)
Monadm=>Monad (RWSTrwsm)
MonadErrorem=>MonadErrore (RWSTrwsm)
(Monoidw, Monadm) =>MonadRWSrws (RWSTrwsm)
Monadm=>MonadReaderr (RWSTrwsm)
Monadm=>MonadStates (RWSTrwsm)
MonadTrans (RWSTrws)
(Monoidw, Monadm) =>MonadWriterw (RWSTrwsm)
.unRWST : RWSTrwsma->r->s->w->m (a, (s, w))
Totality: total
Visibility: public export
unRWST : RWSTrwsma->r->s->w->m (a, (s, w))
Totality: total
Visibility: public export
runRWST : Monoidw=>r->s->RWSTrwsma->m (a, (s, w))
  Unwrap an RWST computation as a function.

This is the inverse of `rwsT`.

Totality: total
Visibility: public export
rwsT : Semigroupw=>Functorm=> (r->s->m (a, (s, w))) ->RWSTrwsma
  Construct an RWST computation from a function.

This is the inverse of `runRWST`.

Totality: total
Visibility: public export
evalRWST : Monoidw=>Functorm=>r->s->RWSTrwsma->m (a, w)
  Evaluate a computation with the given initial state and environment,
returning the final value and output, discarding the final state.

Totality: total
Visibility: public export
execRWST : Monoidw=>Functorm=>r->s->RWSTrwsma->m (s, w)
  Evaluate a computation with the given initial state and environment,
returning the final state and output, discarding the final value.

Totality: total
Visibility: public export
mapRWST : (Functorn, (Monoidw, Semigroupw')) => (m (a, (s, w)) ->n (b, (s, w'))) ->RWSTrwsma->RWSTrw'snb
  Map over the inner computation.

Totality: total
Visibility: public export
withRWST : (r'->s-> (r, s)) ->RWSTrwsma->RWSTr'wsma
  `withRWST f m` executes action `m` with an initial environment
and state modified by applying `f`.

Totality: total
Visibility: public export
RWS : Type->Type->Type->Type->Type
  A monad containing an environment of type `r`, output of type `w`
and an updatable state of type `s`.

This is `RWST` applied to `Identity`.

Totality: total
Visibility: public export
runRWS : Monoidw=>r->s->RWSrwsa-> (a, (s, w))
  Unwrap an RWS computation as a function.

This is the inverse of `rws`.

Totality: total
Visibility: public export
rws : Semigroupw=> (r->s-> (a, (s, w))) ->RWSrwsa
  Construct an RWS computation from a function.

This is the inverse of `runRWS`.

Totality: total
Visibility: public export
evalRWS : Monoidw=>r->s->RWSrwsa-> (a, w)
  Evaluate a computation with the given initial state and environment,
returning the final value and output, discarding the final state.

Totality: total
Visibility: public export
execRWS : Monoidw=>r->s->RWSrwsa-> (s, w)
  Evaluate a computation with the given initial state and environment,
returning the final state and output, discarding the final value.

Totality: total
Visibility: public export
mapRWS : (Monoidw, Semigroupw') => ((a, (s, w)) -> (b, (s, w'))) ->RWSrwsa->RWSrw'sb
  Map the return value, final state and output of a computation using
the given function.

Totality: total
Visibility: public export
withRWS : (r'->s-> (r, s)) ->RWSrwsa->RWSr'wsa
  `withRWS f m` executes action `m` with an initial environment
and state modified by applying `f`.

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

recordRWST : Type->Type->Type-> (Type->Type) ->Type->Type
  A monad transformer extending an inner monad `m` with the ability to read
an environment of type `r`, collect an output of type `w` and update a
state of type `s`.

This is equivalent to `ReaderT r (WriterT w (StateT s m)) a`, but fuses the
three layers.

Totality: total
Visibility: public export
Constructor: 
MkRWST : (r->s->w->m (a, (s, w))) ->RWSTrwsma

Projection: 
.unRWST : RWSTrwsma->r->s->w->m (a, (s, w))

Hints:
(Monadm, Alternativem) =>Alternative (RWSTrwsm)
Monadm=>Applicative (RWSTrwsm)
Functorm=>Functor (RWSTrwsm)
HasIOm=>HasIO (RWSTrwsm)
Monadm=>Monad (RWSTrwsm)
MonadErrorem=>MonadErrore (RWSTrwsm)
(Monoidw, Monadm) =>MonadRWSrws (RWSTrwsm)
Monadm=>MonadReaderr (RWSTrwsm)
Monadm=>MonadStates (RWSTrwsm)
MonadTrans (RWSTrws)
(Monoidw, Monadm) =>MonadWriterw (RWSTrwsm)
.unRWST : RWSTrwsma->r->s->w->m (a, (s, w))
Totality: total
Visibility: public export
unRWST : RWSTrwsma->r->s->w->m (a, (s, w))
Totality: total
Visibility: public export
runRWST : Monoidw=>r->s->RWSTrwsma->m (a, (s, w))
  Unwrap an RWST computation as a function.

This is the inverse of `rwsT`.

Totality: total
Visibility: public export
rwsT : Semigroupw=>Functorm=> (r->s->m (a, (s, w))) ->RWSTrwsma
  Construct an RWST computation from a function.

This is the inverse of `runRWST`.

Totality: total
Visibility: public export
evalRWST : Monoidw=>Functorm=>r->s->RWSTrwsma->m (a, w)
  Evaluate a computation with the given initial state and environment,
returning the final value and output, discarding the final state.

Totality: total
Visibility: public export
execRWST : Monoidw=>Functorm=>r->s->RWSTrwsma->m (s, w)
  Evaluate a computation with the given initial state and environment,
returning the final state and output, discarding the final value.

Totality: total
Visibility: public export
mapRWST : (Functorn, (Monoidw, Semigroupw')) => (m (a, (s, w)) ->n (b, (s, w'))) ->RWSTrwsma->RWSTrw'snb
  Map over the inner computation.

Totality: total
Visibility: public export
withRWST : (r'->s-> (r, s)) ->RWSTrwsma->RWSTr'wsma
  `withRWST f m` executes action `m` with an initial environment
and state modified by applying `f`.

Totality: total
Visibility: public export
RWS : Type->Type->Type->Type->Type
  A monad containing an environment of type `r`, output of type `w`
and an updatable state of type `s`.

This is `RWST` applied to `Identity`.

Totality: total
Visibility: public export
runRWS : Monoidw=>r->s->RWSrwsa-> (a, (s, w))
  Unwrap an RWS computation as a function.

This is the inverse of `rws`.

Totality: total
Visibility: public export
rws : Semigroupw=> (r->s-> (a, (s, w))) ->RWSrwsa
  Construct an RWS computation from a function.

This is the inverse of `runRWS`.

Totality: total
Visibility: public export
evalRWS : Monoidw=>r->s->RWSrwsa-> (a, w)
  Evaluate a computation with the given initial state and environment,
returning the final value and output, discarding the final state.

Totality: total
Visibility: public export
execRWS : Monoidw=>r->s->RWSrwsa-> (s, w)
  Evaluate a computation with the given initial state and environment,
returning the final state and output, discarding the final value.

Totality: total
Visibility: public export
mapRWS : (Monoidw, Semigroupw') => ((a, (s, w)) -> (b, (s, w'))) ->RWSrwsa->RWSrw'sb
  Map the return value, final state and output of a computation using
the given function.

Totality: total
Visibility: public export
withRWS : (r'->s-> (r, s)) ->RWSrwsa->RWSr'wsa
  `withRWS f m` executes action `m` with an initial environment
and state modified by applying `f`.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.RWS.Interface.html b/base/docs/Control.Monad.RWS.Interface.html index d0eb93adbf..7690b0bacb 100644 --- a/base/docs/Control.Monad.RWS.Interface.html +++ b/base/docs/Control.Monad.RWS.Interface.html @@ -61,4 +61,4 @@ -

Control.Monad.RWS.Interface(source)

Definitions

interfaceMonadRWS : Type->Type->Type-> (Type->Type) ->Type
Parameters: r, w, s, m
Constraints: MonadReader r m, MonadWriter w m, MonadState s m
Implementation: 
(Monoidw, Monadm) =>MonadRWSrws (RWSTrwsm)
\ No newline at end of file +

Control.Monad.RWS.Interface(source)

Definitions

interfaceMonadRWS : Type->Type->Type-> (Type->Type) ->Type
Parameters: r, w, s, m
Constraints: MonadReader r m, MonadWriter w m, MonadState s m
Implementation: 
(Monoidw, Monadm) =>MonadRWSrws (RWSTrwsm)
\ No newline at end of file diff --git a/base/docs/Control.Monad.RWS.html b/base/docs/Control.Monad.RWS.html index 6f5d5bf4fb..c579e9fad8 100644 --- a/base/docs/Control.Monad.RWS.html +++ b/base/docs/Control.Monad.RWS.html @@ -61,4 +61,4 @@ -

Control.Monad.RWS(source)

Reexports

importpublic Control.Monad.RWS.CPS as Control.Monad.RWS
importpublic Control.Monad.RWS.Interface as Control.Monad.RWS
importpublic Control.Monad.Reader.Interface as Control.Monad.RWS
importpublic Control.Monad.Writer.Interface as Control.Monad.RWS
importpublic Control.Monad.State.Interface as Control.Monad.RWS
\ No newline at end of file +

Control.Monad.RWS(source)

Reexports

importpublic Control.Monad.RWS.CPS as Control.Monad.RWS
importpublic Control.Monad.RWS.Interface as Control.Monad.RWS
importpublic Control.Monad.Reader.Interface as Control.Monad.RWS
importpublic Control.Monad.Writer.Interface as Control.Monad.RWS
importpublic Control.Monad.State.Interface as Control.Monad.RWS
\ No newline at end of file diff --git a/base/docs/Control.Monad.Reader.Interface.html b/base/docs/Control.Monad.Reader.Interface.html index 43790ff641..fac5bb03ca 100644 --- a/base/docs/Control.Monad.Reader.Interface.html +++ b/base/docs/Control.Monad.Reader.Interface.html @@ -61,4 +61,4 @@ -

Control.Monad.Reader.Interface(source)

Definitions

interfaceMonadReader : Type-> (Type->Type) ->Type
  A computation which runs in a static context and produces an output

Parameters: stateType, m
Constraints: Monad m
Methods:
ask : mstateType
  Get the context
local : (stateType->stateType) ->ma->ma
  `local f c` runs the computation `c` in an environment modified by `f`.

Implementations:
Monadm=>MonadReaderstateType (ReaderTstateTypem)
Monadm=>MonadReaderr (RWSTrwsm)
MonadReaderrm=>MonadReaderr (EitherTem)
MonadReaderrm=>MonadReaderr (MaybeTm)
MonadReaderrm=>MonadReaderr (StateTsm)
MonadReaderrm=>MonadReaderr (WriterTwm)
ask : MonadReaderstateTypem=>mstateType
  Get the context

Totality: total
Visibility: public export
local : MonadReaderstateTypem=> (stateType->stateType) ->ma->ma
  `local f c` runs the computation `c` in an environment modified by `f`.

Totality: total
Visibility: public export
asks : MonadReaderstateTypem=> (stateType->a) ->ma
  Evaluate a function in the context held by this computation

Totality: total
Visibility: public export
\ No newline at end of file +

Control.Monad.Reader.Interface(source)

Definitions

interfaceMonadReader : Type-> (Type->Type) ->Type
  A computation which runs in a static context and produces an output

Parameters: stateType, m
Constraints: Monad m
Methods:
ask : mstateType
  Get the context
local : (stateType->stateType) ->ma->ma
  `local f c` runs the computation `c` in an environment modified by `f`.

Implementations:
Monadm=>MonadReaderstateType (ReaderTstateTypem)
Monadm=>MonadReaderr (RWSTrwsm)
MonadReaderrm=>MonadReaderr (EitherTem)
MonadReaderrm=>MonadReaderr (MaybeTm)
MonadReaderrm=>MonadReaderr (StateTsm)
MonadReaderrm=>MonadReaderr (WriterTwm)
ask : MonadReaderstateTypem=>mstateType
  Get the context

Totality: total
Visibility: public export
local : MonadReaderstateTypem=> (stateType->stateType) ->ma->ma
  `local f c` runs the computation `c` in an environment modified by `f`.

Totality: total
Visibility: public export
asks : MonadReaderstateTypem=> (stateType->a) ->ma
  Evaluate a function in the context held by this computation

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Reader.Reader.html b/base/docs/Control.Monad.Reader.Reader.html index 3f4a2e581f..e5be66ec80 100644 --- a/base/docs/Control.Monad.Reader.Reader.html +++ b/base/docs/Control.Monad.Reader.Reader.html @@ -61,4 +61,4 @@ -

Control.Monad.Reader.Reader(source)

Definitions

recordReaderT : Type-> (Type->Type) ->Type->Type
  A monad transformer extending an inner monad with access to an environment.

The environment is the same for all actions in a sequence, but may be
changed within scopes created by `Control.Monad.Reader.local`.

Totality: total
Visibility: public export
Constructor: 
MkReaderT : (1_ : (stateType->ma)) ->ReaderTstateTypema

Projection: 
.runReaderT' : ReaderTstateTypema->stateType->ma

Hints:
Alternativef=>Alternative (ReaderTstateTypef)
Applicativef=>Applicative (ReaderTstateTypef)
Functorf=>Functor (ReaderTstateTypef)
HasIOm=>HasIO (ReaderTstateTypem)
Monadm=>Monad (ReaderTstateTypem)
MonadErrorem=>MonadErrore (ReaderTrm)
Monadm=>MonadReaderstateType (ReaderTstateTypem)
MonadStatesm=>MonadStates (ReaderTrm)
MonadTrans (ReaderTstateType)
MonadWriterwm=>MonadWriterw (ReaderTrm)
.runReaderT' : ReaderTstateTypema->stateType->ma
Totality: total
Visibility: public export
runReaderT' : ReaderTstateTypema->stateType->ma
Totality: total
Visibility: public export
mapReaderT : (ma->nb) ->ReaderTrma->ReaderTrnb
  Transform the computation inside a @ReaderT@.

Totality: total
Visibility: public export
runReaderT : stateType->ReaderTstateTypema->ma
  Unwrap and apply a ReaderT monad computation

Totality: total
Visibility: public export
Reader : Type->Type->Type
  A monad that can access an environment.

This is `ReaderT` applied to `Identity`.

Totality: total
Visibility: public export
runReader : stateType->ReaderstateTypea->a
  Unwrap and apply a Reader monad computation

Totality: total
Visibility: public export
\ No newline at end of file +

Control.Monad.Reader.Reader(source)

Definitions

recordReaderT : Type-> (Type->Type) ->Type->Type
  A monad transformer extending an inner monad with access to an environment.

The environment is the same for all actions in a sequence, but may be
changed within scopes created by `Control.Monad.Reader.local`.

Totality: total
Visibility: public export
Constructor: 
MkReaderT : (1_ : (stateType->ma)) ->ReaderTstateTypema

Projection: 
.runReaderT' : ReaderTstateTypema->stateType->ma

Hints:
Alternativef=>Alternative (ReaderTstateTypef)
Applicativef=>Applicative (ReaderTstateTypef)
Functorf=>Functor (ReaderTstateTypef)
HasIOm=>HasIO (ReaderTstateTypem)
Monadm=>Monad (ReaderTstateTypem)
MonadErrorem=>MonadErrore (ReaderTrm)
Monadm=>MonadReaderstateType (ReaderTstateTypem)
MonadStatesm=>MonadStates (ReaderTrm)
MonadTrans (ReaderTstateType)
MonadWriterwm=>MonadWriterw (ReaderTrm)
.runReaderT' : ReaderTstateTypema->stateType->ma
Totality: total
Visibility: public export
runReaderT' : ReaderTstateTypema->stateType->ma
Totality: total
Visibility: public export
mapReaderT : (ma->nb) ->ReaderTrma->ReaderTrnb
  Transform the computation inside a @ReaderT@.

Totality: total
Visibility: public export
runReaderT : stateType->ReaderTstateTypema->ma
  Unwrap and apply a ReaderT monad computation

Totality: total
Visibility: public export
Reader : Type->Type->Type
  A monad that can access an environment.

This is `ReaderT` applied to `Identity`.

Totality: total
Visibility: public export
runReader : stateType->ReaderstateTypea->a
  Unwrap and apply a Reader monad computation

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Reader.html b/base/docs/Control.Monad.Reader.html index 8eeb305927..48da773958 100644 --- a/base/docs/Control.Monad.Reader.html +++ b/base/docs/Control.Monad.Reader.html @@ -61,4 +61,4 @@ -

Control.Monad.Reader(source)

Reexports

importpublic Control.Monad.Reader.Reader as Control.Monad.Reader
importpublic Control.Monad.Reader.Interface as Control.Monad.Reader
\ No newline at end of file +

Control.Monad.Reader(source)

Reexports

importpublic Control.Monad.Reader.Reader as Control.Monad.Reader
importpublic Control.Monad.Reader.Interface as Control.Monad.Reader
\ No newline at end of file diff --git a/base/docs/Control.Monad.ST.html b/base/docs/Control.Monad.ST.html index c384884eb4..759bc4fa9e 100644 --- a/base/docs/Control.Monad.ST.html +++ b/base/docs/Control.Monad.ST.html @@ -62,4 +62,4 @@

Control.Monad.ST(source)

Provides mutable references as described in Lazy Functional State Threads.
-

Definitions

dataSTRef : Type->Type->Type
  A mutable reference, bound to a state thread.

A value of type `STRef s a` contains a mutable `a`, bound to a "thread"
`s`. Any access to the reference must occur in an `ST s` monad with the
same "thread".

Totality: total
Visibility: export
Constructor: 
MkSTRef : IORefa->STRefsa
dataST : Type->Type->Type
  The `ST` monad allows for mutable access to references, but unlike `IO`, it
is "escapable".

The parameter `s` is a "thread" -- it ensures that access to mutable
references created in each thread must occur in that same thread.

Totality: total
Visibility: export
Constructor: 
MkST : IOa->STsa

Hints:
Applicative (STs)
Functor (STs)
Monad (STs)
runST : STsa->a
  Run a `ST` computation.

Totality: total
Visibility: export
newSTRef : a->STs (STRefsa)
  Create a new mutable reference with the given value.

Totality: total
Visibility: export
readSTRef : STRefsa->STsa
  Read the value of a mutable reference.

This occurs within `ST s` to prevent `STRef`s from being usable if they are
"leaked" via `runST`.

Totality: total
Visibility: export
writeSTRef : STRefsa->a->STs ()
  Write to a mutable reference.

Totality: total
Visibility: export
modifySTRef : STRefsa-> (a->a) ->STs ()
  Apply a function to the contents of a mutable reference.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataSTRef : Type->Type->Type
  A mutable reference, bound to a state thread.

A value of type `STRef s a` contains a mutable `a`, bound to a "thread"
`s`. Any access to the reference must occur in an `ST s` monad with the
same "thread".

Totality: total
Visibility: export
Constructor: 
MkSTRef : IORefa->STRefsa
dataST : Type->Type->Type
  The `ST` monad allows for mutable access to references, but unlike `IO`, it
is "escapable".

The parameter `s` is a "thread" -- it ensures that access to mutable
references created in each thread must occur in that same thread.

Totality: total
Visibility: export
Constructor: 
MkST : IOa->STsa

Hints:
Applicative (STs)
Functor (STs)
Monad (STs)
runST : STsa->a
  Run a `ST` computation.

Totality: total
Visibility: export
newSTRef : a->STs (STRefsa)
  Create a new mutable reference with the given value.

Totality: total
Visibility: export
readSTRef : STRefsa->STsa
  Read the value of a mutable reference.

This occurs within `ST s` to prevent `STRef`s from being usable if they are
"leaked" via `runST`.

Totality: total
Visibility: export
writeSTRef : STRefsa->a->STs ()
  Write to a mutable reference.

Totality: total
Visibility: export
modifySTRef : STRefsa-> (a->a) ->STs ()
  Apply a function to the contents of a mutable reference.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Control.Monad.State.Interface.html b/base/docs/Control.Monad.State.Interface.html index 22599288eb..7a19b910e0 100644 --- a/base/docs/Control.Monad.State.Interface.html +++ b/base/docs/Control.Monad.State.Interface.html @@ -61,4 +61,4 @@ -

Control.Monad.State.Interface(source)

Definitions

interfaceMonadState : Type-> (Type->Type) ->Type
  A monadic computation that has access to state.

Parameters: stateType, m
Constraints: Monad m
Methods:
get : mstateType
  Get the context
put : stateType->m ()
  Write a new context/output
state : (stateType-> (stateType, a)) ->ma
  Embed a simple state action into the monad.

Implementations:
Monadm=>MonadStatestateType (StateTstateTypem)
MonadStatesm=>MonadStates (EitherTem)
MonadStatesm=>MonadStates (MaybeTm)
Monadm=>MonadStates (RWSTrwsm)
MonadStatesm=>MonadStates (ReaderTrm)
MonadStatesm=>MonadStates (WriterTrm)
get : MonadStatestateTypem=>mstateType
  Get the context

Totality: total
Visibility: public export
put : MonadStatestateTypem=>stateType->m ()
  Write a new context/output

Totality: total
Visibility: public export
state : MonadStatestateTypem=> (stateType-> (stateType, a)) ->ma
  Embed a simple state action into the monad.

Totality: total
Visibility: public export
modify : MonadStatestateTypem=> (stateType->stateType) ->m ()
  Apply a function to modify the context of this computation

Totality: total
Visibility: public export
gets : MonadStatestateTypem=> (stateType->a) ->ma
  Evaluate a function in the context held by this computation

Totality: total
Visibility: public export
\ No newline at end of file +

Control.Monad.State.Interface(source)

Definitions

interfaceMonadState : Type-> (Type->Type) ->Type
  A monadic computation that has access to state.

Parameters: stateType, m
Constraints: Monad m
Methods:
get : mstateType
  Get the context
put : stateType->m ()
  Write a new context/output
state : (stateType-> (stateType, a)) ->ma
  Embed a simple state action into the monad.

Implementations:
Monadm=>MonadStatestateType (StateTstateTypem)
MonadStatesm=>MonadStates (EitherTem)
MonadStatesm=>MonadStates (MaybeTm)
Monadm=>MonadStates (RWSTrwsm)
MonadStatesm=>MonadStates (ReaderTrm)
MonadStatesm=>MonadStates (WriterTrm)
get : MonadStatestateTypem=>mstateType
  Get the context

Totality: total
Visibility: public export
put : MonadStatestateTypem=>stateType->m ()
  Write a new context/output

Totality: total
Visibility: public export
state : MonadStatestateTypem=> (stateType-> (stateType, a)) ->ma
  Embed a simple state action into the monad.

Totality: total
Visibility: public export
modify : MonadStatestateTypem=> (stateType->stateType) ->m ()
  Apply a function to modify the context of this computation

Totality: total
Visibility: public export
gets : MonadStatestateTypem=> (stateType->a) ->ma
  Evaluate a function in the context held by this computation

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.State.State.html b/base/docs/Control.Monad.State.State.html index 9213b3b18c..fc77e96242 100644 --- a/base/docs/Control.Monad.State.State.html +++ b/base/docs/Control.Monad.State.State.html @@ -61,4 +61,4 @@ -

Control.Monad.State.State(source)

Definitions

recordStateT : Type-> (Type->Type) ->Type->Type
  A monad transformer extending an inner monad `m` with state `stateType`.

Updates to the state are applied in the order as the sequence of actions.

Totality: total
Visibility: public export
Constructor: 
ST : (stateType->m (stateType, a)) ->StateTstateTypema

Projection: 
.runStateT' : StateTstateTypema->stateType->m (stateType, a)

Hints:
(Monadf, Alternativef) =>Alternative (StateTstf)
Monadf=>Applicative (StateTstateTypef)
Functorf=>Functor (StateTstateTypef)
HasIOm=>HasIO (StateTstateTypem)
Monadm=>Monad (StateTstateTypem)
MonadErrorem=>MonadErrore (StateTrm)
MonadReaderrm=>MonadReaderr (StateTsm)
Monadm=>MonadStatestateType (StateTstateTypem)
MonadTrans (StateTstateType)
MonadWriterwm=>MonadWriterw (StateTsm)
.runStateT' : StateTstateTypema->stateType->m (stateType, a)
Totality: total
Visibility: public export
runStateT' : StateTstateTypema->stateType->m (stateType, a)
Totality: total
Visibility: public export
runStateT : stateType->StateTstateTypema->m (stateType, a)
  Unwrap and apply a StateT monad computation.

Totality: total
Visibility: public export
evalStateT : Functorm=>stateType->StateTstateTypema->ma
  Unwrap and apply a StateT monad computation, but discard the final state.

Totality: total
Visibility: public export
execStateT : Functorm=>stateType->StateTstateTypema->mstateType
  Unwrap and apply a StateT monad computation, but discard the resulting value.

Totality: total
Visibility: public export
mapStateT : (m (s, a) ->n (s, b)) ->StateTsma->StateTsnb
  Map both the return value and final state of a computation using
the given function.

Totality: total
Visibility: public export
State : Type->Type->Type
  The State monad. See the MonadState interface

Totality: total
Visibility: public export
runState : stateType->StatestateTypea-> (stateType, a)
  Unwrap and apply a State monad computation.

Totality: total
Visibility: public export
evalState : stateType->StatestateTypea->a
  Unwrap and apply a State monad computation, but discard the final state.

Totality: total
Visibility: public export
execState : stateType->StatestateTypea->stateType
  Unwrap and apply a State monad computation, but discard the resulting value.

Totality: total
Visibility: public export
mapState : ((s, a) -> (s, b)) ->Statesa->Statesb
  Map both the return value and final state of a computation using
the given function.

Totality: total
Visibility: public export
\ No newline at end of file +

Control.Monad.State.State(source)

Definitions

recordStateT : Type-> (Type->Type) ->Type->Type
  A monad transformer extending an inner monad `m` with state `stateType`.

Updates to the state are applied in the order as the sequence of actions.

Totality: total
Visibility: public export
Constructor: 
ST : (stateType->m (stateType, a)) ->StateTstateTypema

Projection: 
.runStateT' : StateTstateTypema->stateType->m (stateType, a)

Hints:
(Monadf, Alternativef) =>Alternative (StateTstf)
Monadf=>Applicative (StateTstateTypef)
Functorf=>Functor (StateTstateTypef)
HasIOm=>HasIO (StateTstateTypem)
Monadm=>Monad (StateTstateTypem)
MonadErrorem=>MonadErrore (StateTrm)
MonadReaderrm=>MonadReaderr (StateTsm)
Monadm=>MonadStatestateType (StateTstateTypem)
MonadTrans (StateTstateType)
MonadWriterwm=>MonadWriterw (StateTsm)
.runStateT' : StateTstateTypema->stateType->m (stateType, a)
Totality: total
Visibility: public export
runStateT' : StateTstateTypema->stateType->m (stateType, a)
Totality: total
Visibility: public export
runStateT : stateType->StateTstateTypema->m (stateType, a)
  Unwrap and apply a StateT monad computation.

Totality: total
Visibility: public export
evalStateT : Functorm=>stateType->StateTstateTypema->ma
  Unwrap and apply a StateT monad computation, but discard the final state.

Totality: total
Visibility: public export
execStateT : Functorm=>stateType->StateTstateTypema->mstateType
  Unwrap and apply a StateT monad computation, but discard the resulting value.

Totality: total
Visibility: public export
mapStateT : (m (s, a) ->n (s, b)) ->StateTsma->StateTsnb
  Map both the return value and final state of a computation using
the given function.

Totality: total
Visibility: public export
State : Type->Type->Type
  The State monad. See the MonadState interface

Totality: total
Visibility: public export
runState : stateType->StatestateTypea-> (stateType, a)
  Unwrap and apply a State monad computation.

Totality: total
Visibility: public export
evalState : stateType->StatestateTypea->a
  Unwrap and apply a State monad computation, but discard the final state.

Totality: total
Visibility: public export
execState : stateType->StatestateTypea->stateType
  Unwrap and apply a State monad computation, but discard the resulting value.

Totality: total
Visibility: public export
mapState : ((s, a) -> (s, b)) ->Statesa->Statesb
  Map both the return value and final state of a computation using
the given function.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.State.html b/base/docs/Control.Monad.State.html index 2fa1e346c3..adc253ce08 100644 --- a/base/docs/Control.Monad.State.html +++ b/base/docs/Control.Monad.State.html @@ -61,4 +61,4 @@ -

Control.Monad.State(source)

Reexports

importpublic Control.Monad.Identity
importpublic Control.Monad.Trans
importpublic Control.Monad.State.Interface as Control.Monad.State
importpublic Control.Monad.State.State as Control.Monad.State
\ No newline at end of file +

Control.Monad.State(source)

Reexports

importpublic Control.Monad.Identity
importpublic Control.Monad.Trans
importpublic Control.Monad.State.Interface as Control.Monad.State
importpublic Control.Monad.State.State as Control.Monad.State
\ No newline at end of file diff --git a/base/docs/Control.Monad.Trans.html b/base/docs/Control.Monad.Trans.html index dddf9f5708..83f042361c 100644 --- a/base/docs/Control.Monad.Trans.html +++ b/base/docs/Control.Monad.Trans.html @@ -61,4 +61,4 @@ -

Control.Monad.Trans(source)

Definitions

interfaceMonadTrans : ((Type->Type) ->Type->Type) ->Type
  A monad transformer is a type that can wrap an inner monad, extending it
with additional abilities.

Parameters: t
Methods:
lift : Monadm=>ma->tma
  Lift a computation from the inner monad to the transformed monad.

Implementations:
MonadTrans (EitherTe)
MonadTransMaybeT
MonadTrans (RWSTrws)
MonadTrans (ReaderTstateType)
MonadTrans (StateTstateType)
MonadTrans (WriterTw)
lift : MonadTranst=>Monadm=>ma->tma
  Lift a computation from the inner monad to the transformed monad.

Totality: total
Visibility: public export
\ No newline at end of file +

Control.Monad.Trans(source)

Definitions

interfaceMonadTrans : ((Type->Type) ->Type->Type) ->Type
  A monad transformer is a type that can wrap an inner monad, extending it
with additional abilities.

Parameters: t
Methods:
lift : Monadm=>ma->tma
  Lift a computation from the inner monad to the transformed monad.

Implementations:
MonadTrans (EitherTe)
MonadTransMaybeT
MonadTrans (RWSTrws)
MonadTrans (ReaderTstateType)
MonadTrans (StateTstateType)
MonadTrans (WriterTw)
lift : MonadTranst=>Monadm=>ma->tma
  Lift a computation from the inner monad to the transformed monad.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Writer.CPS.html b/base/docs/Control.Monad.Writer.CPS.html index d2285ecb62..a08788dd21 100644 --- a/base/docs/Control.Monad.Writer.CPS.html +++ b/base/docs/Control.Monad.Writer.CPS.html @@ -65,4 +65,4 @@ that accumulation of values does not happen in the Applicative and Monad instances but when invoking `Writer`-specific functions like `writer` or `listen`. -

Definitions

recordWriterT : Type-> (Type->Type) ->Type->Type
  A writer monad parameterized by:

@w the output to accumulate.

@m The inner monad.

The `pure` function produces the output `neutral`, while `>>=`
combines the outputs of the subcomputations using `<+>`.

Totality: total
Visibility: public export
Constructor: 
MkWriterT : (w->m (a, w)) ->WriterTwma

Projection: 
.unWriterT : WriterTwma->w->m (a, w)

Hints:
(Monadm, Alternativem) =>Alternative (WriterTwm)
Monadm=>Applicative (WriterTwm)
Functorm=>Functor (WriterTwm)
HasIOm=>HasIO (WriterTwm)
Monadm=>Monad (WriterTwm)
MonadErrorem=>MonadErrore (WriterTwm)
MonadReaderrm=>MonadReaderr (WriterTwm)
MonadStatesm=>MonadStates (WriterTrm)
MonadTrans (WriterTw)
(Monoidw, Monadm) =>MonadWriterw (WriterTwm)
.unWriterT : WriterTwma->w->m (a, w)
Totality: total
Visibility: public export
unWriterT : WriterTwma->w->m (a, w)
Totality: total
Visibility: public export
writerT : Semigroupw=>Functorm=>m (a, w) ->WriterTwma
  Construct an writer computation from a (result,output) computation.
(The inverse of `runWriterT`.)

Totality: total
Visibility: public export
runWriterT : Monoidw=>WriterTwma->m (a, w)
  Unwrap a writer computation.
(The inverse of 'writerT'.)

Totality: total
Visibility: public export
execWriterT : Monoidw=>Functorm=>WriterTwma->mw
  Extract the output from a writer computation.

Totality: total
Visibility: public export
mapWriterT : (Functorn, (Monoidw, Semigroupw')) => (m (a, w) ->n (b, w')) ->WriterTwma->WriterTw'nb
  Map both the return value and output of a computation using
the given function.

Totality: total
Visibility: public export
Writer : Type->Type->Type
  The `return` function produces the output `neutral`, while `>>=`
combines the outputs of the subcomputations using `<+>`.

Totality: total
Visibility: public export
runWriter : Monoidw=>Writerwa-> (a, w)
  Unwrap a writer computation as a (result, output) pair.

Totality: total
Visibility: public export
execWriter : Monoidw=>Writerwa->w
  Extract the output from a writer computation.

Totality: total
Visibility: public export
mapWriter : (Monoidw, Semigroupw') => ((a, w) -> (b, w')) ->Writerwa->Writerw'b
  Map both the return value and output of a computation using
the given function.

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

recordWriterT : Type-> (Type->Type) ->Type->Type
  A writer monad parameterized by:

@w the output to accumulate.

@m The inner monad.

The `pure` function produces the output `neutral`, while `>>=`
combines the outputs of the subcomputations using `<+>`.

Totality: total
Visibility: public export
Constructor: 
MkWriterT : (w->m (a, w)) ->WriterTwma

Projection: 
.unWriterT : WriterTwma->w->m (a, w)

Hints:
(Monadm, Alternativem) =>Alternative (WriterTwm)
Monadm=>Applicative (WriterTwm)
Functorm=>Functor (WriterTwm)
HasIOm=>HasIO (WriterTwm)
Monadm=>Monad (WriterTwm)
MonadErrorem=>MonadErrore (WriterTwm)
MonadReaderrm=>MonadReaderr (WriterTwm)
MonadStatesm=>MonadStates (WriterTrm)
MonadTrans (WriterTw)
(Monoidw, Monadm) =>MonadWriterw (WriterTwm)
.unWriterT : WriterTwma->w->m (a, w)
Totality: total
Visibility: public export
unWriterT : WriterTwma->w->m (a, w)
Totality: total
Visibility: public export
writerT : Semigroupw=>Functorm=>m (a, w) ->WriterTwma
  Construct an writer computation from a (result,output) computation.
(The inverse of `runWriterT`.)

Totality: total
Visibility: public export
runWriterT : Monoidw=>WriterTwma->m (a, w)
  Unwrap a writer computation.
(The inverse of 'writerT'.)

Totality: total
Visibility: public export
execWriterT : Monoidw=>Functorm=>WriterTwma->mw
  Extract the output from a writer computation.

Totality: total
Visibility: public export
mapWriterT : (Functorn, (Monoidw, Semigroupw')) => (m (a, w) ->n (b, w')) ->WriterTwma->WriterTw'nb
  Map both the return value and output of a computation using
the given function.

Totality: total
Visibility: public export
Writer : Type->Type->Type
  The `return` function produces the output `neutral`, while `>>=`
combines the outputs of the subcomputations using `<+>`.

Totality: total
Visibility: public export
runWriter : Monoidw=>Writerwa-> (a, w)
  Unwrap a writer computation as a (result, output) pair.

Totality: total
Visibility: public export
execWriter : Monoidw=>Writerwa->w
  Extract the output from a writer computation.

Totality: total
Visibility: public export
mapWriter : (Monoidw, Semigroupw') => ((a, w) -> (b, w')) ->Writerwa->Writerw'b
  Map both the return value and output of a computation using
the given function.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Writer.Interface.html b/base/docs/Control.Monad.Writer.Interface.html index 0545e71887..0c86a330c6 100644 --- a/base/docs/Control.Monad.Writer.Interface.html +++ b/base/docs/Control.Monad.Writer.Interface.html @@ -61,4 +61,4 @@ -

Control.Monad.Writer.Interface(source)

Definitions

interfaceMonadWriter : Type-> (Type->Type) ->Type
  MonadWriter interface

tell is like tell on the MUD's it shouts to monad
what you want to be heard. The monad carries this 'packet'
upwards, merging it if needed (hence the Monoid requirement).

listen listens to a monad acting, and returns what the monad "said".

pass lets you provide a writer transformer which changes internals of
the written object.

Parameters: w, m
Constraints: Monoid w, Monad m
Methods:
writer : (a, w) ->ma
  `writer (a,w)` embeds a simple writer action.
tell : w->m ()
  `tell w` is an action that produces the output `w`.
listen : ma->m (a, w)
  `listen m` is an action that executes the action `m` and adds
its output to the value of the computation.
pass : m (a, w->w) ->ma
  `pass m` is an action that executes the action `m`, which
returns a value and a function, and returns the value, applying
the function to the output.

Implementations:
(Monoidw, Monadm) =>MonadWriterw (WriterTwm)
(Monoidw, Monadm) =>MonadWriterw (RWSTrwsm)
MonadWriterwm=>MonadWriterw (EitherTem)
MonadWriterwm=>MonadWriterw (MaybeTm)
MonadWriterwm=>MonadWriterw (ReaderTrm)
MonadWriterwm=>MonadWriterw (StateTsm)
writer : MonadWriterwm=> (a, w) ->ma
  `writer (a,w)` embeds a simple writer action.

Totality: total
Visibility: public export
tell : MonadWriterwm=>w->m ()
  `tell w` is an action that produces the output `w`.

Totality: total
Visibility: public export
listen : MonadWriterwm=>ma->m (a, w)
  `listen m` is an action that executes the action `m` and adds
its output to the value of the computation.

Totality: total
Visibility: public export
pass : MonadWriterwm=>m (a, w->w) ->ma
  `pass m` is an action that executes the action `m`, which
returns a value and a function, and returns the value, applying
the function to the output.

Totality: total
Visibility: public export
listens : MonadWriterwm=> (w->b) ->ma->m (a, b)
  `listens f m` is an action that executes the action `m` and adds
the result of applying @f@ to the output to the value of the computation.

Totality: total
Visibility: public export
censor : MonadWriterwm=> (w->w) ->ma->ma
  `censor f m` is an action that executes the action `m` and
applies the function `f` to its output, leaving the return value
unchanged.

Totality: total
Visibility: public export
\ No newline at end of file +

Control.Monad.Writer.Interface(source)

Definitions

interfaceMonadWriter : Type-> (Type->Type) ->Type
  MonadWriter interface

tell is like tell on the MUD's it shouts to monad
what you want to be heard. The monad carries this 'packet'
upwards, merging it if needed (hence the Monoid requirement).

listen listens to a monad acting, and returns what the monad "said".

pass lets you provide a writer transformer which changes internals of
the written object.

Parameters: w, m
Constraints: Monoid w, Monad m
Methods:
writer : (a, w) ->ma
  `writer (a,w)` embeds a simple writer action.
tell : w->m ()
  `tell w` is an action that produces the output `w`.
listen : ma->m (a, w)
  `listen m` is an action that executes the action `m` and adds
its output to the value of the computation.
pass : m (a, w->w) ->ma
  `pass m` is an action that executes the action `m`, which
returns a value and a function, and returns the value, applying
the function to the output.

Implementations:
(Monoidw, Monadm) =>MonadWriterw (WriterTwm)
(Monoidw, Monadm) =>MonadWriterw (RWSTrwsm)
MonadWriterwm=>MonadWriterw (EitherTem)
MonadWriterwm=>MonadWriterw (MaybeTm)
MonadWriterwm=>MonadWriterw (ReaderTrm)
MonadWriterwm=>MonadWriterw (StateTsm)
writer : MonadWriterwm=> (a, w) ->ma
  `writer (a,w)` embeds a simple writer action.

Totality: total
Visibility: public export
tell : MonadWriterwm=>w->m ()
  `tell w` is an action that produces the output `w`.

Totality: total
Visibility: public export
listen : MonadWriterwm=>ma->m (a, w)
  `listen m` is an action that executes the action `m` and adds
its output to the value of the computation.

Totality: total
Visibility: public export
pass : MonadWriterwm=>m (a, w->w) ->ma
  `pass m` is an action that executes the action `m`, which
returns a value and a function, and returns the value, applying
the function to the output.

Totality: total
Visibility: public export
listens : MonadWriterwm=> (w->b) ->ma->m (a, b)
  `listens f m` is an action that executes the action `m` and adds
the result of applying @f@ to the output to the value of the computation.

Totality: total
Visibility: public export
censor : MonadWriterwm=> (w->w) ->ma->ma
  `censor f m` is an action that executes the action `m` and
applies the function `f` to its output, leaving the return value
unchanged.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Control.Monad.Writer.html b/base/docs/Control.Monad.Writer.html index 6b808ed6d6..4fb6258500 100644 --- a/base/docs/Control.Monad.Writer.html +++ b/base/docs/Control.Monad.Writer.html @@ -61,4 +61,4 @@ -

Control.Monad.Writer(source)

Reexports

importpublic Control.Monad.Writer.Interface as Control.Monad.Writer
importpublic Control.Monad.Writer.CPS as Control.Monad.Writer
\ No newline at end of file +

Control.Monad.Writer(source)

Reexports

importpublic Control.Monad.Writer.Interface as Control.Monad.Writer
importpublic Control.Monad.Writer.CPS as Control.Monad.Writer
\ No newline at end of file diff --git a/base/docs/Control.Ord.html b/base/docs/Control.Ord.html index 360dc39614..b96ed19ebf 100644 --- a/base/docs/Control.Ord.html +++ b/base/docs/Control.Ord.html @@ -61,4 +61,4 @@ -

Control.Ord(source)

Definitions

\ No newline at end of file +

Control.Ord(source)

Definitions

\ No newline at end of file diff --git a/base/docs/Control.Order.html b/base/docs/Control.Order.html index 23f6e2ccc4..f869de6ccd 100644 --- a/base/docs/Control.Order.html +++ b/base/docs/Control.Order.html @@ -69,4 +69,4 @@ properties. A prominent example of an order relation is LTE over Nat. -

Definitions

interfacePreorder : (ty : Type) -> (ty->ty->Type) ->Type
  A preorder is reflexive and transitive.

Parameters: ty, rel
Constraints: Reflexive ty rel, Transitive ty rel
Implementation: 
PreorderNatLTE
interfacePartialOrder : (ty : Type) -> (ty->ty->Type) ->Type
  A partial order is an antisymmetrics preorder.

Parameters: ty, rel
Constraints: Preorder ty rel, Antisymmetric ty rel
Implementation: 
PartialOrderNatLTE
interfaceConnex : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is connex if for any two distinct x and y, either x ~ y or y ~ x.

This can also be stated as a trichotomy: x ~ y or x = y or y ~ x.

Parameters: ty, rel
Methods:
connex : Not (x=y) ->Either (relxy) (relyx)

Implementation: 
ConnexNatLTE
connex : Connextyrel=>Not (x=y) ->Either (relxy) (relyx)
Visibility: public export
interfaceStronglyConnex : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is strongly connex if for any two x and y, either x ~ y or y ~ x.

Parameters: ty, rel
Methods:
order : (x : ty) -> (y : ty) ->Either (relxy) (relyx)
order : StronglyConnextyrel=> (x : ty) -> (y : ty) ->Either (relxy) (relyx)
Visibility: public export
interfaceLinearOrder : (ty : Type) -> (ty->ty->Type) ->Type
  A linear order is a connex partial order.

Parameters: ty, rel
Constraints: PartialOrder ty rel, Connex ty rel
Implementation: 
LinearOrderNatLTE
leftmost : (0rel : (ty->ty->Type)) ->StronglyConnextyrel=>ty->ty->ty
  Gives the leftmost of a strongly connex relation among the given two elements, generalisation of `min`.

That is, leftmost x y ~ x and leftmost x y ~ y, and `leftmost x y` is either `x` or `y`

Visibility: public export
rightmost : (0rel : (ty->ty->Type)) ->StronglyConnextyrel=>ty->ty->ty
  Gives the rightmost of a strongly connex relation among the given two elements, generalisation of `max`.

That is, x ~ rightmost x y and y ~ rightmost x y, and `rightmost x y` is either `x` or `y`

Visibility: public export
leftmostRelL : (0rel : (ty->ty->Type)) ->Reflexivetyrel=> {auto{conArg:2893} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->rel (leftmostrelxy) x
Visibility: export
leftmostRelR : (0rel : (ty->ty->Type)) ->Reflexivetyrel=> {auto{conArg:2963} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->rel (leftmostrelxy) y
Visibility: export
leftmostPreserves : (0rel : (ty->ty->Type)) -> {auto{conArg:3030} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->Either (leftmostrelxy=x) (leftmostrelxy=y)
Visibility: export
leftmostIsRightmostLeft : (0rel : (ty->ty->Type)) -> {auto{conArg:3113} : StronglyConnextyrel} -> (x : ty) -> (y : ty) -> (z : ty) ->relzx->relzy->relz (leftmostrelxy)
Visibility: export
rightmostRelL : (0rel : (ty->ty->Type)) ->Reflexivetyrel=> {auto{conArg:3188} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->relx (rightmostrelxy)
Visibility: export
rightmostRelR : (0rel : (ty->ty->Type)) ->Reflexivetyrel=> {auto{conArg:3258} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->rely (rightmostrelxy)
Visibility: export
rightmostPreserves : (0rel : (ty->ty->Type)) -> {auto{conArg:3325} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->Either (rightmostrelxy=x) (rightmostrelxy=y)
Visibility: export
rightmostIsLeftmostRight : (0rel : (ty->ty->Type)) -> {auto{conArg:3408} : StronglyConnextyrel} -> (x : ty) -> (y : ty) -> (z : ty) ->relxz->relyz->rel (leftmostrelxy) z
Visibility: export
\ No newline at end of file +

Definitions

interfacePreorder : (ty : Type) -> (ty->ty->Type) ->Type
  A preorder is reflexive and transitive.

Parameters: ty, rel
Constraints: Reflexive ty rel, Transitive ty rel
Implementation: 
PreorderNatLTE
interfacePartialOrder : (ty : Type) -> (ty->ty->Type) ->Type
  A partial order is an antisymmetrics preorder.

Parameters: ty, rel
Constraints: Preorder ty rel, Antisymmetric ty rel
Implementation: 
PartialOrderNatLTE
interfaceConnex : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is connex if for any two distinct x and y, either x ~ y or y ~ x.

This can also be stated as a trichotomy: x ~ y or x = y or y ~ x.

Parameters: ty, rel
Methods:
connex : Not (x=y) ->Either (relxy) (relyx)

Implementation: 
ConnexNatLTE
connex : Connextyrel=>Not (x=y) ->Either (relxy) (relyx)
Visibility: public export
interfaceStronglyConnex : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is strongly connex if for any two x and y, either x ~ y or y ~ x.

Parameters: ty, rel
Methods:
order : (x : ty) -> (y : ty) ->Either (relxy) (relyx)
order : StronglyConnextyrel=> (x : ty) -> (y : ty) ->Either (relxy) (relyx)
Visibility: public export
interfaceLinearOrder : (ty : Type) -> (ty->ty->Type) ->Type
  A linear order is a connex partial order.

Parameters: ty, rel
Constraints: PartialOrder ty rel, Connex ty rel
Implementation: 
LinearOrderNatLTE
leftmost : (0rel : (ty->ty->Type)) ->StronglyConnextyrel=>ty->ty->ty
  Gives the leftmost of a strongly connex relation among the given two elements, generalisation of `min`.

That is, leftmost x y ~ x and leftmost x y ~ y, and `leftmost x y` is either `x` or `y`

Visibility: public export
rightmost : (0rel : (ty->ty->Type)) ->StronglyConnextyrel=>ty->ty->ty
  Gives the rightmost of a strongly connex relation among the given two elements, generalisation of `max`.

That is, x ~ rightmost x y and y ~ rightmost x y, and `rightmost x y` is either `x` or `y`

Visibility: public export
leftmostRelL : (0rel : (ty->ty->Type)) ->Reflexivetyrel=> {auto{conArg:2893} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->rel (leftmostrelxy) x
Visibility: export
leftmostRelR : (0rel : (ty->ty->Type)) ->Reflexivetyrel=> {auto{conArg:2963} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->rel (leftmostrelxy) y
Visibility: export
leftmostPreserves : (0rel : (ty->ty->Type)) -> {auto{conArg:3030} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->Either (leftmostrelxy=x) (leftmostrelxy=y)
Visibility: export
leftmostIsRightmostLeft : (0rel : (ty->ty->Type)) -> {auto{conArg:3113} : StronglyConnextyrel} -> (x : ty) -> (y : ty) -> (z : ty) ->relzx->relzy->relz (leftmostrelxy)
Visibility: export
rightmostRelL : (0rel : (ty->ty->Type)) ->Reflexivetyrel=> {auto{conArg:3188} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->relx (rightmostrelxy)
Visibility: export
rightmostRelR : (0rel : (ty->ty->Type)) ->Reflexivetyrel=> {auto{conArg:3258} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->rely (rightmostrelxy)
Visibility: export
rightmostPreserves : (0rel : (ty->ty->Type)) -> {auto{conArg:3325} : StronglyConnextyrel} -> (x : ty) -> (y : ty) ->Either (rightmostrelxy=x) (rightmostrelxy=y)
Visibility: export
rightmostIsLeftmostRight : (0rel : (ty->ty->Type)) -> {auto{conArg:3408} : StronglyConnextyrel} -> (x : ty) -> (y : ty) -> (z : ty) ->relxz->relyz->rel (leftmostrelxy) z
Visibility: export
\ No newline at end of file diff --git a/base/docs/Control.Relation.Closure.html b/base/docs/Control.Relation.Closure.html index 54d8247ae7..90dbefaf6b 100644 --- a/base/docs/Control.Relation.Closure.html +++ b/base/docs/Control.Relation.Closure.html @@ -61,4 +61,4 @@ -

Control.Relation.Closure(source)

Definitions

dataSymClosure : Relty->ty->ty->Type
Totality: total
Visibility: public export
Constructors:
Fwd : relxy->SymClosurerelxy
Bwd : relyx->SymClosurerelxy

Hints:
Reflexivetyrel=>Reflexivety (SymClosurerel)
Symmetricty (SymClosurerel)
dataTransClosure : Relty->ty->ty->Type
Totality: total
Visibility: public export
Constructors:
Nil : TransClosurerelxx
(::) : relxy->TransClosurerelyz->TransClosurerelxz

Hints:
Symmetrictyrel=>Equivalencety (TransClosurerel)
Symmetrictyrel=>Euclideanty (TransClosurerel)
Symmetrictyrel=>PartialEquivalencety (TransClosurerel)
Reflexivety (TransClosurerel)
Symmetrictyrel=>Symmetricty (TransClosurerel)
Symmetrictyrel=>Tolerancety (TransClosurerel)
Transitivety (TransClosurerel)
\ No newline at end of file +

Control.Relation.Closure(source)

Definitions

dataSymClosure : Relty->ty->ty->Type
Totality: total
Visibility: public export
Constructors:
Fwd : relxy->SymClosurerelxy
Bwd : relyx->SymClosurerelxy

Hints:
Reflexivetyrel=>Reflexivety (SymClosurerel)
Symmetricty (SymClosurerel)
dataTransClosure : Relty->ty->ty->Type
Totality: total
Visibility: public export
Constructors:
Nil : TransClosurerelxx
(::) : relxy->TransClosurerelyz->TransClosurerelxz

Hints:
Symmetrictyrel=>Equivalencety (TransClosurerel)
Symmetrictyrel=>Euclideanty (TransClosurerel)
Symmetrictyrel=>PartialEquivalencety (TransClosurerel)
Reflexivety (TransClosurerel)
Symmetrictyrel=>Symmetricty (TransClosurerel)
Symmetrictyrel=>Tolerancety (TransClosurerel)
Transitivety (TransClosurerel)
\ No newline at end of file diff --git a/base/docs/Control.Relation.html b/base/docs/Control.Relation.html index 3da03693da..ff5636f608 100644 --- a/base/docs/Control.Relation.html +++ b/base/docs/Control.Relation.html @@ -67,4 +67,4 @@ This module defines some interfaces for describing properties of binary relations. It also proves somes relations among relations. -

Definitions

Rel : Type->Type
  A relation on ty is a type indexed by two ty values

Totality: total
Visibility: public export
interfaceReflexive : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is reflexive if x ~ x for every x.

Parameters: ty, rel
Constructor: 
MkReflexive

Methods:
reflexive : relxx

Implementations:
(Transitivetyrel, (Symmetrictyrel, Serialtyrel)) =>Reflexivetyrel
ReflexivetyEqual
ReflexiveNatLTE
reflexive : Reflexivetyrel=>relxx
Totality: total
Visibility: public export
interfaceTransitive : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is transitive if x ~ z when x ~ y and y ~ z.

Parameters: ty, rel
Constructor: 
MkTransitive

Methods:
transitive : relxy->relyz->relxz

Implementations:
TransitivetyEqual
TransitiveNatLTE
transitive : Transitivetyrel=>relxy->relyz->relxz
Totality: total
Visibility: public export
interfaceSymmetric : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is symmetric if y ~ x when x ~ y.

Parameters: ty, rel
Constructor: 
MkSymmetric

Methods:
symmetric : relxy->relyx

Implementation: 
SymmetrictyEqual
symmetric : Symmetrictyrel=>relxy->relyx
Totality: total
Visibility: public export
interfaceAntisymmetric : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is antisymmetric if no two distinct elements bear the relation to each other.

Parameters: ty, rel
Constructor: 
MkAntisymmetric

Methods:
antisymmetric : relxy->relyx->x=y

Implementation: 
AntisymmetricNatLTE
antisymmetric : Antisymmetrictyrel=>relxy->relyx->x=y
Totality: total
Visibility: public export
interfaceDense : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is dense if when x ~ y there is z such that x ~ z and z ~ y.

Parameters: ty, rel
Constructor: 
MkDense

Methods:
dense : relxy-> (z : ty** (relxz, relzy))

Implementation: 
Reflexivetyrel=>Densetyrel
dense : Densetyrel=>relxy-> (z : ty** (relxz, relzy))
Totality: total
Visibility: public export
interfaceSerial : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is serial if for all x there is a y such that x ~ y.

Parameters: ty, rel
Constructor: 
MkSerial

Methods:
serial : (y : ty**relxy)

Implementation: 
Reflexivetyrel=>Serialtyrel
serial : Serialtyrel=> (y : ty**relxy)
Totality: total
Visibility: public export
interfaceEuclidean : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is euclidean if y ~ z when x ~ y and x ~ z.

Parameters: ty, rel
Constructor: 
MkEuclidean

Methods:
euclidean : relxy->relxz->relyz

Implementation: 
EuclideantyEqual
euclidean : Euclideantyrel=>relxy->relxz->relyz
Totality: total
Visibility: public export
interfaceTolerance : (ty : Type) -> (ty->ty->Type) ->Type
  A tolerance relation is reflexive and symmetric.

Parameters: ty, rel
Constraints: Reflexive ty rel, Symmetric ty rel
Implementation: 
TolerancetyEqual
interfacePartialEquivalence : (ty : Type) -> (ty->ty->Type) ->Type
  A partial equivalence is transitive and symmetric.

Parameters: ty, rel
Constraints: Transitive ty rel, Symmetric ty rel
Implementation: 
PartialEquivalencetyEqual
interfaceEquivalence : (ty : Type) -> (ty->ty->Type) ->Type
  An equivalence relation is transitive, symmetric, and reflexive.

Parameters: ty, rel
Constraints: Reflexive ty rel, Transitive ty rel, Symmetric ty rel
Implementation: 
EquivalencetyEqual
\ No newline at end of file +

Definitions

Rel : Type->Type
  A relation on ty is a type indexed by two ty values

Totality: total
Visibility: public export
interfaceReflexive : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is reflexive if x ~ x for every x.

Parameters: ty, rel
Constructor: 
MkReflexive

Methods:
reflexive : relxx

Implementations:
(Transitivetyrel, (Symmetrictyrel, Serialtyrel)) =>Reflexivetyrel
ReflexivetyEqual
ReflexiveNatLTE
reflexive : Reflexivetyrel=>relxx
Totality: total
Visibility: public export
interfaceTransitive : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is transitive if x ~ z when x ~ y and y ~ z.

Parameters: ty, rel
Constructor: 
MkTransitive

Methods:
transitive : relxy->relyz->relxz

Implementations:
TransitivetyEqual
TransitiveNatLTE
transitive : Transitivetyrel=>relxy->relyz->relxz
Totality: total
Visibility: public export
interfaceSymmetric : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is symmetric if y ~ x when x ~ y.

Parameters: ty, rel
Constructor: 
MkSymmetric

Methods:
symmetric : relxy->relyx

Implementation: 
SymmetrictyEqual
symmetric : Symmetrictyrel=>relxy->relyx
Totality: total
Visibility: public export
interfaceAntisymmetric : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is antisymmetric if no two distinct elements bear the relation to each other.

Parameters: ty, rel
Constructor: 
MkAntisymmetric

Methods:
antisymmetric : relxy->relyx->x=y

Implementation: 
AntisymmetricNatLTE
antisymmetric : Antisymmetrictyrel=>relxy->relyx->x=y
Totality: total
Visibility: public export
interfaceDense : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is dense if when x ~ y there is z such that x ~ z and z ~ y.

Parameters: ty, rel
Constructor: 
MkDense

Methods:
dense : relxy-> (z : ty** (relxz, relzy))

Implementation: 
Reflexivetyrel=>Densetyrel
dense : Densetyrel=>relxy-> (z : ty** (relxz, relzy))
Totality: total
Visibility: public export
interfaceSerial : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is serial if for all x there is a y such that x ~ y.

Parameters: ty, rel
Constructor: 
MkSerial

Methods:
serial : (y : ty**relxy)

Implementation: 
Reflexivetyrel=>Serialtyrel
serial : Serialtyrel=> (y : ty**relxy)
Totality: total
Visibility: public export
interfaceEuclidean : (ty : Type) -> (ty->ty->Type) ->Type
  A relation is euclidean if y ~ z when x ~ y and x ~ z.

Parameters: ty, rel
Constructor: 
MkEuclidean

Methods:
euclidean : relxy->relxz->relyz

Implementation: 
EuclideantyEqual
euclidean : Euclideantyrel=>relxy->relxz->relyz
Totality: total
Visibility: public export
interfaceTolerance : (ty : Type) -> (ty->ty->Type) ->Type
  A tolerance relation is reflexive and symmetric.

Parameters: ty, rel
Constraints: Reflexive ty rel, Symmetric ty rel
Implementation: 
TolerancetyEqual
interfacePartialEquivalence : (ty : Type) -> (ty->ty->Type) ->Type
  A partial equivalence is transitive and symmetric.

Parameters: ty, rel
Constraints: Transitive ty rel, Symmetric ty rel
Implementation: 
PartialEquivalencetyEqual
interfaceEquivalence : (ty : Type) -> (ty->ty->Type) ->Type
  An equivalence relation is transitive, symmetric, and reflexive.

Parameters: ty, rel
Constraints: Reflexive ty rel, Transitive ty rel, Symmetric ty rel
Implementation: 
EquivalencetyEqual
\ No newline at end of file diff --git a/base/docs/Control.WellFounded.html b/base/docs/Control.WellFounded.html index c18dfb54c5..14d8eddef9 100644 --- a/base/docs/Control.WellFounded.html +++ b/base/docs/Control.WellFounded.html @@ -80,4 +80,4 @@ Many instances of well-founded induction are actually induction over natural numbers that are derived from the elements being inducted over. For this purpose, the `Sized` interface and related functions are provided. -

Definitions

dataAccessible : (a->a->Type) ->a->Type
  A value is accessible if everything smaller than it is also accessible.

Totality: total
Visibility: public export
Constructor: 
Access : ((y : a) ->relyx->Accessiblerely) ->Accessiblerelx
interfaceWellFounded : (a : Type) -> (a->a->Type) ->Type
  A relation is well-founded if every element is accessible.

Parameters: a, rel
Methods:
wellFounded : (x : a) ->Accessiblerelx

Implementation: 
WellFoundedNatLT
wellFounded : WellFoundedarel=> (x : a) ->Accessiblerelx
Totality: total
Visibility: public export
accRec : ((x : a) -> ((y : a) ->relyx->b) ->b) -> (z : a) -> (0_ : Accessiblerelz) ->b
  Simply-typed recursion based on accessibility.

The recursive step for an element has access to all elements smaller than
it. The recursion will therefore halt when it reaches a minimum element.

This may sometimes improve type-inference, compared to `accInd`.

Totality: total
Visibility: export
accInd : {0P : a->Type} -> ((x : a) -> ((y : a) ->relyx->Py) ->Px) -> (z : a) -> (0_ : Accessiblerelz) ->Pz
  Depedently-typed induction based on accessibility.

The recursive step for an element has access to all elements smaller than
it. The recursion will therefore halt when it reaches a minimum element.

Totality: total
Visibility: export
accIndProp : {0P : a->Type} -> (step : ((x : a) -> ((y : a) ->relyx->Py) ->Px)) -> {0RP : (x : a) ->Px->Type} -> ((x : a) -> (f : ((y : a) ->relyx->Py)) -> ((y : a) -> (isRel : relyx) ->RPy (fyisRel)) ->RPx (stepxf)) -> (z : a) -> (0acc : Accessiblerelz) ->RPz (accIndstepzacc)
  Depedently-typed induction for creating extrinsic proofs on results of `accInd`.

Totality: total
Visibility: export
wfRec : {auto0_ : WellFoundedarel} -> ((x : a) -> ((y : a) ->relyx->b) ->b) ->a->b
  Simply-typed recursion based on well-founded-ness.

This is `accRec` applied to accessibility derived from a `WellFounded`
instance.

Totality: total
Visibility: export
wfInd : {auto0_ : WellFoundedarel} -> {0P : a->Type} -> ((x : a) -> ((y : a) ->relyx->Py) ->Px) -> (myz : a) ->Pmyz
  Depedently-typed induction based on well-founded-ness.

This is `accInd` applied to accessibility derived from a `WellFounded`
instance.

Totality: total
Visibility: export
wfIndProp : {auto0{conArg:1388} : WellFoundedarel} -> {0P : a->Type} -> (step : ((x : a) -> ((y : a) ->relyx->Py) ->Px)) -> {0RP : (x : a) ->Px->Type} -> ((x : a) -> (f : ((y : a) ->relyx->Py)) -> ((y : a) -> (isRel : relyx) ->RPy (fyisRel)) ->RPx (stepxf)) -> (myz : a) ->RPmyz (wfIndstepmyz)
  Depedently-typed induction for creating extrinsic proofs on results of `wfInd`.

Totality: total
Visibility: export
interfaceSized : Type->Type
  Types that have a concept of size. The size must be a natural number.

Parameters: a
Constructor: 
MkSized

Methods:
size : a->Nat

Implementations:
SizedNat
Sized (Lista)
(Sizeda, Sizedb) =>Sized (a, b)
size : Sizeda=>a->Nat
Totality: total
Visibility: public export
Smaller : Sizeda=>a->a->Type
  A relation based on the size of the values.

Totality: total
Visibility: public export
SizeAccessible : Sizeda=>a->Type
  Values that are accessible based on their size.

Totality: total
Visibility: public export
sizeAccessible : {auto{conArg:1594} : Sizeda} -> (x : a) ->SizeAccessiblex
  Any value of a sized type is accessible, since naturals are well-founded.

Totality: total
Visibility: export
sizeInd : {auto{conArg:1659} : Sizeda} -> {0P : a->Type} -> ((x : a) -> ((y : a) ->Smalleryx->Py) ->Px) -> (z : a) ->Pz
  Depedently-typed induction based on the size of values.

This is `accInd` applied to accessibility derived from size.

Totality: total
Visibility: export
sizeRec : {auto{conArg:1720} : Sizeda} -> ((x : a) -> ((y : a) ->Smalleryx->b) ->b) ->a->b
  Simply-typed recursion based on the size of values.

This is `recInd` applied to accessibility derived from size.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataAccessible : (a->a->Type) ->a->Type
  A value is accessible if everything smaller than it is also accessible.

Totality: total
Visibility: public export
Constructor: 
Access : ((y : a) ->relyx->Accessiblerely) ->Accessiblerelx
interfaceWellFounded : (a : Type) -> (a->a->Type) ->Type
  A relation is well-founded if every element is accessible.

Parameters: a, rel
Methods:
wellFounded : (x : a) ->Accessiblerelx

Implementation: 
WellFoundedNatLT
wellFounded : WellFoundedarel=> (x : a) ->Accessiblerelx
Totality: total
Visibility: public export
accRec : ((x : a) -> ((y : a) ->relyx->b) ->b) -> (z : a) -> (0_ : Accessiblerelz) ->b
  Simply-typed recursion based on accessibility.

The recursive step for an element has access to all elements smaller than
it. The recursion will therefore halt when it reaches a minimum element.

This may sometimes improve type-inference, compared to `accInd`.

Totality: total
Visibility: export
accInd : {0P : a->Type} -> ((x : a) -> ((y : a) ->relyx->Py) ->Px) -> (z : a) -> (0_ : Accessiblerelz) ->Pz
  Depedently-typed induction based on accessibility.

The recursive step for an element has access to all elements smaller than
it. The recursion will therefore halt when it reaches a minimum element.

Totality: total
Visibility: export
accIndProp : {0P : a->Type} -> (step : ((x : a) -> ((y : a) ->relyx->Py) ->Px)) -> {0RP : (x : a) ->Px->Type} -> ((x : a) -> (f : ((y : a) ->relyx->Py)) -> ((y : a) -> (isRel : relyx) ->RPy (fyisRel)) ->RPx (stepxf)) -> (z : a) -> (0acc : Accessiblerelz) ->RPz (accIndstepzacc)
  Depedently-typed induction for creating extrinsic proofs on results of `accInd`.

Totality: total
Visibility: export
wfRec : {auto0_ : WellFoundedarel} -> ((x : a) -> ((y : a) ->relyx->b) ->b) ->a->b
  Simply-typed recursion based on well-founded-ness.

This is `accRec` applied to accessibility derived from a `WellFounded`
instance.

Totality: total
Visibility: export
wfInd : {auto0_ : WellFoundedarel} -> {0P : a->Type} -> ((x : a) -> ((y : a) ->relyx->Py) ->Px) -> (myz : a) ->Pmyz
  Depedently-typed induction based on well-founded-ness.

This is `accInd` applied to accessibility derived from a `WellFounded`
instance.

Totality: total
Visibility: export
wfIndProp : {auto0{conArg:1388} : WellFoundedarel} -> {0P : a->Type} -> (step : ((x : a) -> ((y : a) ->relyx->Py) ->Px)) -> {0RP : (x : a) ->Px->Type} -> ((x : a) -> (f : ((y : a) ->relyx->Py)) -> ((y : a) -> (isRel : relyx) ->RPy (fyisRel)) ->RPx (stepxf)) -> (myz : a) ->RPmyz (wfIndstepmyz)
  Depedently-typed induction for creating extrinsic proofs on results of `wfInd`.

Totality: total
Visibility: export
interfaceSized : Type->Type
  Types that have a concept of size. The size must be a natural number.

Parameters: a
Constructor: 
MkSized

Methods:
size : a->Nat

Implementations:
SizedNat
Sized (Lista)
(Sizeda, Sizedb) =>Sized (a, b)
size : Sizeda=>a->Nat
Totality: total
Visibility: public export
Smaller : Sizeda=>a->a->Type
  A relation based on the size of the values.

Totality: total
Visibility: public export
SizeAccessible : Sizeda=>a->Type
  Values that are accessible based on their size.

Totality: total
Visibility: public export
sizeAccessible : {auto{conArg:1594} : Sizeda} -> (x : a) ->SizeAccessiblex
  Any value of a sized type is accessible, since naturals are well-founded.

Totality: total
Visibility: export
sizeInd : {auto{conArg:1659} : Sizeda} -> {0P : a->Type} -> ((x : a) -> ((y : a) ->Smalleryx->Py) ->Px) -> (z : a) ->Pz
  Depedently-typed induction based on the size of values.

This is `accInd` applied to accessibility derived from size.

Totality: total
Visibility: export
sizeRec : {auto{conArg:1720} : Sizeda} -> ((x : a) -> ((y : a) ->Smalleryx->b) ->b) ->a->b
  Simply-typed recursion based on the size of values.

This is `recInd` applied to accessibility derived from size.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Bifoldable.html b/base/docs/Data.Bifoldable.html index 355b7b6c8b..8e8ed4b3b4 100644 --- a/base/docs/Data.Bifoldable.html +++ b/base/docs/Data.Bifoldable.html @@ -62,4 +62,4 @@

Data.Bifoldable(source)

Additional utility functions for the `Bifoldable` interface.
-

Definitions

bifoldlM : Monadm=>Bifoldablep=> (a->b->ma) -> (a->c->ma) ->a->pbc->ma
  Left associative monadic bifold over a structure.

Totality: total
Visibility: public export
biconcat : Monoidm=>Bifoldablep=>pmm->m
  Combines the elements of a structure using a monoid.

Totality: total
Visibility: public export
biconcatMap : Monoidm=>Bifoldablep=> (a->m) -> (b->m) ->pab->m
  Combines the elements of a structure,
given ways of mapping them to a common monoid.

Totality: total
Visibility: public export
biand : Bifoldablep=>p (Lazy Bool) (Lazy Bool) ->Bool
  The conjunction of all elements of a structure containing lazy boolean
values. `biand` short-circuits from left to right, evaluating until either an
element is `False` or no elements remain.

Totality: total
Visibility: public export
bior : Bifoldablep=>p (Lazy Bool) (Lazy Bool) ->Bool
  The disjunction of all elements of a structure containing lazy boolean
values. `bior` short-circuits from left to right, evaluating either until an
element is `True` or no elements remain.

Totality: total
Visibility: public export
biany : Bifoldablep=> (a->Bool) -> (b->Bool) ->pab->Bool
  The disjunction of the collective results of applying a predicate to all
elements of a structure. `biany` short-circuits from left to right.

Totality: total
Visibility: public export
biall : Bifoldablep=> (a->Bool) -> (b->Bool) ->pab->Bool
  The disjunction of the collective results of applying a predicate to all
elements of a structure. `biall` short-circuits from left to right.

Totality: total
Visibility: public export
bisum : Numa=>Bifoldablep=>paa->a
  Add together all the elements of a structure.

Totality: total
Visibility: public export
bisum' : Numa=>Bifoldablep=>paa->a
  Add together all the elements of a structure.
Same as `bisum` but tail recursive.

Totality: total
Visibility: export
biproduct : Numa=>Bifoldablep=>paa->a
  Multiply together all elements of a structure.

Totality: total
Visibility: public export
biproduct' : Numa=>Bifoldablep=>paa->a
  Multiply together all elements of a structure.
Same as `product` but tail recursive.

Totality: total
Visibility: export
bitraverse_ : (Bifoldablep, Applicativef) => (a->fx) -> (b->fy) ->pab->f ()
  Map each element of a structure to a computation, evaluate those
computations and discard the results.

Totality: total
Visibility: public export
bisequence_ : Applicativef=>Bifoldablep=>p (fa) (fb) ->f ()
  Evaluate each computation in a structure and discard the results.

Totality: total
Visibility: public export
bifor_ : (Bifoldablep, Applicativef) =>pab-> (a->fx) -> (b->fy) ->f ()
  Like `bitraverse_` but with the arguments flipped.

Totality: total
Visibility: public export
bichoice : Alternativef=>Bifoldablep=>p (Lazy (fa)) (Lazy (fa)) ->fa
  Bifold using Alternative.

If you have a left-biased alternative operator `<|>`, then `choice` performs
left-biased choice from a list of alternatives, which means that it
evaluates to the left-most non-`empty` alternative.

Totality: total
Visibility: public export
bichoiceMap : (Bifoldablep, Alternativef) => (a->fx) -> (b->fx) ->pab->fx
  A fused version of `bichoice` and `bimap`.

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

bifoldlM : Monadm=>Bifoldablep=> (a->b->ma) -> (a->c->ma) ->a->pbc->ma
  Left associative monadic bifold over a structure.

Totality: total
Visibility: public export
biconcat : Monoidm=>Bifoldablep=>pmm->m
  Combines the elements of a structure using a monoid.

Totality: total
Visibility: public export
biconcatMap : Monoidm=>Bifoldablep=> (a->m) -> (b->m) ->pab->m
  Combines the elements of a structure,
given ways of mapping them to a common monoid.

Totality: total
Visibility: public export
biand : Bifoldablep=>p (Lazy Bool) (Lazy Bool) ->Bool
  The conjunction of all elements of a structure containing lazy boolean
values. `biand` short-circuits from left to right, evaluating until either an
element is `False` or no elements remain.

Totality: total
Visibility: public export
bior : Bifoldablep=>p (Lazy Bool) (Lazy Bool) ->Bool
  The disjunction of all elements of a structure containing lazy boolean
values. `bior` short-circuits from left to right, evaluating either until an
element is `True` or no elements remain.

Totality: total
Visibility: public export
biany : Bifoldablep=> (a->Bool) -> (b->Bool) ->pab->Bool
  The disjunction of the collective results of applying a predicate to all
elements of a structure. `biany` short-circuits from left to right.

Totality: total
Visibility: public export
biall : Bifoldablep=> (a->Bool) -> (b->Bool) ->pab->Bool
  The disjunction of the collective results of applying a predicate to all
elements of a structure. `biall` short-circuits from left to right.

Totality: total
Visibility: public export
bisum : Numa=>Bifoldablep=>paa->a
  Add together all the elements of a structure.

Totality: total
Visibility: public export
bisum' : Numa=>Bifoldablep=>paa->a
  Add together all the elements of a structure.
Same as `bisum` but tail recursive.

Totality: total
Visibility: export
biproduct : Numa=>Bifoldablep=>paa->a
  Multiply together all elements of a structure.

Totality: total
Visibility: public export
biproduct' : Numa=>Bifoldablep=>paa->a
  Multiply together all elements of a structure.
Same as `product` but tail recursive.

Totality: total
Visibility: export
bitraverse_ : (Bifoldablep, Applicativef) => (a->fx) -> (b->fy) ->pab->f ()
  Map each element of a structure to a computation, evaluate those
computations and discard the results.

Totality: total
Visibility: public export
bisequence_ : Applicativef=>Bifoldablep=>p (fa) (fb) ->f ()
  Evaluate each computation in a structure and discard the results.

Totality: total
Visibility: public export
bifor_ : (Bifoldablep, Applicativef) =>pab-> (a->fx) -> (b->fy) ->f ()
  Like `bitraverse_` but with the arguments flipped.

Totality: total
Visibility: public export
bichoice : Alternativef=>Bifoldablep=>p (Lazy (fa)) (Lazy (fa)) ->fa
  Bifold using Alternative.

If you have a left-biased alternative operator `<|>`, then `choice` performs
left-biased choice from a list of alternatives, which means that it
evaluates to the left-most non-`empty` alternative.

Totality: total
Visibility: public export
bichoiceMap : (Bifoldablep, Alternativef) => (a->fx) -> (b->fx) ->pab->fx
  A fused version of `bichoice` and `bimap`.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Bits.html b/base/docs/Data.Bits.html index ac3a78ee48..6de7f411d6 100644 --- a/base/docs/Data.Bits.html +++ b/base/docs/Data.Bits.html @@ -61,4 +61,4 @@ -

Data.Bits(source)

Reexports

importpublic Data.Fin

Definitions

interfaceBits : Type->Type
  The `Bits` interface defines bitwise operations over integral types.

Parameters: a
Methods:
0Index : Type
(.&.) : a->a->a
  Bitwise "and"

Fixity Declaration: infixl operator, level 7
(.|.) : a->a->a
  Bitwise "or"

Fixity Declaration: infixl operator, level 5
xor : a->a->a
  Bitwise "xor".

Fixity Declaration: infixl operator, level 6
shiftL : a->Index->a
  Shift the argument left by the specified number of bits.

Fixity Declaration: infixl operator, level 8
shiftR : a->Index->a
  Shift the argument right by the specified number of bits.

Fixity Declaration: infixl operator, level 8
bit : Index->a
  Sets the `i`-th bit.
zeroBits : a
  The value with all bits unset.
complement : a->a
  Returns the bitwise complement of a value.
oneBits : a
  The value with all bits set..
complementBit : a->Index->a
  `complementBit x i` is the same as `xor x (bit i)`.
clearBit : a->Index->a
  `clearBit x i` is the same as `x .&. complement (bit i)`
testBit : a->Index->Bool
  Tests, whether the i-th bit is set in the given value.
setBit : a->Index->a
  Sets the i-th bit of a value.

Implementations:
Bitsa=>Bits (Identitya)
BitsBits8
BitsBits16
BitsBits32
BitsBits64
BitsInt
BitsInt8
BitsInt16
BitsInt32
BitsInt64
BitsInteger
Bitsa=>Bits (Constab)
0Index : Bitsa=>Type
Totality: total
Visibility: public export
(.&.) : Bitsa=>a->a->a
  Bitwise "and"

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 7
(.|.) : Bitsa=>a->a->a
  Bitwise "or"

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 5
xor : Bitsa=>a->a->a
  Bitwise "xor".

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 6
shiftL : {auto__con : Bitsa} ->a->Index->a
  Shift the argument left by the specified number of bits.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
shiftR : {auto__con : Bitsa} ->a->Index->a
  Shift the argument right by the specified number of bits.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
bit : {auto__con : Bitsa} ->Index->a
  Sets the `i`-th bit.

Totality: total
Visibility: public export
zeroBits : Bitsa=>a
  The value with all bits unset.

Totality: total
Visibility: public export
complement : Bitsa=>a->a
  Returns the bitwise complement of a value.

Totality: total
Visibility: public export
oneBits : Bitsa=>a
  The value with all bits set..

Totality: total
Visibility: public export
complementBit : {auto__con : Bitsa} ->a->Index->a
  `complementBit x i` is the same as `xor x (bit i)`.

Totality: total
Visibility: public export
clearBit : {auto__con : Bitsa} ->a->Index->a
  `clearBit x i` is the same as `x .&. complement (bit i)`

Totality: total
Visibility: public export
testBit : {auto__con : Bitsa} ->a->Index->Bool
  Tests, whether the i-th bit is set in the given value.

Totality: total
Visibility: public export
setBit : {auto__con : Bitsa} ->a->Index->a
  Sets the i-th bit of a value.

Totality: total
Visibility: public export
interfaceFiniteBits : Type->Type
Parameters: a
Constraints: Bits a
Methods:
bitSize : Nat
  Return the number of bits in values of type `t`.
bitsToIndex : FinbitSize->Index
  Properly correlates `bitSize` and `Index`.
popCount : a->Nat
  Return the number of set bits in the argument.  This number is
known as the population count or the Hamming weight.
rotR : a->FinbitSize->a
  Rotate the argument right by the specified number of bits.
rotL : a->FinbitSize->a
  Rotate the argument left by the specified number of bits.

Implementations:
FiniteBitsBits8
FiniteBitsBits16
FiniteBitsBits32
FiniteBitsBits64
FiniteBitsInt
FiniteBitsInt8
FiniteBitsInt16
FiniteBitsInt32
FiniteBitsInt64
bitSize : FiniteBitsa=>Nat
  Return the number of bits in values of type `t`.

Totality: total
Visibility: public export
bitsToIndex : {auto__con : FiniteBitsa} ->FinbitSize->Index
  Properly correlates `bitSize` and `Index`.

Totality: total
Visibility: public export
popCount : FiniteBitsa=>a->Nat
  Return the number of set bits in the argument.  This number is
known as the population count or the Hamming weight.

Totality: total
Visibility: public export
rotR : {auto__con : FiniteBitsa} ->a->FinbitSize->a
  Rotate the argument right by the specified number of bits.

Totality: total
Visibility: public export
rotL : {auto__con : FiniteBitsa} ->a->FinbitSize->a
  Rotate the argument left by the specified number of bits.

Totality: total
Visibility: public export
asBitVector : {auto{conArg:6938} : FiniteBitsa} ->a->VectbitSizeBool
Totality: total
Visibility: public export
asString : FiniteBitsa=>a->String
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Bits(source)

Reexports

importpublic Data.Fin

Definitions

interfaceBits : Type->Type
  The `Bits` interface defines bitwise operations over integral types.

Parameters: a
Methods:
0Index : Type
(.&.) : a->a->a
  Bitwise "and"

Fixity Declaration: infixl operator, level 7
(.|.) : a->a->a
  Bitwise "or"

Fixity Declaration: infixl operator, level 5
xor : a->a->a
  Bitwise "xor".

Fixity Declaration: infixl operator, level 6
shiftL : a->Index->a
  Shift the argument left by the specified number of bits.

Fixity Declaration: infixl operator, level 8
shiftR : a->Index->a
  Shift the argument right by the specified number of bits.

Fixity Declaration: infixl operator, level 8
bit : Index->a
  Sets the `i`-th bit.
zeroBits : a
  The value with all bits unset.
complement : a->a
  Returns the bitwise complement of a value.
oneBits : a
  The value with all bits set..
complementBit : a->Index->a
  `complementBit x i` is the same as `xor x (bit i)`.
clearBit : a->Index->a
  `clearBit x i` is the same as `x .&. complement (bit i)`
testBit : a->Index->Bool
  Tests, whether the i-th bit is set in the given value.
setBit : a->Index->a
  Sets the i-th bit of a value.

Implementations:
Bitsa=>Bits (Identitya)
BitsBits8
BitsBits16
BitsBits32
BitsBits64
BitsInt
BitsInt8
BitsInt16
BitsInt32
BitsInt64
BitsInteger
Bitsa=>Bits (Constab)
0Index : Bitsa=>Type
Totality: total
Visibility: public export
(.&.) : Bitsa=>a->a->a
  Bitwise "and"

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 7
(.|.) : Bitsa=>a->a->a
  Bitwise "or"

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 5
xor : Bitsa=>a->a->a
  Bitwise "xor".

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 6
shiftL : {auto__con : Bitsa} ->a->Index->a
  Shift the argument left by the specified number of bits.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
shiftR : {auto__con : Bitsa} ->a->Index->a
  Shift the argument right by the specified number of bits.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
bit : {auto__con : Bitsa} ->Index->a
  Sets the `i`-th bit.

Totality: total
Visibility: public export
zeroBits : Bitsa=>a
  The value with all bits unset.

Totality: total
Visibility: public export
complement : Bitsa=>a->a
  Returns the bitwise complement of a value.

Totality: total
Visibility: public export
oneBits : Bitsa=>a
  The value with all bits set..

Totality: total
Visibility: public export
complementBit : {auto__con : Bitsa} ->a->Index->a
  `complementBit x i` is the same as `xor x (bit i)`.

Totality: total
Visibility: public export
clearBit : {auto__con : Bitsa} ->a->Index->a
  `clearBit x i` is the same as `x .&. complement (bit i)`

Totality: total
Visibility: public export
testBit : {auto__con : Bitsa} ->a->Index->Bool
  Tests, whether the i-th bit is set in the given value.

Totality: total
Visibility: public export
setBit : {auto__con : Bitsa} ->a->Index->a
  Sets the i-th bit of a value.

Totality: total
Visibility: public export
interfaceFiniteBits : Type->Type
Parameters: a
Constraints: Bits a
Methods:
bitSize : Nat
  Return the number of bits in values of type `t`.
bitsToIndex : FinbitSize->Index
  Properly correlates `bitSize` and `Index`.
popCount : a->Nat
  Return the number of set bits in the argument.  This number is
known as the population count or the Hamming weight.
rotR : a->FinbitSize->a
  Rotate the argument right by the specified number of bits.
rotL : a->FinbitSize->a
  Rotate the argument left by the specified number of bits.

Implementations:
FiniteBitsBits8
FiniteBitsBits16
FiniteBitsBits32
FiniteBitsBits64
FiniteBitsInt
FiniteBitsInt8
FiniteBitsInt16
FiniteBitsInt32
FiniteBitsInt64
bitSize : FiniteBitsa=>Nat
  Return the number of bits in values of type `t`.

Totality: total
Visibility: public export
bitsToIndex : {auto__con : FiniteBitsa} ->FinbitSize->Index
  Properly correlates `bitSize` and `Index`.

Totality: total
Visibility: public export
popCount : FiniteBitsa=>a->Nat
  Return the number of set bits in the argument.  This number is
known as the population count or the Hamming weight.

Totality: total
Visibility: public export
rotR : {auto__con : FiniteBitsa} ->a->FinbitSize->a
  Rotate the argument right by the specified number of bits.

Totality: total
Visibility: public export
rotL : {auto__con : FiniteBitsa} ->a->FinbitSize->a
  Rotate the argument left by the specified number of bits.

Totality: total
Visibility: public export
asBitVector : {auto{conArg:6938} : FiniteBitsa} ->a->VectbitSizeBool
Totality: total
Visibility: public export
asString : FiniteBitsa=>a->String
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Bool.Xor.html b/base/docs/Data.Bool.Xor.html index bc10eb5670..0959a0f8e5 100644 --- a/base/docs/Data.Bool.Xor.html +++ b/base/docs/Data.Bool.Xor.html @@ -61,4 +61,4 @@ -

Data.Bool.Xor(source)

Definitions

xor : Bool->Bool->Bool
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 6
xorSameFalse : (b : Bool) ->b `xor` b=False
Totality: total
Visibility: export
xorFalseNeutral : (b : Bool) ->False `xor` b=b
Totality: total
Visibility: export
xorTrueNot : (b : Bool) ->True `xor` b=notb
Totality: total
Visibility: export
notXor : (a : Bool) -> (b : Bool) ->not (a `xor` b) =nota `xor` b
Totality: total
Visibility: export
notXorCancel : (a : Bool) -> (b : Bool) ->nota `xor` notb=a `xor` b
Totality: total
Visibility: export
xorAssociative : (a : Bool) -> (b : Bool) -> (c : Bool) ->a `xor` (b `xor` c) = (a `xor` b) `xor` c
Totality: total
Visibility: export
xorCommutative : (a : Bool) -> (b : Bool) ->a `xor` b=b `xor` a
Totality: total
Visibility: export
xorNotTrue : (a : Bool) ->a `xor` nota=True
Totality: total
Visibility: export
\ No newline at end of file +

Data.Bool.Xor(source)

Definitions

xor : Bool->Bool->Bool
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 6
xorSameFalse : (b : Bool) ->b `xor` b=False
Totality: total
Visibility: export
xorFalseNeutral : (b : Bool) ->False `xor` b=b
Totality: total
Visibility: export
xorTrueNot : (b : Bool) ->True `xor` b=notb
Totality: total
Visibility: export
notXor : (a : Bool) -> (b : Bool) ->not (a `xor` b) =nota `xor` b
Totality: total
Visibility: export
notXorCancel : (a : Bool) -> (b : Bool) ->nota `xor` notb=a `xor` b
Totality: total
Visibility: export
xorAssociative : (a : Bool) -> (b : Bool) -> (c : Bool) ->a `xor` (b `xor` c) = (a `xor` b) `xor` c
Totality: total
Visibility: export
xorCommutative : (a : Bool) -> (b : Bool) ->a `xor` b=b `xor` a
Totality: total
Visibility: export
xorNotTrue : (a : Bool) ->a `xor` nota=True
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Bool.html b/base/docs/Data.Bool.html index f9549f2351..e105d94a74 100644 --- a/base/docs/Data.Bool.html +++ b/base/docs/Data.Bool.html @@ -61,4 +61,4 @@ -

Data.Bool(source)

Definitions

notInvolutive : (x : Bool) ->not (notx) =x
Totality: total
Visibility: export
andSameNeutral : (x : Bool) ->x&& Delay x=x
Totality: total
Visibility: export
andFalseFalse : (x : Bool) ->x&& Delay False=False
Totality: total
Visibility: export
andTrueNeutral : (x : Bool) ->x&& Delay True=x
Totality: total
Visibility: export
andAssociative : (x : Bool) -> (y : Bool) -> (z : Bool) ->x&& Delay (y&& Delay z) = (x&& Delay y) && Delay z
Totality: total
Visibility: export
andCommutative : (x : Bool) -> (y : Bool) ->x&& Delay y=y&& Delay x
Totality: total
Visibility: export
andNotFalse : (x : Bool) ->x&& Delay (notx) =False
Totality: total
Visibility: export
orSameNeutral : (x : Bool) ->x|| Delay x=x
Totality: total
Visibility: export
orFalseNeutral : (x : Bool) ->x|| Delay False=x
Totality: total
Visibility: export
orTrueTrue : (x : Bool) ->x|| Delay True=True
Totality: total
Visibility: export
orAssociative : (x : Bool) -> (y : Bool) -> (z : Bool) ->x|| Delay (y|| Delay z) = (x|| Delay y) || Delay z
Totality: total
Visibility: export
orCommutative : (x : Bool) -> (y : Bool) ->x|| Delay y=y|| Delay x
Totality: total
Visibility: export
orNotTrue : (x : Bool) ->x|| Delay (notx) =True
Totality: total
Visibility: export
orBothFalse : (0_ : x|| Delay y=False) -> (x=False, y=False)
Totality: total
Visibility: export
orSameAndRightNeutral : (x : Bool) -> (y : Bool) ->x|| Delay (x&& Delay y) =x
Totality: total
Visibility: export
andDistribOrR : (x : Bool) -> (y : Bool) -> (z : Bool) ->x&& Delay (y|| Delay z) = (x&& Delay y) || Delay (x&& Delay z)
Totality: total
Visibility: export
orDistribAndR : (x : Bool) -> (y : Bool) -> (z : Bool) ->x|| Delay (y&& Delay z) = (x|| Delay y) && Delay (x|| Delay z)
Totality: total
Visibility: export
notAndIsOr : (x : Bool) -> (y : Bool) ->not (x&& Delay y) =notx|| Delay (noty)
Totality: total
Visibility: export
notOrIsAnd : (x : Bool) -> (y : Bool) ->not (x|| Delay y) =notx&& Delay (noty)
Totality: total
Visibility: export
notTrueIsFalse : Not (x=True) ->x=False
Totality: total
Visibility: export
notFalseIsTrue : Not (x=False) ->x=True
Totality: total
Visibility: export
invertContraBool : (a : Bool) -> (b : Bool) ->Not (a=b) ->nota=b
  You can reverse decidability when bool is involved.

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Bool(source)

Definitions

notInvolutive : (x : Bool) ->not (notx) =x
Totality: total
Visibility: export
andSameNeutral : (x : Bool) ->x&& Delay x=x
Totality: total
Visibility: export
andFalseFalse : (x : Bool) ->x&& Delay False=False
Totality: total
Visibility: export
andTrueNeutral : (x : Bool) ->x&& Delay True=x
Totality: total
Visibility: export
andAssociative : (x : Bool) -> (y : Bool) -> (z : Bool) ->x&& Delay (y&& Delay z) = (x&& Delay y) && Delay z
Totality: total
Visibility: export
andCommutative : (x : Bool) -> (y : Bool) ->x&& Delay y=y&& Delay x
Totality: total
Visibility: export
andNotFalse : (x : Bool) ->x&& Delay (notx) =False
Totality: total
Visibility: export
orSameNeutral : (x : Bool) ->x|| Delay x=x
Totality: total
Visibility: export
orFalseNeutral : (x : Bool) ->x|| Delay False=x
Totality: total
Visibility: export
orTrueTrue : (x : Bool) ->x|| Delay True=True
Totality: total
Visibility: export
orAssociative : (x : Bool) -> (y : Bool) -> (z : Bool) ->x|| Delay (y|| Delay z) = (x|| Delay y) || Delay z
Totality: total
Visibility: export
orCommutative : (x : Bool) -> (y : Bool) ->x|| Delay y=y|| Delay x
Totality: total
Visibility: export
orNotTrue : (x : Bool) ->x|| Delay (notx) =True
Totality: total
Visibility: export
orBothFalse : (0_ : x|| Delay y=False) -> (x=False, y=False)
Totality: total
Visibility: export
orSameAndRightNeutral : (x : Bool) -> (y : Bool) ->x|| Delay (x&& Delay y) =x
Totality: total
Visibility: export
andDistribOrR : (x : Bool) -> (y : Bool) -> (z : Bool) ->x&& Delay (y|| Delay z) = (x&& Delay y) || Delay (x&& Delay z)
Totality: total
Visibility: export
orDistribAndR : (x : Bool) -> (y : Bool) -> (z : Bool) ->x|| Delay (y&& Delay z) = (x|| Delay y) && Delay (x|| Delay z)
Totality: total
Visibility: export
notAndIsOr : (x : Bool) -> (y : Bool) ->not (x&& Delay y) =notx|| Delay (noty)
Totality: total
Visibility: export
notOrIsAnd : (x : Bool) -> (y : Bool) ->not (x|| Delay y) =notx&& Delay (noty)
Totality: total
Visibility: export
notTrueIsFalse : Not (x=True) ->x=False
Totality: total
Visibility: export
notFalseIsTrue : Not (x=False) ->x=True
Totality: total
Visibility: export
invertContraBool : (a : Bool) -> (b : Bool) ->Not (a=b) ->nota=b
  You can reverse decidability when bool is involved.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Buffer.html b/base/docs/Data.Buffer.html index 3b6c1681f4..6f5d17228f 100644 --- a/base/docs/Data.Buffer.html +++ b/base/docs/Data.Buffer.html @@ -61,4 +61,4 @@ -

Data.Buffer(source)

Definitions

dataBuffer : Type
Totality: total
Visibility: export
rawSize : HasIOio=>Buffer->ioInt
Totality: total
Visibility: export
newBuffer : HasIOio=>Int->io (MaybeBuffer)
Totality: total
Visibility: export
=DEPRECATED=
setByte : HasIOio=>Buffer->Int->Int->io ()
  Use `setBits8` instead, as its value is correctly limited.

Totality: total
Visibility: export
setBits8 : HasIOio=>Buffer->Int->Bits8->io ()
Totality: total
Visibility: export
=DEPRECATED=
getByte : HasIOio=>Buffer->Int->ioInt
  Use `getBits8` instead, as its value is correctly limited.

Totality: total
Visibility: export
getBits8 : HasIOio=>Buffer->Int->ioBits8
Totality: total
Visibility: export
setBits16 : HasIOio=>Buffer->Int->Bits16->io ()
Totality: total
Visibility: export
getBits16 : HasIOio=>Buffer->Int->ioBits16
Totality: total
Visibility: export
setBits32 : HasIOio=>Buffer->Int->Bits32->io ()
Totality: total
Visibility: export
getBits32 : HasIOio=>Buffer->Int->ioBits32
Totality: total
Visibility: export
setBits64 : HasIOio=>Buffer->Int->Bits64->io ()
Totality: total
Visibility: export
getBits64 : HasIOio=>Buffer->Int->ioBits64
Totality: total
Visibility: export
setInt8 : HasIOio=>Buffer->Int->Int8->io ()
Totality: total
Visibility: export
getInt8 : HasIOio=>Buffer->Int->ioInt8
Totality: total
Visibility: export
setInt16 : HasIOio=>Buffer->Int->Int16->io ()
Totality: total
Visibility: export
getInt16 : HasIOio=>Buffer->Int->ioInt16
Totality: total
Visibility: export
setInt32 : HasIOio=>Buffer->Int->Int32->io ()
Totality: total
Visibility: export
getInt32 : HasIOio=>Buffer->Int->ioInt32
Totality: total
Visibility: export
setInt64 : HasIOio=>Buffer->Int->Int64->io ()
Totality: total
Visibility: export
getInt64 : HasIOio=>Buffer->Int->ioInt64
Totality: total
Visibility: export
setInt : HasIOio=>Buffer->Int->Int->io ()
Totality: total
Visibility: export
getInt : HasIOio=>Buffer->Int->ioInt
Totality: total
Visibility: export
setDouble : HasIOio=>Buffer->Int->Double->io ()
Totality: total
Visibility: export
getDouble : HasIOio=>Buffer->Int->ioDouble
Totality: total
Visibility: export
setBool : HasIOio=>Buffer->Int->Bool->io ()
Totality: total
Visibility: export
getBool : HasIOio=>Buffer->Int->ioBool
Totality: total
Visibility: export
setNat : HasIOio=>Buffer->Int->Nat->ioInt
  setNat returns the end offset

Totality: total
Visibility: export
getNat : HasIOio=>Buffer->Int->io (Int, Nat)
  getNat returns the end offset

Totality: total
Visibility: export
setInteger : HasIOio=>Buffer->Int->Integer->ioInt
  setInteger returns the end offset

Totality: total
Visibility: export
getInteger : HasIOio=>Buffer->Int->io (Int, Integer)
  getInteger returns the end offset

Totality: total
Visibility: export
stringByteLength : String->Int
setString : HasIOio=>Buffer->Int->String->io ()
Totality: total
Visibility: export
getString : HasIOio=>Buffer->Int->Int->ioString
Totality: total
Visibility: export
=DEPRECATED=
bufferData : HasIOio=>Buffer->io (ListInt)
  Use `bufferData'` instead, as its value is correctly limited.

Visibility: export
bufferData' : HasIOio=>Buffer->io (ListBits8)
  This function performs the same task as `bufferData` but it
returns `List Bits8` which is more correct than `List Int`.

Visibility: export
copyData : HasIOio=>Buffer->Int->Int->Buffer->Int->io ()
Totality: total
Visibility: export
resizeBuffer : HasIOio=>Buffer->Int->io (MaybeBuffer)
Totality: total
Visibility: export
concatBuffers : HasIOio=>ListBuffer->io (MaybeBuffer)
  Create a buffer containing the concatenated content from a
list of buffers.

Totality: total
Visibility: export
splitBuffer : HasIOio=>Buffer->Int->io (Maybe (Buffer, Buffer))
  Split a buffer into two at a position.

Totality: total
Visibility: export
\ No newline at end of file +

Data.Buffer(source)

Definitions

dataBuffer : Type
Totality: total
Visibility: export
rawSize : HasIOio=>Buffer->ioInt
Totality: total
Visibility: export
newBuffer : HasIOio=>Int->io (MaybeBuffer)
Totality: total
Visibility: export
=DEPRECATED=
setByte : HasIOio=>Buffer->Int->Int->io ()
  Use `setBits8` instead, as its value is correctly limited.

Totality: total
Visibility: export
setBits8 : HasIOio=>Buffer->Int->Bits8->io ()
Totality: total
Visibility: export
=DEPRECATED=
getByte : HasIOio=>Buffer->Int->ioInt
  Use `getBits8` instead, as its value is correctly limited.

Totality: total
Visibility: export
getBits8 : HasIOio=>Buffer->Int->ioBits8
Totality: total
Visibility: export
setBits16 : HasIOio=>Buffer->Int->Bits16->io ()
Totality: total
Visibility: export
getBits16 : HasIOio=>Buffer->Int->ioBits16
Totality: total
Visibility: export
setBits32 : HasIOio=>Buffer->Int->Bits32->io ()
Totality: total
Visibility: export
getBits32 : HasIOio=>Buffer->Int->ioBits32
Totality: total
Visibility: export
setBits64 : HasIOio=>Buffer->Int->Bits64->io ()
Totality: total
Visibility: export
getBits64 : HasIOio=>Buffer->Int->ioBits64
Totality: total
Visibility: export
setInt8 : HasIOio=>Buffer->Int->Int8->io ()
Totality: total
Visibility: export
getInt8 : HasIOio=>Buffer->Int->ioInt8
Totality: total
Visibility: export
setInt16 : HasIOio=>Buffer->Int->Int16->io ()
Totality: total
Visibility: export
getInt16 : HasIOio=>Buffer->Int->ioInt16
Totality: total
Visibility: export
setInt32 : HasIOio=>Buffer->Int->Int32->io ()
Totality: total
Visibility: export
getInt32 : HasIOio=>Buffer->Int->ioInt32
Totality: total
Visibility: export
setInt64 : HasIOio=>Buffer->Int->Int64->io ()
Totality: total
Visibility: export
getInt64 : HasIOio=>Buffer->Int->ioInt64
Totality: total
Visibility: export
setInt : HasIOio=>Buffer->Int->Int->io ()
Totality: total
Visibility: export
getInt : HasIOio=>Buffer->Int->ioInt
Totality: total
Visibility: export
setDouble : HasIOio=>Buffer->Int->Double->io ()
Totality: total
Visibility: export
getDouble : HasIOio=>Buffer->Int->ioDouble
Totality: total
Visibility: export
setBool : HasIOio=>Buffer->Int->Bool->io ()
Totality: total
Visibility: export
getBool : HasIOio=>Buffer->Int->ioBool
Totality: total
Visibility: export
setNat : HasIOio=>Buffer->Int->Nat->ioInt
  setNat returns the end offset

Totality: total
Visibility: export
getNat : HasIOio=>Buffer->Int->io (Int, Nat)
  getNat returns the end offset

Totality: total
Visibility: export
setInteger : HasIOio=>Buffer->Int->Integer->ioInt
  setInteger returns the end offset

Totality: total
Visibility: export
getInteger : HasIOio=>Buffer->Int->io (Int, Integer)
  getInteger returns the end offset

Totality: total
Visibility: export
stringByteLength : String->Int
setString : HasIOio=>Buffer->Int->String->io ()
Totality: total
Visibility: export
getString : HasIOio=>Buffer->Int->Int->ioString
Totality: total
Visibility: export
=DEPRECATED=
bufferData : HasIOio=>Buffer->io (ListInt)
  Use `bufferData'` instead, as its value is correctly limited.

Visibility: export
bufferData' : HasIOio=>Buffer->io (ListBits8)
  This function performs the same task as `bufferData` but it
returns `List Bits8` which is more correct than `List Int`.

Visibility: export
copyData : HasIOio=>Buffer->Int->Int->Buffer->Int->io ()
Totality: total
Visibility: export
resizeBuffer : HasIOio=>Buffer->Int->io (MaybeBuffer)
Totality: total
Visibility: export
concatBuffers : HasIOio=>ListBuffer->io (MaybeBuffer)
  Create a buffer containing the concatenated content from a
list of buffers.

Totality: total
Visibility: export
splitBuffer : HasIOio=>Buffer->Int->io (Maybe (Buffer, Buffer))
  Split a buffer into two at a position.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Colist.html b/base/docs/Data.Colist.html index a50b087cc9..80679a94ea 100644 --- a/base/docs/Data.Colist.html +++ b/base/docs/Data.Colist.html @@ -61,4 +61,4 @@ -

Data.Colist(source)

Reexports

importpublic Data.Zippable

Definitions

dataColist : Type->Type
  A possibly finite Stream.

Totality: total
Visibility: public export
Constructors:
Nil : Colista
(::) : a-> Inf (Colista) ->Colista

Hints:
ApplicativeColist
FunctorColist
Monoid (Colista)
Semigroup (Colista)
Uninhabited (InBoundskxs) =>Uninhabited (InBounds (Sk) (x:: Delay xs))
ZippableColist
fromList : Lista->Colista
  Convert a list to a `Colist`.

Totality: total
Visibility: public export
fromStream : Streama->Colista
  Convert a stream to a `Colist`.

Totality: total
Visibility: public export
singleton : a->Colista
  Create a `Colist` of only a single element.

Totality: total
Visibility: public export
repeat : a->Colista
  An infinite `Colist` of repetitions of the same element.

Totality: total
Visibility: public export
replicate : Nat->a->Colista
  Create a `Colist` of `n` replications of the given element.

Totality: total
Visibility: public export
cycle : Lista->Colista
  Produce a `Colist` by repeating a sequence.

Totality: total
Visibility: public export
iterate : (a->a) ->a->Colista
  Generate an infinite `Colist` by repeatedly applying a function.

Totality: total
Visibility: public export
iterateMaybe : (a->Maybea) ->Maybea->Colista
  Generate a `Colist` by repeatedly applying a function.
This stops once the function returns `Nothing`.

Totality: total
Visibility: public export
unfold : (s->Maybe (s, a)) ->s->Colista
  Generate an `Colist` by repeatedly applying a function
to a seed value.
This stops once the function returns `Nothing`.

Totality: total
Visibility: public export
isNil : Colista->Bool
  True, if this is the empty `Colist`.

Totality: total
Visibility: public export
isCons : Colista->Bool
  True, if the given `Colist` is non-empty.

Totality: total
Visibility: public export
append : Colista->Colista->Colista
  Concatenate two `Colist`s.

Totality: total
Visibility: public export
lappend : Lista->Colista->Colista
  Append a `Colist` to a `List`.

Totality: total
Visibility: public export
appendl : Colista->Lista->Colista
  Append a `List` to a `Colist`.

Totality: total
Visibility: public export
uncons : Colista->Maybe (a, Colista)
  Try to extract the head and tail of a `Colist`.

Totality: total
Visibility: public export
head : Colista->Maybea
  Try to extract the first element from a `Colist`.

Totality: total
Visibility: public export
tail : Colista->Maybe (Colista)
  Try to drop the first element from a `Colist`.
This returns `Nothing` if the given `Colist` is
empty.

Totality: total
Visibility: public export
take : Nat->Colista->Lista
  Take up to `n` elements from a `Colist`.

Totality: total
Visibility: public export
takeUntil : (a->Bool) ->Colista->Colista
  Take elements from a `Colist` up to and including the
first element, for which `p` returns `True`.

Totality: total
Visibility: public export
takeBefore : (a->Bool) ->Colista->Colista
  Take elements from a `Colist` up to (but not including) the
first element, for which `p` returns `True`.

Totality: total
Visibility: public export
takeWhile : (a->Bool) ->Colista->Colista
  Take elements from a `Colist` while the given predicate
returns `True`.

Totality: total
Visibility: public export
takeWhileJust : Colist (Maybea) ->Colista
  Extract all values wrapped in `Just` from the beginning
of a `Colist`. This stops, once the first `Nothing` is encountered.

Totality: total
Visibility: public export
drop : Nat->Colista->Colista
  Drop up to `n` elements from the beginning of the `Colist`.

Totality: total
Visibility: public export
index : Nat->Colista->Maybea
  Try to extract the `n`-th element from a `Colist`.

Totality: total
Visibility: public export
scanl : (a->b->a) ->a->Colistb->Colista
  Produce a `Colist` of left folds of prefixes of the given `Colist`.
@ f the combining function
@ acc the initial value
@ xs the `Colist` to process

Totality: total
Visibility: public export
dataInBounds : Nat->Colista->Type
  Satisfiable if `k` is a valid index into `xs`

@ k the potential index
@ xs the Colist into which k may be an index

Totality: total
Visibility: public export
Constructors:
InFirst : InBounds0 (x::xs)
  Z is a valid index into any cons cell
InLater : InBoundsk (Force xs) ->InBounds (Sk) (x::xs)
  Valid indices can be extended

Hints:
Uninhabited (InBoundsk [])
Uninhabited (InBoundskxs) =>Uninhabited (InBounds (Sk) (x:: Delay xs))
inBounds : (k : Nat) -> (xs : Colista) ->Dec (InBoundskxs)
  Decide whether `k` is a valid index into Colist `xs`

Totality: total
Visibility: public export
index' : (k : Nat) -> (xs : Colista) -> {auto0_ : InBoundskxs} ->a
  Find a particular element of a Colist using InBounds

@ ok a proof that the index is within bounds

Totality: total
Visibility: public export
ZippableColist : ZippableColist
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Colist(source)

Reexports

importpublic Data.Zippable

Definitions

dataColist : Type->Type
  A possibly finite Stream.

Totality: total
Visibility: public export
Constructors:
Nil : Colista
(::) : a-> Inf (Colista) ->Colista

Hints:
ApplicativeColist
FunctorColist
Monoid (Colista)
Semigroup (Colista)
Uninhabited (InBoundskxs) =>Uninhabited (InBounds (Sk) (x:: Delay xs))
ZippableColist
fromList : Lista->Colista
  Convert a list to a `Colist`.

Totality: total
Visibility: public export
fromStream : Streama->Colista
  Convert a stream to a `Colist`.

Totality: total
Visibility: public export
singleton : a->Colista
  Create a `Colist` of only a single element.

Totality: total
Visibility: public export
repeat : a->Colista
  An infinite `Colist` of repetitions of the same element.

Totality: total
Visibility: public export
replicate : Nat->a->Colista
  Create a `Colist` of `n` replications of the given element.

Totality: total
Visibility: public export
cycle : Lista->Colista
  Produce a `Colist` by repeating a sequence.

Totality: total
Visibility: public export
iterate : (a->a) ->a->Colista
  Generate an infinite `Colist` by repeatedly applying a function.

Totality: total
Visibility: public export
iterateMaybe : (a->Maybea) ->Maybea->Colista
  Generate a `Colist` by repeatedly applying a function.
This stops once the function returns `Nothing`.

Totality: total
Visibility: public export
unfold : (s->Maybe (s, a)) ->s->Colista
  Generate an `Colist` by repeatedly applying a function
to a seed value.
This stops once the function returns `Nothing`.

Totality: total
Visibility: public export
isNil : Colista->Bool
  True, if this is the empty `Colist`.

Totality: total
Visibility: public export
isCons : Colista->Bool
  True, if the given `Colist` is non-empty.

Totality: total
Visibility: public export
append : Colista->Colista->Colista
  Concatenate two `Colist`s.

Totality: total
Visibility: public export
lappend : Lista->Colista->Colista
  Append a `Colist` to a `List`.

Totality: total
Visibility: public export
appendl : Colista->Lista->Colista
  Append a `List` to a `Colist`.

Totality: total
Visibility: public export
uncons : Colista->Maybe (a, Colista)
  Try to extract the head and tail of a `Colist`.

Totality: total
Visibility: public export
head : Colista->Maybea
  Try to extract the first element from a `Colist`.

Totality: total
Visibility: public export
tail : Colista->Maybe (Colista)
  Try to drop the first element from a `Colist`.
This returns `Nothing` if the given `Colist` is
empty.

Totality: total
Visibility: public export
take : Nat->Colista->Lista
  Take up to `n` elements from a `Colist`.

Totality: total
Visibility: public export
takeUntil : (a->Bool) ->Colista->Colista
  Take elements from a `Colist` up to and including the
first element, for which `p` returns `True`.

Totality: total
Visibility: public export
takeBefore : (a->Bool) ->Colista->Colista
  Take elements from a `Colist` up to (but not including) the
first element, for which `p` returns `True`.

Totality: total
Visibility: public export
takeWhile : (a->Bool) ->Colista->Colista
  Take elements from a `Colist` while the given predicate
returns `True`.

Totality: total
Visibility: public export
takeWhileJust : Colist (Maybea) ->Colista
  Extract all values wrapped in `Just` from the beginning
of a `Colist`. This stops, once the first `Nothing` is encountered.

Totality: total
Visibility: public export
drop : Nat->Colista->Colista
  Drop up to `n` elements from the beginning of the `Colist`.

Totality: total
Visibility: public export
index : Nat->Colista->Maybea
  Try to extract the `n`-th element from a `Colist`.

Totality: total
Visibility: public export
scanl : (a->b->a) ->a->Colistb->Colista
  Produce a `Colist` of left folds of prefixes of the given `Colist`.
@ f the combining function
@ acc the initial value
@ xs the `Colist` to process

Totality: total
Visibility: public export
dataInBounds : Nat->Colista->Type
  Satisfiable if `k` is a valid index into `xs`

@ k the potential index
@ xs the Colist into which k may be an index

Totality: total
Visibility: public export
Constructors:
InFirst : InBounds0 (x::xs)
  Z is a valid index into any cons cell
InLater : InBoundsk (Force xs) ->InBounds (Sk) (x::xs)
  Valid indices can be extended

Hints:
Uninhabited (InBoundsk [])
Uninhabited (InBoundskxs) =>Uninhabited (InBounds (Sk) (x:: Delay xs))
inBounds : (k : Nat) -> (xs : Colista) ->Dec (InBoundskxs)
  Decide whether `k` is a valid index into Colist `xs`

Totality: total
Visibility: public export
index' : (k : Nat) -> (xs : Colista) -> {auto0_ : InBoundskxs} ->a
  Find a particular element of a Colist using InBounds

@ ok a proof that the index is within bounds

Totality: total
Visibility: public export
ZippableColist : ZippableColist
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Colist1.html b/base/docs/Data.Colist1.html index da11b6d0e8..02d5a62869 100644 --- a/base/docs/Data.Colist1.html +++ b/base/docs/Data.Colist1.html @@ -61,4 +61,4 @@ -

Data.Colist1(source)

Reexports

importpublic Data.Zippable

Definitions

dataColist1 : Type->Type
  A possibly finite, non-empty Stream.

Totality: total
Visibility: public export
Constructor: 
(:::) : a->Colista->Colist1a

Hints:
ApplicativeColist1
FunctorColist1
Semigroup (Colist1a)
ZippableColist1
fromList1 : List1a->Colist1a
  Convert a `List1` to a `Colist1`.

Totality: total
Visibility: public export
fromStream : Streama->Colist1a
  Convert a stream to a `Colist1`.

Totality: total
Visibility: public export
fromColist : Colista->Maybe (Colist1a)
  Try to convert a `Colist` to a `Colist1`. Returns `Nothing` if
the given `Colist` is empty.

Totality: total
Visibility: public export
fromList : Lista->Maybe (Colist1a)
  Try to convert a list to a `Colist1`. Returns `Nothing` if
the given list is empty.

Totality: total
Visibility: public export
singleton : a->Colist1a
  Create a `Colist1` of only a single element.

Totality: total
Visibility: public export
repeat : a->Colist1a
  An infinite `Colist1` of repetitions of the same element.

Totality: total
Visibility: public export
replicate : (n : Nat) -> {auto0_ : IsSuccn} ->a->Colist1a
  Create a `Colist1` of `n` replications of the given element.

Totality: total
Visibility: public export
cycle : List1a->Colist1a
  Produce a `Colist1` by repeating a sequence

Totality: total
Visibility: public export
iterate : (a->a) ->a->Colist1a
  Generate an infinite `Colist1` by repeatedly applying a function.

Totality: total
Visibility: public export
iterateMaybe : (a->Maybea) ->a->Colist1a
  Generate a `Colist1` by repeatedly applying a function.
This stops once the function returns `Nothing`.

Totality: total
Visibility: public export
unfold : (s->Maybe (s, a)) ->s->a->Colist1a
  Generate a `Colist1` by repeatedly applying a function
to a seed value.
This stops once the function returns `Nothing`.

Totality: total
Visibility: public export
forget : Colist1a->Colista
  Convert a `Colist1` to a `Colist`

Totality: total
Visibility: public export
forgetInf : Inf (Colist1a) -> Inf (Colista)
  Convert an `Inf (Colist1 a)` to an `Inf (Colist a)`

Totality: total
Visibility: public export
cons : a->Colist1a->Colist1a
  Prepends an element to a `Colist1`.

Totality: total
Visibility: public export
append : Colist1a->Colist1a->Colist1a
  Concatenate two `Colist1`s

Totality: total
Visibility: public export
lappend : Lista->Colist1a->Colist1a
  Append a `Colist1` to a `List`.

Totality: total
Visibility: public export
appendl : Colist1a->Lista->Colist1a
  Append a `List` to a `Colist1`.

Totality: total
Visibility: public export
uncons : Colist1a-> (a, Colista)
  Take a `Colist1` apart

Totality: total
Visibility: public export
head : Colist1a->a
  Extract the first element from a `Colist1`

Totality: total
Visibility: public export
tail : Colist1a->Colista
  Drop the first element from a `Colist1`

Totality: total
Visibility: public export
take : (n : Nat) -> {auto0_ : IsSuccn} ->Colist1a->List1a
  Take up to `n` elements from a `Colist1`

Totality: total
Visibility: public export
takeUntil : (a->Bool) ->Colist1a->Colist1a
  Take elements from a `Colist1` up to and including the
first element, for which `p` returns `True`.

Totality: total
Visibility: public export
takeBefore : (a->Bool) ->Colist1a->Colista
  Take elements from a `Colist1` up to (but not including) the
first element, for which `p` returns `True`.

Totality: total
Visibility: public export
takeWhile : (a->Bool) ->Colist1a->Colista
  Take elements from a `Colist1` while the given predicate `p`
returns `True`.

Totality: total
Visibility: public export
takeWhileJust : Colist1 (Maybea) ->Colista
  Extract all values wrapped in `Just` from the beginning
of a `Colist1`. This stops, once the first `Nothing` is encountered.

Totality: total
Visibility: public export
drop : Nat->Colist1a->Colista
  Drop up to `n` elements from the beginning of the `Colist1`.

Totality: total
Visibility: public export
index : Nat->Colist1a->Maybea
  Try to extract the `n`-th element from a `Colist1`.

Totality: total
Visibility: public export
scanl : (a->b->a) ->a->Colist1b->Colist1a
  Produce a `Colist1` of left folds of prefixes of the given `Colist1`.
@ f the combining function
@ acc the initial value
@ xs the `Colist1` to process

Totality: total
Visibility: export
ZippableColist1 : ZippableColist1
Totality: total
Visibility: public export
zig : List1 (Colist1a) ->Colist (Colist1a) ->Colista
Totality: total
Visibility: public export
zag : List1a->List (Colist1a) ->Colist (Colist1a) ->Colista
Totality: total
Visibility: public export
cantor : Colist1 (Colist1a) ->Colist1a
Totality: total
Visibility: public export
cantor : List (Colista) ->Colista
Totality: total
Visibility: public export
planeWith : {0p : a->Type} -> ((x : a) ->px->c) ->Colist1a-> ((x : a) ->Colist1 (px)) ->Colist1c
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
plane : {0p : a->Type} ->Colist1a-> ((x : a) ->Colist1 (px)) ->Colist1 (x : a**px)
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
planeWith : (a->b->c) ->Colist1a-> (a->Colist1b) ->Colist1c
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
plane : Colist1a-> (a->Colist1b) ->Colist1 (a, b)
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Colist1(source)

Reexports

importpublic Data.Zippable

Definitions

dataColist1 : Type->Type
  A possibly finite, non-empty Stream.

Totality: total
Visibility: public export
Constructor: 
(:::) : a->Colista->Colist1a

Hints:
ApplicativeColist1
FunctorColist1
Semigroup (Colist1a)
ZippableColist1
fromList1 : List1a->Colist1a
  Convert a `List1` to a `Colist1`.

Totality: total
Visibility: public export
fromStream : Streama->Colist1a
  Convert a stream to a `Colist1`.

Totality: total
Visibility: public export
fromColist : Colista->Maybe (Colist1a)
  Try to convert a `Colist` to a `Colist1`. Returns `Nothing` if
the given `Colist` is empty.

Totality: total
Visibility: public export
fromList : Lista->Maybe (Colist1a)
  Try to convert a list to a `Colist1`. Returns `Nothing` if
the given list is empty.

Totality: total
Visibility: public export
singleton : a->Colist1a
  Create a `Colist1` of only a single element.

Totality: total
Visibility: public export
repeat : a->Colist1a
  An infinite `Colist1` of repetitions of the same element.

Totality: total
Visibility: public export
replicate : (n : Nat) -> {auto0_ : IsSuccn} ->a->Colist1a
  Create a `Colist1` of `n` replications of the given element.

Totality: total
Visibility: public export
cycle : List1a->Colist1a
  Produce a `Colist1` by repeating a sequence

Totality: total
Visibility: public export
iterate : (a->a) ->a->Colist1a
  Generate an infinite `Colist1` by repeatedly applying a function.

Totality: total
Visibility: public export
iterateMaybe : (a->Maybea) ->a->Colist1a
  Generate a `Colist1` by repeatedly applying a function.
This stops once the function returns `Nothing`.

Totality: total
Visibility: public export
unfold : (s->Maybe (s, a)) ->s->a->Colist1a
  Generate a `Colist1` by repeatedly applying a function
to a seed value.
This stops once the function returns `Nothing`.

Totality: total
Visibility: public export
forget : Colist1a->Colista
  Convert a `Colist1` to a `Colist`

Totality: total
Visibility: public export
forgetInf : Inf (Colist1a) -> Inf (Colista)
  Convert an `Inf (Colist1 a)` to an `Inf (Colist a)`

Totality: total
Visibility: public export
cons : a->Colist1a->Colist1a
  Prepends an element to a `Colist1`.

Totality: total
Visibility: public export
append : Colist1a->Colist1a->Colist1a
  Concatenate two `Colist1`s

Totality: total
Visibility: public export
lappend : Lista->Colist1a->Colist1a
  Append a `Colist1` to a `List`.

Totality: total
Visibility: public export
appendl : Colist1a->Lista->Colist1a
  Append a `List` to a `Colist1`.

Totality: total
Visibility: public export
uncons : Colist1a-> (a, Colista)
  Take a `Colist1` apart

Totality: total
Visibility: public export
head : Colist1a->a
  Extract the first element from a `Colist1`

Totality: total
Visibility: public export
tail : Colist1a->Colista
  Drop the first element from a `Colist1`

Totality: total
Visibility: public export
take : (n : Nat) -> {auto0_ : IsSuccn} ->Colist1a->List1a
  Take up to `n` elements from a `Colist1`

Totality: total
Visibility: public export
takeUntil : (a->Bool) ->Colist1a->Colist1a
  Take elements from a `Colist1` up to and including the
first element, for which `p` returns `True`.

Totality: total
Visibility: public export
takeBefore : (a->Bool) ->Colist1a->Colista
  Take elements from a `Colist1` up to (but not including) the
first element, for which `p` returns `True`.

Totality: total
Visibility: public export
takeWhile : (a->Bool) ->Colist1a->Colista
  Take elements from a `Colist1` while the given predicate `p`
returns `True`.

Totality: total
Visibility: public export
takeWhileJust : Colist1 (Maybea) ->Colista
  Extract all values wrapped in `Just` from the beginning
of a `Colist1`. This stops, once the first `Nothing` is encountered.

Totality: total
Visibility: public export
drop : Nat->Colist1a->Colista
  Drop up to `n` elements from the beginning of the `Colist1`.

Totality: total
Visibility: public export
index : Nat->Colist1a->Maybea
  Try to extract the `n`-th element from a `Colist1`.

Totality: total
Visibility: public export
scanl : (a->b->a) ->a->Colist1b->Colist1a
  Produce a `Colist1` of left folds of prefixes of the given `Colist1`.
@ f the combining function
@ acc the initial value
@ xs the `Colist1` to process

Totality: total
Visibility: export
ZippableColist1 : ZippableColist1
Totality: total
Visibility: public export
zig : List1 (Colist1a) ->Colist (Colist1a) ->Colista
Totality: total
Visibility: public export
zag : List1a->List (Colist1a) ->Colist (Colist1a) ->Colista
Totality: total
Visibility: public export
cantor : Colist1 (Colist1a) ->Colist1a
Totality: total
Visibility: public export
cantor : List (Colista) ->Colista
Totality: total
Visibility: public export
planeWith : {0p : a->Type} -> ((x : a) ->px->c) ->Colist1a-> ((x : a) ->Colist1 (px)) ->Colist1c
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
plane : {0p : a->Type} ->Colist1a-> ((x : a) ->Colist1 (px)) ->Colist1 (x : a**px)
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
planeWith : (a->b->c) ->Colist1a-> (a->Colist1b) ->Colist1c
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
plane : Colist1a-> (a->Colist1b) ->Colist1 (a, b)
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Contravariant.html b/base/docs/Data.Contravariant.html index 9f0526cf28..30ac81bbbe 100644 --- a/base/docs/Data.Contravariant.html +++ b/base/docs/Data.Contravariant.html @@ -61,4 +61,4 @@ -

Data.Contravariant(source)

Definitions

interfaceContravariant : (Type->Type) ->Type
  Contravariant functors

Parameters: f
Methods:
contramap : (a->b) ->fb->fa
(>$) : b->fb->fa
Fixity Declaration: infixl operator, level 4

Implementation: 
Contravariant (Consta)
contramap : Contravariantf=> (a->b) ->fb->fa
Totality: total
Visibility: public export
(>$) : Contravariantf=>b->fb->fa
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 4
phantom : Contravariantf=>Functorf=>fa->fb
  If `f` is both `Functor` and `Contravariant` then by the time you factor in the
laws of each of those classes, it can't actually use its argument in any
meaningful capacity.

Totality: total
Visibility: public export
(>$<) : Contravariantf=> (a->b) ->fb->fa
  This is an infix alias for `contramap`.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 4
(>&<) : Contravariantf=>fb-> (a->b) ->fa
  This is an infix version of `contramap` with the arguments flipped.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 4
($<) : Contravariantf=>fb->b->fa
  This is `>$` with its arguments flipped.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 4
\ No newline at end of file +

Data.Contravariant(source)

Definitions

interfaceContravariant : (Type->Type) ->Type
  Contravariant functors

Parameters: f
Methods:
contramap : (a->b) ->fb->fa
(>$) : b->fb->fa
Fixity Declaration: infixl operator, level 4

Implementation: 
Contravariant (Consta)
contramap : Contravariantf=> (a->b) ->fb->fa
Totality: total
Visibility: public export
(>$) : Contravariantf=>b->fb->fa
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 4
phantom : Contravariantf=>Functorf=>fa->fb
  If `f` is both `Functor` and `Contravariant` then by the time you factor in the
laws of each of those classes, it can't actually use its argument in any
meaningful capacity.

Totality: total
Visibility: public export
(>$<) : Contravariantf=> (a->b) ->fb->fa
  This is an infix alias for `contramap`.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 4
(>&<) : Contravariantf=>fb-> (a->b) ->fa
  This is an infix version of `contramap` with the arguments flipped.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 4
($<) : Contravariantf=>fb->b->fa
  This is `>$` with its arguments flipped.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 4
\ No newline at end of file diff --git a/base/docs/Data.DPair.html b/base/docs/Data.DPair.html index f060ce78f3..fedb104af5 100644 --- a/base/docs/Data.DPair.html +++ b/base/docs/Data.DPair.html @@ -61,4 +61,4 @@ -

Data.DPair(source)

Definitions

choice : {0p : a->b->Type} -> ((x : a) -> (b : b**pxb)) -> (f : a->b** (x : a) ->px (fx))
  Constructive choice: a function producing pairs of a value and a proof
can be split into a function producing a value and a family of proofs
for the images of that function.

Totality: total
Visibility: public export
choice : {0b : a->Type} -> {0p : (x : a) ->bx->Type} -> ((x : a) -> (y : bx**pxy)) -> (f : (x : a) ->bx** (x : a) ->px (fx))
  Constructive choice: a function producing pairs of a value and a proof
can be split into a function producing a value and a family of proofs
for the images of that function.

Totality: total
Visibility: public export
curry : {0p : a->Type} -> ((x : a**px) ->c) -> (x : a) ->px->c
  A function taking a pair of a value and a proof as an argument can be turned
into a function taking a value and a proof as two separate arguments.
Use `uncurry` to go in the other direction

Totality: total
Visibility: public export
uncurry : {0p : a->Type} -> ((x : a) ->px->c) -> (x : a**px) ->c
  A function taking a value and a proof as two separates arguments can be turned
into a function taking a pair of that value and its proof as a single argument.
Use `curry` to go in the other direction.

Totality: total
Visibility: public export
bimap : {0p : a->Type} -> {0q : b->Type} -> (f : (a->b)) -> (px->q (fx)) -> (x : a**px) -> (y : b**qy)
  Given a function on values and a family of proofs that this function takes
p-respecting inputs to q-respecting outputs,
we can turn: a pair of a value and a proof it is p-respecting
into: a pair of a value and a proof it is q-respecting

Totality: total
Visibility: public export
recordExists : (type->Type) ->Type
  A dependent pair in which the first field (witness) should be
erased at runtime.

We can use `Exists` to construct dependent types in which the
type-level value is erased at runtime but used at compile time.
This type-level value could represent, for instance, a value
required for an intrinsic invariant required as part of the
dependent type's representation.

@type The type of the type-level value in the proof.
@this The dependent type that requires an instance of `type`.

Totality: total
Visibility: public export
Constructor: 
Evidence : (0fst : type) ->thisfst->Existsthis

Projections:
0.fst : Existsthis->type
.snd : ({rec:0} : Existsthis) ->this (fst{rec:0})
0.fst : Existsthis->type
Totality: total
Visibility: public export
0fst : Existsthis->type
Totality: total
Visibility: public export
.snd : ({rec:0} : Existsthis) ->this (fst{rec:0})
Totality: total
Visibility: public export
snd : ({rec:0} : Existsthis) ->this (fst{rec:0})
Totality: total
Visibility: public export
curry : (Existsp->c) ->px->c
Totality: total
Visibility: public export
uncurry : (px->c) ->Existsp->c
Totality: total
Visibility: public export
evidenceInjectiveFst : Evidencexp=Evidenceyq->x=y
Totality: total
Visibility: export
evidenceInjectiveSnd : Evidencexp=Evidencexq->p=q
Totality: total
Visibility: export
bimap : (0f : (a->b)) -> (px->q (fx)) ->Existsp->Existsq
Totality: total
Visibility: public export
recordSubset : (type : Type) -> (type->Type) ->Type
  A dependent pair in which the second field (evidence) should not
be required at runtime.

We can use `Subset` to provide extrinsic invariants about a
value and know that these invariants are erased at
runtime but used at compile time.

@type The type-level value's type.
@pred The dependent type that requires an instance of `type`.

Totality: total
Visibility: public export
Constructor: 
Element : (fst : type) -> (0_ : predfst) ->Subsettypepred

Projections:
.fst : Subsettypepred->type
0.snd : ({rec:0} : Subsettypepred) ->pred (fst{rec:0})

Hints:
Eqtype=>Eq (Subsettypepred)
Ordtype=>Ord (Subsettypepred)
Showtype=>Show (Subsettypepred)
.fst : Subsettypepred->type
Totality: total
Visibility: public export
fst : Subsettypepred->type
Totality: total
Visibility: public export
0.snd : ({rec:0} : Subsettypepred) ->pred (fst{rec:0})
Totality: total
Visibility: public export
0snd : ({rec:0} : Subsettypepred) ->pred (fst{rec:0})
Totality: total
Visibility: public export
curry : (Subsetap->c) -> (x : a) -> (0_ : px) ->c
Totality: total
Visibility: public export
uncurry : ((x : a) -> (0_ : px) ->c) ->Subsetap->c
Totality: total
Visibility: public export
elementInjectiveFst : Elementxp=Elementyq->x=y
Totality: total
Visibility: export
elementInjectiveSnd : Elementxp=Elementxq->p=q
Totality: total
Visibility: export
bimap : (f : (a->b)) -> (0_ : (px->q (fx))) ->Subsetap->Subsetbq
Totality: total
Visibility: public export
\ No newline at end of file +

Data.DPair(source)

Definitions

choice : {0p : a->b->Type} -> ((x : a) -> (b : b**pxb)) -> (f : a->b** (x : a) ->px (fx))
  Constructive choice: a function producing pairs of a value and a proof
can be split into a function producing a value and a family of proofs
for the images of that function.

Totality: total
Visibility: public export
choice : {0b : a->Type} -> {0p : (x : a) ->bx->Type} -> ((x : a) -> (y : bx**pxy)) -> (f : (x : a) ->bx** (x : a) ->px (fx))
  Constructive choice: a function producing pairs of a value and a proof
can be split into a function producing a value and a family of proofs
for the images of that function.

Totality: total
Visibility: public export
curry : {0p : a->Type} -> ((x : a**px) ->c) -> (x : a) ->px->c
  A function taking a pair of a value and a proof as an argument can be turned
into a function taking a value and a proof as two separate arguments.
Use `uncurry` to go in the other direction

Totality: total
Visibility: public export
uncurry : {0p : a->Type} -> ((x : a) ->px->c) -> (x : a**px) ->c
  A function taking a value and a proof as two separates arguments can be turned
into a function taking a pair of that value and its proof as a single argument.
Use `curry` to go in the other direction.

Totality: total
Visibility: public export
bimap : {0p : a->Type} -> {0q : b->Type} -> (f : (a->b)) -> (px->q (fx)) -> (x : a**px) -> (y : b**qy)
  Given a function on values and a family of proofs that this function takes
p-respecting inputs to q-respecting outputs,
we can turn: a pair of a value and a proof it is p-respecting
into: a pair of a value and a proof it is q-respecting

Totality: total
Visibility: public export
recordExists : (type->Type) ->Type
  A dependent pair in which the first field (witness) should be
erased at runtime.

We can use `Exists` to construct dependent types in which the
type-level value is erased at runtime but used at compile time.
This type-level value could represent, for instance, a value
required for an intrinsic invariant required as part of the
dependent type's representation.

@type The type of the type-level value in the proof.
@this The dependent type that requires an instance of `type`.

Totality: total
Visibility: public export
Constructor: 
Evidence : (0fst : type) ->thisfst->Existsthis

Projections:
0.fst : Existsthis->type
.snd : ({rec:0} : Existsthis) ->this (fst{rec:0})
0.fst : Existsthis->type
Totality: total
Visibility: public export
0fst : Existsthis->type
Totality: total
Visibility: public export
.snd : ({rec:0} : Existsthis) ->this (fst{rec:0})
Totality: total
Visibility: public export
snd : ({rec:0} : Existsthis) ->this (fst{rec:0})
Totality: total
Visibility: public export
curry : (Existsp->c) ->px->c
Totality: total
Visibility: public export
uncurry : (px->c) ->Existsp->c
Totality: total
Visibility: public export
evidenceInjectiveFst : Evidencexp=Evidenceyq->x=y
Totality: total
Visibility: export
evidenceInjectiveSnd : Evidencexp=Evidencexq->p=q
Totality: total
Visibility: export
bimap : (0f : (a->b)) -> (px->q (fx)) ->Existsp->Existsq
Totality: total
Visibility: public export
recordSubset : (type : Type) -> (type->Type) ->Type
  A dependent pair in which the second field (evidence) should not
be required at runtime.

We can use `Subset` to provide extrinsic invariants about a
value and know that these invariants are erased at
runtime but used at compile time.

@type The type-level value's type.
@pred The dependent type that requires an instance of `type`.

Totality: total
Visibility: public export
Constructor: 
Element : (fst : type) -> (0_ : predfst) ->Subsettypepred

Projections:
.fst : Subsettypepred->type
0.snd : ({rec:0} : Subsettypepred) ->pred (fst{rec:0})

Hints:
Eqtype=>Eq (Subsettypepred)
Ordtype=>Ord (Subsettypepred)
Showtype=>Show (Subsettypepred)
.fst : Subsettypepred->type
Totality: total
Visibility: public export
fst : Subsettypepred->type
Totality: total
Visibility: public export
0.snd : ({rec:0} : Subsettypepred) ->pred (fst{rec:0})
Totality: total
Visibility: public export
0snd : ({rec:0} : Subsettypepred) ->pred (fst{rec:0})
Totality: total
Visibility: public export
curry : (Subsetap->c) -> (x : a) -> (0_ : px) ->c
Totality: total
Visibility: public export
uncurry : ((x : a) -> (0_ : px) ->c) ->Subsetap->c
Totality: total
Visibility: public export
elementInjectiveFst : Elementxp=Elementyq->x=y
Totality: total
Visibility: export
elementInjectiveSnd : Elementxp=Elementxq->p=q
Totality: total
Visibility: export
bimap : (f : (a->b)) -> (0_ : (px->q (fx))) ->Subsetap->Subsetbq
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Double.html b/base/docs/Data.Double.html index dea08662b3..0b77a00fc1 100644 --- a/base/docs/Data.Double.html +++ b/base/docs/Data.Double.html @@ -62,4 +62,4 @@

Data.Double(source)

Various IEEE floating-point number constants
-

Definitions

unitRoundoff : Double
  Largest number that can be added to a floating-point number without changing
its value, i.e. `1.0 + unitRoundoff == 1.0`.
epsilon : Double
  Machine epsilon is the smallest floating-point number that distinguishes two
floating-point numbers; the step size on the floating-point number line.
nan : Double
  Not a number, e.g. `0.0 / 0.0`. Never equal to anything, including itself.
inf : Double
  Positive Infinity. Can be negated to obtain Negative Infinity.
\ No newline at end of file +

Definitions

unitRoundoff : Double
  Largest number that can be added to a floating-point number without changing
its value, i.e. `1.0 + unitRoundoff == 1.0`.
epsilon : Double
  Machine epsilon is the smallest floating-point number that distinguishes two
floating-point numbers; the step size on the floating-point number line.
nan : Double
  Not a number, e.g. `0.0 / 0.0`. Never equal to anything, including itself.
inf : Double
  Positive Infinity. Can be negated to obtain Negative Infinity.
\ No newline at end of file diff --git a/base/docs/Data.Either.html b/base/docs/Data.Either.html index d012fd5fe3..af477fd66e 100644 --- a/base/docs/Data.Either.html +++ b/base/docs/Data.Either.html @@ -61,4 +61,4 @@ -

Data.Either(source)

Reexports

importpublic Control.Function

Definitions

getLeft : Eitherab->Maybea
  Extract the Left value, if possible

Totality: total
Visibility: public export
getRight : Eitherab->Maybeb
  Extract the Right value, if possible

Totality: total
Visibility: public export
isLeft : Eitherab->Bool
  True if the argument is Left, False otherwise

Totality: total
Visibility: public export
isRight : Eitherab->Bool
  True if the argument is Right, False otherwise

Totality: total
Visibility: public export
dataIsRight : Eitherab->Type
  Proof that an `Either` is actually a Right value

Totality: total
Visibility: public export
Constructor: 
ItIsRight : IsRight (Rightx)

Hint: 
Uninhabited (IsRight (Leftx))
dataIsLeft : Eitherab->Type
  Proof that an `Either` is actually a Left value

Totality: total
Visibility: public export
Constructor: 
ItIsLeft : IsLeft (Leftx)

Hint: 
Uninhabited (IsLeft (Rightx))
compress : List (Eitherab) ->List (Either (List1a) (List1b))
  Compress the list of Lefts and Rights by accumulating
all of the lefts and rights into non-empty blocks.

Totality: total
Visibility: export
decompress : List (Either (List1a) (List1b)) ->List (Eitherab)
  Decompress a compressed list. This is the left inverse of `compress` but not its
right inverse because nothing forces the input to be maximally compressed!

Totality: total
Visibility: export
lefts : List (Eitherab) ->Lista
  Keep the payloads of all Left constructors in a list of Eithers

Totality: total
Visibility: public export
rights : List (Eitherab) ->Listb
  Keep the payloads of all Right constructors in a list of Eithers

Totality: total
Visibility: public export
partitionEithers : List (Eitherab) -> (Lista, Listb)
  Split a list of Eithers into a list of the left elements and a list of the right elements

Totality: total
Visibility: public export
fromEither : Eitheraa->a
  Remove a "useless" Either by collapsing the case distinction

Totality: total
Visibility: public export
mirror : Eitherab->Eitherba
  Right becomes left and left becomes right

Totality: total
Visibility: public export
pushInto : c->Eitherab->Either (c, a) (c, b)
Totality: total
Visibility: export
maybeToEither : Lazy e->Maybea->Eitherea
  Convert a Maybe to an Either by using a default value in case of Nothing
@ e the default value

Totality: total
Visibility: public export
eitherToMaybe : Eitherea->Maybea
  Convert an Either to a Maybe from Right injection

Totality: total
Visibility: public export
eitherMapFusion : (f : (a->{a:4822})) -> (g : ({b:4820}->{a:4822})) -> (p : (b->{b:4820})) -> (e : Eitherab) ->either (Delay f) (Delay g) (mappe) =either (Delay f) (Delay (g.p)) e
Totality: total
Visibility: export
eitherBimapFusion : (f : ({a:4920}->{a:4926})) -> (g : ({b:4921}->{a:4926})) -> (p : ({a:4918}->{a:4920})) -> (q : ({b:4919}->{b:4921})) -> (e : Either{a:4918}{b:4919}) ->either (Delay f) (Delay g) (bimappqe) =either (Delay (f.p)) (Delay (g.q)) e
Totality: total
Visibility: export
\ No newline at end of file +

Data.Either(source)

Reexports

importpublic Control.Function

Definitions

getLeft : Eitherab->Maybea
  Extract the Left value, if possible

Totality: total
Visibility: public export
getRight : Eitherab->Maybeb
  Extract the Right value, if possible

Totality: total
Visibility: public export
isLeft : Eitherab->Bool
  True if the argument is Left, False otherwise

Totality: total
Visibility: public export
isRight : Eitherab->Bool
  True if the argument is Right, False otherwise

Totality: total
Visibility: public export
dataIsRight : Eitherab->Type
  Proof that an `Either` is actually a Right value

Totality: total
Visibility: public export
Constructor: 
ItIsRight : IsRight (Rightx)

Hint: 
Uninhabited (IsRight (Leftx))
dataIsLeft : Eitherab->Type
  Proof that an `Either` is actually a Left value

Totality: total
Visibility: public export
Constructor: 
ItIsLeft : IsLeft (Leftx)

Hint: 
Uninhabited (IsLeft (Rightx))
compress : List (Eitherab) ->List (Either (List1a) (List1b))
  Compress the list of Lefts and Rights by accumulating
all of the lefts and rights into non-empty blocks.

Totality: total
Visibility: export
decompress : List (Either (List1a) (List1b)) ->List (Eitherab)
  Decompress a compressed list. This is the left inverse of `compress` but not its
right inverse because nothing forces the input to be maximally compressed!

Totality: total
Visibility: export
lefts : List (Eitherab) ->Lista
  Keep the payloads of all Left constructors in a list of Eithers

Totality: total
Visibility: public export
rights : List (Eitherab) ->Listb
  Keep the payloads of all Right constructors in a list of Eithers

Totality: total
Visibility: public export
partitionEithers : List (Eitherab) -> (Lista, Listb)
  Split a list of Eithers into a list of the left elements and a list of the right elements

Totality: total
Visibility: public export
fromEither : Eitheraa->a
  Remove a "useless" Either by collapsing the case distinction

Totality: total
Visibility: public export
mirror : Eitherab->Eitherba
  Right becomes left and left becomes right

Totality: total
Visibility: public export
pushInto : c->Eitherab->Either (c, a) (c, b)
Totality: total
Visibility: export
maybeToEither : Lazy e->Maybea->Eitherea
  Convert a Maybe to an Either by using a default value in case of Nothing
@ e the default value

Totality: total
Visibility: public export
eitherToMaybe : Eitherea->Maybea
  Convert an Either to a Maybe from Right injection

Totality: total
Visibility: public export
eitherMapFusion : (f : (a->{a:4822})) -> (g : ({b:4820}->{a:4822})) -> (p : (b->{b:4820})) -> (e : Eitherab) ->either (Delay f) (Delay g) (mappe) =either (Delay f) (Delay (g.p)) e
Totality: total
Visibility: export
eitherBimapFusion : (f : ({a:4920}->{a:4926})) -> (g : ({b:4921}->{a:4926})) -> (p : ({a:4918}->{a:4920})) -> (q : ({b:4919}->{b:4921})) -> (e : Either{a:4918}{b:4919}) ->either (Delay f) (Delay g) (bimappqe) =either (Delay (f.p)) (Delay (g.q)) e
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Fin.Order.html b/base/docs/Data.Fin.Order.html index a3bd5abce0..236df66ec8 100644 --- a/base/docs/Data.Fin.Order.html +++ b/base/docs/Data.Fin.Order.html @@ -62,4 +62,4 @@

Data.Fin.Order(source)

Implementation  of ordering relations for `Fin`ite numbers
-

Definitions

dataFinLTE : Fink->Fink->Type
Totality: total
Visibility: public export
Constructor: 
FromNatPrf : LTE (finToNatm) (finToNatn) ->FinLTEmn

Hints:
Antisymmetric (Fink) FinLTE
Connex (Fink) FinLTE
Decidable2 [Fink, Fink] FinLTE
PartialOrder (Fink) FinLTE
Preorder (Fink) FinLTE
Reflexive (Fink) FinLTE
Transitive (Fink) FinLTE
\ No newline at end of file +

Definitions

dataFinLTE : Fink->Fink->Type
Totality: total
Visibility: public export
Constructor: 
FromNatPrf : LTE (finToNatm) (finToNatn) ->FinLTEmn

Hints:
Antisymmetric (Fink) FinLTE
Connex (Fink) FinLTE
Decidable2 [Fink, Fink] FinLTE
PartialOrder (Fink) FinLTE
Preorder (Fink) FinLTE
Reflexive (Fink) FinLTE
Transitive (Fink) FinLTE
\ No newline at end of file diff --git a/base/docs/Data.Fin.html b/base/docs/Data.Fin.html index 7369143087..149de3466c 100644 --- a/base/docs/Data.Fin.html +++ b/base/docs/Data.Fin.html @@ -61,4 +61,4 @@ -

Data.Fin(source)

Reexports

importpublic Control.Ord
importpublic Data.Maybe
importpublic Data.Nat
importpublic Data.So

Definitions

dataFin : Nat->Type
  Numbers strictly less than some bound.  The name comes from "finite sets".

It's probably not a good idea to use `Fin` for arithmetic, and they will be
exceedingly inefficient at run time.
@ n the upper bound

Totality: total
Visibility: public export
Constructors:
FZ : Fin (Sk)
FS : Fink->Fin (Sk)

Hints:
Cast (Finn) Nat
Cast (Finn) Integer
DecEq (Finn)
Eq (Finn)
InjectiveFS
InjectivefinToNat
Neg (Fin (Sn))
Num (Fin (Sn))
Ord (Finn)
Show (Finn)
Uninhabited (Fin0)
Uninhabited (FZ=FSk)
Uninhabited (FSk=FZ)
Uninhabited (n=m) =>Uninhabited (FSn=FSm)
Uninhabited (FSk~~~FZ)
Uninhabited (FZ~~~FSk)
coerce : (0_ : m=n) ->Finm->Finn
  Coerce between Fins with equal indices

Totality: total
Visibility: public export
finToNat : Finn->Nat
  Convert a Fin to a Nat

Totality: total
Visibility: public export
finToInteger : Finn->Integer
  Convert a Fin to an Integer

Totality: total
Visibility: public export
weaken : Finn->Fin (Sn)
  Weaken the bound on a Fin by 1

Totality: total
Visibility: public export
weakenN : (0n : Nat) ->Finm->Fin (m+n)
  Weaken the bound on a Fin by some amount

Totality: total
Visibility: public export
weakenLTE : Finn->LTEnm->Finm
  Weaken the bound on a Fin using a constructive comparison

Totality: total
Visibility: public export
strengthen : Fin (Sn) ->Maybe (Finn)
  Attempt to tighten the bound on a Fin.
Return the tightened bound if there is one, else nothing.

Totality: total
Visibility: export
shift : (m : Nat) ->Finn->Fin (m+n)
  Add some natural number to a Fin, extending the bound accordingly
@ n the previous bound
@ m the number to increase the Fin by

Totality: total
Visibility: public export
finS : Finn->Finn
  Increment a Fin, wrapping on overflow

Totality: total
Visibility: public export
last : Fin (Sn)
  The largest element of some Fin type

Totality: total
Visibility: public export
complement : Finn->Finn
  The finite complement of some Fin.
The number as far along as the input, but starting from the other end.

Totality: total
Visibility: public export
allFins : (n : Nat) ->List (Finn)
  All of the Fin elements

Totality: total
Visibility: public export
allFins : (n : Nat) ->List1 (Fin (Sn))
  All of the Fin elements

Totality: total
Visibility: public export
natToFinLT : (x : Nat) -> {auto0_ : LTxn} ->Finn
Totality: total
Visibility: public export
natToFinLt : (x : Nat) -> {auto0_ : So (x<n)} ->Finn
Totality: total
Visibility: public export
natToFin : Nat-> (n : Nat) ->Maybe (Finn)
Totality: total
Visibility: public export
integerToFin : Integer-> (n : Nat) ->Maybe (Finn)
  Convert an `Integer` to a `Fin`, provided the integer is within bounds.
@n The upper bound of the Fin

Totality: total
Visibility: public export
maybeLTE : (x : Nat) -> (y : Nat) ->Maybe (LTExy)
Totality: total
Visibility: public export
maybeLT : (x : Nat) -> (y : Nat) ->Maybe (LTxy)
Totality: total
Visibility: public export
finFromInteger : (x : Integer) -> {auto0_ : So (fromIntegerx<n)} ->Finn
Totality: total
Visibility: public export
integerLessThanNat : Integer->Nat->Bool
Totality: total
Visibility: public export
fromInteger : (x : Integer) -> {auto0_ : So (integerLessThanNatxn)} ->Finn
  Allow overloading of Integer literals for Fin.
@ x the Integer that the user typed
@ prf an automatically-constructed proof that `x` is in bounds

Totality: total
Visibility: public export
restrict : (n : Nat) ->Integer->Fin (Sn)
  Convert an Integer to a Fin in the required bounds/
This is essentially a composition of `mod` and `fromInteger`

Totality: total
Visibility: public export
dataPointwise : Finm->Finn->Type
  Pointwise equality of Fins
It is sometimes complicated to prove equalities on type-changing
operations on Fins.
This inductive definition can be used to simplify proof. We can
recover proofs of equalities by using `homoPointwiseIsEqual`.

Totality: total
Visibility: public export
Constructors:
FZ : PointwiseFZFZ
FS : Pointwisekl->Pointwise (FSk) (FSl)
(~~~) : Finm->Finn->Type
  Convenient infix notation for the notion of pointwise equality of Fins

Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
reflexive : k~~~k
  Pointwise equality is reflexive

Totality: total
Visibility: export
symmetric : k~~~l->l~~~k
  Pointwise equality is symmetric

Totality: total
Visibility: export
transitive : j~~~k->k~~~l->j~~~l
  Pointwise equality is transitive

Totality: total
Visibility: export
coerceEq : (0eq : m=n) ->coerceeqk~~~k
  Pointwise equality is compatible with coerce

Totality: total
Visibility: export
congCoerce : k~~~l->coerceeq1k~~~coerceeq2l
  The actual proof used by coerce is irrelevant

Totality: total
Visibility: export
congLast : (0_ : m=n) ->last~~~last
  Last is congruent wrt index equality

Totality: total
Visibility: export
congShift : (m : Nat) ->k~~~l->shiftmk~~~shiftml
Totality: total
Visibility: export
congWeakenN : k~~~l->weakenNnk~~~weakenNnl
  WeakenN is congruent wrt pointwise equality

Totality: total
Visibility: export
homoPointwiseIsEqual : k~~~l->k=l
  Pointwise equality is propositional equality on Fins that have the same type

Totality: total
Visibility: export
hetPointwiseIsTransport : (0eq : m=n) ->k~~~l->k=rewrite__impl{_:5275}{_:5274}l
  Pointwise equality is propositional equality modulo transport on Fins that
have provably equal types

Totality: total
Visibility: export
finToNatQuotient : k~~~l->finToNatk=finToNatl
Totality: total
Visibility: export
finToNatEqualityAsPointwise : (k : Finm) -> (l : Finn) ->finToNatk=finToNatl->k~~~l
  Propositional equality on `finToNat`s implies pointwise equality on the `Fin`s themselves

Totality: total
Visibility: export
weakenNeutral : (k : Finn) ->weakenk~~~k
Totality: total
Visibility: export
weakenNNeutral : (0m : Nat) -> (k : Finn) ->weakenNmk~~~k
Totality: total
Visibility: export
\ No newline at end of file +

Data.Fin(source)

Reexports

importpublic Control.Ord
importpublic Data.Maybe
importpublic Data.Nat
importpublic Data.So

Definitions

dataFin : Nat->Type
  Numbers strictly less than some bound.  The name comes from "finite sets".

It's probably not a good idea to use `Fin` for arithmetic, and they will be
exceedingly inefficient at run time.
@ n the upper bound

Totality: total
Visibility: public export
Constructors:
FZ : Fin (Sk)
FS : Fink->Fin (Sk)

Hints:
Cast (Finn) Nat
Cast (Finn) Integer
DecEq (Finn)
Eq (Finn)
InjectiveFS
InjectivefinToNat
Neg (Fin (Sn))
Num (Fin (Sn))
Ord (Finn)
Show (Finn)
Uninhabited (Fin0)
Uninhabited (FZ=FSk)
Uninhabited (FSk=FZ)
Uninhabited (n=m) =>Uninhabited (FSn=FSm)
Uninhabited (FSk~~~FZ)
Uninhabited (FZ~~~FSk)
coerce : (0_ : m=n) ->Finm->Finn
  Coerce between Fins with equal indices

Totality: total
Visibility: public export
finToNat : Finn->Nat
  Convert a Fin to a Nat

Totality: total
Visibility: public export
finToInteger : Finn->Integer
  Convert a Fin to an Integer

Totality: total
Visibility: public export
weaken : Finn->Fin (Sn)
  Weaken the bound on a Fin by 1

Totality: total
Visibility: public export
weakenN : (0n : Nat) ->Finm->Fin (m+n)
  Weaken the bound on a Fin by some amount

Totality: total
Visibility: public export
weakenLTE : Finn->LTEnm->Finm
  Weaken the bound on a Fin using a constructive comparison

Totality: total
Visibility: public export
strengthen : Fin (Sn) ->Maybe (Finn)
  Attempt to tighten the bound on a Fin.
Return the tightened bound if there is one, else nothing.

Totality: total
Visibility: export
shift : (m : Nat) ->Finn->Fin (m+n)
  Add some natural number to a Fin, extending the bound accordingly
@ n the previous bound
@ m the number to increase the Fin by

Totality: total
Visibility: public export
finS : Finn->Finn
  Increment a Fin, wrapping on overflow

Totality: total
Visibility: public export
last : Fin (Sn)
  The largest element of some Fin type

Totality: total
Visibility: public export
complement : Finn->Finn
  The finite complement of some Fin.
The number as far along as the input, but starting from the other end.

Totality: total
Visibility: public export
allFins : (n : Nat) ->List (Finn)
  All of the Fin elements

Totality: total
Visibility: public export
allFins : (n : Nat) ->List1 (Fin (Sn))
  All of the Fin elements

Totality: total
Visibility: public export
natToFinLT : (x : Nat) -> {auto0_ : LTxn} ->Finn
Totality: total
Visibility: public export
natToFinLt : (x : Nat) -> {auto0_ : So (x<n)} ->Finn
Totality: total
Visibility: public export
natToFin : Nat-> (n : Nat) ->Maybe (Finn)
Totality: total
Visibility: public export
integerToFin : Integer-> (n : Nat) ->Maybe (Finn)
  Convert an `Integer` to a `Fin`, provided the integer is within bounds.
@n The upper bound of the Fin

Totality: total
Visibility: public export
maybeLTE : (x : Nat) -> (y : Nat) ->Maybe (LTExy)
Totality: total
Visibility: public export
maybeLT : (x : Nat) -> (y : Nat) ->Maybe (LTxy)
Totality: total
Visibility: public export
finFromInteger : (x : Integer) -> {auto0_ : So (fromIntegerx<n)} ->Finn
Totality: total
Visibility: public export
integerLessThanNat : Integer->Nat->Bool
Totality: total
Visibility: public export
fromInteger : (x : Integer) -> {auto0_ : So (integerLessThanNatxn)} ->Finn
  Allow overloading of Integer literals for Fin.
@ x the Integer that the user typed
@ prf an automatically-constructed proof that `x` is in bounds

Totality: total
Visibility: public export
restrict : (n : Nat) ->Integer->Fin (Sn)
  Convert an Integer to a Fin in the required bounds/
This is essentially a composition of `mod` and `fromInteger`

Totality: total
Visibility: public export
dataPointwise : Finm->Finn->Type
  Pointwise equality of Fins
It is sometimes complicated to prove equalities on type-changing
operations on Fins.
This inductive definition can be used to simplify proof. We can
recover proofs of equalities by using `homoPointwiseIsEqual`.

Totality: total
Visibility: public export
Constructors:
FZ : PointwiseFZFZ
FS : Pointwisekl->Pointwise (FSk) (FSl)
(~~~) : Finm->Finn->Type
  Convenient infix notation for the notion of pointwise equality of Fins

Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
reflexive : k~~~k
  Pointwise equality is reflexive

Totality: total
Visibility: export
symmetric : k~~~l->l~~~k
  Pointwise equality is symmetric

Totality: total
Visibility: export
transitive : j~~~k->k~~~l->j~~~l
  Pointwise equality is transitive

Totality: total
Visibility: export
coerceEq : (0eq : m=n) ->coerceeqk~~~k
  Pointwise equality is compatible with coerce

Totality: total
Visibility: export
congCoerce : k~~~l->coerceeq1k~~~coerceeq2l
  The actual proof used by coerce is irrelevant

Totality: total
Visibility: export
congLast : (0_ : m=n) ->last~~~last
  Last is congruent wrt index equality

Totality: total
Visibility: export
congShift : (m : Nat) ->k~~~l->shiftmk~~~shiftml
Totality: total
Visibility: export
congWeakenN : k~~~l->weakenNnk~~~weakenNnl
  WeakenN is congruent wrt pointwise equality

Totality: total
Visibility: export
homoPointwiseIsEqual : k~~~l->k=l
  Pointwise equality is propositional equality on Fins that have the same type

Totality: total
Visibility: export
hetPointwiseIsTransport : (0eq : m=n) ->k~~~l->k=rewrite__impl{_:5275}{_:5274}l
  Pointwise equality is propositional equality modulo transport on Fins that
have provably equal types

Totality: total
Visibility: export
finToNatQuotient : k~~~l->finToNatk=finToNatl
Totality: total
Visibility: export
finToNatEqualityAsPointwise : (k : Finm) -> (l : Finn) ->finToNatk=finToNatl->k~~~l
  Propositional equality on `finToNat`s implies pointwise equality on the `Fin`s themselves

Totality: total
Visibility: export
weakenNeutral : (k : Finn) ->weakenk~~~k
Totality: total
Visibility: export
weakenNNeutral : (0m : Nat) -> (k : Finn) ->weakenNmk~~~k
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Fuel.html b/base/docs/Data.Fuel.html index aa49169cbe..6878fc9d1b 100644 --- a/base/docs/Data.Fuel.html +++ b/base/docs/Data.Fuel.html @@ -61,4 +61,4 @@ -

Data.Fuel(source)

Definitions

dataFuel : Type
  Fuel for running total operations potentially indefinitely.

Totality: total
Visibility: public export
Constructors:
Dry : Fuel
More : Lazy Fuel->Fuel
limit : Nat->Fuel
  Provide `n` units of fuel.

Totality: total
Visibility: public export
forever : Fuel
  Provide fuel indefinitely.
This function is fundamentally partial.

Visibility: export
\ No newline at end of file +

Data.Fuel(source)

Definitions

dataFuel : Type
  Fuel for running total operations potentially indefinitely.

Totality: total
Visibility: public export
Constructors:
Dry : Fuel
More : Lazy Fuel->Fuel
limit : Nat->Fuel
  Provide `n` units of fuel.

Totality: total
Visibility: public export
forever : Fuel
  Provide fuel indefinitely.
This function is fundamentally partial.

Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Fun.html b/base/docs/Data.Fun.html index a43c31b1cb..3c5207dc30 100644 --- a/base/docs/Data.Fun.html +++ b/base/docs/Data.Fun.html @@ -61,4 +61,4 @@ -

Data.Fun(source)

Reexports

importpublic Data.Vect

Definitions

Fun : VectnType->Type->Type
  Build an n-ary function type from a Vect of Types and a result type

Totality: total
Visibility: public export
chain : Fun [r] r'->Funtsr->Funtsr'
Totality: total
Visibility: public export
target : Funtsr->Type
  Returns the co-domain of a n-ary function.

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Fun(source)

Reexports

importpublic Data.Vect

Definitions

Fun : VectnType->Type->Type
  Build an n-ary function type from a Vect of Types and a result type

Totality: total
Visibility: public export
chain : Fun [r] r'->Funtsr->Funtsr'
Totality: total
Visibility: public export
target : Funtsr->Type
  Returns the co-domain of a n-ary function.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.IOArray.Prims.html b/base/docs/Data.IOArray.Prims.html index 11888d00ec..5d4e753e31 100644 --- a/base/docs/Data.IOArray.Prims.html +++ b/base/docs/Data.IOArray.Prims.html @@ -61,4 +61,4 @@ -

Data.IOArray.Prims(source)

Definitions

dataArrayData : Type->Type
Totality: total
Visibility: export
prim__newArray : Int->a->PrimIO (ArrayDataa)
prim__arrayGet : ArrayDataa->Int->PrimIOa
prim__arraySet : ArrayDataa->Int->a->PrimIO ()
\ No newline at end of file +

Data.IOArray.Prims(source)

Definitions

dataArrayData : Type->Type
Totality: total
Visibility: export
prim__newArray : Int->a->PrimIO (ArrayDataa)
prim__arrayGet : ArrayDataa->Int->PrimIOa
prim__arraySet : ArrayDataa->Int->a->PrimIO ()
\ No newline at end of file diff --git a/base/docs/Data.IOArray.html b/base/docs/Data.IOArray.html index 1c70a5a89d..a7098b73d7 100644 --- a/base/docs/Data.IOArray.html +++ b/base/docs/Data.IOArray.html @@ -61,4 +61,4 @@ -

Data.IOArray(source)

Definitions

recordIOArray : Type->Type
Totality: total
Visibility: export
Constructor: 
MkIOArray : Int->ArrayData (Maybeelem) ->IOArrayelem

Projections:
.content : IOArrayelem->ArrayData (Maybeelem)
.maxSize : IOArrayelem->Int
max : IOArrayelem->Int
Totality: total
Visibility: export
newArray : HasIOio=>Int->io (IOArrayelem)
Totality: total
Visibility: export
writeArray : HasIOio=>IOArrayelem->Int->elem->ioBool
Totality: total
Visibility: export
readArray : HasIOio=>IOArrayelem->Int->io (Maybeelem)
Totality: total
Visibility: export
newArrayCopy : HasIOio=>Int->IOArrayelem->io (IOArrayelem)
Totality: total
Visibility: export
toList : HasIOio=>IOArrayelem->io (List (Maybeelem))
Totality: total
Visibility: export
fromList : HasIOio=>List (Maybeelem) ->io (IOArrayelem)
Totality: total
Visibility: export
\ No newline at end of file +

Data.IOArray(source)

Definitions

recordIOArray : Type->Type
Totality: total
Visibility: export
Constructor: 
MkIOArray : Int->ArrayData (Maybeelem) ->IOArrayelem

Projections:
.content : IOArrayelem->ArrayData (Maybeelem)
.maxSize : IOArrayelem->Int
max : IOArrayelem->Int
Totality: total
Visibility: export
newArray : HasIOio=>Int->io (IOArrayelem)
Totality: total
Visibility: export
writeArray : HasIOio=>IOArrayelem->Int->elem->ioBool
Totality: total
Visibility: export
readArray : HasIOio=>IOArrayelem->Int->io (Maybeelem)
Totality: total
Visibility: export
newArrayCopy : HasIOio=>Int->IOArrayelem->io (IOArrayelem)
Totality: total
Visibility: export
toList : HasIOio=>IOArrayelem->io (List (Maybeelem))
Totality: total
Visibility: export
fromList : HasIOio=>List (Maybeelem) ->io (IOArrayelem)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.IORef.html b/base/docs/Data.IORef.html index fd5c3ddabe..009dc0b6b6 100644 --- a/base/docs/Data.IORef.html +++ b/base/docs/Data.IORef.html @@ -61,4 +61,4 @@ -

Data.IORef(source)

Definitions

dataIORef : Type->Type
Totality: total
Visibility: export
Constructor: 
MkRef : Muta->IORefa
newIORef : HasIOio=>a->io (IORefa)
Totality: total
Visibility: export
readIORef : HasIOio=>IORefa->ioa
Totality: total
Visibility: export
writeIORef : HasIOio=>IORefa->a->io ()
Totality: total
Visibility: export
writeIORef1 : HasLinearIOio=>IORefa-> (1_ : a) ->io ()
Totality: total
Visibility: export
modifyIORef : HasIOio=>IORefa-> (a->a) ->io ()
Totality: total
Visibility: export
\ No newline at end of file +

Data.IORef(source)

Definitions

dataIORef : Type->Type
Totality: total
Visibility: export
Constructor: 
MkRef : Muta->IORefa
newIORef : HasIOio=>a->io (IORefa)
Totality: total
Visibility: export
readIORef : HasIOio=>IORefa->ioa
Totality: total
Visibility: export
writeIORef : HasIOio=>IORefa->a->io ()
Totality: total
Visibility: export
writeIORef1 : HasLinearIOio=>IORefa-> (1_ : a) ->io ()
Totality: total
Visibility: export
modifyIORef : HasIOio=>IORefa-> (a->a) ->io ()
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Integral.html b/base/docs/Data.Integral.html index ae711d1d87..95b32f02b9 100644 --- a/base/docs/Data.Integral.html +++ b/base/docs/Data.Integral.html @@ -61,4 +61,4 @@ -

Data.Integral(source)

Definitions

even : Integraln=>Eqn=>n->Bool
Visibility: export
odd : Integraln=>Eqn=>n->Bool
Visibility: export
\ No newline at end of file +

Data.Integral(source)

Definitions

even : Integraln=>Eqn=>n->Bool
Visibility: export
odd : Integraln=>Eqn=>n->Bool
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.List.Elem.html b/base/docs/Data.List.Elem.html index e8df461664..22a5f3e77a 100644 --- a/base/docs/Data.List.Elem.html +++ b/base/docs/Data.List.Elem.html @@ -61,4 +61,4 @@ -

Data.List.Elem(source)

Definitions

dataElem : a->Lista->Type
  A proof that some element is found in a list.

Totality: total
Visibility: public export
Constructors:
Here : Elemx (x::xs)
  A proof that the element is at the head of the list
There : Elemxxs->Elemx (y::xs)
  A proof that the element is in the tail of the list

Hints:
DecEq (Elemxxs)
InjectiveThere
Uninhabited (Here=Theree)
Uninhabited (Theree=Here)
Uninhabited (Elemx [])
Uninhabited (x=z) =>Uninhabited (Elemzxs) =>Uninhabited (Elemz (x::xs))
neitherHereNorThere : Not (x=y) ->Not (Elemxxs) ->Not (Elemx (y::xs))
  An item not in the head and not in the tail is not in the list at all.

Totality: total
Visibility: export
isElem : DecEqa=> (x : a) -> (xs : Lista) ->Dec (Elemxxs)
  Check whether the given element is a member of the given list.

Totality: total
Visibility: public export
get : (xs : Lista) ->Elemxxs->a
  Get the element at the given position.

Totality: total
Visibility: public export
lookup : (xs : Lista) ->Elemxxs->Singletonx
  Get the element at the given position, with proof that it is the desired element.

Totality: total
Visibility: public export
dropElem : (xs : Lista) ->Elemxxs->Lista
  Remove the element at the given position.

Totality: total
Visibility: public export
elemToNat : Elemxxs->Nat
  Erase the indices, returning the numeric position of the element

Totality: total
Visibility: public export
indexElem : Nat-> (xs : Lista) ->Maybe (x : a**Elemxxs)
  Find the element with a proof at a given position, if it is valid

Totality: total
Visibility: public export
elemMap : (0f : (a->b)) ->Elemxxs->Elem (fx) (mapfxs)
  Lift the membership proof to a mapped list

Totality: total
Visibility: export
\ No newline at end of file +

Data.List.Elem(source)

Definitions

dataElem : a->Lista->Type
  A proof that some element is found in a list.

Totality: total
Visibility: public export
Constructors:
Here : Elemx (x::xs)
  A proof that the element is at the head of the list
There : Elemxxs->Elemx (y::xs)
  A proof that the element is in the tail of the list

Hints:
DecEq (Elemxxs)
InjectiveThere
Uninhabited (Here=Theree)
Uninhabited (Theree=Here)
Uninhabited (Elemx [])
Uninhabited (x=z) =>Uninhabited (Elemzxs) =>Uninhabited (Elemz (x::xs))
neitherHereNorThere : Not (x=y) ->Not (Elemxxs) ->Not (Elemx (y::xs))
  An item not in the head and not in the tail is not in the list at all.

Totality: total
Visibility: export
isElem : DecEqa=> (x : a) -> (xs : Lista) ->Dec (Elemxxs)
  Check whether the given element is a member of the given list.

Totality: total
Visibility: public export
get : (xs : Lista) ->Elemxxs->a
  Get the element at the given position.

Totality: total
Visibility: public export
lookup : (xs : Lista) ->Elemxxs->Singletonx
  Get the element at the given position, with proof that it is the desired element.

Totality: total
Visibility: public export
dropElem : (xs : Lista) ->Elemxxs->Lista
  Remove the element at the given position.

Totality: total
Visibility: public export
elemToNat : Elemxxs->Nat
  Erase the indices, returning the numeric position of the element

Totality: total
Visibility: public export
indexElem : Nat-> (xs : Lista) ->Maybe (x : a**Elemxxs)
  Find the element with a proof at a given position, if it is valid

Totality: total
Visibility: public export
elemMap : (0f : (a->b)) ->Elemxxs->Elem (fx) (mapfxs)
  Lift the membership proof to a mapped list

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.List.HasLength.html b/base/docs/Data.List.HasLength.html index 409dacb5c8..672495686d 100644 --- a/base/docs/Data.List.HasLength.html +++ b/base/docs/Data.List.HasLength.html @@ -81,4 +81,4 @@ See `sucR` for an example where the update to the runtime-relevant Nat is O(1) but the udpate to the list (were we to keep it around) an O(n) traversal. -

Definitions

dataHasLength : Nat->Lista->Type
  Ensure that the list's length is the provided natural number

Totality: total
Visibility: public export
Constructors:
Z : HasLength0 []
S : HasLengthnxs->HasLength (Sn) (x::xs)
hasLength : (xs : Lista) ->HasLength (lengthxs) xs
  This specification corresponds to the length function

Totality: total
Visibility: export
take : (n : Nat) -> (xs : Streama) ->HasLengthn (takenxs)
Totality: total
Visibility: export
hasLengthUnique : HasLengthmxs->HasLengthnxs->m=n
  The length is unique

Totality: total
Visibility: export
hasLengthAppend : HasLengthmxs->HasLengthnys->HasLength (m+n) (xs++ys)
Totality: total
Visibility: export
hasLengthReverse : HasLengthmacc->HasLengthm (reverseacc)
Totality: total
Visibility: export
map : (f : (a->b)) ->HasLengthnxs->HasLengthn (mapfxs)
Totality: total
Visibility: export
sucR : HasLengthnxs->HasLength (Sn) (snocxsx)
  @sucR demonstrates that snoc only increases the lenght by one
So performing this operation while carrying the list around would cost O(n)
but relying on n together with an erased HasLength proof instead is O(1)

Totality: total
Visibility: export
dataView : (xs : Lista) ->SubsetNat (flipHasLengthxs) ->Type
  We provide this view as a convenient way to perform nested pattern-matching
on values of type `Subset Nat (flip HasLength xs)`. Functions using this view will
be seen as terminating as long as the index list `xs` is left untouched.
See e.g. listTerminating below for such a function.

Totality: total
Visibility: public export
Constructors:
Z : View [] (Element0Z)
S : (p : SubsetNat (flipHasLengthxs)) ->View (x::xs) (Element (S (fstp)) (S (sndp)))
view : (p : SubsetNat (flipHasLengthxs)) ->Viewxsp
  Proof that the view covers all possible cases.

Totality: total
Visibility: export
dataView : (xs : Lista) -> (n : Nat) ->HasLengthnxs->Type
  We provide this view as a convenient way to perform nested pattern-matching
on pairs of values of type `n : Nat` and `HasLength xs n`. If transformations
to the list between recursive calls (e.g. mapping over the list) that prevent
it from being a valid termination metric, it is best to take the Nat argument
separately from the HasLength proof and the Subset view is not as useful anymore.
See e.g. natTerminating below for (a contrived example of) such a function.

Totality: total
Visibility: public export
Constructors:
Z : View [] 0Z
S : (n : Nat) -> (0p : HasLengthnxs) ->View (x::xs) (Sn) (Sp)
view : (n : Nat) -> (0p : HasLengthnxs) ->Viewxsnp
  Proof that the view covers all possible cases.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataHasLength : Nat->Lista->Type
  Ensure that the list's length is the provided natural number

Totality: total
Visibility: public export
Constructors:
Z : HasLength0 []
S : HasLengthnxs->HasLength (Sn) (x::xs)
hasLength : (xs : Lista) ->HasLength (lengthxs) xs
  This specification corresponds to the length function

Totality: total
Visibility: export
take : (n : Nat) -> (xs : Streama) ->HasLengthn (takenxs)
Totality: total
Visibility: export
hasLengthUnique : HasLengthmxs->HasLengthnxs->m=n
  The length is unique

Totality: total
Visibility: export
hasLengthAppend : HasLengthmxs->HasLengthnys->HasLength (m+n) (xs++ys)
Totality: total
Visibility: export
hasLengthReverse : HasLengthmacc->HasLengthm (reverseacc)
Totality: total
Visibility: export
map : (f : (a->b)) ->HasLengthnxs->HasLengthn (mapfxs)
Totality: total
Visibility: export
sucR : HasLengthnxs->HasLength (Sn) (snocxsx)
  @sucR demonstrates that snoc only increases the lenght by one
So performing this operation while carrying the list around would cost O(n)
but relying on n together with an erased HasLength proof instead is O(1)

Totality: total
Visibility: export
dataView : (xs : Lista) ->SubsetNat (flipHasLengthxs) ->Type
  We provide this view as a convenient way to perform nested pattern-matching
on values of type `Subset Nat (flip HasLength xs)`. Functions using this view will
be seen as terminating as long as the index list `xs` is left untouched.
See e.g. listTerminating below for such a function.

Totality: total
Visibility: public export
Constructors:
Z : View [] (Element0Z)
S : (p : SubsetNat (flipHasLengthxs)) ->View (x::xs) (Element (S (fstp)) (S (sndp)))
view : (p : SubsetNat (flipHasLengthxs)) ->Viewxsp
  Proof that the view covers all possible cases.

Totality: total
Visibility: export
dataView : (xs : Lista) -> (n : Nat) ->HasLengthnxs->Type
  We provide this view as a convenient way to perform nested pattern-matching
on pairs of values of type `n : Nat` and `HasLength xs n`. If transformations
to the list between recursive calls (e.g. mapping over the list) that prevent
it from being a valid termination metric, it is best to take the Nat argument
separately from the HasLength proof and the Subset view is not as useful anymore.
See e.g. natTerminating below for (a contrived example of) such a function.

Totality: total
Visibility: public export
Constructors:
Z : View [] 0Z
S : (n : Nat) -> (0p : HasLengthnxs) ->View (x::xs) (Sn) (Sp)
view : (n : Nat) -> (0p : HasLengthnxs) ->Viewxsnp
  Proof that the view covers all possible cases.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.List.Lazy.Quantifiers.html b/base/docs/Data.List.Lazy.Quantifiers.html index a5580c10d0..23a42dc7e4 100644 --- a/base/docs/Data.List.Lazy.Quantifiers.html +++ b/base/docs/Data.List.Lazy.Quantifiers.html @@ -62,4 +62,4 @@

Data.List.Lazy.Quantifiers(source)

WIP: same as Data.List.Quantifiers but for lazy lists
-

Definitions

dataAny : (a->Type) ->LazyLista->Type
Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (x::xs)
There : Anyp (Force xs) ->Anyp (x::xs)
toExists : Anypxs->Existsp
Totality: total
Visibility: public export
toDPair : Anypxs->DPairap
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataAny : (a->Type) ->LazyLista->Type
Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (x::xs)
There : Anyp (Force xs) ->Anyp (x::xs)
toExists : Anypxs->Existsp
Totality: total
Visibility: public export
toDPair : Anypxs->DPairap
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.List.Lazy.html b/base/docs/Data.List.Lazy.html index 3bbf369fa9..dc807f655b 100644 --- a/base/docs/Data.List.Lazy.html +++ b/base/docs/Data.List.Lazy.html @@ -61,4 +61,4 @@ -

Data.List.Lazy(source)

Definitions

dataLazyList : Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : LazyLista
(::) : a-> Lazy (LazyLista) ->LazyLista

Hints:
AlternativeLazyList
ApplicativeLazyList
Eqa=>Eq (LazyLista)
FoldableLazyList
FunctorLazyList
MonadLazyList
Monoid (LazyLista)
Orda=>Ord (LazyLista)
Semigroup (LazyLista)
Showa=>Show (LazyLista)
ZippableLazyList
foldrLazy : (a-> Lazy acc->acc) -> Lazy acc->LazyLista->acc
Totality: total
Visibility: public export
(++) : LazyLista-> Lazy (LazyLista) ->LazyLista
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
bindLazy : (a->LazyListb) ->LazyLista->LazyListb
Totality: total
Visibility: public export
choice : Alternativef=>LazyList (fa) ->fa
Totality: total
Visibility: public export
choiceMap : Alternativef=> (a->fb) ->LazyLista->fb
Totality: total
Visibility: public export
any : (a->Bool) ->LazyLista->Bool
Totality: total
Visibility: public export
all : (a->Bool) ->LazyLista->Bool
Totality: total
Visibility: public export
traverse : Monadf=> (a->fb) ->LazyLista->f (Listb)
Totality: total
Visibility: public export
for : Monadf=>LazyLista-> (a->fb) ->f (Listb)
Totality: total
Visibility: public export
sequence : Monadf=>LazyList (fa) ->f (Lista)
Totality: total
Visibility: public export
traverse_ : Monadm=> (a->mb) ->LazyLista->m ()
Totality: total
Visibility: public export
for_ : Monadm=>LazyLista-> (a->mb) ->m ()
Totality: total
Visibility: public export
sequence_ : Monadm=>LazyList (ma) ->m ()
Totality: total
Visibility: public export
fromList : Lista->LazyLista
Totality: total
Visibility: public export
iterate : (a->Maybea) ->a->LazyLista
Visibility: public export
unfoldr : (b->Maybe (a, b)) ->b->LazyLista
Visibility: public export
iterateN : Nat-> (a->a) ->a->LazyLista
Totality: total
Visibility: public export
replicate : Nat->a->LazyLista
Totality: total
Visibility: public export
head' : LazyLista->Maybea
Totality: total
Visibility: public export
tail' : LazyLista->Maybe (LazyLista)
Totality: total
Visibility: public export
take : Nat->LazyLista->LazyLista
Totality: total
Visibility: public export
drop : Nat->LazyLista->LazyLista
Totality: total
Visibility: public export
takeWhile : (a->Bool) ->LazyLista->LazyLista
Totality: total
Visibility: public export
dropWhile : (a->Bool) ->LazyLista->LazyLista
Totality: total
Visibility: public export
filter : (a->Bool) ->LazyLista->LazyLista
Totality: total
Visibility: public export
mapMaybe : (a->Maybeb) ->LazyLista->LazyListb
Totality: total
Visibility: public export
take : Fuel->Streama->LazyLista
Totality: total
Visibility: public export
take : Fuel->Colista->LazyLista
Totality: total
Visibility: public export
take : Fuel->Colist1a->LazyLista
Totality: total
Visibility: public export
mergeReplicate : a->LazyLista->LazyLista
Totality: total
Visibility: public export
intersperse : a->LazyLista->LazyLista
Totality: total
Visibility: public export
intercalate : LazyLista->LazyList (LazyLista) ->LazyLista
Totality: total
Visibility: public export
toColist : LazyLista->Colista
Totality: total
Visibility: public export
\ No newline at end of file +

Data.List.Lazy(source)

Definitions

dataLazyList : Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : LazyLista
(::) : a-> Lazy (LazyLista) ->LazyLista

Hints:
AlternativeLazyList
ApplicativeLazyList
Eqa=>Eq (LazyLista)
FoldableLazyList
FunctorLazyList
MonadLazyList
Monoid (LazyLista)
Orda=>Ord (LazyLista)
Semigroup (LazyLista)
Showa=>Show (LazyLista)
ZippableLazyList
foldrLazy : (a-> Lazy acc->acc) -> Lazy acc->LazyLista->acc
Totality: total
Visibility: public export
(++) : LazyLista-> Lazy (LazyLista) ->LazyLista
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
bindLazy : (a->LazyListb) ->LazyLista->LazyListb
Totality: total
Visibility: public export
choice : Alternativef=>LazyList (fa) ->fa
Totality: total
Visibility: public export
choiceMap : Alternativef=> (a->fb) ->LazyLista->fb
Totality: total
Visibility: public export
any : (a->Bool) ->LazyLista->Bool
Totality: total
Visibility: public export
all : (a->Bool) ->LazyLista->Bool
Totality: total
Visibility: public export
traverse : Monadf=> (a->fb) ->LazyLista->f (Listb)
Totality: total
Visibility: public export
for : Monadf=>LazyLista-> (a->fb) ->f (Listb)
Totality: total
Visibility: public export
sequence : Monadf=>LazyList (fa) ->f (Lista)
Totality: total
Visibility: public export
traverse_ : Monadm=> (a->mb) ->LazyLista->m ()
Totality: total
Visibility: public export
for_ : Monadm=>LazyLista-> (a->mb) ->m ()
Totality: total
Visibility: public export
sequence_ : Monadm=>LazyList (ma) ->m ()
Totality: total
Visibility: public export
fromList : Lista->LazyLista
Totality: total
Visibility: public export
iterate : (a->Maybea) ->a->LazyLista
Visibility: public export
unfoldr : (b->Maybe (a, b)) ->b->LazyLista
Visibility: public export
iterateN : Nat-> (a->a) ->a->LazyLista
Totality: total
Visibility: public export
replicate : Nat->a->LazyLista
Totality: total
Visibility: public export
head' : LazyLista->Maybea
Totality: total
Visibility: public export
tail' : LazyLista->Maybe (LazyLista)
Totality: total
Visibility: public export
take : Nat->LazyLista->LazyLista
Totality: total
Visibility: public export
drop : Nat->LazyLista->LazyLista
Totality: total
Visibility: public export
takeWhile : (a->Bool) ->LazyLista->LazyLista
Totality: total
Visibility: public export
dropWhile : (a->Bool) ->LazyLista->LazyLista
Totality: total
Visibility: public export
filter : (a->Bool) ->LazyLista->LazyLista
Totality: total
Visibility: public export
mapMaybe : (a->Maybeb) ->LazyLista->LazyListb
Totality: total
Visibility: public export
take : Fuel->Streama->LazyLista
Totality: total
Visibility: public export
take : Fuel->Colista->LazyLista
Totality: total
Visibility: public export
take : Fuel->Colist1a->LazyLista
Totality: total
Visibility: public export
mergeReplicate : a->LazyLista->LazyLista
Totality: total
Visibility: public export
intersperse : a->LazyLista->LazyLista
Totality: total
Visibility: public export
intercalate : LazyLista->LazyList (LazyLista) ->LazyLista
Totality: total
Visibility: public export
toColist : LazyLista->Colista
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.List.Quantifiers.html b/base/docs/Data.List.Quantifiers.html index 4b72e9ec76..1859325f85 100644 --- a/base/docs/Data.List.Quantifiers.html +++ b/base/docs/Data.List.Quantifiers.html @@ -61,4 +61,4 @@ -

Data.List.Quantifiers(source)

Definitions

dataAny : (0_ : (a->Type)) ->Lista->Type
  A proof that some element of a list satisfies some property

@ p the property to be satisfied

Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (x::xs)
  A proof that the satisfying element is the first one in the `List`
There : Anypxs->Anyp (x::xs)
  A proof that the satisfying element is in the tail of the `List`

Hints:
Uninhabited (Anyp [])
Uninhabited (px) =>Uninhabited (Anypxs) =>Uninhabited (Anyp (x::xs))
mapProperty : (px->qx) ->Anypl->Anyql
  Modify the property given a pointwise function

Totality: total
Visibility: export
any : ((x : a) ->Dec (px)) -> (xs : Lista) ->Dec (Anypxs)
  Given a decision procedure for a property, determine if an element of a
list satisfies it.

@ p the property to be satisfied
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
toExists : Anypxs->Existsp
  Forget the membership proof

Totality: total
Visibility: export
dataAll : (0_ : (a->Type)) ->Lista->Type
  A proof that all elements of a list satisfy a property. It is a list of
proofs, corresponding element-wise to the `List`.

Totality: total
Visibility: public export
Constructors:
Nil : Allp []
(::) : px->Allpxs->Allp (x::xs)

Hints:
All (Ord.p) xs=>All (Eq.p) xs
All (Monoid.p) xs=>All (Semigroup.p) xs
All (Eq.p) xs=>Eq (Allpxs)
All (Monoid.p) xs=>Monoid (Allpxs)
All (Ord.p) xs=>Ord (Allpxs)
All (Semigroup.p) xs=>Semigroup (Allpxs)
All (Show.p) xs=>Show (Allpxs)
Either (Uninhabited (px)) (Uninhabited (Allpxs)) =>Uninhabited (Allp (x::xs))
mapProperty : (px->qx) ->Allpl->Allql
  Modify the property given a pointwise function

Totality: total
Visibility: export
imapProperty : (0i : (a->Type)) -> (ix=>px->qx) ->Allias=>Allpas->Allqas
  Modify the property given a pointwise interface function

Totality: total
Visibility: public export
forget : All (consttype) types->Listtype
  Forget property source for a homogeneous collection of properties

Totality: total
Visibility: public export
all : ((x : a) ->Dec (px)) -> (xs : Lista) ->Dec (Allpxs)
  Given a decision procedure for a property, decide whether all elements of
a list satisfy it.

@ p the property
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
zipPropertyWith : (px->qx->rx) ->Allpxs->Allqxs->Allrxs
Totality: total
Visibility: export
HList : ListType->Type
  A heterogeneous list of arbitrary types

Totality: total
Visibility: public export
(++) : Allpxs->Allpys->Allp (xs++ys)
  Concatenate lists of proofs.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
splitAt : (xs : Lista) ->Allp (xs++ys) -> (Allpxs, Allpys)
Totality: total
Visibility: export
take : (xs : Lista) ->Allp (xs++ys) ->Allpxs
Totality: total
Visibility: export
drop : (xs : Lista) ->Allp (xs++ys) ->Allpys
Totality: total
Visibility: export
negAnyAll : Not (Anypxs) ->All (Not.p) xs
  If there does not exist an element that satifies the property, then it is
the case that all elements do not satisfy it.

Totality: total
Visibility: export
anyNegAll : Any (Not.p) xs->Not (Allpxs)
  If there exists an element that doesn't satify the property, then it is
not the case that all elements satisfy it.

Totality: total
Visibility: export
allNegAny : All (Not.p) xs->Not (Anypxs)
  If none of the elements satisfy the property, then not any single one can.

Totality: total
Visibility: export
indexAll : Elemxxs->Allpxs->px
  Given a proof of membership for some element, extract the property proof for it

Totality: total
Visibility: public export
pushIn : (xs : Lista) -> (0_ : Allpxs) ->List (Subsetap)
  Push in the property from the list level with element level

Totality: total
Visibility: public export
pullOut : List (Subsetap) ->Subset (Lista) (Allp)
  Pull the elementwise property out to the list level

Totality: total
Visibility: public export
pushInOutInverse : (xs : Lista) -> (0prf : Allpxs) ->pullOut (pushInxsprf) =Elementxsprf
Totality: total
Visibility: export
pushOutInInverse : (xs : List (Subsetap)) ->uncurrypushIn (pullOutxs) =xs
Totality: total
Visibility: export
dataInterleaving : Lista->Lista->Lista->Type
  Two lists, `xs` and `ys`, whose elements are interleaved in the list `xys`.

Totality: total
Visibility: public export
Constructors:
Nil : Interleaving [] [] []
Left : Interleavingxsysxys->Interleaving (x::xs) ys (x::xys)
Right : Interleavingxsysxys->Interleavingxs (y::ys) (y::xys)
recordSplit : (a->Type) ->Lista->Type
  A record for storing the result of splitting a list `xys` according to some
property `p`.
The `prfs` and `contras` are related to the original list (`xys`) via
`Interleaving`.

@ xys the list which has been split
@ p the property used for the split

Totality: total
Visibility: public export
Constructor: 
MkSplit : Interleavingayesnawsxys=>Allpayes->All (Not.p) naws->Splitpxys

Projections:
.ayes : Splitpxys->Lista
.contras : ({rec:0} : Splitpxys) ->All (Not.p) (naws{rec:0})
  A proof that all elements in `naws` do not satisfy the property used for
the split.
.interleaving : ({rec:0} : Splitpxys) ->Interleaving (ayes{rec:0}) (naws{rec:0}) xys
.naws : Splitpxys->Lista
.prfs : ({rec:0} : Splitpxys) ->Allp (ayes{rec:0})
  A proof that all elements in `ayes` satisfies the property used for the
split.
.naws : Splitpxys->Lista
Totality: total
Visibility: public export
.ayes : Splitpxys->Lista
Totality: total
Visibility: public export
naws : Splitpxys->Lista
Totality: total
Visibility: public export
ayes : Splitpxys->Lista
Totality: total
Visibility: public export
.interleaving : ({rec:0} : Splitpxys) ->Interleaving (ayes{rec:0}) (naws{rec:0}) xys
Totality: total
Visibility: public export
interleaving : ({rec:0} : Splitpxys) ->Interleaving (ayes{rec:0}) (naws{rec:0}) xys
Totality: total
Visibility: public export
.prfs : ({rec:0} : Splitpxys) ->Allp (ayes{rec:0})
  A proof that all elements in `ayes` satisfies the property used for the
split.

Totality: total
Visibility: public export
prfs : ({rec:0} : Splitpxys) ->Allp (ayes{rec:0})
  A proof that all elements in `ayes` satisfies the property used for the
split.

Totality: total
Visibility: public export
.contras : ({rec:0} : Splitpxys) ->All (Not.p) (naws{rec:0})
  A proof that all elements in `naws` do not satisfy the property used for
the split.

Totality: total
Visibility: public export
contras : ({rec:0} : Splitpxys) ->All (Not.p) (naws{rec:0})
  A proof that all elements in `naws` do not satisfy the property used for
the split.

Totality: total
Visibility: public export
splitOnto : ((x : a) ->Dec (px)) -> (xs : Lista) ->Splitpacc->Splitp (reverseOntoaccxs)
  Split the list according to the given decidable property, putting the
resulting proofs and contras in an accumulator.

@ dec a function which returns a decidable property
@ xs a list of elements to split
@ a the accumulator

Totality: total
Visibility: public export
split : ((x : a) ->Dec (px)) -> (xs : Lista) ->Splitp (reversexs)
  Split the list according to the given decidable property, starting with an
empty accumulator.
Use `splitOnto` if you want to specify the accumulator.

@ dec a function which returns a decidable property
@ xs a list of elements to split
@ a the accumulator

Totality: total
Visibility: public export
decide : ((x : a) ->Either (px) (qx)) -> (xs : Lista) ->Either (Allpxs) (Anyqxs)
  If any `a` either satisfies p or q then given a List of as,
either all values satisfy p
or at least one of them sastifies q

Totality: total
Visibility: public export
\ No newline at end of file +

Data.List.Quantifiers(source)

Definitions

dataAny : (0_ : (a->Type)) ->Lista->Type
  A proof that some element of a list satisfies some property

@ p the property to be satisfied

Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (x::xs)
  A proof that the satisfying element is the first one in the `List`
There : Anypxs->Anyp (x::xs)
  A proof that the satisfying element is in the tail of the `List`

Hints:
Uninhabited (Anyp [])
Uninhabited (px) =>Uninhabited (Anypxs) =>Uninhabited (Anyp (x::xs))
mapProperty : (px->qx) ->Anypl->Anyql
  Modify the property given a pointwise function

Totality: total
Visibility: export
any : ((x : a) ->Dec (px)) -> (xs : Lista) ->Dec (Anypxs)
  Given a decision procedure for a property, determine if an element of a
list satisfies it.

@ p the property to be satisfied
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
toExists : Anypxs->Existsp
  Forget the membership proof

Totality: total
Visibility: export
dataAll : (0_ : (a->Type)) ->Lista->Type
  A proof that all elements of a list satisfy a property. It is a list of
proofs, corresponding element-wise to the `List`.

Totality: total
Visibility: public export
Constructors:
Nil : Allp []
(::) : px->Allpxs->Allp (x::xs)

Hints:
All (Ord.p) xs=>All (Eq.p) xs
All (Monoid.p) xs=>All (Semigroup.p) xs
All (Eq.p) xs=>Eq (Allpxs)
All (Monoid.p) xs=>Monoid (Allpxs)
All (Ord.p) xs=>Ord (Allpxs)
All (Semigroup.p) xs=>Semigroup (Allpxs)
All (Show.p) xs=>Show (Allpxs)
Either (Uninhabited (px)) (Uninhabited (Allpxs)) =>Uninhabited (Allp (x::xs))
mapProperty : (px->qx) ->Allpl->Allql
  Modify the property given a pointwise function

Totality: total
Visibility: export
imapProperty : (0i : (a->Type)) -> (ix=>px->qx) ->Allias=>Allpas->Allqas
  Modify the property given a pointwise interface function

Totality: total
Visibility: public export
forget : All (consttype) types->Listtype
  Forget property source for a homogeneous collection of properties

Totality: total
Visibility: public export
all : ((x : a) ->Dec (px)) -> (xs : Lista) ->Dec (Allpxs)
  Given a decision procedure for a property, decide whether all elements of
a list satisfy it.

@ p the property
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
zipPropertyWith : (px->qx->rx) ->Allpxs->Allqxs->Allrxs
Totality: total
Visibility: export
HList : ListType->Type
  A heterogeneous list of arbitrary types

Totality: total
Visibility: public export
(++) : Allpxs->Allpys->Allp (xs++ys)
  Concatenate lists of proofs.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
splitAt : (xs : Lista) ->Allp (xs++ys) -> (Allpxs, Allpys)
Totality: total
Visibility: export
take : (xs : Lista) ->Allp (xs++ys) ->Allpxs
Totality: total
Visibility: export
drop : (xs : Lista) ->Allp (xs++ys) ->Allpys
Totality: total
Visibility: export
negAnyAll : Not (Anypxs) ->All (Not.p) xs
  If there does not exist an element that satifies the property, then it is
the case that all elements do not satisfy it.

Totality: total
Visibility: export
anyNegAll : Any (Not.p) xs->Not (Allpxs)
  If there exists an element that doesn't satify the property, then it is
not the case that all elements satisfy it.

Totality: total
Visibility: export
allNegAny : All (Not.p) xs->Not (Anypxs)
  If none of the elements satisfy the property, then not any single one can.

Totality: total
Visibility: export
indexAll : Elemxxs->Allpxs->px
  Given a proof of membership for some element, extract the property proof for it

Totality: total
Visibility: public export
pushIn : (xs : Lista) -> (0_ : Allpxs) ->List (Subsetap)
  Push in the property from the list level with element level

Totality: total
Visibility: public export
pullOut : List (Subsetap) ->Subset (Lista) (Allp)
  Pull the elementwise property out to the list level

Totality: total
Visibility: public export
pushInOutInverse : (xs : Lista) -> (0prf : Allpxs) ->pullOut (pushInxsprf) =Elementxsprf
Totality: total
Visibility: export
pushOutInInverse : (xs : List (Subsetap)) ->uncurrypushIn (pullOutxs) =xs
Totality: total
Visibility: export
dataInterleaving : Lista->Lista->Lista->Type
  Two lists, `xs` and `ys`, whose elements are interleaved in the list `xys`.

Totality: total
Visibility: public export
Constructors:
Nil : Interleaving [] [] []
Left : Interleavingxsysxys->Interleaving (x::xs) ys (x::xys)
Right : Interleavingxsysxys->Interleavingxs (y::ys) (y::xys)
recordSplit : (a->Type) ->Lista->Type
  A record for storing the result of splitting a list `xys` according to some
property `p`.
The `prfs` and `contras` are related to the original list (`xys`) via
`Interleaving`.

@ xys the list which has been split
@ p the property used for the split

Totality: total
Visibility: public export
Constructor: 
MkSplit : Interleavingayesnawsxys=>Allpayes->All (Not.p) naws->Splitpxys

Projections:
.ayes : Splitpxys->Lista
.contras : ({rec:0} : Splitpxys) ->All (Not.p) (naws{rec:0})
  A proof that all elements in `naws` do not satisfy the property used for
the split.
.interleaving : ({rec:0} : Splitpxys) ->Interleaving (ayes{rec:0}) (naws{rec:0}) xys
.naws : Splitpxys->Lista
.prfs : ({rec:0} : Splitpxys) ->Allp (ayes{rec:0})
  A proof that all elements in `ayes` satisfies the property used for the
split.
.naws : Splitpxys->Lista
Totality: total
Visibility: public export
.ayes : Splitpxys->Lista
Totality: total
Visibility: public export
naws : Splitpxys->Lista
Totality: total
Visibility: public export
ayes : Splitpxys->Lista
Totality: total
Visibility: public export
.interleaving : ({rec:0} : Splitpxys) ->Interleaving (ayes{rec:0}) (naws{rec:0}) xys
Totality: total
Visibility: public export
interleaving : ({rec:0} : Splitpxys) ->Interleaving (ayes{rec:0}) (naws{rec:0}) xys
Totality: total
Visibility: public export
.prfs : ({rec:0} : Splitpxys) ->Allp (ayes{rec:0})
  A proof that all elements in `ayes` satisfies the property used for the
split.

Totality: total
Visibility: public export
prfs : ({rec:0} : Splitpxys) ->Allp (ayes{rec:0})
  A proof that all elements in `ayes` satisfies the property used for the
split.

Totality: total
Visibility: public export
.contras : ({rec:0} : Splitpxys) ->All (Not.p) (naws{rec:0})
  A proof that all elements in `naws` do not satisfy the property used for
the split.

Totality: total
Visibility: public export
contras : ({rec:0} : Splitpxys) ->All (Not.p) (naws{rec:0})
  A proof that all elements in `naws` do not satisfy the property used for
the split.

Totality: total
Visibility: public export
splitOnto : ((x : a) ->Dec (px)) -> (xs : Lista) ->Splitpacc->Splitp (reverseOntoaccxs)
  Split the list according to the given decidable property, putting the
resulting proofs and contras in an accumulator.

@ dec a function which returns a decidable property
@ xs a list of elements to split
@ a the accumulator

Totality: total
Visibility: public export
split : ((x : a) ->Dec (px)) -> (xs : Lista) ->Splitp (reversexs)
  Split the list according to the given decidable property, starting with an
empty accumulator.
Use `splitOnto` if you want to specify the accumulator.

@ dec a function which returns a decidable property
@ xs a list of elements to split
@ a the accumulator

Totality: total
Visibility: public export
decide : ((x : a) ->Either (px) (qx)) -> (xs : Lista) ->Either (Allpxs) (Anyqxs)
  If any `a` either satisfies p or q then given a List of as,
either all values satisfy p
or at least one of them sastifies q

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.List.Views.html b/base/docs/Data.List.Views.html index c459ecb5f5..ac45fbe7b9 100644 --- a/base/docs/Data.List.Views.html +++ b/base/docs/Data.List.Views.html @@ -61,4 +61,4 @@ -

Data.List.Views(source)

Definitions

dataSplit : Lista->Type
  View for splitting a list in half, non-recursively

Totality: total
Visibility: public export
Constructors:
SplitNil : Split []
SplitOne : (x : a) ->Split [x]
SplitPair : (x : a) -> (xs : Lista) -> (y : a) -> (ys : Lista) ->Split (x:: (xs++ (y::ys)))
split : (xs : Lista) ->Splitxs
  Covering function for the `Split` view
Constructs the view in linear time

Totality: total
Visibility: export
dataSplitRec : Lista->Type
Totality: total
Visibility: public export
Constructors:
SplitRecNil : SplitRec []
SplitRecOne : (x : a) ->SplitRec [x]
SplitRecPair : (lefts : Lista) -> (rights : Lista) -> Lazy (SplitReclefts) -> Lazy (SplitRecrights) ->SplitRec (lefts++rights)
splitRec : (xs : Lista) ->SplitRecxs
  Covering function for the `SplitRec` view
Constructs the view in O(n lg n)

Totality: total
Visibility: public export
dataSnocList : Lista->Type
  View for traversing a list backwards

Totality: total
Visibility: public export
Constructors:
Empty : SnocList []
Snoc : (x : a) -> (xs : Lista) ->SnocListxs->SnocList (xs++ [x])
snocList : (xs : Lista) ->SnocListxs
  Covering function for the `SnocList` view
Constructs the view in linear time

Totality: total
Visibility: export
\ No newline at end of file +

Data.List.Views(source)

Definitions

dataSplit : Lista->Type
  View for splitting a list in half, non-recursively

Totality: total
Visibility: public export
Constructors:
SplitNil : Split []
SplitOne : (x : a) ->Split [x]
SplitPair : (x : a) -> (xs : Lista) -> (y : a) -> (ys : Lista) ->Split (x:: (xs++ (y::ys)))
split : (xs : Lista) ->Splitxs
  Covering function for the `Split` view
Constructs the view in linear time

Totality: total
Visibility: export
dataSplitRec : Lista->Type
Totality: total
Visibility: public export
Constructors:
SplitRecNil : SplitRec []
SplitRecOne : (x : a) ->SplitRec [x]
SplitRecPair : (lefts : Lista) -> (rights : Lista) -> Lazy (SplitReclefts) -> Lazy (SplitRecrights) ->SplitRec (lefts++rights)
splitRec : (xs : Lista) ->SplitRecxs
  Covering function for the `SplitRec` view
Constructs the view in O(n lg n)

Totality: total
Visibility: public export
dataSnocList : Lista->Type
  View for traversing a list backwards

Totality: total
Visibility: public export
Constructors:
Empty : SnocList []
Snoc : (x : a) -> (xs : Lista) ->SnocListxs->SnocList (xs++ [x])
snocList : (xs : Lista) ->SnocListxs
  Covering function for the `SnocList` view
Constructs the view in linear time

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.List.html b/base/docs/Data.List.html index e43b3b6eff..6f04f5d152 100644 --- a/base/docs/Data.List.html +++ b/base/docs/Data.List.html @@ -61,4 +61,4 @@ -

Data.List(source)

Reexports

importpublic Control.Function
importpublic Data.Zippable

Definitions

isNil : Lista->Bool
  Boolean check for whether the list is the empty list.

Totality: total
Visibility: public export
isCons : Lista->Bool
  Boolean check for whether the list contains a cons (::) / is non-empty.

Totality: total
Visibility: public export
snoc : Lista->a->Lista
  Add an element to the end of a list.
O(n). See the `Data.SnocList` module if you need to perform `snoc` often.

Totality: total
Visibility: public export
take : Nat->Lista->Lista
  Take `n` first elements from `xs`, returning the whole list if
`n` >= length `xs`.

@ n the number of elements to take
@ xs the list to take the elements from

Totality: total
Visibility: public export
drop : Nat->Lista->Lista
  Remove `n` first elements from `xs`, returning the empty list if
`n >= length xs`

@ n the number of elements to remove
@ xs the list to drop the elements from

Totality: total
Visibility: public export
dataInBounds : Nat->Lista->Type
  Satisfiable if `k` is a valid index into `xs`.

@ k the potential index
@ xs the list into which k may be an index

Totality: total
Visibility: public export
Constructors:
InFirst : InBounds0 (x::xs)
  Z is a valid index into any cons cell
InLater : InBoundskxs->InBounds (Sk) (x::xs)
  Valid indices can be extended

Hints:
Uninhabited (InBoundsk [])
Uninhabited (InBoundskxs) =>Uninhabited (InBounds (Sk) (x::xs))
inBounds : (k : Nat) -> (xs : Lista) ->Dec (InBoundskxs)
  Decide whether `k` is a valid index into `xs`.

Totality: total
Visibility: public export
index : (n : Nat) -> (xs : Lista) -> {auto0_ : InBoundsnxs} ->a
  Find a particular element of a list.

@ ok a proof that the index is within bounds

Totality: total
Visibility: public export
index' : (xs : Lista) ->Fin (lengthxs) ->a
Totality: total
Visibility: public export
iterate : (a->Maybea) ->a->Lista
  Generate a list by repeatedly applying a partial function until exhausted.
@ f the function to iterate
@ x the initial value that will be the head of the list

Visibility: public export
unfoldr : (b->Maybe (a, b)) ->b->Lista
  Given a function `f` which extracts an element of `b` and `b`'s
continuation, return the list consisting of the extracted elements.
CAUTION: Only terminates if `f` eventually returns `Nothing`.

@ f a function which provides an element of `b` and the rest of `b`
@ b a structure contanining any number of elements

Visibility: public export
iterateN : Nat-> (a->a) ->a->Lista
  Returns the list of elements obtained by applying `f` to `x` `0` to `n-1` times,
starting with `x`.

@ n the number of times to iterate `f` over `x`
@ f a function producing a series
@ x the initial element of the series

Totality: total
Visibility: public export
takeWhile : (a->Bool) ->Lista->Lista
  Get the longest prefix of the list that satisfies the predicate.

@ p a custom predicate for the elements of the list
@ xs the list of elements

Totality: total
Visibility: public export
dropWhile : (a->Bool) ->Lista->Lista
  Remove elements from the list until an element no longer satisfies the
predicate.

@ p a custom predicate for the elements of the list
@ xs the list of elements to remove from

Totality: total
Visibility: public export
find : (a->Bool) ->Lista->Maybea
  Find the first element of the list that satisfies the predicate.

Totality: total
Visibility: public export
findIndex : (a->Bool) -> (xs : Lista) ->Maybe (Fin (lengthxs))
  Find the index and proof of InBounds of the first element (if exists) of a
list that satisfies the given test, else `Nothing`.

Totality: total
Visibility: public export
findIndices : (a->Bool) ->Lista->ListNat
  Find indices of all elements that satisfy the given test.

Totality: total
Visibility: public export
lookupBy : (a->b->Bool) ->a->List (b, v) ->Maybev
  Find associated information in a list using a custom comparison.

Totality: total
Visibility: public export
lookup : Eqa=>a->List (a, b) ->Maybeb
  Find associated information in a list using Boolean equality.

Totality: total
Visibility: public export
nubBy : (a->a->Bool) ->Lista->Lista
  Remove duplicate elements from a list using a custom comparison. The general
case of `nub`.
O(n^2).

@ p a custom comparison for detecting duplicate elements
@ xs the list to remove the duplicates from

Totality: total
Visibility: public export
nub : Eqa=>Lista->Lista
  The nub function removes duplicate elements from a list using
boolean equality. In particular, it keeps only the first occurrence of each
element. It is a special case of `nubBy`, which allows the programmer to
supply their own equality test.
O(n^2).

```idris example
nub (the (List _) [1,2,1,3])
```

Totality: total
Visibility: public export
insertAt : (idx : Nat) ->a-> (xs : Lista) -> {auto0_ : LTEidx (lengthxs)} ->Lista
  Insert an element at a particular index.

```idris example
insertAt 1 [6, 8, 9] 7
```

@idx The index of the inserted value in the resulting list.
@x The value to insert.
@xs The list to insert the value into.

Totality: total
Visibility: public export
deleteAt : (idx : Nat) -> (xs : Lista) -> {auto0_ : InBoundsidxxs} ->Lista
  Construct a new list consisting of all but the indicated element.

```idris example
deleteAt 3 [5, 6, 7, 8, 9]
```

@ idx The index of the value to delete.
@ xs The list to delete the value from.

Totality: total
Visibility: public export
deleteBy : (a->b->Bool) ->a->Listb->Listb
  The deleteBy function behaves like delete, but takes a user-supplied equality predicate.

Totality: total
Visibility: public export
delete : Eqa=>a->Lista->Lista
  `delete x` removes the first occurrence of `x` from its list argument. For
example,

````idris example
delete 'a' ['b', 'a', 'n', 'a', 'n', 'a']
````

It is a special case of deleteBy, which allows the programmer to supply
their own equality test.

Totality: total
Visibility: public export
deleteFirstsBy : (a->b->Bool) ->Listb->Lista->Listb
  Delete the first occurrence of each element from the second list in the first
list where equality is determined by the predicate passed as the first argument.
@ p A function that returns true when its two arguments should be considered equal.
@ source The list to delete elements from.
@ undesirables The list of elements to delete.

Totality: total
Visibility: public export
(\\) : Eqa=>Lista->Lista->Lista
  The non-associative list-difference.
A specialized form of @deleteFirstsBy@ where the predicate is equality under the @Eq@
interface.
Deletes the first occurrence of each element of the second list from the first list.

In the following example, the result is `[2, 4]`.
```idris example
[1, 2, 3, 4] \\ [1, 3]
```

Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 7
unionBy : (a->a->Bool) ->Lista->Lista->Lista
  The unionBy function returns the union of two lists by user-supplied equality predicate.

Totality: total
Visibility: public export
union : Eqa=>Lista->Lista->Lista
  Compute the union of two lists according to their `Eq` implementation.

```idris example
union ['d', 'o', 'g'] ['c', 'o', 'w']
```

Totality: total
Visibility: public export
spanBy : (a->Maybeb) ->Lista-> (Listb, Lista)
  Like @span@ but using a predicate that might convert a to b, i.e. given a
predicate from a to Maybe b and a list of as, returns a tuple consisting of
the longest prefix of the list where a -> Just b, and the rest of the list.

Totality: total
Visibility: public export
span : (a->Bool) ->Lista-> (Lista, Lista)
  Given a predicate and a list, returns a tuple consisting of the longest
prefix of the list whose elements satisfy the predicate, and the rest of the
list.

Totality: total
Visibility: public export
break : (a->Bool) ->Lista-> (Lista, Lista)
  Similar to `span` but negates the predicate, i.e.: returns a tuple
consisting of the longest prefix of the list whose elements don't satisfy
the predicate, and the rest of the list.

Totality: total
Visibility: public export
singleton : a->Lista
Totality: total
Visibility: public export
split : (a->Bool) ->Lista->List1 (Lista)
Totality: total
Visibility: public export
splitAt : Nat->Lista-> (Lista, Lista)
  Split the list `xs` at the index `n`. If `n > length xs`, returns a tuple
consisting of `xs` and `[]`.

@ n the index to split the list at
@ xs the list to split

Totality: total
Visibility: public export
partition : (a->Bool) ->Lista-> (Lista, Lista)
  Divide the list into a tuple containing two smaller lists: one with the
elements that satisfies the given predicate and another with the elements
that don't.

@ p the predicate to partition according to
@ xs the list to partition

Totality: total
Visibility: public export
inits : Lista->List (Lista)
  The inits function returns all initial segments of the argument, shortest
first. For example,

```idris example
inits [1,2,3]
```

Totality: total
Visibility: public export
tails : Lista->List (Lista)
  The tails function returns all final segments of the argument, longest
first. For example,

```idris example
tails [1,2,3] == [[1,2,3], [2,3], [3], []]
```

Totality: total
Visibility: public export
splitOn : Eqa=>a->Lista->List1 (Lista)
  Split on the given element.

```idris example
splitOn 0 [1,0,2,0,0,3]
```

Totality: total
Visibility: public export
replaceAt : (idx : Nat) ->a-> (xs : Lista) -> {auto0_ : InBoundsidxxs} ->Lista
  Replace an element at a particlar index with another.

```idris example
replaceAt 2 6 [1, 2, 3, 4]
```

@idx The index of the value to replace.
@x The value to insert.
@xs The list in which to replace an element.

Totality: total
Visibility: public export
replaceWhen : (a->Bool) ->a->Lista->Lista
  Replace the elements in the list that satisfy the predicate with the given
value. The general case of `replaceOn`.

@ p the predicate to replace elements in the list according to
@ b the element to replace with
@ l the list to perform the replacements on

Totality: total
Visibility: public export
replaceOn : Eqa=>a->a->Lista->Lista
  Replace the elements in the list that are equal to `e`, using boolean
equality, with `b`. A special case of `replaceWhen`, using `== e` as the
predicate.

```idris example
> replaceOn '-' ',' ['1', '-', '2', '-', '3']
['1', ',', '2', ',', '3']
```

@ e the element to find and replace
@ b the element to replace with
@ l the list to perform the replacements on

Totality: total
Visibility: public export
replicate : Nat->a->Lista
  Construct a list with `n` copies of `x`.

@ n how many copies
@ x the element to replicate

Totality: total
Visibility: public export
intersectBy : (a->a->Bool) ->Lista->Lista->Lista
  Compute the intersect of two lists by user-supplied equality predicate.

Totality: total
Visibility: export
intersect : Eqa=>Lista->Lista->Lista
  Compute the intersection of two lists according to the `Eq` implementation for
the elements.

Totality: total
Visibility: export
intersectAllBy : (a->a->Bool) ->List (Lista) ->Lista
  Compute the intersect of all the lists in the given list of lists, according
to the user-supplied equality predicate.

@ eq the predicate for computing the intersection
@ ls the list of lists to compute the intersect of

Totality: total
Visibility: export
intersectAll : Eqa=>List (Lista) ->Lista
  Compute the intersect of all the lists in the given list of lists, according
to boolean equality. A special case of `intersectAllBy`, using `==` as the
equality predicate.

@ ls the list of lists to compute the intersect of

Totality: total
Visibility: export
dataNonEmpty : Lista->Type
  Proof that a given list is non-empty.

Totality: total
Visibility: public export
Constructor: 
IsNonEmpty : NonEmpty (x::xs)

Hint: 
Uninhabited (NonEmpty [])
head : (l : Lista) -> {auto0_ : NonEmptyl} ->a
  Get the head of a non-empty list.
@ ok proof the list is non-empty

Totality: total
Visibility: public export
tail : (l : Lista) -> {auto0_ : NonEmptyl} ->Lista
  Get the tail of a non-empty list.
@ ok proof the list is non-empty

Totality: total
Visibility: public export
last : (l : Lista) -> {auto0_ : NonEmptyl} ->a
  Retrieve the last element of a non-empty list.
@ ok proof that the list is non-empty

Totality: total
Visibility: public export
init : (l : Lista) -> {auto0_ : NonEmptyl} ->Lista
  Return all but the last element of a non-empty list.
@ ok proof the list is non-empty

Totality: total
Visibility: public export
minimum : Orda=> (xs : Lista) -> {auto0_ : NonEmptyxs} ->a
  Computes the minimum of a non-empty list

Totality: total
Visibility: public export
uncons' : Lista->Maybe (a, Lista)
  Attempt to deconstruct the list into a head and a tail.

Totality: total
Visibility: public export
head' : Lista->Maybea
  Attempt to get the head of a list. If the list is empty, return `Nothing`.

Totality: total
Visibility: public export
tail' : Lista->Maybe (Lista)
  Attempt to get the tail of a list. If the list is empty, return `Nothing`.

Totality: total
Visibility: export
last' : Lista->Maybea
  Attempt to retrieve the last element of a non-empty list.

If the list is empty, return `Nothing`.

Totality: total
Visibility: export
init' : Lista->Maybe (Lista)
  Attempt to return all but the last element of a non-empty list.

If the list is empty, return `Nothing`.

Totality: total
Visibility: export
foldr1By : (a->b->b) -> (a->b) -> (l : Lista) -> {auto0_ : NonEmptyl} ->b
  Foldr a non-empty list, using `map` to transform the first accumulated
element to something of the desired type and `func` to accumulate the
elements.

@ func the function used to accumulate the elements
@ map an initial transformation from the element to the accumulated type
@ l the non-empty list to foldr
@ ok proof that the list is non-empty

Totality: total
Visibility: public export
foldl1By : (b->a->b) -> (a->b) -> (l : Lista) -> {auto0_ : NonEmptyl} ->b
  Foldl a non-empty list, using `map` to transform the first accumulated
element to something of the desired type and `func` to accumulate the
elements.

@ func the function used to accumulate the elements
@ map an initial transformation from the element to the accumulated type
@ l the non-empty list to foldl
@ ok proof that the list is non-empty

Totality: total
Visibility: public export
foldr1 : (a->a->a) -> (l : Lista) -> {auto0_ : NonEmptyl} ->a
  Foldr a non-empty list without seeding the accumulator.

@ ok proof that the list is non-empty

Totality: total
Visibility: public export
foldl1 : (a->a->a) -> (l : Lista) -> {auto0_ : NonEmptyl} ->a
  Foldl a non-empty list without seeding the accumulator.

@ ok proof that the list is non-empty

Totality: total
Visibility: public export
toList1 : (l : Lista) -> {auto0_ : NonEmptyl} ->List1a
  Convert to a non-empty list.

@ ok proof the list is non-empty

Totality: total
Visibility: export
toList1' : Lista->Maybe (List1a)
  Convert to a non-empty list, returning Nothing if the list is empty.

Totality: total
Visibility: public export
interleave : Lista->Lista->Lista
  Interleave two lists.
```idris example
> interleave ["a", "c", "e"] ["b", "d", "f"]
["a", "b", "c", "d", "e", "f"]
```

Totality: total
Visibility: public export
mergeReplicate : a->Lista->Lista
  Prefix every element in the list with the given element.

@ sep the value to prefix
@ xs the list of elements to prefix with the given element

```idris example
> with List (mergeReplicate '>' ['a', 'b', 'c', 'd', 'e'])
['>', 'a', '>', 'b', '>', 'c', '>', 'd', '>', 'e']
```

Totality: total
Visibility: public export
intersperse : a->Lista->Lista
  Insert some separator between the elements of a list.

@ sep the value to intersperse
@ xs the list of elements to intersperse with the separator

```idris example
> with List (intersperse ',' ['a', 'b', 'c', 'd', 'e'])
['a', ',', 'b', ',', 'c', ',', 'd', ',', 'e']
```

Totality: total
Visibility: public export
intercalate : Lista->List (Lista) ->Lista
  Given a separator list and some more lists, produce a new list by
placing the separator between each of the lists.

@ sep the separator
@ xss the lists between which the separator will be placed

```idris example
intercalate [0, 0, 0] [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
```

Totality: total
Visibility: export
catMaybes : List (Maybea) ->Lista
  Extract all of the values contained in a List of Maybes

Totality: total
Visibility: public export
sorted : Orda=>Lista->Bool
  Check whether a list is sorted with respect to the default ordering for the type of its elements.

Totality: total
Visibility: export
mergeBy : (a->a->Ordering) ->Lista->Lista->Lista
  Merge two sorted lists using an arbitrary comparison
predicate. Note that the lists must have been sorted using this
predicate already.

Totality: total
Visibility: export
merge : Orda=>Lista->Lista->Lista
  Merge two sorted lists using the default ordering for the type of their elements.

Totality: total
Visibility: export
sortBy : (a->a->Ordering) ->Lista->Lista
  Sort a list using some arbitrary comparison predicate.

@ cmp how to compare elements
@ xs the list to sort

Totality: total
Visibility: export
sort : Orda=>Lista->Lista
  Sort a list using the default ordering for the type of its elements.

Totality: total
Visibility: export
prefixOfBy : (a->b->Maybem) ->Lista->Listb->Maybe (Listm, Listb)
  Check whether the `left` list is a prefix of the `right` one, according to
`match`. Returns the matched prefix together with the leftover suffix.

@ match a custom matching function for checking the elements are convertible
@ left the list which might be a prefix of `right`
@ right the list of elements to compare against

Totality: total
Visibility: public export
isPrefixOfBy : (a->b->Bool) ->Lista->Listb->Bool
  Check whether the `left` list is a prefix of the `right` one, using the
provided equality function to compare elements.

@ eq a custom equality function for comparing the elements
@ left the list which might be a prefix of `right`
@ right the list of elements to compare againts

Totality: total
Visibility: public export
isPrefixOf : Eqa=>Lista->Lista->Bool
  The isPrefixOf function takes two lists and returns True iff the first list
is a prefix of the second when comparing elements using `==`.

Totality: total
Visibility: public export
suffixOfBy : (a->b->Maybem) ->Lista->Listb->Maybe (Listb, Listm)
  Check whether the `left` is a suffix of the `right` one, according to
`match`. Returns the matched suffix together with the leftover prefix.

@ match a custom matching function for checking the elements are convertible
@ left the list which might be a prefix of `right`
@ right the list of elements to compare against

Totality: total
Visibility: public export
isSuffixOfBy : (a->b->Bool) ->Lista->Listb->Bool
  Check whether the `left` is a suffix of the `right` one, using the provided
equality function to compare elements.

@ eq a custom equality function for comparing the elements
@ left the list which might be a suffix of `right`
@ right the list of elements to compare againts

Totality: total
Visibility: public export
isSuffixOf : Eqa=>Lista->Lista->Bool
  The isSuffixOf function takes two lists and returns True iff the first list
is a suffix of the second when comparing elements using `==`.

Totality: total
Visibility: public export
infixOfBy : (a->b->Maybem) ->Lista->Listb->Maybe (Listb, (Listm, Listb))
  Check whether the `left` list is an infix of the `right` one, according to
`match`. Returns the shortest unmatched prefix, matched infix and the leftover suffix.

Totality: total
Visibility: public export
isInfixOfBy : (a->b->Bool) ->Lista->Listb->Bool
  Check whether the `left` is an infix of the `right` one, using the provided
equality function to compare elements.

Totality: total
Visibility: public export
isInfixOf : Eqa=>Lista->Lista->Bool
  The isInfixOf function takes two lists and returns True iff the first list
is contained, wholly and intact, anywhere within the second.

```idris example
isInfixOf ['b','c'] ['a', 'b', 'c', 'd']
```
```idris example
isInfixOf ['b','d'] ['a', 'b', 'c', 'd']
```

Totality: total
Visibility: public export
transpose : List (Lista) ->List (Lista)
  Transposes rows and columns of a list of lists.

```idris example
with List transpose [[1, 2], [3, 4]]
```

This also works for non square scenarios, thus
involution does not always hold:

transpose [[], [1, 2]] = [[1], [2]]
transpose (transpose [[], [1, 2]]) = [[1, 2]]

Totality: total
Visibility: export
groupBy : (a->a->Bool) ->Lista->List (List1a)
  `groupBy` operates like `group`, but uses the provided equality
predicate instead of `==`.

Totality: total
Visibility: public export
group : Eqa=>Lista->List (List1a)
  The `group` function takes a list of values and returns a list of
lists such that flattening the resulting list is equal to the
argument. Moreover, each list in the resulting list
contains only equal elements.

Totality: total
Visibility: public export
groupWith : Eqb=> (a->b) ->Lista->List (List1a)
  `groupWith` operates like `group`, but uses the provided projection when
comparing for equality

Totality: total
Visibility: public export
groupAllWith : Ordb=> (a->b) ->Lista->List (List1a)
  `groupAllWith` operates like `groupWith`, but sorts the list
first so that each equivalence class has, at most, one list in the
output

Totality: total
Visibility: public export
grouped : (n : Nat) -> {auto0_ : IsSuccn} ->Lista->List (Lista)
  Partitions a list into fixed sized sublists.

Note: The last list in the result might be shorter than the rest if
the input cannot evenly be split into groups of the same size.

```idris example
grouped 3 [1..10] === [[1,2,3],[4,5,6],[7,8,9],[10]]
```

Totality: total
Visibility: public export
consInjective : the (Lista) (x::xs) =the (Listb) (y::ys) -> (x=y, xs=ys)
  Heterogeneous injectivity for (::)

Totality: total
Visibility: export
reverseInvolutive : (xs : Lista) ->reverse (reversexs) =xs
  List `reverse` applied twice yields the identity function.

Totality: total
Visibility: export
appendNilRightNeutral : (l : Lista) ->l++ [] =l
  The empty list is a right identity for append.

Totality: total
Visibility: export
appendAssociative : (l : Lista) -> (c : Lista) -> (r : Lista) ->l++ (c++r) = (l++c) ++r
  Appending lists is associative.

Totality: total
Visibility: export
revAppend : (vs : Lista) -> (ns : Lista) ->reversens++reversevs=reverse (vs++ns)
  `reverse` is distributive

Totality: total
Visibility: export
dropFusion : (n : Nat) -> (m : Nat) -> (l : Listt) ->dropn (dropml) =drop (n+m) l
  Dropping `m` elements from `l` and then dropping `n` elements from the
result, is the same as simply dropping `n+m` elements from `l`

Totality: total
Visibility: export
lengthMap : (xs : Lista) ->length (mapfxs) =lengthxs
  Mapping a function over a list does not change the length of the list.

Totality: total
Visibility: export
lengthReplicate : (n : Nat) ->length (replicatenx) =n
  Proof that replicate produces a list of the requested length.

Totality: total
Visibility: export
foldlAppend : (f : (acc->a->acc)) -> (init : acc) -> (xs : Lista) -> (ys : Lista) ->foldlfinit (xs++ys) =foldlf (foldlfinitxs) ys
Totality: total
Visibility: export
filterAppend : (f : (a->Bool)) -> (xs : Lista) -> (ys : Lista) ->filterf (xs++ys) =filterfxs++filterfys
Totality: total
Visibility: export
mapMaybeFusion : (g : (b->Maybec)) -> (f : (a->Maybeb)) -> (xs : Lista) ->mapMaybeg (mapMaybefxs) =mapMaybe (f>=>g) xs
Totality: total
Visibility: export
mapMaybeAppend : (f : (a->Maybeb)) -> (xs : Lista) -> (ys : Lista) ->mapMaybef (xs++ys) =mapMaybefxs++mapMaybefys
Totality: total
Visibility: export
mapFusion : (g : (b->c)) -> (f : (a->b)) -> (xs : Lista) ->mapg (mapfxs) =map (g.f) xs
Totality: total
Visibility: export
mapAppend : (f : (a->b)) -> (xs : Lista) -> (ys : Lista) ->mapf (xs++ys) =mapfxs++mapfys
Totality: total
Visibility: export
\ No newline at end of file +

Data.List(source)

Reexports

importpublic Control.Function
importpublic Data.Zippable

Definitions

isNil : Lista->Bool
  Boolean check for whether the list is the empty list.

Totality: total
Visibility: public export
isCons : Lista->Bool
  Boolean check for whether the list contains a cons (::) / is non-empty.

Totality: total
Visibility: public export
snoc : Lista->a->Lista
  Add an element to the end of a list.
O(n). See the `Data.SnocList` module if you need to perform `snoc` often.

Totality: total
Visibility: public export
take : Nat->Lista->Lista
  Take `n` first elements from `xs`, returning the whole list if
`n` >= length `xs`.

@ n the number of elements to take
@ xs the list to take the elements from

Totality: total
Visibility: public export
drop : Nat->Lista->Lista
  Remove `n` first elements from `xs`, returning the empty list if
`n >= length xs`

@ n the number of elements to remove
@ xs the list to drop the elements from

Totality: total
Visibility: public export
dataInBounds : Nat->Lista->Type
  Satisfiable if `k` is a valid index into `xs`.

@ k the potential index
@ xs the list into which k may be an index

Totality: total
Visibility: public export
Constructors:
InFirst : InBounds0 (x::xs)
  Z is a valid index into any cons cell
InLater : InBoundskxs->InBounds (Sk) (x::xs)
  Valid indices can be extended

Hints:
Uninhabited (InBoundsk [])
Uninhabited (InBoundskxs) =>Uninhabited (InBounds (Sk) (x::xs))
inBounds : (k : Nat) -> (xs : Lista) ->Dec (InBoundskxs)
  Decide whether `k` is a valid index into `xs`.

Totality: total
Visibility: public export
index : (n : Nat) -> (xs : Lista) -> {auto0_ : InBoundsnxs} ->a
  Find a particular element of a list.

@ ok a proof that the index is within bounds

Totality: total
Visibility: public export
index' : (xs : Lista) ->Fin (lengthxs) ->a
Totality: total
Visibility: public export
iterate : (a->Maybea) ->a->Lista
  Generate a list by repeatedly applying a partial function until exhausted.
@ f the function to iterate
@ x the initial value that will be the head of the list

Visibility: public export
unfoldr : (b->Maybe (a, b)) ->b->Lista
  Given a function `f` which extracts an element of `b` and `b`'s
continuation, return the list consisting of the extracted elements.
CAUTION: Only terminates if `f` eventually returns `Nothing`.

@ f a function which provides an element of `b` and the rest of `b`
@ b a structure contanining any number of elements

Visibility: public export
iterateN : Nat-> (a->a) ->a->Lista
  Returns the list of elements obtained by applying `f` to `x` `0` to `n-1` times,
starting with `x`.

@ n the number of times to iterate `f` over `x`
@ f a function producing a series
@ x the initial element of the series

Totality: total
Visibility: public export
takeWhile : (a->Bool) ->Lista->Lista
  Get the longest prefix of the list that satisfies the predicate.

@ p a custom predicate for the elements of the list
@ xs the list of elements

Totality: total
Visibility: public export
dropWhile : (a->Bool) ->Lista->Lista
  Remove elements from the list until an element no longer satisfies the
predicate.

@ p a custom predicate for the elements of the list
@ xs the list of elements to remove from

Totality: total
Visibility: public export
find : (a->Bool) ->Lista->Maybea
  Find the first element of the list that satisfies the predicate.

Totality: total
Visibility: public export
findIndex : (a->Bool) -> (xs : Lista) ->Maybe (Fin (lengthxs))
  Find the index and proof of InBounds of the first element (if exists) of a
list that satisfies the given test, else `Nothing`.

Totality: total
Visibility: public export
findIndices : (a->Bool) ->Lista->ListNat
  Find indices of all elements that satisfy the given test.

Totality: total
Visibility: public export
lookupBy : (a->b->Bool) ->a->List (b, v) ->Maybev
  Find associated information in a list using a custom comparison.

Totality: total
Visibility: public export
lookup : Eqa=>a->List (a, b) ->Maybeb
  Find associated information in a list using Boolean equality.

Totality: total
Visibility: public export
nubBy : (a->a->Bool) ->Lista->Lista
  Remove duplicate elements from a list using a custom comparison. The general
case of `nub`.
O(n^2).

@ p a custom comparison for detecting duplicate elements
@ xs the list to remove the duplicates from

Totality: total
Visibility: public export
nub : Eqa=>Lista->Lista
  The nub function removes duplicate elements from a list using
boolean equality. In particular, it keeps only the first occurrence of each
element. It is a special case of `nubBy`, which allows the programmer to
supply their own equality test.
O(n^2).

```idris example
nub (the (List _) [1,2,1,3])
```

Totality: total
Visibility: public export
insertAt : (idx : Nat) ->a-> (xs : Lista) -> {auto0_ : LTEidx (lengthxs)} ->Lista
  Insert an element at a particular index.

```idris example
insertAt 1 [6, 8, 9] 7
```

@idx The index of the inserted value in the resulting list.
@x The value to insert.
@xs The list to insert the value into.

Totality: total
Visibility: public export
deleteAt : (idx : Nat) -> (xs : Lista) -> {auto0_ : InBoundsidxxs} ->Lista
  Construct a new list consisting of all but the indicated element.

```idris example
deleteAt 3 [5, 6, 7, 8, 9]
```

@ idx The index of the value to delete.
@ xs The list to delete the value from.

Totality: total
Visibility: public export
deleteBy : (a->b->Bool) ->a->Listb->Listb
  The deleteBy function behaves like delete, but takes a user-supplied equality predicate.

Totality: total
Visibility: public export
delete : Eqa=>a->Lista->Lista
  `delete x` removes the first occurrence of `x` from its list argument. For
example,

````idris example
delete 'a' ['b', 'a', 'n', 'a', 'n', 'a']
````

It is a special case of deleteBy, which allows the programmer to supply
their own equality test.

Totality: total
Visibility: public export
deleteFirstsBy : (a->b->Bool) ->Listb->Lista->Listb
  Delete the first occurrence of each element from the second list in the first
list where equality is determined by the predicate passed as the first argument.
@ p A function that returns true when its two arguments should be considered equal.
@ source The list to delete elements from.
@ undesirables The list of elements to delete.

Totality: total
Visibility: public export
(\\) : Eqa=>Lista->Lista->Lista
  The non-associative list-difference.
A specialized form of @deleteFirstsBy@ where the predicate is equality under the @Eq@
interface.
Deletes the first occurrence of each element of the second list from the first list.

In the following example, the result is `[2, 4]`.
```idris example
[1, 2, 3, 4] \\ [1, 3]
```

Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 7
unionBy : (a->a->Bool) ->Lista->Lista->Lista
  The unionBy function returns the union of two lists by user-supplied equality predicate.

Totality: total
Visibility: public export
union : Eqa=>Lista->Lista->Lista
  Compute the union of two lists according to their `Eq` implementation.

```idris example
union ['d', 'o', 'g'] ['c', 'o', 'w']
```

Totality: total
Visibility: public export
spanBy : (a->Maybeb) ->Lista-> (Listb, Lista)
  Like @span@ but using a predicate that might convert a to b, i.e. given a
predicate from a to Maybe b and a list of as, returns a tuple consisting of
the longest prefix of the list where a -> Just b, and the rest of the list.

Totality: total
Visibility: public export
span : (a->Bool) ->Lista-> (Lista, Lista)
  Given a predicate and a list, returns a tuple consisting of the longest
prefix of the list whose elements satisfy the predicate, and the rest of the
list.

Totality: total
Visibility: public export
break : (a->Bool) ->Lista-> (Lista, Lista)
  Similar to `span` but negates the predicate, i.e.: returns a tuple
consisting of the longest prefix of the list whose elements don't satisfy
the predicate, and the rest of the list.

Totality: total
Visibility: public export
singleton : a->Lista
Totality: total
Visibility: public export
split : (a->Bool) ->Lista->List1 (Lista)
Totality: total
Visibility: public export
splitAt : Nat->Lista-> (Lista, Lista)
  Split the list `xs` at the index `n`. If `n > length xs`, returns a tuple
consisting of `xs` and `[]`.

@ n the index to split the list at
@ xs the list to split

Totality: total
Visibility: public export
partition : (a->Bool) ->Lista-> (Lista, Lista)
  Divide the list into a tuple containing two smaller lists: one with the
elements that satisfies the given predicate and another with the elements
that don't.

@ p the predicate to partition according to
@ xs the list to partition

Totality: total
Visibility: public export
inits : Lista->List (Lista)
  The inits function returns all initial segments of the argument, shortest
first. For example,

```idris example
inits [1,2,3]
```

Totality: total
Visibility: public export
tails : Lista->List (Lista)
  The tails function returns all final segments of the argument, longest
first. For example,

```idris example
tails [1,2,3] == [[1,2,3], [2,3], [3], []]
```

Totality: total
Visibility: public export
splitOn : Eqa=>a->Lista->List1 (Lista)
  Split on the given element.

```idris example
splitOn 0 [1,0,2,0,0,3]
```

Totality: total
Visibility: public export
replaceAt : (idx : Nat) ->a-> (xs : Lista) -> {auto0_ : InBoundsidxxs} ->Lista
  Replace an element at a particlar index with another.

```idris example
replaceAt 2 6 [1, 2, 3, 4]
```

@idx The index of the value to replace.
@x The value to insert.
@xs The list in which to replace an element.

Totality: total
Visibility: public export
replaceWhen : (a->Bool) ->a->Lista->Lista
  Replace the elements in the list that satisfy the predicate with the given
value. The general case of `replaceOn`.

@ p the predicate to replace elements in the list according to
@ b the element to replace with
@ l the list to perform the replacements on

Totality: total
Visibility: public export
replaceOn : Eqa=>a->a->Lista->Lista
  Replace the elements in the list that are equal to `e`, using boolean
equality, with `b`. A special case of `replaceWhen`, using `== e` as the
predicate.

```idris example
> replaceOn '-' ',' ['1', '-', '2', '-', '3']
['1', ',', '2', ',', '3']
```

@ e the element to find and replace
@ b the element to replace with
@ l the list to perform the replacements on

Totality: total
Visibility: public export
replicate : Nat->a->Lista
  Construct a list with `n` copies of `x`.

@ n how many copies
@ x the element to replicate

Totality: total
Visibility: public export
intersectBy : (a->a->Bool) ->Lista->Lista->Lista
  Compute the intersect of two lists by user-supplied equality predicate.

Totality: total
Visibility: export
intersect : Eqa=>Lista->Lista->Lista
  Compute the intersection of two lists according to the `Eq` implementation for
the elements.

Totality: total
Visibility: export
intersectAllBy : (a->a->Bool) ->List (Lista) ->Lista
  Compute the intersect of all the lists in the given list of lists, according
to the user-supplied equality predicate.

@ eq the predicate for computing the intersection
@ ls the list of lists to compute the intersect of

Totality: total
Visibility: export
intersectAll : Eqa=>List (Lista) ->Lista
  Compute the intersect of all the lists in the given list of lists, according
to boolean equality. A special case of `intersectAllBy`, using `==` as the
equality predicate.

@ ls the list of lists to compute the intersect of

Totality: total
Visibility: export
dataNonEmpty : Lista->Type
  Proof that a given list is non-empty.

Totality: total
Visibility: public export
Constructor: 
IsNonEmpty : NonEmpty (x::xs)

Hint: 
Uninhabited (NonEmpty [])
head : (l : Lista) -> {auto0_ : NonEmptyl} ->a
  Get the head of a non-empty list.
@ ok proof the list is non-empty

Totality: total
Visibility: public export
tail : (l : Lista) -> {auto0_ : NonEmptyl} ->Lista
  Get the tail of a non-empty list.
@ ok proof the list is non-empty

Totality: total
Visibility: public export
last : (l : Lista) -> {auto0_ : NonEmptyl} ->a
  Retrieve the last element of a non-empty list.
@ ok proof that the list is non-empty

Totality: total
Visibility: public export
init : (l : Lista) -> {auto0_ : NonEmptyl} ->Lista
  Return all but the last element of a non-empty list.
@ ok proof the list is non-empty

Totality: total
Visibility: public export
minimum : Orda=> (xs : Lista) -> {auto0_ : NonEmptyxs} ->a
  Computes the minimum of a non-empty list

Totality: total
Visibility: public export
uncons' : Lista->Maybe (a, Lista)
  Attempt to deconstruct the list into a head and a tail.

Totality: total
Visibility: public export
head' : Lista->Maybea
  Attempt to get the head of a list. If the list is empty, return `Nothing`.

Totality: total
Visibility: public export
tail' : Lista->Maybe (Lista)
  Attempt to get the tail of a list. If the list is empty, return `Nothing`.

Totality: total
Visibility: export
last' : Lista->Maybea
  Attempt to retrieve the last element of a non-empty list.

If the list is empty, return `Nothing`.

Totality: total
Visibility: export
init' : Lista->Maybe (Lista)
  Attempt to return all but the last element of a non-empty list.

If the list is empty, return `Nothing`.

Totality: total
Visibility: export
foldr1By : (a->b->b) -> (a->b) -> (l : Lista) -> {auto0_ : NonEmptyl} ->b
  Foldr a non-empty list, using `map` to transform the first accumulated
element to something of the desired type and `func` to accumulate the
elements.

@ func the function used to accumulate the elements
@ map an initial transformation from the element to the accumulated type
@ l the non-empty list to foldr
@ ok proof that the list is non-empty

Totality: total
Visibility: public export
foldl1By : (b->a->b) -> (a->b) -> (l : Lista) -> {auto0_ : NonEmptyl} ->b
  Foldl a non-empty list, using `map` to transform the first accumulated
element to something of the desired type and `func` to accumulate the
elements.

@ func the function used to accumulate the elements
@ map an initial transformation from the element to the accumulated type
@ l the non-empty list to foldl
@ ok proof that the list is non-empty

Totality: total
Visibility: public export
foldr1 : (a->a->a) -> (l : Lista) -> {auto0_ : NonEmptyl} ->a
  Foldr a non-empty list without seeding the accumulator.

@ ok proof that the list is non-empty

Totality: total
Visibility: public export
foldl1 : (a->a->a) -> (l : Lista) -> {auto0_ : NonEmptyl} ->a
  Foldl a non-empty list without seeding the accumulator.

@ ok proof that the list is non-empty

Totality: total
Visibility: public export
toList1 : (l : Lista) -> {auto0_ : NonEmptyl} ->List1a
  Convert to a non-empty list.

@ ok proof the list is non-empty

Totality: total
Visibility: export
toList1' : Lista->Maybe (List1a)
  Convert to a non-empty list, returning Nothing if the list is empty.

Totality: total
Visibility: public export
interleave : Lista->Lista->Lista
  Interleave two lists.
```idris example
> interleave ["a", "c", "e"] ["b", "d", "f"]
["a", "b", "c", "d", "e", "f"]
```

Totality: total
Visibility: public export
mergeReplicate : a->Lista->Lista
  Prefix every element in the list with the given element.

@ sep the value to prefix
@ xs the list of elements to prefix with the given element

```idris example
> with List (mergeReplicate '>' ['a', 'b', 'c', 'd', 'e'])
['>', 'a', '>', 'b', '>', 'c', '>', 'd', '>', 'e']
```

Totality: total
Visibility: public export
intersperse : a->Lista->Lista
  Insert some separator between the elements of a list.

@ sep the value to intersperse
@ xs the list of elements to intersperse with the separator

```idris example
> with List (intersperse ',' ['a', 'b', 'c', 'd', 'e'])
['a', ',', 'b', ',', 'c', ',', 'd', ',', 'e']
```

Totality: total
Visibility: public export
intercalate : Lista->List (Lista) ->Lista
  Given a separator list and some more lists, produce a new list by
placing the separator between each of the lists.

@ sep the separator
@ xss the lists between which the separator will be placed

```idris example
intercalate [0, 0, 0] [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
```

Totality: total
Visibility: export
catMaybes : List (Maybea) ->Lista
  Extract all of the values contained in a List of Maybes

Totality: total
Visibility: public export
sorted : Orda=>Lista->Bool
  Check whether a list is sorted with respect to the default ordering for the type of its elements.

Totality: total
Visibility: export
mergeBy : (a->a->Ordering) ->Lista->Lista->Lista
  Merge two sorted lists using an arbitrary comparison
predicate. Note that the lists must have been sorted using this
predicate already.

Totality: total
Visibility: export
merge : Orda=>Lista->Lista->Lista
  Merge two sorted lists using the default ordering for the type of their elements.

Totality: total
Visibility: export
sortBy : (a->a->Ordering) ->Lista->Lista
  Sort a list using some arbitrary comparison predicate.

@ cmp how to compare elements
@ xs the list to sort

Totality: total
Visibility: export
sort : Orda=>Lista->Lista
  Sort a list using the default ordering for the type of its elements.

Totality: total
Visibility: export
prefixOfBy : (a->b->Maybem) ->Lista->Listb->Maybe (Listm, Listb)
  Check whether the `left` list is a prefix of the `right` one, according to
`match`. Returns the matched prefix together with the leftover suffix.

@ match a custom matching function for checking the elements are convertible
@ left the list which might be a prefix of `right`
@ right the list of elements to compare against

Totality: total
Visibility: public export
isPrefixOfBy : (a->b->Bool) ->Lista->Listb->Bool
  Check whether the `left` list is a prefix of the `right` one, using the
provided equality function to compare elements.

@ eq a custom equality function for comparing the elements
@ left the list which might be a prefix of `right`
@ right the list of elements to compare againts

Totality: total
Visibility: public export
isPrefixOf : Eqa=>Lista->Lista->Bool
  The isPrefixOf function takes two lists and returns True iff the first list
is a prefix of the second when comparing elements using `==`.

Totality: total
Visibility: public export
suffixOfBy : (a->b->Maybem) ->Lista->Listb->Maybe (Listb, Listm)
  Check whether the `left` is a suffix of the `right` one, according to
`match`. Returns the matched suffix together with the leftover prefix.

@ match a custom matching function for checking the elements are convertible
@ left the list which might be a prefix of `right`
@ right the list of elements to compare against

Totality: total
Visibility: public export
isSuffixOfBy : (a->b->Bool) ->Lista->Listb->Bool
  Check whether the `left` is a suffix of the `right` one, using the provided
equality function to compare elements.

@ eq a custom equality function for comparing the elements
@ left the list which might be a suffix of `right`
@ right the list of elements to compare againts

Totality: total
Visibility: public export
isSuffixOf : Eqa=>Lista->Lista->Bool
  The isSuffixOf function takes two lists and returns True iff the first list
is a suffix of the second when comparing elements using `==`.

Totality: total
Visibility: public export
infixOfBy : (a->b->Maybem) ->Lista->Listb->Maybe (Listb, (Listm, Listb))
  Check whether the `left` list is an infix of the `right` one, according to
`match`. Returns the shortest unmatched prefix, matched infix and the leftover suffix.

Totality: total
Visibility: public export
isInfixOfBy : (a->b->Bool) ->Lista->Listb->Bool
  Check whether the `left` is an infix of the `right` one, using the provided
equality function to compare elements.

Totality: total
Visibility: public export
isInfixOf : Eqa=>Lista->Lista->Bool
  The isInfixOf function takes two lists and returns True iff the first list
is contained, wholly and intact, anywhere within the second.

```idris example
isInfixOf ['b','c'] ['a', 'b', 'c', 'd']
```
```idris example
isInfixOf ['b','d'] ['a', 'b', 'c', 'd']
```

Totality: total
Visibility: public export
transpose : List (Lista) ->List (Lista)
  Transposes rows and columns of a list of lists.

```idris example
with List transpose [[1, 2], [3, 4]]
```

This also works for non square scenarios, thus
involution does not always hold:

transpose [[], [1, 2]] = [[1], [2]]
transpose (transpose [[], [1, 2]]) = [[1, 2]]

Totality: total
Visibility: export
groupBy : (a->a->Bool) ->Lista->List (List1a)
  `groupBy` operates like `group`, but uses the provided equality
predicate instead of `==`.

Totality: total
Visibility: public export
group : Eqa=>Lista->List (List1a)
  The `group` function takes a list of values and returns a list of
lists such that flattening the resulting list is equal to the
argument. Moreover, each list in the resulting list
contains only equal elements.

Totality: total
Visibility: public export
groupWith : Eqb=> (a->b) ->Lista->List (List1a)
  `groupWith` operates like `group`, but uses the provided projection when
comparing for equality

Totality: total
Visibility: public export
groupAllWith : Ordb=> (a->b) ->Lista->List (List1a)
  `groupAllWith` operates like `groupWith`, but sorts the list
first so that each equivalence class has, at most, one list in the
output

Totality: total
Visibility: public export
grouped : (n : Nat) -> {auto0_ : IsSuccn} ->Lista->List (Lista)
  Partitions a list into fixed sized sublists.

Note: The last list in the result might be shorter than the rest if
the input cannot evenly be split into groups of the same size.

```idris example
grouped 3 [1..10] === [[1,2,3],[4,5,6],[7,8,9],[10]]
```

Totality: total
Visibility: public export
consInjective : the (Lista) (x::xs) =the (Listb) (y::ys) -> (x=y, xs=ys)
  Heterogeneous injectivity for (::)

Totality: total
Visibility: export
reverseInvolutive : (xs : Lista) ->reverse (reversexs) =xs
  List `reverse` applied twice yields the identity function.

Totality: total
Visibility: export
appendNilRightNeutral : (l : Lista) ->l++ [] =l
  The empty list is a right identity for append.

Totality: total
Visibility: export
appendAssociative : (l : Lista) -> (c : Lista) -> (r : Lista) ->l++ (c++r) = (l++c) ++r
  Appending lists is associative.

Totality: total
Visibility: export
revAppend : (vs : Lista) -> (ns : Lista) ->reversens++reversevs=reverse (vs++ns)
  `reverse` is distributive

Totality: total
Visibility: export
dropFusion : (n : Nat) -> (m : Nat) -> (l : Listt) ->dropn (dropml) =drop (n+m) l
  Dropping `m` elements from `l` and then dropping `n` elements from the
result, is the same as simply dropping `n+m` elements from `l`

Totality: total
Visibility: export
lengthMap : (xs : Lista) ->length (mapfxs) =lengthxs
  Mapping a function over a list does not change the length of the list.

Totality: total
Visibility: export
lengthReplicate : (n : Nat) ->length (replicatenx) =n
  Proof that replicate produces a list of the requested length.

Totality: total
Visibility: export
foldlAppend : (f : (acc->a->acc)) -> (init : acc) -> (xs : Lista) -> (ys : Lista) ->foldlfinit (xs++ys) =foldlf (foldlfinitxs) ys
Totality: total
Visibility: export
filterAppend : (f : (a->Bool)) -> (xs : Lista) -> (ys : Lista) ->filterf (xs++ys) =filterfxs++filterfys
Totality: total
Visibility: export
mapMaybeFusion : (g : (b->Maybec)) -> (f : (a->Maybeb)) -> (xs : Lista) ->mapMaybeg (mapMaybefxs) =mapMaybe (f>=>g) xs
Totality: total
Visibility: export
mapMaybeAppend : (f : (a->Maybeb)) -> (xs : Lista) -> (ys : Lista) ->mapMaybef (xs++ys) =mapMaybefxs++mapMaybefys
Totality: total
Visibility: export
mapFusion : (g : (b->c)) -> (f : (a->b)) -> (xs : Lista) ->mapg (mapfxs) =map (g.f) xs
Totality: total
Visibility: export
mapAppend : (f : (a->b)) -> (xs : Lista) -> (ys : Lista) ->mapf (xs++ys) =mapfxs++mapfys
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.List1.Elem.html b/base/docs/Data.List1.Elem.html index 27c391ed57..406688157d 100644 --- a/base/docs/Data.List1.Elem.html +++ b/base/docs/Data.List1.Elem.html @@ -61,4 +61,4 @@ -

Data.List1.Elem(source)

Definitions

dataElem : a->List1a->Type
  A proof that some element is found in a list.

Totality: total
Visibility: public export
Constructors:
Here : Elemx (x:::xs)
  A proof that the element is at the head of the list
There : Elemxxs->Elemx (y:::xs)
  A proof that the element is in the tail of the list

Hints:
DecEq (Elemxxs)
InjectiveThere
Uninhabited (Here=Theree)
Uninhabited (Theree=Here)
Uninhabited (x=z) =>Uninhabited (Elemzxs) =>Uninhabited (Elemz (x:::xs))
neitherHereNorThere : Not (x=y) ->Not (Elemxxs) ->Not (Elemx (y:::xs))
  An item not in the head and not in the tail is not in the list at all.

Totality: total
Visibility: export
isElem : DecEqa=> (x : a) -> (xs : List1a) ->Dec (Elemxxs)
  Check whether the given element is a member of the given list.

Totality: total
Visibility: public export
dropElem : (xs : List1a) ->Elemxxs->Lista
  Remove the element at the given position. Forgets that the list is
non-empty, since there is no guarantee that it will remain non-empty after
the removal.

Totality: total
Visibility: public export
elemToNat : Elemxxs->Nat
  Erase the indices, returning the numeric position of the element

Totality: total
Visibility: public export
indexElem : Nat-> (xs : List1a) ->Maybe (x : a**Elemxxs)
  Find the element with a proof at a given position, if it is valid

Totality: total
Visibility: public export
elemMap : (0f : (a->b)) ->Elemxxs->Elem (fx) (mapfxs)
  Lift the membership proof to a mapped list

Totality: total
Visibility: export
\ No newline at end of file +

Data.List1.Elem(source)

Definitions

dataElem : a->List1a->Type
  A proof that some element is found in a list.

Totality: total
Visibility: public export
Constructors:
Here : Elemx (x:::xs)
  A proof that the element is at the head of the list
There : Elemxxs->Elemx (y:::xs)
  A proof that the element is in the tail of the list

Hints:
DecEq (Elemxxs)
InjectiveThere
Uninhabited (Here=Theree)
Uninhabited (Theree=Here)
Uninhabited (x=z) =>Uninhabited (Elemzxs) =>Uninhabited (Elemz (x:::xs))
neitherHereNorThere : Not (x=y) ->Not (Elemxxs) ->Not (Elemx (y:::xs))
  An item not in the head and not in the tail is not in the list at all.

Totality: total
Visibility: export
isElem : DecEqa=> (x : a) -> (xs : List1a) ->Dec (Elemxxs)
  Check whether the given element is a member of the given list.

Totality: total
Visibility: public export
dropElem : (xs : List1a) ->Elemxxs->Lista
  Remove the element at the given position. Forgets that the list is
non-empty, since there is no guarantee that it will remain non-empty after
the removal.

Totality: total
Visibility: public export
elemToNat : Elemxxs->Nat
  Erase the indices, returning the numeric position of the element

Totality: total
Visibility: public export
indexElem : Nat-> (xs : List1a) ->Maybe (x : a**Elemxxs)
  Find the element with a proof at a given position, if it is valid

Totality: total
Visibility: public export
elemMap : (0f : (a->b)) ->Elemxxs->Elem (fx) (mapfxs)
  Lift the membership proof to a mapped list

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.List1.Properties.html b/base/docs/Data.List1.Properties.html index 70371f7454..607adc25db 100644 --- a/base/docs/Data.List1.Properties.html +++ b/base/docs/Data.List1.Properties.html @@ -64,4 +64,4 @@

Data.List1.Properties(source)

This module contains stuff that may use functions from `Data.List`.
 This separation is needed because `Data.List` uses `List1` type inside it,
 thus the core of `List1` must not import `Data.List`.
-

Reexports

importpublic Data.Maybe

Definitions

consInjective : x:::xs=y:::ys-> (x=y, xs=ys)
Totality: total
Visibility: export
listLength : (xs : List1a) ->lengthxs=length (forgetxs)
  Proof that the length of a List1 is the same as the length
of the List it represents.

Totality: total
Visibility: export
appendlNilRightNeutral : (l : List1a) ->appendll [] =l
Totality: total
Visibility: export
lappendNilLeftNeutral : (l : List1a) ->lappend [] l=l
Totality: total
Visibility: export
appendAssociative : (l : List1a) -> (c : List1a) -> (r : List1a) ->l++ (c++r) = (l++c) ++r
Totality: total
Visibility: export
toListAppendl : (xs : List1a) -> (ys : Lista) ->toList (appendlxsys) =forgetxs++ys
Totality: total
Visibility: export
toListLappend : (xs : Lista) -> (ys : List1a) ->toList (lappendxsys) =xs++forgetys
Totality: total
Visibility: export
toListAppend : (xs : List1a) -> (ys : List1a) ->toList (xs++ys) =toListxs++toListys
Totality: total
Visibility: export
fromListAppend : (xs : Lista) -> (ys : Lista) ->fromList (xs++ys) =fromListxs<+>fromListys
Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Data.Maybe

Definitions

consInjective : x:::xs=y:::ys-> (x=y, xs=ys)
Totality: total
Visibility: export
listLength : (xs : List1a) ->lengthxs=length (forgetxs)
  Proof that the length of a List1 is the same as the length
of the List it represents.

Totality: total
Visibility: export
appendlNilRightNeutral : (l : List1a) ->appendll [] =l
Totality: total
Visibility: export
lappendNilLeftNeutral : (l : List1a) ->lappend [] l=l
Totality: total
Visibility: export
appendAssociative : (l : List1a) -> (c : List1a) -> (r : List1a) ->l++ (c++r) = (l++c) ++r
Totality: total
Visibility: export
toListAppendl : (xs : List1a) -> (ys : Lista) ->toList (appendlxsys) =forgetxs++ys
Totality: total
Visibility: export
toListLappend : (xs : Lista) -> (ys : List1a) ->toList (lappendxsys) =xs++forgetys
Totality: total
Visibility: export
toListAppend : (xs : List1a) -> (ys : List1a) ->toList (xs++ys) =toListxs++toListys
Totality: total
Visibility: export
fromListAppend : (xs : Lista) -> (ys : Lista) ->fromList (xs++ys) =fromListxs<+>fromListys
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.List1.Quantifiers.html b/base/docs/Data.List1.Quantifiers.html index f1864de41a..f4c42a9868 100644 --- a/base/docs/Data.List1.Quantifiers.html +++ b/base/docs/Data.List1.Quantifiers.html @@ -61,4 +61,4 @@ -

Data.List1.Quantifiers(source)

Definitions

dataAny : (0_ : (a->Type)) ->List1a->Type
  A proof that some element of a list satisfies some property

@ p the property to be satisfied

Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (x:::xs)
  A proof that the satisfying element is the first one in the `List1`
There : Anypxs->Anyp (x:::xs)
  A proof that the satisfying element is in the tail of the `List1`
mapProperty : (px->qx) ->Anypl->Anyql
  Modify the property given a pointwise function

Totality: total
Visibility: export
any : ((x : a) ->Dec (px)) -> (xs : List1a) ->Dec (Anypxs)
  Given a decision procedure for a property, determine if an element of a
list satisfies it.

@ p the property to be satisfied
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
toExists : Anypxs->Existsp
  Forget the membership proof

Totality: total
Visibility: export
dataAll : (0_ : (a->Type)) ->List1a->Type
  A proof that all elements of a list satisfy a property. It is a list of
proofs, corresponding element-wise to the `List1`.

Totality: total
Visibility: public export
Constructor: 
(:::) : px->Allpxs->Allp (x:::xs)

Hint: 
Either (Uninhabited (px)) (Uninhabited (Allpxs)) =>Uninhabited (Allp (x:::xs))
mapProperty : (px->qx) ->Allpl->Allql
  Modify the property given a pointwise function

Totality: total
Visibility: export
imapProperty : (0i : (Type->Type)) -> (ia=>pa->qa) ->Allitypes=>Allptypes->Allqtypes
  Modify the property given a pointwise interface function

Totality: total
Visibility: public export
forget : All (consttype) types->List1type
  Forget property source for a homogeneous collection of properties

Totality: total
Visibility: public export
all : ((x : a) ->Dec (px)) -> (xs : List1a) ->Dec (Allpxs)
  Given a decision procedure for a property, decide whether all elements of
a list satisfy it.

@ p the property
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
zipPropertyWith : (px->qx->rx) ->Allpxs->Allqxs->Allrxs
Totality: total
Visibility: export
HList1 : List1Type->Type
  A heterogeneous list of arbitrary types

Totality: total
Visibility: public export
negAnyAll : Not (Anypxs) ->All (Not.p) xs
  If there does not exist an element that satifies the property, then it is
the case that all elements do not satisfy it.

Totality: total
Visibility: export
anyNegAll : Any (Not.p) xs->Not (Allpxs)
  If there exists an element that doesn't satify the property, then it is
not the case that all elements satisfy it.

Totality: total
Visibility: export
allNegAny : All (Not.p) xs->Not (Anypxs)
  If none of the elements satisfy the property, then not any single one can.

Totality: total
Visibility: export
indexAll : Elemxxs->Allpxs->px
  Given a proof of membership for some element, extract the property proof for it

Totality: total
Visibility: public export
pushIn : (xs : List1a) -> (0_ : Allpxs) ->List1 (Subsetap)
  Push in the property from the list level with element level

Totality: total
Visibility: public export
pullOut : List1 (Subsetap) ->Subset (List1a) (Allp)
  Pull the elementwise property out to the list level

Totality: total
Visibility: public export
pushInOutInverse : (xs : List1a) -> (0prf : Allpxs) ->pullOut (pushInxsprf) =Elementxsprf
Totality: total
Visibility: export
pushOutInInverse : (xs : List1 (Subsetap)) ->uncurrypushIn (pullOutxs) =xs
Totality: total
Visibility: export
\ No newline at end of file +

Data.List1.Quantifiers(source)

Definitions

dataAny : (0_ : (a->Type)) ->List1a->Type
  A proof that some element of a list satisfies some property

@ p the property to be satisfied

Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (x:::xs)
  A proof that the satisfying element is the first one in the `List1`
There : Anypxs->Anyp (x:::xs)
  A proof that the satisfying element is in the tail of the `List1`
mapProperty : (px->qx) ->Anypl->Anyql
  Modify the property given a pointwise function

Totality: total
Visibility: export
any : ((x : a) ->Dec (px)) -> (xs : List1a) ->Dec (Anypxs)
  Given a decision procedure for a property, determine if an element of a
list satisfies it.

@ p the property to be satisfied
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
toExists : Anypxs->Existsp
  Forget the membership proof

Totality: total
Visibility: export
dataAll : (0_ : (a->Type)) ->List1a->Type
  A proof that all elements of a list satisfy a property. It is a list of
proofs, corresponding element-wise to the `List1`.

Totality: total
Visibility: public export
Constructor: 
(:::) : px->Allpxs->Allp (x:::xs)

Hint: 
Either (Uninhabited (px)) (Uninhabited (Allpxs)) =>Uninhabited (Allp (x:::xs))
mapProperty : (px->qx) ->Allpl->Allql
  Modify the property given a pointwise function

Totality: total
Visibility: export
imapProperty : (0i : (Type->Type)) -> (ia=>pa->qa) ->Allitypes=>Allptypes->Allqtypes
  Modify the property given a pointwise interface function

Totality: total
Visibility: public export
forget : All (consttype) types->List1type
  Forget property source for a homogeneous collection of properties

Totality: total
Visibility: public export
all : ((x : a) ->Dec (px)) -> (xs : List1a) ->Dec (Allpxs)
  Given a decision procedure for a property, decide whether all elements of
a list satisfy it.

@ p the property
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
zipPropertyWith : (px->qx->rx) ->Allpxs->Allqxs->Allrxs
Totality: total
Visibility: export
HList1 : List1Type->Type
  A heterogeneous list of arbitrary types

Totality: total
Visibility: public export
negAnyAll : Not (Anypxs) ->All (Not.p) xs
  If there does not exist an element that satifies the property, then it is
the case that all elements do not satisfy it.

Totality: total
Visibility: export
anyNegAll : Any (Not.p) xs->Not (Allpxs)
  If there exists an element that doesn't satify the property, then it is
not the case that all elements satisfy it.

Totality: total
Visibility: export
allNegAny : All (Not.p) xs->Not (Anypxs)
  If none of the elements satisfy the property, then not any single one can.

Totality: total
Visibility: export
indexAll : Elemxxs->Allpxs->px
  Given a proof of membership for some element, extract the property proof for it

Totality: total
Visibility: public export
pushIn : (xs : List1a) -> (0_ : Allpxs) ->List1 (Subsetap)
  Push in the property from the list level with element level

Totality: total
Visibility: public export
pullOut : List1 (Subsetap) ->Subset (List1a) (Allp)
  Pull the elementwise property out to the list level

Totality: total
Visibility: public export
pushInOutInverse : (xs : List1a) -> (0prf : Allpxs) ->pullOut (pushInxsprf) =Elementxsprf
Totality: total
Visibility: export
pushOutInInverse : (xs : List1 (Subsetap)) ->uncurrypushIn (pullOutxs) =xs
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.List1.html b/base/docs/Data.List1.html index f38b239ede..2d461e2b47 100644 --- a/base/docs/Data.List1.html +++ b/base/docs/Data.List1.html @@ -61,4 +61,4 @@ -

Data.List1(source)

Reexports

importpublic Data.Zippable
importpublic Control.Function

Definitions

recordList1 : Type->Type
  Non-empty lists.

Totality: total
Visibility: public export
Constructor: 
(:::) : a->Lista->List1a

Projections:
.head : List1a->a
.tail : List1a->Lista

Hints:
ApplicativeList1
Biinjective(:::)
DecEqa=>DecEq (List1a)
Eqa=>Eq (List1a)
FoldableList1
FunctorList1
Injective (\{arg:0}=>x:::{arg:0})
Injective (\{arg:0}=>{arg:0}:::ys)
MonadList1
Orda=>Ord (List1a)
Semigroup (List1a)
Showa=>Show (List1a)
TraversableList1
Uninhabiteda=>Uninhabited (List1a)
ZippableList1
.head : List1a->a
Totality: total
Visibility: public export
head : List1a->a
Totality: total
Visibility: public export
.tail : List1a->Lista
Totality: total
Visibility: public export
tail : List1a->Lista
Totality: total
Visibility: public export
fromList : Lista->Maybe (List1a)
Totality: total
Visibility: public export
singleton : a->List1a
Totality: total
Visibility: public export
forget : List1a->Lista
  Forget that a list is non-empty.

Totality: total
Visibility: public export
last : List1a->a
Totality: total
Visibility: export
init : List1a->Lista
Totality: total
Visibility: export
foldr1By : (a->b->b) -> (a->b) ->List1a->b
Totality: total
Visibility: public export
foldl1By : (b->a->b) -> (a->b) ->List1a->b
Totality: total
Visibility: public export
foldr1 : (a->a->a) ->List1a->a
Totality: total
Visibility: public export
foldl1 : (a->a->a) ->List1a->a
Totality: total
Visibility: public export
length : List1a->Nat
Totality: total
Visibility: public export
appendl : List1a->Lista->List1a
Totality: total
Visibility: public export
(++) : List1a->List1a->List1a
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
lappend : Lista->List1a->List1a
Totality: total
Visibility: public export
cons : a->List1a->List1a
Totality: total
Visibility: public export
snoc : List1a->a->List1a
Totality: total
Visibility: public export
unsnoc : List1a-> (Lista, a)
Totality: total
Visibility: public export
reverseOnto : List1a->Lista->List1a
Totality: total
Visibility: public export
reverse : List1a->List1a
Totality: total
Visibility: public export
filter : (a->Bool) ->List1a->Maybe (List1a)
Totality: total
Visibility: public export
\ No newline at end of file +

Data.List1(source)

Reexports

importpublic Data.Zippable
importpublic Control.Function

Definitions

recordList1 : Type->Type
  Non-empty lists.

Totality: total
Visibility: public export
Constructor: 
(:::) : a->Lista->List1a

Projections:
.head : List1a->a
.tail : List1a->Lista

Hints:
ApplicativeList1
Biinjective(:::)
DecEqa=>DecEq (List1a)
Eqa=>Eq (List1a)
FoldableList1
FunctorList1
Injective (\{arg:0}=>x:::{arg:0})
Injective (\{arg:0}=>{arg:0}:::ys)
MonadList1
Orda=>Ord (List1a)
Semigroup (List1a)
Showa=>Show (List1a)
TraversableList1
Uninhabiteda=>Uninhabited (List1a)
ZippableList1
.head : List1a->a
Totality: total
Visibility: public export
head : List1a->a
Totality: total
Visibility: public export
.tail : List1a->Lista
Totality: total
Visibility: public export
tail : List1a->Lista
Totality: total
Visibility: public export
fromList : Lista->Maybe (List1a)
Totality: total
Visibility: public export
singleton : a->List1a
Totality: total
Visibility: public export
forget : List1a->Lista
  Forget that a list is non-empty.

Totality: total
Visibility: public export
last : List1a->a
Totality: total
Visibility: export
init : List1a->Lista
Totality: total
Visibility: export
foldr1By : (a->b->b) -> (a->b) ->List1a->b
Totality: total
Visibility: public export
foldl1By : (b->a->b) -> (a->b) ->List1a->b
Totality: total
Visibility: public export
foldr1 : (a->a->a) ->List1a->a
Totality: total
Visibility: public export
foldl1 : (a->a->a) ->List1a->a
Totality: total
Visibility: public export
length : List1a->Nat
Totality: total
Visibility: public export
appendl : List1a->Lista->List1a
Totality: total
Visibility: public export
(++) : List1a->List1a->List1a
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
lappend : Lista->List1a->List1a
Totality: total
Visibility: public export
cons : a->List1a->List1a
Totality: total
Visibility: public export
snoc : List1a->a->List1a
Totality: total
Visibility: public export
unsnoc : List1a-> (Lista, a)
Totality: total
Visibility: public export
reverseOnto : List1a->Lista->List1a
Totality: total
Visibility: public export
reverse : List1a->List1a
Totality: total
Visibility: public export
filter : (a->Bool) ->List1a->Maybe (List1a)
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Maybe.html b/base/docs/Data.Maybe.html index aa757bb318..5f235c3747 100644 --- a/base/docs/Data.Maybe.html +++ b/base/docs/Data.Maybe.html @@ -61,4 +61,4 @@ -

Data.Maybe(source)

Definitions

isNothing : Maybea->Bool
Totality: total
Visibility: public export
isJust : Maybea->Bool
Totality: total
Visibility: public export
dataIsJust : Maybea->Type
  Proof that some `Maybe` is actually `Just`

Totality: total
Visibility: public export
Constructor: 
ItIsJust : IsJust (Justx)

Hint: 
Uninhabited (IsJustNothing)
isItJust : (v : Maybea) ->Dec (IsJustv)
  Decide whether a 'Maybe' is 'Just'

Totality: total
Visibility: public export
fromMaybe : Lazy a->Maybea->a
  Convert a `Maybe a` value to an `a` value by providing a default `a` value
in the case that the `Maybe` value is `Nothing`.

Totality: total
Visibility: public export
fromJust : (v : Maybea) -> {auto0_ : IsJustv} ->a
  Returns the `a` value of a `Maybe a` which is proved `Just`.

Totality: total
Visibility: public export
toMaybe : Bool-> Lazy a->Maybea
  Returns `Just` the given value if the conditional is `True`
and `Nothing` if the conditional is `False`.

Totality: total
Visibility: public export
lowerMaybe : Monoida=>Maybea->a
  Convert a `Maybe a` value to an `a` value, using `neutral` in the case
that the `Maybe` value is `Nothing`.

Totality: total
Visibility: public export
raiseToMaybe : Monoida=>Eqa=>a->Maybea
  Returns `Nothing` when applied to `neutral`, and `Just` the value otherwise.

Totality: total
Visibility: export
filter : (a->Bool) ->Maybea->Maybea
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Maybe(source)

Definitions

isNothing : Maybea->Bool
Totality: total
Visibility: public export
isJust : Maybea->Bool
Totality: total
Visibility: public export
dataIsJust : Maybea->Type
  Proof that some `Maybe` is actually `Just`

Totality: total
Visibility: public export
Constructor: 
ItIsJust : IsJust (Justx)

Hint: 
Uninhabited (IsJustNothing)
isItJust : (v : Maybea) ->Dec (IsJustv)
  Decide whether a 'Maybe' is 'Just'

Totality: total
Visibility: public export
fromMaybe : Lazy a->Maybea->a
  Convert a `Maybe a` value to an `a` value by providing a default `a` value
in the case that the `Maybe` value is `Nothing`.

Totality: total
Visibility: public export
fromJust : (v : Maybea) -> {auto0_ : IsJustv} ->a
  Returns the `a` value of a `Maybe a` which is proved `Just`.

Totality: total
Visibility: public export
toMaybe : Bool-> Lazy a->Maybea
  Returns `Just` the given value if the conditional is `True`
and `Nothing` if the conditional is `False`.

Totality: total
Visibility: public export
lowerMaybe : Monoida=>Maybea->a
  Convert a `Maybe a` value to an `a` value, using `neutral` in the case
that the `Maybe` value is `Nothing`.

Totality: total
Visibility: public export
raiseToMaybe : Monoida=>Eqa=>a->Maybea
  Returns `Nothing` when applied to `neutral`, and `Just` the value otherwise.

Totality: total
Visibility: export
filter : (a->Bool) ->Maybea->Maybea
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Morphisms.html b/base/docs/Data.Morphisms.html index bf4e6ca7eb..fd34e7ff19 100644 --- a/base/docs/Data.Morphisms.html +++ b/base/docs/Data.Morphisms.html @@ -61,4 +61,4 @@ -

Data.Morphisms(source)

Definitions

recordMorphism : Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
Mor : (a->b) ->Morphismab

Projection: 
.applyMor : Morphismab->a->b

Hints:
Applicative (Morphismr)
Cast (Endomorphisma) (Morphismaa)
Cast (Morphismaa) (Endomorphisma)
Cast (Morphisma (fb)) (Kleislimorphismfab)
Cast (Kleislimorphismfab) (Morphisma (fb))
Cast (Morphismab) (Opba)
Cast (Opba) (Morphismab)
Functor (Morphismr)
Monad (Morphismr)
Monoida=>Monoid (Morphismra)
Semigroupa=>Semigroup (Morphismra)
.applyMor : Morphismab->a->b
Totality: total
Visibility: public export
applyMor : Morphismab->a->b
Totality: total
Visibility: public export
(~>) : Type->Type->Type
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 1
recordEndomorphism : Type->Type
Totality: total
Visibility: public export
Constructor: 
Endo : (a->a) ->Endomorphisma

Projection: 
.applyEndo : Endomorphisma->a->a

Hints:
Cast (Endomorphisma) (Morphismaa)
Cast (Morphismaa) (Endomorphisma)
Cast (Endomorphisma) (Opaa)
Cast (Opaa) (Endomorphisma)
Monoid (Endomorphisma)
Semigroup (Endomorphisma)
.applyEndo : Endomorphisma->a->a
Totality: total
Visibility: public export
applyEndo : Endomorphisma->a->a
Totality: total
Visibility: public export
recordKleislimorphism : (Type->Type) ->Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
Kleisli : (a->fb) ->Kleislimorphismfab

Projection: 
.applyKleisli : Kleislimorphismfab->a->fb

Hints:
Applicativef=>Applicative (Kleislimorphismfa)
Cast (Morphisma (fb)) (Kleislimorphismfab)
Cast (Kleislimorphismfab) (Morphisma (fb))
Cast (Op (fb) a) (Kleislimorphismfab)
Cast (Kleislimorphismfab) (Op (fb) a)
Functorf=>Functor (Kleislimorphismfa)
Monadf=>Monad (Kleislimorphismfa)
(Monoida, Applicativef) =>Monoid (Kleislimorphismfra)
(Semigroupa, Applicativef) =>Semigroup (Kleislimorphismfra)
.applyKleisli : Kleislimorphismfab->a->fb
Totality: total
Visibility: public export
applyKleisli : Kleislimorphismfab->a->fb
Totality: total
Visibility: public export
recordOp : Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkOp : (a->b) ->Opba

Projection: 
.applyOp : Opba->a->b

Hints:
Cast (Endomorphisma) (Opaa)
Cast (Opaa) (Endomorphisma)
Cast (Op (fb) a) (Kleislimorphismfab)
Cast (Kleislimorphismfab) (Op (fb) a)
Cast (Morphismab) (Opba)
Cast (Opba) (Morphismab)
Contravariant (Opb)
.applyOp : Opba->a->b
Totality: total
Visibility: public export
applyOp : Opba->a->b
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Morphisms(source)

Definitions

recordMorphism : Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
Mor : (a->b) ->Morphismab

Projection: 
.applyMor : Morphismab->a->b

Hints:
Applicative (Morphismr)
Cast (Endomorphisma) (Morphismaa)
Cast (Morphismaa) (Endomorphisma)
Cast (Morphisma (fb)) (Kleislimorphismfab)
Cast (Kleislimorphismfab) (Morphisma (fb))
Cast (Morphismab) (Opba)
Cast (Opba) (Morphismab)
Functor (Morphismr)
Monad (Morphismr)
Monoida=>Monoid (Morphismra)
Semigroupa=>Semigroup (Morphismra)
.applyMor : Morphismab->a->b
Totality: total
Visibility: public export
applyMor : Morphismab->a->b
Totality: total
Visibility: public export
(~>) : Type->Type->Type
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 1
recordEndomorphism : Type->Type
Totality: total
Visibility: public export
Constructor: 
Endo : (a->a) ->Endomorphisma

Projection: 
.applyEndo : Endomorphisma->a->a

Hints:
Cast (Endomorphisma) (Morphismaa)
Cast (Morphismaa) (Endomorphisma)
Cast (Endomorphisma) (Opaa)
Cast (Opaa) (Endomorphisma)
Monoid (Endomorphisma)
Semigroup (Endomorphisma)
.applyEndo : Endomorphisma->a->a
Totality: total
Visibility: public export
applyEndo : Endomorphisma->a->a
Totality: total
Visibility: public export
recordKleislimorphism : (Type->Type) ->Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
Kleisli : (a->fb) ->Kleislimorphismfab

Projection: 
.applyKleisli : Kleislimorphismfab->a->fb

Hints:
Applicativef=>Applicative (Kleislimorphismfa)
Cast (Morphisma (fb)) (Kleislimorphismfab)
Cast (Kleislimorphismfab) (Morphisma (fb))
Cast (Op (fb) a) (Kleislimorphismfab)
Cast (Kleislimorphismfab) (Op (fb) a)
Functorf=>Functor (Kleislimorphismfa)
Monadf=>Monad (Kleislimorphismfa)
(Monoida, Applicativef) =>Monoid (Kleislimorphismfra)
(Semigroupa, Applicativef) =>Semigroup (Kleislimorphismfra)
.applyKleisli : Kleislimorphismfab->a->fb
Totality: total
Visibility: public export
applyKleisli : Kleislimorphismfab->a->fb
Totality: total
Visibility: public export
recordOp : Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkOp : (a->b) ->Opba

Projection: 
.applyOp : Opba->a->b

Hints:
Cast (Endomorphisma) (Opaa)
Cast (Opaa) (Endomorphisma)
Cast (Op (fb) a) (Kleislimorphismfab)
Cast (Kleislimorphismfab) (Op (fb) a)
Cast (Morphismab) (Opba)
Cast (Opba) (Morphismab)
Contravariant (Opb)
.applyOp : Opba->a->b
Totality: total
Visibility: public export
applyOp : Opba->a->b
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Nat.Order.html b/base/docs/Data.Nat.Order.html index 056940362a..f331d24b78 100644 --- a/base/docs/Data.Nat.Order.html +++ b/base/docs/Data.Nat.Order.html @@ -62,4 +62,4 @@

Data.Nat.Order(source)

Implementation of ordering relations for `Nat`ural numbers
-

Definitions

zeroNeverGreater : Not (LTE (Sn) 0)
Totality: total
Visibility: public export
zeroAlwaysSmaller : LTE0n
Totality: total
Visibility: public export
ltesuccinjective : Not (LTEnm) ->Not (LTE (Sn) (Sm))
Totality: total
Visibility: public export
decideLTBounded : {0p : Nat->Type} -> ((n : Nat) ->Dec (pn)) -> (n : Nat) ->Dec ((k : Nat) ->LTkn->pk)
  If a predicate is decidable then we can decide whether it holds on
a bounded domain.

Totality: total
Visibility: public export
decideLTEBounded : {0p : Nat->Type} -> ((n : Nat) ->Dec (pn)) -> (n : Nat) ->Dec ((k : Nat) ->LTEkn->pk)
  If a predicate is decidable then we can decide whether it holds on
a bounded domain.

Totality: total
Visibility: public export
lte : (m : Nat) -> (n : Nat) ->Dec (LTEmn)
Totality: total
Visibility: public export
shift : (m : Nat) -> (n : Nat) ->LTEmn->LTE (Sm) (Sn)
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

zeroNeverGreater : Not (LTE (Sn) 0)
Totality: total
Visibility: public export
zeroAlwaysSmaller : LTE0n
Totality: total
Visibility: public export
ltesuccinjective : Not (LTEnm) ->Not (LTE (Sn) (Sm))
Totality: total
Visibility: public export
decideLTBounded : {0p : Nat->Type} -> ((n : Nat) ->Dec (pn)) -> (n : Nat) ->Dec ((k : Nat) ->LTkn->pk)
  If a predicate is decidable then we can decide whether it holds on
a bounded domain.

Totality: total
Visibility: public export
decideLTEBounded : {0p : Nat->Type} -> ((n : Nat) ->Dec (pn)) -> (n : Nat) ->Dec ((k : Nat) ->LTEkn->pk)
  If a predicate is decidable then we can decide whether it holds on
a bounded domain.

Totality: total
Visibility: public export
lte : (m : Nat) -> (n : Nat) ->Dec (LTEmn)
Totality: total
Visibility: public export
shift : (m : Nat) -> (n : Nat) ->LTEmn->LTE (Sm) (Sn)
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Nat.Views.html b/base/docs/Data.Nat.Views.html index 2468243e06..ef88a548c3 100644 --- a/base/docs/Data.Nat.Views.html +++ b/base/docs/Data.Nat.Views.html @@ -61,4 +61,4 @@ -

Data.Nat.Views(source)

Definitions

dataHalf : Nat->Type
  View for dividing a Nat in half

Totality: total
Visibility: public export
Constructors:
HalfOdd : (n : Nat) ->Half (S (n+n))
HalfEven : (n : Nat) ->Half (n+n)
dataHalfRec : Nat->Type
  View for dividing a Nat in half, recursively

Totality: total
Visibility: public export
Constructors:
HalfRecZ : HalfRec0
HalfRecEven : (n : Nat) -> Lazy (HalfRecn) ->HalfRec (n+n)
HalfRecOdd : (n : Nat) -> Lazy (HalfRecn) ->HalfRec (S (n+n))
half : (n : Nat) ->Halfn
  Covering function for the `Half` view

Totality: total
Visibility: public export
halfRec : (n : Nat) ->HalfRecn
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Nat.Views(source)

Definitions

dataHalf : Nat->Type
  View for dividing a Nat in half

Totality: total
Visibility: public export
Constructors:
HalfOdd : (n : Nat) ->Half (S (n+n))
HalfEven : (n : Nat) ->Half (n+n)
dataHalfRec : Nat->Type
  View for dividing a Nat in half, recursively

Totality: total
Visibility: public export
Constructors:
HalfRecZ : HalfRec0
HalfRecEven : (n : Nat) -> Lazy (HalfRecn) ->HalfRec (n+n)
HalfRecOdd : (n : Nat) -> Lazy (HalfRecn) ->HalfRec (S (n+n))
half : (n : Nat) ->Halfn
  Covering function for the `Half` view

Totality: total
Visibility: public export
halfRec : (n : Nat) ->HalfRecn
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Nat.html b/base/docs/Data.Nat.html index c2461299b4..4214ddd5d6 100644 --- a/base/docs/Data.Nat.html +++ b/base/docs/Data.Nat.html @@ -61,4 +61,4 @@ -

Data.Nat(source)

Reexports

importpublic Control.Relation
importpublic Control.Ord
importpublic Control.Order
importpublic Control.Function

Definitions

isZero : Nat->Bool
Totality: total
Visibility: public export
isSucc : Nat->Bool
Totality: total
Visibility: public export
dataIsSucc : Nat->Type
Totality: total
Visibility: public export
Constructor: 
ItIsSucc : IsSucc (Sn)

Hint: 
Uninhabited (IsSucc0)
isItSucc : (n : Nat) ->Dec (IsSuccn)
Totality: total
Visibility: public export
power : Nat->Nat->Nat
Totality: total
Visibility: public export
hyper : Nat->Nat->Nat->Nat
Totality: total
Visibility: public export
pred : Nat->Nat
Totality: total
Visibility: public export
compareNatDiag : (k : Nat) ->compareNatkk=EQ
Totality: total
Visibility: export
compareNatFlip : (m : Nat) -> (n : Nat) ->flipcompareNatmn=contra (compareNatmn)
Totality: total
Visibility: export
dataNotBothZero : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
LeftIsNotZero : NotBothZero (Sn) m
RightIsNotZero : NotBothZeron (Sm)

Hint: 
Uninhabited (NotBothZero00)
dataLTE : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
LTEZero : LTE0right
LTESucc : LTEleftright->LTE (Sleft) (Sright)

Hints:
AntisymmetricNatLTE
ConnexNatLTE
LinearOrderNatLTE
PartialOrderNatLTE
PreorderNatLTE
ReflexiveNatLTE
TransitiveNatLTE
Uninhabited (LTE (Sn) 0)
Uninhabited (LTEmn) =>Uninhabited (LTE (Sm) (Sn))
GTE : Nat->Nat->Type
Totality: total
Visibility: public export
LT : Nat->Nat->Type
Totality: total
Visibility: public export
dataView : LTmn->Type
  LT is defined in terms of LTE which makes it annoying to use.
This convenient view of allows us to avoid having to constantly
perform nested matches to obtain another LT subproof instead of
an LTE one.

Totality: total
Visibility: public export
Constructors:
LTZero : View (LTESuccLTEZero)
LTSucc : (lt : LTmn) ->View (LTESucclt)
view : (lt : LTmn) ->Viewlt
  Deconstruct an LT proof into either a base case or a further *LT*

Totality: total
Visibility: export
ltZero : LT0 (Sm)
  A convenient alias for trivial LT proofs

Totality: total
Visibility: export
GT : Nat->Nat->Type
Totality: total
Visibility: public export
succNotLTEzero : Not (LTE (Sm) 0)
Totality: total
Visibility: export
fromLteSucc : LTE (Sm) (Sn) ->LTEmn
Totality: total
Visibility: export
succNotLTEpred : Not (LTE (Sx) x)
Totality: total
Visibility: export
isLTE : (m : Nat) -> (n : Nat) ->Dec (LTEmn)
Totality: total
Visibility: public export
isGTE : (m : Nat) -> (n : Nat) ->Dec (GTEmn)
Totality: total
Visibility: public export
isLT : (m : Nat) -> (n : Nat) ->Dec (LTmn)
Totality: total
Visibility: public export
isGT : (m : Nat) -> (n : Nat) ->Dec (GTmn)
Totality: total
Visibility: public export
lteSuccRight : LTEnm->LTEn (Sm)
Totality: total
Visibility: export
lteSuccLeft : LTE (Sn) m->LTEnm
Totality: total
Visibility: export
lteAddRight : (n : Nat) ->LTEn (n+m)
Totality: total
Visibility: export
notLTEImpliesGT : Not (LTEab) ->GTab
Totality: total
Visibility: export
LTEImpliesNotGT : LTEab->Not (GTab)
Totality: total
Visibility: export
notLTImpliesGTE : Not (LTab) ->GTEab
Totality: total
Visibility: export
LTImpliesNotGTE : LTab->Not (GTEab)
Totality: total
Visibility: export
lte : Nat->Nat->Bool
Totality: total
Visibility: public export
gte : Nat->Nat->Bool
Totality: total
Visibility: public export
lt : Nat->Nat->Bool
Totality: total
Visibility: public export
gt : Nat->Nat->Bool
Totality: total
Visibility: public export
lteReflectsLTE : (k : Nat) -> (n : Nat) ->ltekn=True->LTEkn
Totality: total
Visibility: export
gteReflectsGTE : (k : Nat) -> (n : Nat) ->gtekn=True->GTEkn
Totality: total
Visibility: export
ltReflectsLT : (k : Nat) -> (n : Nat) ->ltkn=True->LTkn
Totality: total
Visibility: export
ltOpReflectsLT : (m : Nat) -> (n : Nat) ->So (m<n) ->LTmn
Totality: total
Visibility: public export
gtReflectsGT : (k : Nat) -> (n : Nat) ->gtkn=True->GTkn
Totality: total
Visibility: export
minimum : Nat->Nat->Nat
Totality: total
Visibility: public export
maximum : Nat->Nat->Nat
Totality: total
Visibility: public export
eqSucc : (0left : Nat) -> (0right : Nat) ->left=right->Sleft=Sright
Totality: total
Visibility: export
dataNonZero : Nat->Type
  A definition of non-zero with a better behaviour than `Not (x = Z)`
This is amenable to proof search and `NonZero Z` is more readily
detected as impossible by Idris

Totality: total
Visibility: public export
Constructor: 
SIsNonZero : NonZero (Sx)

Hint: 
Uninhabited (NonZero0)
SIsNotZ : Not (Sx=0)
Totality: total
Visibility: export
mod' : Nat->Nat->Nat->Nat
  Auxiliary function:
mod' fuel a b = a `mod` (S b)
assuming we have enough fuel

Totality: total
Visibility: public export
modNatNZ : Nat-> (y : Nat) -> (0_ : NonZeroy) ->Nat
Totality: total
Visibility: public export
modNat : Nat->Nat->Nat
Visibility: export
div' : Nat->Nat->Nat->Nat
  Auxiliary function:
div' fuel a b = a `div` (S b)
assuming we have enough fuel

Totality: total
Visibility: public export
divNatNZ : Nat-> (y : Nat) -> (0_ : NonZeroy) ->Nat
Totality: total
Visibility: public export
divNat : Nat->Nat->Nat
Visibility: export
divCeilNZ : Nat-> (y : Nat) -> (0_ : NonZeroy) ->Nat
Visibility: export
divCeil : Nat->Nat->Nat
Visibility: export
divmod' : Nat->Nat->Nat-> (Nat, Nat)
Totality: total
Visibility: public export
divmodNatNZ : Nat-> (y : Nat) -> (0_ : NonZeroy) -> (Nat, Nat)
Totality: total
Visibility: public export
gcd : (a : Nat) -> (b : Nat) -> {auto0_ : NotBothZeroab} ->Nat
Visibility: export
lcm : Nat->Nat->Nat
Visibility: export
dataCmpNat : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
CmpLT : (y : Nat) ->CmpNatx (x+Sy)
CmpEQ : CmpNatxx
CmpGT : (x : Nat) ->CmpNat (y+Sx) y
cmp : (x : Nat) -> (y : Nat) ->CmpNatxy
Totality: total
Visibility: export
plusZeroLeftNeutral : (right : Nat) ->0+right=right
Totality: total
Visibility: export
plusZeroRightNeutral : (left : Nat) ->left+0=left
Totality: total
Visibility: export
plusSuccRightSucc : (left : Nat) -> (right : Nat) ->S (left+right) =left+Sright
Totality: total
Visibility: export
plusCommutative : (left : Nat) -> (right : Nat) ->left+right=right+left
Totality: total
Visibility: export
plusAssociative : (left : Nat) -> (centre : Nat) -> (right : Nat) ->left+ (centre+right) = (left+centre) +right
Totality: total
Visibility: export
plusConstantRight : (left : Nat) -> (right : Nat) -> (c : Nat) ->left=right->left+c=right+c
Totality: total
Visibility: export
plusConstantLeft : (left : Nat) -> (right : Nat) -> (c : Nat) ->left=right->c+left=c+right
Totality: total
Visibility: export
plusOneSucc : (right : Nat) ->1+right=Sright
Totality: total
Visibility: export
plusLeftCancel : (left : Nat) -> (right : Nat) -> (right' : Nat) ->left+right=left+right'->right=right'
Totality: total
Visibility: export
plusRightCancel : (left : Nat) -> (left' : Nat) -> (right : Nat) ->left+right=left'+right->left=left'
Totality: total
Visibility: export
plusLeftLeftRightZero : (left : Nat) -> (right : Nat) ->left+right=left->right=0
Totality: total
Visibility: export
plusLteMonotoneRight : (p : Nat) -> (q : Nat) -> (r : Nat) ->LTEqr->LTE (q+p) (r+p)
Totality: total
Visibility: export
plusLteMonotoneLeft : (p : Nat) -> (q : Nat) -> (r : Nat) ->LTEqr->LTE (p+q) (p+r)
Totality: total
Visibility: export
plusLteMonotone : LTEmn->LTEpq->LTE (m+p) (n+q)
Totality: total
Visibility: export
multZeroLeftZero : (right : Nat) ->0*right=0
Totality: total
Visibility: export
multZeroRightZero : (left : Nat) ->left*0=0
Totality: total
Visibility: export
multRightSuccPlus : (left : Nat) -> (right : Nat) ->left*Sright=left+ (left*right)
Totality: total
Visibility: export
multLeftSuccPlus : (left : Nat) -> (right : Nat) ->Sleft*right=right+ (left*right)
Totality: total
Visibility: export
multCommutative : (left : Nat) -> (right : Nat) ->left*right=right*left
Totality: total
Visibility: export
multDistributesOverPlusLeft : (left : Nat) -> (centre : Nat) -> (right : Nat) -> (left+centre) *right= (left*right) + (centre*right)
Totality: total
Visibility: export
multDistributesOverPlusRight : (left : Nat) -> (centre : Nat) -> (right : Nat) ->left* (centre+right) = (left*centre) + (left*right)
Totality: total
Visibility: export
multAssociative : (left : Nat) -> (centre : Nat) -> (right : Nat) ->left* (centre*right) = (left*centre) *right
Totality: total
Visibility: export
multOneLeftNeutral : (right : Nat) ->1*right=right
Totality: total
Visibility: export
multOneRightNeutral : (left : Nat) ->left*1=left
Totality: total
Visibility: export
minusSuccSucc : (left : Nat) -> (right : Nat) ->minus (Sleft) (Sright) =minusleftright
Totality: total
Visibility: export
minusZeroLeft : (right : Nat) ->minus0right=0
Totality: total
Visibility: export
minusZeroRight : (left : Nat) ->minusleft0=left
Totality: total
Visibility: export
minusZeroN : (n : Nat) ->0=minusnn
Totality: total
Visibility: export
minusOneSuccN : (n : Nat) ->1=minus (Sn) n
Totality: total
Visibility: export
minusSuccOne : (n : Nat) ->minus (Sn) 1=n
Totality: total
Visibility: export
minusPlusZero : (n : Nat) -> (m : Nat) ->minusn (n+m) =0
Totality: total
Visibility: export
minusPos : LTmn->LT0 (minusnm)
Totality: total
Visibility: export
minusLteMonotone : LTEmn->LTE (minusmp) (minusnp)
Totality: total
Visibility: export
minusLtMonotone : LTmn->LTpn->LT (minusmp) (minusnp)
Totality: total
Visibility: export
minusPlus : (m : Nat) ->minus (plusmn) m=n
Totality: total
Visibility: public export
plusMinusLte : (n : Nat) -> (m : Nat) ->LTEnm->minusmn+n=m
Totality: total
Visibility: export
minusMinusMinusPlus : (left : Nat) -> (centre : Nat) -> (right : Nat) ->minus (minusleftcentre) right=minusleft (centre+right)
Totality: total
Visibility: export
plusMinusLeftCancel : (left : Nat) -> (right : Nat) -> (right' : Nat) ->minus (left+right) (left+right') =minusrightright'
Totality: total
Visibility: export
multDistributesOverMinusLeft : (left : Nat) -> (centre : Nat) -> (right : Nat) ->minusleftcentre*right=minus (left*right) (centre*right)
Totality: total
Visibility: export
multDistributesOverMinusRight : (left : Nat) -> (centre : Nat) -> (right : Nat) ->left*minuscentreright=minus (left*centre) (left*right)
Totality: total
Visibility: export
zeroMultEitherZero : (a : Nat) -> (b : Nat) ->a*b=0->Either (a=0) (b=0)
Totality: total
Visibility: export
maximumAssociative : (l : Nat) -> (c : Nat) -> (r : Nat) ->maximuml (maximumcr) =maximum (maximumlc) r
Totality: total
Visibility: export
maximumCommutative : (l : Nat) -> (r : Nat) ->maximumlr=maximumrl
Totality: total
Visibility: export
maximumIdempotent : (n : Nat) ->maximumnn=n
Totality: total
Visibility: export
maximumLeftUpperBound : (m : Nat) -> (n : Nat) ->LTEm (maximummn)
Totality: total
Visibility: export
maximumRightUpperBound : (m : Nat) -> (n : Nat) ->LTEn (maximummn)
Totality: total
Visibility: export
minimumAssociative : (l : Nat) -> (c : Nat) -> (r : Nat) ->minimuml (minimumcr) =minimum (minimumlc) r
Totality: total
Visibility: export
minimumCommutative : (l : Nat) -> (r : Nat) ->minimumlr=minimumrl
Totality: total
Visibility: export
minimumIdempotent : (n : Nat) ->minimumnn=n
Totality: total
Visibility: export
minimumZeroZeroLeft : (left : Nat) ->minimumleft0=0
Totality: total
Visibility: export
minimumSuccSucc : (left : Nat) -> (right : Nat) ->minimum (Sleft) (Sright) =S (minimumleftright)
Totality: total
Visibility: export
maximumZeroNLeft : (left : Nat) ->maximumleft0=left
Totality: total
Visibility: export
maximumSuccSucc : (left : Nat) -> (right : Nat) ->S (maximumleftright) =maximum (Sleft) (Sright)
Totality: total
Visibility: export
sucMaxL : (l : Nat) ->maximum (Sl) l=Sl
Totality: total
Visibility: export
sucMaxR : (l : Nat) ->maximuml (Sl) =Sl
Totality: total
Visibility: export
sucMinL : (l : Nat) ->minimum (Sl) l=l
Totality: total
Visibility: export
sucMinR : (l : Nat) ->minimuml (Sl) =l
Totality: total
Visibility: export
\ No newline at end of file +

Data.Nat(source)

Reexports

importpublic Control.Relation
importpublic Control.Ord
importpublic Control.Order
importpublic Control.Function

Definitions

isZero : Nat->Bool
Totality: total
Visibility: public export
isSucc : Nat->Bool
Totality: total
Visibility: public export
dataIsSucc : Nat->Type
Totality: total
Visibility: public export
Constructor: 
ItIsSucc : IsSucc (Sn)

Hint: 
Uninhabited (IsSucc0)
isItSucc : (n : Nat) ->Dec (IsSuccn)
Totality: total
Visibility: public export
power : Nat->Nat->Nat
Totality: total
Visibility: public export
hyper : Nat->Nat->Nat->Nat
Totality: total
Visibility: public export
pred : Nat->Nat
Totality: total
Visibility: public export
compareNatDiag : (k : Nat) ->compareNatkk=EQ
Totality: total
Visibility: export
compareNatFlip : (m : Nat) -> (n : Nat) ->flipcompareNatmn=contra (compareNatmn)
Totality: total
Visibility: export
dataNotBothZero : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
LeftIsNotZero : NotBothZero (Sn) m
RightIsNotZero : NotBothZeron (Sm)

Hint: 
Uninhabited (NotBothZero00)
dataLTE : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
LTEZero : LTE0right
LTESucc : LTEleftright->LTE (Sleft) (Sright)

Hints:
AntisymmetricNatLTE
ConnexNatLTE
LinearOrderNatLTE
PartialOrderNatLTE
PreorderNatLTE
ReflexiveNatLTE
TransitiveNatLTE
Uninhabited (LTE (Sn) 0)
Uninhabited (LTEmn) =>Uninhabited (LTE (Sm) (Sn))
GTE : Nat->Nat->Type
Totality: total
Visibility: public export
LT : Nat->Nat->Type
Totality: total
Visibility: public export
dataView : LTmn->Type
  LT is defined in terms of LTE which makes it annoying to use.
This convenient view of allows us to avoid having to constantly
perform nested matches to obtain another LT subproof instead of
an LTE one.

Totality: total
Visibility: public export
Constructors:
LTZero : View (LTESuccLTEZero)
LTSucc : (lt : LTmn) ->View (LTESucclt)
view : (lt : LTmn) ->Viewlt
  Deconstruct an LT proof into either a base case or a further *LT*

Totality: total
Visibility: export
ltZero : LT0 (Sm)
  A convenient alias for trivial LT proofs

Totality: total
Visibility: export
GT : Nat->Nat->Type
Totality: total
Visibility: public export
succNotLTEzero : Not (LTE (Sm) 0)
Totality: total
Visibility: export
fromLteSucc : LTE (Sm) (Sn) ->LTEmn
Totality: total
Visibility: export
succNotLTEpred : Not (LTE (Sx) x)
Totality: total
Visibility: export
isLTE : (m : Nat) -> (n : Nat) ->Dec (LTEmn)
Totality: total
Visibility: public export
isGTE : (m : Nat) -> (n : Nat) ->Dec (GTEmn)
Totality: total
Visibility: public export
isLT : (m : Nat) -> (n : Nat) ->Dec (LTmn)
Totality: total
Visibility: public export
isGT : (m : Nat) -> (n : Nat) ->Dec (GTmn)
Totality: total
Visibility: public export
lteSuccRight : LTEnm->LTEn (Sm)
Totality: total
Visibility: export
lteSuccLeft : LTE (Sn) m->LTEnm
Totality: total
Visibility: export
lteAddRight : (n : Nat) ->LTEn (n+m)
Totality: total
Visibility: export
notLTEImpliesGT : Not (LTEab) ->GTab
Totality: total
Visibility: export
LTEImpliesNotGT : LTEab->Not (GTab)
Totality: total
Visibility: export
notLTImpliesGTE : Not (LTab) ->GTEab
Totality: total
Visibility: export
LTImpliesNotGTE : LTab->Not (GTEab)
Totality: total
Visibility: export
lte : Nat->Nat->Bool
Totality: total
Visibility: public export
gte : Nat->Nat->Bool
Totality: total
Visibility: public export
lt : Nat->Nat->Bool
Totality: total
Visibility: public export
gt : Nat->Nat->Bool
Totality: total
Visibility: public export
lteReflectsLTE : (k : Nat) -> (n : Nat) ->ltekn=True->LTEkn
Totality: total
Visibility: export
gteReflectsGTE : (k : Nat) -> (n : Nat) ->gtekn=True->GTEkn
Totality: total
Visibility: export
ltReflectsLT : (k : Nat) -> (n : Nat) ->ltkn=True->LTkn
Totality: total
Visibility: export
ltOpReflectsLT : (m : Nat) -> (n : Nat) ->So (m<n) ->LTmn
Totality: total
Visibility: public export
gtReflectsGT : (k : Nat) -> (n : Nat) ->gtkn=True->GTkn
Totality: total
Visibility: export
minimum : Nat->Nat->Nat
Totality: total
Visibility: public export
maximum : Nat->Nat->Nat
Totality: total
Visibility: public export
eqSucc : (0left : Nat) -> (0right : Nat) ->left=right->Sleft=Sright
Totality: total
Visibility: export
dataNonZero : Nat->Type
  A definition of non-zero with a better behaviour than `Not (x = Z)`
This is amenable to proof search and `NonZero Z` is more readily
detected as impossible by Idris

Totality: total
Visibility: public export
Constructor: 
SIsNonZero : NonZero (Sx)

Hint: 
Uninhabited (NonZero0)
SIsNotZ : Not (Sx=0)
Totality: total
Visibility: export
mod' : Nat->Nat->Nat->Nat
  Auxiliary function:
mod' fuel a b = a `mod` (S b)
assuming we have enough fuel

Totality: total
Visibility: public export
modNatNZ : Nat-> (y : Nat) -> (0_ : NonZeroy) ->Nat
Totality: total
Visibility: public export
modNat : Nat->Nat->Nat
Visibility: export
div' : Nat->Nat->Nat->Nat
  Auxiliary function:
div' fuel a b = a `div` (S b)
assuming we have enough fuel

Totality: total
Visibility: public export
divNatNZ : Nat-> (y : Nat) -> (0_ : NonZeroy) ->Nat
Totality: total
Visibility: public export
divNat : Nat->Nat->Nat
Visibility: export
divCeilNZ : Nat-> (y : Nat) -> (0_ : NonZeroy) ->Nat
Visibility: export
divCeil : Nat->Nat->Nat
Visibility: export
divmod' : Nat->Nat->Nat-> (Nat, Nat)
Totality: total
Visibility: public export
divmodNatNZ : Nat-> (y : Nat) -> (0_ : NonZeroy) -> (Nat, Nat)
Totality: total
Visibility: public export
gcd : (a : Nat) -> (b : Nat) -> {auto0_ : NotBothZeroab} ->Nat
Visibility: export
lcm : Nat->Nat->Nat
Visibility: export
dataCmpNat : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
CmpLT : (y : Nat) ->CmpNatx (x+Sy)
CmpEQ : CmpNatxx
CmpGT : (x : Nat) ->CmpNat (y+Sx) y
cmp : (x : Nat) -> (y : Nat) ->CmpNatxy
Totality: total
Visibility: export
plusZeroLeftNeutral : (right : Nat) ->0+right=right
Totality: total
Visibility: export
plusZeroRightNeutral : (left : Nat) ->left+0=left
Totality: total
Visibility: export
plusSuccRightSucc : (left : Nat) -> (right : Nat) ->S (left+right) =left+Sright
Totality: total
Visibility: export
plusCommutative : (left : Nat) -> (right : Nat) ->left+right=right+left
Totality: total
Visibility: export
plusAssociative : (left : Nat) -> (centre : Nat) -> (right : Nat) ->left+ (centre+right) = (left+centre) +right
Totality: total
Visibility: export
plusConstantRight : (left : Nat) -> (right : Nat) -> (c : Nat) ->left=right->left+c=right+c
Totality: total
Visibility: export
plusConstantLeft : (left : Nat) -> (right : Nat) -> (c : Nat) ->left=right->c+left=c+right
Totality: total
Visibility: export
plusOneSucc : (right : Nat) ->1+right=Sright
Totality: total
Visibility: export
plusLeftCancel : (left : Nat) -> (right : Nat) -> (right' : Nat) ->left+right=left+right'->right=right'
Totality: total
Visibility: export
plusRightCancel : (left : Nat) -> (left' : Nat) -> (right : Nat) ->left+right=left'+right->left=left'
Totality: total
Visibility: export
plusLeftLeftRightZero : (left : Nat) -> (right : Nat) ->left+right=left->right=0
Totality: total
Visibility: export
plusLteMonotoneRight : (p : Nat) -> (q : Nat) -> (r : Nat) ->LTEqr->LTE (q+p) (r+p)
Totality: total
Visibility: export
plusLteMonotoneLeft : (p : Nat) -> (q : Nat) -> (r : Nat) ->LTEqr->LTE (p+q) (p+r)
Totality: total
Visibility: export
plusLteMonotone : LTEmn->LTEpq->LTE (m+p) (n+q)
Totality: total
Visibility: export
multZeroLeftZero : (right : Nat) ->0*right=0
Totality: total
Visibility: export
multZeroRightZero : (left : Nat) ->left*0=0
Totality: total
Visibility: export
multRightSuccPlus : (left : Nat) -> (right : Nat) ->left*Sright=left+ (left*right)
Totality: total
Visibility: export
multLeftSuccPlus : (left : Nat) -> (right : Nat) ->Sleft*right=right+ (left*right)
Totality: total
Visibility: export
multCommutative : (left : Nat) -> (right : Nat) ->left*right=right*left
Totality: total
Visibility: export
multDistributesOverPlusLeft : (left : Nat) -> (centre : Nat) -> (right : Nat) -> (left+centre) *right= (left*right) + (centre*right)
Totality: total
Visibility: export
multDistributesOverPlusRight : (left : Nat) -> (centre : Nat) -> (right : Nat) ->left* (centre+right) = (left*centre) + (left*right)
Totality: total
Visibility: export
multAssociative : (left : Nat) -> (centre : Nat) -> (right : Nat) ->left* (centre*right) = (left*centre) *right
Totality: total
Visibility: export
multOneLeftNeutral : (right : Nat) ->1*right=right
Totality: total
Visibility: export
multOneRightNeutral : (left : Nat) ->left*1=left
Totality: total
Visibility: export
minusSuccSucc : (left : Nat) -> (right : Nat) ->minus (Sleft) (Sright) =minusleftright
Totality: total
Visibility: export
minusZeroLeft : (right : Nat) ->minus0right=0
Totality: total
Visibility: export
minusZeroRight : (left : Nat) ->minusleft0=left
Totality: total
Visibility: export
minusZeroN : (n : Nat) ->0=minusnn
Totality: total
Visibility: export
minusOneSuccN : (n : Nat) ->1=minus (Sn) n
Totality: total
Visibility: export
minusSuccOne : (n : Nat) ->minus (Sn) 1=n
Totality: total
Visibility: export
minusPlusZero : (n : Nat) -> (m : Nat) ->minusn (n+m) =0
Totality: total
Visibility: export
minusPos : LTmn->LT0 (minusnm)
Totality: total
Visibility: export
minusLteMonotone : LTEmn->LTE (minusmp) (minusnp)
Totality: total
Visibility: export
minusLtMonotone : LTmn->LTpn->LT (minusmp) (minusnp)
Totality: total
Visibility: export
minusPlus : (m : Nat) ->minus (plusmn) m=n
Totality: total
Visibility: public export
plusMinusLte : (n : Nat) -> (m : Nat) ->LTEnm->minusmn+n=m
Totality: total
Visibility: export
minusMinusMinusPlus : (left : Nat) -> (centre : Nat) -> (right : Nat) ->minus (minusleftcentre) right=minusleft (centre+right)
Totality: total
Visibility: export
plusMinusLeftCancel : (left : Nat) -> (right : Nat) -> (right' : Nat) ->minus (left+right) (left+right') =minusrightright'
Totality: total
Visibility: export
multDistributesOverMinusLeft : (left : Nat) -> (centre : Nat) -> (right : Nat) ->minusleftcentre*right=minus (left*right) (centre*right)
Totality: total
Visibility: export
multDistributesOverMinusRight : (left : Nat) -> (centre : Nat) -> (right : Nat) ->left*minuscentreright=minus (left*centre) (left*right)
Totality: total
Visibility: export
zeroMultEitherZero : (a : Nat) -> (b : Nat) ->a*b=0->Either (a=0) (b=0)
Totality: total
Visibility: export
maximumAssociative : (l : Nat) -> (c : Nat) -> (r : Nat) ->maximuml (maximumcr) =maximum (maximumlc) r
Totality: total
Visibility: export
maximumCommutative : (l : Nat) -> (r : Nat) ->maximumlr=maximumrl
Totality: total
Visibility: export
maximumIdempotent : (n : Nat) ->maximumnn=n
Totality: total
Visibility: export
maximumLeftUpperBound : (m : Nat) -> (n : Nat) ->LTEm (maximummn)
Totality: total
Visibility: export
maximumRightUpperBound : (m : Nat) -> (n : Nat) ->LTEn (maximummn)
Totality: total
Visibility: export
minimumAssociative : (l : Nat) -> (c : Nat) -> (r : Nat) ->minimuml (minimumcr) =minimum (minimumlc) r
Totality: total
Visibility: export
minimumCommutative : (l : Nat) -> (r : Nat) ->minimumlr=minimumrl
Totality: total
Visibility: export
minimumIdempotent : (n : Nat) ->minimumnn=n
Totality: total
Visibility: export
minimumZeroZeroLeft : (left : Nat) ->minimumleft0=0
Totality: total
Visibility: export
minimumSuccSucc : (left : Nat) -> (right : Nat) ->minimum (Sleft) (Sright) =S (minimumleftright)
Totality: total
Visibility: export
maximumZeroNLeft : (left : Nat) ->maximumleft0=left
Totality: total
Visibility: export
maximumSuccSucc : (left : Nat) -> (right : Nat) ->S (maximumleftright) =maximum (Sleft) (Sright)
Totality: total
Visibility: export
sucMaxL : (l : Nat) ->maximum (Sl) l=Sl
Totality: total
Visibility: export
sucMaxR : (l : Nat) ->maximuml (Sl) =Sl
Totality: total
Visibility: export
sucMinL : (l : Nat) ->minimum (Sl) l=l
Totality: total
Visibility: export
sucMinR : (l : Nat) ->minimuml (Sl) =l
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Primitives.Interpolation.html b/base/docs/Data.Primitives.Interpolation.html index 3e96dc8777..97740b25bd 100644 --- a/base/docs/Data.Primitives.Interpolation.html +++ b/base/docs/Data.Primitives.Interpolation.html @@ -61,4 +61,4 @@ -

Data.Primitives.Interpolation(source)

Definitions

\ No newline at end of file +

Data.Primitives.Interpolation(source)

Definitions

\ No newline at end of file diff --git a/base/docs/Data.Primitives.Views.html b/base/docs/Data.Primitives.Views.html index b0b515878b..c5ca413b27 100644 --- a/base/docs/Data.Primitives.Views.html +++ b/base/docs/Data.Primitives.Views.html @@ -61,4 +61,4 @@ -

Data.Primitives.Views(source)

Definitions

dataDivides : Integer->Integer->Type
  View for expressing a number as a multiplication + a remainder

Totality: total
Visibility: public export
Constructors:
DivByZero : Dividesx0
DivBy : (div : Integer) -> (rem : Integer) -> (rem>=0) && Delay (rem<d) =True->Divides ((d*div) +rem) d
divides : (val : Integer) -> (d : Integer) ->Dividesvald
  Covering function for the `Divides` view

Totality: total
Visibility: public export
dataIntegerRec : Integer->Type
  View for recursion over Integers

Totality: total
Visibility: public export
Constructors:
IntegerZ : IntegerRec0
IntegerSucc : IntegerRec (-1+n) ->IntegerRecn
IntegerPred : IntegerRec (1+negaten) ->IntegerRec (negaten)
integerRec : (x : Integer) ->IntegerRecx
  Covering function for `IntegerRec`

Totality: total
Visibility: public export
dataDivides : Int->Int->Type
  View for expressing a number as a multiplication + a remainder

Totality: total
Visibility: public export
Constructors:
DivByZero : Dividesx0
DivBy : (div : Int) -> (rem : Int) -> (rem>=0) && Delay (rem<d) =True->Divides ((d*div) +rem) d
divides : (val : Int) -> (d : Int) ->Dividesvald
  Covering function for the `Divides` view

Totality: total
Visibility: public export
dataIntRec : Int->Type
  View for recursion over Ints

Totality: total
Visibility: public export
Constructors:
IntZ : IntRec0
IntSucc : IntRec (-1+n) ->IntRecn
IntPred : IntRec (1+negaten) ->IntRec (negaten)
intRec : (x : Int) ->IntRecx
  Covering function for `IntRec`

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Primitives.Views(source)

Definitions

dataDivides : Integer->Integer->Type
  View for expressing a number as a multiplication + a remainder

Totality: total
Visibility: public export
Constructors:
DivByZero : Dividesx0
DivBy : (div : Integer) -> (rem : Integer) -> (rem>=0) && Delay (rem<d) =True->Divides ((d*div) +rem) d
divides : (val : Integer) -> (d : Integer) ->Dividesvald
  Covering function for the `Divides` view

Totality: total
Visibility: public export
dataIntegerRec : Integer->Type
  View for recursion over Integers

Totality: total
Visibility: public export
Constructors:
IntegerZ : IntegerRec0
IntegerSucc : IntegerRec (-1+n) ->IntegerRecn
IntegerPred : IntegerRec (1+negaten) ->IntegerRec (negaten)
integerRec : (x : Integer) ->IntegerRecx
  Covering function for `IntegerRec`

Totality: total
Visibility: public export
dataDivides : Int->Int->Type
  View for expressing a number as a multiplication + a remainder

Totality: total
Visibility: public export
Constructors:
DivByZero : Dividesx0
DivBy : (div : Int) -> (rem : Int) -> (rem>=0) && Delay (rem<d) =True->Divides ((d*div) +rem) d
divides : (val : Int) -> (d : Int) ->Dividesvald
  Covering function for the `Divides` view

Totality: total
Visibility: public export
dataIntRec : Int->Type
  View for recursion over Ints

Totality: total
Visibility: public export
Constructors:
IntZ : IntRec0
IntSucc : IntRec (-1+n) ->IntRecn
IntPred : IntRec (1+negaten) ->IntRec (negaten)
intRec : (x : Int) ->IntRecx
  Covering function for `IntRec`

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Ref.html b/base/docs/Data.Ref.html index 05d3816c8b..4adbc84def 100644 --- a/base/docs/Data.Ref.html +++ b/base/docs/Data.Ref.html @@ -61,4 +61,4 @@ -

Data.Ref(source)

Reexports

importpublic Data.IORef
importpublic Control.Monad.ST

Definitions

interfaceRef : (Type->Type) -> (Type->Type) ->Type
Parameters: m, r
Constraints: Monad m
Methods:
newRef : a->m (ra)
readRef : ra->ma
writeRef : ra->a->m ()
modifyRef : (a->a) ->ra->ma
  Updates a value and returns the previous value

Implementations:
HasIOio=>RefioIORef
Ref (STs) (STRefs)
newRef : Refmr=>a->m (ra)
Totality: total
Visibility: public export
readRef : Refmr=>ra->ma
Totality: total
Visibility: public export
writeRef : Refmr=>ra->a->m ()
Totality: total
Visibility: public export
modifyRef : Refmr=> (a->a) ->ra->ma
  Updates a value and returns the previous value

Totality: total
Visibility: public export
modifyRef_ : Refmr=> (a->a) ->ra->m ()
Totality: total
Visibility: public export
ForRef : Refmr=>Monadm=>ra->MonadStateam
Totality: total
Visibility: export
\ No newline at end of file +

Data.Ref(source)

Reexports

importpublic Data.IORef
importpublic Control.Monad.ST

Definitions

interfaceRef : (Type->Type) -> (Type->Type) ->Type
Parameters: m, r
Constraints: Monad m
Methods:
newRef : a->m (ra)
readRef : ra->ma
writeRef : ra->a->m ()
modifyRef : (a->a) ->ra->ma
  Updates a value and returns the previous value

Implementations:
HasIOio=>RefioIORef
Ref (STs) (STRefs)
newRef : Refmr=>a->m (ra)
Totality: total
Visibility: public export
readRef : Refmr=>ra->ma
Totality: total
Visibility: public export
writeRef : Refmr=>ra->a->m ()
Totality: total
Visibility: public export
modifyRef : Refmr=> (a->a) ->ra->ma
  Updates a value and returns the previous value

Totality: total
Visibility: public export
modifyRef_ : Refmr=> (a->a) ->ra->m ()
Totality: total
Visibility: public export
ForRef : Refmr=>Monadm=>ra->MonadStateam
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Rel.html b/base/docs/Data.Rel.html index 653a7c1041..d068846f38 100644 --- a/base/docs/Data.Rel.html +++ b/base/docs/Data.Rel.html @@ -61,4 +61,4 @@ -

Data.Rel(source)

Definitions

Rel : VectnType->Type
  Build an n-ary relation type from a Vect of Types

Totality: total
Visibility: public export
All : (ts : VectnType) ->Relts->Type
  Universal quantification of a n-ary Relation over its
arguments to build a (function) type from a `Rel` type

```
λ> All [Nat,Nat] LTE
(x : Nat) -> (x : Nat) -> LTE x x
```

Totality: total
Visibility: public export
Ex : (ts : VectnType) ->Relts->Type
  Existential quantification of a n-ary relation over its
arguments to build a dependent pair (eg. Sigma type).

Given a (type of) relation `p : [t_1, t_2 ... t_n] x r` where `t_i` and `r` are
types, `Ex` builds the type `Σ (x_1 : t_1). Σ (x_2 : t_2) ... . r`
For example:
```
λ> Ex [Nat,Nat] LTE
(x : Nat ** (x : Nat ** LTE x x))
```
Which is the type of a pair of natural numbers along with a proof that the first
is smaller or equal than the second.

Totality: total
Visibility: public export
liftRel : (ts : VectnType) ->Relts-> (Type->Type) ->Type
  Map a type-level function over the co-domain of a n-ary Relation

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Rel(source)

Definitions

Rel : VectnType->Type
  Build an n-ary relation type from a Vect of Types

Totality: total
Visibility: public export
All : (ts : VectnType) ->Relts->Type
  Universal quantification of a n-ary Relation over its
arguments to build a (function) type from a `Rel` type

```
λ> All [Nat,Nat] LTE
(x : Nat) -> (x : Nat) -> LTE x x
```

Totality: total
Visibility: public export
Ex : (ts : VectnType) ->Relts->Type
  Existential quantification of a n-ary relation over its
arguments to build a dependent pair (eg. Sigma type).

Given a (type of) relation `p : [t_1, t_2 ... t_n] x r` where `t_i` and `r` are
types, `Ex` builds the type `Σ (x_1 : t_1). Σ (x_2 : t_2) ... . r`
For example:
```
λ> Ex [Nat,Nat] LTE
(x : Nat ** (x : Nat ** LTE x x))
```
Which is the type of a pair of natural numbers along with a proof that the first
is smaller or equal than the second.

Totality: total
Visibility: public export
liftRel : (ts : VectnType) ->Relts-> (Type->Type) ->Type
  Map a type-level function over the co-domain of a n-ary Relation

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Singleton.html b/base/docs/Data.Singleton.html index 09ee014fa8..f768ca7d34 100644 --- a/base/docs/Data.Singleton.html +++ b/base/docs/Data.Singleton.html @@ -61,4 +61,4 @@ -

Data.Singleton(source)

Definitions

dataSingleton : a->Type
  The type containing only a particular value.
This is useful for calculating type-level information at runtime.

Totality: total
Visibility: public export
Constructor: 
Val : (x : a) ->Singletonx
unVal : Singletonx->a
Visibility: public export
.unVal : Singletonx->a
Visibility: public export
pure : (x : a) ->Singletonx
Visibility: public export
(<*>) : Singletonf->Singletonx->Singleton (fx)
Visibility: public export
Fixity Declaration: infixl operator, level 3
\ No newline at end of file +

Data.Singleton(source)

Definitions

dataSingleton : a->Type
  The type containing only a particular value.
This is useful for calculating type-level information at runtime.

Totality: total
Visibility: public export
Constructor: 
Val : (x : a) ->Singletonx
unVal : Singletonx->a
Visibility: public export
.unVal : Singletonx->a
Visibility: public export
pure : (x : a) ->Singletonx
Visibility: public export
(<*>) : Singletonf->Singletonx->Singleton (fx)
Visibility: public export
Fixity Declaration: infixl operator, level 3
\ No newline at end of file diff --git a/base/docs/Data.SnocList.Elem.html b/base/docs/Data.SnocList.Elem.html index 31e6fb529e..583452c33a 100644 --- a/base/docs/Data.SnocList.Elem.html +++ b/base/docs/Data.SnocList.Elem.html @@ -61,4 +61,4 @@ -

Data.SnocList.Elem(source)

Definitions

dataElem : a->SnocLista->Type
  A proof that some element is found in a list.

Totality: total
Visibility: public export
Constructors:
Here : Elemx (sx:<x)
  A proof that the element is at the head of the list
There : Elemxsx->Elemx (sx:<y)
  A proof that the element is in the tail of the list

Hints:
DecEq (Elemxsx)
InjectiveThere
Uninhabited (Here=Theree)
Uninhabited (Theree=Here)
Uninhabited (Elemx [<])
neitherHereNorThere : Not (x=y) ->Not (Elemxsx) ->Not (Elemx (sx:<y))
  An item not in the head and not in the tail is not in the list at all.

Visibility: public export
isElem : DecEqa=> (x : a) -> (sx : SnocLista) ->Dec (Elemxsx)
  Check whether the given element is a member of the given list.

Visibility: public export
get : (sx : SnocLista) ->Elemxsx->a
  Get the element at the given position.

Visibility: public export
lookup : (sx : SnocLista) ->Elemxsx->Singletonx
  Get the element at the given position, with proof that it is the desired element.

Visibility: public export
dropElem : (sx : SnocLista) ->Elemxsx->SnocLista
  Remove the element at the given position.

Visibility: public export
elemToNat : Elemxsx->Nat
  Erase the indices, returning the numeric position of the element

Visibility: public export
indexElem : Nat-> (sx : SnocLista) ->Maybe (x : a**Elemxsx)
  Find the element with a proof at a given position (in reverse), if it is valid

Visibility: public export
elemMap : (0f : (a->b)) ->Elemxsx->Elem (fx) (mapfsx)
  Lift the membership proof to a mapped list

Visibility: export
\ No newline at end of file +

Data.SnocList.Elem(source)

Definitions

dataElem : a->SnocLista->Type
  A proof that some element is found in a list.

Totality: total
Visibility: public export
Constructors:
Here : Elemx (sx:<x)
  A proof that the element is at the head of the list
There : Elemxsx->Elemx (sx:<y)
  A proof that the element is in the tail of the list

Hints:
DecEq (Elemxsx)
InjectiveThere
Uninhabited (Here=Theree)
Uninhabited (Theree=Here)
Uninhabited (Elemx [<])
neitherHereNorThere : Not (x=y) ->Not (Elemxsx) ->Not (Elemx (sx:<y))
  An item not in the head and not in the tail is not in the list at all.

Visibility: public export
isElem : DecEqa=> (x : a) -> (sx : SnocLista) ->Dec (Elemxsx)
  Check whether the given element is a member of the given list.

Visibility: public export
get : (sx : SnocLista) ->Elemxsx->a
  Get the element at the given position.

Visibility: public export
lookup : (sx : SnocLista) ->Elemxsx->Singletonx
  Get the element at the given position, with proof that it is the desired element.

Visibility: public export
dropElem : (sx : SnocLista) ->Elemxsx->SnocLista
  Remove the element at the given position.

Visibility: public export
elemToNat : Elemxsx->Nat
  Erase the indices, returning the numeric position of the element

Visibility: public export
indexElem : Nat-> (sx : SnocLista) ->Maybe (x : a**Elemxsx)
  Find the element with a proof at a given position (in reverse), if it is valid

Visibility: public export
elemMap : (0f : (a->b)) ->Elemxsx->Elem (fx) (mapfsx)
  Lift the membership proof to a mapped list

Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.SnocList.Operations.html b/base/docs/Data.SnocList.Operations.html index 005e242b7f..6be74c704e 100644 --- a/base/docs/Data.SnocList.Operations.html +++ b/base/docs/Data.SnocList.Operations.html @@ -64,4 +64,4 @@

Data.SnocList.Operations(source)

Operations on `SnocList`s, analogous to the `List` ones.
 Depending on your style of programming, these might cause
 ambiguities, so import with care
-

Definitions

takeTail : Nat->SnocLista->SnocLista
  Take `n` last elements from `sx`, returning the whole list if
`n` >= length `sx`.

@ n the number of elements to take
@ sx the snoc-list to take the elements from

Totality: total
Visibility: public export
dropTail : Nat->SnocLista->SnocLista
  Remove `n` last elements from `xs`, returning the empty list if
`n >= length xs`

@ n the number of elements to remove
@ xs the list to drop the elements from

Totality: total
Visibility: public export
concatDropTailTakeTail : (n : Nat) -> (sx : SnocLista) ->dropTailnsx++takeTailnsx=sx
Totality: total
Visibility: public export
splitOntoLeft : Nat->SnocLista->Lista-> (SnocLista, Lista)
  Shift `n` elements from the beginning of `xs` to the end of `sx`,
returning the same lists if `n` >= length `xs`.

@ n the number of elements to take
@ sx the snoc-list to append onto
@ xs the list to take the elements from

Totality: total
Visibility: public export
splitOntoRight : Nat->SnocLista->Lista-> (SnocLista, Lista)
  Shift `n` elements from the end of `sx` to the beginning of `xs`,
returning the same lists if `n` >= length `sx`.

@ n the number of elements to take
@ sx the snoc-list to take the elements from
@ xs the list to append onto

Totality: total
Visibility: public export
splitOntoRightInvariant : (n : Nat) -> (sx : SnocLista) -> (xs : Lista) ->fst (splitOntoRightnsxxs) <><snd (splitOntoRightnsxxs) =sx<><xs
Totality: total
Visibility: export
splitOntoRightSpec : (n : Nat) -> (sx : SnocLista) -> (xs : Lista) -> (fst (splitOntoRightnsxxs) =dropTailnsx, snd (splitOntoRightnsxxs) =takeTailnsx<>>xs)
Totality: total
Visibility: export
splitOntoLeftSpec : (n : Nat) -> (sx : SnocLista) -> (xs : Lista) -> (fst (splitOntoLeftnsxxs) =sx<><takenxs, snd (splitOntoLeftnsxxs) =dropnxs)
Totality: total
Visibility: export
lengthHomomorphism : (sx : SnocLista) -> (sy : SnocLista) ->length (sx++sy) =lengthsx+lengthsy
Totality: total
Visibility: export
take : Nat->SnocLista->SnocLista
  Take `n` first elements from `sx`, returning the whole list if
`n` >= length `sx`.

@ n the number of elements to take
@ sx the snoc-list to take the elements from

Note: traverses the whole the input list, so linear in `n` and
`length sx`

Totality: total
Visibility: public export
drop : Nat->SnocLista->SnocLista
  Drop `n` first elements from `sx`, returning an empty list if
`n` >= length `sx`.

@ n the number of elements to drop
@ sx the snoc-list to drop the elements from

Note: traverses the whole the input list, so linear in `n` and
`length sx`

Totality: total
Visibility: public export
dataNonEmpty : SnocLista->Type
Totality: total
Visibility: public export
Constructor: 
IsSnoc : NonEmpty (sx:<x)
last : (sx : SnocLista) -> {auto0_ : NonEmptysx} ->a
Totality: total
Visibility: public export
intersectBy : (a->a->Bool) ->SnocLista->SnocLista->SnocLista
Totality: total
Visibility: public export
intersect : Eqa=>SnocLista->SnocLista->SnocLista
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

takeTail : Nat->SnocLista->SnocLista
  Take `n` last elements from `sx`, returning the whole list if
`n` >= length `sx`.

@ n the number of elements to take
@ sx the snoc-list to take the elements from

Totality: total
Visibility: public export
dropTail : Nat->SnocLista->SnocLista
  Remove `n` last elements from `xs`, returning the empty list if
`n >= length xs`

@ n the number of elements to remove
@ xs the list to drop the elements from

Totality: total
Visibility: public export
concatDropTailTakeTail : (n : Nat) -> (sx : SnocLista) ->dropTailnsx++takeTailnsx=sx
Totality: total
Visibility: public export
splitOntoLeft : Nat->SnocLista->Lista-> (SnocLista, Lista)
  Shift `n` elements from the beginning of `xs` to the end of `sx`,
returning the same lists if `n` >= length `xs`.

@ n the number of elements to take
@ sx the snoc-list to append onto
@ xs the list to take the elements from

Totality: total
Visibility: public export
splitOntoRight : Nat->SnocLista->Lista-> (SnocLista, Lista)
  Shift `n` elements from the end of `sx` to the beginning of `xs`,
returning the same lists if `n` >= length `sx`.

@ n the number of elements to take
@ sx the snoc-list to take the elements from
@ xs the list to append onto

Totality: total
Visibility: public export
splitOntoRightInvariant : (n : Nat) -> (sx : SnocLista) -> (xs : Lista) ->fst (splitOntoRightnsxxs) <><snd (splitOntoRightnsxxs) =sx<><xs
Totality: total
Visibility: export
splitOntoRightSpec : (n : Nat) -> (sx : SnocLista) -> (xs : Lista) -> (fst (splitOntoRightnsxxs) =dropTailnsx, snd (splitOntoRightnsxxs) =takeTailnsx<>>xs)
Totality: total
Visibility: export
splitOntoLeftSpec : (n : Nat) -> (sx : SnocLista) -> (xs : Lista) -> (fst (splitOntoLeftnsxxs) =sx<><takenxs, snd (splitOntoLeftnsxxs) =dropnxs)
Totality: total
Visibility: export
lengthHomomorphism : (sx : SnocLista) -> (sy : SnocLista) ->length (sx++sy) =lengthsx+lengthsy
Totality: total
Visibility: export
take : Nat->SnocLista->SnocLista
  Take `n` first elements from `sx`, returning the whole list if
`n` >= length `sx`.

@ n the number of elements to take
@ sx the snoc-list to take the elements from

Note: traverses the whole the input list, so linear in `n` and
`length sx`

Totality: total
Visibility: public export
drop : Nat->SnocLista->SnocLista
  Drop `n` first elements from `sx`, returning an empty list if
`n` >= length `sx`.

@ n the number of elements to drop
@ sx the snoc-list to drop the elements from

Note: traverses the whole the input list, so linear in `n` and
`length sx`

Totality: total
Visibility: public export
dataNonEmpty : SnocLista->Type
Totality: total
Visibility: public export
Constructor: 
IsSnoc : NonEmpty (sx:<x)
last : (sx : SnocLista) -> {auto0_ : NonEmptysx} ->a
Totality: total
Visibility: public export
intersectBy : (a->a->Bool) ->SnocLista->SnocLista->SnocLista
Totality: total
Visibility: public export
intersect : Eqa=>SnocLista->SnocLista->SnocLista
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.SnocList.Quantifiers.html b/base/docs/Data.SnocList.Quantifiers.html index 5a8a2ac3e1..fd9fbcc0d1 100644 --- a/base/docs/Data.SnocList.Quantifiers.html +++ b/base/docs/Data.SnocList.Quantifiers.html @@ -61,4 +61,4 @@ -

Data.SnocList.Quantifiers(source)

Definitions

dataAny : (0_ : (a->Type)) ->SnocLista->Type
  A proof that some element of a snoclist satisfies some property

@ p the property to be satisfied

Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (xs:<x)
  A proof that the rightmost element in the `SnocList` satisfies p
There : Anypxs->Anyp (xs:<x)
  A proof that there is an element the tail of the `SnocList` satisfying p

Hints:
Uninhabited (Anyp [<])
Uninhabited (px) =>Uninhabited (Anypxs) =>Uninhabited (Anyp (xs:<x))
mapProperty : (px->qx) ->Anypl->Anyql
  Modify the property given a pointwise function

Totality: total
Visibility: public export
any : ((x : a) ->Dec (px)) -> (xs : SnocLista) ->Dec (Anypxs)
  Given a decision procedure for a property, determine if an element of a
list satisfies it.

@ p the property to be satisfied
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
toExists : Anypxs->Existsp
  Forget the membership proof

Totality: total
Visibility: export
dataAll : (0_ : (a->Type)) ->SnocLista->Type
  A proof that all elements of a list satisfy a property. It is a list of
proofs, corresponding element-wise to the `List`.

Totality: total
Visibility: public export
Constructors:
Lin : Allp [<]
(:<) : Allpxs->px->Allp (xs:<x)

Hints:
AllShow (mappxs) =>Show (Allpxs)
Either (Uninhabited (px)) (Uninhabited (Allpxs)) =>Uninhabited (Allp (xs:<x))
length : Allpxs->Nat
Totality: total
Visibility: public export
(++) : Allpxs->Allpys->Allp (xs++ys)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
lengthUnfold : (pxs : Allpxs) ->lengthpxs=lengthxs
Totality: total
Visibility: export
mapProperty : (px->qx) ->Allpl->Allql
  Modify the property given a pointwise function

Totality: total
Visibility: public export
imapProperty : (0i : (Type->Type)) -> (ia=>pa->qa) ->Allitypes=>Allptypes->Allqtypes
  Modify the property given a pointwise interface function

Totality: total
Visibility: public export
forget : All (consttype) types->SnocListtype
  Forget property source for a homogeneous collection of properties

Totality: total
Visibility: public export
all : ((x : a) ->Dec (px)) -> (xs : SnocLista) ->Dec (Allpxs)
  Given a decision procedure for a property, decide whether all elements of
a list satisfy it.

@ p the property
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
zipPropertyWith : (px->qx->rx) ->Allpxs->Allqxs->Allrxs
Totality: total
Visibility: export
negAnyAll : Not (Anypxs) ->All (Not.p) xs
  If there does not exist an element that satifies the property, then it is
the case that all elements do not satisfy it.

Totality: total
Visibility: export
anyNegAll : Any (Not.p) xs->Not (Allpxs)
  If there exists an element that doesn't satify the property, then it is
not the case that all elements satisfy it.

Totality: total
Visibility: export
allNegAny : All (Not.p) xs->Not (Anypxs)
  If none of the elements satisfy the property, then not any single one can.

Totality: total
Visibility: export
indexAll : Elemxxs->Allpxs->px
  Given a proof of membership for some element, extract the property proof for it

Totality: total
Visibility: public export
decide : ((x : a) ->Either (px) (qx)) -> (xs : SnocLista) ->Either (Allpxs) (Anyqxs)
  If any `a` either satisfies p or q then given a Snoclist of as,
either all values satisfy p
or at least one of them sastifies q

Totality: total
Visibility: public export
\ No newline at end of file +

Data.SnocList.Quantifiers(source)

Definitions

dataAny : (0_ : (a->Type)) ->SnocLista->Type
  A proof that some element of a snoclist satisfies some property

@ p the property to be satisfied

Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (xs:<x)
  A proof that the rightmost element in the `SnocList` satisfies p
There : Anypxs->Anyp (xs:<x)
  A proof that there is an element the tail of the `SnocList` satisfying p

Hints:
Uninhabited (Anyp [<])
Uninhabited (px) =>Uninhabited (Anypxs) =>Uninhabited (Anyp (xs:<x))
mapProperty : (px->qx) ->Anypl->Anyql
  Modify the property given a pointwise function

Totality: total
Visibility: public export
any : ((x : a) ->Dec (px)) -> (xs : SnocLista) ->Dec (Anypxs)
  Given a decision procedure for a property, determine if an element of a
list satisfies it.

@ p the property to be satisfied
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
toExists : Anypxs->Existsp
  Forget the membership proof

Totality: total
Visibility: export
dataAll : (0_ : (a->Type)) ->SnocLista->Type
  A proof that all elements of a list satisfy a property. It is a list of
proofs, corresponding element-wise to the `List`.

Totality: total
Visibility: public export
Constructors:
Lin : Allp [<]
(:<) : Allpxs->px->Allp (xs:<x)

Hints:
AllShow (mappxs) =>Show (Allpxs)
Either (Uninhabited (px)) (Uninhabited (Allpxs)) =>Uninhabited (Allp (xs:<x))
length : Allpxs->Nat
Totality: total
Visibility: public export
(++) : Allpxs->Allpys->Allp (xs++ys)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
lengthUnfold : (pxs : Allpxs) ->lengthpxs=lengthxs
Totality: total
Visibility: export
mapProperty : (px->qx) ->Allpl->Allql
  Modify the property given a pointwise function

Totality: total
Visibility: public export
imapProperty : (0i : (Type->Type)) -> (ia=>pa->qa) ->Allitypes=>Allptypes->Allqtypes
  Modify the property given a pointwise interface function

Totality: total
Visibility: public export
forget : All (consttype) types->SnocListtype
  Forget property source for a homogeneous collection of properties

Totality: total
Visibility: public export
all : ((x : a) ->Dec (px)) -> (xs : SnocLista) ->Dec (Allpxs)
  Given a decision procedure for a property, decide whether all elements of
a list satisfy it.

@ p the property
@ dec the decision procedure
@ xs the list to examine

Totality: total
Visibility: public export
zipPropertyWith : (px->qx->rx) ->Allpxs->Allqxs->Allrxs
Totality: total
Visibility: export
negAnyAll : Not (Anypxs) ->All (Not.p) xs
  If there does not exist an element that satifies the property, then it is
the case that all elements do not satisfy it.

Totality: total
Visibility: export
anyNegAll : Any (Not.p) xs->Not (Allpxs)
  If there exists an element that doesn't satify the property, then it is
not the case that all elements satisfy it.

Totality: total
Visibility: export
allNegAny : All (Not.p) xs->Not (Anypxs)
  If none of the elements satisfy the property, then not any single one can.

Totality: total
Visibility: export
indexAll : Elemxxs->Allpxs->px
  Given a proof of membership for some element, extract the property proof for it

Totality: total
Visibility: public export
decide : ((x : a) ->Either (px) (qx)) -> (xs : SnocLista) ->Either (Allpxs) (Anyqxs)
  If any `a` either satisfies p or q then given a Snoclist of as,
either all values satisfy p
or at least one of them sastifies q

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.SnocList.html b/base/docs/Data.SnocList.html index 96c3585446..89603728aa 100644 --- a/base/docs/Data.SnocList.html +++ b/base/docs/Data.SnocList.html @@ -62,4 +62,4 @@

Data.SnocList(source)

A Reversed List
-

Definitions

asList : SnocListtype->Listtype
  Transform to a list but keeping the contents in the spine order (term depth).

Totality: total
Visibility: public export
isLin : SnocLista->Bool
  True iff input is Lin

Totality: total
Visibility: public export
isSnoc : SnocLista->Bool
  True iff input is (:<)

Totality: total
Visibility: public export
spanBy : (a->Maybeb) ->SnocLista-> (SnocLista, SnocListb)
  Given a predicate and a snoclist, returns a tuple consisting of the longest
prefix of the snoclist whose elements satisfy the predicate, and the rest of the
snoclist.

Totality: total
Visibility: public export
mapImpl : (a->b) ->SnocLista->SnocListb
Totality: total
Visibility: public export
SnocBiinjective : Biinjective(:<)
Totality: total
Visibility: export
find : (a->Bool) ->SnocLista->Maybea
  Find the rightmost element of the snoc-list that satisfies the predicate.

Totality: total
Visibility: public export
dataInBounds : Nat->SnocLista->Type
  Satisfiable if `k` is a valid index into `xs`.

@ k the potential index
@ xs the snoc-list into which k may be an index

Totality: total
Visibility: public export
Constructors:
InFirst : InBounds0 (xs:<x)
  Z is a valid index into any cons cell
InLater : InBoundskxs->InBounds (Sk) (xs:<x)
  Valid indices can be extended
findIndex : (a->Bool) -> (xs : SnocLista) ->Maybe (Fin (lengthxs))
  Find the index (counting from right) of the rightmost element (if exists) of a
snoc-list that satisfies the given test, else `Nothing`.

Totality: total
Visibility: public export
appendAssociative : (l : SnocLista) -> (c : SnocLista) -> (r : SnocLista) ->l++ (c++r) = (l++c) ++r
Totality: total
Visibility: export
appendLinLeftNeutral : (sx : SnocLista) -> [<] ++sx=sx
Totality: total
Visibility: export
fishAsSnocAppend : (xs : SnocLista) -> (ys : Lista) ->xs<><ys=xs++castys
Totality: total
Visibility: export
chipsAsListAppend : (xs : SnocLista) -> (ys : Lista) ->xs<>>ys=castxs++ys
Totality: total
Visibility: export
toListAppend : (sx : SnocLista) -> (sy : SnocLista) ->toList (sx++sy) =toListsx++toListsy
Totality: total
Visibility: export
castListAppend : (xs : Lista) -> (ys : Lista) ->cast (xs++ys) =castxs++castys
Totality: total
Visibility: export
castToList : (sx : SnocLista) ->cast (toListsx) =sx
Totality: total
Visibility: export
toListCast : (xs : Lista) ->toList (castxs) =xs
Totality: total
Visibility: export
cons : a->SnocLista->SnocLista
  Append an element to the head of a snoc-list.
Note: Traverses the snoc-list, linear time complexity

Totality: total
Visibility: public export
foldAppend : (f : (acc->a->acc)) -> (init : acc) -> (sx : SnocLista) -> (sy : SnocLista) ->foldlfinit (sx++sy) =foldlf (foldlfinitsx) sy
Totality: total
Visibility: export
snocFoldlAsListFoldl : (f : (acc->a->acc)) -> (init : acc) -> (xs : SnocLista) ->foldlfinitxs=foldlfinit (toListxs)
Totality: total
Visibility: export
filterAppend : (f : (a->Bool)) -> (sx : SnocLista) -> (sy : SnocLista) ->filterf (sx++sy) =filterfsx++filterfsy
Totality: total
Visibility: export
toListFilter : (f : (a->Bool)) -> (sx : SnocLista) ->toList (filterfsx) =filterf (toListsx)
Totality: total
Visibility: export
filterCast : (f : (a->Bool)) -> (xs : Lista) ->filterf (castxs) =cast (filterfxs)
Totality: total
Visibility: export
mapFusion : (g : (b->c)) -> (f : (a->b)) -> (sx : SnocLista) ->mapg (mapfsx) =map (g.f) sx
Totality: total
Visibility: export
mapAppend : (f : (a->b)) -> (sx : SnocLista) -> (sy : SnocLista) ->mapf (sx++sy) =mapfsx++mapfsy
Totality: total
Visibility: export
toListMap : (f : (a->b)) -> (sx : SnocLista) ->toList (mapfsx) =mapf (toListsx)
Totality: total
Visibility: export
mapCast : (f : (a->b)) -> (xs : Lista) ->mapf (castxs) =cast (mapfxs)
Totality: total
Visibility: export
mapMaybeFusion : (g : (b->Maybec)) -> (f : (a->Maybeb)) -> (sx : SnocLista) ->mapMaybeg (mapMaybefsx) =mapMaybe (f>=>g) sx
Totality: total
Visibility: export
mapMaybeAppend : (f : (a->Maybeb)) -> (sx : SnocLista) -> (sy : SnocLista) ->mapMaybef (sx++sy) =mapMaybefsx++mapMaybefsy
Totality: total
Visibility: export
toListMapMaybe : (f : (a->Maybeb)) -> (sx : SnocLista) ->toList (mapMaybefsx) =mapMaybef (toListsx)
Totality: total
Visibility: export
mapMaybeCast : (f : (a->Maybeb)) -> (xs : Lista) ->mapMaybef (castxs) =cast (mapMaybefxs)
Totality: total
Visibility: export
reverseInvolutive : (sx : SnocLista) ->reverse (reversesx) =sx
  SnocList `reverse` applied twice yields the identity function.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

asList : SnocListtype->Listtype
  Transform to a list but keeping the contents in the spine order (term depth).

Totality: total
Visibility: public export
isLin : SnocLista->Bool
  True iff input is Lin

Totality: total
Visibility: public export
isSnoc : SnocLista->Bool
  True iff input is (:<)

Totality: total
Visibility: public export
spanBy : (a->Maybeb) ->SnocLista-> (SnocLista, SnocListb)
  Given a predicate and a snoclist, returns a tuple consisting of the longest
prefix of the snoclist whose elements satisfy the predicate, and the rest of the
snoclist.

Totality: total
Visibility: public export
mapImpl : (a->b) ->SnocLista->SnocListb
Totality: total
Visibility: public export
SnocBiinjective : Biinjective(:<)
Totality: total
Visibility: export
find : (a->Bool) ->SnocLista->Maybea
  Find the rightmost element of the snoc-list that satisfies the predicate.

Totality: total
Visibility: public export
dataInBounds : Nat->SnocLista->Type
  Satisfiable if `k` is a valid index into `xs`.

@ k the potential index
@ xs the snoc-list into which k may be an index

Totality: total
Visibility: public export
Constructors:
InFirst : InBounds0 (xs:<x)
  Z is a valid index into any cons cell
InLater : InBoundskxs->InBounds (Sk) (xs:<x)
  Valid indices can be extended
findIndex : (a->Bool) -> (xs : SnocLista) ->Maybe (Fin (lengthxs))
  Find the index (counting from right) of the rightmost element (if exists) of a
snoc-list that satisfies the given test, else `Nothing`.

Totality: total
Visibility: public export
appendAssociative : (l : SnocLista) -> (c : SnocLista) -> (r : SnocLista) ->l++ (c++r) = (l++c) ++r
Totality: total
Visibility: export
appendLinLeftNeutral : (sx : SnocLista) -> [<] ++sx=sx
Totality: total
Visibility: export
fishAsSnocAppend : (xs : SnocLista) -> (ys : Lista) ->xs<><ys=xs++castys
Totality: total
Visibility: export
chipsAsListAppend : (xs : SnocLista) -> (ys : Lista) ->xs<>>ys=castxs++ys
Totality: total
Visibility: export
toListAppend : (sx : SnocLista) -> (sy : SnocLista) ->toList (sx++sy) =toListsx++toListsy
Totality: total
Visibility: export
castListAppend : (xs : Lista) -> (ys : Lista) ->cast (xs++ys) =castxs++castys
Totality: total
Visibility: export
castToList : (sx : SnocLista) ->cast (toListsx) =sx
Totality: total
Visibility: export
toListCast : (xs : Lista) ->toList (castxs) =xs
Totality: total
Visibility: export
cons : a->SnocLista->SnocLista
  Append an element to the head of a snoc-list.
Note: Traverses the snoc-list, linear time complexity

Totality: total
Visibility: public export
foldAppend : (f : (acc->a->acc)) -> (init : acc) -> (sx : SnocLista) -> (sy : SnocLista) ->foldlfinit (sx++sy) =foldlf (foldlfinitsx) sy
Totality: total
Visibility: export
snocFoldlAsListFoldl : (f : (acc->a->acc)) -> (init : acc) -> (xs : SnocLista) ->foldlfinitxs=foldlfinit (toListxs)
Totality: total
Visibility: export
filterAppend : (f : (a->Bool)) -> (sx : SnocLista) -> (sy : SnocLista) ->filterf (sx++sy) =filterfsx++filterfsy
Totality: total
Visibility: export
toListFilter : (f : (a->Bool)) -> (sx : SnocLista) ->toList (filterfsx) =filterf (toListsx)
Totality: total
Visibility: export
filterCast : (f : (a->Bool)) -> (xs : Lista) ->filterf (castxs) =cast (filterfxs)
Totality: total
Visibility: export
mapFusion : (g : (b->c)) -> (f : (a->b)) -> (sx : SnocLista) ->mapg (mapfsx) =map (g.f) sx
Totality: total
Visibility: export
mapAppend : (f : (a->b)) -> (sx : SnocLista) -> (sy : SnocLista) ->mapf (sx++sy) =mapfsx++mapfsy
Totality: total
Visibility: export
toListMap : (f : (a->b)) -> (sx : SnocLista) ->toList (mapfsx) =mapf (toListsx)
Totality: total
Visibility: export
mapCast : (f : (a->b)) -> (xs : Lista) ->mapf (castxs) =cast (mapfxs)
Totality: total
Visibility: export
mapMaybeFusion : (g : (b->Maybec)) -> (f : (a->Maybeb)) -> (sx : SnocLista) ->mapMaybeg (mapMaybefsx) =mapMaybe (f>=>g) sx
Totality: total
Visibility: export
mapMaybeAppend : (f : (a->Maybeb)) -> (sx : SnocLista) -> (sy : SnocLista) ->mapMaybef (sx++sy) =mapMaybefsx++mapMaybefsy
Totality: total
Visibility: export
toListMapMaybe : (f : (a->Maybeb)) -> (sx : SnocLista) ->toList (mapMaybefsx) =mapMaybef (toListsx)
Totality: total
Visibility: export
mapMaybeCast : (f : (a->Maybeb)) -> (xs : Lista) ->mapMaybef (castxs) =cast (mapMaybefxs)
Totality: total
Visibility: export
reverseInvolutive : (sx : SnocLista) ->reverse (reversesx) =sx
  SnocList `reverse` applied twice yields the identity function.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.So.html b/base/docs/Data.So.html index 17050a3702..105ef221b5 100644 --- a/base/docs/Data.So.html +++ b/base/docs/Data.So.html @@ -61,4 +61,4 @@ -

Data.So(source)

Definitions

dataSo : Bool->Type
  Ensure that some run-time Boolean test has been performed.

This lifts a Boolean predicate to the type level. See the function `choose`
if you need to perform a Boolean test and convince the type checker of this
fact.

If you find yourself using `So` for something other than primitive types,
it may be appropriate to define a type of evidence for the property that you
care about instead.

Totality: total
Visibility: public export
Constructor: 
Oh : SoTrue

Hint: 
Uninhabited (SoFalse)
choose : (b : Bool) ->Either (Sob) (So (notb))
  Perform a case analysis on a Boolean, providing clients with a `So` proof

Totality: total
Visibility: export
decSo : (b : Bool) ->Dec (Sob)
Totality: total
Visibility: export
eqToSo : b=True->Sob
Totality: total
Visibility: export
soToEq : Sob->b=True
Totality: total
Visibility: export
soToNotSoNot : Sob->Not (So (notb))
  If `b` is True, `not b` can't be True

Totality: total
Visibility: export
soNotToNotSo : So (notb) ->Not (Sob)
  If `not b` is True, `b` can't be True

Totality: total
Visibility: export
soAnd : So (a&&b) -> (Soa, So (Force b))
Totality: total
Visibility: export
andSo : (Soa, Sob) ->So (a&& Delay b)
Totality: total
Visibility: export
soOr : So (a||b) ->Either (Soa) (So (Force b))
Totality: total
Visibility: export
orSo : Either (Soa) (Sob) ->So (a|| Delay b)
Totality: total
Visibility: export
\ No newline at end of file +

Data.So(source)

Definitions

dataSo : Bool->Type
  Ensure that some run-time Boolean test has been performed.

This lifts a Boolean predicate to the type level. See the function `choose`
if you need to perform a Boolean test and convince the type checker of this
fact.

If you find yourself using `So` for something other than primitive types,
it may be appropriate to define a type of evidence for the property that you
care about instead.

Totality: total
Visibility: public export
Constructor: 
Oh : SoTrue

Hint: 
Uninhabited (SoFalse)
choose : (b : Bool) ->Either (Sob) (So (notb))
  Perform a case analysis on a Boolean, providing clients with a `So` proof

Totality: total
Visibility: export
decSo : (b : Bool) ->Dec (Sob)
Totality: total
Visibility: export
eqToSo : b=True->Sob
Totality: total
Visibility: export
soToEq : Sob->b=True
Totality: total
Visibility: export
soToNotSoNot : Sob->Not (So (notb))
  If `b` is True, `not b` can't be True

Totality: total
Visibility: export
soNotToNotSo : So (notb) ->Not (Sob)
  If `not b` is True, `b` can't be True

Totality: total
Visibility: export
soAnd : So (a&&b) -> (Soa, So (Force b))
Totality: total
Visibility: export
andSo : (Soa, Sob) ->So (a&& Delay b)
Totality: total
Visibility: export
soOr : So (a||b) ->Either (Soa) (So (Force b))
Totality: total
Visibility: export
orSo : Either (Soa) (Sob) ->So (a|| Delay b)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.SortedMap.Dependent.html b/base/docs/Data.SortedMap.Dependent.html index 336c5a6617..2afd4edef3 100644 --- a/base/docs/Data.SortedMap.Dependent.html +++ b/base/docs/Data.SortedMap.Dependent.html @@ -61,4 +61,4 @@ -

Data.SortedMap.Dependent(source)

Definitions

dataSortedDMap : (k : Type) -> (k->Type) ->Type
Totality: total
Visibility: export
Constructors:
Empty : Ordk=>SortedDMapkv
M : {autoo : Ordk} -> (n : Nat) ->Treenkvo->SortedDMapkv

Hints:
Cast (SortedDMapk (constv)) (SortedMapkv)
Cast (SortedMapkv) (SortedDMapk (constv))
(DecEqk, Eq (vx)) =>Eq (SortedDMapkv)
DecEqk=>Ordk=>Semigroup (vx) =>Monoid (SortedDMapkv)
DecEqk=>Semigroup (vx) =>Semigroup (SortedDMapkv)
(Showk, Show (vx)) =>Show (SortedDMapkv)
empty : Ordk=>SortedDMapkv
Visibility: export
lookup : k->SortedDMapkv->Maybe (y : k**vy)
Visibility: export
lookupPrecise : DecEqk=> (x : k) ->SortedDMapkv->Maybe (vx)
Visibility: export
insert : (x : k) ->vx->SortedDMapkv->SortedDMapkv
Visibility: export
singleton : Ordk=> (x : k) ->vx->SortedDMapkv
Visibility: export
insertFrom : Foldablef=>f (x : k**vx) ->SortedDMapkv->SortedDMapkv
Visibility: export
delete : k->SortedDMapkv->SortedDMapkv
Visibility: export
update : DecEqk=> (x : k) -> (Maybe (vx) ->Maybe (vx)) ->SortedDMapkv->SortedDMapkv
  Updates or deletes a value based on the decision function

The decision function takes information about the presence of the value,
and the value itself, if it is present.
It returns a new value or the fact that there should be no value as the result.

The current implementation performs up to two traversals of the original map

Visibility: export
updateExisting : DecEqk=> (x : k) -> (vx->vx) ->SortedDMapkv->SortedDMapkv
  Updates existing value, if it is present, and does nothing otherwise

The current implementation performs up to two traversals of the original map

Visibility: export
fromList : Ordk=>List (x : k**vx) ->SortedDMapkv
Visibility: export
toList : SortedDMapkv->List (x : k**vx)
Visibility: export
keys : SortedDMapkv->Listk
  Gets the keys of the map.

Visibility: export
values : SortedDMapkv->List (x : k**vx)
Visibility: export
map : (vx->wx) ->SortedDMapkv->SortedDMapkw
Visibility: export
foldl : (acc-> (x : k**vx) ->acc) ->acc->SortedDMapkv->acc
Visibility: export
foldr : ((x : k**vx) ->acc->acc) ->acc->SortedDMapkv->acc
Visibility: export
foldlM : Monadm=> (acc-> (x : k**vx) ->macc) ->acc->SortedDMapkv->macc
Visibility: export
foldMap : Monoidm=> ((x : k) ->vx->m) ->SortedDMapkv->m
Visibility: export
null : SortedDMapkv->Bool
Visibility: export
traverse : Applicativef=> (vx->f (wx)) ->SortedDMapkv->f (SortedDMapkw)
Visibility: export
mergeWith : DecEqk=> (vx->vx->vx) ->SortedDMapkv->SortedDMapkv->SortedDMapkv
  Merge two maps. When encountering duplicate keys, using a function to combine the values.
Uses the ordering of the first map given.

Visibility: export
merge : DecEqk=>Semigroup (vx) =>SortedDMapkv->SortedDMapkv->SortedDMapkv
  Merge two maps using the Semigroup (and by extension, Monoid) operation.
Uses mergeWith internally, so the ordering of the left map is kept.

Visibility: export
mergeLeft : DecEqk=>SortedDMapkv->SortedDMapkv->SortedDMapkv
  Left-biased merge, also keeps the ordering specified  by the left map.

Visibility: export
lookupBetween : k->SortedDMapkv-> (Maybe (x : k**vx), Maybe (x : k**vx))
  looks up a key in map, returning the left and right closest values, so that
k1 <= k < k2. If at the end of the beginning and/or end of the sorted map, returns
nothing appropriately

Visibility: export
leftMost : SortedDMapkv->Maybe (x : k**vx)
  Returns the leftmost (least) key and value

Visibility: export
rightMost : SortedDMapkv->Maybe (x : k**vx)
  Returns the rightmost (greatest) key and value

Visibility: export
strictSubmap : DecEqk=>Eq (vx) =>SortedDMapkv->SortedDMapkv->Bool
Visibility: export
\ No newline at end of file +

Data.SortedMap.Dependent(source)

Definitions

dataSortedDMap : (k : Type) -> (k->Type) ->Type
Totality: total
Visibility: export
Constructors:
Empty : Ordk=>SortedDMapkv
M : {autoo : Ordk} -> (n : Nat) ->Treenkvo->SortedDMapkv

Hints:
Cast (SortedDMapk (constv)) (SortedMapkv)
Cast (SortedMapkv) (SortedDMapk (constv))
(DecEqk, Eq (vx)) =>Eq (SortedDMapkv)
DecEqk=>Ordk=>Semigroup (vx) =>Monoid (SortedDMapkv)
DecEqk=>Semigroup (vx) =>Semigroup (SortedDMapkv)
(Showk, Show (vx)) =>Show (SortedDMapkv)
empty : Ordk=>SortedDMapkv
Visibility: export
lookup : k->SortedDMapkv->Maybe (y : k**vy)
Visibility: export
lookupPrecise : DecEqk=> (x : k) ->SortedDMapkv->Maybe (vx)
Visibility: export
insert : (x : k) ->vx->SortedDMapkv->SortedDMapkv
Visibility: export
singleton : Ordk=> (x : k) ->vx->SortedDMapkv
Visibility: export
insertFrom : Foldablef=>f (x : k**vx) ->SortedDMapkv->SortedDMapkv
Visibility: export
delete : k->SortedDMapkv->SortedDMapkv
Visibility: export
update : DecEqk=> (x : k) -> (Maybe (vx) ->Maybe (vx)) ->SortedDMapkv->SortedDMapkv
  Updates or deletes a value based on the decision function

The decision function takes information about the presence of the value,
and the value itself, if it is present.
It returns a new value or the fact that there should be no value as the result.

The current implementation performs up to two traversals of the original map

Visibility: export
updateExisting : DecEqk=> (x : k) -> (vx->vx) ->SortedDMapkv->SortedDMapkv
  Updates existing value, if it is present, and does nothing otherwise

The current implementation performs up to two traversals of the original map

Visibility: export
fromList : Ordk=>List (x : k**vx) ->SortedDMapkv
Visibility: export
toList : SortedDMapkv->List (x : k**vx)
Visibility: export
keys : SortedDMapkv->Listk
  Gets the keys of the map.

Visibility: export
values : SortedDMapkv->List (x : k**vx)
Visibility: export
map : (vx->wx) ->SortedDMapkv->SortedDMapkw
Visibility: export
foldl : (acc-> (x : k**vx) ->acc) ->acc->SortedDMapkv->acc
Visibility: export
foldr : ((x : k**vx) ->acc->acc) ->acc->SortedDMapkv->acc
Visibility: export
foldlM : Monadm=> (acc-> (x : k**vx) ->macc) ->acc->SortedDMapkv->macc
Visibility: export
foldMap : Monoidm=> ((x : k) ->vx->m) ->SortedDMapkv->m
Visibility: export
null : SortedDMapkv->Bool
Visibility: export
traverse : Applicativef=> (vx->f (wx)) ->SortedDMapkv->f (SortedDMapkw)
Visibility: export
mergeWith : DecEqk=> (vx->vx->vx) ->SortedDMapkv->SortedDMapkv->SortedDMapkv
  Merge two maps. When encountering duplicate keys, using a function to combine the values.
Uses the ordering of the first map given.

Visibility: export
merge : DecEqk=>Semigroup (vx) =>SortedDMapkv->SortedDMapkv->SortedDMapkv
  Merge two maps using the Semigroup (and by extension, Monoid) operation.
Uses mergeWith internally, so the ordering of the left map is kept.

Visibility: export
mergeLeft : DecEqk=>SortedDMapkv->SortedDMapkv->SortedDMapkv
  Left-biased merge, also keeps the ordering specified  by the left map.

Visibility: export
lookupBetween : k->SortedDMapkv-> (Maybe (x : k**vx), Maybe (x : k**vx))
  looks up a key in map, returning the left and right closest values, so that
k1 <= k < k2. If at the end of the beginning and/or end of the sorted map, returns
nothing appropriately

Visibility: export
leftMost : SortedDMapkv->Maybe (x : k**vx)
  Returns the leftmost (least) key and value

Visibility: export
rightMost : SortedDMapkv->Maybe (x : k**vx)
  Returns the rightmost (greatest) key and value

Visibility: export
strictSubmap : DecEqk=>Eq (vx) =>SortedDMapkv->SortedDMapkv->Bool
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.SortedMap.html b/base/docs/Data.SortedMap.html index c0a87afc52..1ed039fe53 100644 --- a/base/docs/Data.SortedMap.html +++ b/base/docs/Data.SortedMap.html @@ -61,4 +61,4 @@ -

Data.SortedMap(source)

Definitions

recordSortedMap : Type->Type->Type
Totality: total
Visibility: export
Constructor: 
M : SortedDMapk (constv) ->SortedMapkv

Projection: 
.unM : SortedMapkv->SortedDMapk (constv)

Hints:
Cast (SortedDMapk (constv)) (SortedMapkv)
Cast (SortedMapkv) (SortedDMapk (constv))
(Eqk, Eqv) =>Eq (SortedMapkv)
Foldable (SortedMapk)
Functor (SortedMapk)
(Ordk, Semigroupv) =>Monoid (SortedMapkv)
Semigroupv=>Semigroup (SortedMapkv)
(Showk, Showv) =>Show (SortedMapkv)
Traversable (SortedMapk)
Ordk=>Zippable (SortedMapk)
empty : Ordk=>SortedMapkv
Visibility: export
lookup : k->SortedMapkv->Maybev
Visibility: export
insert : k->v->SortedMapkv->SortedMapkv
Visibility: export
singleton : Ordk=>k->v->SortedMapkv
Visibility: export
insertFrom : Foldablef=>f (k, v) ->SortedMapkv->SortedMapkv
Visibility: export
delete : k->SortedMapkv->SortedMapkv
Visibility: export
update : (Maybev->Maybev) ->k->SortedMapkv->SortedMapkv
  Updates or deletes a value based on the decision function

The decision function takes information about the presence of the value,
and the value itself, if it is present.
It returns a new value or the fact that there should be no value as the result.

The current implementation performs up to two traversals of the original map

Visibility: export
updateExisting : (v->v) ->k->SortedMapkv->SortedMapkv
  Updates existing value, if it is present, and does nothing otherwise

The current implementation performs up to two traversals of the original map

Visibility: export
fromList : Ordk=>List (k, v) ->SortedMapkv
Visibility: export
toList : SortedMapkv->List (k, v)
Visibility: export
keys : SortedMapkv->Listk
  Gets the keys of the map.

Visibility: export
values : SortedMapkv->Listv
  Gets the values of the map. Could contain duplicates.

Visibility: export
mergeWith : (v->v->v) ->SortedMapkv->SortedMapkv->SortedMapkv
  Merge two maps. When encountering duplicate keys, using a function to combine the values.
Uses the ordering of the first map given.

Visibility: export
merge : Semigroupv=>SortedMapkv->SortedMapkv->SortedMapkv
  Merge two maps using the Semigroup (and by extension, Monoid) operation.
Uses mergeWith internally, so the ordering of the left map is kept.

Visibility: export
mergeLeft : SortedMapkv->SortedMapkv->SortedMapkv
  Left-biased merge, also keeps the ordering specified  by the left map.

Visibility: export
lookupBetween : key->SortedMapkeyval-> (Maybe (key, val), Maybe (key, val))
  looks up a key in map, returning the left and right closest values, so that
k1 <= k < k2. If at the end of the beginning and/or end of the sorted map, returns
nothing appropriately

Visibility: export
leftMost : SortedMapkeyval->Maybe (key, val)
  Returns the leftmost (least) key and value

Visibility: export
rightMost : SortedMapkeyval->Maybe (key, val)
  Returns the rightmost (greatest) key and value

Visibility: export
\ No newline at end of file +

Data.SortedMap(source)

Definitions

recordSortedMap : Type->Type->Type
Totality: total
Visibility: export
Constructor: 
M : SortedDMapk (constv) ->SortedMapkv

Projection: 
.unM : SortedMapkv->SortedDMapk (constv)

Hints:
Cast (SortedDMapk (constv)) (SortedMapkv)
Cast (SortedMapkv) (SortedDMapk (constv))
(Eqk, Eqv) =>Eq (SortedMapkv)
Foldable (SortedMapk)
Functor (SortedMapk)
(Ordk, Semigroupv) =>Monoid (SortedMapkv)
Semigroupv=>Semigroup (SortedMapkv)
(Showk, Showv) =>Show (SortedMapkv)
Traversable (SortedMapk)
Ordk=>Zippable (SortedMapk)
empty : Ordk=>SortedMapkv
Visibility: export
lookup : k->SortedMapkv->Maybev
Visibility: export
insert : k->v->SortedMapkv->SortedMapkv
Visibility: export
singleton : Ordk=>k->v->SortedMapkv
Visibility: export
insertFrom : Foldablef=>f (k, v) ->SortedMapkv->SortedMapkv
Visibility: export
delete : k->SortedMapkv->SortedMapkv
Visibility: export
update : (Maybev->Maybev) ->k->SortedMapkv->SortedMapkv
  Updates or deletes a value based on the decision function

The decision function takes information about the presence of the value,
and the value itself, if it is present.
It returns a new value or the fact that there should be no value as the result.

The current implementation performs up to two traversals of the original map

Visibility: export
updateExisting : (v->v) ->k->SortedMapkv->SortedMapkv
  Updates existing value, if it is present, and does nothing otherwise

The current implementation performs up to two traversals of the original map

Visibility: export
fromList : Ordk=>List (k, v) ->SortedMapkv
Visibility: export
toList : SortedMapkv->List (k, v)
Visibility: export
keys : SortedMapkv->Listk
  Gets the keys of the map.

Visibility: export
values : SortedMapkv->Listv
  Gets the values of the map. Could contain duplicates.

Visibility: export
mergeWith : (v->v->v) ->SortedMapkv->SortedMapkv->SortedMapkv
  Merge two maps. When encountering duplicate keys, using a function to combine the values.
Uses the ordering of the first map given.

Visibility: export
merge : Semigroupv=>SortedMapkv->SortedMapkv->SortedMapkv
  Merge two maps using the Semigroup (and by extension, Monoid) operation.
Uses mergeWith internally, so the ordering of the left map is kept.

Visibility: export
mergeLeft : SortedMapkv->SortedMapkv->SortedMapkv
  Left-biased merge, also keeps the ordering specified  by the left map.

Visibility: export
lookupBetween : key->SortedMapkeyval-> (Maybe (key, val), Maybe (key, val))
  looks up a key in map, returning the left and right closest values, so that
k1 <= k < k2. If at the end of the beginning and/or end of the sorted map, returns
nothing appropriately

Visibility: export
leftMost : SortedMapkeyval->Maybe (key, val)
  Returns the leftmost (least) key and value

Visibility: export
rightMost : SortedMapkeyval->Maybe (key, val)
  Returns the rightmost (greatest) key and value

Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.SortedSet.html b/base/docs/Data.SortedSet.html index 982eff04c5..6f584c1a8c 100644 --- a/base/docs/Data.SortedSet.html +++ b/base/docs/Data.SortedSet.html @@ -61,4 +61,4 @@ -

Data.SortedSet(source)

Definitions

dataSortedSet : Type->Type
Totality: total
Visibility: export
Constructor: 
SetWrapper : SortedMapk () ->SortedSetk

Hints:
Eqk=>Eq (SortedSetk)
FoldableSortedSet
Ordk=>Monoid (SortedSetk)
Ordk=>Semigroup (SortedSetk)
Showk=>Show (SortedSetk)
empty : Ordk=>SortedSetk
Visibility: export
insert : k->SortedSetk->SortedSetk
Visibility: export
delete : k->SortedSetk->SortedSetk
Visibility: export
contains : k->SortedSetk->Bool
Visibility: export
fromList : Ordk=>Listk->SortedSetk
Visibility: export
toList : SortedSetk->Listk
Visibility: export
union : SortedSetk->SortedSetk->SortedSetk
  Set union. Inserts all elements of x into y

Visibility: export
difference : SortedSetk->SortedSetk->SortedSetk
  Set difference. Delete all elments in y from x

Visibility: export
symDifference : SortedSetk->SortedSetk->SortedSetk
  Set symmetric difference. Uses the union of the differences.

Visibility: export
intersection : SortedSetk->SortedSetk->SortedSetk
  Set intersection. Implemented as the difference of the union and the symetric difference.

Visibility: export
keySet : SortedMapkv->SortedSetk
Visibility: export
keySet : SortedDMapkv->SortedSetk
Visibility: export
singleton : Ordk=>k->SortedSetk
Visibility: export
\ No newline at end of file +

Data.SortedSet(source)

Definitions

dataSortedSet : Type->Type
Totality: total
Visibility: export
Constructor: 
SetWrapper : SortedMapk () ->SortedSetk

Hints:
Eqk=>Eq (SortedSetk)
FoldableSortedSet
Ordk=>Monoid (SortedSetk)
Ordk=>Semigroup (SortedSetk)
Showk=>Show (SortedSetk)
empty : Ordk=>SortedSetk
Visibility: export
insert : k->SortedSetk->SortedSetk
Visibility: export
delete : k->SortedSetk->SortedSetk
Visibility: export
contains : k->SortedSetk->Bool
Visibility: export
fromList : Ordk=>Listk->SortedSetk
Visibility: export
toList : SortedSetk->Listk
Visibility: export
union : SortedSetk->SortedSetk->SortedSetk
  Set union. Inserts all elements of x into y

Visibility: export
difference : SortedSetk->SortedSetk->SortedSetk
  Set difference. Delete all elments in y from x

Visibility: export
symDifference : SortedSetk->SortedSetk->SortedSetk
  Set symmetric difference. Uses the union of the differences.

Visibility: export
intersection : SortedSetk->SortedSetk->SortedSetk
  Set intersection. Implemented as the difference of the union and the symetric difference.

Visibility: export
keySet : SortedMapkv->SortedSetk
Visibility: export
keySet : SortedDMapkv->SortedSetk
Visibility: export
singleton : Ordk=>k->SortedSetk
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Stream.html b/base/docs/Data.Stream.html index abd470d808..f361dddb59 100644 --- a/base/docs/Data.Stream.html +++ b/base/docs/Data.Stream.html @@ -61,4 +61,4 @@ -

Data.Stream(source)

Reexports

importpublic Data.Zippable

Definitions

drop : Nat->Streama->Streama
  Drop the first n elements from the stream
@ n how many elements to drop

Totality: total
Visibility: public export
repeat : a->Streama
  An infinite stream of repetitions of the same thing

Totality: total
Visibility: public export
iterate : (a->a) ->a->Streama
  Generate an infinite stream by repeatedly applying a function
@ f the function to iterate
@ x the initial value that will be the head of the stream

Totality: total
Visibility: public export
unfoldr : (b-> (a, b)) ->b->Streama
Totality: total
Visibility: public export
nats : StreamNat
  All of the natural numbers, in order

Totality: total
Visibility: public export
index : Nat->Streama->a
  Get the nth element of a stream

Totality: total
Visibility: public export
zipWithIndexLinear : (0f : (a->a->{a:5799})) -> (xs : Streama) -> (ys : Streama) -> (i : Nat) ->indexi (zipWithfxsys) =f (indexixs) (indexiys)
Totality: total
Visibility: export
zipWith3IndexLinear : (0f : (a->a->a->{a:5885})) -> (xs : Streama) -> (ys : Streama) -> (zs : Streama) -> (i : Nat) ->indexi (zipWith3fxsyszs) =f (indexixs) (indexiys) (indexizs)
Totality: total
Visibility: export
diag : Stream (Streama) ->Streama
  Return the diagonal elements of a stream of streams

Totality: total
Visibility: export
scanl : (a->b->a) ->a->Streamb->Streama
  Produce a Stream of left folds of prefixes of the given Stream
@ f the combining function
@ acc the initial value
@ xs the Stream to process

Totality: total
Visibility: export
cycle : (xs : Lista) -> {auto0_ : NonEmptyxs} ->Streama
  Produce a Stream repeating a sequence
@ xs the sequence to repeat
@ ok proof that the list is non-empty

Totality: total
Visibility: export
zig : List1 (Streama) ->Stream (Streama) ->Streama
Totality: total
Visibility: public export
zag : List1a->List1 (Streama) ->Stream (Streama) ->Streama
Totality: total
Visibility: public export
cantor : Stream (Streama) ->Streama
Totality: total
Visibility: public export
planeWith : {0p : a->Type} -> ((x : a) ->px->c) ->Streama-> ((x : a) ->Stream (px)) ->Streamc
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
plane : {0p : a->Type} ->Streama-> ((x : a) ->Stream (px)) ->Stream (x : a**px)
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
planeWith : (a->b->c) ->Streama-> (a->Streamb) ->Streamc
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
plane : Streama-> (a->Streamb) ->Stream (a, b)
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Stream(source)

Reexports

importpublic Data.Zippable

Definitions

drop : Nat->Streama->Streama
  Drop the first n elements from the stream
@ n how many elements to drop

Totality: total
Visibility: public export
repeat : a->Streama
  An infinite stream of repetitions of the same thing

Totality: total
Visibility: public export
iterate : (a->a) ->a->Streama
  Generate an infinite stream by repeatedly applying a function
@ f the function to iterate
@ x the initial value that will be the head of the stream

Totality: total
Visibility: public export
unfoldr : (b-> (a, b)) ->b->Streama
Totality: total
Visibility: public export
nats : StreamNat
  All of the natural numbers, in order

Totality: total
Visibility: public export
index : Nat->Streama->a
  Get the nth element of a stream

Totality: total
Visibility: public export
zipWithIndexLinear : (0f : (a->a->{a:5799})) -> (xs : Streama) -> (ys : Streama) -> (i : Nat) ->indexi (zipWithfxsys) =f (indexixs) (indexiys)
Totality: total
Visibility: export
zipWith3IndexLinear : (0f : (a->a->a->{a:5885})) -> (xs : Streama) -> (ys : Streama) -> (zs : Streama) -> (i : Nat) ->indexi (zipWith3fxsyszs) =f (indexixs) (indexiys) (indexizs)
Totality: total
Visibility: export
diag : Stream (Streama) ->Streama
  Return the diagonal elements of a stream of streams

Totality: total
Visibility: export
scanl : (a->b->a) ->a->Streamb->Streama
  Produce a Stream of left folds of prefixes of the given Stream
@ f the combining function
@ acc the initial value
@ xs the Stream to process

Totality: total
Visibility: export
cycle : (xs : Lista) -> {auto0_ : NonEmptyxs} ->Streama
  Produce a Stream repeating a sequence
@ xs the sequence to repeat
@ ok proof that the list is non-empty

Totality: total
Visibility: export
zig : List1 (Streama) ->Stream (Streama) ->Streama
Totality: total
Visibility: public export
zag : List1a->List1 (Streama) ->Stream (Streama) ->Streama
Totality: total
Visibility: public export
cantor : Stream (Streama) ->Streama
Totality: total
Visibility: public export
planeWith : {0p : a->Type} -> ((x : a) ->px->c) ->Streama-> ((x : a) ->Stream (px)) ->Streamc
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
plane : {0p : a->Type} ->Streama-> ((x : a) ->Stream (px)) ->Stream (x : a**px)
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
planeWith : (a->b->c) ->Streama-> (a->Streamb) ->Streamc
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
plane : Streama-> (a->Streamb) ->Stream (a, b)
  Explore the plane corresponding to all possible pairings
using Cantor's zig zag traversal

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.String.html b/base/docs/Data.String.html index 6413e1811b..12b06c2534 100644 --- a/base/docs/Data.String.html +++ b/base/docs/Data.String.html @@ -61,4 +61,4 @@ -

Data.String(source)

Reexports

importpublic Data.List
importpublic Data.SnocList

Definitions

singleton : Char->String
Totality: total
Visibility: public export
replicate : Nat->Char->String
  Create a string by using n copies of a character

Totality: total
Visibility: public export
indent : Nat->String->String
  Indent a given string by `n` spaces.

Totality: total
Visibility: public export
padLeft : Nat->Char->String->String
  Pad a string on the left

Totality: total
Visibility: public export
padRight : Nat->Char->String->String
  Pad a string on the right

Totality: total
Visibility: public export
fastUnlines : ListString->String
Totality: total
Visibility: export
words : String->ListString
  Splits a string into a list of whitespace separated strings.

```idris example
words " A B C D E "
```

Totality: total
Visibility: public export
joinBy : String->ListString->String
  Joins the strings using the provided separator
```idris example
joinBy ", " ["A", "BC", "D"] === "A, BC, D"
```

Totality: total
Visibility: public export
unwords : ListString->String
  Joins the strings by spaces into a single string.

```idris example
unwords ["A", "BC", "D", "E"] === "A BC D E"
```

Totality: total
Visibility: public export
lines' : ListChar->List (ListChar)
  Splits a character list into a list of newline separated character lists.

The empty string becomes an empty list. The last newline, if not followed by
any additional characters, is eaten (there will never be an empty string last element
in the result).

```idris example
lines' (unpack "\rA BC\nD\r\nE\n")
```

Totality: total
Visibility: public export
lines : String->ListString
  Splits a string into a list of newline separated strings.

The empty string becomes an empty list. The last newline, if not followed by
any additional characters, is eaten (there will never be an empty string last element
in the result).

```idris example
lines "\rA BC\nD\r\nE\n"
```

Totality: total
Visibility: public export
unlines : ListString->String
  Joins the strings into a single string by appending a newline to each string.

```idris example
unlines ["line", "line2", "ln3", "D"]
```

Totality: total
Visibility: public export
dataStrM : String->Type
  A view checking whether a string is empty
and, if not, returning its head and tail

Totality: total
Visibility: public export
Constructors:
StrNil : StrM""
StrCons : (x : Char) -> (xs : String) ->StrM (strConsxxs)
strM : (x : String) ->StrMx
  To each string we can associate its StrM view

Totality: total
Visibility: public export
dataAsList : String->Type
  A view of a string as a lazy linked list of characters

Totality: total
Visibility: public export
Constructors:
Nil : AsList""
(::) : (c : Char) -> Lazy (AsListstr) ->AsList (strConscstr)
asList : (str : String) ->AsListstr
  To each string we can associate the lazy linked list of characters
it corresponds to once unpacked.

Totality: total
Visibility: public export
ltrim : String->String
  Trim whitespace on the left of the string

Totality: total
Visibility: public export
trim : String->String
  Trim whitespace on both sides of the string

Totality: total
Visibility: public export
span : (Char->Bool) ->String-> (String, String)
  Splits the string into a part before the predicate
returns False and the rest of the string.

```idris example
span (/= 'C') "ABCD"
```
```idris example
span (/= 'C') "EFGH"
```

Totality: total
Visibility: public export
break : (Char->Bool) ->String-> (String, String)
  Splits the string into a part before the predicate
returns True and the rest of the string.

```idris example
break (== 'C') "ABCD"
```
```idris example
break (== 'C') "EFGH"
```

Totality: total
Visibility: public export
split : (Char->Bool) ->String->List1String
  Splits the string into parts with the predicate
indicating separator characters.

```idris example
split (== '.') ".AB.C..D"
```

Totality: total
Visibility: public export
stringToNatOrZ : String->Nat
Totality: total
Visibility: public export
toUpper : String->String
Totality: total
Visibility: public export
toLower : String->String
Totality: total
Visibility: public export
strIndex : String->Int->Char
Visibility: public export
strLength : String->Int
Visibility: public export
strSubstr : Int->Int->String->String
Visibility: public export
strTail : String->String
Visibility: public export
isPrefixOf : String->String->Bool
Totality: total
Visibility: public export
isSuffixOf : String->String->Bool
Totality: total
Visibility: public export
isInfixOf : String->String->Bool
Totality: total
Visibility: public export
parseNumWithoutSign : ListChar->Integer->MaybeInteger
Totality: total
Visibility: public export
parsePositive : Numa=>String->Maybea
  Convert a positive number string to a Num.

```idris example
parsePositive "123"
```
```idris example
parsePositive {a=Int} " +123"
```

Totality: total
Visibility: public export
parseInteger : Numa=>Nega=>String->Maybea
  Convert a number string to a Num.

```idris example
parseInteger " 123"
```
```idris example
parseInteger {a=Int} " -123"
```

Totality: total
Visibility: public export
parseDouble : String->MaybeDouble
  Convert a number string to a Double.

```idris example
parseDouble "+123.123e-2"
```
```idris example
parseDouble " -123.123E+2"
```
```idris example
parseDouble " +123.123"
```

Visibility: export
null : String->Bool
Totality: total
Visibility: public export
\ No newline at end of file +

Data.String(source)

Reexports

importpublic Data.List
importpublic Data.SnocList

Definitions

singleton : Char->String
Totality: total
Visibility: public export
replicate : Nat->Char->String
  Create a string by using n copies of a character

Totality: total
Visibility: public export
indent : Nat->String->String
  Indent a given string by `n` spaces.

Totality: total
Visibility: public export
padLeft : Nat->Char->String->String
  Pad a string on the left

Totality: total
Visibility: public export
padRight : Nat->Char->String->String
  Pad a string on the right

Totality: total
Visibility: public export
fastUnlines : ListString->String
Totality: total
Visibility: export
words : String->ListString
  Splits a string into a list of whitespace separated strings.

```idris example
words " A B C D E "
```

Totality: total
Visibility: public export
joinBy : String->ListString->String
  Joins the strings using the provided separator
```idris example
joinBy ", " ["A", "BC", "D"] === "A, BC, D"
```

Totality: total
Visibility: public export
unwords : ListString->String
  Joins the strings by spaces into a single string.

```idris example
unwords ["A", "BC", "D", "E"] === "A BC D E"
```

Totality: total
Visibility: public export
lines' : ListChar->List (ListChar)
  Splits a character list into a list of newline separated character lists.

The empty string becomes an empty list. The last newline, if not followed by
any additional characters, is eaten (there will never be an empty string last element
in the result).

```idris example
lines' (unpack "\rA BC\nD\r\nE\n")
```

Totality: total
Visibility: public export
lines : String->ListString
  Splits a string into a list of newline separated strings.

The empty string becomes an empty list. The last newline, if not followed by
any additional characters, is eaten (there will never be an empty string last element
in the result).

```idris example
lines "\rA BC\nD\r\nE\n"
```

Totality: total
Visibility: public export
unlines : ListString->String
  Joins the strings into a single string by appending a newline to each string.

```idris example
unlines ["line", "line2", "ln3", "D"]
```

Totality: total
Visibility: public export
dataStrM : String->Type
  A view checking whether a string is empty
and, if not, returning its head and tail

Totality: total
Visibility: public export
Constructors:
StrNil : StrM""
StrCons : (x : Char) -> (xs : String) ->StrM (strConsxxs)
strM : (x : String) ->StrMx
  To each string we can associate its StrM view

Totality: total
Visibility: public export
dataAsList : String->Type
  A view of a string as a lazy linked list of characters

Totality: total
Visibility: public export
Constructors:
Nil : AsList""
(::) : (c : Char) -> Lazy (AsListstr) ->AsList (strConscstr)
asList : (str : String) ->AsListstr
  To each string we can associate the lazy linked list of characters
it corresponds to once unpacked.

Totality: total
Visibility: public export
ltrim : String->String
  Trim whitespace on the left of the string

Totality: total
Visibility: public export
trim : String->String
  Trim whitespace on both sides of the string

Totality: total
Visibility: public export
span : (Char->Bool) ->String-> (String, String)
  Splits the string into a part before the predicate
returns False and the rest of the string.

```idris example
span (/= 'C') "ABCD"
```
```idris example
span (/= 'C') "EFGH"
```

Totality: total
Visibility: public export
break : (Char->Bool) ->String-> (String, String)
  Splits the string into a part before the predicate
returns True and the rest of the string.

```idris example
break (== 'C') "ABCD"
```
```idris example
break (== 'C') "EFGH"
```

Totality: total
Visibility: public export
split : (Char->Bool) ->String->List1String
  Splits the string into parts with the predicate
indicating separator characters.

```idris example
split (== '.') ".AB.C..D"
```

Totality: total
Visibility: public export
stringToNatOrZ : String->Nat
Totality: total
Visibility: public export
toUpper : String->String
Totality: total
Visibility: public export
toLower : String->String
Totality: total
Visibility: public export
strIndex : String->Int->Char
Visibility: public export
strLength : String->Int
Visibility: public export
strSubstr : Int->Int->String->String
Visibility: public export
strTail : String->String
Visibility: public export
isPrefixOf : String->String->Bool
Totality: total
Visibility: public export
isSuffixOf : String->String->Bool
Totality: total
Visibility: public export
isInfixOf : String->String->Bool
Totality: total
Visibility: public export
parseNumWithoutSign : ListChar->Integer->MaybeInteger
Totality: total
Visibility: public export
parsePositive : Numa=>String->Maybea
  Convert a positive number string to a Num.

```idris example
parsePositive "123"
```
```idris example
parsePositive {a=Int} " +123"
```

Totality: total
Visibility: public export
parseInteger : Numa=>Nega=>String->Maybea
  Convert a number string to a Num.

```idris example
parseInteger " 123"
```
```idris example
parseInteger {a=Int} " -123"
```

Totality: total
Visibility: public export
parseDouble : String->MaybeDouble
  Convert a number string to a Double.

```idris example
parseDouble "+123.123e-2"
```
```idris example
parseDouble " -123.123E+2"
```
```idris example
parseDouble " +123.123"
```

Visibility: export
null : String->Bool
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.These.html b/base/docs/Data.These.html index 76e41275ef..5327d79773 100644 --- a/base/docs/Data.These.html +++ b/base/docs/Data.These.html @@ -61,4 +61,4 @@ -

Data.These(source)

Definitions

dataThese : Type->Type->Type
Totality: total
Visibility: public export
Constructors:
This : a->Theseab
That : b->Theseab
Both : a->b->Theseab

Hints:
Semigroupa=>Applicative (Thesea)
BifoldableThese
BifunctorThese
BiinjectiveBoth
BitraversableThese
DecEqt=>DecEqs=>DecEq (Thesets)
Eqa=>Eqb=>Eq (Theseab)
Foldable (Thesea)
Functor (Thesea)
InjectiveThis
InjectiveThat
Injective (Bothx)
Injective (\{arg:0}=>Both{arg:0}y)
Semigroupa=>Semigroupb=>Semigroup (Theseab)
(Showa, Showb) =>Show (Theseab)
Traversable (Thesea)
Semigroupa=>Zippable (Thesea)
fromEither : Eitherab->Theseab
Totality: total
Visibility: public export
fromThis : Theseab->Maybea
Totality: total
Visibility: public export
fromThat : Theseab->Maybeb
Totality: total
Visibility: public export
fromBoth : Lazy a-> Lazy b->Theseab-> (a, b)
Totality: total
Visibility: public export
these : (a->c) -> (b->c) -> (a->b->c) ->Theseab->c
Totality: total
Visibility: public export
these' : Lazy a-> Lazy b-> (a->b->c) ->Theseab->c
Totality: total
Visibility: public export
swap : Theseab->Theseba
Totality: total
Visibility: public export
bifold : Semigroupm=>Thesemm->m
Totality: total
Visibility: public export
\ No newline at end of file +

Data.These(source)

Definitions

dataThese : Type->Type->Type
Totality: total
Visibility: public export
Constructors:
This : a->Theseab
That : b->Theseab
Both : a->b->Theseab

Hints:
Semigroupa=>Applicative (Thesea)
BifoldableThese
BifunctorThese
BiinjectiveBoth
BitraversableThese
DecEqt=>DecEqs=>DecEq (Thesets)
Eqa=>Eqb=>Eq (Theseab)
Foldable (Thesea)
Functor (Thesea)
InjectiveThis
InjectiveThat
Injective (Bothx)
Injective (\{arg:0}=>Both{arg:0}y)
Semigroupa=>Semigroupb=>Semigroup (Theseab)
(Showa, Showb) =>Show (Theseab)
Traversable (Thesea)
Semigroupa=>Zippable (Thesea)
fromEither : Eitherab->Theseab
Totality: total
Visibility: public export
fromThis : Theseab->Maybea
Totality: total
Visibility: public export
fromThat : Theseab->Maybeb
Totality: total
Visibility: public export
fromBoth : Lazy a-> Lazy b->Theseab-> (a, b)
Totality: total
Visibility: public export
these : (a->c) -> (b->c) -> (a->b->c) ->Theseab->c
Totality: total
Visibility: public export
these' : Lazy a-> Lazy b-> (a->b->c) ->Theseab->c
Totality: total
Visibility: public export
swap : Theseab->Theseba
Totality: total
Visibility: public export
bifold : Semigroupm=>Thesemm->m
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Vect.AtIndex.html b/base/docs/Data.Vect.AtIndex.html index f079282dc8..bd3d4133c8 100644 --- a/base/docs/Data.Vect.AtIndex.html +++ b/base/docs/Data.Vect.AtIndex.html @@ -74,4 +74,4 @@ presented vector. 2. Find the element at the given index in the presented vector. -

Definitions

dataAtIndex : Finn->Vectntype->type->Type
Totality: total
Visibility: public export
Constructors:
Here : AtIndexFZ (x::xs) x
There : AtIndexrestxsx->AtIndex (FSrest) (y::xs) x
elemDiffers : (y=x->Void) ->AtIndexFZ (y::xs) x->Void
Totality: total
Visibility: public export
elemNotInRest : (AtIndexzxsx->Void) ->AtIndex (FSz) (y::xs) x->Void
Totality: total
Visibility: public export
index : DecEqtype=> (idx : Finn) -> (x : type) -> (xs : Vectntype) ->Dec (AtIndexidxxsx)
  Is the element at the given index?

Totality: total
Visibility: public export
elemNotInRest : (DPairtype (AtIndexxxs) ->Void) ->DPairtype (AtIndex (FSx) (y::xs)) ->Void
Totality: total
Visibility: public export
index : DecEqtype=> (idx : Finn) -> (xs : Vectntype) ->Dec (DPairtype (AtIndexidxxs))
  What is the element at the given index?

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataAtIndex : Finn->Vectntype->type->Type
Totality: total
Visibility: public export
Constructors:
Here : AtIndexFZ (x::xs) x
There : AtIndexrestxsx->AtIndex (FSrest) (y::xs) x
elemDiffers : (y=x->Void) ->AtIndexFZ (y::xs) x->Void
Totality: total
Visibility: public export
elemNotInRest : (AtIndexzxsx->Void) ->AtIndex (FSz) (y::xs) x->Void
Totality: total
Visibility: public export
index : DecEqtype=> (idx : Finn) -> (x : type) -> (xs : Vectntype) ->Dec (AtIndexidxxsx)
  Is the element at the given index?

Totality: total
Visibility: public export
elemNotInRest : (DPairtype (AtIndexxxs) ->Void) ->DPairtype (AtIndex (FSx) (y::xs)) ->Void
Totality: total
Visibility: public export
index : DecEqtype=> (idx : Finn) -> (xs : Vectntype) ->Dec (DPairtype (AtIndexidxxs))
  What is the element at the given index?

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Vect.Elem.html b/base/docs/Data.Vect.Elem.html index 15854ed3d4..fb7959d17d 100644 --- a/base/docs/Data.Vect.Elem.html +++ b/base/docs/Data.Vect.Elem.html @@ -61,4 +61,4 @@ -

Data.Vect.Elem(source)

Definitions

dataElem : a->Vectka->Type
  A proof that some element is found in a vector

Totality: total
Visibility: public export
Constructors:
Here : Elemx (x::xs)
There : Elemxxs->Elemx (y::xs)

Hints:
DecEq (Elemxxs)
InjectiveThere
Uninhabited (Here=Theree)
Uninhabited (Theree=Here)
Uninhabited (Elemx [])
Uninhabited (x=z) =>Uninhabited (Elemzxs) =>Uninhabited (Elemz (x::xs))
neitherHereNorThere : Not (x=y) ->Not (Elemxxs) ->Not (Elemx (y::xs))
  An item not in the head and not in the tail is not in the Vect at all

Totality: total
Visibility: export
isElem : DecEqa=> (x : a) -> (xs : Vectna) ->Dec (Elemxxs)
  A decision procedure for Elem

Totality: total
Visibility: public export
get : (xs : Vectna) ->Elemxxs->a
  Get the element at the given position.

Totality: total
Visibility: public export
lookup : (xs : Vectna) ->Elemxxs->Singletonx
  Get the element at the given position, with proof that it is the desired element.

Totality: total
Visibility: public export
replaceElem : (xs : Vectkt) ->Elemxxs-> (y : t) -> (ys : Vectkt**Elemyys)
Totality: total
Visibility: public export
replaceByElem : (xs : Vectkt) ->Elemxxs->t->Vectkt
Totality: total
Visibility: public export
mapElem : (1_ : Elemxxs) ->Elem (fx) (mapfxs)
Totality: total
Visibility: public export
dropElem : (xs : Vect (Sk) t) ->Elemxxs->Vectkt
  Remove the element at the given position.

@xs The vector to be removed from
@p A proof that the element to be removed is in the vector

Totality: total
Visibility: public export
elemToFin : Elemxxs->Finn
  Erase the indices, returning the bounded numeric position of the element

Totality: total
Visibility: public export
indexElem : (1_ : Finn) -> (xs : Vectna) -> (x : a**Elemxxs)
  Find the element with a proof at a given bounded position

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Vect.Elem(source)

Definitions

dataElem : a->Vectka->Type
  A proof that some element is found in a vector

Totality: total
Visibility: public export
Constructors:
Here : Elemx (x::xs)
There : Elemxxs->Elemx (y::xs)

Hints:
DecEq (Elemxxs)
InjectiveThere
Uninhabited (Here=Theree)
Uninhabited (Theree=Here)
Uninhabited (Elemx [])
Uninhabited (x=z) =>Uninhabited (Elemzxs) =>Uninhabited (Elemz (x::xs))
neitherHereNorThere : Not (x=y) ->Not (Elemxxs) ->Not (Elemx (y::xs))
  An item not in the head and not in the tail is not in the Vect at all

Totality: total
Visibility: export
isElem : DecEqa=> (x : a) -> (xs : Vectna) ->Dec (Elemxxs)
  A decision procedure for Elem

Totality: total
Visibility: public export
get : (xs : Vectna) ->Elemxxs->a
  Get the element at the given position.

Totality: total
Visibility: public export
lookup : (xs : Vectna) ->Elemxxs->Singletonx
  Get the element at the given position, with proof that it is the desired element.

Totality: total
Visibility: public export
replaceElem : (xs : Vectkt) ->Elemxxs-> (y : t) -> (ys : Vectkt**Elemyys)
Totality: total
Visibility: public export
replaceByElem : (xs : Vectkt) ->Elemxxs->t->Vectkt
Totality: total
Visibility: public export
mapElem : (1_ : Elemxxs) ->Elem (fx) (mapfxs)
Totality: total
Visibility: public export
dropElem : (xs : Vect (Sk) t) ->Elemxxs->Vectkt
  Remove the element at the given position.

@xs The vector to be removed from
@p A proof that the element to be removed is in the vector

Totality: total
Visibility: public export
elemToFin : Elemxxs->Finn
  Erase the indices, returning the bounded numeric position of the element

Totality: total
Visibility: public export
indexElem : (1_ : Finn) -> (xs : Vectna) -> (x : a**Elemxxs)
  Find the element with a proof at a given bounded position

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Data.Vect.Quantifiers.html b/base/docs/Data.Vect.Quantifiers.html index b5b18a32bc..ac5ec110fa 100644 --- a/base/docs/Data.Vect.Quantifiers.html +++ b/base/docs/Data.Vect.Quantifiers.html @@ -61,4 +61,4 @@ -

Data.Vect.Quantifiers(source)

Definitions

dataAny : (0_ : (a->Type)) ->Vectna->Type
  A proof that some element of a vector satisfies some property

@ p the property to be satsified

Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (x::xs)
  A proof that the satisfying element is the first one in the `Vect`
There : Anypxs->Anyp (x::xs)
  A proof that the satsifying element is in the tail of the `Vect`

Hints:
Uninhabited (Anyp [])
Uninhabited (px) =>Uninhabited (Anypxs) =>Uninhabited (Anyp (x::xs))
anyElim : (Anypxs->b) -> (px->b) ->Anyp (x::xs) ->b
  Eliminator for `Any`

Totality: total
Visibility: public export
any : ((x : a) ->Dec (px)) -> (xs : Vectna) ->Dec (Anypxs)
  Given a decision procedure for a property, determine if an element of a
vector satisfies it.

@ p the property to be satisfied
@ dec the decision procedure
@ xs the vector to examine

Totality: total
Visibility: public export
mapProperty : (px->qx) ->Anypl->Anyql
Totality: total
Visibility: export
toExists : Anypxs->Existsp
Totality: total
Visibility: export
anyToFin : Anypxs->Finn
  Get the bounded numeric position of the element satisfying the predicate

Totality: total
Visibility: public export
anyToFinCorrect : (witness : Anypxs) ->p (index (anyToFinwitness) xs)
  `anyToFin`'s return type satisfies the predicate

Totality: total
Visibility: export
dataAll : (0_ : (a->Type)) ->Vectna->Type
  A proof that all elements of a vector satisfy a property. It is a list of
proofs, corresponding element-wise to the `Vect`.

Totality: total
Visibility: public export
Constructors:
Nil : Allp []
(::) : px->Allpxs->Allp (x::xs)

Hints:
All (Ord.p) xs=>All (Eq.p) xs
All (Monoid.p) xs=>All (Semigroup.p) xs
All (Eq.p) xs=>Eq (Allpxs)
All (Monoid.p) xs=>Monoid (Allpxs)
All (Ord.p) xs=>Ord (Allpxs)
All (Semigroup.p) xs=>Semigroup (Allpxs)
All (Show.p) xs=>Show (Allpxs)
Either (Uninhabited (px)) (Uninhabited (Allpxs)) =>Uninhabited (Allp (x::xs))
negAnyAll : Not (Anypxs) ->All (Not.p) xs
  If there does not exist an element that satifies the property, then it is
the case that all elements do not satisfy.

Totality: total
Visibility: export
notAllHere : Not (px) ->Not (Allp (x::xs))
Totality: total
Visibility: export
notAllThere : Not (Allpxs) ->Not (Allp (x::xs))
Totality: total
Visibility: export
all : ((x : a) ->Dec (px)) -> (xs : Vectna) ->Dec (Allpxs)
  Given a decision procedure for a property, decide whether all elements of
a vector satisfy it.

@ p the property
@ dec the decision procedure
@ xs the vector to examine

Totality: total
Visibility: public export
mapProperty : (px->qx) ->Allpl->Allql
Totality: total
Visibility: export
mapPropertyRelevant : ((x : a) ->px->qx) ->Allpxs->Allqxs
  A variant of `mapProperty` that also allows accessing
the values of `xs` that the corresponding `ps` prove `p` about.

Totality: total
Visibility: export
imapProperty : (0i : (a->Type)) -> (ix=>px->qx) ->Allias=>Allpas->Allqas
Totality: total
Visibility: public export
forget : All (constp) xs->Vectnp
  If `All` witnesses a property that does not depend on the vector `xs`
it's indexed by, then it is really a `Vect`.

Totality: total
Visibility: public export
remember : (xs : Vectnty) ->All (constty) xs
  Any `Vect` can be lifted to become an `All`
witnessing the presence of elements of the `Vect`'s type.

Totality: total
Visibility: public export
forgetRememberId : (xs : Vectnty) ->forget (rememberxs) =xs
Totality: total
Visibility: export
castAllConst : All (constty) xs->All (constty) ys
Totality: total
Visibility: public export
rememberForgetId : (vs : All (constty) xs) ->castAllConst (remember (forgetvs)) =vs
Totality: total
Visibility: export
zipPropertyWith : (px->qx->rx) ->Allpxs->Allqxs->Allrxs
Totality: total
Visibility: export
traverseProperty : Applicativef=> (px->f (qx)) ->Allpxs->f (Allqxs)
  A `Traversable`'s `traverse` for `All`,
for traversals that don't care about the values of the associated `Vect`.

Totality: total
Visibility: export
traversePropertyRelevant : Applicativef=> ((x : a) ->px->f (qx)) ->Allpxs->f (Allqxs)
  A `Traversable`'s `traverse` for `All`,
in case the elements of the `Vect` that the `All` is proving `p` about are also needed.

Totality: total
Visibility: export
tabulate : ((ix : Finn) ->p (indexixxs)) ->Allpxs
Totality: total
Visibility: public export
(++) : Allpxs->Allpys->Allp (xs++ys)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
HVect : VectnType->Type
  A heterogeneous vector of arbitrary types

Totality: total
Visibility: public export
head : Allp (x::xs) ->px
  Take the first element.

Totality: total
Visibility: export
tail : Allp (x::xs) ->Allpxs
  Take all but the first element.

Totality: total
Visibility: export
drop : (n : Nat) ->Allpxs->Allp (the (Vectma) (dropnxs))
  Drop the first n elements given knowledge that
there are at least n elements available.

Totality: total
Visibility: export
drop' : (l : Nat) ->Allpxs->Allp (drop'lxs)
  Drop up to the first l elements, stopping early
if all elements have been dropped.

Totality: total
Visibility: export
\ No newline at end of file +

Data.Vect.Quantifiers(source)

Definitions

dataAny : (0_ : (a->Type)) ->Vectna->Type
  A proof that some element of a vector satisfies some property

@ p the property to be satsified

Totality: total
Visibility: public export
Constructors:
Here : px->Anyp (x::xs)
  A proof that the satisfying element is the first one in the `Vect`
There : Anypxs->Anyp (x::xs)
  A proof that the satsifying element is in the tail of the `Vect`

Hints:
Uninhabited (Anyp [])
Uninhabited (px) =>Uninhabited (Anypxs) =>Uninhabited (Anyp (x::xs))
anyElim : (Anypxs->b) -> (px->b) ->Anyp (x::xs) ->b
  Eliminator for `Any`

Totality: total
Visibility: public export
any : ((x : a) ->Dec (px)) -> (xs : Vectna) ->Dec (Anypxs)
  Given a decision procedure for a property, determine if an element of a
vector satisfies it.

@ p the property to be satisfied
@ dec the decision procedure
@ xs the vector to examine

Totality: total
Visibility: public export
mapProperty : (px->qx) ->Anypl->Anyql
Totality: total
Visibility: export
toExists : Anypxs->Existsp
Totality: total
Visibility: export
anyToFin : Anypxs->Finn
  Get the bounded numeric position of the element satisfying the predicate

Totality: total
Visibility: public export
anyToFinCorrect : (witness : Anypxs) ->p (index (anyToFinwitness) xs)
  `anyToFin`'s return type satisfies the predicate

Totality: total
Visibility: export
dataAll : (0_ : (a->Type)) ->Vectna->Type
  A proof that all elements of a vector satisfy a property. It is a list of
proofs, corresponding element-wise to the `Vect`.

Totality: total
Visibility: public export
Constructors:
Nil : Allp []
(::) : px->Allpxs->Allp (x::xs)

Hints:
All (Ord.p) xs=>All (Eq.p) xs
All (Monoid.p) xs=>All (Semigroup.p) xs
All (Eq.p) xs=>Eq (Allpxs)
All (Monoid.p) xs=>Monoid (Allpxs)
All (Ord.p) xs=>Ord (Allpxs)
All (Semigroup.p) xs=>Semigroup (Allpxs)
All (Show.p) xs=>Show (Allpxs)
Either (Uninhabited (px)) (Uninhabited (Allpxs)) =>Uninhabited (Allp (x::xs))
negAnyAll : Not (Anypxs) ->All (Not.p) xs
  If there does not exist an element that satifies the property, then it is
the case that all elements do not satisfy.

Totality: total
Visibility: export
notAllHere : Not (px) ->Not (Allp (x::xs))
Totality: total
Visibility: export
notAllThere : Not (Allpxs) ->Not (Allp (x::xs))
Totality: total
Visibility: export
all : ((x : a) ->Dec (px)) -> (xs : Vectna) ->Dec (Allpxs)
  Given a decision procedure for a property, decide whether all elements of
a vector satisfy it.

@ p the property
@ dec the decision procedure
@ xs the vector to examine

Totality: total
Visibility: public export
mapProperty : (px->qx) ->Allpl->Allql
Totality: total
Visibility: export
mapPropertyRelevant : ((x : a) ->px->qx) ->Allpxs->Allqxs
  A variant of `mapProperty` that also allows accessing
the values of `xs` that the corresponding `ps` prove `p` about.

Totality: total
Visibility: export
imapProperty : (0i : (a->Type)) -> (ix=>px->qx) ->Allias=>Allpas->Allqas
Totality: total
Visibility: public export
forget : All (constp) xs->Vectnp
  If `All` witnesses a property that does not depend on the vector `xs`
it's indexed by, then it is really a `Vect`.

Totality: total
Visibility: public export
remember : (xs : Vectnty) ->All (constty) xs
  Any `Vect` can be lifted to become an `All`
witnessing the presence of elements of the `Vect`'s type.

Totality: total
Visibility: public export
forgetRememberId : (xs : Vectnty) ->forget (rememberxs) =xs
Totality: total
Visibility: export
castAllConst : All (constty) xs->All (constty) ys
Totality: total
Visibility: public export
rememberForgetId : (vs : All (constty) xs) ->castAllConst (remember (forgetvs)) =vs
Totality: total
Visibility: export
zipPropertyWith : (px->qx->rx) ->Allpxs->Allqxs->Allrxs
Totality: total
Visibility: export
traverseProperty : Applicativef=> (px->f (qx)) ->Allpxs->f (Allqxs)
  A `Traversable`'s `traverse` for `All`,
for traversals that don't care about the values of the associated `Vect`.

Totality: total
Visibility: export
traversePropertyRelevant : Applicativef=> ((x : a) ->px->f (qx)) ->Allpxs->f (Allqxs)
  A `Traversable`'s `traverse` for `All`,
in case the elements of the `Vect` that the `All` is proving `p` about are also needed.

Totality: total
Visibility: export
tabulate : ((ix : Finn) ->p (indexixxs)) ->Allpxs
Totality: total
Visibility: public export
(++) : Allpxs->Allpys->Allp (xs++ys)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
HVect : VectnType->Type
  A heterogeneous vector of arbitrary types

Totality: total
Visibility: public export
head : Allp (x::xs) ->px
  Take the first element.

Totality: total
Visibility: export
tail : Allp (x::xs) ->Allpxs
  Take all but the first element.

Totality: total
Visibility: export
drop : (n : Nat) ->Allpxs->Allp (the (Vectma) (dropnxs))
  Drop the first n elements given knowledge that
there are at least n elements available.

Totality: total
Visibility: export
drop' : (l : Nat) ->Allpxs->Allp (drop'lxs)
  Drop up to the first l elements, stopping early
if all elements have been dropped.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Vect.html b/base/docs/Data.Vect.html index ff95eed359..c16d39fd4b 100644 --- a/base/docs/Data.Vect.html +++ b/base/docs/Data.Vect.html @@ -61,4 +61,4 @@ -

Data.Vect(source)

Reexports

importpublic Data.Fin
importpublic Data.Zippable

Definitions

dataVect : Nat->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : Vect0elem
  Empty vector
(::) : elem->Vectlenelem->Vect (Slen) elem
  A non-empty vector of length `S len`, consisting of a head element and
the rest of the list, of length `len`.

Hints:
Applicative (Vectk)
Biinjective(::)
DecEqa=>DecEq (Vectna)
Eqa=>Eq (Vectna)
Foldable (Vectn)
Functor (Vectn)
Injective ((x::))
Injective (\x=>x::xs)
Monad (Vectk)
Monoida=>Monoid (Vectka)
Ordelem=>Ord (Vectlenelem)
Semigroupa=>Semigroup (Vectka)
Showelem=>Show (Vectlenelem)
Traversable (Vectk)
Zippable (Vectk)
length : Vectlenelem->Nat
Totality: total
Visibility: public export
lengthCorrect : (xs : Vectlenelem) ->lengthxs=len
  Show that the length function on vectors in fact calculates the length

Totality: total
Visibility: export
invertVectZ : (xs : Vect0a) ->xs= []
Totality: total
Visibility: export
tail : Vect (Slen) elem->Vectlenelem
  All but the first element of the vector

```idris example
tail [1,2,3,4]
```

Totality: total
Visibility: public export
head : Vect (Slen) elem->elem
  Only the first element of the vector

```idris example
head [1,2,3,4]
```

Totality: total
Visibility: public export
invertVectS : (xs : Vect (Sn) a) ->xs=headxs::tailxs
Totality: total
Visibility: export
last : Vect (Slen) elem->elem
  The last element of the vector

```idris example
last [1,2,3,4]
```

Totality: total
Visibility: public export
init : Vect (Slen) elem->Vectlenelem
  All but the last element of the vector

```idris example
init [1,2,3,4]
```

Totality: total
Visibility: public export
take : (n : Nat) ->Vect (n+m) type->Vectntype
  Extract the first `n` elements of a Vect.

Totality: total
Visibility: public export
take : (n : Nat) ->Streama->Vectna
  Take precisely n elements from the stream.
@ n how many elements to take
@ xs the stream

Totality: total
Visibility: public export
drop : (n : Nat) ->Vect (n+m) elem->Vectmelem
  Drop the first `n` elements of a Vect.

Totality: total
Visibility: public export
drop' : (n : Nat) ->Vectlelem->Vect (minusln) elem
  Drop up to the first `n` elements of a Vect.

Totality: total
Visibility: public export
allFins : (n : Nat) ->Vectn (Finn)
  Generate all of the Fin elements as a Vect whose length is the number of
elements.

Useful, for example, when one wants all the indices for specific Vect.

Totality: total
Visibility: public export
index : Finlen->Vectlenelem->elem
  Extract a particular element from a vector

```idris example
index 1 [1,2,3,4]
```

Totality: total
Visibility: public export
insertAt : Fin (Slen) ->elem->Vectlenelem->Vect (Slen) elem
  Insert an element at a particular index

```idris example
insertAt 1 8 [1,2,3,4]
```

Totality: total
Visibility: public export
deleteAt : Fin (Slen) ->Vect (Slen) elem->Vectlenelem
  Construct a new vector consisting of all but the indicated element

```idris example
deleteAt 1 [1,2,3,4]
```

Totality: total
Visibility: public export
replaceAt : Finlen->elem->Vectlenelem->Vectlenelem
  Replace an element at a particlar index with another

```idris example
replaceAt 1 8 [1,2,3,4]
```

Totality: total
Visibility: public export
updateAt : Finlen-> (elem->elem) ->Vectlenelem->Vectlenelem
  Replace the element at a particular index with the result of applying a function to it
@ i the index to replace at
@ f the update function
@ xs the vector to replace in

```idris example
updateAt 1 (+10) [1,2,3,4]
```

Totality: total
Visibility: public export
(++) : Vectmelem->Vectnelem->Vect (m+n) elem
  Append two vectors

```idris example
[1,2,3,4] ++ [5,6]
```

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
snoc : Vectna->a->Vect (Sn) a
  Add an element at the end of the vector.
The main use case for it is to get the expected type signature
`Vect n a -> a -> Vect (S n) a` instead of
`Vect n a -> a -> Vect (n + 1) a` which you get by using `++ [x]`

Snoc gets its name by reversing `cons`, indicating we are
tacking on the element at the end rather than the begining.
`append` would also be a suitable name.

@ xs The vector to be appended
@ v The value to append

Totality: total
Visibility: public export
unsnoc : Vect (Sn) a-> (Vectna, a)
  Pop the last element from a vector. This is the opposite of `snoc`, in that
`(uncurry snoc) unsnoc xs` is `xs`. It is equivalent to `(init xs, last xs)`,
but traverses the vector once.

@ xs The vector to pop the element from.

Totality: total
Visibility: public export
replicate : (len : Nat) ->elem->Vectlenelem
  Repeat some value some number of times.

@ len the number of times to repeat it
@ x the value to repeat

```idris example
replicate 4 1
```

Totality: total
Visibility: public export
mergeBy : (elem->elem->Ordering) ->Vectnelem->Vectmelem->Vect (n+m) elem
  Merge two ordered vectors

```idris example
mergeBy compare (fromList [1,3,5]) (fromList [2,3,4,5,6])
```

Totality: total
Visibility: export
merge : Ordelem=>Vectnelem->Vectmelem->Vect (n+m) elem
Totality: total
Visibility: export
replaceAtSameIndex : (xs : Vectna) -> (i : Finn) -> (0y : a) ->indexi (replaceAtiyxs) =y
Totality: total
Visibility: export
replaceAtDiffIndexPreserves : (xs : Vectna) -> (i : Finn) -> (j : Finn) ->Not (i=j) -> (0y : a) ->indexi (replaceAtjyxs) =indexixs
Totality: total
Visibility: export
reverseOnto : Vectnelem->Vectmelem->Vect (n+m) elem
  Reverse the second vector, prepending the result to the first.

```idris example
reverseOnto [0, 1] [10, 11, 12]
```

Totality: total
Visibility: public export
reverse : Vectlenelem->Vectlenelem
  Reverse the order of the elements of a vector

```idris example
reverse [1,2,3,4]
```

Totality: total
Visibility: public export
intersperse : elem->Vectlenelem->Vect (len+predlen) elem
  Alternate an element between the other elements of a vector
@ sep the element to intersperse
@ xs the vector to separate with `sep`

```idris example
intersperse 0 [1,2,3,4]
```

Totality: total
Visibility: export
toVect : (n : Nat) ->Lista->Maybe (Vectna)
Totality: total
Visibility: public export
fromList' : Vectlenelem-> (l : Listelem) ->Vect (lengthl+len) elem
Totality: total
Visibility: public export
fromList : (xs : Listelem) ->Vect (lengthxs) elem
  Convert a list to a vector.

The length of the list should be statically known.

```idris example
fromList [1,2,3,4]
```

Totality: total
Visibility: public export
mapMaybe : (a->Maybeb) ->Vectlena-> (m : Nat**Vectmb)
  Map a partial function across a vector, returning those elements for which
the function had a value.

The first projection of the resulting pair (ie the length) will always be
at most the length of the input vector. This is not, however, guaranteed
by the type.

@ f the partial function (expressed by returning `Maybe`)
@ xs the vector to check for results

```idris example
mapMaybe ((find (=='a')) . unpack) (fromList ["abc","ade","bgh","xyz"])
```

Totality: total
Visibility: export
foldrImpl : (t->acc->acc) ->acc-> (acc->acc) ->Vectnt->acc
Totality: total
Visibility: public export
foldrImplGoLemma : (x : a) -> (xs : Vectna) -> (f : (a->b->b)) -> (e : b) -> (go : (b->b)) ->go (foldrImplfe (fx) xs) =foldrImplfe (go.fx) xs
Totality: total
Visibility: export
concat : Vectm (Vectnelem) ->Vect (m*n) elem
  Flatten a vector of equal-length vectors

```idris example
concat [[1,2,3], [4,5,6]]
```

Totality: total
Visibility: public export
foldr1 : (t->t->t) ->Vect (Sn) t->t
  Foldr without seeding the accumulator

```idris example
foldr1 (-) (fromList [1,2,3])
```

Totality: total
Visibility: public export
foldl1 : (t->t->t) ->Vect (Sn) t->t
  Foldl without seeding the accumulator

```idris example
foldl1 (-) (fromList [1,2,3])
```

Totality: total
Visibility: public export
scanr : (elem->res->res) ->res->Vectlenelem->Vect (Slen) res
  The scanr function is similar to foldr, but returns all the intermediate
accumulator states in the form of a vector. Note the intermediate accumulator
states appear in the result in reverse order - the first state appears last
in the result.

```idris example
scanr (-) 0 (fromList [1,2,3])
```

Totality: total
Visibility: public export
scanr1 : (elem->elem->elem) ->Vectlenelem->Vectlenelem
  The scanr1 function is a variant of scanr that doesn't require an explicit
starting value.
It assumes the last element of the vector to be the starting value and then
starts the fold with the element preceding it.

```idris example
scanr1 (-) (fromList [1,2,3])
```

Totality: total
Visibility: public export
scanl : (res->elem->res) ->res->Vectlenelem->Vect (Slen) res
  The scanl function is similar to foldl, but returns all the intermediate
accumulator states in the form of a vector.

```idris example
scanl (-) 0 (fromList [1,2,3])
```

Totality: total
Visibility: public export
scanl1 : (elem->elem->elem) ->Vectlenelem->Vectlenelem
  The scanl1 function is a variant of scanl that doesn't require an explicit
starting value.
It assumes the first element of the vector to be the starting value and then
starts the fold with the element following it.

```idris example
scanl1 (-) (fromList [1,2,3])
```

Totality: total
Visibility: public export
lookupBy : (key->key->Bool) ->key->Vectn (key, val) ->Maybeval
  Find the association of some key with a user-provided comparison
@ p the comparison operator for keys (True if they match)
@ e the key to look for

```idris example
lookupBy (==) 2 [(1, 'a'), (2, 'b'), (3, 'c')]
```

Totality: total
Visibility: public export
lookup : Eqkey=>key->Vectn (key, val) ->Maybeval
  Find the assocation of some key using the default Boolean equality test

```idris example
lookup 3 [(1, 'a'), (2, 'b'), (3, 'c')]
```

Totality: total
Visibility: public export
hasAnyBy : (elem->elem->Bool) ->Vectmelem->Vectlenelem->Bool
  Check if any element of xs is found in elems by a user-provided comparison
@ p the comparison operator
@ elems the vector to search
@ xs what to search for

```idris example
hasAnyBy (==) [2,5] [1,2,3,4]
```

Totality: total
Visibility: public export
hasAny : Eqelem=>Vectmelem->Vectlenelem->Bool
  Check if any element of xs is found in elems using the default Boolean equality test

```idris example
hasAny [2,5] [1,2,3,4]
```

Totality: total
Visibility: public export
find : (elem->Bool) ->Vectlenelem->Maybeelem
  Find the first element of the vector that satisfies some test
@ p the test to satisfy

```idris example
find (== 3) [1,2,3,4]
```

Totality: total
Visibility: public export
findIndex : (elem->Bool) ->Vectlenelem->Maybe (Finlen)
  Find the index of the first element of the vector that satisfies some test

```idris example
findIndex (== 3) [1,2,3,4]
```

Totality: total
Visibility: public export
findIndices : (elem->Bool) ->Vectmelem->List (Finm)
  Find the indices of all elements that satisfy some test

```idris example
findIndices (< 3) [1,2,3,4]
```

Totality: total
Visibility: public export
elemIndexBy : (elem->elem->Bool) ->elem->Vectmelem->Maybe (Finm)
  Find the index of the first element of the vector that satisfies some test

```idris example
elemIndexBy (==) 3 [1,2,3,4]
```

Totality: total
Visibility: public export
elemIndex : Eqelem=>elem->Vectmelem->Maybe (Finm)
  Find the index of the first element of the vector equal to the given one.

```idris example
elemIndex 3 [1,2,3,4]
```

Totality: total
Visibility: public export
elemIndicesBy : (elem->elem->Bool) ->elem->Vectmelem->List (Finm)
  Find the indices of all elements that satisfy some test

```idris example
elemIndicesBy (<=) 3 [1,2,3,4]
```

Totality: total
Visibility: public export
elemIndices : Eqelem=>elem->Vectmelem->List (Finm)
  Find the indices of all elements uquals to the given one

```idris example
elemIndices 3 [1,2,3,4,3]
```

Totality: total
Visibility: public export
filter : (elem->Bool) ->Vectlenelem-> (p : Nat**Vectpelem)
  Find all elements of a vector that satisfy some test

```idris example
filter (< 3) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
nubBy : (elem->elem->Bool) ->Vectlenelem-> (p : Nat**Vectpelem)
  Make the elements of some vector unique by some test

```idris example
nubBy (==) (fromList [1,2,2,3,4,4])
```

Totality: total
Visibility: public export
nub : Eqelem=>Vectlenelem-> (p : Nat**Vectpelem)
  Make the elements of some vector unique by the default Boolean equality

```idris example
nub (fromList [1,2,2,3,4,4])
```

Totality: total
Visibility: public export
deleteBy : (elem->elem->Bool) ->elem->Vectlenelem-> (p : Nat**Vectpelem)
  Delete first element from list according to some test

```idris example
deleteBy (<) 3 (fromList [1,2,2,3,4,4])
```

Totality: total
Visibility: public export
delete : Eqelem=>elem->Vectlenelem-> (p : Nat**Vectpelem)
  Delete first element from list equal to the given one

```idris example
delete 2 (fromList [1,2,2,3,4,4])
```

Totality: total
Visibility: public export
splitAt : (n : Nat) ->Vect (n+m) elem-> (Vectnelem, Vectmelem)
  A tuple where the first element is a `Vect` of the `n` first elements and
the second element is a `Vect` of the remaining elements of the original.
It is equivalent to `(take n xs, drop n xs)` (`splitAtTakeDrop`),
but is more efficient.

@ n the index to split at
@ xs the `Vect` to split in two

```idris example
splitAt 2 (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
partition : (elem->Bool) ->Vectlenelem-> ((p : Nat**Vectpelem), (q : Nat**Vectqelem))
  A tuple where the first element is a `Vect` of the `n` elements passing given test
and the second element is a `Vect` of the remaining elements of the original.

```idris example
partition (== 2) (fromList [1,2,3,2,4])
```

Totality: total
Visibility: public export
kSplits : (k : Nat) -> (n : Nat) ->Vect (k*n) a->Vectk (Vectna)
  Split a vector whose length is a multiple of two numbers, k times n, into k
sections of length n.

```idris example
> kSplits 2 4 [1, 2, 3, 4, 5, 6, 7, 8]
[[1, 2, 3, 4], [5, 6, 7, 8]]
```

Totality: total
Visibility: public export
nSplits : (k : Nat) -> (n : Nat) ->Vect (k*n) a->Vectn (Vectka)
  Split a vector whose length is a multiple of two numbers, k times n, into n
sections of length k.

```idris example
> nSplits 2 4 [1, 2, 3, 4, 5, 6, 7, 8]
[[1, 5], [2, 6], [3, 7], [4, 8]]
```

Totality: total
Visibility: public export
isPrefixOfBy : (elem->elem->Bool) ->Vectmelem->Vectlenelem->Bool
  Verify vector prefix

```idris example
isPrefixOfBy (==) (fromList [1,2]) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
isPrefixOf : Eqelem=>Vectmelem->Vectlenelem->Bool
  Verify vector prefix

```idris example
isPrefixOf (fromList [1,2]) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
isSuffixOfBy : (elem->elem->Bool) ->Vectmelem->Vectlenelem->Bool
  Verify vector suffix

```idris example
isSuffixOfBy (==) (fromList [3,4]) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
isSuffixOf : Eqelem=>Vectmelem->Vectlenelem->Bool
  Verify vector suffix

```idris example
isSuffixOf (fromList [3,4]) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
maybeToVect : Maybeelem-> (p : Nat**Vectpelem)
  Convert Maybe type into Vect

```idris example
maybeToVect (Just 2)
```

Totality: total
Visibility: public export
vectToMaybe : Vectlenelem->Maybeelem
  Convert first element of Vect (if exists) into Maybe.

```idris example
vectToMaybe [2]
```

Totality: total
Visibility: public export
catMaybes : Vectn (Maybeelem) -> (p : Nat**Vectpelem)
  Filter out Nothings from Vect and unwrap the Justs

```idris example
catMaybes [Just 1, Just 2, Nothing, Nothing, Just 5]
```

Totality: total
Visibility: public export
diag : Vectlen (Vectlenelem) ->Vectlenelem
  Get diagonal elements

```idris example
diag [[1,2,3], [4,5,6], [7,8,9]]
```

Totality: total
Visibility: public export
tabulate : (Finlen->a) ->Vectlena
Totality: total
Visibility: public export
range : Vectlen (Finlen)
Totality: total
Visibility: public export
tabulate : (SubsetNat (\{arg:0}=>LT{arg:0}len) ->a) ->Vectlena
Totality: total
Visibility: public export
range : Vectlen (SubsetNat (\{arg:0}=>LT{arg:0}len))
Totality: total
Visibility: public export
zipWithIndexLinear : (0f : (a->a->{a:7178})) -> (xs : Vectna) -> (ys : Vectna) -> (i : Finn) ->indexi (zipWithfxsys) =f (indexixs) (indexiys)
Totality: total
Visibility: export
zipWith3IndexLinear : (0f : (a->a->a->{a:7281})) -> (xs : Vectna) -> (ys : Vectna) -> (zs : Vectna) -> (i : Finn) ->indexi (zipWith3fxsyszs) =f (indexixs) (indexiys) (indexizs)
Totality: total
Visibility: export
permute : Vectlena->Vectlen (Finlen) ->Vectlena
  Rearrange the elements of a vector according to some permutation of its
indices.
@ v the vector whose elements to rearrange
@ p the permutation to apply

```idris example
> permute ['a', 'b', 'c', 'd'] [0, 3, 2, 1]
['a', 'd' , 'c' ,'b']
```

Totality: total
Visibility: export
transpose : Vectm (Vectnelem) ->Vectn (Vectmelem)
  Transpose a `Vect` of `Vect`s, turning rows into columns and vice versa.

This is like zipping all the inner `Vect`s together and is equivalent to `traverse id` (`transposeTraverse`).

As the types ensure rectangularity, this is an involution, unlike `Prelude.List.transpose`.

```idris example
transpose [[1,2], [3,4], [5,6], [7,8]]
```

Totality: total
Visibility: public export
exactLength : (len : Nat) ->Vectma->Maybe (Vectlena)
Totality: total
Visibility: export
overLength : (len : Nat) ->Vectma->Maybe (p : Nat**Vect (plusplen) a)
  If the given Vect is at least the required length, return a Vect with
at least that length in its type, otherwise return Nothing
@len the required length
@xs the vector with the desired length

Totality: total
Visibility: export
\ No newline at end of file +

Data.Vect(source)

Reexports

importpublic Data.Fin
importpublic Data.Zippable

Definitions

dataVect : Nat->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : Vect0elem
  Empty vector
(::) : elem->Vectlenelem->Vect (Slen) elem
  A non-empty vector of length `S len`, consisting of a head element and
the rest of the list, of length `len`.

Hints:
Applicative (Vectk)
Biinjective(::)
DecEqa=>DecEq (Vectna)
Eqa=>Eq (Vectna)
Foldable (Vectn)
Functor (Vectn)
Injective ((x::))
Injective (\x=>x::xs)
Monad (Vectk)
Monoida=>Monoid (Vectka)
Ordelem=>Ord (Vectlenelem)
Semigroupa=>Semigroup (Vectka)
Showelem=>Show (Vectlenelem)
Traversable (Vectk)
Zippable (Vectk)
length : Vectlenelem->Nat
Totality: total
Visibility: public export
lengthCorrect : (xs : Vectlenelem) ->lengthxs=len
  Show that the length function on vectors in fact calculates the length

Totality: total
Visibility: export
invertVectZ : (xs : Vect0a) ->xs= []
Totality: total
Visibility: export
tail : Vect (Slen) elem->Vectlenelem
  All but the first element of the vector

```idris example
tail [1,2,3,4]
```

Totality: total
Visibility: public export
head : Vect (Slen) elem->elem
  Only the first element of the vector

```idris example
head [1,2,3,4]
```

Totality: total
Visibility: public export
invertVectS : (xs : Vect (Sn) a) ->xs=headxs::tailxs
Totality: total
Visibility: export
last : Vect (Slen) elem->elem
  The last element of the vector

```idris example
last [1,2,3,4]
```

Totality: total
Visibility: public export
init : Vect (Slen) elem->Vectlenelem
  All but the last element of the vector

```idris example
init [1,2,3,4]
```

Totality: total
Visibility: public export
take : (n : Nat) ->Vect (n+m) type->Vectntype
  Extract the first `n` elements of a Vect.

Totality: total
Visibility: public export
take : (n : Nat) ->Streama->Vectna
  Take precisely n elements from the stream.
@ n how many elements to take
@ xs the stream

Totality: total
Visibility: public export
drop : (n : Nat) ->Vect (n+m) elem->Vectmelem
  Drop the first `n` elements of a Vect.

Totality: total
Visibility: public export
drop' : (n : Nat) ->Vectlelem->Vect (minusln) elem
  Drop up to the first `n` elements of a Vect.

Totality: total
Visibility: public export
allFins : (n : Nat) ->Vectn (Finn)
  Generate all of the Fin elements as a Vect whose length is the number of
elements.

Useful, for example, when one wants all the indices for specific Vect.

Totality: total
Visibility: public export
index : Finlen->Vectlenelem->elem
  Extract a particular element from a vector

```idris example
index 1 [1,2,3,4]
```

Totality: total
Visibility: public export
insertAt : Fin (Slen) ->elem->Vectlenelem->Vect (Slen) elem
  Insert an element at a particular index

```idris example
insertAt 1 8 [1,2,3,4]
```

Totality: total
Visibility: public export
deleteAt : Fin (Slen) ->Vect (Slen) elem->Vectlenelem
  Construct a new vector consisting of all but the indicated element

```idris example
deleteAt 1 [1,2,3,4]
```

Totality: total
Visibility: public export
replaceAt : Finlen->elem->Vectlenelem->Vectlenelem
  Replace an element at a particlar index with another

```idris example
replaceAt 1 8 [1,2,3,4]
```

Totality: total
Visibility: public export
updateAt : Finlen-> (elem->elem) ->Vectlenelem->Vectlenelem
  Replace the element at a particular index with the result of applying a function to it
@ i the index to replace at
@ f the update function
@ xs the vector to replace in

```idris example
updateAt 1 (+10) [1,2,3,4]
```

Totality: total
Visibility: public export
(++) : Vectmelem->Vectnelem->Vect (m+n) elem
  Append two vectors

```idris example
[1,2,3,4] ++ [5,6]
```

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
snoc : Vectna->a->Vect (Sn) a
  Add an element at the end of the vector.
The main use case for it is to get the expected type signature
`Vect n a -> a -> Vect (S n) a` instead of
`Vect n a -> a -> Vect (n + 1) a` which you get by using `++ [x]`

Snoc gets its name by reversing `cons`, indicating we are
tacking on the element at the end rather than the begining.
`append` would also be a suitable name.

@ xs The vector to be appended
@ v The value to append

Totality: total
Visibility: public export
unsnoc : Vect (Sn) a-> (Vectna, a)
  Pop the last element from a vector. This is the opposite of `snoc`, in that
`(uncurry snoc) unsnoc xs` is `xs`. It is equivalent to `(init xs, last xs)`,
but traverses the vector once.

@ xs The vector to pop the element from.

Totality: total
Visibility: public export
replicate : (len : Nat) ->elem->Vectlenelem
  Repeat some value some number of times.

@ len the number of times to repeat it
@ x the value to repeat

```idris example
replicate 4 1
```

Totality: total
Visibility: public export
mergeBy : (elem->elem->Ordering) ->Vectnelem->Vectmelem->Vect (n+m) elem
  Merge two ordered vectors

```idris example
mergeBy compare (fromList [1,3,5]) (fromList [2,3,4,5,6])
```

Totality: total
Visibility: export
merge : Ordelem=>Vectnelem->Vectmelem->Vect (n+m) elem
Totality: total
Visibility: export
replaceAtSameIndex : (xs : Vectna) -> (i : Finn) -> (0y : a) ->indexi (replaceAtiyxs) =y
Totality: total
Visibility: export
replaceAtDiffIndexPreserves : (xs : Vectna) -> (i : Finn) -> (j : Finn) ->Not (i=j) -> (0y : a) ->indexi (replaceAtjyxs) =indexixs
Totality: total
Visibility: export
reverseOnto : Vectnelem->Vectmelem->Vect (n+m) elem
  Reverse the second vector, prepending the result to the first.

```idris example
reverseOnto [0, 1] [10, 11, 12]
```

Totality: total
Visibility: public export
reverse : Vectlenelem->Vectlenelem
  Reverse the order of the elements of a vector

```idris example
reverse [1,2,3,4]
```

Totality: total
Visibility: public export
intersperse : elem->Vectlenelem->Vect (len+predlen) elem
  Alternate an element between the other elements of a vector
@ sep the element to intersperse
@ xs the vector to separate with `sep`

```idris example
intersperse 0 [1,2,3,4]
```

Totality: total
Visibility: export
toVect : (n : Nat) ->Lista->Maybe (Vectna)
Totality: total
Visibility: public export
fromList' : Vectlenelem-> (l : Listelem) ->Vect (lengthl+len) elem
Totality: total
Visibility: public export
fromList : (xs : Listelem) ->Vect (lengthxs) elem
  Convert a list to a vector.

The length of the list should be statically known.

```idris example
fromList [1,2,3,4]
```

Totality: total
Visibility: public export
mapMaybe : (a->Maybeb) ->Vectlena-> (m : Nat**Vectmb)
  Map a partial function across a vector, returning those elements for which
the function had a value.

The first projection of the resulting pair (ie the length) will always be
at most the length of the input vector. This is not, however, guaranteed
by the type.

@ f the partial function (expressed by returning `Maybe`)
@ xs the vector to check for results

```idris example
mapMaybe ((find (=='a')) . unpack) (fromList ["abc","ade","bgh","xyz"])
```

Totality: total
Visibility: export
foldrImpl : (t->acc->acc) ->acc-> (acc->acc) ->Vectnt->acc
Totality: total
Visibility: public export
foldrImplGoLemma : (x : a) -> (xs : Vectna) -> (f : (a->b->b)) -> (e : b) -> (go : (b->b)) ->go (foldrImplfe (fx) xs) =foldrImplfe (go.fx) xs
Totality: total
Visibility: export
concat : Vectm (Vectnelem) ->Vect (m*n) elem
  Flatten a vector of equal-length vectors

```idris example
concat [[1,2,3], [4,5,6]]
```

Totality: total
Visibility: public export
foldr1 : (t->t->t) ->Vect (Sn) t->t
  Foldr without seeding the accumulator

```idris example
foldr1 (-) (fromList [1,2,3])
```

Totality: total
Visibility: public export
foldl1 : (t->t->t) ->Vect (Sn) t->t
  Foldl without seeding the accumulator

```idris example
foldl1 (-) (fromList [1,2,3])
```

Totality: total
Visibility: public export
scanr : (elem->res->res) ->res->Vectlenelem->Vect (Slen) res
  The scanr function is similar to foldr, but returns all the intermediate
accumulator states in the form of a vector. Note the intermediate accumulator
states appear in the result in reverse order - the first state appears last
in the result.

```idris example
scanr (-) 0 (fromList [1,2,3])
```

Totality: total
Visibility: public export
scanr1 : (elem->elem->elem) ->Vectlenelem->Vectlenelem
  The scanr1 function is a variant of scanr that doesn't require an explicit
starting value.
It assumes the last element of the vector to be the starting value and then
starts the fold with the element preceding it.

```idris example
scanr1 (-) (fromList [1,2,3])
```

Totality: total
Visibility: public export
scanl : (res->elem->res) ->res->Vectlenelem->Vect (Slen) res
  The scanl function is similar to foldl, but returns all the intermediate
accumulator states in the form of a vector.

```idris example
scanl (-) 0 (fromList [1,2,3])
```

Totality: total
Visibility: public export
scanl1 : (elem->elem->elem) ->Vectlenelem->Vectlenelem
  The scanl1 function is a variant of scanl that doesn't require an explicit
starting value.
It assumes the first element of the vector to be the starting value and then
starts the fold with the element following it.

```idris example
scanl1 (-) (fromList [1,2,3])
```

Totality: total
Visibility: public export
lookupBy : (key->key->Bool) ->key->Vectn (key, val) ->Maybeval
  Find the association of some key with a user-provided comparison
@ p the comparison operator for keys (True if they match)
@ e the key to look for

```idris example
lookupBy (==) 2 [(1, 'a'), (2, 'b'), (3, 'c')]
```

Totality: total
Visibility: public export
lookup : Eqkey=>key->Vectn (key, val) ->Maybeval
  Find the assocation of some key using the default Boolean equality test

```idris example
lookup 3 [(1, 'a'), (2, 'b'), (3, 'c')]
```

Totality: total
Visibility: public export
hasAnyBy : (elem->elem->Bool) ->Vectmelem->Vectlenelem->Bool
  Check if any element of xs is found in elems by a user-provided comparison
@ p the comparison operator
@ elems the vector to search
@ xs what to search for

```idris example
hasAnyBy (==) [2,5] [1,2,3,4]
```

Totality: total
Visibility: public export
hasAny : Eqelem=>Vectmelem->Vectlenelem->Bool
  Check if any element of xs is found in elems using the default Boolean equality test

```idris example
hasAny [2,5] [1,2,3,4]
```

Totality: total
Visibility: public export
find : (elem->Bool) ->Vectlenelem->Maybeelem
  Find the first element of the vector that satisfies some test
@ p the test to satisfy

```idris example
find (== 3) [1,2,3,4]
```

Totality: total
Visibility: public export
findIndex : (elem->Bool) ->Vectlenelem->Maybe (Finlen)
  Find the index of the first element of the vector that satisfies some test

```idris example
findIndex (== 3) [1,2,3,4]
```

Totality: total
Visibility: public export
findIndices : (elem->Bool) ->Vectmelem->List (Finm)
  Find the indices of all elements that satisfy some test

```idris example
findIndices (< 3) [1,2,3,4]
```

Totality: total
Visibility: public export
elemIndexBy : (elem->elem->Bool) ->elem->Vectmelem->Maybe (Finm)
  Find the index of the first element of the vector that satisfies some test

```idris example
elemIndexBy (==) 3 [1,2,3,4]
```

Totality: total
Visibility: public export
elemIndex : Eqelem=>elem->Vectmelem->Maybe (Finm)
  Find the index of the first element of the vector equal to the given one.

```idris example
elemIndex 3 [1,2,3,4]
```

Totality: total
Visibility: public export
elemIndicesBy : (elem->elem->Bool) ->elem->Vectmelem->List (Finm)
  Find the indices of all elements that satisfy some test

```idris example
elemIndicesBy (<=) 3 [1,2,3,4]
```

Totality: total
Visibility: public export
elemIndices : Eqelem=>elem->Vectmelem->List (Finm)
  Find the indices of all elements uquals to the given one

```idris example
elemIndices 3 [1,2,3,4,3]
```

Totality: total
Visibility: public export
filter : (elem->Bool) ->Vectlenelem-> (p : Nat**Vectpelem)
  Find all elements of a vector that satisfy some test

```idris example
filter (< 3) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
nubBy : (elem->elem->Bool) ->Vectlenelem-> (p : Nat**Vectpelem)
  Make the elements of some vector unique by some test

```idris example
nubBy (==) (fromList [1,2,2,3,4,4])
```

Totality: total
Visibility: public export
nub : Eqelem=>Vectlenelem-> (p : Nat**Vectpelem)
  Make the elements of some vector unique by the default Boolean equality

```idris example
nub (fromList [1,2,2,3,4,4])
```

Totality: total
Visibility: public export
deleteBy : (elem->elem->Bool) ->elem->Vectlenelem-> (p : Nat**Vectpelem)
  Delete first element from list according to some test

```idris example
deleteBy (<) 3 (fromList [1,2,2,3,4,4])
```

Totality: total
Visibility: public export
delete : Eqelem=>elem->Vectlenelem-> (p : Nat**Vectpelem)
  Delete first element from list equal to the given one

```idris example
delete 2 (fromList [1,2,2,3,4,4])
```

Totality: total
Visibility: public export
splitAt : (n : Nat) ->Vect (n+m) elem-> (Vectnelem, Vectmelem)
  A tuple where the first element is a `Vect` of the `n` first elements and
the second element is a `Vect` of the remaining elements of the original.
It is equivalent to `(take n xs, drop n xs)` (`splitAtTakeDrop`),
but is more efficient.

@ n the index to split at
@ xs the `Vect` to split in two

```idris example
splitAt 2 (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
partition : (elem->Bool) ->Vectlenelem-> ((p : Nat**Vectpelem), (q : Nat**Vectqelem))
  A tuple where the first element is a `Vect` of the `n` elements passing given test
and the second element is a `Vect` of the remaining elements of the original.

```idris example
partition (== 2) (fromList [1,2,3,2,4])
```

Totality: total
Visibility: public export
kSplits : (k : Nat) -> (n : Nat) ->Vect (k*n) a->Vectk (Vectna)
  Split a vector whose length is a multiple of two numbers, k times n, into k
sections of length n.

```idris example
> kSplits 2 4 [1, 2, 3, 4, 5, 6, 7, 8]
[[1, 2, 3, 4], [5, 6, 7, 8]]
```

Totality: total
Visibility: public export
nSplits : (k : Nat) -> (n : Nat) ->Vect (k*n) a->Vectn (Vectka)
  Split a vector whose length is a multiple of two numbers, k times n, into n
sections of length k.

```idris example
> nSplits 2 4 [1, 2, 3, 4, 5, 6, 7, 8]
[[1, 5], [2, 6], [3, 7], [4, 8]]
```

Totality: total
Visibility: public export
isPrefixOfBy : (elem->elem->Bool) ->Vectmelem->Vectlenelem->Bool
  Verify vector prefix

```idris example
isPrefixOfBy (==) (fromList [1,2]) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
isPrefixOf : Eqelem=>Vectmelem->Vectlenelem->Bool
  Verify vector prefix

```idris example
isPrefixOf (fromList [1,2]) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
isSuffixOfBy : (elem->elem->Bool) ->Vectmelem->Vectlenelem->Bool
  Verify vector suffix

```idris example
isSuffixOfBy (==) (fromList [3,4]) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
isSuffixOf : Eqelem=>Vectmelem->Vectlenelem->Bool
  Verify vector suffix

```idris example
isSuffixOf (fromList [3,4]) (fromList [1,2,3,4])
```

Totality: total
Visibility: public export
maybeToVect : Maybeelem-> (p : Nat**Vectpelem)
  Convert Maybe type into Vect

```idris example
maybeToVect (Just 2)
```

Totality: total
Visibility: public export
vectToMaybe : Vectlenelem->Maybeelem
  Convert first element of Vect (if exists) into Maybe.

```idris example
vectToMaybe [2]
```

Totality: total
Visibility: public export
catMaybes : Vectn (Maybeelem) -> (p : Nat**Vectpelem)
  Filter out Nothings from Vect and unwrap the Justs

```idris example
catMaybes [Just 1, Just 2, Nothing, Nothing, Just 5]
```

Totality: total
Visibility: public export
diag : Vectlen (Vectlenelem) ->Vectlenelem
  Get diagonal elements

```idris example
diag [[1,2,3], [4,5,6], [7,8,9]]
```

Totality: total
Visibility: public export
tabulate : (Finlen->a) ->Vectlena
Totality: total
Visibility: public export
range : Vectlen (Finlen)
Totality: total
Visibility: public export
tabulate : (SubsetNat (\{arg:0}=>LT{arg:0}len) ->a) ->Vectlena
Totality: total
Visibility: public export
range : Vectlen (SubsetNat (\{arg:0}=>LT{arg:0}len))
Totality: total
Visibility: public export
zipWithIndexLinear : (0f : (a->a->{a:7178})) -> (xs : Vectna) -> (ys : Vectna) -> (i : Finn) ->indexi (zipWithfxsys) =f (indexixs) (indexiys)
Totality: total
Visibility: export
zipWith3IndexLinear : (0f : (a->a->a->{a:7281})) -> (xs : Vectna) -> (ys : Vectna) -> (zs : Vectna) -> (i : Finn) ->indexi (zipWith3fxsyszs) =f (indexixs) (indexiys) (indexizs)
Totality: total
Visibility: export
permute : Vectlena->Vectlen (Finlen) ->Vectlena
  Rearrange the elements of a vector according to some permutation of its
indices.
@ v the vector whose elements to rearrange
@ p the permutation to apply

```idris example
> permute ['a', 'b', 'c', 'd'] [0, 3, 2, 1]
['a', 'd' , 'c' ,'b']
```

Totality: total
Visibility: export
transpose : Vectm (Vectnelem) ->Vectn (Vectmelem)
  Transpose a `Vect` of `Vect`s, turning rows into columns and vice versa.

This is like zipping all the inner `Vect`s together and is equivalent to `traverse id` (`transposeTraverse`).

As the types ensure rectangularity, this is an involution, unlike `Prelude.List.transpose`.

```idris example
transpose [[1,2], [3,4], [5,6], [7,8]]
```

Totality: total
Visibility: public export
exactLength : (len : Nat) ->Vectma->Maybe (Vectlena)
Totality: total
Visibility: export
overLength : (len : Nat) ->Vectma->Maybe (p : Nat**Vect (plusplen) a)
  If the given Vect is at least the required length, return a Vect with
at least that length in its type, otherwise return Nothing
@len the required length
@xs the vector with the desired length

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Data.Zippable.html b/base/docs/Data.Zippable.html index 75b0aa4145..149d451deb 100644 --- a/base/docs/Data.Zippable.html +++ b/base/docs/Data.Zippable.html @@ -61,4 +61,4 @@ -

Data.Zippable(source)

Definitions

interfaceZippable : (Type->Type) ->Type
  The `Zippable` interface describes how you can combine and split the
elements in a parameterised type.
@ z the parameterised type

Parameters: z
Methods:
zipWith : (a->b->c) ->za->zb->zc
  Combine two parameterised types by applying a function.
@ z the parameterised type
@ func the function to combine elements with
zip : za->zb->z (a, b)
  Combine two parameterised types into a parameterised type of pairs.
@ z the parameterised type

Fixity Declaration: infixr operator, level 6
zipWith3 : (a->b->c->d) ->za->zb->zc->zd
  Combine three parameterised types by applying a function.
@ z the parameterised type
@ func the function to combine elements with
zip3 : za->zb->zc->z (a, (b, c))
  Combine three parameterised types into a parameterised type of triplets.
@ z the parameterised type
unzipWith : (a-> (b, c)) ->za-> (zb, zc)
  Split a parameterised type by applying a function into a pair of
parameterised types.
@ z the parameterised type
@ func the function to split elements with
unzip : z (a, b) -> (za, zb)
  Split a parameterised type of pairs into a pair of parameterised types.
@ z the parameterised type
unzipWith3 : (a-> (b, (c, d))) ->za-> (zb, (zc, zd))
  Split a parameterised type by applying a function into a triplet of
parameterised types.
@ z the parameterised type
@ func the function to split elements with
unzip3 : z (a, (b, c)) -> (za, (zb, zc))
  Split a parameterised type of triplets into a triplet of parameterised
types.
@ z the parameterised type

Implementations:
Ordk=>Zippable (SortedMapk)
ZippableLazyList
ZippableStream
ZippableColist1
ZippableColist
Zippable (Eithera)
Semigroupa=>Zippable (Thesea)
Zippable (Vectk)
ZippableList
ZippableList1
Semigroupa=>Zippable (Paira)
ZippableMaybe
ZippableSnocList
zipWith : Zippablez=> (a->b->c) ->za->zb->zc
  Combine two parameterised types by applying a function.
@ z the parameterised type
@ func the function to combine elements with

Totality: total
Visibility: public export
zip : Zippablez=>za->zb->z (a, b)
  Combine two parameterised types into a parameterised type of pairs.
@ z the parameterised type

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 6
zipWith3 : Zippablez=> (a->b->c->d) ->za->zb->zc->zd
  Combine three parameterised types by applying a function.
@ z the parameterised type
@ func the function to combine elements with

Totality: total
Visibility: public export
zip3 : Zippablez=>za->zb->zc->z (a, (b, c))
  Combine three parameterised types into a parameterised type of triplets.
@ z the parameterised type

Totality: total
Visibility: public export
unzipWith : Zippablez=> (a-> (b, c)) ->za-> (zb, zc)
  Split a parameterised type by applying a function into a pair of
parameterised types.
@ z the parameterised type
@ func the function to split elements with

Totality: total
Visibility: public export
unzip : Zippablez=>z (a, b) -> (za, zb)
  Split a parameterised type of pairs into a pair of parameterised types.
@ z the parameterised type

Totality: total
Visibility: public export
unzipWith3 : Zippablez=> (a-> (b, (c, d))) ->za-> (zb, (zc, zd))
  Split a parameterised type by applying a function into a triplet of
parameterised types.
@ z the parameterised type
@ func the function to split elements with

Totality: total
Visibility: public export
unzip3 : Zippablez=>z (a, (b, c)) -> (za, (zb, zc))
  Split a parameterised type of triplets into a triplet of parameterised
types.
@ z the parameterised type

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Zippable(source)

Definitions

interfaceZippable : (Type->Type) ->Type
  The `Zippable` interface describes how you can combine and split the
elements in a parameterised type.
@ z the parameterised type

Parameters: z
Methods:
zipWith : (a->b->c) ->za->zb->zc
  Combine two parameterised types by applying a function.
@ z the parameterised type
@ func the function to combine elements with
zip : za->zb->z (a, b)
  Combine two parameterised types into a parameterised type of pairs.
@ z the parameterised type

Fixity Declaration: infixr operator, level 6
zipWith3 : (a->b->c->d) ->za->zb->zc->zd
  Combine three parameterised types by applying a function.
@ z the parameterised type
@ func the function to combine elements with
zip3 : za->zb->zc->z (a, (b, c))
  Combine three parameterised types into a parameterised type of triplets.
@ z the parameterised type
unzipWith : (a-> (b, c)) ->za-> (zb, zc)
  Split a parameterised type by applying a function into a pair of
parameterised types.
@ z the parameterised type
@ func the function to split elements with
unzip : z (a, b) -> (za, zb)
  Split a parameterised type of pairs into a pair of parameterised types.
@ z the parameterised type
unzipWith3 : (a-> (b, (c, d))) ->za-> (zb, (zc, zd))
  Split a parameterised type by applying a function into a triplet of
parameterised types.
@ z the parameterised type
@ func the function to split elements with
unzip3 : z (a, (b, c)) -> (za, (zb, zc))
  Split a parameterised type of triplets into a triplet of parameterised
types.
@ z the parameterised type

Implementations:
Ordk=>Zippable (SortedMapk)
ZippableLazyList
ZippableStream
ZippableColist1
ZippableColist
Zippable (Eithera)
Semigroupa=>Zippable (Thesea)
Zippable (Vectk)
ZippableList
ZippableList1
Semigroupa=>Zippable (Paira)
ZippableMaybe
ZippableSnocList
zipWith : Zippablez=> (a->b->c) ->za->zb->zc
  Combine two parameterised types by applying a function.
@ z the parameterised type
@ func the function to combine elements with

Totality: total
Visibility: public export
zip : Zippablez=>za->zb->z (a, b)
  Combine two parameterised types into a parameterised type of pairs.
@ z the parameterised type

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 6
zipWith3 : Zippablez=> (a->b->c->d) ->za->zb->zc->zd
  Combine three parameterised types by applying a function.
@ z the parameterised type
@ func the function to combine elements with

Totality: total
Visibility: public export
zip3 : Zippablez=>za->zb->zc->z (a, (b, c))
  Combine three parameterised types into a parameterised type of triplets.
@ z the parameterised type

Totality: total
Visibility: public export
unzipWith : Zippablez=> (a-> (b, c)) ->za-> (zb, zc)
  Split a parameterised type by applying a function into a pair of
parameterised types.
@ z the parameterised type
@ func the function to split elements with

Totality: total
Visibility: public export
unzip : Zippablez=>z (a, b) -> (za, zb)
  Split a parameterised type of pairs into a pair of parameterised types.
@ z the parameterised type

Totality: total
Visibility: public export
unzipWith3 : Zippablez=> (a-> (b, (c, d))) ->za-> (zb, (zc, zd))
  Split a parameterised type by applying a function into a triplet of
parameterised types.
@ z the parameterised type
@ func the function to split elements with

Totality: total
Visibility: public export
unzip3 : Zippablez=>z (a, (b, c)) -> (za, (zb, zc))
  Split a parameterised type of triplets into a triplet of parameterised
types.
@ z the parameterised type

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Debug.Trace.html b/base/docs/Debug.Trace.html index c32bfb8b57..177cdafc57 100644 --- a/base/docs/Debug.Trace.html +++ b/base/docs/Debug.Trace.html @@ -61,4 +61,4 @@ -

Debug.Trace(source)

Definitions

trace : String->a->a
Totality: total
Visibility: export
traceValBy : (a->String) ->a->a
Totality: total
Visibility: export
traceVal : Showa=>a->a
Totality: total
Visibility: export
\ No newline at end of file +

Debug.Trace(source)

Definitions

trace : String->a->a
Totality: total
Visibility: export
traceValBy : (a->String) ->a->a
Totality: total
Visibility: export
traceVal : Showa=>a->a
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Decidable.Decidable.html b/base/docs/Decidable.Decidable.html index 514c36004a..d99480e432 100644 --- a/base/docs/Decidable.Decidable.html +++ b/base/docs/Decidable.Decidable.html @@ -61,4 +61,4 @@ -

Decidable.Decidable(source)

Definitions

isNo : Deca->Bool
Totality: total
Visibility: public export
isYes : Deca->Bool
Totality: total
Visibility: public export
dataIsYes : Deca->Type
  Proof that some `Dec` is actually `Yes`

Totality: total
Visibility: public export
Constructor: 
ItIsYes : IsYes (Yesprf)

Hint: 
Uninhabited (IsYes (Nocontra))
isItYes : (v : Deca) ->Dec (IsYesv)
  Decide whether a 'Dec' is 'Yes'

Totality: total
Visibility: public export
IsDecidable : (k : Nat) -> (ts : VectkType) ->Relts->Type
  An n-ary relation is decidable if we can make a `Dec`
of its result type for each combination of inputs

Totality: total
Visibility: public export
interfaceDecidable : (k : Nat) -> (ts : VectkType) ->FuntsType->Type
  Interface for decidable n-ary Relations

Parameters: k, ts, p
Methods:
decide : IsDecidablektsp

Implementations:
Decidable2 [Nat, Nat] LTE
Decidable2 [Nat, Nat] LT
Decidable2 [Fink, Fink] FinLTE
decide : Decidablektsp=>IsDecidablektsp
Totality: total
Visibility: public export
\ No newline at end of file +

Decidable.Decidable(source)

Definitions

isNo : Deca->Bool
Totality: total
Visibility: public export
isYes : Deca->Bool
Totality: total
Visibility: public export
dataIsYes : Deca->Type
  Proof that some `Dec` is actually `Yes`

Totality: total
Visibility: public export
Constructor: 
ItIsYes : IsYes (Yesprf)

Hint: 
Uninhabited (IsYes (Nocontra))
isItYes : (v : Deca) ->Dec (IsYesv)
  Decide whether a 'Dec' is 'Yes'

Totality: total
Visibility: public export
IsDecidable : (k : Nat) -> (ts : VectkType) ->Relts->Type
  An n-ary relation is decidable if we can make a `Dec`
of its result type for each combination of inputs

Totality: total
Visibility: public export
interfaceDecidable : (k : Nat) -> (ts : VectkType) ->FuntsType->Type
  Interface for decidable n-ary Relations

Parameters: k, ts, p
Methods:
decide : IsDecidablektsp

Implementations:
Decidable2 [Nat, Nat] LTE
Decidable2 [Nat, Nat] LT
Decidable2 [Fink, Fink] FinLTE
decide : Decidablektsp=>IsDecidablektsp
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Decidable.Equality.Core.html b/base/docs/Decidable.Equality.Core.html index 9ffd341557..bec89251f7 100644 --- a/base/docs/Decidable.Equality.Core.html +++ b/base/docs/Decidable.Equality.Core.html @@ -61,4 +61,4 @@ -

Decidable.Equality.Core(source)

Definitions

interfaceDecEq : Type->Type
  Decision procedures for propositional equality

Parameters: t
Methods:
decEq : (x1 : t) -> (x2 : t) ->Dec (x1=x2)
  Decide whether two elements of `t` are propositionally equal

Implementations:
DecEq (Elemxxs)
DecEq (Elemxsx)
DecEq (Elemxxs)
DecEq (Elemxxs)
DecEq ()
DecEqBool
DecEqNat
DecEqt=>DecEq (Maybet)
(DecEqt, DecEqs) =>DecEq (Eitherts)
DecEqt=>DecEqs=>DecEq (Thesets)
(DecEqa, DecEqb) =>DecEq (a, b)
DecEqa=>DecEq (Lista)
DecEqa=>DecEq (List1a)
DecEqa=>DecEq (SnocLista)
DecEqInt
DecEqBits8
DecEqBits16
DecEqBits32
DecEqBits64
DecEqInt8
DecEqInt16
DecEqInt32
DecEqInt64
DecEqChar
DecEqInteger
DecEqString
DecEqa=>DecEq (Vectna)
DecEq (Finn)
decEq : DecEqt=> (x1 : t) -> (x2 : t) ->Dec (x1=x2)
  Decide whether two elements of `t` are propositionally equal

Totality: total
Visibility: public export
negEqSym : Not (a=b) ->Not (b=a)
  The negation of equality is symmetric (follows from symmetry of equality)

Totality: total
Visibility: export
decEqSelfIsYes : {auto{conArg:2618} : DecEqa} ->decEqxx=YesRefl
  Everything is decidably equal to itself

Totality: total
Visibility: export
decEqContraIsNo : {auto{conArg:2682} : DecEqa} ->Not (x=y) -> (p : x=y->Void**decEqxy=Nop)
  If you have a proof of inequality, you're sure that `decEq` would give a `No`.

Totality: total
Visibility: export
decEqCong : {auto0_ : Injectivef} ->Dec (x=y) ->Dec (fx=fy)
Totality: total
Visibility: public export
decEqInj : {auto0_ : Injectivef} ->Dec (fx=fy) ->Dec (x=y)
Totality: total
Visibility: public export
decEqCong2 : {auto0_ : Biinjectivef} ->Dec (x=y) -> Lazy (Dec (v=w)) ->Dec (fxv=fyw)
Totality: total
Visibility: public export
\ No newline at end of file +

Decidable.Equality.Core(source)

Definitions

interfaceDecEq : Type->Type
  Decision procedures for propositional equality

Parameters: t
Methods:
decEq : (x1 : t) -> (x2 : t) ->Dec (x1=x2)
  Decide whether two elements of `t` are propositionally equal

Implementations:
DecEq (Elemxxs)
DecEq (Elemxsx)
DecEq (Elemxxs)
DecEq (Elemxxs)
DecEq ()
DecEqBool
DecEqNat
DecEqt=>DecEq (Maybet)
(DecEqt, DecEqs) =>DecEq (Eitherts)
DecEqt=>DecEqs=>DecEq (Thesets)
(DecEqa, DecEqb) =>DecEq (a, b)
DecEqa=>DecEq (Lista)
DecEqa=>DecEq (List1a)
DecEqa=>DecEq (SnocLista)
DecEqInt
DecEqBits8
DecEqBits16
DecEqBits32
DecEqBits64
DecEqInt8
DecEqInt16
DecEqInt32
DecEqInt64
DecEqChar
DecEqInteger
DecEqString
DecEqa=>DecEq (Vectna)
DecEq (Finn)
decEq : DecEqt=> (x1 : t) -> (x2 : t) ->Dec (x1=x2)
  Decide whether two elements of `t` are propositionally equal

Totality: total
Visibility: public export
negEqSym : Not (a=b) ->Not (b=a)
  The negation of equality is symmetric (follows from symmetry of equality)

Totality: total
Visibility: export
decEqSelfIsYes : {auto{conArg:2618} : DecEqa} ->decEqxx=YesRefl
  Everything is decidably equal to itself

Totality: total
Visibility: export
decEqContraIsNo : {auto{conArg:2682} : DecEqa} ->Not (x=y) -> (p : x=y->Void**decEqxy=Nop)
  If you have a proof of inequality, you're sure that `decEq` would give a `No`.

Totality: total
Visibility: export
decEqCong : {auto0_ : Injectivef} ->Dec (x=y) ->Dec (fx=fy)
Totality: total
Visibility: public export
decEqInj : {auto0_ : Injectivef} ->Dec (fx=fy) ->Dec (x=y)
Totality: total
Visibility: public export
decEqCong2 : {auto0_ : Biinjectivef} ->Dec (x=y) -> Lazy (Dec (v=w)) ->Dec (fxv=fyw)
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Decidable.Equality.html b/base/docs/Decidable.Equality.html index 50d2045e9b..bf1d4a153c 100644 --- a/base/docs/Decidable.Equality.html +++ b/base/docs/Decidable.Equality.html @@ -61,4 +61,4 @@ -

Decidable.Equality(source)

Reexports

importpublic Decidable.Equality.Core as Decidable.Equality

Definitions

\ No newline at end of file +

Decidable.Equality(source)

Reexports

importpublic Decidable.Equality.Core as Decidable.Equality

Definitions

\ No newline at end of file diff --git a/base/docs/Deriving.Common.html b/base/docs/Deriving.Common.html index b5ae1e856e..8560e449ea 100644 --- a/base/docs/Deriving.Common.html +++ b/base/docs/Deriving.Common.html @@ -61,4 +61,4 @@ -

Deriving.Common(source)

Definitions

dataIsFreeOf : Name->TTImp->Type
  IsFreeOf is parametrised by
@ x the name of the type variable that the functioral action will change
@ ty the type that does not contain any mention of x

Totality: total
Visibility: export
Constructor: 
TrustMeFO : IsFreeOfax
  For now we do not bother keeping precise track of the proof that a type
is free of x
assert_IsFreeOf : IsFreeOfxty
  We may need to manufacture proofs and so we provide the `assert` escape hatch.

Totality: total
Visibility: export
isFreeOf : (x : Name) -> (ty : TTImp) ->Maybe (IsFreeOfxty)
  Testing function deciding whether the given term is free of a particular
variable.

Totality: total
Visibility: export
recordIsType : Type
Totality: total
Visibility: public export
Constructor: 
MkIsType : Name->List (ArgumentName, Nat) ->List (Name, TTImp) ->IsType

Projections:
.dataConstructors : IsType->List (Name, TTImp)
.parameterNames : IsType->List (ArgumentName, Nat)
.typeConstructor : IsType->Name
.typeConstructor : IsType->Name
Totality: total
Visibility: public export
typeConstructor : IsType->Name
Totality: total
Visibility: public export
.parameterNames : IsType->List (ArgumentName, Nat)
Totality: total
Visibility: public export
parameterNames : IsType->List (ArgumentName, Nat)
Totality: total
Visibility: public export
.dataConstructors : IsType->List (Name, TTImp)
Totality: total
Visibility: public export
dataConstructors : IsType->List (Name, TTImp)
Totality: total
Visibility: public export
isType : Elaborationm=>TTImp->mIsType
Totality: total
Visibility: export
recordConstructorView : Type
Totality: total
Visibility: public export
Constructor: 
MkConstructorView : SnocList (Name, Nat) ->List (Count, ArgumentTTImp) ->ConstructorView

Projections:
.conArgTypes : ConstructorView->List (Count, ArgumentTTImp)
.params : ConstructorView->SnocList (Name, Nat)
.params : ConstructorView->SnocList (Name, Nat)
Totality: total
Visibility: public export
params : ConstructorView->SnocList (Name, Nat)
Totality: total
Visibility: public export
.conArgTypes : ConstructorView->List (Count, ArgumentTTImp)
Totality: total
Visibility: public export
conArgTypes : ConstructorView->List (Count, ArgumentTTImp)
Totality: total
Visibility: public export
constructorView : TTImp->MaybeConstructorView
Totality: total
Visibility: export
withParams : FC-> (Nat->MaybeTTImp) ->List (ArgumentName, Nat) ->TTImp->TTImp
Totality: total
Visibility: export
dataHasType : Name->TTImp->Type
  Type of proofs that something has a given type

Totality: total
Visibility: export
Constructor: 
TrustMeHT : HasTypenmty
hasType : Elaborationm=> (nm : Name) ->m (Maybe (ty : TTImp**HasTypenmty))
Totality: total
Visibility: export
dataIsProvable : TTImp->Type
  Type of proofs that a type is inhabited

Totality: total
Visibility: export
Constructor: 
TrustMeIP : IsProvablety
isProvable : Elaborationm=> (ty : TTImp) ->m (Maybe (IsProvablety))
Totality: total
Visibility: export
dataHasImplementation : (a->Type) ->TTImp->Type
  Type of proofs that a type satisfies a constraint.
Internally it's vacuous. We don't export the constructor so
that users cannot manufacture buggy proofs.

Totality: total
Visibility: export
Constructor: 
TrustMeHI : HasImplementationintft
assert_hasImplementation : HasImplementationintft
  We may need to manufacture proofs and so we provide the `assert` escape hatch.

Totality: total
Visibility: export
hasImplementation : Elaborationm=> (intf : (a->Type)) -> (t : TTImp) ->m (Maybe (HasImplementationintft))
  Given
@ intf an interface (e.g. `Functor`, or `Bifunctor`)
@ t a term corresponding to a (possibly partially applied) type constructor
check whether Idris2 can find a proof that t satisfies the interface.

Totality: total
Visibility: export
optionallyEta : FC->MaybeTTImp-> (TTImp->TTImp) ->TTImp
  Optionally eta-expand if there is no argument available

Totality: total
Visibility: export
apply : FC->TTImp->ListTTImp->TTImp
  We often apply multiple arguments, this makes things simpler

Totality: total
Visibility: export
cleanup : TTImp->TTImp
  Use unqualified names (useful for more compact printing)

Totality: total
Visibility: export
freshName : ListName->String->String
  Create fresh names

Totality: total
Visibility: export
\ No newline at end of file +

Deriving.Common(source)

Definitions

dataIsFreeOf : Name->TTImp->Type
  IsFreeOf is parametrised by
@ x the name of the type variable that the functioral action will change
@ ty the type that does not contain any mention of x

Totality: total
Visibility: export
Constructor: 
TrustMeFO : IsFreeOfax
  For now we do not bother keeping precise track of the proof that a type
is free of x
assert_IsFreeOf : IsFreeOfxty
  We may need to manufacture proofs and so we provide the `assert` escape hatch.

Totality: total
Visibility: export
isFreeOf : (x : Name) -> (ty : TTImp) ->Maybe (IsFreeOfxty)
  Testing function deciding whether the given term is free of a particular
variable.

Totality: total
Visibility: export
recordIsType : Type
Totality: total
Visibility: public export
Constructor: 
MkIsType : Name->List (ArgumentName, Nat) ->List (Name, TTImp) ->IsType

Projections:
.dataConstructors : IsType->List (Name, TTImp)
.parameterNames : IsType->List (ArgumentName, Nat)
.typeConstructor : IsType->Name
.typeConstructor : IsType->Name
Totality: total
Visibility: public export
typeConstructor : IsType->Name
Totality: total
Visibility: public export
.parameterNames : IsType->List (ArgumentName, Nat)
Totality: total
Visibility: public export
parameterNames : IsType->List (ArgumentName, Nat)
Totality: total
Visibility: public export
.dataConstructors : IsType->List (Name, TTImp)
Totality: total
Visibility: public export
dataConstructors : IsType->List (Name, TTImp)
Totality: total
Visibility: public export
isType : Elaborationm=>TTImp->mIsType
Totality: total
Visibility: export
recordConstructorView : Type
Totality: total
Visibility: public export
Constructor: 
MkConstructorView : SnocList (Name, Nat) ->List (Count, ArgumentTTImp) ->ConstructorView

Projections:
.conArgTypes : ConstructorView->List (Count, ArgumentTTImp)
.params : ConstructorView->SnocList (Name, Nat)
.params : ConstructorView->SnocList (Name, Nat)
Totality: total
Visibility: public export
params : ConstructorView->SnocList (Name, Nat)
Totality: total
Visibility: public export
.conArgTypes : ConstructorView->List (Count, ArgumentTTImp)
Totality: total
Visibility: public export
conArgTypes : ConstructorView->List (Count, ArgumentTTImp)
Totality: total
Visibility: public export
constructorView : TTImp->MaybeConstructorView
Totality: total
Visibility: export
withParams : FC-> (Nat->MaybeTTImp) ->List (ArgumentName, Nat) ->TTImp->TTImp
Totality: total
Visibility: export
dataHasType : Name->TTImp->Type
  Type of proofs that something has a given type

Totality: total
Visibility: export
Constructor: 
TrustMeHT : HasTypenmty
hasType : Elaborationm=> (nm : Name) ->m (Maybe (ty : TTImp**HasTypenmty))
Totality: total
Visibility: export
dataIsProvable : TTImp->Type
  Type of proofs that a type is inhabited

Totality: total
Visibility: export
Constructor: 
TrustMeIP : IsProvablety
isProvable : Elaborationm=> (ty : TTImp) ->m (Maybe (IsProvablety))
Totality: total
Visibility: export
dataHasImplementation : (a->Type) ->TTImp->Type
  Type of proofs that a type satisfies a constraint.
Internally it's vacuous. We don't export the constructor so
that users cannot manufacture buggy proofs.

Totality: total
Visibility: export
Constructor: 
TrustMeHI : HasImplementationintft
assert_hasImplementation : HasImplementationintft
  We may need to manufacture proofs and so we provide the `assert` escape hatch.

Totality: total
Visibility: export
hasImplementation : Elaborationm=> (intf : (a->Type)) -> (t : TTImp) ->m (Maybe (HasImplementationintft))
  Given
@ intf an interface (e.g. `Functor`, or `Bifunctor`)
@ t a term corresponding to a (possibly partially applied) type constructor
check whether Idris2 can find a proof that t satisfies the interface.

Totality: total
Visibility: export
optionallyEta : FC->MaybeTTImp-> (TTImp->TTImp) ->TTImp
  Optionally eta-expand if there is no argument available

Totality: total
Visibility: export
apply : FC->TTImp->ListTTImp->TTImp
  We often apply multiple arguments, this makes things simpler

Totality: total
Visibility: export
cleanup : TTImp->TTImp
  Use unqualified names (useful for more compact printing)

Totality: total
Visibility: export
freshName : ListName->String->String
  Create fresh names

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Deriving.Foldable.html b/base/docs/Deriving.Foldable.html index 166c5f17bf..1575ba7706 100644 --- a/base/docs/Deriving.Foldable.html +++ b/base/docs/Deriving.Foldable.html @@ -68,4 +68,4 @@ treeFoldable : Foldable Tree treeFoldable = %runElab derive ``` -

Reexports

importpublic Control.Monad.Either
importpublic Control.Monad.State
importpublic Data.List1
importpublic Data.Maybe
importpublic Data.Morphisms
importpublic Decidable.Equality
importpublic Language.Reflection
importpublic Deriving.Common

Definitions

fromFoldMap : (0f : (Type->Type)) -> (Monoidb=> (a->b) ->fa->b) ->Foldablef
Totality: total
Visibility: public export
dataError : Type
  Possible errors for the functor-deriving machinery.

Totality: total
Visibility: public export
Constructors:
NotFreeOf : Name->TTImp->Error
NotAnApplication : TTImp->Error
NotAFoldable : TTImp->Error
NotABifoldable : TTImp->Error
NotFoldableInItsLastArg : TTImp->Error
UnsupportedType : TTImp->Error
NotAFiniteStructure : Error
NotAnUnconstrainedValue : Count->Error
InvalidGoal : Error
ConfusingReturnType : Error
WhenCheckingConstructor : Name->Error->Error
WhenCheckingArg : TTImp->Error->Error

Hint: 
ShowError
dataIsFoldableIn : Name->Name->TTImp->Type
  IsFoldableIn is parametrised by
@ t the name of the data type whose constructors are being analysed
@ x the name of the type variable that the foldable action will act on
@ ty the type being analysed
The inductive type delivers a proof that x can be folded over in ty,
assuming that t also is foldable.

Totality: total
Visibility: public export
Constructors:
FIVar : IsFoldableIntx (IVarfcx)
  The type variable x occurs alone
FIRec : (0_ : IsAppView ({_:4781}, t) {_:4782}f) ->IsFoldableIntxarg->IsFoldableIntx (IAppfcfarg)
  There is a recursive subtree of type (t a1 ... an u) and u is Foldable in x.
We do not insist that u is exactly x so that we can deal with nested types
like the following:
data Full a = Leaf a | Node (Full (a, a))
data Term a = Var a | App (Term a) (Term a) | Lam (Term (Maybe a))
FIDelayed : IsFoldableIntxty->IsFoldableIntx (IDelayedfcLLazyty)
  The subterm is delayed (Lazy only, we can't fold over infinite structures)
FIBifold : IsFreeOfxsp->HasImplementationBifoldablesp->IsFoldableIntxarg1->Either (IsFoldableIntxarg2) (IsFreeOfxarg2) ->IsFoldableIntx (IAppfc1 (IAppfc2sparg1) arg2)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Bifoldable interface
FIFold : IsFreeOfxsp->HasImplementationFoldablesp->IsFoldableIntxarg->IsFoldableIntx (IAppfcsparg)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Foldable interface
FIFree : IsFreeOfxa->IsFoldableIntxa
  A type free of x is trivially Foldable in it
TypeView : Elaborationm=>MonadErrorErrorm=>MonadStateParametersm=>Name->List (Name, Nat) ->Name->TTImp->Type
  When analysing the type of a constructor for the type family t,
we hope to observe
1. either that it is foldable in x
2. or that it is free of x
If it is not the case, we will use the `MonadError Error` constraint
to fail with an informative message.

Totality: total
Visibility: public export
fromTypeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) ->TypeViewty->IsFoldableIntxty
Totality: total
Visibility: export
typeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) -> (ty : TTImp) ->m (TypeViewty)
  Hoping to observe that ty is foldable

Totality: total
Visibility: export
derive : {defaultPrivate_ : Visibility} -> {defaultTotal_ : TotalReq} -> {default [] _ : ListName} ->Elab (Foldablef)
  Derive an implementation of Foldable for a type constructor.
This can be used like so:
```
data Tree a = Leaf a | Node (Tree a) (Tree a)
treeFoldable : Foldable Tree
treeFoldable = %runElab derive
```

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Control.Monad.Either
importpublic Control.Monad.State
importpublic Data.List1
importpublic Data.Maybe
importpublic Data.Morphisms
importpublic Decidable.Equality
importpublic Language.Reflection
importpublic Deriving.Common

Definitions

fromFoldMap : (0f : (Type->Type)) -> (Monoidb=> (a->b) ->fa->b) ->Foldablef
Totality: total
Visibility: public export
dataError : Type
  Possible errors for the functor-deriving machinery.

Totality: total
Visibility: public export
Constructors:
NotFreeOf : Name->TTImp->Error
NotAnApplication : TTImp->Error
NotAFoldable : TTImp->Error
NotABifoldable : TTImp->Error
NotFoldableInItsLastArg : TTImp->Error
UnsupportedType : TTImp->Error
NotAFiniteStructure : Error
NotAnUnconstrainedValue : Count->Error
InvalidGoal : Error
ConfusingReturnType : Error
WhenCheckingConstructor : Name->Error->Error
WhenCheckingArg : TTImp->Error->Error

Hint: 
ShowError
dataIsFoldableIn : Name->Name->TTImp->Type
  IsFoldableIn is parametrised by
@ t the name of the data type whose constructors are being analysed
@ x the name of the type variable that the foldable action will act on
@ ty the type being analysed
The inductive type delivers a proof that x can be folded over in ty,
assuming that t also is foldable.

Totality: total
Visibility: public export
Constructors:
FIVar : IsFoldableIntx (IVarfcx)
  The type variable x occurs alone
FIRec : (0_ : IsAppView ({_:4781}, t) {_:4782}f) ->IsFoldableIntxarg->IsFoldableIntx (IAppfcfarg)
  There is a recursive subtree of type (t a1 ... an u) and u is Foldable in x.
We do not insist that u is exactly x so that we can deal with nested types
like the following:
data Full a = Leaf a | Node (Full (a, a))
data Term a = Var a | App (Term a) (Term a) | Lam (Term (Maybe a))
FIDelayed : IsFoldableIntxty->IsFoldableIntx (IDelayedfcLLazyty)
  The subterm is delayed (Lazy only, we can't fold over infinite structures)
FIBifold : IsFreeOfxsp->HasImplementationBifoldablesp->IsFoldableIntxarg1->Either (IsFoldableIntxarg2) (IsFreeOfxarg2) ->IsFoldableIntx (IAppfc1 (IAppfc2sparg1) arg2)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Bifoldable interface
FIFold : IsFreeOfxsp->HasImplementationFoldablesp->IsFoldableIntxarg->IsFoldableIntx (IAppfcsparg)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Foldable interface
FIFree : IsFreeOfxa->IsFoldableIntxa
  A type free of x is trivially Foldable in it
TypeView : Elaborationm=>MonadErrorErrorm=>MonadStateParametersm=>Name->List (Name, Nat) ->Name->TTImp->Type
  When analysing the type of a constructor for the type family t,
we hope to observe
1. either that it is foldable in x
2. or that it is free of x
If it is not the case, we will use the `MonadError Error` constraint
to fail with an informative message.

Totality: total
Visibility: public export
fromTypeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) ->TypeViewty->IsFoldableIntxty
Totality: total
Visibility: export
typeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) -> (ty : TTImp) ->m (TypeViewty)
  Hoping to observe that ty is foldable

Totality: total
Visibility: export
derive : {defaultPrivate_ : Visibility} -> {defaultTotal_ : TotalReq} -> {default [] _ : ListName} ->Elab (Foldablef)
  Derive an implementation of Foldable for a type constructor.
This can be used like so:
```
data Tree a = Leaf a | Node (Tree a) (Tree a)
treeFoldable : Foldable Tree
treeFoldable = %runElab derive
```

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Deriving.Functor.html b/base/docs/Deriving.Functor.html index 609ea543ae..1a8772e4a5 100644 --- a/base/docs/Deriving.Functor.html +++ b/base/docs/Deriving.Functor.html @@ -68,4 +68,4 @@ treeFunctor : Functor Tree treeFunctor = %runElab derive ``` -

Reexports

importpublic Control.Monad.Either
importpublic Control.Monad.State
importpublic Data.Maybe
importpublic Decidable.Equality
importpublic Language.Reflection
importpublic Deriving.Common

Definitions

dataError : Type
  Possible errors for the functor-deriving machinery.

Totality: total
Visibility: public export
Constructors:
NotFreeOf : Name->TTImp->Error
NegativeOccurrence : Name->TTImp->Error
NotAnApplication : TTImp->Error
NotAFunctor : TTImp->Error
NotABifunctor : TTImp->Error
NotAFunctorInItsLastArg : TTImp->Error
UnsupportedType : TTImp->Error
InvalidGoal : Error
ConfusingReturnType : Error
WhenCheckingConstructor : Name->Error->Error
WhenCheckingArg : TTImp->Error->Error

Hint: 
ShowError
dataPolarity : Type
Totality: total
Visibility: public export
Constructors:
Positive : Polarity
Negative : Polarity
not : Polarity->Polarity
Totality: total
Visibility: public export
dataIsFunctorialIn : Polarity->Name->Name->TTImp->Type
  IsFunctorialIn is parametrised by
@ pol the polarity of the type being analysed. We start in positive polarity
where occurrences of x are allowed and negate the polarity every time
we step into the domain of a Pi type.
@ t the name of the data type whose constructors are being analysed
@ x the name of the type variable that the functioral action will change
@ ty the type being analysed
The inductive type delivers a proof that x occurs positively in ty,
assuming that t also is positive.

Totality: total
Visibility: public export
Constructors:
FIVar : IsFunctorialInPositivetx (IVarfcx)
  The type variable x occurs alone
FIRec : (0_ : IsAppView ({_:4466}, t) {_:4467}f) ->IsFunctorialInpoltxarg->IsFunctorialInPositivetx (IAppfcfarg)
  There is a recursive subtree of type (t a1 ... an u) and u is functorial in x.
We do not insist that u is exactly x so that we can deal with nested types
like the following:
data Full a = Leaf a | Node (Full (a, a))
data Term a = Var a | App (Term a) (Term a) | Lam (Term (Maybe a))
FIDelayed : IsFunctorialInpoltxty->IsFunctorialInpoltx (IDelayedfclrty)
  The subterm is delayed (either Inf or Lazy)
FIBifun : IsFreeOfxsp->HasImplementationBifunctorsp->IsFunctorialInpoltxarg1->Either (IsFunctorialInpoltxarg2) (IsFreeOfxarg2) ->IsFunctorialInpoltx (IAppfc1 (IAppfc2sparg1) arg2)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Bifunctor interface
FIFun : IsFreeOfxsp->HasImplementationFunctorsp->IsFunctorialInpoltxarg->IsFunctorialInpoltx (IAppfcsparg)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Functor interface
FIPi : IsFunctorialIn (notpol) txa->IsFunctorialInpoltxb->IsFunctorialInpoltx (IPifcrigpinfonmab)
  A pi type, with no negative occurrence of x in its domain
FIFree : IsFreeOfxa->IsFunctorialInpoltxa
  A type free of x is trivially Functorial in it
TypeView : Elaborationm=>MonadErrorErrorm=>MonadStateParametersm=>Name->List (Name, Nat) ->Name->Polarity->TTImp->Type
  When analysing the type of a constructor for the type family t,
we hope to observe
1. either that it is functorial in x
2. or that it is free of x
If if it is not the case, we will use the `MonadError Error` constraint
to fail with an informative message.

Totality: total
Visibility: public export
fromTypeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) ->TypeViewpolty->IsFunctorialInpoltxty
Totality: total
Visibility: export
typeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) -> (ty : TTImp) ->m (TypeViewpolty)
  Hoping to observe that ty is functorial

Totality: total
Visibility: export
derive : {defaultPrivate_ : Visibility} -> {defaultTotal_ : TotalReq} -> {default [] _ : ListName} ->Elab (Functorf)
  Derive an implementation of Functor for a type constructor.
This can be used like so:
```
data Tree a = Leaf a | Node (Tree a) (Tree a)
treeFunctor : Functor Tree
treeFunctor = %runElab derive
```

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Control.Monad.Either
importpublic Control.Monad.State
importpublic Data.Maybe
importpublic Decidable.Equality
importpublic Language.Reflection
importpublic Deriving.Common

Definitions

dataError : Type
  Possible errors for the functor-deriving machinery.

Totality: total
Visibility: public export
Constructors:
NotFreeOf : Name->TTImp->Error
NegativeOccurrence : Name->TTImp->Error
NotAnApplication : TTImp->Error
NotAFunctor : TTImp->Error
NotABifunctor : TTImp->Error
NotAFunctorInItsLastArg : TTImp->Error
UnsupportedType : TTImp->Error
InvalidGoal : Error
ConfusingReturnType : Error
WhenCheckingConstructor : Name->Error->Error
WhenCheckingArg : TTImp->Error->Error

Hint: 
ShowError
dataPolarity : Type
Totality: total
Visibility: public export
Constructors:
Positive : Polarity
Negative : Polarity
not : Polarity->Polarity
Totality: total
Visibility: public export
dataIsFunctorialIn : Polarity->Name->Name->TTImp->Type
  IsFunctorialIn is parametrised by
@ pol the polarity of the type being analysed. We start in positive polarity
where occurrences of x are allowed and negate the polarity every time
we step into the domain of a Pi type.
@ t the name of the data type whose constructors are being analysed
@ x the name of the type variable that the functioral action will change
@ ty the type being analysed
The inductive type delivers a proof that x occurs positively in ty,
assuming that t also is positive.

Totality: total
Visibility: public export
Constructors:
FIVar : IsFunctorialInPositivetx (IVarfcx)
  The type variable x occurs alone
FIRec : (0_ : IsAppView ({_:4466}, t) {_:4467}f) ->IsFunctorialInpoltxarg->IsFunctorialInPositivetx (IAppfcfarg)
  There is a recursive subtree of type (t a1 ... an u) and u is functorial in x.
We do not insist that u is exactly x so that we can deal with nested types
like the following:
data Full a = Leaf a | Node (Full (a, a))
data Term a = Var a | App (Term a) (Term a) | Lam (Term (Maybe a))
FIDelayed : IsFunctorialInpoltxty->IsFunctorialInpoltx (IDelayedfclrty)
  The subterm is delayed (either Inf or Lazy)
FIBifun : IsFreeOfxsp->HasImplementationBifunctorsp->IsFunctorialInpoltxarg1->Either (IsFunctorialInpoltxarg2) (IsFreeOfxarg2) ->IsFunctorialInpoltx (IAppfc1 (IAppfc2sparg1) arg2)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Bifunctor interface
FIFun : IsFreeOfxsp->HasImplementationFunctorsp->IsFunctorialInpoltxarg->IsFunctorialInpoltx (IAppfcsparg)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Functor interface
FIPi : IsFunctorialIn (notpol) txa->IsFunctorialInpoltxb->IsFunctorialInpoltx (IPifcrigpinfonmab)
  A pi type, with no negative occurrence of x in its domain
FIFree : IsFreeOfxa->IsFunctorialInpoltxa
  A type free of x is trivially Functorial in it
TypeView : Elaborationm=>MonadErrorErrorm=>MonadStateParametersm=>Name->List (Name, Nat) ->Name->Polarity->TTImp->Type
  When analysing the type of a constructor for the type family t,
we hope to observe
1. either that it is functorial in x
2. or that it is free of x
If if it is not the case, we will use the `MonadError Error` constraint
to fail with an informative message.

Totality: total
Visibility: public export
fromTypeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) ->TypeViewpolty->IsFunctorialInpoltxty
Totality: total
Visibility: export
typeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) -> (ty : TTImp) ->m (TypeViewpolty)
  Hoping to observe that ty is functorial

Totality: total
Visibility: export
derive : {defaultPrivate_ : Visibility} -> {defaultTotal_ : TotalReq} -> {default [] _ : ListName} ->Elab (Functorf)
  Derive an implementation of Functor for a type constructor.
This can be used like so:
```
data Tree a = Leaf a | Node (Tree a) (Tree a)
treeFunctor : Functor Tree
treeFunctor = %runElab derive
```

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Deriving.Show.html b/base/docs/Deriving.Show.html index 2db2e877b9..f5145b1f2c 100644 --- a/base/docs/Deriving.Show.html +++ b/base/docs/Deriving.Show.html @@ -68,4 +68,4 @@ treeShow : Show a => Show (Tree a) treeShow = %runElab derive ``` -

Reexports

importpublic Control.Monad.Either
importpublic Control.Monad.State
importpublic Data.Maybe
importpublic Decidable.Equality
importpublic Language.Reflection
importpublic Deriving.Common

Definitions

fromShowPrec : (Prec->ty->String) ->Showty
Totality: total
Visibility: public export
dataError : Type
  Possible errors for the functor-deriving machinery.

Totality: total
Visibility: public export
Constructors:
NotAShowable : Name->Error
UnsupportedType : TTImp->Error
NotAFiniteStructure : Error
NotAnUnconstrainedValue : Count->Error
InvalidGoal : Error
ConfusingReturnType : Error
WhenCheckingConstructor : Name->Error->Error
WhenCheckingArg : TTImp->Error->Error

Hint: 
ShowError
dataIsShowable : Name->TTImp->Type
Totality: total
Visibility: public export
Constructors:
ISDelayed : IsShowabletty->IsShowablet (IDelayedfcLLazyty)
  The subterm is delayed (Lazy only, we can't traverse infinite structures)
ISRec : (0_ : IsAppView ({_:4388}, t) {_:4389}ty) ->IsShowabletty
  There is a recursive subtree of type (t a1 ... an)
ISShowN : (0_ : IsAppView ({_:4416}, tcon) argsty) ->HasTypetcontconty->IsProvable (ShowNtcontytcon) ->IsShowableArgsttconty (args<>> []) ->IsShowabletty
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Show interface
ISParam : IsShowabletty
  Or we could be referring to one of the parameters
ISPrim : (ty : PrimType) ->IsShowablet (IPrimValfc (PrTty))
  A primitive type is trivially Showable
typeView : Elaborationm=>MonadErrorErrorm=>MonadStateParametersm=> (t : Name) ->List (Name, Nat) -> (ty : TTImp) ->m (IsShowabletty)
  Hoping to observe that ty can be shown

Totality: total
Visibility: export
derive : {defaultPrivate_ : Visibility} -> {defaultTotal_ : TotalReq} -> {default [] _ : ListName} ->Elab (Showf)
  Derive an implementation of Show for a type constructor.
This can be used like so:
```
data Tree a = Leaf a | Node (Tree a) (Tree a)
treeShow : Show a => Show (Tree a)
treeShow = %runElab derive
```

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Control.Monad.Either
importpublic Control.Monad.State
importpublic Data.Maybe
importpublic Decidable.Equality
importpublic Language.Reflection
importpublic Deriving.Common

Definitions

fromShowPrec : (Prec->ty->String) ->Showty
Totality: total
Visibility: public export
dataError : Type
  Possible errors for the functor-deriving machinery.

Totality: total
Visibility: public export
Constructors:
NotAShowable : Name->Error
UnsupportedType : TTImp->Error
NotAFiniteStructure : Error
NotAnUnconstrainedValue : Count->Error
InvalidGoal : Error
ConfusingReturnType : Error
WhenCheckingConstructor : Name->Error->Error
WhenCheckingArg : TTImp->Error->Error

Hint: 
ShowError
dataIsShowable : Name->TTImp->Type
Totality: total
Visibility: public export
Constructors:
ISDelayed : IsShowabletty->IsShowablet (IDelayedfcLLazyty)
  The subterm is delayed (Lazy only, we can't traverse infinite structures)
ISRec : (0_ : IsAppView ({_:4388}, t) {_:4389}ty) ->IsShowabletty
  There is a recursive subtree of type (t a1 ... an)
ISShowN : (0_ : IsAppView ({_:4416}, tcon) argsty) ->HasTypetcontconty->IsProvable (ShowNtcontytcon) ->IsShowableArgsttconty (args<>> []) ->IsShowabletty
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Show interface
ISParam : IsShowabletty
  Or we could be referring to one of the parameters
ISPrim : (ty : PrimType) ->IsShowablet (IPrimValfc (PrTty))
  A primitive type is trivially Showable
typeView : Elaborationm=>MonadErrorErrorm=>MonadStateParametersm=> (t : Name) ->List (Name, Nat) -> (ty : TTImp) ->m (IsShowabletty)
  Hoping to observe that ty can be shown

Totality: total
Visibility: export
derive : {defaultPrivate_ : Visibility} -> {defaultTotal_ : TotalReq} -> {default [] _ : ListName} ->Elab (Showf)
  Derive an implementation of Show for a type constructor.
This can be used like so:
```
data Tree a = Leaf a | Node (Tree a) (Tree a)
treeShow : Show a => Show (Tree a)
treeShow = %runElab derive
```

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Deriving.Traversable.html b/base/docs/Deriving.Traversable.html index 7f1e150d60..504ac73771 100644 --- a/base/docs/Deriving.Traversable.html +++ b/base/docs/Deriving.Traversable.html @@ -68,4 +68,4 @@ treeFoldable : Traversable Tree treeFoldable = %runElab derive ``` -

Reexports

importpublic Control.Monad.Either
importpublic Control.Monad.State
importpublic Data.List1
importpublic Data.Maybe
importpublic Data.Morphisms
importpublic Decidable.Equality
importpublic Language.Reflection
importpublic Deriving.Common

Definitions

dataError : Type
  Possible errors for the functor-deriving machinery.

Totality: total
Visibility: public export
Constructors:
NotFreeOf : Name->TTImp->Error
NotAnApplication : TTImp->Error
NotATraversable : TTImp->Error
NotABitraversable : TTImp->Error
NotTraversableInItsLastArg : TTImp->Error
UnsupportedType : TTImp->Error
NotAFiniteStructure : Error
NotAnUnconstrainedValue : Count->Error
InvalidGoal : Error
ConfusingReturnType : Error
WhenCheckingConstructor : Name->Error->Error
WhenCheckingArg : TTImp->Error->Error

Hint: 
ShowError
dataIsTraversableIn : Name->Name->TTImp->Type
  IsTraversableIn is parametrised by
@ t the name of the data type whose constructors are being analysed
@ x the name of the type variable that the traversable action will act on
@ ty the type being analysed
The inductive type delivers a proof that x can be traversed over in ty,
assuming that t also is traversable.

Totality: total
Visibility: public export
Constructors:
TIVar : IsTraversableIntx (IVarfcx)
  The type variable x occurs alone
TIRec : (0_ : IsAppView ({_:4523}, t) {_:4524}f) ->IsTraversableIntxarg->IsTraversableIntx (IAppfcfarg)
  There is a recursive subtree of type (t a1 ... an u) and u is Traversable in x.
We do not insist that u is exactly x so that we can deal with nested types
like the following:
data Full a = Leaf a | Node (Full (a, a))
data Term a = Var a | App (Term a) (Term a) | Lam (Term (Maybe a))
TIDelayed : IsTraversableIntxty->IsTraversableIntx (IDelayedfcLLazyty)
  The subterm is delayed (Lazy only, we can't traverse infinite structures)
TIBifold : IsFreeOfxsp->HasImplementationBitraversablesp->IsTraversableIntxarg1->Either (IsTraversableIntxarg2) (IsFreeOfxarg2) ->IsTraversableIntx (IAppfc1 (IAppfc2sparg1) arg2)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Bitraversable interface
TIFold : IsFreeOfxsp->HasImplementationTraversablesp->IsTraversableIntxarg->IsTraversableIntx (IAppfcsparg)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Traversable interface
TIFree : IsFreeOfxa->IsTraversableIntxa
  A type free of x is trivially Traversable in it
TypeView : Elaborationm=>MonadErrorErrorm=>MonadStateParametersm=>Name->List (Name, Nat) ->Name->TTImp->Type
  When analysing the type of a constructor for the type family t,
we hope to observe
1. either that it is traversable in x
2. or that it is free of x
If it is not the case, we will use the `MonadError Error` constraint
to fail with an informative message.

Totality: total
Visibility: public export
fromTypeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) ->TypeViewty->IsTraversableIntxty
Totality: total
Visibility: export
typeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) -> (ty : TTImp) ->m (TypeViewty)
  Hoping to observe that ty is traversable

Totality: total
Visibility: export
derive : {defaultPrivate_ : Visibility} -> {defaultTotal_ : TotalReq} -> {default [] _ : ListName} ->Elab (Traversablef)
  Derive an implementation of Traversable for a type constructor.
This can be used like so:
```
data Tree a = Leaf a | Node (Tree a) (Tree a)
treeTraversable : Traversable Tree
treeTraversable = %runElab derive
```

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Control.Monad.Either
importpublic Control.Monad.State
importpublic Data.List1
importpublic Data.Maybe
importpublic Data.Morphisms
importpublic Decidable.Equality
importpublic Language.Reflection
importpublic Deriving.Common

Definitions

dataError : Type
  Possible errors for the functor-deriving machinery.

Totality: total
Visibility: public export
Constructors:
NotFreeOf : Name->TTImp->Error
NotAnApplication : TTImp->Error
NotATraversable : TTImp->Error
NotABitraversable : TTImp->Error
NotTraversableInItsLastArg : TTImp->Error
UnsupportedType : TTImp->Error
NotAFiniteStructure : Error
NotAnUnconstrainedValue : Count->Error
InvalidGoal : Error
ConfusingReturnType : Error
WhenCheckingConstructor : Name->Error->Error
WhenCheckingArg : TTImp->Error->Error

Hint: 
ShowError
dataIsTraversableIn : Name->Name->TTImp->Type
  IsTraversableIn is parametrised by
@ t the name of the data type whose constructors are being analysed
@ x the name of the type variable that the traversable action will act on
@ ty the type being analysed
The inductive type delivers a proof that x can be traversed over in ty,
assuming that t also is traversable.

Totality: total
Visibility: public export
Constructors:
TIVar : IsTraversableIntx (IVarfcx)
  The type variable x occurs alone
TIRec : (0_ : IsAppView ({_:4523}, t) {_:4524}f) ->IsTraversableIntxarg->IsTraversableIntx (IAppfcfarg)
  There is a recursive subtree of type (t a1 ... an u) and u is Traversable in x.
We do not insist that u is exactly x so that we can deal with nested types
like the following:
data Full a = Leaf a | Node (Full (a, a))
data Term a = Var a | App (Term a) (Term a) | Lam (Term (Maybe a))
TIDelayed : IsTraversableIntxty->IsTraversableIntx (IDelayedfcLLazyty)
  The subterm is delayed (Lazy only, we can't traverse infinite structures)
TIBifold : IsFreeOfxsp->HasImplementationBitraversablesp->IsTraversableIntxarg1->Either (IsTraversableIntxarg2) (IsFreeOfxarg2) ->IsTraversableIntx (IAppfc1 (IAppfc2sparg1) arg2)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Bitraversable interface
TIFold : IsFreeOfxsp->HasImplementationTraversablesp->IsTraversableIntxarg->IsTraversableIntx (IAppfcsparg)
  There are nested subtrees somewhere inside a 3rd party type constructor
which satisfies the Traversable interface
TIFree : IsFreeOfxa->IsTraversableIntxa
  A type free of x is trivially Traversable in it
TypeView : Elaborationm=>MonadErrorErrorm=>MonadStateParametersm=>Name->List (Name, Nat) ->Name->TTImp->Type
  When analysing the type of a constructor for the type family t,
we hope to observe
1. either that it is traversable in x
2. or that it is free of x
If it is not the case, we will use the `MonadError Error` constraint
to fail with an informative message.

Totality: total
Visibility: public export
fromTypeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) ->TypeViewty->IsTraversableIntxty
Totality: total
Visibility: export
typeView : {autoelab : Elaborationm} -> {autoerror : MonadErrorErrorm} -> {autocs : MonadStateParametersm} -> (t : Name) -> (ps : List (Name, Nat)) -> (x : Name) -> (ty : TTImp) ->m (TypeViewty)
  Hoping to observe that ty is traversable

Totality: total
Visibility: export
derive : {defaultPrivate_ : Visibility} -> {defaultTotal_ : TotalReq} -> {default [] _ : ListName} ->Elab (Traversablef)
  Derive an implementation of Traversable for a type constructor.
This can be used like so:
```
data Tree a = Leaf a | Node (Tree a) (Tree a)
treeTraversable : Traversable Tree
treeTraversable = %runElab derive
```

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Language.Reflection.TT.html b/base/docs/Language.Reflection.TT.html index 254ca711a9..a640e35ba0 100644 --- a/base/docs/Language.Reflection.TT.html +++ b/base/docs/Language.Reflection.TT.html @@ -61,4 +61,4 @@ -

Language.Reflection.TT(source)

Reexports

importpublic Data.List
importpublic Data.String

Definitions

dataNamespace : Type
Totality: total
Visibility: public export
Constructor: 
MkNS : ListString->Namespace

Hints:
BiinjectiveNS
DecEqNamespace
EqNamespace
InjectiveMkNS
OrdNamespace
ShowNamespace
dataModuleIdent : Type
Totality: total
Visibility: public export
Constructor: 
MkMI : ListString->ModuleIdent
showSep : String->ListString->String
Totality: total
Visibility: export
FilePos : Type
Totality: total
Visibility: public export
dataVirtualIdent : Type
Totality: total
Visibility: public export
Constructor: 
Interactive : VirtualIdent
dataOriginDesc : Type
Totality: total
Visibility: public export
Constructors:
PhysicalIdrSrc : ModuleIdent->OriginDesc
  Anything that originates in physical Idris source files is assigned a
`PhysicalIdrSrc modIdent`,
where `modIdent` is the top-level module identifier of that file.
PhysicalPkgSrc : String->OriginDesc
  Anything parsed from a package file is decorated with `PhysicalPkgSrc fname`,
where `fname` is path to the package file.
Virtual : VirtualIdent->OriginDesc
dataFC : Type
  A file context is a filename together with starting and ending positions.
It's often carried by AST nodes that might have been created from a source
file or by the compiler. That makes it useful to have the notion of
`EmptyFC` as part of the type.

Totality: total
Visibility: public export
Constructors:
MkFC : OriginDesc->FilePos->FilePos->FC
MkVirtualFC : OriginDesc->FilePos->FilePos->FC
  Virtual FCs are FC attached to desugared/generated code. They can help with marking
errors, but we shouldn't attach semantic highlighting metadata to them.
EmptyFC : FC
emptyFC : FC
Totality: total
Visibility: public export
dataNameType : Type
Totality: total
Visibility: public export
Constructors:
Bound : NameType
Func : NameType
DataCon : Int->Nat->NameType
TyCon : Int->Nat->NameType
dataPrimType : Type
Totality: total
Visibility: public export
Constructors:
IntType : PrimType
IntegerType : PrimType
Int8Type : PrimType
Int16Type : PrimType
Int32Type : PrimType
Int64Type : PrimType
Bits8Type : PrimType
Bits16Type : PrimType
Bits32Type : PrimType
Bits64Type : PrimType
StringType : PrimType
CharType : PrimType
DoubleType : PrimType
WorldType : PrimType

Hints:
EqPrimType
ShowPrimType
dataConstant : Type
Totality: total
Visibility: public export
Constructors:
I : Int->Constant
BI : Integer->Constant
I8 : Int8->Constant
I16 : Int16->Constant
I32 : Int32->Constant
I64 : Int64->Constant
B8 : Bits8->Constant
B16 : Bits16->Constant
B32 : Bits32->Constant
B64 : Bits64->Constant
Str : String->Constant
Ch : Char->Constant
Db : Double->Constant
PrT : PrimType->Constant
WorldVal : Constant

Hints:
EqConstant
ShowConstant
dataUserName : Type
Totality: total
Visibility: public export
Constructors:
Basic : String->UserName
Field : String->UserName
Underscore : UserName

Hints:
DecEqUserName
EqUserName
InjectiveBasic
InjectiveField
InjectiveUN
OrdUserName
ShowUserName
dataName : Type
Totality: total
Visibility: public export
Constructors:
NS : Namespace->Name->Name
UN : UserName->Name
MN : String->Int->Name
DN : String->Name->Name
Nested : (Int, Int) ->Name->Name
CaseBlock : String->Int->Name
WithBlock : String->Int->Name

Hints:
BiinjectiveNS
BiinjectiveMN
BiinjectiveDN
BiinjectiveNested
BiinjectiveCaseBlock
BiinjectiveWithBlock
DecEqName
EqName
InjectiveUN
OrdName
ShowName
dropNS : Name->Name
Totality: total
Visibility: export
isOp : Name->Bool
Totality: total
Visibility: export
showPrefix : Bool->Name->String
Totality: total
Visibility: export
recordNameInfo : Type
Totality: total
Visibility: public export
Constructor: 
MkNameInfo : NameType->NameInfo

Projection: 
.nametype : NameInfo->NameType
.nametype : NameInfo->NameType
Totality: total
Visibility: public export
nametype : NameInfo->NameType
Totality: total
Visibility: public export
dataCount : Type
Totality: total
Visibility: public export
Constructors:
M0 : Count
M1 : Count
MW : Count

Hints:
EqCount
OrdCount
enunciate : Count->String
Totality: total
Visibility: export
showCount : Count->String->String
Totality: total
Visibility: export
dataPiInfo : Type->Type
Totality: total
Visibility: public export
Constructors:
ImplicitArg : PiInfot
ExplicitArg : PiInfot
AutoImplicit : PiInfot
DefImplicit : t->PiInfot

Hint: 
Eqa=>Eq (PiInfoa)
showPiInfo : Showa=> {defaultTrue_ : Bool} ->PiInfoa->String->String
Totality: total
Visibility: export
dataIsVar : Name->Nat->ListName->Type
Totality: total
Visibility: public export
Constructors:
First : IsVarn0 (n::ns)
Later : IsVarnins->IsVarn (Si) (m::ns)
dataLazyReason : Type
Totality: total
Visibility: public export
Constructors:
LInf : LazyReason
LLazy : LazyReason
LUnknown : LazyReason

Hints:
EqLazyReason
ShowLazyReason
dataTotalReq : Type
Totality: total
Visibility: public export
Constructors:
Total : TotalReq
CoveringOnly : TotalReq
PartialOK : TotalReq

Hints:
EqTotalReq
ShowTotalReq
showTotalReq : MaybeTotalReq->String->String
Totality: total
Visibility: export
dataVisibility : Type
Totality: total
Visibility: public export
Constructors:
Private : Visibility
Export : Visibility
Public : Visibility

Hints:
EqVisibility
ShowVisibility
dataBuiltinType : Type
Totality: total
Visibility: public export
Constructors:
BuiltinNatural : BuiltinType
NaturalToInteger : BuiltinType
IntegerToNatural : BuiltinType

Hints:
EqBuiltinType
ShowBuiltinType
\ No newline at end of file +

Language.Reflection.TT(source)

Reexports

importpublic Data.List
importpublic Data.String

Definitions

dataNamespace : Type
Totality: total
Visibility: public export
Constructor: 
MkNS : ListString->Namespace

Hints:
BiinjectiveNS
DecEqNamespace
EqNamespace
InjectiveMkNS
OrdNamespace
ShowNamespace
dataModuleIdent : Type
Totality: total
Visibility: public export
Constructor: 
MkMI : ListString->ModuleIdent
showSep : String->ListString->String
Totality: total
Visibility: export
FilePos : Type
Totality: total
Visibility: public export
dataVirtualIdent : Type
Totality: total
Visibility: public export
Constructor: 
Interactive : VirtualIdent
dataOriginDesc : Type
Totality: total
Visibility: public export
Constructors:
PhysicalIdrSrc : ModuleIdent->OriginDesc
  Anything that originates in physical Idris source files is assigned a
`PhysicalIdrSrc modIdent`,
where `modIdent` is the top-level module identifier of that file.
PhysicalPkgSrc : String->OriginDesc
  Anything parsed from a package file is decorated with `PhysicalPkgSrc fname`,
where `fname` is path to the package file.
Virtual : VirtualIdent->OriginDesc
dataFC : Type
  A file context is a filename together with starting and ending positions.
It's often carried by AST nodes that might have been created from a source
file or by the compiler. That makes it useful to have the notion of
`EmptyFC` as part of the type.

Totality: total
Visibility: public export
Constructors:
MkFC : OriginDesc->FilePos->FilePos->FC
MkVirtualFC : OriginDesc->FilePos->FilePos->FC
  Virtual FCs are FC attached to desugared/generated code. They can help with marking
errors, but we shouldn't attach semantic highlighting metadata to them.
EmptyFC : FC
emptyFC : FC
Totality: total
Visibility: public export
dataNameType : Type
Totality: total
Visibility: public export
Constructors:
Bound : NameType
Func : NameType
DataCon : Int->Nat->NameType
TyCon : Int->Nat->NameType
dataPrimType : Type
Totality: total
Visibility: public export
Constructors:
IntType : PrimType
IntegerType : PrimType
Int8Type : PrimType
Int16Type : PrimType
Int32Type : PrimType
Int64Type : PrimType
Bits8Type : PrimType
Bits16Type : PrimType
Bits32Type : PrimType
Bits64Type : PrimType
StringType : PrimType
CharType : PrimType
DoubleType : PrimType
WorldType : PrimType

Hints:
EqPrimType
ShowPrimType
dataConstant : Type
Totality: total
Visibility: public export
Constructors:
I : Int->Constant
BI : Integer->Constant
I8 : Int8->Constant
I16 : Int16->Constant
I32 : Int32->Constant
I64 : Int64->Constant
B8 : Bits8->Constant
B16 : Bits16->Constant
B32 : Bits32->Constant
B64 : Bits64->Constant
Str : String->Constant
Ch : Char->Constant
Db : Double->Constant
PrT : PrimType->Constant
WorldVal : Constant

Hints:
EqConstant
ShowConstant
dataUserName : Type
Totality: total
Visibility: public export
Constructors:
Basic : String->UserName
Field : String->UserName
Underscore : UserName

Hints:
DecEqUserName
EqUserName
InjectiveBasic
InjectiveField
InjectiveUN
OrdUserName
ShowUserName
dataName : Type
Totality: total
Visibility: public export
Constructors:
NS : Namespace->Name->Name
UN : UserName->Name
MN : String->Int->Name
DN : String->Name->Name
Nested : (Int, Int) ->Name->Name
CaseBlock : String->Int->Name
WithBlock : String->Int->Name

Hints:
BiinjectiveNS
BiinjectiveMN
BiinjectiveDN
BiinjectiveNested
BiinjectiveCaseBlock
BiinjectiveWithBlock
DecEqName
EqName
InjectiveUN
OrdName
ShowName
dropNS : Name->Name
Totality: total
Visibility: export
isOp : Name->Bool
Totality: total
Visibility: export
showPrefix : Bool->Name->String
Totality: total
Visibility: export
recordNameInfo : Type
Totality: total
Visibility: public export
Constructor: 
MkNameInfo : NameType->NameInfo

Projection: 
.nametype : NameInfo->NameType
.nametype : NameInfo->NameType
Totality: total
Visibility: public export
nametype : NameInfo->NameType
Totality: total
Visibility: public export
dataCount : Type
Totality: total
Visibility: public export
Constructors:
M0 : Count
M1 : Count
MW : Count

Hints:
EqCount
OrdCount
enunciate : Count->String
Totality: total
Visibility: export
showCount : Count->String->String
Totality: total
Visibility: export
dataPiInfo : Type->Type
Totality: total
Visibility: public export
Constructors:
ImplicitArg : PiInfot
ExplicitArg : PiInfot
AutoImplicit : PiInfot
DefImplicit : t->PiInfot

Hint: 
Eqa=>Eq (PiInfoa)
showPiInfo : Showa=> {defaultTrue_ : Bool} ->PiInfoa->String->String
Totality: total
Visibility: export
dataIsVar : Name->Nat->ListName->Type
Totality: total
Visibility: public export
Constructors:
First : IsVarn0 (n::ns)
Later : IsVarnins->IsVarn (Si) (m::ns)
dataLazyReason : Type
Totality: total
Visibility: public export
Constructors:
LInf : LazyReason
LLazy : LazyReason
LUnknown : LazyReason

Hints:
EqLazyReason
ShowLazyReason
dataTotalReq : Type
Totality: total
Visibility: public export
Constructors:
Total : TotalReq
CoveringOnly : TotalReq
PartialOK : TotalReq

Hints:
EqTotalReq
ShowTotalReq
showTotalReq : MaybeTotalReq->String->String
Totality: total
Visibility: export
dataVisibility : Type
Totality: total
Visibility: public export
Constructors:
Private : Visibility
Export : Visibility
Public : Visibility

Hints:
EqVisibility
ShowVisibility
dataBuiltinType : Type
Totality: total
Visibility: public export
Constructors:
BuiltinNatural : BuiltinType
NaturalToInteger : BuiltinType
IntegerToNatural : BuiltinType

Hints:
EqBuiltinType
ShowBuiltinType
\ No newline at end of file diff --git a/base/docs/Language.Reflection.TTImp.html b/base/docs/Language.Reflection.TTImp.html index cdbb788a25..bcdda7e383 100644 --- a/base/docs/Language.Reflection.TTImp.html +++ b/base/docs/Language.Reflection.TTImp.html @@ -61,4 +61,4 @@ -

Language.Reflection.TTImp(source)

Reexports

importpublic Language.Reflection.TT

Definitions

dataBindMode : Type
Totality: total
Visibility: public export
Constructors:
PI : Count->BindMode
PATTERN : BindMode
COVERAGE : BindMode
NONE : BindMode

Hint: 
EqBindMode
dataUseSide : Type
Totality: total
Visibility: public export
Constructors:
UseLeft : UseSide
UseRight : UseSide

Hint: 
EqUseSide
dataDotReason : Type
Totality: total
Visibility: public export
Constructors:
NonLinearVar : DotReason
VarApplied : DotReason
NotConstructor : DotReason
ErasedArg : DotReason
UserDotted : DotReason
UnknownDot : DotReason
UnderAppliedCon : DotReason

Hint: 
EqDotReason
dataTTImp : Type
Totality: total
Visibility: public export
Constructors:
IVar : FC->Name->TTImp
IPi : FC->Count->PiInfoTTImp->MaybeName->TTImp->TTImp->TTImp
ILam : FC->Count->PiInfoTTImp->MaybeName->TTImp->TTImp->TTImp
ILet : FC->FC->Count->Name->TTImp->TTImp->TTImp->TTImp
ICase : FC->ListFnOpt->TTImp->TTImp->ListClause->TTImp
ILocal : FC->ListDecl->TTImp->TTImp
IUpdate : FC->ListIFieldUpdate->TTImp->TTImp
IApp : FC->TTImp->TTImp->TTImp
INamedApp : FC->TTImp->Name->TTImp->TTImp
IAutoApp : FC->TTImp->TTImp->TTImp
IWithApp : FC->TTImp->TTImp->TTImp
ISearch : FC->Nat->TTImp
IAlternative : FC->AltType->ListTTImp->TTImp
IRewrite : FC->TTImp->TTImp->TTImp
IBindHere : FC->BindMode->TTImp->TTImp
IBindVar : FC->String->TTImp
IAs : FC->FC->UseSide->Name->TTImp->TTImp
IMustUnify : FC->DotReason->TTImp->TTImp
IDelayed : FC->LazyReason->TTImp->TTImp
IDelay : FC->TTImp->TTImp
IForce : FC->TTImp->TTImp
IQuote : FC->TTImp->TTImp
IQuoteName : FC->Name->TTImp
IQuoteDecl : FC->ListDecl->TTImp
IUnquote : FC->TTImp->TTImp
IPrimVal : FC->Constant->TTImp
IType : FC->TTImp
IHole : FC->String->TTImp
Implicit : FC->Bool->TTImp
IWithUnambigNames : FC->List (FC, Name) ->TTImp->TTImp

Hints:
EqTTImp=>EqClause
EqTTImp=>EqIFieldUpdate
EqTTImp=>EqAltType
EqTTImp=>EqFnOpt
EqTTImp=>EqITy
EqTTImp=>EqData
EqTTImp=>EqIField
EqTTImp=>EqRecord
EqTTImp=>EqDecl
EqTTImp
ShowTTImp
dataIFieldUpdate : Type
Totality: total
Visibility: public export
Constructors:
ISetField : ListString->TTImp->IFieldUpdate
ISetFieldApp : ListString->TTImp->IFieldUpdate

Hints:
EqTTImp=>EqIFieldUpdate
ShowIFieldUpdate
dataAltType : Type
Totality: total
Visibility: public export
Constructors:
FirstSuccess : AltType
Unique : AltType
UniqueDefault : TTImp->AltType

Hint: 
EqTTImp=>EqAltType
dataFnOpt : Type
Totality: total
Visibility: public export
Constructors:
Inline : FnOpt
NoInline : FnOpt
Deprecate : FnOpt
TCInline : FnOpt
Hint : Bool->FnOpt
GlobalHint : Bool->FnOpt
ExternFn : FnOpt
ForeignFn : ListTTImp->FnOpt
ForeignExport : ListTTImp->FnOpt
Invertible : FnOpt
Totality : TotalReq->FnOpt
Macro : FnOpt
SpecArgs : ListName->FnOpt

Hint: 
EqTTImp=>EqFnOpt
dataITy : Type
Totality: total
Visibility: public export
Constructor: 
MkTy : FC->FC->Name->TTImp->ITy

Hints:
EqTTImp=>EqITy
ShowITy
dataDataOpt : Type
Totality: total
Visibility: public export
Constructors:
SearchBy : ListName->DataOpt
NoHints : DataOpt
UniqueSearch : DataOpt
External : DataOpt
NoNewtype : DataOpt

Hint: 
EqDataOpt
dataData : Type
Totality: total
Visibility: public export
Constructors:
MkData : FC->Name->MaybeTTImp->ListDataOpt->ListITy->Data
MkLater : FC->Name->TTImp->Data

Hints:
EqTTImp=>EqData
ShowData
dataIField : Type
Totality: total
Visibility: public export
Constructor: 
MkIField : FC->Count->PiInfoTTImp->Name->TTImp->IField

Hints:
EqTTImp=>EqIField
ShowIField
dataRecord : Type
Totality: total
Visibility: public export
Constructor: 
MkRecord : FC->Name->List (Name, (Count, (PiInfoTTImp, TTImp))) ->ListDataOpt->Name->ListIField->Record

Hints:
EqTTImp=>EqRecord
ShowRecord
dataWithFlag : Type
Totality: total
Visibility: public export
Constructor: 
Syntactic : WithFlag

Hint: 
EqWithFlag
dataClause : Type
Totality: total
Visibility: public export
Constructors:
PatClause : FC->TTImp->TTImp->Clause
WithClause : FC->TTImp->Count->TTImp->MaybeName->ListWithFlag->ListClause->Clause
ImpossibleClause : FC->TTImp->Clause

Hint: 
EqTTImp=>EqClause
dataWithDefault : (a : Type) ->a->Type
Totality: total
Visibility: public export
Constructors:
DefaultedValue : WithDefaultadef
SpecifiedValue : a->WithDefaultadef

Hints:
Eqa=>Eq (WithDefaultadef)
Orda=>Ord (WithDefaultadef)
Showa=>Show (WithDefaultadef)
specified : a->WithDefaultadef
Totality: total
Visibility: export
defaulted : WithDefaultadef
Totality: total
Visibility: export
collapseDefault : WithDefaultadef->a
Totality: total
Visibility: export
onWithDefault : Lazy b-> (a->b) ->WithDefaultadef->b
Totality: total
Visibility: export
dataDecl : Type
Totality: total
Visibility: public export
Constructors:
IClaim : FC->Count->Visibility->ListFnOpt->ITy->Decl
IData : FC->WithDefaultVisibilityPrivate->MaybeTotalReq->Data->Decl
IDef : FC->Name->ListClause->Decl
IParameters : FC->List (Name, (Count, (PiInfoTTImp, TTImp))) ->ListDecl->Decl
IRecord : FC->MaybeString->WithDefaultVisibilityPrivate->MaybeTotalReq->Record->Decl
INamespace : FC->Namespace->ListDecl->Decl
ITransform : FC->Name->TTImp->TTImp->Decl
IRunElabDecl : FC->TTImp->Decl
ILog : Maybe (ListString, Nat) ->Decl
IBuiltin : FC->BuiltinType->Name->Decl

Hints:
EqTTImp=>EqDecl
ShowDecl
getFC : TTImp->FC
Totality: total
Visibility: public export
mapTopmostFC : (FC->FC) ->TTImp->TTImp
Totality: total
Visibility: public export
dataMode : Type
Totality: total
Visibility: public export
Constructors:
InDecl : Mode
InCase : Mode
showClause : Mode->Clause->String
Totality: total
Visibility: public export
dataArgument : Type->Type
Totality: total
Visibility: public export
Constructors:
Arg : FC->a->Argumenta
NamedArg : FC->Name->a->Argumenta
AutoArg : FC->a->Argumenta

Hint: 
FunctorArgument
isExplicit : Argumenta->Maybe (FC, a)
Totality: total
Visibility: public export
fromPiInfo : FC->PiInfot->MaybeName->a->Maybe (Argumenta)
Totality: total
Visibility: public export
iApp : TTImp->ArgumentTTImp->TTImp
Totality: total
Visibility: public export
unArg : Argumenta->a
Totality: total
Visibility: public export
apply : TTImp->List (ArgumentTTImp) ->TTImp
  We often apply multiple arguments, this makes things simpler

Totality: total
Visibility: public export
dataIsAppView : (FC, Name) ->SnocList (ArgumentTTImp) ->TTImp->Type
Totality: total
Visibility: public export
Constructors:
AVVar : IsAppView (fc, t) [<] (IVarfct)
AVApp : IsAppViewxtsf->IsAppViewx (ts:<Argfct) (IAppfcft)
AVNamedApp : IsAppViewxtsf->IsAppViewx (ts:<NamedArgfcnt) (INamedAppfcfnt)
AVAutoApp : IsAppViewxtsf->IsAppViewx (ts:<AutoArgfct) (IAutoAppfcfa)
recordAppView : TTImp->Type
Totality: total
Visibility: public export
Constructor: 
MkAppView : (head : (FC, Name)) -> (args : SnocList (ArgumentTTImp)) -> (0_ : IsAppViewheadargst) ->AppViewt

Projections:
.args : AppViewt->SnocList (ArgumentTTImp)
.head : AppViewt-> (FC, Name)
0.isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
.head : AppViewt-> (FC, Name)
Totality: total
Visibility: public export
head : AppViewt-> (FC, Name)
Totality: total
Visibility: public export
.args : AppViewt->SnocList (ArgumentTTImp)
Totality: total
Visibility: public export
args : AppViewt->SnocList (ArgumentTTImp)
Totality: total
Visibility: public export
0.isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
Totality: total
Visibility: public export
0isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
Totality: total
Visibility: public export
appView : (t : TTImp) ->Maybe (AppViewt)
Totality: total
Visibility: public export
mapTTImp : (TTImp->TTImp) ->TTImp->TTImp
Totality: total
Visibility: public export
mapPiInfo : (TTImp->TTImp) ->PiInfoTTImp->PiInfoTTImp
Totality: total
Visibility: public export
mapClause : (TTImp->TTImp) ->Clause->Clause
Totality: total
Visibility: public export
mapITy : (TTImp->TTImp) ->ITy->ITy
Totality: total
Visibility: public export
mapFnOpt : (TTImp->TTImp) ->FnOpt->FnOpt
Totality: total
Visibility: public export
mapData : (TTImp->TTImp) ->Data->Data
Totality: total
Visibility: public export
mapIField : (TTImp->TTImp) ->IField->IField
Totality: total
Visibility: public export
mapRecord : (TTImp->TTImp) ->Record->Record
Totality: total
Visibility: public export
mapDecl : (TTImp->TTImp) ->Decl->Decl
Totality: total
Visibility: public export
mapIFieldUpdate : (TTImp->TTImp) ->IFieldUpdate->IFieldUpdate
Totality: total
Visibility: public export
mapAltType : (TTImp->TTImp) ->AltType->AltType
Totality: total
Visibility: public export
mapATTImp : Applicativem=> (mTTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
mapMPiInfo : Applicativem=> (mTTImp->mTTImp) ->PiInfoTTImp->m (PiInfoTTImp)
Totality: total
Visibility: public export
mapMClause : Applicativem=> (mTTImp->mTTImp) ->Clause->mClause
Totality: total
Visibility: public export
mapMITy : Applicativem=> (mTTImp->mTTImp) ->ITy->mITy
Totality: total
Visibility: public export
mapMFnOpt : Applicativem=> (mTTImp->mTTImp) ->FnOpt->mFnOpt
Totality: total
Visibility: public export
mapMData : Applicativem=> (mTTImp->mTTImp) ->Data->mData
Totality: total
Visibility: public export
mapMIField : Applicativem=> (mTTImp->mTTImp) ->IField->mIField
Totality: total
Visibility: public export
mapMRecord : Applicativem=> (mTTImp->mTTImp) ->Record->mRecord
Totality: total
Visibility: public export
mapMDecl : Applicativem=> (mTTImp->mTTImp) ->Decl->mDecl
Totality: total
Visibility: public export
mapMIFieldUpdate : Applicativem=> (mTTImp->mTTImp) ->IFieldUpdate->mIFieldUpdate
Totality: total
Visibility: public export
mapMAltType : Applicativem=> (mTTImp->mTTImp) ->AltType->mAltType
Totality: total
Visibility: public export
mapMTTImp : Monadm=> (TTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
\ No newline at end of file +

Language.Reflection.TTImp(source)

Reexports

importpublic Language.Reflection.TT

Definitions

dataBindMode : Type
Totality: total
Visibility: public export
Constructors:
PI : Count->BindMode
PATTERN : BindMode
COVERAGE : BindMode
NONE : BindMode

Hint: 
EqBindMode
dataUseSide : Type
Totality: total
Visibility: public export
Constructors:
UseLeft : UseSide
UseRight : UseSide

Hint: 
EqUseSide
dataDotReason : Type
Totality: total
Visibility: public export
Constructors:
NonLinearVar : DotReason
VarApplied : DotReason
NotConstructor : DotReason
ErasedArg : DotReason
UserDotted : DotReason
UnknownDot : DotReason
UnderAppliedCon : DotReason

Hint: 
EqDotReason
dataTTImp : Type
Totality: total
Visibility: public export
Constructors:
IVar : FC->Name->TTImp
IPi : FC->Count->PiInfoTTImp->MaybeName->TTImp->TTImp->TTImp
ILam : FC->Count->PiInfoTTImp->MaybeName->TTImp->TTImp->TTImp
ILet : FC->FC->Count->Name->TTImp->TTImp->TTImp->TTImp
ICase : FC->ListFnOpt->TTImp->TTImp->ListClause->TTImp
ILocal : FC->ListDecl->TTImp->TTImp
IUpdate : FC->ListIFieldUpdate->TTImp->TTImp
IApp : FC->TTImp->TTImp->TTImp
INamedApp : FC->TTImp->Name->TTImp->TTImp
IAutoApp : FC->TTImp->TTImp->TTImp
IWithApp : FC->TTImp->TTImp->TTImp
ISearch : FC->Nat->TTImp
IAlternative : FC->AltType->ListTTImp->TTImp
IRewrite : FC->TTImp->TTImp->TTImp
IBindHere : FC->BindMode->TTImp->TTImp
IBindVar : FC->String->TTImp
IAs : FC->FC->UseSide->Name->TTImp->TTImp
IMustUnify : FC->DotReason->TTImp->TTImp
IDelayed : FC->LazyReason->TTImp->TTImp
IDelay : FC->TTImp->TTImp
IForce : FC->TTImp->TTImp
IQuote : FC->TTImp->TTImp
IQuoteName : FC->Name->TTImp
IQuoteDecl : FC->ListDecl->TTImp
IUnquote : FC->TTImp->TTImp
IPrimVal : FC->Constant->TTImp
IType : FC->TTImp
IHole : FC->String->TTImp
Implicit : FC->Bool->TTImp
IWithUnambigNames : FC->List (FC, Name) ->TTImp->TTImp

Hints:
EqTTImp=>EqClause
EqTTImp=>EqIFieldUpdate
EqTTImp=>EqAltType
EqTTImp=>EqFnOpt
EqTTImp=>EqITy
EqTTImp=>EqData
EqTTImp=>EqIField
EqTTImp=>EqRecord
EqTTImp=>EqDecl
EqTTImp
ShowTTImp
dataIFieldUpdate : Type
Totality: total
Visibility: public export
Constructors:
ISetField : ListString->TTImp->IFieldUpdate
ISetFieldApp : ListString->TTImp->IFieldUpdate

Hints:
EqTTImp=>EqIFieldUpdate
ShowIFieldUpdate
dataAltType : Type
Totality: total
Visibility: public export
Constructors:
FirstSuccess : AltType
Unique : AltType
UniqueDefault : TTImp->AltType

Hint: 
EqTTImp=>EqAltType
dataFnOpt : Type
Totality: total
Visibility: public export
Constructors:
Inline : FnOpt
NoInline : FnOpt
Deprecate : FnOpt
TCInline : FnOpt
Hint : Bool->FnOpt
GlobalHint : Bool->FnOpt
ExternFn : FnOpt
ForeignFn : ListTTImp->FnOpt
ForeignExport : ListTTImp->FnOpt
Invertible : FnOpt
Totality : TotalReq->FnOpt
Macro : FnOpt
SpecArgs : ListName->FnOpt

Hint: 
EqTTImp=>EqFnOpt
dataITy : Type
Totality: total
Visibility: public export
Constructor: 
MkTy : FC->FC->Name->TTImp->ITy

Hints:
EqTTImp=>EqITy
ShowITy
dataDataOpt : Type
Totality: total
Visibility: public export
Constructors:
SearchBy : ListName->DataOpt
NoHints : DataOpt
UniqueSearch : DataOpt
External : DataOpt
NoNewtype : DataOpt

Hint: 
EqDataOpt
dataData : Type
Totality: total
Visibility: public export
Constructors:
MkData : FC->Name->MaybeTTImp->ListDataOpt->ListITy->Data
MkLater : FC->Name->TTImp->Data

Hints:
EqTTImp=>EqData
ShowData
dataIField : Type
Totality: total
Visibility: public export
Constructor: 
MkIField : FC->Count->PiInfoTTImp->Name->TTImp->IField

Hints:
EqTTImp=>EqIField
ShowIField
dataRecord : Type
Totality: total
Visibility: public export
Constructor: 
MkRecord : FC->Name->List (Name, (Count, (PiInfoTTImp, TTImp))) ->ListDataOpt->Name->ListIField->Record

Hints:
EqTTImp=>EqRecord
ShowRecord
dataWithFlag : Type
Totality: total
Visibility: public export
Constructor: 
Syntactic : WithFlag

Hint: 
EqWithFlag
dataClause : Type
Totality: total
Visibility: public export
Constructors:
PatClause : FC->TTImp->TTImp->Clause
WithClause : FC->TTImp->Count->TTImp->MaybeName->ListWithFlag->ListClause->Clause
ImpossibleClause : FC->TTImp->Clause

Hint: 
EqTTImp=>EqClause
dataWithDefault : (a : Type) ->a->Type
Totality: total
Visibility: public export
Constructors:
DefaultedValue : WithDefaultadef
SpecifiedValue : a->WithDefaultadef

Hints:
Eqa=>Eq (WithDefaultadef)
Orda=>Ord (WithDefaultadef)
Showa=>Show (WithDefaultadef)
specified : a->WithDefaultadef
Totality: total
Visibility: export
defaulted : WithDefaultadef
Totality: total
Visibility: export
collapseDefault : WithDefaultadef->a
Totality: total
Visibility: export
onWithDefault : Lazy b-> (a->b) ->WithDefaultadef->b
Totality: total
Visibility: export
dataDecl : Type
Totality: total
Visibility: public export
Constructors:
IClaim : FC->Count->Visibility->ListFnOpt->ITy->Decl
IData : FC->WithDefaultVisibilityPrivate->MaybeTotalReq->Data->Decl
IDef : FC->Name->ListClause->Decl
IParameters : FC->List (Name, (Count, (PiInfoTTImp, TTImp))) ->ListDecl->Decl
IRecord : FC->MaybeString->WithDefaultVisibilityPrivate->MaybeTotalReq->Record->Decl
INamespace : FC->Namespace->ListDecl->Decl
ITransform : FC->Name->TTImp->TTImp->Decl
IRunElabDecl : FC->TTImp->Decl
ILog : Maybe (ListString, Nat) ->Decl
IBuiltin : FC->BuiltinType->Name->Decl

Hints:
EqTTImp=>EqDecl
ShowDecl
getFC : TTImp->FC
Totality: total
Visibility: public export
mapTopmostFC : (FC->FC) ->TTImp->TTImp
Totality: total
Visibility: public export
dataMode : Type
Totality: total
Visibility: public export
Constructors:
InDecl : Mode
InCase : Mode
showClause : Mode->Clause->String
Totality: total
Visibility: public export
dataArgument : Type->Type
Totality: total
Visibility: public export
Constructors:
Arg : FC->a->Argumenta
NamedArg : FC->Name->a->Argumenta
AutoArg : FC->a->Argumenta

Hint: 
FunctorArgument
isExplicit : Argumenta->Maybe (FC, a)
Totality: total
Visibility: public export
fromPiInfo : FC->PiInfot->MaybeName->a->Maybe (Argumenta)
Totality: total
Visibility: public export
iApp : TTImp->ArgumentTTImp->TTImp
Totality: total
Visibility: public export
unArg : Argumenta->a
Totality: total
Visibility: public export
apply : TTImp->List (ArgumentTTImp) ->TTImp
  We often apply multiple arguments, this makes things simpler

Totality: total
Visibility: public export
dataIsAppView : (FC, Name) ->SnocList (ArgumentTTImp) ->TTImp->Type
Totality: total
Visibility: public export
Constructors:
AVVar : IsAppView (fc, t) [<] (IVarfct)
AVApp : IsAppViewxtsf->IsAppViewx (ts:<Argfct) (IAppfcft)
AVNamedApp : IsAppViewxtsf->IsAppViewx (ts:<NamedArgfcnt) (INamedAppfcfnt)
AVAutoApp : IsAppViewxtsf->IsAppViewx (ts:<AutoArgfct) (IAutoAppfcfa)
recordAppView : TTImp->Type
Totality: total
Visibility: public export
Constructor: 
MkAppView : (head : (FC, Name)) -> (args : SnocList (ArgumentTTImp)) -> (0_ : IsAppViewheadargst) ->AppViewt

Projections:
.args : AppViewt->SnocList (ArgumentTTImp)
.head : AppViewt-> (FC, Name)
0.isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
.head : AppViewt-> (FC, Name)
Totality: total
Visibility: public export
head : AppViewt-> (FC, Name)
Totality: total
Visibility: public export
.args : AppViewt->SnocList (ArgumentTTImp)
Totality: total
Visibility: public export
args : AppViewt->SnocList (ArgumentTTImp)
Totality: total
Visibility: public export
0.isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
Totality: total
Visibility: public export
0isAppView : ({rec:0} : AppViewt) ->IsAppView (head{rec:0}) (args{rec:0}) t
Totality: total
Visibility: public export
appView : (t : TTImp) ->Maybe (AppViewt)
Totality: total
Visibility: public export
mapTTImp : (TTImp->TTImp) ->TTImp->TTImp
Totality: total
Visibility: public export
mapPiInfo : (TTImp->TTImp) ->PiInfoTTImp->PiInfoTTImp
Totality: total
Visibility: public export
mapClause : (TTImp->TTImp) ->Clause->Clause
Totality: total
Visibility: public export
mapITy : (TTImp->TTImp) ->ITy->ITy
Totality: total
Visibility: public export
mapFnOpt : (TTImp->TTImp) ->FnOpt->FnOpt
Totality: total
Visibility: public export
mapData : (TTImp->TTImp) ->Data->Data
Totality: total
Visibility: public export
mapIField : (TTImp->TTImp) ->IField->IField
Totality: total
Visibility: public export
mapRecord : (TTImp->TTImp) ->Record->Record
Totality: total
Visibility: public export
mapDecl : (TTImp->TTImp) ->Decl->Decl
Totality: total
Visibility: public export
mapIFieldUpdate : (TTImp->TTImp) ->IFieldUpdate->IFieldUpdate
Totality: total
Visibility: public export
mapAltType : (TTImp->TTImp) ->AltType->AltType
Totality: total
Visibility: public export
mapATTImp' : Applicativem=> (TTImp->mTTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
mapMPiInfo : Applicativem=> (TTImp->mTTImp->mTTImp) ->PiInfoTTImp->m (PiInfoTTImp)
Totality: total
Visibility: public export
mapMClause : Applicativem=> (TTImp->mTTImp->mTTImp) ->Clause->mClause
Totality: total
Visibility: public export
mapMITy : Applicativem=> (TTImp->mTTImp->mTTImp) ->ITy->mITy
Totality: total
Visibility: public export
mapMFnOpt : Applicativem=> (TTImp->mTTImp->mTTImp) ->FnOpt->mFnOpt
Totality: total
Visibility: public export
mapMData : Applicativem=> (TTImp->mTTImp->mTTImp) ->Data->mData
Totality: total
Visibility: public export
mapMIField : Applicativem=> (TTImp->mTTImp->mTTImp) ->IField->mIField
Totality: total
Visibility: public export
mapMRecord : Applicativem=> (TTImp->mTTImp->mTTImp) ->Record->mRecord
Totality: total
Visibility: public export
mapMDecl : Applicativem=> (TTImp->mTTImp->mTTImp) ->Decl->mDecl
Totality: total
Visibility: public export
mapMIFieldUpdate : Applicativem=> (TTImp->mTTImp->mTTImp) ->IFieldUpdate->mIFieldUpdate
Totality: total
Visibility: public export
mapMAltType : Applicativem=> (TTImp->mTTImp->mTTImp) ->AltType->mAltType
Totality: total
Visibility: public export
mapATTImp : Monadm=> (mTTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
mapMTTImp' : Monadm=> (TTImp->TTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
mapMTTImp : Monadm=> (TTImp->mTTImp) ->TTImp->mTTImp
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/Language.Reflection.html b/base/docs/Language.Reflection.html index 8f7aeab1ad..c7cfd8b18a 100644 --- a/base/docs/Language.Reflection.html +++ b/base/docs/Language.Reflection.html @@ -61,4 +61,4 @@ -

Language.Reflection(source)

Reexports

importpublic Language.Reflection.TT
importpublic Language.Reflection.TTImp
importpublic Control.Monad.Trans

Definitions

dataLookupDir : Type
Totality: total
Visibility: public export
Constructors:
ProjectDir : LookupDir
  The dir of the `ipkg`-file, or the current dir if there is no one
SourceDir : LookupDir
  The source dir set in the `ipkg`-file, or the current dir if there is no one
CurrentModuleDir : LookupDir
  The dir where the current module is located

For the module `Language.Reflection` it would be `<source_dir>/Language/`
SubmodulesDir : LookupDir
  The dir where submodules of the current module are located

For the module `Language.Reflection` it would be `<source_dir>/Language/Reflection/`
BuildDir : LookupDir
  The dir where built files are located, set in the `ipkg`-file and defaulted to `build`
dataElab : Type->Type
  Elaboration scripts
Where types/terms are returned, binders will have unique, if not
necessarily human readabe, names

Totality: total
Visibility: export
Constructors:
Pure : a->Elaba
Map : (a->b) ->Elaba->Elabb
Ap : Elab (a->b) ->Elaba->Elabb
Bind : Elaba-> (a->Elabb) ->Elabb
Fail : FC->String->Elaba
Warn : FC->String->Elab ()
Try : Elaba->Elaba->Elaba
LogMsg : String->Nat->String->Elab ()
  Log a message. Takes a
* topic
* level
* message
LogTerm : String->Nat->String->TTImp->Elab ()
  Print and log a term. Takes a
* topic
* level
* message
* term
LogSugaredTerm : String->Nat->String->TTImp->Elab ()
  Resugar, print and log a term. Takes a
* topic
* level
* message
* term
Check : TTImp->Elabexpected
Quote : (0_ : val) ->ElabTTImp
Lambda : (0x : Type) -> {0ty : x->Type} -> ((val : x) ->Elab (tyval)) ->Elab ((val : x) ->tyval)
Goal : Elab (MaybeTTImp)
LocalVars : Elab (ListName)
GenSym : String->ElabName
InCurrentNS : Name->ElabName
GetType : Name->Elab (List (Name, TTImp))
GetInfo : Name->Elab (List (Name, NameInfo))
GetLocalType : Name->ElabTTImp
GetCons : Name->Elab (ListName)
GetReferredFns : Name->Elab (ListName)
GetCurrentFn : Elab (SnocListName)
Declare : ListDecl->Elab ()
ReadFile : LookupDir->String->Elab (MaybeString)
WriteFile : LookupDir->String->String->Elab ()
IdrisDir : LookupDir->ElabString

Hints:
AlternativeElab
ApplicativeElab
ElaborationElab
FunctorElab
MonadElab
interfaceElaboration : (Type->Type) ->Type
Parameters: m
Constraints: Monad m
Methods:
failAt : FC->String->ma
  Report an error in elaboration at some location
warnAt : FC->String->m ()
  Report a warning in elaboration at some location
try : Elaba->Elaba->ma
  Try the first elaborator. If it fails, reset the elaborator state and
run the second
logMsg : String->Nat->String->m ()
  Write a log message, if the log level is >= the given level
logTerm : String->Nat->String->TTImp->m ()
  Write a log message and a rendered term, if the log level is >= the given level
logSugaredTerm : String->Nat->String->TTImp->m ()
  Write a log message and a resugared & rendered term, if the log level is >= the given level
check : TTImp->mexpected
  Check that some TTImp syntax has the expected type
Returns the type checked value
quote : (0_ : val) ->mTTImp
  Return TTImp syntax of a given value
lambda : (0x : Type) -> {0ty : x->Type} -> ((val : x) ->Elab (tyval)) ->m ((val : x) ->tyval)
  Build a lambda expression
goal : m (MaybeTTImp)
  Get the goal type of the current elaboration

`Nothing` means the script is run in the top-level `%runElab` clause.
If elaboration script is run in expression mode, this function will always return `Just`.
In the case of unknown result type in the expression mode, returned `TTImp` would be an `IHole`.
localVars : m (ListName)
  Get the names of the local variables in scope
genSym : String->mName
  Generate a new unique name
inCurrentNS : Name->mName
  Given a name, return the name decorated with the current namespace
getType : Name->m (List (Name, TTImp))
  Given a possibly ambiguous name, get all the matching names and their types
getInfo : Name->m (List (Name, NameInfo))
  Get the metadata associated with a name. Returns all matching names and their types
getLocalType : Name->mTTImp
  Get the type of a local variable
getCons : Name->m (ListName)
  Get the constructors of a fully qualified data type name
getReferredFns : Name->m (ListName)
  Get all the name of function definitions that a given definition refers to (transitively)
getCurrentFn : m (SnocListName)
  Get the name of the current and outer functions, if we are in a function
declare : ListDecl->m ()
  Make some top level declarations
readFile : LookupDir->String->m (MaybeString)
  Read the contents of a file, if it is present
writeFile : LookupDir->String->String->m ()
  Writes to a file, replacing existing contents, if were present
idrisDir : LookupDir->mString
  Returns the specified type of dir related to the current idris project

Implementations:
ElaborationElab
Elaborationm=>MonadTranst=>Monad (tm) =>Elaboration (tm)
failAt : Elaborationm=>FC->String->ma
  Report an error in elaboration at some location

Totality: total
Visibility: public export
warnAt : Elaborationm=>FC->String->m ()
  Report a warning in elaboration at some location

Totality: total
Visibility: public export
try : Elaborationm=>Elaba->Elaba->ma
  Try the first elaborator. If it fails, reset the elaborator state and
run the second

Totality: total
Visibility: public export
logMsg : Elaborationm=>String->Nat->String->m ()
  Write a log message, if the log level is >= the given level

Totality: total
Visibility: public export
logTerm : Elaborationm=>String->Nat->String->TTImp->m ()
  Write a log message and a rendered term, if the log level is >= the given level

Totality: total
Visibility: public export
logSugaredTerm : Elaborationm=>String->Nat->String->TTImp->m ()
  Write a log message and a resugared & rendered term, if the log level is >= the given level

Totality: total
Visibility: public export
check : Elaborationm=>TTImp->mexpected
  Check that some TTImp syntax has the expected type
Returns the type checked value

Totality: total
Visibility: public export
quote : Elaborationm=> (0_ : val) ->mTTImp
  Return TTImp syntax of a given value

Totality: total
Visibility: public export
lambda : Elaborationm=> (0x : Type) -> {0ty : x->Type} -> ((val : x) ->Elab (tyval)) ->m ((val : x) ->tyval)
  Build a lambda expression

Totality: total
Visibility: public export
goal : Elaborationm=>m (MaybeTTImp)
  Get the goal type of the current elaboration

`Nothing` means the script is run in the top-level `%runElab` clause.
If elaboration script is run in expression mode, this function will always return `Just`.
In the case of unknown result type in the expression mode, returned `TTImp` would be an `IHole`.

Totality: total
Visibility: public export
localVars : Elaborationm=>m (ListName)
  Get the names of the local variables in scope

Totality: total
Visibility: public export
genSym : Elaborationm=>String->mName
  Generate a new unique name

Totality: total
Visibility: public export
inCurrentNS : Elaborationm=>Name->mName
  Given a name, return the name decorated with the current namespace

Totality: total
Visibility: public export
getType : Elaborationm=>Name->m (List (Name, TTImp))
  Given a possibly ambiguous name, get all the matching names and their types

Totality: total
Visibility: public export
getInfo : Elaborationm=>Name->m (List (Name, NameInfo))
  Get the metadata associated with a name. Returns all matching names and their types

Totality: total
Visibility: public export
getLocalType : Elaborationm=>Name->mTTImp
  Get the type of a local variable

Totality: total
Visibility: public export
getCons : Elaborationm=>Name->m (ListName)
  Get the constructors of a fully qualified data type name

Totality: total
Visibility: public export
getReferredFns : Elaborationm=>Name->m (ListName)
  Get all the name of function definitions that a given definition refers to (transitively)

Totality: total
Visibility: public export
getCurrentFn : Elaborationm=>m (SnocListName)
  Get the name of the current and outer functions, if we are in a function

Totality: total
Visibility: public export
declare : Elaborationm=>ListDecl->m ()
  Make some top level declarations

Totality: total
Visibility: public export
readFile : Elaborationm=>LookupDir->String->m (MaybeString)
  Read the contents of a file, if it is present

Totality: total
Visibility: public export
writeFile : Elaborationm=>LookupDir->String->String->m ()
  Writes to a file, replacing existing contents, if were present

Totality: total
Visibility: public export
idrisDir : Elaborationm=>LookupDir->mString
  Returns the specified type of dir related to the current idris project

Totality: total
Visibility: public export
fail : Elaborationm=>String->ma
  Report an error in elaboration

Totality: total
Visibility: export
warn : Elaborationm=>String->m ()
  Report an error in elaboration

Totality: total
Visibility: export
logGoal : Elaborationm=>String->Nat->String->m ()
  Log the current goal type, if the log level is >= the given level

Totality: total
Visibility: export
catch : Elaborationm=>Elaba->m (Maybea)
  Catch failures and use the `Maybe` monad instead

Totality: total
Visibility: export
search : Elaborationm=> (ty : Type) ->m (Maybety)
  Run proof search to attempt to find a value of the input type.
Useful to check whether a give interface constraint is satisfied.

Totality: total
Visibility: export
\ No newline at end of file +

Language.Reflection(source)

Reexports

importpublic Language.Reflection.TT
importpublic Language.Reflection.TTImp
importpublic Control.Monad.Trans

Definitions

dataLookupDir : Type
Totality: total
Visibility: public export
Constructors:
ProjectDir : LookupDir
  The dir of the `ipkg`-file, or the current dir if there is no one
SourceDir : LookupDir
  The source dir set in the `ipkg`-file, or the current dir if there is no one
CurrentModuleDir : LookupDir
  The dir where the current module is located

For the module `Language.Reflection` it would be `<source_dir>/Language/`
SubmodulesDir : LookupDir
  The dir where submodules of the current module are located

For the module `Language.Reflection` it would be `<source_dir>/Language/Reflection/`
BuildDir : LookupDir
  The dir where built files are located, set in the `ipkg`-file and defaulted to `build`
dataElab : Type->Type
  Elaboration scripts
Where types/terms are returned, binders will have unique, if not
necessarily human readabe, names

Totality: total
Visibility: export
Constructors:
Pure : a->Elaba
Map : (a->b) ->Elaba->Elabb
Ap : Elab (a->b) ->Elaba->Elabb
Bind : Elaba-> (a->Elabb) ->Elabb
Fail : FC->String->Elaba
Warn : FC->String->Elab ()
Try : Elaba->Elaba->Elaba
LogMsg : String->Nat->String->Elab ()
  Log a message. Takes a
* topic
* level
* message
LogTerm : String->Nat->String->TTImp->Elab ()
  Print and log a term. Takes a
* topic
* level
* message
* term
LogSugaredTerm : String->Nat->String->TTImp->Elab ()
  Resugar, print and log a term. Takes a
* topic
* level
* message
* term
Check : TTImp->Elabexpected
Quote : (0_ : val) ->ElabTTImp
Lambda : (0x : Type) -> {0ty : x->Type} -> ((val : x) ->Elab (tyval)) ->Elab ((val : x) ->tyval)
Goal : Elab (MaybeTTImp)
LocalVars : Elab (ListName)
GenSym : String->ElabName
InCurrentNS : Name->ElabName
GetType : Name->Elab (List (Name, TTImp))
GetInfo : Name->Elab (List (Name, NameInfo))
GetLocalType : Name->ElabTTImp
GetCons : Name->Elab (ListName)
GetReferredFns : Name->Elab (ListName)
GetCurrentFn : Elab (SnocListName)
Declare : ListDecl->Elab ()
ReadFile : LookupDir->String->Elab (MaybeString)
WriteFile : LookupDir->String->String->Elab ()
IdrisDir : LookupDir->ElabString

Hints:
AlternativeElab
ApplicativeElab
ElaborationElab
FunctorElab
MonadElab
interfaceElaboration : (Type->Type) ->Type
Parameters: m
Constraints: Monad m
Methods:
failAt : FC->String->ma
  Report an error in elaboration at some location
warnAt : FC->String->m ()
  Report a warning in elaboration at some location
try : Elaba->Elaba->ma
  Try the first elaborator. If it fails, reset the elaborator state and
run the second
logMsg : String->Nat->String->m ()
  Write a log message, if the log level is >= the given level
logTerm : String->Nat->String->TTImp->m ()
  Write a log message and a rendered term, if the log level is >= the given level
logSugaredTerm : String->Nat->String->TTImp->m ()
  Write a log message and a resugared & rendered term, if the log level is >= the given level
check : TTImp->mexpected
  Check that some TTImp syntax has the expected type
Returns the type checked value
quote : (0_ : val) ->mTTImp
  Return TTImp syntax of a given value
lambda : (0x : Type) -> {0ty : x->Type} -> ((val : x) ->Elab (tyval)) ->m ((val : x) ->tyval)
  Build a lambda expression
goal : m (MaybeTTImp)
  Get the goal type of the current elaboration

`Nothing` means the script is run in the top-level `%runElab` clause.
If elaboration script is run in expression mode, this function will always return `Just`.
In the case of unknown result type in the expression mode, returned `TTImp` would be an `IHole`.
localVars : m (ListName)
  Get the names of the local variables in scope
genSym : String->mName
  Generate a new unique name
inCurrentNS : Name->mName
  Given a name, return the name decorated with the current namespace
getType : Name->m (List (Name, TTImp))
  Given a possibly ambiguous name, get all the matching names and their types
getInfo : Name->m (List (Name, NameInfo))
  Get the metadata associated with a name. Returns all matching names and their types
getLocalType : Name->mTTImp
  Get the type of a local variable
getCons : Name->m (ListName)
  Get the constructors of a fully qualified data type name
getReferredFns : Name->m (ListName)
  Get all the name of function definitions that a given definition refers to (transitively)
getCurrentFn : m (SnocListName)
  Get the name of the current and outer functions, if we are in a function
declare : ListDecl->m ()
  Make some top level declarations
readFile : LookupDir->String->m (MaybeString)
  Read the contents of a file, if it is present
writeFile : LookupDir->String->String->m ()
  Writes to a file, replacing existing contents, if were present
idrisDir : LookupDir->mString
  Returns the specified type of dir related to the current idris project

Implementations:
ElaborationElab
Elaborationm=>MonadTranst=>Monad (tm) =>Elaboration (tm)
failAt : Elaborationm=>FC->String->ma
  Report an error in elaboration at some location

Totality: total
Visibility: public export
warnAt : Elaborationm=>FC->String->m ()
  Report a warning in elaboration at some location

Totality: total
Visibility: public export
try : Elaborationm=>Elaba->Elaba->ma
  Try the first elaborator. If it fails, reset the elaborator state and
run the second

Totality: total
Visibility: public export
logMsg : Elaborationm=>String->Nat->String->m ()
  Write a log message, if the log level is >= the given level

Totality: total
Visibility: public export
logTerm : Elaborationm=>String->Nat->String->TTImp->m ()
  Write a log message and a rendered term, if the log level is >= the given level

Totality: total
Visibility: public export
logSugaredTerm : Elaborationm=>String->Nat->String->TTImp->m ()
  Write a log message and a resugared & rendered term, if the log level is >= the given level

Totality: total
Visibility: public export
check : Elaborationm=>TTImp->mexpected
  Check that some TTImp syntax has the expected type
Returns the type checked value

Totality: total
Visibility: public export
quote : Elaborationm=> (0_ : val) ->mTTImp
  Return TTImp syntax of a given value

Totality: total
Visibility: public export
lambda : Elaborationm=> (0x : Type) -> {0ty : x->Type} -> ((val : x) ->Elab (tyval)) ->m ((val : x) ->tyval)
  Build a lambda expression

Totality: total
Visibility: public export
goal : Elaborationm=>m (MaybeTTImp)
  Get the goal type of the current elaboration

`Nothing` means the script is run in the top-level `%runElab` clause.
If elaboration script is run in expression mode, this function will always return `Just`.
In the case of unknown result type in the expression mode, returned `TTImp` would be an `IHole`.

Totality: total
Visibility: public export
localVars : Elaborationm=>m (ListName)
  Get the names of the local variables in scope

Totality: total
Visibility: public export
genSym : Elaborationm=>String->mName
  Generate a new unique name

Totality: total
Visibility: public export
inCurrentNS : Elaborationm=>Name->mName
  Given a name, return the name decorated with the current namespace

Totality: total
Visibility: public export
getType : Elaborationm=>Name->m (List (Name, TTImp))
  Given a possibly ambiguous name, get all the matching names and their types

Totality: total
Visibility: public export
getInfo : Elaborationm=>Name->m (List (Name, NameInfo))
  Get the metadata associated with a name. Returns all matching names and their types

Totality: total
Visibility: public export
getLocalType : Elaborationm=>Name->mTTImp
  Get the type of a local variable

Totality: total
Visibility: public export
getCons : Elaborationm=>Name->m (ListName)
  Get the constructors of a fully qualified data type name

Totality: total
Visibility: public export
getReferredFns : Elaborationm=>Name->m (ListName)
  Get all the name of function definitions that a given definition refers to (transitively)

Totality: total
Visibility: public export
getCurrentFn : Elaborationm=>m (SnocListName)
  Get the name of the current and outer functions, if we are in a function

Totality: total
Visibility: public export
declare : Elaborationm=>ListDecl->m ()
  Make some top level declarations

Totality: total
Visibility: public export
readFile : Elaborationm=>LookupDir->String->m (MaybeString)
  Read the contents of a file, if it is present

Totality: total
Visibility: public export
writeFile : Elaborationm=>LookupDir->String->String->m ()
  Writes to a file, replacing existing contents, if were present

Totality: total
Visibility: public export
idrisDir : Elaborationm=>LookupDir->mString
  Returns the specified type of dir related to the current idris project

Totality: total
Visibility: public export
fail : Elaborationm=>String->ma
  Report an error in elaboration

Totality: total
Visibility: export
warn : Elaborationm=>String->m ()
  Report an error in elaboration

Totality: total
Visibility: export
logGoal : Elaborationm=>String->Nat->String->m ()
  Log the current goal type, if the log level is >= the given level

Totality: total
Visibility: export
catch : Elaborationm=>Elaba->m (Maybea)
  Catch failures and use the `Maybe` monad instead

Totality: total
Visibility: export
search : Elaborationm=> (ty : Type) ->m (Maybety)
  Run proof search to attempt to find a value of the input type.
Useful to check whether a give interface constraint is satisfied.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/Syntax.PreorderReasoning.Generic.html b/base/docs/Syntax.PreorderReasoning.Generic.html index caf48006da..459f672554 100644 --- a/base/docs/Syntax.PreorderReasoning.Generic.html +++ b/base/docs/Syntax.PreorderReasoning.Generic.html @@ -61,4 +61,4 @@ -

Syntax.PreorderReasoning.Generic(source)

Definitions

dataStep : (a->a->Type) ->a->a->Type
Totality: total
Visibility: public export
Constructor: 
(...) : (y : a) ->leqxy->Stepleqxy
dataFastDerivation : (a->a->Type) ->a->a->Type
Totality: total
Visibility: public export
Constructors:
(|~) : (x : a) ->FastDerivationleqxx
(<~) : FastDerivationleqxy->Stepleqyz->FastDerivationleqxz
dataDerivationType : FastDerivationleqxy->Type
Totality: total
Visibility: public export
Constructors:
TrivialDerivation : DerivationType ((|~)x)
SingleStepDerivation : DerivationType ((|~)x<~step)
NonTrivialDerivation : DerivationType ((der<~step1) <~step2)
derivationType : (der : FastDerivationleqxy) ->DerivationTypeder
Visibility: public export
0Prerequisite : DerivationTypeder->Type
Visibility: public export
inductivePrerequisite : (der : FastDerivationleqxy) -> (0step1 : Stepleqyz) -> (0step2 : Stepleqzw) ->Prerequisite (derivationType ((der<~step1) <~step2)) ->Prerequisite (derivationType (der<~step1))
Visibility: public export
preorderPrerequisite : Preorderdomleq=> (der : FastDerivationleqxy) ->Prerequisite (derivationTypeder)
Visibility: public export
CalcSmart : (der : FastDerivationleqxy) ->Prerequisite (derivationTypeder) =>leqxy
  The Prerequisite for the derivation:
0-length derivation: Reflexive dom leq
1-length derivation: Unit (no prerequisite)
2 steps of longer: Transitivity

Visibility: public export
CalcWith : Preorderdomleq=>FastDerivationleqxy->leqxy
Visibility: public export
(~~) : FastDerivationleqxy-> (0_ : StepEqualyz) ->FastDerivationleqxz
Visibility: public export
Fixity Declarations:
infixl operator, level 0
infixl operator, level 0
(..<) : Symmetricaleq=> (y : a) ->leqyx->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(..>) : (y : a) ->leqxy->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(.=.) : Reflexivealeq=> (y : a) ->x=y->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(.=>) : Reflexivealeq=> (y : a) ->x=y->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(.=<) : Reflexivealeq=> (y : a) ->y=x->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(~=) : FastDerivationleqxy-> (0z : dom) ->y=z=>FastDerivationleqxz
Visibility: public export
Fixity Declarations:
infixl operator, level 0
infixl operator, level 0
\ No newline at end of file +

Syntax.PreorderReasoning.Generic(source)

Definitions

dataStep : (a->a->Type) ->a->a->Type
Totality: total
Visibility: public export
Constructor: 
(...) : (y : a) ->leqxy->Stepleqxy
dataFastDerivation : (a->a->Type) ->a->a->Type
Totality: total
Visibility: public export
Constructors:
(|~) : (x : a) ->FastDerivationleqxx
(<~) : FastDerivationleqxy->Stepleqyz->FastDerivationleqxz
dataDerivationType : FastDerivationleqxy->Type
Totality: total
Visibility: public export
Constructors:
TrivialDerivation : DerivationType ((|~)x)
SingleStepDerivation : DerivationType ((|~)x<~step)
NonTrivialDerivation : DerivationType ((der<~step1) <~step2)
derivationType : (der : FastDerivationleqxy) ->DerivationTypeder
Visibility: public export
0Prerequisite : DerivationTypeder->Type
Visibility: public export
inductivePrerequisite : (der : FastDerivationleqxy) -> (0step1 : Stepleqyz) -> (0step2 : Stepleqzw) ->Prerequisite (derivationType ((der<~step1) <~step2)) ->Prerequisite (derivationType (der<~step1))
Visibility: public export
preorderPrerequisite : Preorderdomleq=> (der : FastDerivationleqxy) ->Prerequisite (derivationTypeder)
Visibility: public export
CalcSmart : (der : FastDerivationleqxy) ->Prerequisite (derivationTypeder) =>leqxy
  The Prerequisite for the derivation:
0-length derivation: Reflexive dom leq
1-length derivation: Unit (no prerequisite)
2 steps of longer: Transitivity

Visibility: public export
CalcWith : Preorderdomleq=>FastDerivationleqxy->leqxy
Visibility: public export
(~~) : FastDerivationleqxy-> (0_ : StepEqualyz) ->FastDerivationleqxz
Visibility: public export
Fixity Declarations:
infixl operator, level 0
infixl operator, level 0
(..<) : Symmetricaleq=> (y : a) ->leqyx->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(..>) : (y : a) ->leqxy->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(.=.) : Reflexivealeq=> (y : a) ->x=y->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(.=>) : Reflexivealeq=> (y : a) ->x=y->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(.=<) : Reflexivealeq=> (y : a) ->y=x->Stepleqxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(~=) : FastDerivationleqxy-> (0z : dom) ->y=z=>FastDerivationleqxz
Visibility: public export
Fixity Declarations:
infixl operator, level 0
infixl operator, level 0
\ No newline at end of file diff --git a/base/docs/Syntax.PreorderReasoning.html b/base/docs/Syntax.PreorderReasoning.html index 2833bd0774..6ae6e1e831 100644 --- a/base/docs/Syntax.PreorderReasoning.html +++ b/base/docs/Syntax.PreorderReasoning.html @@ -63,4 +63,4 @@

Syntax.PreorderReasoning(source)

Until Idris2 starts supporting the 'syntax' keyword, here's a
 poor-man's equational reasoning
-

Definitions

dataStep : a->b->Type
  Slightly nicer syntax for justifying equations:
```
|~ a
~~ b ...( justification )
```
and we can think of the `...( justification )` as ASCII art for a thought bubble.

Totality: total
Visibility: public export
Constructor: 
(...) : (0y : a) -> (0_ : x=y) ->Stepxy
dataFastDerivation : a->b->Type
Totality: total
Visibility: public export
Constructors:
(|~) : (0x : a) ->FastDerivationxx
(~~) : FastDerivationxy->Stepyz->FastDerivationxz
Calc : (0_ : FastDerivationxy) ->x=y
Visibility: public export
(..<) : (0y : a) -> (0_ : y=x) ->Stepxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(..>) : (0y : a) -> (0_ : x=y) ->Stepxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(~=) : FastDerivationxy-> (0z : dom) -> {auto0_ : y=z} ->FastDerivationxz
  Use a judgemental equality but is not trivial to the reader.

Visibility: public export
Fixity Declarations:
infixl operator, level 0
infixl operator, level 0
\ No newline at end of file +

Definitions

dataStep : a->b->Type
  Slightly nicer syntax for justifying equations:
```
|~ a
~~ b ...( justification )
```
and we can think of the `...( justification )` as ASCII art for a thought bubble.

Totality: total
Visibility: public export
Constructor: 
(...) : (0y : a) -> (0_ : x=y) ->Stepxy
dataFastDerivation : a->b->Type
Totality: total
Visibility: public export
Constructors:
(|~) : (0x : a) ->FastDerivationxx
(~~) : FastDerivationxy->Stepyz->FastDerivationxz
Calc : (0_ : FastDerivationxy) ->x=y
Visibility: public export
(..<) : (0y : a) -> (0_ : y=x) ->Stepxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(..>) : (0y : a) -> (0_ : x=y) ->Stepxy
Visibility: public export
Fixity Declarations:
infix operator, level 1
infix operator, level 1
(~=) : FastDerivationxy-> (0z : dom) -> {auto0_ : y=z} ->FastDerivationxz
  Use a judgemental equality but is not trivial to the reader.

Visibility: public export
Fixity Declarations:
infixl operator, level 0
infixl operator, level 0
\ No newline at end of file diff --git a/base/docs/System.Clock.html b/base/docs/System.Clock.html index 598dd57501..9560f07a01 100644 --- a/base/docs/System.Clock.html +++ b/base/docs/System.Clock.html @@ -62,4 +62,4 @@

System.Clock(source)

Types and functions for reasoning about time.
-

Definitions

dataClockType : Type
  The various types of system clock available.

Totality: total
Visibility: public export
Constructors:
UTC : ClockType
  The time elapsed since the "epoch:" 00:00:00 UTC, January 1, 1970
Monotonic : ClockType
  The time elapsed since some arbitrary point in the past
Duration : ClockType
  Representing a time duration.
Process : ClockType
  The amount of CPU time used by the current process.
Thread : ClockType
  The amount of CPU time used by the current thread.
GCCPU : ClockType
  The current process's CPU time consumed by the garbage collector.
GCReal : ClockType
  The current process's real time consumed by the garbage collector.

Hints:
Eq (Clocktype)
Ord (Clocktype)
ShowClockType
Show (Clocktype)
dataClock : ClockType->Type
  A clock recording some time in seconds and nanoseconds. The "type" of time
recorded is indicated by the given `ClockType`.

Totality: total
Visibility: public export
Constructor: 
MkClock : Integer->Integer->Clocktype

Hints:
Eq (Clocktype)
Ord (Clocktype)
Show (Clocktype)
showTime : Nat->Nat->Clocktype->String
  Display a `Clock`'s content, padding the seconds and nanoseconds as
appropriate.

@ s the number of digits used to display the seconds
@ ns the number of digits used to display the nanosecondns
@ clk the Clock whose contents to display

Totality: total
Visibility: export
seconds : Clocktype->Integer
  A helper to deconstruct a Clock.

Totality: total
Visibility: public export
nanoseconds : Clocktype->Integer
  A helper to deconstruct a Clock.

Totality: total
Visibility: public export
makeDuration : Integer->Integer->ClockDuration
  Make a duration value.

@ s the number of seconds in the duration
@ ns the number of nanoseconds in the duration

Totality: total
Visibility: public export
dataClockTypeMandatory : Type
  Note: Backends are required to implement UTC, monotonic time, CPU time in
current process/thread, and time duration; the rest are optional.

Totality: total
Visibility: export
Constructors:
Mandatory : ClockTypeMandatory
Optional : ClockTypeMandatory
isClockMandatory : ClockType->ClockTypeMandatory
  Determine whether the specified `ClockType` is required to be implemented by
all backends.

Totality: total
Visibility: public export
clockTimeReturnType : ClockType->Type
  The return type of a function using a `Clock` depends on the type of
`Clock`:
* `Optional` clocks may not be implemented, so we might not return anything
* `Mandatory` clocks have to be implemented, so we _will_ return something

Totality: total
Visibility: public export
clockTime : (typ : ClockType) ->IO (clockTimeReturnTypetyp)
  Fetch the system clock of a given kind. If the clock is mandatory,
we return a `Clock type` else, we return a `Maybe (Clock type)`.

Totality: total
Visibility: public export
toNano : Clocktype->Integer
  Convert the time in the given clock to nanoseconds.

Totality: total
Visibility: public export
fromNano : Integer->Clocktype
  Convert some time in nanoseconds to a `Clock` containing that time.

@ n the time in nanoseconds

Totality: total
Visibility: public export
timeDifference : Clocktype->Clocktype->ClockDuration
  Compute difference between two clocks of the same type.
@ end the end time
@ start the start time

Totality: total
Visibility: public export
addDuration : Clocktype->ClockDuration->Clocktype
  Add a duration to a clock value.

Totality: total
Visibility: public export
subtractDuration : Clocktype->ClockDuration->Clocktype
  Subtract a duration from a clock value.

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataClockType : Type
  The various types of system clock available.

Totality: total
Visibility: public export
Constructors:
UTC : ClockType
  The time elapsed since the "epoch:" 00:00:00 UTC, January 1, 1970
Monotonic : ClockType
  The time elapsed since some arbitrary point in the past
Duration : ClockType
  Representing a time duration.
Process : ClockType
  The amount of CPU time used by the current process.
Thread : ClockType
  The amount of CPU time used by the current thread.
GCCPU : ClockType
  The current process's CPU time consumed by the garbage collector.
GCReal : ClockType
  The current process's real time consumed by the garbage collector.

Hints:
Eq (Clocktype)
Ord (Clocktype)
ShowClockType
Show (Clocktype)
dataClock : ClockType->Type
  A clock recording some time in seconds and nanoseconds. The "type" of time
recorded is indicated by the given `ClockType`.

Totality: total
Visibility: public export
Constructor: 
MkClock : Integer->Integer->Clocktype

Hints:
Eq (Clocktype)
Ord (Clocktype)
Show (Clocktype)
showTime : Nat->Nat->Clocktype->String
  Display a `Clock`'s content, padding the seconds and nanoseconds as
appropriate.

@ s the number of digits used to display the seconds
@ ns the number of digits used to display the nanosecondns
@ clk the Clock whose contents to display

Totality: total
Visibility: export
seconds : Clocktype->Integer
  A helper to deconstruct a Clock.

Totality: total
Visibility: public export
nanoseconds : Clocktype->Integer
  A helper to deconstruct a Clock.

Totality: total
Visibility: public export
makeDuration : Integer->Integer->ClockDuration
  Make a duration value.

@ s the number of seconds in the duration
@ ns the number of nanoseconds in the duration

Totality: total
Visibility: public export
dataClockTypeMandatory : Type
  Note: Backends are required to implement UTC, monotonic time, CPU time in
current process/thread, and time duration; the rest are optional.

Totality: total
Visibility: export
Constructors:
Mandatory : ClockTypeMandatory
Optional : ClockTypeMandatory
isClockMandatory : ClockType->ClockTypeMandatory
  Determine whether the specified `ClockType` is required to be implemented by
all backends.

Totality: total
Visibility: public export
clockTimeReturnType : ClockType->Type
  The return type of a function using a `Clock` depends on the type of
`Clock`:
* `Optional` clocks may not be implemented, so we might not return anything
* `Mandatory` clocks have to be implemented, so we _will_ return something

Totality: total
Visibility: public export
clockTime : (typ : ClockType) ->IO (clockTimeReturnTypetyp)
  Fetch the system clock of a given kind. If the clock is mandatory,
we return a `Clock type` else, we return a `Maybe (Clock type)`.

Totality: total
Visibility: public export
toNano : Clocktype->Integer
  Convert the time in the given clock to nanoseconds.

Totality: total
Visibility: public export
fromNano : Integer->Clocktype
  Convert some time in nanoseconds to a `Clock` containing that time.

@ n the time in nanoseconds

Totality: total
Visibility: public export
timeDifference : Clocktype->Clocktype->ClockDuration
  Compute difference between two clocks of the same type.
@ end the end time
@ start the start time

Totality: total
Visibility: public export
addDuration : Clocktype->ClockDuration->Clocktype
  Add a duration to a clock value.

Totality: total
Visibility: public export
subtractDuration : Clocktype->ClockDuration->Clocktype
  Subtract a duration from a clock value.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/base/docs/System.Concurrency.html b/base/docs/System.Concurrency.html index c7f493d6c3..40b8f6430a 100644 --- a/base/docs/System.Concurrency.html +++ b/base/docs/System.Concurrency.html @@ -67,4 +67,4 @@ Given that different back ends will have entirely different threading models, it might be unavoidable, but we might want to think about possible primitives that back ends should support. -

Definitions

setThreadData : HasIOio=>a->io ()
  Set the data stored in a thread's parameter to the given value.
Currently only supported under the scheme backends.

Totality: total
Visibility: export
getThreadData : HasIOio=> (a : Type) ->ioa
  Get the data stored in a thread's parameter.
Currently only supported under the scheme backends.

Totality: total
Visibility: export
dataMutex : Type
Totality: total
Visibility: export
makeMutex : HasIOio=>ioMutex
  Creates and returns a new mutex.

Totality: total
Visibility: export
mutexAcquire : HasIOio=>Mutex->io ()
  Acquires the mutex identified by `mutex`. The thread blocks until the mutex
has been acquired.

Mutexes are recursive in Posix threads terminology, which means that the
calling thread can use mutex-acquire to (re)acquire a mutex it already has.
In this case, an equal number of mutex-release calls is necessary to release
the mutex.

Totality: total
Visibility: export
mutexRelease : HasIOio=>Mutex->io ()
  Releases the mutex identified by `mutex`. Unpredictable behavior results if
the mutex is not owned by the calling thread.

Totality: total
Visibility: export
dataCondition : Type
Totality: total
Visibility: export
makeCondition : HasIOio=>ioCondition
  Creates and returns a new condition variable.

Totality: total
Visibility: export
conditionWait : HasIOio=>Condition->Mutex->io ()
  Waits up to the specified timeout for the condition identified by the
condition variable `cond`. The calling thread must have acquired the mutex
identified by `mutex` at the time `conditionWait` is called. The mutex is
released as a side effect of the call to `conditionWait`. When a thread is
later released from the condition variable by one of the procedures
described below, the mutex is reacquired and `conditionWait` returns.

Totality: total
Visibility: export
conditionWaitTimeout : HasIOio=>Condition->Mutex->Int->io ()
  Variant of `conditionWait` with a timeout in microseconds.
When the timeout expires, the thread is released, `mutex` is reacquired, and
`conditionWaitTimeout` returns.

Totality: total
Visibility: export
conditionSignal : HasIOio=>Condition->io ()
  Releases one of the threads waiting for the condition identified by `cond`.

Totality: total
Visibility: export
conditionBroadcast : HasIOio=>Condition->io ()
  Releases all of the threads waiting for the condition identified by `cond`.

Totality: total
Visibility: export
dataSemaphore : Type
Totality: total
Visibility: export
makeSemaphore : HasIOio=>Int->ioSemaphore
  Creates and returns a new semaphore with the counter initially set to `init`.

Totality: total
Visibility: export
semaphorePost : HasIOio=>Semaphore->io ()
  Increments the semaphore's internal counter.

Totality: total
Visibility: export
semaphoreWait : HasIOio=>Semaphore->io ()
  Blocks until the internal counter for semaphore sema is non-zero. When the
counter is non-zero, it is decremented and `semaphoreWait` returns.

Totality: total
Visibility: export
dataBarrier : Type
  A barrier enables multiple threads to synchronize the beginning of some
computation.

Totality: total
Visibility: export
makeBarrier : HasIOio=>Int->ioBarrier
  Creates a new barrier that can block a given number of threads.

@ numThreads the number of threads to block

Totality: total
Visibility: export
barrierWait : HasIOio=>Barrier->io ()
  Blocks the current thread until all threads have rendezvoused here.

Totality: total
Visibility: export
dataChannel : Type->Type
Totality: total
Visibility: export
makeChannel : HasIOio=>io (Channela)
  Creates and returns a new `Channel`.

The channel can be used with `channelGet` to receive a value through the
channel.
The channel can be used with `channelPut` to send a value through the
channel.

Totality: total
Visibility: export
channelGet : HasIOio=>Channela->ioa
  Blocks until a sender is ready to provide a value through `chan`. The result
is the sent value.

@ chan the channel to receive on

Totality: total
Visibility: export
channelPut : HasIOio=>Channela->a->io ()
  Puts a value on the given channel.

@ chan the `Channel` to send the value over
@ val the value to send

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

setThreadData : HasIOio=>a->io ()
  Set the data stored in a thread's parameter to the given value.
Currently only supported under the scheme backends.

Totality: total
Visibility: export
getThreadData : HasIOio=> (a : Type) ->ioa
  Get the data stored in a thread's parameter.
Currently only supported under the scheme backends.

Totality: total
Visibility: export
dataMutex : Type
Totality: total
Visibility: export
makeMutex : HasIOio=>ioMutex
  Creates and returns a new mutex.

Totality: total
Visibility: export
mutexAcquire : HasIOio=>Mutex->io ()
  Acquires the mutex identified by `mutex`. The thread blocks until the mutex
has been acquired.

Mutexes are recursive in Posix threads terminology, which means that the
calling thread can use mutex-acquire to (re)acquire a mutex it already has.
In this case, an equal number of mutex-release calls is necessary to release
the mutex.

Totality: total
Visibility: export
mutexRelease : HasIOio=>Mutex->io ()
  Releases the mutex identified by `mutex`. Unpredictable behavior results if
the mutex is not owned by the calling thread.

Totality: total
Visibility: export
dataCondition : Type
Totality: total
Visibility: export
makeCondition : HasIOio=>ioCondition
  Creates and returns a new condition variable.

Totality: total
Visibility: export
conditionWait : HasIOio=>Condition->Mutex->io ()
  Waits up to the specified timeout for the condition identified by the
condition variable `cond`. The calling thread must have acquired the mutex
identified by `mutex` at the time `conditionWait` is called. The mutex is
released as a side effect of the call to `conditionWait`. When a thread is
later released from the condition variable by one of the procedures
described below, the mutex is reacquired and `conditionWait` returns.

Totality: total
Visibility: export
conditionWaitTimeout : HasIOio=>Condition->Mutex->Int->io ()
  Variant of `conditionWait` with a timeout in microseconds.
When the timeout expires, the thread is released, `mutex` is reacquired, and
`conditionWaitTimeout` returns.

Totality: total
Visibility: export
conditionSignal : HasIOio=>Condition->io ()
  Releases one of the threads waiting for the condition identified by `cond`.

Totality: total
Visibility: export
conditionBroadcast : HasIOio=>Condition->io ()
  Releases all of the threads waiting for the condition identified by `cond`.

Totality: total
Visibility: export
dataSemaphore : Type
Totality: total
Visibility: export
makeSemaphore : HasIOio=>Int->ioSemaphore
  Creates and returns a new semaphore with the counter initially set to `init`.

Totality: total
Visibility: export
semaphorePost : HasIOio=>Semaphore->io ()
  Increments the semaphore's internal counter.

Totality: total
Visibility: export
semaphoreWait : HasIOio=>Semaphore->io ()
  Blocks until the internal counter for semaphore sema is non-zero. When the
counter is non-zero, it is decremented and `semaphoreWait` returns.

Totality: total
Visibility: export
dataBarrier : Type
  A barrier enables multiple threads to synchronize the beginning of some
computation.

Totality: total
Visibility: export
makeBarrier : HasIOio=>Int->ioBarrier
  Creates a new barrier that can block a given number of threads.

@ numThreads the number of threads to block

Totality: total
Visibility: export
barrierWait : HasIOio=>Barrier->io ()
  Blocks the current thread until all threads have rendezvoused here.

Totality: total
Visibility: export
dataChannel : Type->Type
Totality: total
Visibility: export
makeChannel : HasIOio=>io (Channela)
  Creates and returns a new `Channel`.

The channel can be used with `channelGet` to receive a value through the
channel.
The channel can be used with `channelPut` to send a value through the
channel.

Totality: total
Visibility: export
channelGet : HasIOio=>Channela->ioa
  Blocks until a sender is ready to provide a value through `chan`. The result
is the sent value.

@ chan the channel to receive on

Totality: total
Visibility: export
channelPut : HasIOio=>Channela->a->io ()
  Puts a value on the given channel.

@ chan the `Channel` to send the value over
@ val the value to send

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.Directory.html b/base/docs/System.Directory.html index 35350446c1..3ad59b3b81 100644 --- a/base/docs/System.Directory.html +++ b/base/docs/System.Directory.html @@ -62,4 +62,4 @@

System.Directory(source)

Directory access and handling.
-

Reexports

importpublic System.File

Definitions

DirPtr : Type
Totality: total
Visibility: public export
dataDirectory : Type
  Data structure for managing the pointer to a directory.

Totality: total
Visibility: export
Constructor: 
MkDir : DirPtr->Directory
createDir : HasIOio=>String->io (EitherFileError ())
  Try to create a directory at the specified path.

Totality: total
Visibility: export
changeDir : HasIOio=>String->ioBool
  Change the current working directory to the specified path. Returns whether
the operation succeeded.

Totality: total
Visibility: export
currentDir : HasIOio=>io (MaybeString)
  Get the absolute path of the current working directory. Returns `Nothing` if
an error occurred.

Totality: total
Visibility: export
openDir : HasIOio=>String->io (EitherFileErrorDirectory)
  Try to open the directory at the specified path.

Totality: total
Visibility: export
closeDir : HasIOio=>Directory->io ()
  Close the given `Directory`.

Totality: total
Visibility: export
removeDir : HasIOio=>String->io ()
  Remove the directory at the specified path.
If the directory is not empty, this operation fails.

Totality: total
Visibility: export
nextDirEntry : HasIOio=>Directory->io (EitherFileError (MaybeString))
  Get the next entry in the `Directory`, omitting the '.' and '..' entries.

Totality: total
Visibility: export
listDir : HasIOio=>String->io (EitherFileError (ListString))
  Get a list of all the entries in the directory at the specified path,
excluding the '.' and '..' entries.

@ name the directory to list

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic System.File

Definitions

DirPtr : Type
Totality: total
Visibility: public export
dataDirectory : Type
  Data structure for managing the pointer to a directory.

Totality: total
Visibility: export
Constructor: 
MkDir : DirPtr->Directory
createDir : HasIOio=>String->io (EitherFileError ())
  Try to create a directory at the specified path.

Totality: total
Visibility: export
changeDir : HasIOio=>String->ioBool
  Change the current working directory to the specified path. Returns whether
the operation succeeded.

Totality: total
Visibility: export
currentDir : HasIOio=>io (MaybeString)
  Get the absolute path of the current working directory. Returns `Nothing` if
an error occurred.

Totality: total
Visibility: export
openDir : HasIOio=>String->io (EitherFileErrorDirectory)
  Try to open the directory at the specified path.

Totality: total
Visibility: export
closeDir : HasIOio=>Directory->io ()
  Close the given `Directory`.

Totality: total
Visibility: export
removeDir : HasIOio=>String->io ()
  Remove the directory at the specified path.
If the directory is not empty, this operation fails.

Totality: total
Visibility: export
nextDirEntry : HasIOio=>Directory->io (EitherFileError (MaybeString))
  Get the next entry in the `Directory`, omitting the '.' and '..' entries.

Totality: total
Visibility: export
listDir : HasIOio=>String->io (EitherFileError (ListString))
  Get a list of all the entries in the directory at the specified path,
excluding the '.' and '..' entries.

@ name the directory to list

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.Errno.html b/base/docs/System.Errno.html index 9fc64f1b2c..39918a6398 100644 --- a/base/docs/System.Errno.html +++ b/base/docs/System.Errno.html @@ -62,4 +62,4 @@

System.Errno(source)

Managing error codes.
-

Definitions

getErrno : HasIOio=>ioInt
  Fetch libc `errno` global variable.

Totality: total
Visibility: export
strerror : Int->String
  Convert numeric `errno` to string.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

getErrno : HasIOio=>ioInt
  Fetch libc `errno` global variable.

Totality: total
Visibility: export
strerror : Int->String
  Convert numeric `errno` to string.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.Escape.html b/base/docs/System.Escape.html index 02bc169fcf..ec20eefc9f 100644 --- a/base/docs/System.Escape.html +++ b/base/docs/System.Escape.html @@ -61,4 +61,4 @@ -

System.Escape(source)

Definitions

escapeArg : String->String
  Escape special characters in an Idris string, for use as a string literal
in the shell

Visibility: public export
escapeCmd : ListString->String
  Escape special characters in a list of shell arguments, as a single command
for the shell.
eg. the list ["a", "b", "c d"] is interpreted as the command `a b "c d"`

Visibility: public export
\ No newline at end of file +

System.Escape(source)

Definitions

escapeArg : String->String
  Escape special characters in an Idris string, for use as a string literal
in the shell

Visibility: public export
escapeCmd : ListString->String
  Escape special characters in a list of shell arguments, as a single command
for the shell.
eg. the list ["a", "b", "c d"] is interpreted as the command `a b "c d"`

Visibility: public export
\ No newline at end of file diff --git a/base/docs/System.FFI.html b/base/docs/System.FFI.html index 74d9abb73c..193042e731 100644 --- a/base/docs/System.FFI.html +++ b/base/docs/System.FFI.html @@ -62,4 +62,4 @@

System.FFI(source)

Additional FFI help for more interesting C types
-

Definitions

dataStruct : String->List (String, Type) ->Type
  A struct with a name and a list of key-value pairs of field names and their
types.

Totality: total
Visibility: export
dataFieldType : String->Type->List (String, Type) ->Type
  A proof that the field exists as an entry in the list of field names and
their types.

Totality: total
Visibility: public export
Constructors:
First : FieldTypent ((n, t) ::ts)
Later : FieldTypentts->FieldTypent (f::ts)
getField : Structsnfs-> (n : String) ->FieldTypentyfs=>ty
  Retrieve the value of the specified field in the given `Struct`.

@ s the `Struct` to retrieve the value from
@ n the name of the field in the `Struct`.

Totality: total
Visibility: public export
setField : Structsnfs-> (n : String) ->FieldTypentyfs=>ty->IO ()
  Set the value of the specified field in the given `Struct`.

@ s the `Struct` in which the field exists
@ n the name of the field to set
@ val the value to set the field to

Totality: total
Visibility: public export
malloc : HasIOio=>Int->ioAnyPtr
  Allocate memory with libc `malloc`.

@ size the number of bytes to allocate

Totality: total
Visibility: export
free : HasIOio=>AnyPtr->io ()
  Release memory with libc `free`.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataStruct : String->List (String, Type) ->Type
  A struct with a name and a list of key-value pairs of field names and their
types.

Totality: total
Visibility: export
dataFieldType : String->Type->List (String, Type) ->Type
  A proof that the field exists as an entry in the list of field names and
their types.

Totality: total
Visibility: public export
Constructors:
First : FieldTypent ((n, t) ::ts)
Later : FieldTypentts->FieldTypent (f::ts)
getField : Structsnfs-> (n : String) ->FieldTypentyfs=>ty
  Retrieve the value of the specified field in the given `Struct`.

@ s the `Struct` to retrieve the value from
@ n the name of the field in the `Struct`.

Totality: total
Visibility: public export
setField : Structsnfs-> (n : String) ->FieldTypentyfs=>ty->IO ()
  Set the value of the specified field in the given `Struct`.

@ s the `Struct` in which the field exists
@ n the name of the field to set
@ val the value to set the field to

Totality: total
Visibility: public export
malloc : HasIOio=>Int->ioAnyPtr
  Allocate memory with libc `malloc`.

@ size the number of bytes to allocate

Totality: total
Visibility: export
free : HasIOio=>AnyPtr->io ()
  Release memory with libc `free`.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Buffer.html b/base/docs/System.File.Buffer.html index e8c39abbdc..f63126f9b1 100644 --- a/base/docs/System.File.Buffer.html +++ b/base/docs/System.File.Buffer.html @@ -61,4 +61,4 @@ -

System.File.Buffer(source)

Reexports

importpublic System.File.Error
importpublic System.File.Types

Definitions

readBufferData : HasIOio=>File->Buffer->Int->Int->io (EitherFileErrorInt)
  Read the data from the file into the given buffer.

@ fh the file handle to read from
@ buf the buffer to read the data into
@ offset the position in buffer to start adding
@ maxbytes the maximum size to read; must not exceed buffer length

Totality: total
Visibility: export
writeBufferData : HasIOio=>File->Buffer->Int->Int->io (Either (FileError, Int) ())
  Write the data from the buffer to the given `File`. Returns the number
of bytes that have been written upon a write error. Otherwise, it can
be assumed that `size` number of bytes have been written.
(If you do not have a `File` and just want to write to a file at a known
path, you probably want to use `writeBufferToFile`.)

@ fh the file handle to write to
@ buf the buffer from which to get the data to write
@ offset the position in buffer to write from
@ size the number of bytes to write; must not exceed buffer length

Totality: total
Visibility: export
writeBufferToFile : HasIOio=>String->Buffer->Int->io (Either (FileError, Int) ())
  Attempt to write the data from the buffer to the file at the specified file
name. Returns the number of bytes that have been written upon a write error.
Otherwise, it can be assumed that `size` number of bytes have been written.

@ fn the file name to write to
@ buf the buffer from which to get the data to write
@ size the number of bytes to write; must not exceed buffer length

Totality: total
Visibility: export
createBufferFromFile : HasIOio=>String->io (EitherFileErrorBuffer)
  Create a new buffer by opening a file and reading its contents into a new
buffer whose size matches the file size.

@ fn the name of the file to read

Totality: total
Visibility: export
\ No newline at end of file +

System.File.Buffer(source)

Reexports

importpublic System.File.Error
importpublic System.File.Types

Definitions

readBufferData : HasIOio=>File->Buffer->Int->Int->io (EitherFileErrorInt)
  Read the data from the file into the given buffer.

@ fh the file handle to read from
@ buf the buffer to read the data into
@ offset the position in buffer to start adding
@ maxbytes the maximum size to read; must not exceed buffer length

Totality: total
Visibility: export
writeBufferData : HasIOio=>File->Buffer->Int->Int->io (Either (FileError, Int) ())
  Write the data from the buffer to the given `File`. Returns the number
of bytes that have been written upon a write error. Otherwise, it can
be assumed that `size` number of bytes have been written.
(If you do not have a `File` and just want to write to a file at a known
path, you probably want to use `writeBufferToFile`.)

@ fh the file handle to write to
@ buf the buffer from which to get the data to write
@ offset the position in buffer to write from
@ size the number of bytes to write; must not exceed buffer length

Totality: total
Visibility: export
writeBufferToFile : HasIOio=>String->Buffer->Int->io (Either (FileError, Int) ())
  Attempt to write the data from the buffer to the file at the specified file
name. Returns the number of bytes that have been written upon a write error.
Otherwise, it can be assumed that `size` number of bytes have been written.

@ fn the file name to write to
@ buf the buffer from which to get the data to write
@ size the number of bytes to write; must not exceed buffer length

Totality: total
Visibility: export
createBufferFromFile : HasIOio=>String->io (EitherFileErrorBuffer)
  Create a new buffer by opening a file and reading its contents into a new
buffer whose size matches the file size.

@ fn the name of the file to read

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Error.html b/base/docs/System.File.Error.html index 1140c5e51c..addf6fd21c 100644 --- a/base/docs/System.File.Error.html +++ b/base/docs/System.File.Error.html @@ -61,4 +61,4 @@ -

System.File.Error(source)

Reexports

importpublic System.File.Types

Definitions

dataFileError : Type
  The types of errors that can occur during file operations.

Totality: total
Visibility: public export
Constructors:
GenericFileError : Int->FileError
  A generic error with an errno
FileReadError : FileError
FileWriteError : FileError
FileNotFound : FileError
PermissionDenied : FileError
FileExists : FileError

Hint: 
ShowFileError
returnError : HasIOio=>io (EitherFileErrora)
  Return the `FileError` corresponding to the errno that was set when the
function call before this one errored.

Totality: total
Visibility: export
fileError : HasIOio=>File->ioBool
  Check if the error indicator for the given file handle is set.

Totality: total
Visibility: export
\ No newline at end of file +

System.File.Error(source)

Reexports

importpublic System.File.Types

Definitions

dataFileError : Type
  The types of errors that can occur during file operations.

Totality: total
Visibility: public export
Constructors:
GenericFileError : Int->FileError
  A generic error with an errno
FileReadError : FileError
FileWriteError : FileError
FileNotFound : FileError
PermissionDenied : FileError
FileExists : FileError

Hint: 
ShowFileError
returnError : HasIOio=>io (EitherFileErrora)
  Return the `FileError` corresponding to the errno that was set when the
function call before this one errored.

Totality: total
Visibility: export
fileError : HasIOio=>File->ioBool
  Check if the error indicator for the given file handle is set.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Handle.html b/base/docs/System.File.Handle.html index 1804954f91..bb97699ac0 100644 --- a/base/docs/System.File.Handle.html +++ b/base/docs/System.File.Handle.html @@ -61,4 +61,4 @@ -

System.File.Handle(source)

Reexports

importpublic System.File.Error
importpublic System.File.Mode
importpublic System.File.Types

Definitions

openFile : HasIOio=>String->Mode->io (EitherFileErrorFile)
  Open the given file name with the specified mode.

@ f the file name to open
@ m the mode to open the file with

Totality: total
Visibility: export
closeFile : HasIOio=>File->io ()
  Close the given file handle.

@ fh the file handle to close

Totality: total
Visibility: export
withFile : HasIOio=>String->Mode-> (FileError->ioa) -> (File->io (Eitherab)) ->io (Eitherab)
  Perform a given operation on successful file open
and ensure the file is closed afterwards or perform
a different operation if the file fails to open.

Totality: total
Visibility: export
\ No newline at end of file +

System.File.Handle(source)

Reexports

importpublic System.File.Error
importpublic System.File.Mode
importpublic System.File.Types

Definitions

openFile : HasIOio=>String->Mode->io (EitherFileErrorFile)
  Open the given file name with the specified mode.

@ f the file name to open
@ m the mode to open the file with

Totality: total
Visibility: export
closeFile : HasIOio=>File->io ()
  Close the given file handle.

@ fh the file handle to close

Totality: total
Visibility: export
withFile : HasIOio=>String->Mode-> (FileError->ioa) -> (File->io (Eitherab)) ->io (Eitherab)
  Perform a given operation on successful file open
and ensure the file is closed afterwards or perform
a different operation if the file fails to open.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Meta.html b/base/docs/System.File.Meta.html index 53c90a6200..36574d771e 100644 --- a/base/docs/System.File.Meta.html +++ b/base/docs/System.File.Meta.html @@ -62,4 +62,4 @@

System.File.Meta(source)

Functions for accessing file metadata.
-

Reexports

importpublic System.File.Types

Definitions

exists : HasIOio=>String->ioBool
  Check if a file exists for reading.

Totality: total
Visibility: export
firstExists : HasIOio=>ListString->io (MaybeString)
  Pick the first existing file

Totality: total
Visibility: export
recordTimestamp : Type
  Record that holds timestamps with nanosecond precision

Totality: total
Visibility: public export
Constructor: 
MkTimestamp : Int->Int->Timestamp

Projections:
.nsec : Timestamp->Int
.sec : Timestamp->Int

Hints:
EqTimestamp
OrdTimestamp
ShowTimestamp
.sec : Timestamp->Int
Totality: total
Visibility: public export
sec : Timestamp->Int
Totality: total
Visibility: public export
.nsec : Timestamp->Int
Totality: total
Visibility: public export
nsec : Timestamp->Int
Totality: total
Visibility: public export
recordFileTime : Type
  Record that holds file's time attributes

Totality: total
Visibility: public export
Constructor: 
MkFileTime : Timestamp->Timestamp->Timestamp->FileTime

Projections:
.atime : FileTime->Timestamp
.ctime : FileTime->Timestamp
.mtime : FileTime->Timestamp
.atime : FileTime->Timestamp
Totality: total
Visibility: public export
atime : FileTime->Timestamp
Totality: total
Visibility: public export
.mtime : FileTime->Timestamp
Totality: total
Visibility: public export
mtime : FileTime->Timestamp
Totality: total
Visibility: public export
.ctime : FileTime->Timestamp
Totality: total
Visibility: public export
ctime : FileTime->Timestamp
Totality: total
Visibility: public export
fileTime : HasIOio=>File->io (EitherFileErrorFileTime)
  Get File's time attributes

Totality: total
Visibility: export
fileAccessTime : HasIOio=>File->io (EitherFileErrorInt)
  Get the File's atime.

Totality: total
Visibility: export
fileModifiedTime : HasIOio=>File->io (EitherFileErrorInt)
  Get the File's mtime.

Totality: total
Visibility: export
fileStatusTime : HasIOio=>File->io (EitherFileErrorInt)
  Get the File's ctime.

Totality: total
Visibility: export
fileSize : HasIOio=>File->io (EitherFileErrorInt)
  Get the File's size.

Totality: total
Visibility: export
fPoll : HasIOio=>File->ioBool
  Check whether the given File's size is non-zero.

Totality: total
Visibility: export
isTTY : HasIOio=>File->ioBool
  Check whether the given File is a terminal device.

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic System.File.Types

Definitions

exists : HasIOio=>String->ioBool
  Check if a file exists for reading.

Totality: total
Visibility: export
firstExists : HasIOio=>ListString->io (MaybeString)
  Pick the first existing file

Totality: total
Visibility: export
recordTimestamp : Type
  Record that holds timestamps with nanosecond precision

Totality: total
Visibility: public export
Constructor: 
MkTimestamp : Int->Int->Timestamp

Projections:
.nsec : Timestamp->Int
.sec : Timestamp->Int

Hints:
EqTimestamp
OrdTimestamp
ShowTimestamp
.sec : Timestamp->Int
Totality: total
Visibility: public export
sec : Timestamp->Int
Totality: total
Visibility: public export
.nsec : Timestamp->Int
Totality: total
Visibility: public export
nsec : Timestamp->Int
Totality: total
Visibility: public export
recordFileTime : Type
  Record that holds file's time attributes

Totality: total
Visibility: public export
Constructor: 
MkFileTime : Timestamp->Timestamp->Timestamp->FileTime

Projections:
.atime : FileTime->Timestamp
.ctime : FileTime->Timestamp
.mtime : FileTime->Timestamp
.atime : FileTime->Timestamp
Totality: total
Visibility: public export
atime : FileTime->Timestamp
Totality: total
Visibility: public export
.mtime : FileTime->Timestamp
Totality: total
Visibility: public export
mtime : FileTime->Timestamp
Totality: total
Visibility: public export
.ctime : FileTime->Timestamp
Totality: total
Visibility: public export
ctime : FileTime->Timestamp
Totality: total
Visibility: public export
fileTime : HasIOio=>File->io (EitherFileErrorFileTime)
  Get File's time attributes

Totality: total
Visibility: export
fileAccessTime : HasIOio=>File->io (EitherFileErrorInt)
  Get the File's atime.

Totality: total
Visibility: export
fileModifiedTime : HasIOio=>File->io (EitherFileErrorInt)
  Get the File's mtime.

Totality: total
Visibility: export
fileStatusTime : HasIOio=>File->io (EitherFileErrorInt)
  Get the File's ctime.

Totality: total
Visibility: export
fileSize : HasIOio=>File->io (EitherFileErrorInt)
  Get the File's size.

Totality: total
Visibility: export
fPoll : HasIOio=>File->ioBool
  Check whether the given File's size is non-zero.

Totality: total
Visibility: export
isTTY : HasIOio=>File->ioBool
  Check whether the given File is a terminal device.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Mode.html b/base/docs/System.File.Mode.html index bebb73aa7c..74d64114ee 100644 --- a/base/docs/System.File.Mode.html +++ b/base/docs/System.File.Mode.html @@ -61,4 +61,4 @@ -

System.File.Mode(source)

Definitions

dataMode : Type
  The different modes a file can be opened.

Totality: total
Visibility: public export
Constructors:
Read : Mode
WriteTruncate : Mode
Append : Mode
ReadWrite : Mode
ReadWriteTruncate : Mode
ReadAppend : Mode
modeStr : Mode->String
  Convert a file `Mode` to the OS-appropriate string representation.

Totality: total
Visibility: export
\ No newline at end of file +

System.File.Mode(source)

Definitions

dataMode : Type
  The different modes a file can be opened.

Totality: total
Visibility: public export
Constructors:
Read : Mode
WriteTruncate : Mode
Append : Mode
ReadWrite : Mode
ReadWriteTruncate : Mode
ReadAppend : Mode
modeStr : Mode->String
  Convert a file `Mode` to the OS-appropriate string representation.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Permissions.html b/base/docs/System.File.Permissions.html index cfbae1bc0b..7ebc076af4 100644 --- a/base/docs/System.File.Permissions.html +++ b/base/docs/System.File.Permissions.html @@ -61,4 +61,4 @@ -

System.File.Permissions(source)

Reexports

importpublic System.File.Error
importpublic System.File.Types

Definitions

dataFileMode : Type
Totality: total
Visibility: public export
Constructors:
Read : FileMode
Write : FileMode
Execute : FileMode
recordPermissions : Type
  The permissions of a file, grouped by the 3 types of owners of a file.

Totality: total
Visibility: public export
Constructor: 
MkPermissions : ListFileMode->ListFileMode->ListFileMode->Permissions

Projections:
.group : Permissions->ListFileMode
.others : Permissions->ListFileMode
.user : Permissions->ListFileMode
.user : Permissions->ListFileMode
Totality: total
Visibility: public export
user : Permissions->ListFileMode
Totality: total
Visibility: public export
.group : Permissions->ListFileMode
Totality: total
Visibility: public export
group : Permissions->ListFileMode
Totality: total
Visibility: public export
.others : Permissions->ListFileMode
Totality: total
Visibility: public export
others : Permissions->ListFileMode
Totality: total
Visibility: public export
chmodRaw : HasIOio=>String->Int->io (EitherFileError ())
  Change the permissions of the file with the specified name to the given
integer representation of some permissions.
You likely want to use `chmod` and `Permissions`, or go via `mkMode`
instead of using this.

@ fname the name of the file whose permissions to change
@ p the integer representation of the permissions to set

Totality: total
Visibility: export
chmod : HasIOio=>String->Permissions->io (EitherFileError ())
  Change the permissions of the file with the specified name to the
permissions in the given `Permissions` record.

@ fname the name of the file whose permissions to change
@ p a `Permissions` record containing the permissions to set

Totality: total
Visibility: export
\ No newline at end of file +

System.File.Permissions(source)

Reexports

importpublic System.File.Error
importpublic System.File.Types

Definitions

dataFileMode : Type
Totality: total
Visibility: public export
Constructors:
Read : FileMode
Write : FileMode
Execute : FileMode
recordPermissions : Type
  The permissions of a file, grouped by the 3 types of owners of a file.

Totality: total
Visibility: public export
Constructor: 
MkPermissions : ListFileMode->ListFileMode->ListFileMode->Permissions

Projections:
.group : Permissions->ListFileMode
.others : Permissions->ListFileMode
.user : Permissions->ListFileMode
.user : Permissions->ListFileMode
Totality: total
Visibility: public export
user : Permissions->ListFileMode
Totality: total
Visibility: public export
.group : Permissions->ListFileMode
Totality: total
Visibility: public export
group : Permissions->ListFileMode
Totality: total
Visibility: public export
.others : Permissions->ListFileMode
Totality: total
Visibility: public export
others : Permissions->ListFileMode
Totality: total
Visibility: public export
chmodRaw : HasIOio=>String->Int->io (EitherFileError ())
  Change the permissions of the file with the specified name to the given
integer representation of some permissions.
You likely want to use `chmod` and `Permissions`, or go via `mkMode`
instead of using this.

@ fname the name of the file whose permissions to change
@ p the integer representation of the permissions to set

Totality: total
Visibility: export
chmod : HasIOio=>String->Permissions->io (EitherFileError ())
  Change the permissions of the file with the specified name to the
permissions in the given `Permissions` record.

@ fname the name of the file whose permissions to change
@ p a `Permissions` record containing the permissions to set

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Process.html b/base/docs/System.File.Process.html index 69a1d4d3b6..3903e3e308 100644 --- a/base/docs/System.File.Process.html +++ b/base/docs/System.File.Process.html @@ -61,4 +61,4 @@ -

System.File.Process(source)

Reexports

importpublic System.Escape
importpublic System.File.Error
importpublic System.File.Mode
importpublic System.File.Types

Definitions

fflush : HasIOio=>File->io ()
  Force a write of all user-space buffered data for the given `File`.

@ h the file handle to flush

Visibility: export
popen : HasIOio=>String->Mode->io (EitherFileErrorFile)
  Create a new unidirectional pipe by invoking the shell, which is passed the
given command-string using the '-c' flag, in a new process. The pipe is
opened with the given mode.

IMPORTANT: The NodeJS backend only currently supports the Read mode. Also with
the NodeJS backend, the opened process will finish execution before
popen returns (it blocks on open) which is different than other
backends which will block on close.

@ cmd the command to pass to the shell
@ m the mode the pipe should have

Visibility: export
pclose : HasIOio=>File->ioInt
  Wait for the process associated with the pipe to terminate.

@ fh the file handle to the stream to close/wait on

Visibility: export
recordSubProcess : Type
  Result of a popen2 command, containing the

Totality: total
Visibility: public export
Constructor: 
MkSubProcess : Int->AnyPtr->File->File->SubProcess

Projections:
.handler : SubProcess->AnyPtr
  The way to manipulate the spawned process, for systems where pid is not enough for this
.input : SubProcess->File
  The input stream of the spawned process
.output : SubProcess->File
  The output stream of the spawned process
.pid : SubProcess->Int
  Process id of the spawned process
.pid : SubProcess->Int
  Process id of the spawned process

Visibility: public export
pid : SubProcess->Int
  Process id of the spawned process

Visibility: public export
.handler : SubProcess->AnyPtr
  The way to manipulate the spawned process, for systems where pid is not enough for this

Visibility: public export
handler : SubProcess->AnyPtr
  The way to manipulate the spawned process, for systems where pid is not enough for this

Visibility: public export
.input : SubProcess->File
  The input stream of the spawned process

Visibility: public export
input : SubProcess->File
  The input stream of the spawned process

Visibility: public export
.output : SubProcess->File
  The output stream of the spawned process

Visibility: public export
output : SubProcess->File
  The output stream of the spawned process

Visibility: public export
popen2 : HasIOio=>String->io (EitherFileErrorSubProcess)
  Create a new bidirectional pipe by invoking the shell, which is passed the
given command-string using the '-c' flag, in a new process. On success
a SubProcess is returned which holds the process id and file handles
for input and output.
You should call `popen2Wait` after you've done with the child process
in order to clean up all system resources.

IMPORTANT: You may deadlock if write to a process which is waiting to flush
its output. It is recommended to read and write from separate threads.

This function is not supported on node at this time.

Visibility: export
popen2Wait : HasIOio=>SubProcess->ioInt
  Blocks and waits until the process created by `popen2` finished

This function relates to `popen2` like `pclose` relates to `popen`.
Returns exit code of the process being waited.
IMPORTANT: this function mustn't be called twice for the same argument.

Support of this function in the backends must be the same as for `popen2`.

Visibility: export
popen : HasIOio=>ListString->Mode->io (EitherFileErrorFile)
Visibility: export
popen2 : HasIOio=>ListString->io (EitherFileErrorSubProcess)
Visibility: export
\ No newline at end of file +

System.File.Process(source)

Reexports

importpublic System.Escape
importpublic System.File.Error
importpublic System.File.Mode
importpublic System.File.Types

Definitions

fflush : HasIOio=>File->io ()
  Force a write of all user-space buffered data for the given `File`.

@ h the file handle to flush

Visibility: export
popen : HasIOio=>String->Mode->io (EitherFileErrorFile)
  Create a new unidirectional pipe by invoking the shell, which is passed the
given command-string using the '-c' flag, in a new process. The pipe is
opened with the given mode.

IMPORTANT: The NodeJS backend only currently supports the Read mode. Also with
the NodeJS backend, the opened process will finish execution before
popen returns (it blocks on open) which is different than other
backends which will block on close.

@ cmd the command to pass to the shell
@ m the mode the pipe should have

Visibility: export
pclose : HasIOio=>File->ioInt
  Wait for the process associated with the pipe to terminate.

@ fh the file handle to the stream to close/wait on

Visibility: export
recordSubProcess : Type
  Result of a popen2 command, containing the

Totality: total
Visibility: public export
Constructor: 
MkSubProcess : Int->AnyPtr->File->File->SubProcess

Projections:
.handler : SubProcess->AnyPtr
  The way to manipulate the spawned process, for systems where pid is not enough for this
.input : SubProcess->File
  The input stream of the spawned process
.output : SubProcess->File
  The output stream of the spawned process
.pid : SubProcess->Int
  Process id of the spawned process
.pid : SubProcess->Int
  Process id of the spawned process

Visibility: public export
pid : SubProcess->Int
  Process id of the spawned process

Visibility: public export
.handler : SubProcess->AnyPtr
  The way to manipulate the spawned process, for systems where pid is not enough for this

Visibility: public export
handler : SubProcess->AnyPtr
  The way to manipulate the spawned process, for systems where pid is not enough for this

Visibility: public export
.input : SubProcess->File
  The input stream of the spawned process

Visibility: public export
input : SubProcess->File
  The input stream of the spawned process

Visibility: public export
.output : SubProcess->File
  The output stream of the spawned process

Visibility: public export
output : SubProcess->File
  The output stream of the spawned process

Visibility: public export
popen2 : HasIOio=>String->io (EitherFileErrorSubProcess)
  Create a new bidirectional pipe by invoking the shell, which is passed the
given command-string using the '-c' flag, in a new process. On success
a SubProcess is returned which holds the process id and file handles
for input and output.
You should call `popen2Wait` after you've done with the child process
in order to clean up all system resources.

IMPORTANT: You may deadlock if write to a process which is waiting to flush
its output. It is recommended to read and write from separate threads.

This function is not supported on node at this time.

Visibility: export
popen2Wait : HasIOio=>SubProcess->ioInt
  Blocks and waits until the process created by `popen2` finished

This function relates to `popen2` like `pclose` relates to `popen`.
Returns exit code of the process being waited.
IMPORTANT: this function mustn't be called twice for the same argument.

Support of this function in the backends must be the same as for `popen2`.

Visibility: export
popen : HasIOio=>ListString->Mode->io (EitherFileErrorFile)
Visibility: export
popen2 : HasIOio=>ListString->io (EitherFileErrorSubProcess)
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.ReadWrite.html b/base/docs/System.File.ReadWrite.html index 74b7f256c7..0f3cee1f47 100644 --- a/base/docs/System.File.ReadWrite.html +++ b/base/docs/System.File.ReadWrite.html @@ -61,4 +61,4 @@ -

System.File.ReadWrite(source)

Reexports

importpublic Data.Fuel
importpublic System.File.Error
importpublic System.File.Types

Definitions

fSeekLine : HasIOio=>File->io (EitherFileError ())
  Seek through the next newline.
This is @fGetLine@ without the overhead of copying
any characters.

@ h the file handle to seek through

Visibility: export
getStringAndFree : HasIOio=>File->PtrString->io (EitherFileErrorString)
  Get a garbage collected String from a Ptr String and and free the original

Totality: total
Visibility: export
fGetLine : HasIOio=>File->io (EitherFileErrorString)
  Get the next line from the given file handle, returning the empty string if
nothing was read.

@ h the file handle to get the line from

Visibility: export
fGetChars : HasIOio=>File->Int->io (EitherFileErrorString)
  Get a number of characters from the given file handle.

@ h the file handle to read from
@ max the number of characters to read

Totality: total
Visibility: export
fGetChar : HasIOio=>File->io (EitherFileErrorChar)
  Get the next character from the given file handle.

@ h the file handle to read from

Totality: total
Visibility: export
fPutStr : HasIOio=>File->String->io (EitherFileError ())
  Write the given string to the file handle.

@ h the file handle to write to
@ str the string to write

Totality: total
Visibility: export
fPutStrLn : HasIOio=>File->String->io (EitherFileError ())
  Write the given string, followed by a newline, to the file handle.

@ fh the file handle to write to
@ str the string to write

Totality: total
Visibility: export
fEOF : HasIOio=>File->ioBool
  Check whether the end-of-file indicator for the given file handle is set.

@ h the file handle to check

Totality: total
Visibility: export
fRead : HasIOio=>File->io (EitherFileErrorString)
  Read all the remaining contents of a file handle

Visibility: export
removeFile : HasIOio=>String->io (EitherFileError ())
  Delete the file at the given name.

@ fname the file to delete

Totality: total
Visibility: export
readFilePage : HasIOio=>Nat->Fuel->String->io (EitherFileError (Bool, ListString))
  Read a chunk of a file in a line-delimited fashion.
You can use this function to read an entire file
as with @readFile@ by reading until @forever@ or by
iterating through pages until hitting the end of
the file.

The @limit@ function can provide you with enough
fuel to read exactly a given number of lines.

On success, returns a tuple of whether the end of
the file was reached or not and the lines read in
from the file.

Note that each line will still have a newline
character at the end.

Important: because we are chunking by lines, this
function's totality depends on the assumption that
no single line in the input file is infinite.

@ offset the offset to start reading at
@ until the `Fuel` limiting how far we can read
@ fname the name of the file to read

Totality: total
Visibility: export
readFile : HasIOio=>String->io (EitherFileErrorString)
  Read the entire file at the given name. This function is `partial` since
there is no guarantee that the given file isn't infinite.

@ fname the name of the file to read

Visibility: export
writeFile : HasIOio=>String->String->io (EitherFileError ())
  Write the given string to the file at the specified name. Opens the file
with the `WriteTruncate` mode.
(If you have a file handle (a `File`), you may be looking for `fPutStr`.)

@ filePath the file to write to
@ contents the string to write to the file

Totality: total
Visibility: export
appendFile : HasIOio=>String->String->io (EitherFileError ())
  Append the given string to the file at the specified name. Opens the file in
with the `Append` mode.

@ filePath the file to write to
@ contents the string to write to the file

Totality: total
Visibility: export
\ No newline at end of file +

System.File.ReadWrite(source)

Reexports

importpublic Data.Fuel
importpublic System.File.Error
importpublic System.File.Types

Definitions

fSeekLine : HasIOio=>File->io (EitherFileError ())
  Seek through the next newline.
This is @fGetLine@ without the overhead of copying
any characters.

@ h the file handle to seek through

Visibility: export
getStringAndFree : HasIOio=>File->PtrString->io (EitherFileErrorString)
  Get a garbage collected String from a Ptr String and and free the original

Totality: total
Visibility: export
fGetLine : HasIOio=>File->io (EitherFileErrorString)
  Get the next line from the given file handle, returning the empty string if
nothing was read.

@ h the file handle to get the line from

Visibility: export
fGetChars : HasIOio=>File->Int->io (EitherFileErrorString)
  Get a number of characters from the given file handle.

@ h the file handle to read from
@ max the number of characters to read

Totality: total
Visibility: export
fGetChar : HasIOio=>File->io (EitherFileErrorChar)
  Get the next character from the given file handle.

@ h the file handle to read from

Totality: total
Visibility: export
fPutStr : HasIOio=>File->String->io (EitherFileError ())
  Write the given string to the file handle.

@ h the file handle to write to
@ str the string to write

Totality: total
Visibility: export
fPutStrLn : HasIOio=>File->String->io (EitherFileError ())
  Write the given string, followed by a newline, to the file handle.

@ fh the file handle to write to
@ str the string to write

Totality: total
Visibility: export
fEOF : HasIOio=>File->ioBool
  Check whether the end-of-file indicator for the given file handle is set.

@ h the file handle to check

Totality: total
Visibility: export
fRead : HasIOio=>File->io (EitherFileErrorString)
  Read all the remaining contents of a file handle

Visibility: export
removeFile : HasIOio=>String->io (EitherFileError ())
  Delete the file at the given name.

@ fname the file to delete

Totality: total
Visibility: export
readFilePage : HasIOio=>Nat->Fuel->String->io (EitherFileError (Bool, ListString))
  Read a chunk of a file in a line-delimited fashion.
You can use this function to read an entire file
as with @readFile@ by reading until @forever@ or by
iterating through pages until hitting the end of
the file.

The @limit@ function can provide you with enough
fuel to read exactly a given number of lines.

On success, returns a tuple of whether the end of
the file was reached or not and the lines read in
from the file.

Note that each line will still have a newline
character at the end.

Important: because we are chunking by lines, this
function's totality depends on the assumption that
no single line in the input file is infinite.

@ offset the offset to start reading at
@ until the `Fuel` limiting how far we can read
@ fname the name of the file to read

Totality: total
Visibility: export
readFile : HasIOio=>String->io (EitherFileErrorString)
  Read the entire file at the given name. This function is `partial` since
there is no guarantee that the given file isn't infinite.

@ fname the name of the file to read

Visibility: export
writeFile : HasIOio=>String->String->io (EitherFileError ())
  Write the given string to the file at the specified name. Opens the file
with the `WriteTruncate` mode.
(If you have a file handle (a `File`), you may be looking for `fPutStr`.)

@ filePath the file to write to
@ contents the string to write to the file

Totality: total
Visibility: export
appendFile : HasIOio=>String->String->io (EitherFileError ())
  Append the given string to the file at the specified name. Opens the file in
with the `Append` mode.

@ filePath the file to write to
@ contents the string to write to the file

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Support.html b/base/docs/System.File.Support.html index c35cd597ec..052aa8040f 100644 --- a/base/docs/System.File.Support.html +++ b/base/docs/System.File.Support.html @@ -61,4 +61,4 @@ -

System.File.Support(source)

Definitions

supportC : String->String
  Shorthand for referring to the C support library

@ fn the function name to refer to in the C support library

Totality: total
Visibility: public export
supportNode : String->String
  Shorthand for referring to the Node system support library

@ fn the function name to refer to in the js/system_support_file.js file

Totality: total
Visibility: public export
ok : HasIOio=>a->io (Eithererra)
  Wrap x in the `Right` part of an `io . Either`.

Totality: total
Visibility: export
\ No newline at end of file +

System.File.Support(source)

Definitions

supportC : String->String
  Shorthand for referring to the C support library

@ fn the function name to refer to in the C support library

Totality: total
Visibility: public export
supportNode : String->String
  Shorthand for referring to the Node system support library

@ fn the function name to refer to in the js/system_support_file.js file

Totality: total
Visibility: public export
ok : HasIOio=>a->io (Eithererra)
  Wrap x in the `Right` part of an `io . Either`.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.Types.html b/base/docs/System.File.Types.html index 15a82d7156..c6c1bb2e52 100644 --- a/base/docs/System.File.Types.html +++ b/base/docs/System.File.Types.html @@ -61,4 +61,4 @@ -

System.File.Types(source)

Definitions

FilePtr : Type
  A pointer to a file.

Totality: total
Visibility: public export
dataFile : Type
  A file handle.

Totality: total
Visibility: public export
Constructor: 
FHandle : FilePtr->File
\ No newline at end of file +

System.File.Types(source)

Definitions

FilePtr : Type
  A pointer to a file.

Totality: total
Visibility: public export
dataFile : Type
  A file handle.

Totality: total
Visibility: public export
Constructor: 
FHandle : FilePtr->File
\ No newline at end of file diff --git a/base/docs/System.File.Virtual.html b/base/docs/System.File.Virtual.html index 42060e4430..3dd1e9ed43 100644 --- a/base/docs/System.File.Virtual.html +++ b/base/docs/System.File.Virtual.html @@ -62,4 +62,4 @@

System.File.Virtual(source)

Magic/Virtual files
-

Reexports

importpublic System.File.Types

Definitions

stdin : File
  The standard input.

Totality: total
Visibility: export
stdout : File
  The standard output.

Totality: total
Visibility: export
stderr : File
  The standard error.

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic System.File.Types

Definitions

stdin : File
  The standard input.

Totality: total
Visibility: export
stdout : File
  The standard output.

Totality: total
Visibility: export
stderr : File
  The standard error.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.File.html b/base/docs/System.File.html index 5b9ec5eb33..c336113660 100644 --- a/base/docs/System.File.html +++ b/base/docs/System.File.html @@ -61,4 +61,4 @@ -

System.File(source)

Reexports

importpublic System.File.Buffer
importpublic System.File.Error
importpublic System.File.Handle
importpublic System.File.Meta
importpublic System.File.Mode
importpublic System.File.Permissions
importpublic System.File.Process
importpublic System.File.ReadWrite
importpublic System.File.Types
importpublic System.File.Virtual

Definitions

copyFile : HasIOio=>String->String->io (Either (FileError, Int) ())
  Copy the file at the specified source to the given destination.
Returns the number of bytes that have been written upon a write error.

@ src the file to copy
@ dest the place to copy the file to

Visibility: export
\ No newline at end of file +

System.File(source)

Reexports

importpublic System.File.Buffer
importpublic System.File.Error
importpublic System.File.Handle
importpublic System.File.Meta
importpublic System.File.Mode
importpublic System.File.Permissions
importpublic System.File.Process
importpublic System.File.ReadWrite
importpublic System.File.Types
importpublic System.File.Virtual

Definitions

copyFile : HasIOio=>String->String->io (Either (FileError, Int) ())
  Copy the file at the specified source to the given destination.
Returns the number of bytes that have been written upon a write error.

@ src the file to copy
@ dest the place to copy the file to

Visibility: export
\ No newline at end of file diff --git a/base/docs/System.Info.html b/base/docs/System.Info.html index 20f59db09b..5cdfa5c3d3 100644 --- a/base/docs/System.Info.html +++ b/base/docs/System.Info.html @@ -62,4 +62,4 @@

System.Info(source)

Miscellaneous functions for getting information about the system.
-

Definitions

os : String
  The current operating system.

Totality: total
Visibility: export
codegen : String
  The codegen/backend used.

Totality: total
Visibility: export
isWindows : Bool
  Whether we are running on MS Windows, either directly or with a compability
layer (e.g. cygwin).

Totality: total
Visibility: export
getNProcessors : IO (MaybeNat)
  Get the number of processors on the system. Returns `Nothing` if we somehow
got 0 processors.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

os : String
  The current operating system.

Totality: total
Visibility: export
codegen : String
  The codegen/backend used.

Totality: total
Visibility: export
isWindows : Bool
  Whether we are running on MS Windows, either directly or with a compability
layer (e.g. cygwin).

Totality: total
Visibility: export
getNProcessors : IO (MaybeNat)
  Get the number of processors on the system. Returns `Nothing` if we somehow
got 0 processors.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.REPL.html b/base/docs/System.REPL.html index f83ff41a68..2d4685b94e 100644 --- a/base/docs/System.REPL.html +++ b/base/docs/System.REPL.html @@ -61,4 +61,4 @@ -

System.REPL(source)

Definitions

replWith : HasIOio=>a->String-> (a->String->Maybe (String, a)) ->io ()
  A basic read-eval-print loop, maintaining a state

@ state the input state
@ prompt the prompt to show
@ onInput the function to run on reading input, returning a String to
output and a new state. Returns Nothing if the repl should exit

Visibility: export
repl : HasIOio=>String-> (String->String) ->io ()
  A basic read-eval-print loop

@ prompt the prompt to show
@ onInput the function to run on reading input, returning a String to
output

Visibility: export
\ No newline at end of file +

System.REPL(source)

Definitions

replWith : HasIOio=>a->String-> (a->String->Maybe (String, a)) ->io ()
  A basic read-eval-print loop, maintaining a state

@ state the input state
@ prompt the prompt to show
@ onInput the function to run on reading input, returning a String to
output and a new state. Returns Nothing if the repl should exit

Visibility: export
repl : HasIOio=>String-> (String->String) ->io ()
  A basic read-eval-print loop

@ prompt the prompt to show
@ onInput the function to run on reading input, returning a String to
output

Visibility: export
\ No newline at end of file diff --git a/base/docs/System.Signal.html b/base/docs/System.Signal.html index 8578ccff2d..28c66e649b 100644 --- a/base/docs/System.Signal.html +++ b/base/docs/System.Signal.html @@ -68,4 +68,4 @@ operating systems. This module tries to honor both by putting things only available in POSIX environments into appropriately named namespaces or data types. -

Definitions

dataPosixSignal : Type
Totality: total
Visibility: public export
Constructors:
SigHUP : PosixSignal
  Hangup (i.e. controlling terminal closed)
SigQUIT : PosixSignal
  Quit
SigTRAP : PosixSignal
  Trap (as used by debuggers)
SigUser1 : PosixSignal
SigUser2 : PosixSignal

Hint: 
EqPosixSignal
dataSignal : Type
Totality: total
Visibility: public export
Constructors:
SigINT : Signal
  Interrupt (e.g. ctrl+c pressed)
SigABRT : Signal
  Abnormal termination
SigILL : Signal
  Ill-formed instruction
SigSEGV : Signal
  Segmentation fault
SigFPE : Signal
  Floating-point error
SigPosix : PosixSignal->Signal
  Signals only available on POSIX operating systems

Hint: 
EqSignal
dataSignalError : Type
  An Error represented by a code. See
relevant `errno` documentation.
https://man7.org/linux/man-pages/man3/errno.3.html

Totality: total
Visibility: public export
Constructor: 
Error : Int->SignalError
ignoreSignal : HasIOio=>Signal->io (EitherSignalError ())
  Ignore the given signal.
Be careful doing this, as most signals have useful
default behavior -- you might want to set the signal
to its default behavior instead with `defaultSignal`.

Totality: total
Visibility: export
defaultSignal : HasIOio=>Signal->io (EitherSignalError ())
  Use the default handler for the given signal.
You can use this function to unset custom
handling of a signal.

Totality: total
Visibility: export
collectSignal : HasIOio=>Signal->io (EitherSignalError ())
  Collect the given signal.

This replaces the existing handling of the given signal
and instead results in Idris collecting occurrences of
the signal until you call `handleNextCollectedSignal`.

First, call `collectSignal` for any number of signals.
Then, call `handleNextCollectedSignal` in each main loop
of your program to retrieve (and mark as handled) the next
signal that was collected, if any.

Signals are not queued, so the return order of signals is
not specified and signals may be deduplicated.

Totality: total
Visibility: export
handleNextCollectedSignal : HasIOio=>io (MaybeSignal)
  Get next collected signal under the pretense of handling it.

Calling this "marks" the signal as handled so the next time
this function is called you will retrieve the next unhandled
signal instead of the same signal again.

You get back Nothing if there are no pending signals.

Totality: total
Visibility: export
handleManyCollectedSignals : HasIOio=>Fuel->io (ListSignal)
  Get many collected signals and mark them as handled.

Use `forever` as your fuel if you don't want or need to
retain totality. Alternatively, pick a max number to
retrieve and use `limit/1` as your fuel.

Totality: total
Visibility: export
raiseSignal : HasIOio=>Signal->io (EitherSignalError ())
  Send a signal to the current process.

Totality: total
Visibility: export
sendSignal : HasIOio=>Signal->Int->io (EitherSignalError ())
  Send a signal to a POSIX process using a PID to identify the process.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataPosixSignal : Type
Totality: total
Visibility: public export
Constructors:
SigHUP : PosixSignal
  Hangup (i.e. controlling terminal closed)
SigQUIT : PosixSignal
  Quit
SigTRAP : PosixSignal
  Trap (as used by debuggers)
SigUser1 : PosixSignal
SigUser2 : PosixSignal

Hint: 
EqPosixSignal
dataSignal : Type
Totality: total
Visibility: public export
Constructors:
SigINT : Signal
  Interrupt (e.g. ctrl+c pressed)
SigABRT : Signal
  Abnormal termination
SigILL : Signal
  Ill-formed instruction
SigSEGV : Signal
  Segmentation fault
SigFPE : Signal
  Floating-point error
SigPosix : PosixSignal->Signal
  Signals only available on POSIX operating systems

Hint: 
EqSignal
dataSignalError : Type
  An Error represented by a code. See
relevant `errno` documentation.
https://man7.org/linux/man-pages/man3/errno.3.html

Totality: total
Visibility: public export
Constructor: 
Error : Int->SignalError
ignoreSignal : HasIOio=>Signal->io (EitherSignalError ())
  Ignore the given signal.
Be careful doing this, as most signals have useful
default behavior -- you might want to set the signal
to its default behavior instead with `defaultSignal`.

Totality: total
Visibility: export
defaultSignal : HasIOio=>Signal->io (EitherSignalError ())
  Use the default handler for the given signal.
You can use this function to unset custom
handling of a signal.

Totality: total
Visibility: export
collectSignal : HasIOio=>Signal->io (EitherSignalError ())
  Collect the given signal.

This replaces the existing handling of the given signal
and instead results in Idris collecting occurrences of
the signal until you call `handleNextCollectedSignal`.

First, call `collectSignal` for any number of signals.
Then, call `handleNextCollectedSignal` in each main loop
of your program to retrieve (and mark as handled) the next
signal that was collected, if any.

Signals are not queued, so the return order of signals is
not specified and signals may be deduplicated.

Totality: total
Visibility: export
handleNextCollectedSignal : HasIOio=>io (MaybeSignal)
  Get next collected signal under the pretense of handling it.

Calling this "marks" the signal as handled so the next time
this function is called you will retrieve the next unhandled
signal instead of the same signal again.

You get back Nothing if there are no pending signals.

Totality: total
Visibility: export
handleManyCollectedSignals : HasIOio=>Fuel->io (ListSignal)
  Get many collected signals and mark them as handled.

Use `forever` as your fuel if you don't want or need to
retain totality. Alternatively, pick a max number to
retrieve and use `limit/1` as your fuel.

Totality: total
Visibility: export
raiseSignal : HasIOio=>Signal->io (EitherSignalError ())
  Send a signal to the current process.

Totality: total
Visibility: export
sendSignal : HasIOio=>Signal->Int->io (EitherSignalError ())
  Send a signal to a POSIX process using a PID to identify the process.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.Term.html b/base/docs/System.Term.html index be542fa714..af95825d88 100644 --- a/base/docs/System.Term.html +++ b/base/docs/System.Term.html @@ -61,4 +61,4 @@ -

System.Term(source)

Definitions

setupTerm : IO ()
Totality: total
Visibility: export
getTermCols : IOInt
Totality: total
Visibility: export
getTermLines : IOInt
Totality: total
Visibility: export
\ No newline at end of file +

System.Term(source)

Definitions

setupTerm : IO ()
Totality: total
Visibility: export
getTermCols : IOInt
Totality: total
Visibility: export
getTermLines : IOInt
Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/docs/System.html b/base/docs/System.html index 32bc005329..6c14a56f20 100644 --- a/base/docs/System.html +++ b/base/docs/System.html @@ -61,4 +61,4 @@ -

System(source)

Reexports

importpublic Data.So
importpublic System.Escape

Definitions

sleep : HasIOio=>Int->io ()
  Sleep for the specified number of seconds or, if signals are supported,
until an un-ignored signal arrives.
The exact wall-clock time slept might slighly differ depending on how busy
the system is and the resolution of the system's clock.

@ sec the number of seconds to sleep for

Totality: total
Visibility: export
usleep : HasIOio=> (usec : Int) ->So (usec>=0) =>io ()
  Sleep for the specified number of microseconds or, if signals are supported,
until an un-ignored signal arrives.
The exact wall-clock time slept might slighly differ depending on how busy
the system is and the resolution of the system's clock.

@ usec the number of microseconds to sleep for

Totality: total
Visibility: export
getArgs : HasIOio=>io (ListString)
  Retrieve the arguments to the program call, if there were any.

Totality: total
Visibility: export
enableRawMode : HasIOio=>io (EitherFileError ())
  `enableRawMode` enables raw mode for stdin, allowing characters
to be read one at a time, without buffering or echoing.
If `enableRawMode` is used, the program should call `resetRawMode` before
exiting. Consider using `withRawMode` instead to ensure the tty is reset.

This is not supported on windows.

Totality: total
Visibility: export
resetRawMode : HasIOio=>io ()
  `resetRawMode` resets stdin raw mode to original state if
`enableRawMode` had been previously called.

Totality: total
Visibility: export
withRawMode : HasIOio=> (FileError->ioa) -> (() ->ioa) ->ioa
  `withRawMode` performs a given operation after setting stdin to raw mode
and ensure that stdin is reset to its original state afterwards.

This is not supported on windows.

Totality: total
Visibility: export
getEnv : HasIOio=>String->io (MaybeString)
  Retrieve the specified environment variable's value string, or `Nothing` if
there is no such environment variable.

@ var the name of the environment variable to look up

Totality: total
Visibility: export
getEnvironment : HasIOio=>io (List (String, String))
  Retrieve all the key-value pairs of the environment variables, and return a
list containing them.

Visibility: export
setEnv : HasIOio=>String->String->Bool->ioBool
  Add the specified variable with the given value string to the environment,
optionally overwriting any existing environment variable with the same name.
Returns True whether the value is set, overwritten, or not overwritten because
overwrite was False. Returns False if a system error occurred. You can `getErrno`
to check the error.

@ var the name of the environment variable to set
@ val the value string to set the environment variable to
@ overwrite whether to overwrite the existing value if an environment
variable with the specified name already exists

Totality: total
Visibility: export
unsetEnv : HasIOio=>String->ioBool
  Delete the specified environment variable. Returns `True` either if the
value was deleted or if the value was not defined/didn't exist. Returns
`False` if a system error occurred. You can `getErrno` to check the error.

Totality: total
Visibility: export
system : HasIOio=>String->ioInt
  Execute a shell command, returning its termination status or -1 if an error
occurred.

Totality: total
Visibility: export
system : HasIOio=>ListString->ioInt
Totality: total
Visibility: export
run : HasIOio=>String->io (String, Int)
  Run a shell command, returning its stdout, and exit code.

Visibility: export
run : HasIOio=>ListString->io (String, Int)
Visibility: export
runProcessingOutput : HasIOio=> (String->io ()) ->String->ioInt
  Run a shell command, allowing processing its stdout line by line.

Notice that is the line of the command ends with a newline character,
it will be present in the string passed to the processing function.

This function returns an exit code which value should be consistent with the `run` function.

Visibility: export
runProcessingOutput : HasIOio=> (String->io ()) ->ListString->ioInt
Visibility: export
time : HasIOio=>ioInteger
  Return the number of seconds since epoch.

Totality: total
Visibility: export
getPID : HasIOio=>ioInt
  Get the ID of the currently running process.

Totality: total
Visibility: export
dataExitCode : Type
  Programs can either terminate successfully, or end in a caught
failure.

Totality: total
Visibility: public export
Constructors:
ExitSuccess : ExitCode
  Terminate successfully.
ExitFailure : (errNo : Int) ->So (not (errNo==0)) =>ExitCode
  Program terminated for some prescribed reason.

@errNo A non-zero numerical value indicating failure.
@prf Proof that the int value is non-zero.
exitWith : HasIOio=>ExitCode->ioa
  Exit the program normally, with the specified status.

Totality: total
Visibility: export
exitFailure : HasIOio=>ioa
  Exit the program with status value 1, indicating failure.
If you want to specify a custom status value, see `exitWith`.

Totality: total
Visibility: export
exitSuccess : HasIOio=>ioa
  Exit the program after a successful run.

Totality: total
Visibility: export
die : HasIOio=>String->ioa
  Print the error message and call exitFailure

Totality: total
Visibility: export
\ No newline at end of file +

System(source)

Reexports

importpublic Data.So
importpublic System.Escape

Definitions

sleep : HasIOio=>Int->io ()
  Sleep for the specified number of seconds or, if signals are supported,
until an un-ignored signal arrives.
The exact wall-clock time slept might slighly differ depending on how busy
the system is and the resolution of the system's clock.

@ sec the number of seconds to sleep for

Totality: total
Visibility: export
usleep : HasIOio=> (usec : Int) ->So (usec>=0) =>io ()
  Sleep for the specified number of microseconds or, if signals are supported,
until an un-ignored signal arrives.
The exact wall-clock time slept might slighly differ depending on how busy
the system is and the resolution of the system's clock.

@ usec the number of microseconds to sleep for

Totality: total
Visibility: export
getArgs : HasIOio=>io (ListString)
  Retrieve the arguments to the program call, if there were any.

Totality: total
Visibility: export
enableRawMode : HasIOio=>io (EitherFileError ())
  `enableRawMode` enables raw mode for stdin, allowing characters
to be read one at a time, without buffering or echoing.
If `enableRawMode` is used, the program should call `resetRawMode` before
exiting. Consider using `withRawMode` instead to ensure the tty is reset.

This is not supported on windows.

Totality: total
Visibility: export
resetRawMode : HasIOio=>io ()
  `resetRawMode` resets stdin raw mode to original state if
`enableRawMode` had been previously called.

Totality: total
Visibility: export
withRawMode : HasIOio=> (FileError->ioa) -> (() ->ioa) ->ioa
  `withRawMode` performs a given operation after setting stdin to raw mode
and ensure that stdin is reset to its original state afterwards.

This is not supported on windows.

Totality: total
Visibility: export
getEnv : HasIOio=>String->io (MaybeString)
  Retrieve the specified environment variable's value string, or `Nothing` if
there is no such environment variable.

@ var the name of the environment variable to look up

Totality: total
Visibility: export
getEnvironment : HasIOio=>io (List (String, String))
  Retrieve all the key-value pairs of the environment variables, and return a
list containing them.

Visibility: export
setEnv : HasIOio=>String->String->Bool->ioBool
  Add the specified variable with the given value string to the environment,
optionally overwriting any existing environment variable with the same name.
Returns True whether the value is set, overwritten, or not overwritten because
overwrite was False. Returns False if a system error occurred. You can `getErrno`
to check the error.

@ var the name of the environment variable to set
@ val the value string to set the environment variable to
@ overwrite whether to overwrite the existing value if an environment
variable with the specified name already exists

Totality: total
Visibility: export
unsetEnv : HasIOio=>String->ioBool
  Delete the specified environment variable. Returns `True` either if the
value was deleted or if the value was not defined/didn't exist. Returns
`False` if a system error occurred. You can `getErrno` to check the error.

Totality: total
Visibility: export
system : HasIOio=>String->ioInt
  Execute a shell command, returning its termination status or -1 if an error
occurred.

Totality: total
Visibility: export
system : HasIOio=>ListString->ioInt
Totality: total
Visibility: export
run : HasIOio=>String->io (String, Int)
  Run a shell command, returning its stdout, and exit code.

Visibility: export
run : HasIOio=>ListString->io (String, Int)
Visibility: export
runProcessingOutput : HasIOio=> (String->io ()) ->String->ioInt
  Run a shell command, allowing processing its stdout line by line.

Notice that is the line of the command ends with a newline character,
it will be present in the string passed to the processing function.

This function returns an exit code which value should be consistent with the `run` function.

Visibility: export
runProcessingOutput : HasIOio=> (String->io ()) ->ListString->ioInt
Visibility: export
time : HasIOio=>ioInteger
  Return the number of seconds since epoch.

Totality: total
Visibility: export
getPID : HasIOio=>ioInt
  Get the ID of the currently running process.

Totality: total
Visibility: export
dataExitCode : Type
  Programs can either terminate successfully, or end in a caught
failure.

Totality: total
Visibility: public export
Constructors:
ExitSuccess : ExitCode
  Terminate successfully.
ExitFailure : (errNo : Int) ->So (not (errNo==0)) =>ExitCode
  Program terminated for some prescribed reason.

@errNo A non-zero numerical value indicating failure.
@prf Proof that the int value is non-zero.
exitWith : HasIOio=>ExitCode->ioa
  Exit the program normally, with the specified status.

Totality: total
Visibility: export
exitFailure : HasIOio=>ioa
  Exit the program with status value 1, indicating failure.
If you want to specify a custom status value, see `exitWith`.

Totality: total
Visibility: export
exitSuccess : HasIOio=>ioa
  Exit the program after a successful run.

Totality: total
Visibility: export
die : HasIOio=>String->ioa
  Print the error message and call exitFailure

Totality: total
Visibility: export
\ No newline at end of file diff --git a/base/index.html b/base/index.html index cb1b546445..d6402bc966 100644 --- a/base/index.html +++ b/base/index.html @@ -61,4 +61,4 @@ -

Package base - Namespaces

\ No newline at end of file +

Package base - Namespaces

\ No newline at end of file diff --git a/base/source/Language.Reflection.TTImp.html b/base/source/Language.Reflection.TTImp.html index 4f48f60276..bb368a5459 100644 --- a/base/source/Language.Reflection.TTImp.html +++ b/base/source/Language.Reflection.TTImp.html @@ -118,999 +118,1007 @@ -
  0 | module Language.Reflection.TTImp
-
  1 |
-
  2 | import Data.Maybe
-
  3 | import Data.String
-
  4 | import public Language.Reflection.TT
-
  5 |
-
  6 |
-
  7 | %default total
-
  8 |
-
  9 | -- Unchecked terms and declarations in the intermediate language
-
 10 | mutual
-
 11 |   public export
-
 12 |   data BindMode = PI Count | PATTERN | COVERAGE | NONE
-
 13 |   %name BindMode bm
-
 14 |
-
 15 |   -- For as patterns matching linear arguments, select which side is
-
 16 |   -- consumed
-
 17 |   public export
-
 18 |   data UseSide = UseLeft | UseRight
-
 19 |   %name UseSide side
-
 20 |
-
 21 |   public export
-
 22 |   data DotReason = NonLinearVar
-
 23 |                  | VarApplied
-
 24 |                  | NotConstructor
-
 25 |                  | ErasedArg
-
 26 |                  | UserDotted
-
 27 |                  | UnknownDot
-
 28 |                  | UnderAppliedCon
-
 29 |   %name DotReason dr
-
 30 |
-
 31 |   public export
-
 32 |   data TTImp : Type where
-
 33 |        IVar : FC -> Name -> TTImp
-
 34 |        IPi : FC -> Count -> PiInfo TTImp -> Maybe Name ->
-
 35 |              (argTy : TTImp) -> (retTy : TTImp) -> TTImp
-
 36 |        ILam : FC -> Count -> PiInfo TTImp -> Maybe Name ->
-
 37 |               (argTy : TTImp) -> (lamTy : TTImp) -> TTImp
-
 38 |        ILet : FC -> (lhsFC : FC) -> Count -> Name ->
-
 39 |               (nTy : TTImp) -> (nVal : TTImp) ->
-
 40 |               (scope : TTImp) -> TTImp
-
 41 |        ICase : FC -> List FnOpt -> TTImp -> (ty : TTImp) ->
-
 42 |                List Clause -> TTImp
-
 43 |        ILocal : FC -> List Decl -> TTImp -> TTImp
-
 44 |        IUpdate : FC -> List IFieldUpdate -> TTImp -> TTImp
-
 45 |
-
 46 |        IApp : FC -> TTImp -> TTImp -> TTImp
-
 47 |        INamedApp : FC -> TTImp -> Name -> TTImp -> TTImp
-
 48 |        IAutoApp : FC -> TTImp -> TTImp -> TTImp
-
 49 |        IWithApp : FC -> TTImp -> TTImp -> TTImp
-
 50 |
-
 51 |        ISearch : FC -> (depth : Nat) -> TTImp
-
 52 |        IAlternative : FC -> AltType -> List TTImp -> TTImp
-
 53 |        IRewrite : FC -> TTImp -> TTImp -> TTImp
-
 54 |
-
 55 |        -- Any implicit bindings in the scope should be bound here, using
-
 56 |        -- the given binder
-
 57 |        IBindHere : FC -> BindMode -> TTImp -> TTImp
-
 58 |        -- A name which should be implicitly bound
-
 59 |        IBindVar : FC -> String -> TTImp
-
 60 |        -- An 'as' pattern, valid on the LHS of a clause only
-
 61 |        IAs : FC -> (nameFC : FC) -> UseSide -> Name -> TTImp -> TTImp
-
 62 |        -- A 'dot' pattern, i.e. one which must also have the given value
-
 63 |        -- by unification
-
 64 |        IMustUnify : FC -> DotReason -> TTImp -> TTImp
-
 65 |
-
 66 |        -- Laziness annotations
-
 67 |        IDelayed : FC -> LazyReason -> TTImp -> TTImp -- the type
-
 68 |        IDelay : FC -> TTImp -> TTImp -- delay constructor
-
 69 |        IForce : FC -> TTImp -> TTImp
-
 70 |
-
 71 |        -- Quasiquotation
-
 72 |        IQuote : FC -> TTImp -> TTImp
-
 73 |        IQuoteName : FC -> Name -> TTImp
-
 74 |        IQuoteDecl : FC -> List Decl -> TTImp
-
 75 |        IUnquote : FC -> TTImp -> TTImp
-
 76 |
-
 77 |        IPrimVal : FC -> (c : Constant) -> TTImp
-
 78 |        IType : FC -> TTImp
-
 79 |        IHole : FC -> String -> TTImp
-
 80 |
-
 81 |        -- An implicit value, solved by unification, but which will also be
-
 82 |        -- bound (either as a pattern variable or a type variable) if unsolved
-
 83 |        -- at the end of elaborator
-
 84 |        Implicit : FC -> (bindIfUnsolved : Bool) -> TTImp
-
 85 |        IWithUnambigNames : FC -> List (FC, Name) -> TTImp -> TTImp
-
 86 |   %name TTImp s, t, u
-
 87 |
-
 88 |   public export
-
 89 |   data IFieldUpdate : Type where
-
 90 |        ISetField : (path : List String) -> TTImp -> IFieldUpdate
-
 91 |        ISetFieldApp : (path : List String) -> TTImp -> IFieldUpdate
-
 92 |
-
 93 |   %name IFieldUpdate upd
-
 94 |
-
 95 |   public export
-
 96 |   data AltType : Type where
-
 97 |        FirstSuccess : AltType
-
 98 |        Unique : AltType
-
 99 |        UniqueDefault : TTImp -> AltType
-
100 |
-
101 |   public export
-
102 |   data FnOpt : Type where
-
103 |        Inline : FnOpt
-
104 |        NoInline : FnOpt
-
105 |        Deprecate : FnOpt
-
106 |        TCInline : FnOpt
-
107 |        -- Flag means the hint is a direct hint, not a function which might
-
108 |        -- find the result (e.g. chasing parent interface dictionaries)
-
109 |        Hint : Bool -> FnOpt
-
110 |        -- Flag means to use as a default if all else fails
-
111 |        GlobalHint : Bool -> FnOpt
-
112 |        ExternFn : FnOpt
-
113 |        -- Defined externally, list calling conventions
-
114 |        ForeignFn : List TTImp -> FnOpt
-
115 |        -- Mark for export to a foreign language, list calling conventions
-
116 |        ForeignExport : List TTImp -> FnOpt
-
117 |        -- assume safe to cancel arguments in unification
-
118 |        Invertible : FnOpt
-
119 |        Totality : TotalReq -> FnOpt
-
120 |        Macro : FnOpt
-
121 |        SpecArgs : List Name -> FnOpt
-
122 |
-
123 |   public export
-
124 |   data ITy : Type where
-
125 |        MkTy : FC -> (nameFC : FC) -> (n : Name) -> (ty : TTImp) -> ITy
-
126 |
-
127 |   %name ITy sig
-
128 |
-
129 |   public export
-
130 |   data DataOpt : Type where
-
131 |        SearchBy : List Name -> DataOpt -- determining arguments
-
132 |        NoHints : DataOpt -- Don't generate search hints for constructors
-
133 |        UniqueSearch : DataOpt -- auto implicit search must check result is unique
-
134 |        External : DataOpt -- implemented externally
-
135 |        NoNewtype : DataOpt -- don't apply newtype optimisation
-
136 |
-
137 |   %name DataOpt dopt
-
138 |
-
139 |   public export
-
140 |   data Data : Type where
-
141 |        MkData : FC -> (n : Name) -> (tycon : Maybe TTImp) ->
-
142 |                 (opts : List DataOpt) ->
-
143 |                 (datacons : List ITy) -> Data
-
144 |        MkLater : FC -> (n : Name) -> (tycon : TTImp) -> Data
-
145 |
-
146 |   %name Data dt
-
147 |
-
148 |   public export
-
149 |   data IField : Type where
-
150 |        MkIField : FC -> Count -> PiInfo TTImp -> Name -> TTImp ->
-
151 |                   IField
-
152 |
-
153 |   %name IField fld
-
154 |
-
155 |   public export
-
156 |   data Record : Type where
-
157 |        MkRecord : FC -> (n : Name) ->
-
158 |                   (params : List (Name, Count, PiInfo TTImp, TTImp)) ->
-
159 |                   (opts : List DataOpt) ->
-
160 |                   (conName : Name) ->
-
161 |                   (fields : List IField) ->
-
162 |                   Record
-
163 |   %name Record rec
-
164 |
-
165 |   public export
-
166 |   data WithFlag = Syntactic
-
167 |
-
168 |   public export
-
169 |   data Clause : Type where
-
170 |        PatClause : FC -> (lhs : TTImp) -> (rhs : TTImp) -> Clause
-
171 |        WithClause : FC -> (lhs : TTImp) ->
-
172 |                     (rig : Count) -> (wval : TTImp) -> -- with'd expression (& quantity)
-
173 |                     (prf : Maybe Name) -> -- optional name for the proof
-
174 |                     (flags : List WithFlag) ->
-
175 |                     List Clause -> Clause
-
176 |        ImpossibleClause : FC -> (lhs : TTImp) -> Clause
-
177 |
-
178 |   %name Clause cl
-
179 |
-
180 |   public export
-
181 |   data WithDefault : (a : Type) -> (def : a) -> Type where
-
182 |        DefaultedValue : WithDefault a def
-
183 |        SpecifiedValue : a -> WithDefault a def
-
184 |
-
185 |   export
-
186 |   specified : a -> WithDefault a def
-
187 |   specified = SpecifiedValue
-
188 |
-
189 |   export
-
190 |   defaulted : WithDefault a def
-
191 |   defaulted = DefaultedValue
-
192 |
-
193 |   export
-
194 |   collapseDefault : {def : a} -> WithDefault a def -> a
-
195 |   collapseDefault DefaultedValue     = def
-
196 |   collapseDefault (SpecifiedValue a) = a
-
197 |
-
198 |   export
-
199 |   onWithDefault : (defHandler : Lazy b) -> (valHandler : a -> b) ->
-
200 |                   WithDefault a def -> b
-
201 |   onWithDefault defHandler _ DefaultedValue     = defHandler
-
202 |   onWithDefault _ valHandler (SpecifiedValue v) = valHandler v
-
203 |
-
204 |   public export
-
205 |   data Decl : Type where
-
206 |        IClaim : FC -> Count -> Visibility -> List FnOpt ->
-
207 |                 ITy -> Decl
-
208 |        IData : FC -> WithDefault Visibility Private -> Maybe TotalReq -> Data -> Decl
-
209 |        IDef : FC -> Name -> (cls : List Clause) -> Decl
-
210 |        IParameters : FC -> (params : List (Name, Count, PiInfo TTImp, TTImp)) ->
-
211 |                      (decls : List Decl) -> Decl
-
212 |        IRecord : FC ->
-
213 |                  Maybe String -> -- nested namespace
-
214 |                  WithDefault Visibility Private ->
-
215 |                  Maybe TotalReq -> Record -> Decl
-
216 |        INamespace : FC -> Namespace -> (decls : List Decl) -> Decl
-
217 |        ITransform : FC -> Name -> TTImp -> TTImp -> Decl
-
218 |        IRunElabDecl : FC -> TTImp -> Decl
-
219 |        ILog : Maybe (List String, Nat) -> Decl
-
220 |        IBuiltin : FC -> BuiltinType -> Name -> Decl
-
221 |
-
222 |   %name Decl decl
-
223 |
-
224 | public export
-
225 | getFC : TTImp -> FC
-
226 | getFC (IVar fc _)                = fc
-
227 | getFC (IPi fc _ _ _ _ _)         = fc
-
228 | getFC (ILam fc _ _ _ _ _)        = fc
-
229 | getFC (ILet fc _ _ _ _ _ _)      = fc
-
230 | getFC (ICase fc _ _ _ _)         = fc
-
231 | getFC (ILocal fc _ _)            = fc
-
232 | getFC (IUpdate fc _ _)           = fc
-
233 | getFC (IApp fc _ _)              = fc
-
234 | getFC (INamedApp fc _ _ _)       = fc
-
235 | getFC (IAutoApp fc _ _)          = fc
-
236 | getFC (IWithApp fc _ _)          = fc
-
237 | getFC (ISearch fc _)             = fc
-
238 | getFC (IAlternative fc _ _)      = fc
-
239 | getFC (IRewrite fc _ _)          = fc
-
240 | getFC (IBindHere fc _ _)         = fc
-
241 | getFC (IBindVar fc _)            = fc
-
242 | getFC (IAs fc _ _ _ _)           = fc
-
243 | getFC (IMustUnify fc _ _)        = fc
-
244 | getFC (IDelayed fc _ _)          = fc
-
245 | getFC (IDelay fc _)              = fc
-
246 | getFC (IForce fc _)              = fc
-
247 | getFC (IQuote fc _)              = fc
-
248 | getFC (IQuoteName fc _)          = fc
-
249 | getFC (IQuoteDecl fc _)          = fc
-
250 | getFC (IUnquote fc _)            = fc
-
251 | getFC (IPrimVal fc _)            = fc
-
252 | getFC (IType fc)                 = fc
-
253 | getFC (IHole fc _)               = fc
-
254 | getFC (Implicit fc _)            = fc
-
255 | getFC (IWithUnambigNames fc _ _) = fc
-
256 |
-
257 | public export
-
258 | mapTopmostFC : (FC -> FC) -> TTImp -> TTImp
-
259 | mapTopmostFC fcf $ IVar fc a                = IVar (fcf fc) a
-
260 | mapTopmostFC fcf $ IPi fc a b c d e         = IPi (fcf fc) a b c d e
-
261 | mapTopmostFC fcf $ ILam fc a b c d e        = ILam (fcf fc) a b c d e
-
262 | mapTopmostFC fcf $ ILet fc a b c d e f      = ILet (fcf fc) a b c d e f
-
263 | mapTopmostFC fcf $ ICase fc opts a b c      = ICase (fcf fc) opts a b c
-
264 | mapTopmostFC fcf $ ILocal fc a b            = ILocal (fcf fc) a b
-
265 | mapTopmostFC fcf $ IUpdate fc a b           = IUpdate (fcf fc) a b
-
266 | mapTopmostFC fcf $ IApp fc a b              = IApp (fcf fc) a b
-
267 | mapTopmostFC fcf $ INamedApp fc a b c       = INamedApp (fcf fc) a b c
-
268 | mapTopmostFC fcf $ IAutoApp fc a b          = IAutoApp (fcf fc) a b
-
269 | mapTopmostFC fcf $ IWithApp fc a b          = IWithApp (fcf fc) a b
-
270 | mapTopmostFC fcf $ ISearch fc a             = ISearch (fcf fc) a
-
271 | mapTopmostFC fcf $ IAlternative fc a b      = IAlternative (fcf fc) a b
-
272 | mapTopmostFC fcf $ IRewrite fc a b          = IRewrite (fcf fc) a b
-
273 | mapTopmostFC fcf $ IBindHere fc a b         = IBindHere (fcf fc) a b
-
274 | mapTopmostFC fcf $ IBindVar fc a            = IBindVar (fcf fc) a
-
275 | mapTopmostFC fcf $ IAs fc a b c d           = IAs (fcf fc) a b c d
-
276 | mapTopmostFC fcf $ IMustUnify fc a b        = IMustUnify (fcf fc) a b
-
277 | mapTopmostFC fcf $ IDelayed fc a b          = IDelayed (fcf fc) a b
-
278 | mapTopmostFC fcf $ IDelay fc a              = IDelay (fcf fc) a
-
279 | mapTopmostFC fcf $ IForce fc a              = IForce (fcf fc) a
-
280 | mapTopmostFC fcf $ IQuote fc a              = IQuote (fcf fc) a
-
281 | mapTopmostFC fcf $ IQuoteName fc a          = IQuoteName (fcf fc) a
-
282 | mapTopmostFC fcf $ IQuoteDecl fc a          = IQuoteDecl (fcf fc) a
-
283 | mapTopmostFC fcf $ IUnquote fc a            = IUnquote (fcf fc) a
-
284 | mapTopmostFC fcf $ IPrimVal fc a            = IPrimVal (fcf fc) a
-
285 | mapTopmostFC fcf $ IType fc                 = IType (fcf fc)
-
286 | mapTopmostFC fcf $ IHole fc a               = IHole (fcf fc) a
-
287 | mapTopmostFC fcf $ Implicit fc a            = Implicit (fcf fc) a
-
288 | mapTopmostFC fcf $ IWithUnambigNames fc a b = IWithUnambigNames (fcf fc) a b
-
289 |
-
290 | public export
-
291 | Eq BindMode where
-
292 |   PI c    == PI c'   = c == c'
-
293 |   PATTERN == PATTERN = True
-
294 |   NONE    == NONE    = True
-
295 |   _ == _ = False
-
296 |
-
297 | public export
-
298 | Eq UseSide where
-
299 |   UseLeft  == UseLeft  = True
-
300 |   UseRight == UseRight = True
-
301 |   _ == _ = False
-
302 |
-
303 | public export
-
304 | Eq DotReason where
-
305 |   NonLinearVar    == NonLinearVar    = True
-
306 |   VarApplied      == VarApplied      = True
-
307 |   NotConstructor  == NotConstructor  = True
-
308 |   ErasedArg       == ErasedArg       = True
-
309 |   UserDotted      == UserDotted      = True
-
310 |   UnknownDot      == UnknownDot      = True
-
311 |   UnderAppliedCon == UnderAppliedCon = True
-
312 |   _ == _ = False
-
313 |
-
314 | public export
-
315 | Eq WithFlag where
-
316 |   Syntactic == Syntactic = True
-
317 |
-
318 | public export
-
319 | Eq DataOpt where
-
320 |   SearchBy ns == SearchBy ns' = ns == ns'
-
321 |   NoHints == NoHints = True
-
322 |   UniqueSearch == UniqueSearch = True
-
323 |   External == External = True
-
324 |   NoNewtype == NoNewtype = True
-
325 |   _ == _ = False
-
326 |
-
327 | public export
-
328 | Eq a => Eq (WithDefault a def) where
-
329 |   DefaultedValue   == DefaultedValue   = True
-
330 |   DefaultedValue   == SpecifiedValue _ = False
-
331 |   SpecifiedValue _ == DefaultedValue   = False
-
332 |   SpecifiedValue x == SpecifiedValue y = x == y
-
333 |
-
334 | public export
-
335 | Ord a => Ord (WithDefault a def) where
-
336 |   compare DefaultedValue   DefaultedValue       = EQ
-
337 |   compare DefaultedValue   (SpecifiedValue _)   = LT
-
338 |   compare (SpecifiedValue _) DefaultedValue     = GT
-
339 |   compare (SpecifiedValue x) (SpecifiedValue y) = compare x y
-
340 |
-
341 | public export
-
342 | {def : a} -> (Show a) => Show (WithDefault a def) where
-
343 |   show (SpecifiedValue x) = show x
-
344 |   show DefaultedValue     = show def
-
345 |
-
346 | public export
-
347 | Eq a => Eq (PiInfo a) where
-
348 |   ImplicitArg   == ImplicitArg = True
-
349 |   ExplicitArg   == ExplicitArg = True
-
350 |   AutoImplicit  == AutoImplicit = True
-
351 |   DefImplicit t == DefImplicit t' = t == t'
-
352 |   _ == _ = False
-
353 |
-
354 | parameters {auto eqTTImp : Eq TTImp}
-
355 |   public export
-
356 |   Eq Clause where
-
357 |     PatClause _ lhs rhs == PatClause _ lhs' rhs' =
-
358 |       lhs == lhs' && rhs == rhs'
-
359 |     WithClause _ l r w p f cs == WithClause _ l' r' w' p' f' cs' =
-
360 |       l == l' && r == r' && w == w' && p == p' && f == f' && (assert_total $ cs == cs')
-
361 |     ImpossibleClause _ l == ImpossibleClause _ l' = l == l'
-
362 |     _ == _ = False
-
363 |
-
364 |   public export
-
365 |   Eq IFieldUpdate where
-
366 |     ISetField p t == ISetField p' t' =
-
367 |       p == p' && t == t'
-
368 |     ISetFieldApp p t == ISetFieldApp p' t' =
-
369 |       p == p' && t == t'
-
370 |     _ == _ = False
-
371 |
-
372 |   public export
-
373 |   Eq AltType where
-
374 |     FirstSuccess    == FirstSuccess     = True
-
375 |     Unique          == Unique           = True
-
376 |     UniqueDefault t == UniqueDefault t' = t == t'
-
377 |     _ == _ = False
-
378 |
-
379 |   public export
-
380 |   Eq FnOpt where
-
381 |     Inline == Inline = True
-
382 |     NoInline == NoInline = True
-
383 |     Deprecate == Deprecate = True
-
384 |     TCInline == TCInline = True
-
385 |     Hint b == Hint b' = b == b'
-
386 |     GlobalHint b == GlobalHint b' = b == b'
-
387 |     ExternFn == ExternFn = True
-
388 |     ForeignFn es == ForeignFn es' = es == es'
-
389 |     ForeignExport es == ForeignExport es' = es == es'
-
390 |     Invertible == Invertible = True
-
391 |     Totality tr == Totality tr' = tr == tr'
-
392 |     Macro == Macro = True
-
393 |     SpecArgs ns == SpecArgs ns' = ns == ns'
-
394 |     _ == _ = False
-
395 |
-
396 |   public export
-
397 |   Eq ITy where
-
398 |     MkTy _ _ n ty == MkTy _ _ n' ty' = n == n' && ty == ty'
-
399 |
-
400 |   public export
-
401 |   Eq Data where
-
402 |     MkData _ n tc os dc == MkData _ n' tc' os' dc' =
-
403 |       n == n' && tc == tc' && os == os' && dc == dc'
-
404 |     MkLater _ n tc == MkLater _ n' tc' =
-
405 |       n == n' && tc == tc'
-
406 |     _ == _ = False
-
407 |
-
408 |   public export
-
409 |   Eq IField where
-
410 |     MkIField _ c pi n e == MkIField _ c' pi' n' e' =
-
411 |       c == c' && pi == pi' && n == n' && e == e'
-
412 |
-
413 |   public export
-
414 |   Eq Record where
-
415 |     MkRecord _ n ps opts cn fs == MkRecord _ n' ps' opts' cn' fs' =
-
416 |       n == n' && ps == ps' && opts == opts' && cn == cn' && fs == fs'
-
417 |
-
418 |   public export
-
419 |   Eq Decl where
-
420 |     IClaim _ c v fos t == IClaim _ c' v' fos' t' =
-
421 |       c == c' && v == v' && fos == fos' && t == t'
-
422 |     IData _ v t d == IData _ v' t' d' =
-
423 |       v == v' && t == t' && d == d'
-
424 |     IDef _ n cs == IDef _ n' cs' =
-
425 |       n == n' && cs == cs'
-
426 |     IParameters _ ps ds == IParameters _ ps' ds' =
-
427 |       ps == ps' && (assert_total $ ds == ds')
-
428 |     IRecord _ ns v tr r == IRecord _ ns' v' tr' r' =
-
429 |       ns == ns' && v == v' && tr == tr' && r == r'
-
430 |     INamespace _ ns ds == INamespace _ ns' ds' =
-
431 |       ns == ns' && (assert_total $ ds == ds')
-
432 |     ITransform _ n f t == ITransform _ n' f' t' =
-
433 |       n == n' && f == f' && t == t'
-
434 |     IRunElabDecl _ e == IRunElabDecl _ e' = e == e'
-
435 |     ILog p == ILog p' = p == p'
-
436 |     IBuiltin _ t n == IBuiltin _ t' n' =
-
437 |       t == t' && n == n'
-
438 |     _ == _ = False
-
439 |
-
440 | public export
-
441 | Eq TTImp where
-
442 |   IVar _ v == IVar _ v' = v == v'
-
443 |   IPi _ c i n a r == IPi _ c' i' n' a' r' =
-
444 |     c == c' && (assert_total $ i == i') && n == n' && a == a' && r == r'
-
445 |   ILam _ c i n a r == ILam _ c' i' n' a' r' =
-
446 |     c == c' && (assert_total $ i == i') && n == n' && a == a' && r == r'
-
447 |   ILet _ _ c n ty val s == ILet _ _ c' n' ty' val' s' =
-
448 |     c == c' && n == n' && ty == ty' && val == val' && s == s'
-
449 |   ICase _ _ t ty cs == ICase _ _ t' ty' cs'
-
450 |     = t == t' && ty == ty' && (assert_total $ cs == cs')
-
451 |   ILocal _ ds e == ILocal _ ds' e' =
-
452 |     (assert_total $ ds == ds') && e == e'
-
453 |   IUpdate _ fs t == IUpdate _ fs' t' =
-
454 |     (assert_total $ fs == fs') && t == t'
-
455 |
-
456 |   IApp _ f x == IApp _ f' x' = f == f' && x == x'
-
457 |   INamedApp _ f n x == INamedApp _ f' n' x' =
-
458 |     f == f' && n == n' && x == x'
-
459 |   IAutoApp _ f x == IAutoApp _ f' x' = f == f' && x == x'
-
460 |   IWithApp _ f x == IWithApp _ f' x' = f == f' && x == x'
-
461 |
-
462 |   ISearch _ n == ISearch _ n' = n == n'
-
463 |   IAlternative _ t as == IAlternative _ t' as' =
-
464 |     (assert_total $ t == t') && (assert_total $ as == as')
-
465 |   IRewrite _ p q == IRewrite _ p' q' =
-
466 |     p == p' && q == q'
-
467 |
-
468 |   IBindHere _ m t == IBindHere _ m' t' =
-
469 |     m == m' && t == t'
-
470 |   IBindVar _ s == IBindVar _ s' = s == s'
-
471 |   IAs _ _ u n t == IAs _ _ u' n' t' =
-
472 |     u == u' && n == n' && t == t'
-
473 |   IMustUnify _ r t == IMustUnify _ r' t' =
-
474 |     r == r' && t == t'
-
475 |
-
476 |   IDelayed _ r t == IDelayed _ r' t' = r == r' && t == t'
-
477 |   IDelay _ t == IDelay _ t' = t == t'
-
478 |   IForce _ t == IForce _ t' = t == t'
-
479 |
-
480 |   IQuote _ tm == IQuote _ tm' = tm == tm'
-
481 |   IQuoteName _ n == IQuoteName _ n' = n == n'
-
482 |   IQuoteDecl _ ds == IQuoteDecl _ ds' = assert_total $ ds == ds'
-
483 |   IUnquote _ tm == IUnquote _ tm' = tm == tm'
-
484 |
-
485 |   IPrimVal _ c == IPrimVal _ c' = c == c'
-
486 |   IType _ == IType _ = True
-
487 |   IHole _ s == IHole _ s' = s == s'
-
488 |
-
489 |   Implicit _ b == Implicit _ b' = b == b'
-
490 |   IWithUnambigNames _ ns t == IWithUnambigNames _ ns' t' =
-
491 |     map snd ns == map snd ns' && t == t'
-
492 |
-
493 |   _ == _ = False
-
494 |
-
495 | public export
-
496 | data Mode = InDecl | InCase
-
497 |
-
498 | mutual
-
499 |
-
500 |   public export
-
501 |   Show IField where
-
502 |     show (MkIField fc rig pinfo nm s) =
-
503 |       showPiInfo {wrapExplicit=False} pinfo (showCount rig "\{show nm} : \{show s}")
-
504 |
-
505 |   public export
-
506 |   Show Record where
-
507 |     show (MkRecord fc n params opts conName fields) -- TODO: print opts
-
508 |       = unwords
-
509 |       [ "record", show n
-
510 |       , unwords (map (\ (nm, rig, pinfo, ty) =>
-
511 |                        showPiInfo pinfo (showCount rig "\{show nm} : \{show ty}"))
-
512 |                 params)
-
513 |       , "where"
-
514 |       , "{"
-
515 |       , "constructor", show conName, "; "
-
516 |       , joinBy "; " (map show fields)
-
517 |       , "}"
-
518 |       ]
-
519 |
-
520 |   public export
-
521 |   Show Data where
-
522 |     show (MkData fc n tycon opts datacons) -- TODO: print opts
-
523 |       = unwords
-
524 |       [ "data", show n, ":", show tycon, "where"
-
525 |       , "{", joinBy "; " (map show datacons), "}"
-
526 |       ]
-
527 |     show (MkLater fc n tycon) = unwords [ "data", show n, ":", show tycon ]
-
528 |
-
529 |   public export
-
530 |   Show ITy where
-
531 |     show (MkTy fc nameFC n ty) = "\{show n} : \{show ty}"
-
532 |
-
533 |   public export
-
534 |   Show Decl where
-
535 |     show (IClaim fc rig vis xs sig)
-
536 |       = unwords [ show vis
-
537 |                 , showCount rig (show sig) ]
-
538 |     show (IData fc vis treq dt)
-
539 |       = unwords [ show vis
-
540 |                 , showTotalReq treq (show dt)
-
541 |                 ]
-
542 |     show (IDef fc nm xs) = joinBy "; " (map (showClause InDecl) xs)
-
543 |     show (IParameters fc params decls)
-
544 |       = unwords
-
545 |       [ "parameters"
-
546 |       , unwords (map (\ (nm, rig, pinfo, ty) =>
-
547 |                        showPiInfo pinfo (showCount rig "\{show nm} : \{show ty}"))
-
548 |                 params)
-
549 |       , "{"
-
550 |       , joinBy "; " (assert_total $ map show decls)
-
551 |       , "}"
-
552 |       ]
-
553 |     show (IRecord fc x vis treq rec)
-
554 |       = unwords [ show vis, showTotalReq treq (show rec) ]
-
555 |     show (INamespace fc ns decls)
-
556 |       = unwords
-
557 |       [ "namespace", show ns
-
558 |       , "{", joinBy "; " (assert_total $ map show decls), "}" ]
-
559 |     show (ITransform fc nm s t) = #"%transform "\{show nm}" \{show s} = \{show t}"#
-
560 |     show (IRunElabDecl fc s) = "%runElab \{show s}"
-
561 |     show (ILog loglvl) = case loglvl of
-
562 |       Nothing => "%logging off"
-
563 |       Just ([], lvl) => "%logging \{show lvl}"
-
564 |       Just (topic, lvl) => "%logging \{joinBy "." topic} \{show lvl}"
-
565 |     show (IBuiltin fc bty nm) = "%builtin \{show bty} \{show nm}"
-
566 |
-
567 |   public export
-
568 |   Show IFieldUpdate where
-
569 |     show (ISetField path s) = "\{joinBy "->" path} := \{show s}"
-
570 |     show (ISetFieldApp path s) = "\{joinBy "->" path} $= \{show s}"
-
571 |
-
572 |   public export
-
573 |   showClause : Mode -> Clause -> String
-
574 |   showClause mode (PatClause fc lhs rhs) = "\{show lhs} \{showSep mode} \{show rhs}" where
-
575 |     showSep : Mode -> String
-
576 |     showSep InDecl = "="
-
577 |     showSep InCase = "=>"
-
578 |   showClause mode (WithClause fc lhs rig wval prf flags cls) -- TODO print flags
-
579 |       = unwords
-
580 |       [ show lhs, "with"
-
581 |       , showCount rig $ maybe id (\ nm => (++ " proof \{show nm}")) prf
-
582 |                       $ showParens True (show wval)
-
583 |       , "{", joinBy "; " (assert_total $ map (showClause mode) cls), "}"
-
584 |       ]
-
585 |   showClause mode (ImpossibleClause fc lhs) = "\{show lhs} impossible"
-
586 |
-
587 |   collectPis : Count -> PiInfo TTImp -> SnocList Name -> TTImp -> TTImp -> (List Name, TTImp)
-
588 |   collectPis rig pinfo xs argTy t@(IPi fc rig' pinfo' x argTy' retTy)
-
589 |     = ifThenElse (rig == rig' && pinfo == pinfo' && argTy == argTy')
-
590 |          (collectPis rig pinfo (xs :< fromMaybe (UN Underscore) x) argTy retTy)
-
591 |          (xs <>> [], t)
-
592 |   collectPis rig pinfo xs argTy t = (xs <>> [], t)
-
593 |
-
594 |   showIApps : TTImp -> List String -> String
-
595 |   showIApps (IApp _ f t) ts = showIApps f (assert_total (showPrec App t) :: ts)
-
596 |   showIApps (IVar _ nm) [a,b] =
-
597 |     if isOp nm then unwords [a, showPrefix False nm, b]
-
598 |     else unwords [showPrefix True nm, a, b]
-
599 |   showIApps f ts = unwords (show f :: ts)
-
600 |
-
601 |   public export
-
602 |   Show TTImp where
-
603 |     showPrec d (IVar fc nm) = showPrefix True nm
-
604 |     showPrec d (IPi fc MW ExplicitArg Nothing argTy retTy)
-
605 |       = showParens (d > Open) $ "\{showPrec Dollar argTy} -> \{show retTy}"
-
606 |     showPrec d (IPi fc MW AutoImplicit Nothing argTy retTy)
-
607 |       = showParens (d > Open) $ "\{showPrec Dollar argTy} => \{show retTy}"
-
608 |     showPrec d (IPi fc rig pinfo x argTy retTy)
-
609 |       = showParens (d > Open) $
-
610 |           let (xs, retTy) = collectPis rig pinfo [<fromMaybe (UN Underscore) x] argTy retTy in
-
611 |           assert_total (showPiInfo pinfo "\{showCount rig $ joinBy ", " (show <$> xs)} : \{show argTy}")
-
612 |           ++ " -> \{assert_total $ show retTy}"
-
613 |     showPrec d (ILam fc rig pinfo x argTy lamTy)
-
614 |       = showParens (d > Open) $
-
615 |           "\\ \{showCount rig $ show (fromMaybe (UN Underscore) x)} => \{show lamTy}"
-
616 |     showPrec d (ILet fc lhsFC rig nm nTy nVal scope)
-
617 |       = showParens (d > Open) $
-
618 |           "let \{showCount rig (show nm)} : \{show nTy} = \{show nVal} in \{show scope}"
-
619 |     showPrec d (ICase fc _ s ty xs)
-
620 |       = showParens (d > Open) $
-
621 |           unwords $ [ "case", show s ] ++ typeFor ty ++ [ "of", "{"
-
622 |                     , joinBy "; " (assert_total $ map (showClause InCase) xs)
-
623 |                     , "}"
-
624 |                     ]
-
625 |           where
-
626 |             typeFor : TTImp -> List String
-
627 |             typeFor $ Implicit _ False = []
-
628 |             typeFor ty = [ "{-", ":", show ty, "-}" ]
-
629 |     showPrec d (ILocal fc decls s)
-
630 |       = showParens (d > Open) $
-
631 |           unwords [ "let", joinBy "; " (assert_total $ map show decls)
-
632 |                   , "in", show s
-
633 |                   ]
-
634 |     showPrec d (IUpdate fc upds s)
-
635 |       = showParens (d > Open) $
-
636 |           unwords [ "{", joinBy ", " $ assert_total (map show upds), "}"
-
637 |                   , showPrec App s ]
-
638 |     showPrec d (IApp fc f t)
-
639 |       = showParens (d >= App) $ assert_total $ showIApps f [showPrec App t]
-
640 |     showPrec d (INamedApp fc f nm t)
-
641 |       = showParens (d >= App) $ "\{show f} {\{show nm} = \{show t}}"
-
642 |     showPrec d (IAutoApp fc f t)
-
643 |       = showParens (d >= App) $ "\{show f} @{\{show t}}"
-
644 |     showPrec d (IWithApp fc f t)
-
645 |       = showParens (d >= App) $ "\{show f} | \{showPrec App t}"
-
646 |     showPrec d (ISearch fc depth) = "%search"
-
647 |     showPrec d (IAlternative fc x xs) = "<\{show (length xs)} alts>"
-
648 |     showPrec d (IRewrite fc s t)
-
649 |       = showParens (d > Open) "rewrite \{show s} in \{show t}"
-
650 |     showPrec d (IBindHere fc bm s) = showPrec d s
-
651 |     showPrec d (IBindVar fc x) = x
-
652 |     showPrec d (IAs fc nameFC side nm s)
-
653 |       = "\{show nm}@\{showPrec App s}"
-
654 |     showPrec d (IMustUnify fc dr s) = ".(\{show s})"
-
655 |     showPrec d (IDelayed fc LInf s) = showCon d "Inf" $ assert_total $ showArg s
-
656 |     showPrec d (IDelayed fc LLazy s) = showCon d "Lazy" $ assert_total $ showArg s
-
657 |     showPrec d (IDelayed fc LUnknown s) = "({- unknown lazy -} \{showPrec Open s})"
-
658 |     showPrec d (IDelay fc s) = showCon d "Delay" $ assert_total $ showArg s
-
659 |     showPrec d (IForce fc s) = showCon d "Force" $ assert_total $ showArg s
-
660 |     showPrec d (IQuote fc s) = "`(\{show s})"
-
661 |     showPrec d (IQuoteName fc nm) = "`{\{show nm}}"
-
662 |     showPrec d (IQuoteDecl fc xs) = "`[\{joinBy "; " (assert_total $ map show xs)}]"
-
663 |     showPrec d (IUnquote fc s) = "~(\{show s})"
-
664 |     showPrec d (IPrimVal fc c) = show c
-
665 |     showPrec d (IType fc) = "Type"
-
666 |     showPrec d (IHole fc str) = "?" ++ str
-
667 |     showPrec d (Implicit fc b) = ifThenElse b "_" "?"
-
668 |     showPrec d (IWithUnambigNames fc ns s) = case ns of
-
669 |       [] => show s
-
670 |       [(_,x)] => "with \{show x} \{show s}"
-
671 |       _   => "with [\{joinBy ", " $ map (show . snd) ns}] \{show s}"
-
672 |
-
673 | public export
-
674 | data Argument a
-
675 |   = Arg FC a
-
676 |   | NamedArg FC Name a
-
677 |   | AutoArg FC a
-
678 |
-
679 | public export
-
680 | isExplicit : Argument a -> Maybe (FC, a)
-
681 | isExplicit (Arg fc a) = pure (fc, a)
-
682 | isExplicit _ = Nothing
-
683 |
-
684 | public export
-
685 | fromPiInfo : FC -> PiInfo t -> Maybe Name -> a -> Maybe (Argument a)
-
686 | fromPiInfo fc ImplicitArg (Just nm) a = pure (NamedArg fc nm a)
-
687 | fromPiInfo fc ExplicitArg _ a = pure (Arg fc a)
-
688 | fromPiInfo fc AutoImplicit _ a = pure (AutoArg fc a)
-
689 | fromPiInfo fc (DefImplicit _) (Just nm) a = pure (NamedArg fc nm a)
-
690 | fromPiInfo _ _ _ _ = Nothing
-
691 |
-
692 | public export
-
693 | Functor Argument where
-
694 |   map f (Arg fc a) = Arg fc (f a)
-
695 |   map f (NamedArg fc nm a) = NamedArg fc nm (f a)
-
696 |   map f (AutoArg fc a) = AutoArg fc (f a)
-
697 |
-
698 | public export
-
699 | iApp : TTImp -> Argument TTImp -> TTImp
-
700 | iApp f (Arg fc t) = IApp fc f t
-
701 | iApp f (NamedArg fc nm t) = INamedApp fc f nm t
-
702 | iApp f (AutoArg fc t) = IAutoApp fc f t
-
703 |
-
704 | public export
-
705 | unArg : Argument a -> a
-
706 | unArg (Arg _ x) = x
-
707 | unArg (NamedArg _ _ x) = x
-
708 | unArg (AutoArg _ x) = x
-
709 |
-
710 | ||| We often apply multiple arguments, this makes things simpler
-
711 | public export
-
712 | apply : TTImp -> List (Argument TTImp) -> TTImp
-
713 | apply = foldl iApp
-
714 |
-
715 | public export
-
716 | data IsAppView : (FC, Name) -> SnocList (Argument TTImp) -> TTImp -> Type where
-
717 |   AVVar : IsAppView (fc, t) [<] (IVar fc t)
-
718 |   AVApp : IsAppView x ts f -> IsAppView x (ts :< Arg fc t) (IApp fc f t)
-
719 |   AVNamedApp : IsAppView x ts f -> IsAppView x (ts :< NamedArg fc n t) (INamedApp fc f n t)
-
720 |   AVAutoApp : IsAppView x ts f -> IsAppView x (ts :< AutoArg fc t) (IAutoApp fc f a)
-
721 |
-
722 | public export
-
723 | record AppView (t : TTImp) where
-
724 |   constructor MkAppView
-
725 |   head : (FC, Name)
-
726 |   args : SnocList (Argument TTImp)
-
727 |   0 isAppView : IsAppView head args t
-
728 |
-
729 | public export
-
730 | appView : (t : TTImp) -> Maybe (AppView t)
-
731 | appView (IVar fc f) = Just (MkAppView (fc, f) [<] AVVar)
-
732 | appView (IApp fc f t) = do
-
733 |   (MkAppView x ts prf) <- appView f
-
734 |   pure (MkAppView x (ts :< Arg fc t) (AVApp prf))
-
735 | appView (INamedApp fc f n t) = do
-
736 |   (MkAppView x ts prf) <- appView f
-
737 |   pure (MkAppView x (ts :< NamedArg fc n t) (AVNamedApp prf))
-
738 | appView (IAutoApp fc f t) = do
-
739 |   (MkAppView x ts prf) <- appView f
-
740 |   pure (MkAppView x (ts :< AutoArg fc t) (AVAutoApp prf))
-
741 | appView _ = Nothing
-
742 |
-
743 | parameters (f : TTImp -> TTImp)
-
744 |
-
745 |   public export
-
746 |   mapTTImp : TTImp -> TTImp
-
747 |
-
748 |   public export
-
749 |   mapPiInfo : PiInfo TTImp -> PiInfo TTImp
-
750 |   mapPiInfo ImplicitArg = ImplicitArg
-
751 |   mapPiInfo ExplicitArg = ExplicitArg
-
752 |   mapPiInfo AutoImplicit = AutoImplicit
-
753 |   mapPiInfo (DefImplicit t) = DefImplicit (mapTTImp t)
-
754 |
-
755 |   public export
-
756 |   mapClause : Clause -> Clause
-
757 |   mapClause (PatClause fc lhs rhs) = PatClause fc (mapTTImp lhs) (mapTTImp rhs)
-
758 |   mapClause (WithClause fc lhs rig wval prf flags cls)
-
759 |     = WithClause fc (mapTTImp lhs) rig (mapTTImp wval) prf flags (assert_total $ map mapClause cls)
-
760 |   mapClause (ImpossibleClause fc lhs) = ImpossibleClause fc (mapTTImp lhs)
-
761 |
-
762 |   public export
-
763 |   mapITy : ITy -> ITy
-
764 |   mapITy (MkTy fc nameFC n ty) = MkTy fc nameFC n (mapTTImp ty)
-
765 |
-
766 |   public export
-
767 |   mapFnOpt : FnOpt -> FnOpt
-
768 |   mapFnOpt Inline = Inline
-
769 |   mapFnOpt NoInline = NoInline
-
770 |   mapFnOpt Deprecate = Deprecate
-
771 |   mapFnOpt TCInline = TCInline
-
772 |   mapFnOpt (Hint b) = Hint b
-
773 |   mapFnOpt (GlobalHint b) = GlobalHint b
-
774 |   mapFnOpt ExternFn = ExternFn
-
775 |   mapFnOpt (ForeignFn ts) = ForeignFn (map mapTTImp ts)
-
776 |   mapFnOpt (ForeignExport ts) = ForeignExport (map mapTTImp ts)
-
777 |   mapFnOpt Invertible = Invertible
-
778 |   mapFnOpt (Totality treq) = Totality treq
-
779 |   mapFnOpt Macro = Macro
-
780 |   mapFnOpt (SpecArgs ns) = SpecArgs ns
-
781 |
-
782 |   public export
-
783 |   mapData : Data -> Data
-
784 |   mapData (MkData fc n tycon opts datacons)
-
785 |     = MkData fc n (map mapTTImp tycon) opts (map mapITy datacons)
-
786 |   mapData (MkLater fc n tycon) = MkLater fc n (mapTTImp tycon)
-
787 |
-
788 |   public export
-
789 |   mapIField : IField -> IField
-
790 |   mapIField (MkIField fc rig pinfo n t) = MkIField fc rig (mapPiInfo pinfo) n (mapTTImp t)
-
791 |
-
792 |   public export
-
793 |   mapRecord : Record -> Record
-
794 |   mapRecord (MkRecord fc n params opts conName fields)
-
795 |     = MkRecord fc n (map (map $ map $ bimap mapPiInfo mapTTImp) params) opts conName (map mapIField fields)
-
796 |
-
797 |   public export
-
798 |   mapDecl : Decl -> Decl
-
799 |   mapDecl (IClaim fc rig vis opts ty)
-
800 |     = IClaim fc rig vis (map mapFnOpt opts) (mapITy ty)
-
801 |   mapDecl (IData fc vis mtreq dat) = IData fc vis mtreq (mapData dat)
-
802 |   mapDecl (IDef fc n cls) = IDef fc n (map mapClause cls)
-
803 |   mapDecl (IParameters fc params xs) = IParameters fc params (assert_total $ map mapDecl xs)
-
804 |   mapDecl (IRecord fc mstr x y rec) = IRecord fc mstr x y (mapRecord rec)
-
805 |   mapDecl (INamespace fc mi xs) = INamespace fc mi (assert_total $ map mapDecl xs)
-
806 |   mapDecl (ITransform fc n t u) = ITransform fc n (mapTTImp t) (mapTTImp u)
-
807 |   mapDecl (IRunElabDecl fc t) = IRunElabDecl fc (mapTTImp t)
-
808 |   mapDecl (ILog x) = ILog x
-
809 |   mapDecl (IBuiltin fc x n) = IBuiltin fc x n
-
810 |
-
811 |   public export
-
812 |   mapIFieldUpdate : IFieldUpdate -> IFieldUpdate
-
813 |   mapIFieldUpdate (ISetField path t) = ISetField path (mapTTImp t)
-
814 |   mapIFieldUpdate (ISetFieldApp path t) = ISetFieldApp path (mapTTImp t)
-
815 |
-
816 |   public export
-
817 |   mapAltType : AltType -> AltType
-
818 |   mapAltType FirstSuccess = FirstSuccess
-
819 |   mapAltType Unique = Unique
-
820 |   mapAltType (UniqueDefault t) = UniqueDefault (mapTTImp t)
-
821 |
-
822 |   mapTTImp t@(IVar _ _) = f t
-
823 |   mapTTImp (IPi fc rig pinfo x argTy retTy)
-
824 |     = f $ IPi fc rig (mapPiInfo pinfo) x (mapTTImp argTy) (mapTTImp retTy)
-
825 |   mapTTImp (ILam fc rig pinfo x argTy lamTy)
-
826 |     = f $ ILam fc rig (mapPiInfo pinfo) x (mapTTImp argTy) (mapTTImp lamTy)
-
827 |   mapTTImp (ILet fc lhsFC rig n nTy nVal scope)
-
828 |     = f $ ILet fc lhsFC rig n (mapTTImp nTy) (mapTTImp nVal) (mapTTImp scope)
-
829 |   mapTTImp (ICase fc opts t ty cls)
-
830 |     = f $ ICase fc opts (mapTTImp t) (mapTTImp ty) (assert_total $ map mapClause cls)
-
831 |   mapTTImp (ILocal fc xs t)
-
832 |     = f $ ILocal fc (assert_total $ map mapDecl xs) (mapTTImp t)
-
833 |   mapTTImp (IUpdate fc upds t) = f $ IUpdate fc (assert_total map mapIFieldUpdate upds) (mapTTImp t)
-
834 |   mapTTImp (IApp fc t u) = f $ IApp fc (mapTTImp t) (mapTTImp u)
-
835 |   mapTTImp (IAutoApp fc t u) = f $ IAutoApp fc (mapTTImp t) (mapTTImp u)
-
836 |   mapTTImp (INamedApp fc t n u) = f $ INamedApp fc (mapTTImp t) n (mapTTImp u)
-
837 |   mapTTImp (IWithApp fc t u) = f $ IWithApp fc (mapTTImp t) (mapTTImp u)
-
838 |   mapTTImp (ISearch fc depth) = f $ ISearch fc depth
-
839 |   mapTTImp (IAlternative fc alt ts) = f $ IAlternative fc (mapAltType alt) (assert_total map mapTTImp ts)
-
840 |   mapTTImp (IRewrite fc t u) = f $ IRewrite fc (mapTTImp t) (mapTTImp u)
-
841 |   mapTTImp (IBindHere fc bm t) = f $ IBindHere fc bm (mapTTImp t)
-
842 |   mapTTImp (IBindVar fc str) = f $ IBindVar fc str
-
843 |   mapTTImp (IAs fc nameFC side n t) = f $ IAs fc nameFC side n (mapTTImp t)
-
844 |   mapTTImp (IMustUnify fc x t) = f $ IMustUnify fc x (mapTTImp t)
-
845 |   mapTTImp (IDelayed fc lz t) = f $ IDelayed fc lz (mapTTImp t)
-
846 |   mapTTImp (IDelay fc t) = f $ IDelay fc (mapTTImp t)
-
847 |   mapTTImp (IForce fc t) = f $ IForce fc (mapTTImp t)
-
848 |   mapTTImp (IQuote fc t) = f $ IQuote fc (mapTTImp t)
-
849 |   mapTTImp (IQuoteName fc n) = f $ IQuoteName fc n
-
850 |   mapTTImp (IQuoteDecl fc xs) = f $ IQuoteDecl fc (assert_total $ map mapDecl xs)
-
851 |   mapTTImp (IUnquote fc t) = f $ IUnquote fc (mapTTImp t)
-
852 |   mapTTImp (IPrimVal fc c) = f $ IPrimVal fc c
-
853 |   mapTTImp (IType fc) = f $ IType fc
-
854 |   mapTTImp (IHole fc str) = f $ IHole fc str
-
855 |   mapTTImp (Implicit fc bindIfUnsolved) = f $ Implicit fc bindIfUnsolved
-
856 |   mapTTImp (IWithUnambigNames fc xs t) = f $ IWithUnambigNames fc xs (mapTTImp t)
-
857 |
-
858 | parameters {0 m : Type -> Type} {auto apl : Applicative m} (f : m TTImp -> m TTImp)
-
859 |
-
860 |   public export
-
861 |   mapATTImp : TTImp -> m TTImp
-
862 |
-
863 |   public export
-
864 |   mapMPiInfo : PiInfo TTImp -> m (PiInfo TTImp)
-
865 |   mapMPiInfo ImplicitArg = pure ImplicitArg
-
866 |   mapMPiInfo ExplicitArg = pure ExplicitArg
-
867 |   mapMPiInfo AutoImplicit = pure AutoImplicit
-
868 |   mapMPiInfo (DefImplicit t) = DefImplicit <$> mapATTImp t
-
869 |
-
870 |   public export
-
871 |   mapMClause : Clause -> m Clause
-
872 |   mapMClause (PatClause fc lhs rhs) = PatClause fc <$> mapATTImp lhs <*> mapATTImp rhs
-
873 |   mapMClause (WithClause fc lhs rig wval prf flags cls)
-
874 |     = WithClause fc
-
875 |     <$> mapATTImp lhs
-
876 |     <*> pure rig
-
877 |     <*> mapATTImp wval
-
878 |     <*> pure prf
-
879 |     <*> pure flags
-
880 |     <*> assert_total (traverse mapMClause cls)
-
881 |   mapMClause (ImpossibleClause fc lhs) = ImpossibleClause fc <$> mapATTImp lhs
-
882 |
-
883 |   public export
-
884 |   mapMITy : ITy -> m ITy
-
885 |   mapMITy (MkTy fc nameFC n ty) = MkTy fc nameFC n <$> mapATTImp ty
-
886 |
-
887 |   public export
-
888 |   mapMFnOpt : FnOpt -> m FnOpt
-
889 |   mapMFnOpt Inline = pure Inline
-
890 |   mapMFnOpt NoInline = pure NoInline
-
891 |   mapMFnOpt Deprecate = pure Deprecate
-
892 |   mapMFnOpt TCInline = pure TCInline
-
893 |   mapMFnOpt (Hint b) = pure (Hint b)
-
894 |   mapMFnOpt (GlobalHint b) = pure (GlobalHint b)
-
895 |   mapMFnOpt ExternFn = pure ExternFn
-
896 |   mapMFnOpt (ForeignFn ts) = ForeignFn <$> traverse mapATTImp ts
-
897 |   mapMFnOpt (ForeignExport ts) = ForeignExport <$> traverse mapATTImp ts
-
898 |   mapMFnOpt Invertible = pure Invertible
-
899 |   mapMFnOpt (Totality treq) = pure (Totality treq)
-
900 |   mapMFnOpt Macro = pure Macro
-
901 |   mapMFnOpt (SpecArgs ns) = pure (SpecArgs ns)
-
902 |
-
903 |   public export
-
904 |   mapMData : Data -> m Data
-
905 |   mapMData (MkData fc n tycon opts datacons)
-
906 |     = MkData fc n <$> traverse mapATTImp tycon <*> pure opts <*> traverse mapMITy datacons
-
907 |   mapMData (MkLater fc n tycon) = MkLater fc n <$> mapATTImp tycon
-
908 |
-
909 |   public export
-
910 |   mapMIField : IField -> m IField
-
911 |   mapMIField (MkIField fc rig pinfo n t)
-
912 |    = MkIField fc rig <$> mapMPiInfo pinfo <*> pure n <*> mapATTImp t
-
913 |
-
914 |   public export
-
915 |   mapMRecord : Record -> m Record
-
916 |   mapMRecord (MkRecord fc n params opts conName fields)
-
917 |     = MkRecord fc n
-
918 |     <$> traverse (bitraverse pure $ bitraverse pure $ bitraverse mapMPiInfo mapATTImp) params
-
919 |     <*> pure opts
-
920 |     <*> pure conName
-
921 |     <*> traverse mapMIField fields
-
922 |
-
923 |   public export
-
924 |   mapMDecl : Decl -> m Decl
-
925 |   mapMDecl (IClaim fc rig vis opts ty)
-
926 |     = IClaim fc rig vis <$> traverse mapMFnOpt opts <*> mapMITy ty
-
927 |   mapMDecl (IData fc vis mtreq dat) = IData fc vis mtreq <$> mapMData dat
-
928 |   mapMDecl (IDef fc n cls) = IDef fc n <$> traverse mapMClause cls
-
929 |   mapMDecl (IParameters fc params xs) = IParameters fc params <$> assert_total (traverse mapMDecl xs)
-
930 |   mapMDecl (IRecord fc mstr x y rec) = IRecord fc mstr x y <$> mapMRecord rec
-
931 |   mapMDecl (INamespace fc mi xs) = INamespace fc mi <$> assert_total (traverse mapMDecl xs)
-
932 |   mapMDecl (ITransform fc n t u) = ITransform fc n <$> mapATTImp t <*> mapATTImp u
-
933 |   mapMDecl (IRunElabDecl fc t) = IRunElabDecl fc <$> mapATTImp t
-
934 |   mapMDecl (ILog x) = pure (ILog x)
-
935 |   mapMDecl (IBuiltin fc x n) = pure (IBuiltin fc x n)
-
936 |
-
937 |   public export
-
938 |   mapMIFieldUpdate : IFieldUpdate -> m IFieldUpdate
-
939 |   mapMIFieldUpdate (ISetField path t) = ISetField path <$> mapATTImp t
-
940 |   mapMIFieldUpdate (ISetFieldApp path t) = ISetFieldApp path <$> mapATTImp t
-
941 |
-
942 |   public export
-
943 |   mapMAltType : AltType -> m AltType
-
944 |   mapMAltType FirstSuccess = pure FirstSuccess
-
945 |   mapMAltType Unique = pure Unique
-
946 |   mapMAltType (UniqueDefault t) = UniqueDefault <$> mapATTImp t
-
947 |
-
948 |   mapATTImp t@(IVar _ _) = f $ pure t
-
949 |   mapATTImp (IPi fc rig pinfo x argTy retTy)
-
950 |     = f $ IPi fc rig <$> mapMPiInfo pinfo <*> pure x <*> mapATTImp argTy <*> mapATTImp retTy
-
951 |   mapATTImp (ILam fc rig pinfo x argTy lamTy)
-
952 |     = f $ ILam fc rig <$> mapMPiInfo pinfo <*> pure x <*> mapATTImp argTy <*> mapATTImp lamTy
-
953 |   mapATTImp (ILet fc lhsFC rig n nTy nVal scope)
-
954 |     = f $ ILet fc lhsFC rig n <$> mapATTImp nTy <*> mapATTImp nVal <*> mapATTImp scope
-
955 |   mapATTImp (ICase fc opts t ty cls)
-
956 |     = f $ ICase fc opts <$> mapATTImp t <*> mapATTImp ty <*> assert_total (traverse mapMClause cls)
-
957 |   mapATTImp (ILocal fc xs t)
-
958 |     = f $ ILocal fc <$> assert_total (traverse mapMDecl xs) <*> mapATTImp t
-
959 |   mapATTImp (IUpdate fc upds t)
-
960 |     = f $ IUpdate fc <$> assert_total (traverse mapMIFieldUpdate upds) <*> mapATTImp t
-
961 |   mapATTImp (IApp fc t u)
-
962 |     = f $ IApp fc <$> mapATTImp t <*> mapATTImp u
-
963 |   mapATTImp (IAutoApp fc t u)
-
964 |     = f $ IAutoApp fc <$> mapATTImp t <*> mapATTImp u
-
965 |   mapATTImp (INamedApp fc t n u)
-
966 |     = f $ INamedApp fc <$> mapATTImp t <*> pure n <*> mapATTImp u
-
967 |   mapATTImp (IWithApp fc t u) = f $ IWithApp fc <$> mapATTImp t <*> mapATTImp u
-
968 |   mapATTImp (ISearch fc depth) = f $ pure $ ISearch fc depth
-
969 |   mapATTImp (IAlternative fc alt ts)
-
970 |     = f $ IAlternative fc <$> mapMAltType alt <*> assert_total (traverse mapATTImp ts)
-
971 |   mapATTImp (IRewrite fc t u) = f $ IRewrite fc <$> mapATTImp t <*> mapATTImp u
-
972 |   mapATTImp (IBindHere fc bm t) = f $ IBindHere fc bm <$> mapATTImp t
-
973 |   mapATTImp (IBindVar fc str) = f $ pure $ IBindVar fc str
-
974 |   mapATTImp (IAs fc nameFC side n t) = f $ IAs fc nameFC side n <$> mapATTImp t
-
975 |   mapATTImp (IMustUnify fc x t) = f $ IMustUnify fc x <$> mapATTImp t
-
976 |   mapATTImp (IDelayed fc lz t) = f $ IDelayed fc lz <$> mapATTImp t
-
977 |   mapATTImp (IDelay fc t) = f $ IDelay fc <$> mapATTImp t
-
978 |   mapATTImp (IForce fc t) = f $ IForce fc <$> mapATTImp t
-
979 |   mapATTImp (IQuote fc t) = f $ IQuote fc <$> mapATTImp t
-
980 |   mapATTImp (IQuoteName fc n) = f $ pure $ IQuoteName fc n
-
981 |   mapATTImp (IQuoteDecl fc xs) = f $ IQuoteDecl fc <$> assert_total (traverse mapMDecl xs)
-
982 |   mapATTImp (IUnquote fc t) = f $ IUnquote fc <$> mapATTImp t
-
983 |   mapATTImp (IPrimVal fc c) = f $ pure $ IPrimVal fc c
-
984 |   mapATTImp (IType fc) = f $ pure $ IType fc
-
985 |   mapATTImp (IHole fc str) = f $ pure $ IHole fc str
-
986 |   mapATTImp (Implicit fc bindIfUnsolved) = f $ pure $ Implicit fc bindIfUnsolved
-
987 |   mapATTImp (IWithUnambigNames fc xs t) = f $ IWithUnambigNames fc xs <$> mapATTImp t
-
988 |
-
989 | public export
-
990 | mapMTTImp : Monad m => (TTImp -> m TTImp) -> TTImp -> m TTImp
-
991 | mapMTTImp = mapATTImp . (=<<)
-
992 |
+
   0 | module Language.Reflection.TTImp
+
   1 |
+
   2 | import Data.Maybe
+
   3 | import Data.String
+
   4 | import public Language.Reflection.TT
+
   5 |
+
   6 |
+
   7 | %default total
+
   8 |
+
   9 | -- Unchecked terms and declarations in the intermediate language
+
  10 | mutual
+
  11 |   public export
+
  12 |   data BindMode = PI Count | PATTERN | COVERAGE | NONE
+
  13 |   %name BindMode bm
+
  14 |
+
  15 |   -- For as patterns matching linear arguments, select which side is
+
  16 |   -- consumed
+
  17 |   public export
+
  18 |   data UseSide = UseLeft | UseRight
+
  19 |   %name UseSide side
+
  20 |
+
  21 |   public export
+
  22 |   data DotReason = NonLinearVar
+
  23 |                  | VarApplied
+
  24 |                  | NotConstructor
+
  25 |                  | ErasedArg
+
  26 |                  | UserDotted
+
  27 |                  | UnknownDot
+
  28 |                  | UnderAppliedCon
+
  29 |   %name DotReason dr
+
  30 |
+
  31 |   public export
+
  32 |   data TTImp : Type where
+
  33 |        IVar : FC -> Name -> TTImp
+
  34 |        IPi : FC -> Count -> PiInfo TTImp -> Maybe Name ->
+
  35 |              (argTy : TTImp) -> (retTy : TTImp) -> TTImp
+
  36 |        ILam : FC -> Count -> PiInfo TTImp -> Maybe Name ->
+
  37 |               (argTy : TTImp) -> (lamTy : TTImp) -> TTImp
+
  38 |        ILet : FC -> (lhsFC : FC) -> Count -> Name ->
+
  39 |               (nTy : TTImp) -> (nVal : TTImp) ->
+
  40 |               (scope : TTImp) -> TTImp
+
  41 |        ICase : FC -> List FnOpt -> TTImp -> (ty : TTImp) ->
+
  42 |                List Clause -> TTImp
+
  43 |        ILocal : FC -> List Decl -> TTImp -> TTImp
+
  44 |        IUpdate : FC -> List IFieldUpdate -> TTImp -> TTImp
+
  45 |
+
  46 |        IApp : FC -> TTImp -> TTImp -> TTImp
+
  47 |        INamedApp : FC -> TTImp -> Name -> TTImp -> TTImp
+
  48 |        IAutoApp : FC -> TTImp -> TTImp -> TTImp
+
  49 |        IWithApp : FC -> TTImp -> TTImp -> TTImp
+
  50 |
+
  51 |        ISearch : FC -> (depth : Nat) -> TTImp
+
  52 |        IAlternative : FC -> AltType -> List TTImp -> TTImp
+
  53 |        IRewrite : FC -> TTImp -> TTImp -> TTImp
+
  54 |
+
  55 |        -- Any implicit bindings in the scope should be bound here, using
+
  56 |        -- the given binder
+
  57 |        IBindHere : FC -> BindMode -> TTImp -> TTImp
+
  58 |        -- A name which should be implicitly bound
+
  59 |        IBindVar : FC -> String -> TTImp
+
  60 |        -- An 'as' pattern, valid on the LHS of a clause only
+
  61 |        IAs : FC -> (nameFC : FC) -> UseSide -> Name -> TTImp -> TTImp
+
  62 |        -- A 'dot' pattern, i.e. one which must also have the given value
+
  63 |        -- by unification
+
  64 |        IMustUnify : FC -> DotReason -> TTImp -> TTImp
+
  65 |
+
  66 |        -- Laziness annotations
+
  67 |        IDelayed : FC -> LazyReason -> TTImp -> TTImp -- the type
+
  68 |        IDelay : FC -> TTImp -> TTImp -- delay constructor
+
  69 |        IForce : FC -> TTImp -> TTImp
+
  70 |
+
  71 |        -- Quasiquotation
+
  72 |        IQuote : FC -> TTImp -> TTImp
+
  73 |        IQuoteName : FC -> Name -> TTImp
+
  74 |        IQuoteDecl : FC -> List Decl -> TTImp
+
  75 |        IUnquote : FC -> TTImp -> TTImp
+
  76 |
+
  77 |        IPrimVal : FC -> (c : Constant) -> TTImp
+
  78 |        IType : FC -> TTImp
+
  79 |        IHole : FC -> String -> TTImp
+
  80 |
+
  81 |        -- An implicit value, solved by unification, but which will also be
+
  82 |        -- bound (either as a pattern variable or a type variable) if unsolved
+
  83 |        -- at the end of elaborator
+
  84 |        Implicit : FC -> (bindIfUnsolved : Bool) -> TTImp
+
  85 |        IWithUnambigNames : FC -> List (FC, Name) -> TTImp -> TTImp
+
  86 |   %name TTImp s, t, u
+
  87 |
+
  88 |   public export
+
  89 |   data IFieldUpdate : Type where
+
  90 |        ISetField : (path : List String) -> TTImp -> IFieldUpdate
+
  91 |        ISetFieldApp : (path : List String) -> TTImp -> IFieldUpdate
+
  92 |
+
  93 |   %name IFieldUpdate upd
+
  94 |
+
  95 |   public export
+
  96 |   data AltType : Type where
+
  97 |        FirstSuccess : AltType
+
  98 |        Unique : AltType
+
  99 |        UniqueDefault : TTImp -> AltType
+
 100 |
+
 101 |   public export
+
 102 |   data FnOpt : Type where
+
 103 |        Inline : FnOpt
+
 104 |        NoInline : FnOpt
+
 105 |        Deprecate : FnOpt
+
 106 |        TCInline : FnOpt
+
 107 |        -- Flag means the hint is a direct hint, not a function which might
+
 108 |        -- find the result (e.g. chasing parent interface dictionaries)
+
 109 |        Hint : Bool -> FnOpt
+
 110 |        -- Flag means to use as a default if all else fails
+
 111 |        GlobalHint : Bool -> FnOpt
+
 112 |        ExternFn : FnOpt
+
 113 |        -- Defined externally, list calling conventions
+
 114 |        ForeignFn : List TTImp -> FnOpt
+
 115 |        -- Mark for export to a foreign language, list calling conventions
+
 116 |        ForeignExport : List TTImp -> FnOpt
+
 117 |        -- assume safe to cancel arguments in unification
+
 118 |        Invertible : FnOpt
+
 119 |        Totality : TotalReq -> FnOpt
+
 120 |        Macro : FnOpt
+
 121 |        SpecArgs : List Name -> FnOpt
+
 122 |
+
 123 |   public export
+
 124 |   data ITy : Type where
+
 125 |        MkTy : FC -> (nameFC : FC) -> (n : Name) -> (ty : TTImp) -> ITy
+
 126 |
+
 127 |   %name ITy sig
+
 128 |
+
 129 |   public export
+
 130 |   data DataOpt : Type where
+
 131 |        SearchBy : List Name -> DataOpt -- determining arguments
+
 132 |        NoHints : DataOpt -- Don't generate search hints for constructors
+
 133 |        UniqueSearch : DataOpt -- auto implicit search must check result is unique
+
 134 |        External : DataOpt -- implemented externally
+
 135 |        NoNewtype : DataOpt -- don't apply newtype optimisation
+
 136 |
+
 137 |   %name DataOpt dopt
+
 138 |
+
 139 |   public export
+
 140 |   data Data : Type where
+
 141 |        MkData : FC -> (n : Name) -> (tycon : Maybe TTImp) ->
+
 142 |                 (opts : List DataOpt) ->
+
 143 |                 (datacons : List ITy) -> Data
+
 144 |        MkLater : FC -> (n : Name) -> (tycon : TTImp) -> Data
+
 145 |
+
 146 |   %name Data dt
+
 147 |
+
 148 |   public export
+
 149 |   data IField : Type where
+
 150 |        MkIField : FC -> Count -> PiInfo TTImp -> Name -> TTImp ->
+
 151 |                   IField
+
 152 |
+
 153 |   %name IField fld
+
 154 |
+
 155 |   public export
+
 156 |   data Record : Type where
+
 157 |        MkRecord : FC -> (n : Name) ->
+
 158 |                   (params : List (Name, Count, PiInfo TTImp, TTImp)) ->
+
 159 |                   (opts : List DataOpt) ->
+
 160 |                   (conName : Name) ->
+
 161 |                   (fields : List IField) ->
+
 162 |                   Record
+
 163 |   %name Record rec
+
 164 |
+
 165 |   public export
+
 166 |   data WithFlag = Syntactic
+
 167 |
+
 168 |   public export
+
 169 |   data Clause : Type where
+
 170 |        PatClause : FC -> (lhs : TTImp) -> (rhs : TTImp) -> Clause
+
 171 |        WithClause : FC -> (lhs : TTImp) ->
+
 172 |                     (rig : Count) -> (wval : TTImp) -> -- with'd expression (& quantity)
+
 173 |                     (prf : Maybe Name) -> -- optional name for the proof
+
 174 |                     (flags : List WithFlag) ->
+
 175 |                     List Clause -> Clause
+
 176 |        ImpossibleClause : FC -> (lhs : TTImp) -> Clause
+
 177 |
+
 178 |   %name Clause cl
+
 179 |
+
 180 |   public export
+
 181 |   data WithDefault : (a : Type) -> (def : a) -> Type where
+
 182 |        DefaultedValue : WithDefault a def
+
 183 |        SpecifiedValue : a -> WithDefault a def
+
 184 |
+
 185 |   export
+
 186 |   specified : a -> WithDefault a def
+
 187 |   specified = SpecifiedValue
+
 188 |
+
 189 |   export
+
 190 |   defaulted : WithDefault a def
+
 191 |   defaulted = DefaultedValue
+
 192 |
+
 193 |   export
+
 194 |   collapseDefault : {def : a} -> WithDefault a def -> a
+
 195 |   collapseDefault DefaultedValue     = def
+
 196 |   collapseDefault (SpecifiedValue a) = a
+
 197 |
+
 198 |   export
+
 199 |   onWithDefault : (defHandler : Lazy b) -> (valHandler : a -> b) ->
+
 200 |                   WithDefault a def -> b
+
 201 |   onWithDefault defHandler _ DefaultedValue     = defHandler
+
 202 |   onWithDefault _ valHandler (SpecifiedValue v) = valHandler v
+
 203 |
+
 204 |   public export
+
 205 |   data Decl : Type where
+
 206 |        IClaim : FC -> Count -> Visibility -> List FnOpt ->
+
 207 |                 ITy -> Decl
+
 208 |        IData : FC -> WithDefault Visibility Private -> Maybe TotalReq -> Data -> Decl
+
 209 |        IDef : FC -> Name -> (cls : List Clause) -> Decl
+
 210 |        IParameters : FC -> (params : List (Name, Count, PiInfo TTImp, TTImp)) ->
+
 211 |                      (decls : List Decl) -> Decl
+
 212 |        IRecord : FC ->
+
 213 |                  Maybe String -> -- nested namespace
+
 214 |                  WithDefault Visibility Private ->
+
 215 |                  Maybe TotalReq -> Record -> Decl
+
 216 |        INamespace : FC -> Namespace -> (decls : List Decl) -> Decl
+
 217 |        ITransform : FC -> Name -> TTImp -> TTImp -> Decl
+
 218 |        IRunElabDecl : FC -> TTImp -> Decl
+
 219 |        ILog : Maybe (List String, Nat) -> Decl
+
 220 |        IBuiltin : FC -> BuiltinType -> Name -> Decl
+
 221 |
+
 222 |   %name Decl decl
+
 223 |
+
 224 | public export
+
 225 | getFC : TTImp -> FC
+
 226 | getFC (IVar fc _)                = fc
+
 227 | getFC (IPi fc _ _ _ _ _)         = fc
+
 228 | getFC (ILam fc _ _ _ _ _)        = fc
+
 229 | getFC (ILet fc _ _ _ _ _ _)      = fc
+
 230 | getFC (ICase fc _ _ _ _)         = fc
+
 231 | getFC (ILocal fc _ _)            = fc
+
 232 | getFC (IUpdate fc _ _)           = fc
+
 233 | getFC (IApp fc _ _)              = fc
+
 234 | getFC (INamedApp fc _ _ _)       = fc
+
 235 | getFC (IAutoApp fc _ _)          = fc
+
 236 | getFC (IWithApp fc _ _)          = fc
+
 237 | getFC (ISearch fc _)             = fc
+
 238 | getFC (IAlternative fc _ _)      = fc
+
 239 | getFC (IRewrite fc _ _)          = fc
+
 240 | getFC (IBindHere fc _ _)         = fc
+
 241 | getFC (IBindVar fc _)            = fc
+
 242 | getFC (IAs fc _ _ _ _)           = fc
+
 243 | getFC (IMustUnify fc _ _)        = fc
+
 244 | getFC (IDelayed fc _ _)          = fc
+
 245 | getFC (IDelay fc _)              = fc
+
 246 | getFC (IForce fc _)              = fc
+
 247 | getFC (IQuote fc _)              = fc
+
 248 | getFC (IQuoteName fc _)          = fc
+
 249 | getFC (IQuoteDecl fc _)          = fc
+
 250 | getFC (IUnquote fc _)            = fc
+
 251 | getFC (IPrimVal fc _)            = fc
+
 252 | getFC (IType fc)                 = fc
+
 253 | getFC (IHole fc _)               = fc
+
 254 | getFC (Implicit fc _)            = fc
+
 255 | getFC (IWithUnambigNames fc _ _) = fc
+
 256 |
+
 257 | public export
+
 258 | mapTopmostFC : (FC -> FC) -> TTImp -> TTImp
+
 259 | mapTopmostFC fcf $ IVar fc a                = IVar (fcf fc) a
+
 260 | mapTopmostFC fcf $ IPi fc a b c d e         = IPi (fcf fc) a b c d e
+
 261 | mapTopmostFC fcf $ ILam fc a b c d e        = ILam (fcf fc) a b c d e
+
 262 | mapTopmostFC fcf $ ILet fc a b c d e f      = ILet (fcf fc) a b c d e f
+
 263 | mapTopmostFC fcf $ ICase fc opts a b c      = ICase (fcf fc) opts a b c
+
 264 | mapTopmostFC fcf $ ILocal fc a b            = ILocal (fcf fc) a b
+
 265 | mapTopmostFC fcf $ IUpdate fc a b           = IUpdate (fcf fc) a b
+
 266 | mapTopmostFC fcf $ IApp fc a b              = IApp (fcf fc) a b
+
 267 | mapTopmostFC fcf $ INamedApp fc a b c       = INamedApp (fcf fc) a b c
+
 268 | mapTopmostFC fcf $ IAutoApp fc a b          = IAutoApp (fcf fc) a b
+
 269 | mapTopmostFC fcf $ IWithApp fc a b          = IWithApp (fcf fc) a b
+
 270 | mapTopmostFC fcf $ ISearch fc a             = ISearch (fcf fc) a
+
 271 | mapTopmostFC fcf $ IAlternative fc a b      = IAlternative (fcf fc) a b
+
 272 | mapTopmostFC fcf $ IRewrite fc a b          = IRewrite (fcf fc) a b
+
 273 | mapTopmostFC fcf $ IBindHere fc a b         = IBindHere (fcf fc) a b
+
 274 | mapTopmostFC fcf $ IBindVar fc a            = IBindVar (fcf fc) a
+
 275 | mapTopmostFC fcf $ IAs fc a b c d           = IAs (fcf fc) a b c d
+
 276 | mapTopmostFC fcf $ IMustUnify fc a b        = IMustUnify (fcf fc) a b
+
 277 | mapTopmostFC fcf $ IDelayed fc a b          = IDelayed (fcf fc) a b
+
 278 | mapTopmostFC fcf $ IDelay fc a              = IDelay (fcf fc) a
+
 279 | mapTopmostFC fcf $ IForce fc a              = IForce (fcf fc) a
+
 280 | mapTopmostFC fcf $ IQuote fc a              = IQuote (fcf fc) a
+
 281 | mapTopmostFC fcf $ IQuoteName fc a          = IQuoteName (fcf fc) a
+
 282 | mapTopmostFC fcf $ IQuoteDecl fc a          = IQuoteDecl (fcf fc) a
+
 283 | mapTopmostFC fcf $ IUnquote fc a            = IUnquote (fcf fc) a
+
 284 | mapTopmostFC fcf $ IPrimVal fc a            = IPrimVal (fcf fc) a
+
 285 | mapTopmostFC fcf $ IType fc                 = IType (fcf fc)
+
 286 | mapTopmostFC fcf $ IHole fc a               = IHole (fcf fc) a
+
 287 | mapTopmostFC fcf $ Implicit fc a            = Implicit (fcf fc) a
+
 288 | mapTopmostFC fcf $ IWithUnambigNames fc a b = IWithUnambigNames (fcf fc) a b
+
 289 |
+
 290 | public export
+
 291 | Eq BindMode where
+
 292 |   PI c    == PI c'   = c == c'
+
 293 |   PATTERN == PATTERN = True
+
 294 |   NONE    == NONE    = True
+
 295 |   _ == _ = False
+
 296 |
+
 297 | public export
+
 298 | Eq UseSide where
+
 299 |   UseLeft  == UseLeft  = True
+
 300 |   UseRight == UseRight = True
+
 301 |   _ == _ = False
+
 302 |
+
 303 | public export
+
 304 | Eq DotReason where
+
 305 |   NonLinearVar    == NonLinearVar    = True
+
 306 |   VarApplied      == VarApplied      = True
+
 307 |   NotConstructor  == NotConstructor  = True
+
 308 |   ErasedArg       == ErasedArg       = True
+
 309 |   UserDotted      == UserDotted      = True
+
 310 |   UnknownDot      == UnknownDot      = True
+
 311 |   UnderAppliedCon == UnderAppliedCon = True
+
 312 |   _ == _ = False
+
 313 |
+
 314 | public export
+
 315 | Eq WithFlag where
+
 316 |   Syntactic == Syntactic = True
+
 317 |
+
 318 | public export
+
 319 | Eq DataOpt where
+
 320 |   SearchBy ns == SearchBy ns' = ns == ns'
+
 321 |   NoHints == NoHints = True
+
 322 |   UniqueSearch == UniqueSearch = True
+
 323 |   External == External = True
+
 324 |   NoNewtype == NoNewtype = True
+
 325 |   _ == _ = False
+
 326 |
+
 327 | public export
+
 328 | Eq a => Eq (WithDefault a def) where
+
 329 |   DefaultedValue   == DefaultedValue   = True
+
 330 |   DefaultedValue   == SpecifiedValue _ = False
+
 331 |   SpecifiedValue _ == DefaultedValue   = False
+
 332 |   SpecifiedValue x == SpecifiedValue y = x == y
+
 333 |
+
 334 | public export
+
 335 | Ord a => Ord (WithDefault a def) where
+
 336 |   compare DefaultedValue   DefaultedValue       = EQ
+
 337 |   compare DefaultedValue   (SpecifiedValue _)   = LT
+
 338 |   compare (SpecifiedValue _) DefaultedValue     = GT
+
 339 |   compare (SpecifiedValue x) (SpecifiedValue y) = compare x y
+
 340 |
+
 341 | public export
+
 342 | {def : a} -> (Show a) => Show (WithDefault a def) where
+
 343 |   show (SpecifiedValue x) = show x
+
 344 |   show DefaultedValue     = show def
+
 345 |
+
 346 | public export
+
 347 | Eq a => Eq (PiInfo a) where
+
 348 |   ImplicitArg   == ImplicitArg = True
+
 349 |   ExplicitArg   == ExplicitArg = True
+
 350 |   AutoImplicit  == AutoImplicit = True
+
 351 |   DefImplicit t == DefImplicit t' = t == t'
+
 352 |   _ == _ = False
+
 353 |
+
 354 | parameters {auto eqTTImp : Eq TTImp}
+
 355 |   public export
+
 356 |   Eq Clause where
+
 357 |     PatClause _ lhs rhs == PatClause _ lhs' rhs' =
+
 358 |       lhs == lhs' && rhs == rhs'
+
 359 |     WithClause _ l r w p f cs == WithClause _ l' r' w' p' f' cs' =
+
 360 |       l == l' && r == r' && w == w' && p == p' && f == f' && (assert_total $ cs == cs')
+
 361 |     ImpossibleClause _ l == ImpossibleClause _ l' = l == l'
+
 362 |     _ == _ = False
+
 363 |
+
 364 |   public export
+
 365 |   Eq IFieldUpdate where
+
 366 |     ISetField p t == ISetField p' t' =
+
 367 |       p == p' && t == t'
+
 368 |     ISetFieldApp p t == ISetFieldApp p' t' =
+
 369 |       p == p' && t == t'
+
 370 |     _ == _ = False
+
 371 |
+
 372 |   public export
+
 373 |   Eq AltType where
+
 374 |     FirstSuccess    == FirstSuccess     = True
+
 375 |     Unique          == Unique           = True
+
 376 |     UniqueDefault t == UniqueDefault t' = t == t'
+
 377 |     _ == _ = False
+
 378 |
+
 379 |   public export
+
 380 |   Eq FnOpt where
+
 381 |     Inline == Inline = True
+
 382 |     NoInline == NoInline = True
+
 383 |     Deprecate == Deprecate = True
+
 384 |     TCInline == TCInline = True
+
 385 |     Hint b == Hint b' = b == b'
+
 386 |     GlobalHint b == GlobalHint b' = b == b'
+
 387 |     ExternFn == ExternFn = True
+
 388 |     ForeignFn es == ForeignFn es' = es == es'
+
 389 |     ForeignExport es == ForeignExport es' = es == es'
+
 390 |     Invertible == Invertible = True
+
 391 |     Totality tr == Totality tr' = tr == tr'
+
 392 |     Macro == Macro = True
+
 393 |     SpecArgs ns == SpecArgs ns' = ns == ns'
+
 394 |     _ == _ = False
+
 395 |
+
 396 |   public export
+
 397 |   Eq ITy where
+
 398 |     MkTy _ _ n ty == MkTy _ _ n' ty' = n == n' && ty == ty'
+
 399 |
+
 400 |   public export
+
 401 |   Eq Data where
+
 402 |     MkData _ n tc os dc == MkData _ n' tc' os' dc' =
+
 403 |       n == n' && tc == tc' && os == os' && dc == dc'
+
 404 |     MkLater _ n tc == MkLater _ n' tc' =
+
 405 |       n == n' && tc == tc'
+
 406 |     _ == _ = False
+
 407 |
+
 408 |   public export
+
 409 |   Eq IField where
+
 410 |     MkIField _ c pi n e == MkIField _ c' pi' n' e' =
+
 411 |       c == c' && pi == pi' && n == n' && e == e'
+
 412 |
+
 413 |   public export
+
 414 |   Eq Record where
+
 415 |     MkRecord _ n ps opts cn fs == MkRecord _ n' ps' opts' cn' fs' =
+
 416 |       n == n' && ps == ps' && opts == opts' && cn == cn' && fs == fs'
+
 417 |
+
 418 |   public export
+
 419 |   Eq Decl where
+
 420 |     IClaim _ c v fos t == IClaim _ c' v' fos' t' =
+
 421 |       c == c' && v == v' && fos == fos' && t == t'
+
 422 |     IData _ v t d == IData _ v' t' d' =
+
 423 |       v == v' && t == t' && d == d'
+
 424 |     IDef _ n cs == IDef _ n' cs' =
+
 425 |       n == n' && cs == cs'
+
 426 |     IParameters _ ps ds == IParameters _ ps' ds' =
+
 427 |       ps == ps' && (assert_total $ ds == ds')
+
 428 |     IRecord _ ns v tr r == IRecord _ ns' v' tr' r' =
+
 429 |       ns == ns' && v == v' && tr == tr' && r == r'
+
 430 |     INamespace _ ns ds == INamespace _ ns' ds' =
+
 431 |       ns == ns' && (assert_total $ ds == ds')
+
 432 |     ITransform _ n f t == ITransform _ n' f' t' =
+
 433 |       n == n' && f == f' && t == t'
+
 434 |     IRunElabDecl _ e == IRunElabDecl _ e' = e == e'
+
 435 |     ILog p == ILog p' = p == p'
+
 436 |     IBuiltin _ t n == IBuiltin _ t' n' =
+
 437 |       t == t' && n == n'
+
 438 |     _ == _ = False
+
 439 |
+
 440 | public export
+
 441 | Eq TTImp where
+
 442 |   IVar _ v == IVar _ v' = v == v'
+
 443 |   IPi _ c i n a r == IPi _ c' i' n' a' r' =
+
 444 |     c == c' && (assert_total $ i == i') && n == n' && a == a' && r == r'
+
 445 |   ILam _ c i n a r == ILam _ c' i' n' a' r' =
+
 446 |     c == c' && (assert_total $ i == i') && n == n' && a == a' && r == r'
+
 447 |   ILet _ _ c n ty val s == ILet _ _ c' n' ty' val' s' =
+
 448 |     c == c' && n == n' && ty == ty' && val == val' && s == s'
+
 449 |   ICase _ _ t ty cs == ICase _ _ t' ty' cs'
+
 450 |     = t == t' && ty == ty' && (assert_total $ cs == cs')
+
 451 |   ILocal _ ds e == ILocal _ ds' e' =
+
 452 |     (assert_total $ ds == ds') && e == e'
+
 453 |   IUpdate _ fs t == IUpdate _ fs' t' =
+
 454 |     (assert_total $ fs == fs') && t == t'
+
 455 |
+
 456 |   IApp _ f x == IApp _ f' x' = f == f' && x == x'
+
 457 |   INamedApp _ f n x == INamedApp _ f' n' x' =
+
 458 |     f == f' && n == n' && x == x'
+
 459 |   IAutoApp _ f x == IAutoApp _ f' x' = f == f' && x == x'
+
 460 |   IWithApp _ f x == IWithApp _ f' x' = f == f' && x == x'
+
 461 |
+
 462 |   ISearch _ n == ISearch _ n' = n == n'
+
 463 |   IAlternative _ t as == IAlternative _ t' as' =
+
 464 |     (assert_total $ t == t') && (assert_total $ as == as')
+
 465 |   IRewrite _ p q == IRewrite _ p' q' =
+
 466 |     p == p' && q == q'
+
 467 |
+
 468 |   IBindHere _ m t == IBindHere _ m' t' =
+
 469 |     m == m' && t == t'
+
 470 |   IBindVar _ s == IBindVar _ s' = s == s'
+
 471 |   IAs _ _ u n t == IAs _ _ u' n' t' =
+
 472 |     u == u' && n == n' && t == t'
+
 473 |   IMustUnify _ r t == IMustUnify _ r' t' =
+
 474 |     r == r' && t == t'
+
 475 |
+
 476 |   IDelayed _ r t == IDelayed _ r' t' = r == r' && t == t'
+
 477 |   IDelay _ t == IDelay _ t' = t == t'
+
 478 |   IForce _ t == IForce _ t' = t == t'
+
 479 |
+
 480 |   IQuote _ tm == IQuote _ tm' = tm == tm'
+
 481 |   IQuoteName _ n == IQuoteName _ n' = n == n'
+
 482 |   IQuoteDecl _ ds == IQuoteDecl _ ds' = assert_total $ ds == ds'
+
 483 |   IUnquote _ tm == IUnquote _ tm' = tm == tm'
+
 484 |
+
 485 |   IPrimVal _ c == IPrimVal _ c' = c == c'
+
 486 |   IType _ == IType _ = True
+
 487 |   IHole _ s == IHole _ s' = s == s'
+
 488 |
+
 489 |   Implicit _ b == Implicit _ b' = b == b'
+
 490 |   IWithUnambigNames _ ns t == IWithUnambigNames _ ns' t' =
+
 491 |     map snd ns == map snd ns' && t == t'
+
 492 |
+
 493 |   _ == _ = False
+
 494 |
+
 495 | public export
+
 496 | data Mode = InDecl | InCase
+
 497 |
+
 498 | mutual
+
 499 |
+
 500 |   public export
+
 501 |   Show IField where
+
 502 |     show (MkIField fc rig pinfo nm s) =
+
 503 |       showPiInfo {wrapExplicit=False} pinfo (showCount rig "\{show nm} : \{show s}")
+
 504 |
+
 505 |   public export
+
 506 |   Show Record where
+
 507 |     show (MkRecord fc n params opts conName fields) -- TODO: print opts
+
 508 |       = unwords
+
 509 |       [ "record", show n
+
 510 |       , unwords (map (\ (nm, rig, pinfo, ty) =>
+
 511 |                        showPiInfo pinfo (showCount rig "\{show nm} : \{show ty}"))
+
 512 |                 params)
+
 513 |       , "where"
+
 514 |       , "{"
+
 515 |       , "constructor", show conName, "; "
+
 516 |       , joinBy "; " (map show fields)
+
 517 |       , "}"
+
 518 |       ]
+
 519 |
+
 520 |   public export
+
 521 |   Show Data where
+
 522 |     show (MkData fc n tycon opts datacons) -- TODO: print opts
+
 523 |       = unwords
+
 524 |       [ "data", show n, ":", show tycon, "where"
+
 525 |       , "{", joinBy "; " (map show datacons), "}"
+
 526 |       ]
+
 527 |     show (MkLater fc n tycon) = unwords [ "data", show n, ":", show tycon ]
+
 528 |
+
 529 |   public export
+
 530 |   Show ITy where
+
 531 |     show (MkTy fc nameFC n ty) = "\{show n} : \{show ty}"
+
 532 |
+
 533 |   public export
+
 534 |   Show Decl where
+
 535 |     show (IClaim fc rig vis xs sig)
+
 536 |       = unwords [ show vis
+
 537 |                 , showCount rig (show sig) ]
+
 538 |     show (IData fc vis treq dt)
+
 539 |       = unwords [ show vis
+
 540 |                 , showTotalReq treq (show dt)
+
 541 |                 ]
+
 542 |     show (IDef fc nm xs) = joinBy "; " (map (showClause InDecl) xs)
+
 543 |     show (IParameters fc params decls)
+
 544 |       = unwords
+
 545 |       [ "parameters"
+
 546 |       , unwords (map (\ (nm, rig, pinfo, ty) =>
+
 547 |                        showPiInfo pinfo (showCount rig "\{show nm} : \{show ty}"))
+
 548 |                 params)
+
 549 |       , "{"
+
 550 |       , joinBy "; " (assert_total $ map show decls)
+
 551 |       , "}"
+
 552 |       ]
+
 553 |     show (IRecord fc x vis treq rec)
+
 554 |       = unwords [ show vis, showTotalReq treq (show rec) ]
+
 555 |     show (INamespace fc ns decls)
+
 556 |       = unwords
+
 557 |       [ "namespace", show ns
+
 558 |       , "{", joinBy "; " (assert_total $ map show decls), "}" ]
+
 559 |     show (ITransform fc nm s t) = #"%transform "\{show nm}" \{show s} = \{show t}"#
+
 560 |     show (IRunElabDecl fc s) = "%runElab \{show s}"
+
 561 |     show (ILog loglvl) = case loglvl of
+
 562 |       Nothing => "%logging off"
+
 563 |       Just ([], lvl) => "%logging \{show lvl}"
+
 564 |       Just (topic, lvl) => "%logging \{joinBy "." topic} \{show lvl}"
+
 565 |     show (IBuiltin fc bty nm) = "%builtin \{show bty} \{show nm}"
+
 566 |
+
 567 |   public export
+
 568 |   Show IFieldUpdate where
+
 569 |     show (ISetField path s) = "\{joinBy "->" path} := \{show s}"
+
 570 |     show (ISetFieldApp path s) = "\{joinBy "->" path} $= \{show s}"
+
 571 |
+
 572 |   public export
+
 573 |   showClause : Mode -> Clause -> String
+
 574 |   showClause mode (PatClause fc lhs rhs) = "\{show lhs} \{showSep mode} \{show rhs}" where
+
 575 |     showSep : Mode -> String
+
 576 |     showSep InDecl = "="
+
 577 |     showSep InCase = "=>"
+
 578 |   showClause mode (WithClause fc lhs rig wval prf flags cls) -- TODO print flags
+
 579 |       = unwords
+
 580 |       [ show lhs, "with"
+
 581 |       , showCount rig $ maybe id (\ nm => (++ " proof \{show nm}")) prf
+
 582 |                       $ showParens True (show wval)
+
 583 |       , "{", joinBy "; " (assert_total $ map (showClause mode) cls), "}"
+
 584 |       ]
+
 585 |   showClause mode (ImpossibleClause fc lhs) = "\{show lhs} impossible"
+
 586 |
+
 587 |   collectPis : Count -> PiInfo TTImp -> SnocList Name -> TTImp -> TTImp -> (List Name, TTImp)
+
 588 |   collectPis rig pinfo xs argTy t@(IPi fc rig' pinfo' x argTy' retTy)
+
 589 |     = ifThenElse (rig == rig' && pinfo == pinfo' && argTy == argTy')
+
 590 |          (collectPis rig pinfo (xs :< fromMaybe (UN Underscore) x) argTy retTy)
+
 591 |          (xs <>> [], t)
+
 592 |   collectPis rig pinfo xs argTy t = (xs <>> [], t)
+
 593 |
+
 594 |   showIApps : TTImp -> List String -> String
+
 595 |   showIApps (IApp _ f t) ts = showIApps f (assert_total (showPrec App t) :: ts)
+
 596 |   showIApps (IVar _ nm) [a,b] =
+
 597 |     if isOp nm then unwords [a, showPrefix False nm, b]
+
 598 |     else unwords [showPrefix True nm, a, b]
+
 599 |   showIApps f ts = unwords (show f :: ts)
+
 600 |
+
 601 |   public export
+
 602 |   Show TTImp where
+
 603 |     showPrec d (IVar fc nm) = showPrefix True nm
+
 604 |     showPrec d (IPi fc MW ExplicitArg Nothing argTy retTy)
+
 605 |       = showParens (d > Open) $ "\{showPrec Dollar argTy} -> \{show retTy}"
+
 606 |     showPrec d (IPi fc MW AutoImplicit Nothing argTy retTy)
+
 607 |       = showParens (d > Open) $ "\{showPrec Dollar argTy} => \{show retTy}"
+
 608 |     showPrec d (IPi fc rig pinfo x argTy retTy)
+
 609 |       = showParens (d > Open) $
+
 610 |           let (xs, retTy) = collectPis rig pinfo [<fromMaybe (UN Underscore) x] argTy retTy in
+
 611 |           assert_total (showPiInfo pinfo "\{showCount rig $ joinBy ", " (show <$> xs)} : \{show argTy}")
+
 612 |           ++ " -> \{assert_total $ show retTy}"
+
 613 |     showPrec d (ILam fc rig pinfo x argTy lamTy)
+
 614 |       = showParens (d > Open) $
+
 615 |           "\\ \{showCount rig $ show (fromMaybe (UN Underscore) x)} => \{show lamTy}"
+
 616 |     showPrec d (ILet fc lhsFC rig nm nTy nVal scope)
+
 617 |       = showParens (d > Open) $
+
 618 |           "let \{showCount rig (show nm)} : \{show nTy} = \{show nVal} in \{show scope}"
+
 619 |     showPrec d (ICase fc _ s ty xs)
+
 620 |       = showParens (d > Open) $
+
 621 |           unwords $ [ "case", show s ] ++ typeFor ty ++ [ "of", "{"
+
 622 |                     , joinBy "; " (assert_total $ map (showClause InCase) xs)
+
 623 |                     , "}"
+
 624 |                     ]
+
 625 |           where
+
 626 |             typeFor : TTImp -> List String
+
 627 |             typeFor $ Implicit _ False = []
+
 628 |             typeFor ty = [ "{-", ":", show ty, "-}" ]
+
 629 |     showPrec d (ILocal fc decls s)
+
 630 |       = showParens (d > Open) $
+
 631 |           unwords [ "let", joinBy "; " (assert_total $ map show decls)
+
 632 |                   , "in", show s
+
 633 |                   ]
+
 634 |     showPrec d (IUpdate fc upds s)
+
 635 |       = showParens (d > Open) $
+
 636 |           unwords [ "{", joinBy ", " $ assert_total (map show upds), "}"
+
 637 |                   , showPrec App s ]
+
 638 |     showPrec d (IApp fc f t)
+
 639 |       = showParens (d >= App) $ assert_total $ showIApps f [showPrec App t]
+
 640 |     showPrec d (INamedApp fc f nm t)
+
 641 |       = showParens (d >= App) $ "\{show f} {\{show nm} = \{show t}}"
+
 642 |     showPrec d (IAutoApp fc f t)
+
 643 |       = showParens (d >= App) $ "\{show f} @{\{show t}}"
+
 644 |     showPrec d (IWithApp fc f t)
+
 645 |       = showParens (d >= App) $ "\{show f} | \{showPrec App t}"
+
 646 |     showPrec d (ISearch fc depth) = "%search"
+
 647 |     showPrec d (IAlternative fc x xs) = "<\{show (length xs)} alts>"
+
 648 |     showPrec d (IRewrite fc s t)
+
 649 |       = showParens (d > Open) "rewrite \{show s} in \{show t}"
+
 650 |     showPrec d (IBindHere fc bm s) = showPrec d s
+
 651 |     showPrec d (IBindVar fc x) = x
+
 652 |     showPrec d (IAs fc nameFC side nm s)
+
 653 |       = "\{show nm}@\{showPrec App s}"
+
 654 |     showPrec d (IMustUnify fc dr s) = ".(\{show s})"
+
 655 |     showPrec d (IDelayed fc LInf s) = showCon d "Inf" $ assert_total $ showArg s
+
 656 |     showPrec d (IDelayed fc LLazy s) = showCon d "Lazy" $ assert_total $ showArg s
+
 657 |     showPrec d (IDelayed fc LUnknown s) = "({- unknown lazy -} \{showPrec Open s})"
+
 658 |     showPrec d (IDelay fc s) = showCon d "Delay" $ assert_total $ showArg s
+
 659 |     showPrec d (IForce fc s) = showCon d "Force" $ assert_total $ showArg s
+
 660 |     showPrec d (IQuote fc s) = "`(\{show s})"
+
 661 |     showPrec d (IQuoteName fc nm) = "`{\{show nm}}"
+
 662 |     showPrec d (IQuoteDecl fc xs) = "`[\{joinBy "; " (assert_total $ map show xs)}]"
+
 663 |     showPrec d (IUnquote fc s) = "~(\{show s})"
+
 664 |     showPrec d (IPrimVal fc c) = show c
+
 665 |     showPrec d (IType fc) = "Type"
+
 666 |     showPrec d (IHole fc str) = "?" ++ str
+
 667 |     showPrec d (Implicit fc b) = ifThenElse b "_" "?"
+
 668 |     showPrec d (IWithUnambigNames fc ns s) = case ns of
+
 669 |       [] => show s
+
 670 |       [(_,x)] => "with \{show x} \{show s}"
+
 671 |       _   => "with [\{joinBy ", " $ map (show . snd) ns}] \{show s}"
+
 672 |
+
 673 | public export
+
 674 | data Argument a
+
 675 |   = Arg FC a
+
 676 |   | NamedArg FC Name a
+
 677 |   | AutoArg FC a
+
 678 |
+
 679 | public export
+
 680 | isExplicit : Argument a -> Maybe (FC, a)
+
 681 | isExplicit (Arg fc a) = pure (fc, a)
+
 682 | isExplicit _ = Nothing
+
 683 |
+
 684 | public export
+
 685 | fromPiInfo : FC -> PiInfo t -> Maybe Name -> a -> Maybe (Argument a)
+
 686 | fromPiInfo fc ImplicitArg (Just nm) a = pure (NamedArg fc nm a)
+
 687 | fromPiInfo fc ExplicitArg _ a = pure (Arg fc a)
+
 688 | fromPiInfo fc AutoImplicit _ a = pure (AutoArg fc a)
+
 689 | fromPiInfo fc (DefImplicit _) (Just nm) a = pure (NamedArg fc nm a)
+
 690 | fromPiInfo _ _ _ _ = Nothing
+
 691 |
+
 692 | public export
+
 693 | Functor Argument where
+
 694 |   map f (Arg fc a) = Arg fc (f a)
+
 695 |   map f (NamedArg fc nm a) = NamedArg fc nm (f a)
+
 696 |   map f (AutoArg fc a) = AutoArg fc (f a)
+
 697 |
+
 698 | public export
+
 699 | iApp : TTImp -> Argument TTImp -> TTImp
+
 700 | iApp f (Arg fc t) = IApp fc f t
+
 701 | iApp f (NamedArg fc nm t) = INamedApp fc f nm t
+
 702 | iApp f (AutoArg fc t) = IAutoApp fc f t
+
 703 |
+
 704 | public export
+
 705 | unArg : Argument a -> a
+
 706 | unArg (Arg _ x) = x
+
 707 | unArg (NamedArg _ _ x) = x
+
 708 | unArg (AutoArg _ x) = x
+
 709 |
+
 710 | ||| We often apply multiple arguments, this makes things simpler
+
 711 | public export
+
 712 | apply : TTImp -> List (Argument TTImp) -> TTImp
+
 713 | apply = foldl iApp
+
 714 |
+
 715 | public export
+
 716 | data IsAppView : (FC, Name) -> SnocList (Argument TTImp) -> TTImp -> Type where
+
 717 |   AVVar : IsAppView (fc, t) [<] (IVar fc t)
+
 718 |   AVApp : IsAppView x ts f -> IsAppView x (ts :< Arg fc t) (IApp fc f t)
+
 719 |   AVNamedApp : IsAppView x ts f -> IsAppView x (ts :< NamedArg fc n t) (INamedApp fc f n t)
+
 720 |   AVAutoApp : IsAppView x ts f -> IsAppView x (ts :< AutoArg fc t) (IAutoApp fc f a)
+
 721 |
+
 722 | public export
+
 723 | record AppView (t : TTImp) where
+
 724 |   constructor MkAppView
+
 725 |   head : (FC, Name)
+
 726 |   args : SnocList (Argument TTImp)
+
 727 |   0 isAppView : IsAppView head args t
+
 728 |
+
 729 | public export
+
 730 | appView : (t : TTImp) -> Maybe (AppView t)
+
 731 | appView (IVar fc f) = Just (MkAppView (fc, f) [<] AVVar)
+
 732 | appView (IApp fc f t) = do
+
 733 |   (MkAppView x ts prf) <- appView f
+
 734 |   pure (MkAppView x (ts :< Arg fc t) (AVApp prf))
+
 735 | appView (INamedApp fc f n t) = do
+
 736 |   (MkAppView x ts prf) <- appView f
+
 737 |   pure (MkAppView x (ts :< NamedArg fc n t) (AVNamedApp prf))
+
 738 | appView (IAutoApp fc f t) = do
+
 739 |   (MkAppView x ts prf) <- appView f
+
 740 |   pure (MkAppView x (ts :< AutoArg fc t) (AVAutoApp prf))
+
 741 | appView _ = Nothing
+
 742 |
+
 743 | parameters (f : TTImp -> TTImp)
+
 744 |
+
 745 |   public export
+
 746 |   mapTTImp : TTImp -> TTImp
+
 747 |
+
 748 |   public export
+
 749 |   mapPiInfo : PiInfo TTImp -> PiInfo TTImp
+
 750 |   mapPiInfo ImplicitArg = ImplicitArg
+
 751 |   mapPiInfo ExplicitArg = ExplicitArg
+
 752 |   mapPiInfo AutoImplicit = AutoImplicit
+
 753 |   mapPiInfo (DefImplicit t) = DefImplicit (mapTTImp t)
+
 754 |
+
 755 |   public export
+
 756 |   mapClause : Clause -> Clause
+
 757 |   mapClause (PatClause fc lhs rhs) = PatClause fc (mapTTImp lhs) (mapTTImp rhs)
+
 758 |   mapClause (WithClause fc lhs rig wval prf flags cls)
+
 759 |     = WithClause fc (mapTTImp lhs) rig (mapTTImp wval) prf flags (assert_total $ map mapClause cls)
+
 760 |   mapClause (ImpossibleClause fc lhs) = ImpossibleClause fc (mapTTImp lhs)
+
 761 |
+
 762 |   public export
+
 763 |   mapITy : ITy -> ITy
+
 764 |   mapITy (MkTy fc nameFC n ty) = MkTy fc nameFC n (mapTTImp ty)
+
 765 |
+
 766 |   public export
+
 767 |   mapFnOpt : FnOpt -> FnOpt
+
 768 |   mapFnOpt Inline = Inline
+
 769 |   mapFnOpt NoInline = NoInline
+
 770 |   mapFnOpt Deprecate = Deprecate
+
 771 |   mapFnOpt TCInline = TCInline
+
 772 |   mapFnOpt (Hint b) = Hint b
+
 773 |   mapFnOpt (GlobalHint b) = GlobalHint b
+
 774 |   mapFnOpt ExternFn = ExternFn
+
 775 |   mapFnOpt (ForeignFn ts) = ForeignFn (map mapTTImp ts)
+
 776 |   mapFnOpt (ForeignExport ts) = ForeignExport (map mapTTImp ts)
+
 777 |   mapFnOpt Invertible = Invertible
+
 778 |   mapFnOpt (Totality treq) = Totality treq
+
 779 |   mapFnOpt Macro = Macro
+
 780 |   mapFnOpt (SpecArgs ns) = SpecArgs ns
+
 781 |
+
 782 |   public export
+
 783 |   mapData : Data -> Data
+
 784 |   mapData (MkData fc n tycon opts datacons)
+
 785 |     = MkData fc n (map mapTTImp tycon) opts (map mapITy datacons)
+
 786 |   mapData (MkLater fc n tycon) = MkLater fc n (mapTTImp tycon)
+
 787 |
+
 788 |   public export
+
 789 |   mapIField : IField -> IField
+
 790 |   mapIField (MkIField fc rig pinfo n t) = MkIField fc rig (mapPiInfo pinfo) n (mapTTImp t)
+
 791 |
+
 792 |   public export
+
 793 |   mapRecord : Record -> Record
+
 794 |   mapRecord (MkRecord fc n params opts conName fields)
+
 795 |     = MkRecord fc n (map (map $ map $ bimap mapPiInfo mapTTImp) params) opts conName (map mapIField fields)
+
 796 |
+
 797 |   public export
+
 798 |   mapDecl : Decl -> Decl
+
 799 |   mapDecl (IClaim fc rig vis opts ty)
+
 800 |     = IClaim fc rig vis (map mapFnOpt opts) (mapITy ty)
+
 801 |   mapDecl (IData fc vis mtreq dat) = IData fc vis mtreq (mapData dat)
+
 802 |   mapDecl (IDef fc n cls) = IDef fc n (map mapClause cls)
+
 803 |   mapDecl (IParameters fc params xs) = IParameters fc params (assert_total $ map mapDecl xs)
+
 804 |   mapDecl (IRecord fc mstr x y rec) = IRecord fc mstr x y (mapRecord rec)
+
 805 |   mapDecl (INamespace fc mi xs) = INamespace fc mi (assert_total $ map mapDecl xs)
+
 806 |   mapDecl (ITransform fc n t u) = ITransform fc n (mapTTImp t) (mapTTImp u)
+
 807 |   mapDecl (IRunElabDecl fc t) = IRunElabDecl fc (mapTTImp t)
+
 808 |   mapDecl (ILog x) = ILog x
+
 809 |   mapDecl (IBuiltin fc x n) = IBuiltin fc x n
+
 810 |
+
 811 |   public export
+
 812 |   mapIFieldUpdate : IFieldUpdate -> IFieldUpdate
+
 813 |   mapIFieldUpdate (ISetField path t) = ISetField path (mapTTImp t)
+
 814 |   mapIFieldUpdate (ISetFieldApp path t) = ISetFieldApp path (mapTTImp t)
+
 815 |
+
 816 |   public export
+
 817 |   mapAltType : AltType -> AltType
+
 818 |   mapAltType FirstSuccess = FirstSuccess
+
 819 |   mapAltType Unique = Unique
+
 820 |   mapAltType (UniqueDefault t) = UniqueDefault (mapTTImp t)
+
 821 |
+
 822 |   mapTTImp t@(IVar _ _) = f t
+
 823 |   mapTTImp (IPi fc rig pinfo x argTy retTy)
+
 824 |     = f $ IPi fc rig (mapPiInfo pinfo) x (mapTTImp argTy) (mapTTImp retTy)
+
 825 |   mapTTImp (ILam fc rig pinfo x argTy lamTy)
+
 826 |     = f $ ILam fc rig (mapPiInfo pinfo) x (mapTTImp argTy) (mapTTImp lamTy)
+
 827 |   mapTTImp (ILet fc lhsFC rig n nTy nVal scope)
+
 828 |     = f $ ILet fc lhsFC rig n (mapTTImp nTy) (mapTTImp nVal) (mapTTImp scope)
+
 829 |   mapTTImp (ICase fc opts t ty cls)
+
 830 |     = f $ ICase fc opts (mapTTImp t) (mapTTImp ty) (assert_total $ map mapClause cls)
+
 831 |   mapTTImp (ILocal fc xs t)
+
 832 |     = f $ ILocal fc (assert_total $ map mapDecl xs) (mapTTImp t)
+
 833 |   mapTTImp (IUpdate fc upds t) = f $ IUpdate fc (assert_total map mapIFieldUpdate upds) (mapTTImp t)
+
 834 |   mapTTImp (IApp fc t u) = f $ IApp fc (mapTTImp t) (mapTTImp u)
+
 835 |   mapTTImp (IAutoApp fc t u) = f $ IAutoApp fc (mapTTImp t) (mapTTImp u)
+
 836 |   mapTTImp (INamedApp fc t n u) = f $ INamedApp fc (mapTTImp t) n (mapTTImp u)
+
 837 |   mapTTImp (IWithApp fc t u) = f $ IWithApp fc (mapTTImp t) (mapTTImp u)
+
 838 |   mapTTImp (ISearch fc depth) = f $ ISearch fc depth
+
 839 |   mapTTImp (IAlternative fc alt ts) = f $ IAlternative fc (mapAltType alt) (assert_total map mapTTImp ts)
+
 840 |   mapTTImp (IRewrite fc t u) = f $ IRewrite fc (mapTTImp t) (mapTTImp u)
+
 841 |   mapTTImp (IBindHere fc bm t) = f $ IBindHere fc bm (mapTTImp t)
+
 842 |   mapTTImp (IBindVar fc str) = f $ IBindVar fc str
+
 843 |   mapTTImp (IAs fc nameFC side n t) = f $ IAs fc nameFC side n (mapTTImp t)
+
 844 |   mapTTImp (IMustUnify fc x t) = f $ IMustUnify fc x (mapTTImp t)
+
 845 |   mapTTImp (IDelayed fc lz t) = f $ IDelayed fc lz (mapTTImp t)
+
 846 |   mapTTImp (IDelay fc t) = f $ IDelay fc (mapTTImp t)
+
 847 |   mapTTImp (IForce fc t) = f $ IForce fc (mapTTImp t)
+
 848 |   mapTTImp (IQuote fc t) = f $ IQuote fc (mapTTImp t)
+
 849 |   mapTTImp (IQuoteName fc n) = f $ IQuoteName fc n
+
 850 |   mapTTImp (IQuoteDecl fc xs) = f $ IQuoteDecl fc (assert_total $ map mapDecl xs)
+
 851 |   mapTTImp (IUnquote fc t) = f $ IUnquote fc (mapTTImp t)
+
 852 |   mapTTImp (IPrimVal fc c) = f $ IPrimVal fc c
+
 853 |   mapTTImp (IType fc) = f $ IType fc
+
 854 |   mapTTImp (IHole fc str) = f $ IHole fc str
+
 855 |   mapTTImp (Implicit fc bindIfUnsolved) = f $ Implicit fc bindIfUnsolved
+
 856 |   mapTTImp (IWithUnambigNames fc xs t) = f $ IWithUnambigNames fc xs (mapTTImp t)
+
 857 |
+
 858 | parameters {0 m : Type -> Type} {auto apl : Applicative m} (f : (original : TTImp) -> m TTImp -> m TTImp)
+
 859 |
+
 860 |   public export
+
 861 |   mapATTImp' : TTImp -> m TTImp
+
 862 |
+
 863 |   public export
+
 864 |   mapMPiInfo : PiInfo TTImp -> m (PiInfo TTImp)
+
 865 |   mapMPiInfo ImplicitArg = pure ImplicitArg
+
 866 |   mapMPiInfo ExplicitArg = pure ExplicitArg
+
 867 |   mapMPiInfo AutoImplicit = pure AutoImplicit
+
 868 |   mapMPiInfo (DefImplicit t) = DefImplicit <$> mapATTImp' t
+
 869 |
+
 870 |   public export
+
 871 |   mapMClause : Clause -> m Clause
+
 872 |   mapMClause (PatClause fc lhs rhs) = PatClause fc <$> mapATTImp' lhs <*> mapATTImp' rhs
+
 873 |   mapMClause (WithClause fc lhs rig wval prf flags cls)
+
 874 |     = WithClause fc
+
 875 |     <$> mapATTImp' lhs
+
 876 |     <*> pure rig
+
 877 |     <*> mapATTImp' wval
+
 878 |     <*> pure prf
+
 879 |     <*> pure flags
+
 880 |     <*> assert_total (traverse mapMClause cls)
+
 881 |   mapMClause (ImpossibleClause fc lhs) = ImpossibleClause fc <$> mapATTImp' lhs
+
 882 |
+
 883 |   public export
+
 884 |   mapMITy : ITy -> m ITy
+
 885 |   mapMITy (MkTy fc nameFC n ty) = MkTy fc nameFC n <$> mapATTImp' ty
+
 886 |
+
 887 |   public export
+
 888 |   mapMFnOpt : FnOpt -> m FnOpt
+
 889 |   mapMFnOpt Inline = pure Inline
+
 890 |   mapMFnOpt NoInline = pure NoInline
+
 891 |   mapMFnOpt Deprecate = pure Deprecate
+
 892 |   mapMFnOpt TCInline = pure TCInline
+
 893 |   mapMFnOpt (Hint b) = pure (Hint b)
+
 894 |   mapMFnOpt (GlobalHint b) = pure (GlobalHint b)
+
 895 |   mapMFnOpt ExternFn = pure ExternFn
+
 896 |   mapMFnOpt (ForeignFn ts) = ForeignFn <$> traverse mapATTImp' ts
+
 897 |   mapMFnOpt (ForeignExport ts) = ForeignExport <$> traverse mapATTImp' ts
+
 898 |   mapMFnOpt Invertible = pure Invertible
+
 899 |   mapMFnOpt (Totality treq) = pure (Totality treq)
+
 900 |   mapMFnOpt Macro = pure Macro
+
 901 |   mapMFnOpt (SpecArgs ns) = pure (SpecArgs ns)
+
 902 |
+
 903 |   public export
+
 904 |   mapMData : Data -> m Data
+
 905 |   mapMData (MkData fc n tycon opts datacons)
+
 906 |     = MkData fc n <$> traverse mapATTImp' tycon <*> pure opts <*> traverse mapMITy datacons
+
 907 |   mapMData (MkLater fc n tycon) = MkLater fc n <$> mapATTImp' tycon
+
 908 |
+
 909 |   public export
+
 910 |   mapMIField : IField -> m IField
+
 911 |   mapMIField (MkIField fc rig pinfo n t)
+
 912 |    = MkIField fc rig <$> mapMPiInfo pinfo <*> pure n <*> mapATTImp' t
+
 913 |
+
 914 |   public export
+
 915 |   mapMRecord : Record -> m Record
+
 916 |   mapMRecord (MkRecord fc n params opts conName fields)
+
 917 |     = MkRecord fc n
+
 918 |     <$> traverse (bitraverse pure $ bitraverse pure $ bitraverse mapMPiInfo mapATTImp') params
+
 919 |     <*> pure opts
+
 920 |     <*> pure conName
+
 921 |     <*> traverse mapMIField fields
+
 922 |
+
 923 |   public export
+
 924 |   mapMDecl : Decl -> m Decl
+
 925 |   mapMDecl (IClaim fc rig vis opts ty)
+
 926 |     = IClaim fc rig vis <$> traverse mapMFnOpt opts <*> mapMITy ty
+
 927 |   mapMDecl (IData fc vis mtreq dat) = IData fc vis mtreq <$> mapMData dat
+
 928 |   mapMDecl (IDef fc n cls) = IDef fc n <$> traverse mapMClause cls
+
 929 |   mapMDecl (IParameters fc params xs) = IParameters fc params <$> assert_total (traverse mapMDecl xs)
+
 930 |   mapMDecl (IRecord fc mstr x y rec) = IRecord fc mstr x y <$> mapMRecord rec
+
 931 |   mapMDecl (INamespace fc mi xs) = INamespace fc mi <$> assert_total (traverse mapMDecl xs)
+
 932 |   mapMDecl (ITransform fc n t u) = ITransform fc n <$> mapATTImp' t <*> mapATTImp' u
+
 933 |   mapMDecl (IRunElabDecl fc t) = IRunElabDecl fc <$> mapATTImp' t
+
 934 |   mapMDecl (ILog x) = pure (ILog x)
+
 935 |   mapMDecl (IBuiltin fc x n) = pure (IBuiltin fc x n)
+
 936 |
+
 937 |   public export
+
 938 |   mapMIFieldUpdate : IFieldUpdate -> m IFieldUpdate
+
 939 |   mapMIFieldUpdate (ISetField path t) = ISetField path <$> mapATTImp' t
+
 940 |   mapMIFieldUpdate (ISetFieldApp path t) = ISetFieldApp path <$> mapATTImp' t
+
 941 |
+
 942 |   public export
+
 943 |   mapMAltType : AltType -> m AltType
+
 944 |   mapMAltType FirstSuccess = pure FirstSuccess
+
 945 |   mapMAltType Unique = pure Unique
+
 946 |   mapMAltType (UniqueDefault t) = UniqueDefault <$> mapATTImp' t
+
 947 |
+
 948 |   mapATTImp' t@(IVar _ _) = f t $ pure t
+
 949 |   mapATTImp' o@(IPi fc rig pinfo x argTy retTy)
+
 950 |     = f o $ IPi fc rig <$> mapMPiInfo pinfo <*> pure x <*> mapATTImp' argTy <*> mapATTImp' retTy
+
 951 |   mapATTImp' o@(ILam fc rig pinfo x argTy lamTy)
+
 952 |     = f o $ ILam fc rig <$> mapMPiInfo pinfo <*> pure x <*> mapATTImp' argTy <*> mapATTImp' lamTy
+
 953 |   mapATTImp' o@(ILet fc lhsFC rig n nTy nVal scope)
+
 954 |     = f o $ ILet fc lhsFC rig n <$> mapATTImp' nTy <*> mapATTImp' nVal <*> mapATTImp' scope
+
 955 |   mapATTImp' o@(ICase fc opts t ty cls)
+
 956 |     = f o $ ICase fc opts <$> mapATTImp' t <*> mapATTImp' ty <*> assert_total (traverse mapMClause cls)
+
 957 |   mapATTImp' o@(ILocal fc xs t)
+
 958 |     = f o $ ILocal fc <$> assert_total (traverse mapMDecl xs) <*> mapATTImp' t
+
 959 |   mapATTImp' o@(IUpdate fc upds t)
+
 960 |     = f o $ IUpdate fc <$> assert_total (traverse mapMIFieldUpdate upds) <*> mapATTImp' t
+
 961 |   mapATTImp' o@(IApp fc t u)
+
 962 |     = f o $ IApp fc <$> mapATTImp' t <*> mapATTImp' u
+
 963 |   mapATTImp' o@(IAutoApp fc t u)
+
 964 |     = f o $ IAutoApp fc <$> mapATTImp' t <*> mapATTImp' u
+
 965 |   mapATTImp' o@(INamedApp fc t n u)
+
 966 |     = f o $ INamedApp fc <$> mapATTImp' t <*> pure n <*> mapATTImp' u
+
 967 |   mapATTImp' o@(IWithApp fc t u) = f o $ IWithApp fc <$> mapATTImp' t <*> mapATTImp' u
+
 968 |   mapATTImp' o@(ISearch fc depth) = f o $ pure $ ISearch fc depth
+
 969 |   mapATTImp' o@(IAlternative fc alt ts)
+
 970 |     = f o $ IAlternative fc <$> mapMAltType alt <*> assert_total (traverse mapATTImp' ts)
+
 971 |   mapATTImp' o@(IRewrite fc t u) = f o $ IRewrite fc <$> mapATTImp' t <*> mapATTImp' u
+
 972 |   mapATTImp' o@(IBindHere fc bm t) = f o $ IBindHere fc bm <$> mapATTImp' t
+
 973 |   mapATTImp' o@(IBindVar fc str) = f o $ pure $ IBindVar fc str
+
 974 |   mapATTImp' o@(IAs fc nameFC side n t) = f o $ IAs fc nameFC side n <$> mapATTImp' t
+
 975 |   mapATTImp' o@(IMustUnify fc x t) = f o $ IMustUnify fc x <$> mapATTImp' t
+
 976 |   mapATTImp' o@(IDelayed fc lz t) = f o $ IDelayed fc lz <$> mapATTImp' t
+
 977 |   mapATTImp' o@(IDelay fc t) = f o $ IDelay fc <$> mapATTImp' t
+
 978 |   mapATTImp' o@(IForce fc t) = f o $ IForce fc <$> mapATTImp' t
+
 979 |   mapATTImp' o@(IQuote fc t) = f o $ IQuote fc <$> mapATTImp' t
+
 980 |   mapATTImp' o@(IQuoteName fc n) = f o $ pure $ IQuoteName fc n
+
 981 |   mapATTImp' o@(IQuoteDecl fc xs) = f o $ IQuoteDecl fc <$> assert_total (traverse mapMDecl xs)
+
 982 |   mapATTImp' o@(IUnquote fc t) = f o $ IUnquote fc <$> mapATTImp' t
+
 983 |   mapATTImp' o@(IPrimVal fc c) = f o $ pure $ IPrimVal fc c
+
 984 |   mapATTImp' o@(IType fc) = f o $ pure $ IType fc
+
 985 |   mapATTImp' o@(IHole fc str) = f o $ pure $ IHole fc str
+
 986 |   mapATTImp' o@(Implicit fc bindIfUnsolved) = f o $ pure $ Implicit fc bindIfUnsolved
+
 987 |   mapATTImp' o@(IWithUnambigNames fc xs t) = f o $ IWithUnambigNames fc xs <$> mapATTImp' t
+
 988 |
+
 989 | public export %inline
+
 990 | mapATTImp : Monad m => (m TTImp -> m TTImp) -> TTImp -> m TTImp
+
 991 | mapATTImp = mapATTImp' . const
+
 992 |
+
 993 | public export %inline
+
 994 | mapMTTImp' : Monad m => ((original, mapped : TTImp) -> m TTImp) -> TTImp -> m TTImp
+
 995 | mapMTTImp' = mapATTImp' . (=<<) .: apply
+
 996 |
+
 997 | public export %inline
+
 998 | mapMTTImp : Monad m => (TTImp -> m TTImp) -> TTImp -> m TTImp
+
 999 | mapMTTImp = mapATTImp . (=<<)
+
1000 |
diff --git a/contrib/docs/Control.ANSI.CSI.html b/contrib/docs/Control.ANSI.CSI.html index 647fded603..9a70890a05 100644 --- a/contrib/docs/Control.ANSI.CSI.html +++ b/contrib/docs/Control.ANSI.CSI.html @@ -61,4 +61,4 @@ -

Control.ANSI.CSI(source)

Definitions

cursorUp : Nat->String
  Moves the cursor n columns up.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorUp1 : String
Totality: total
Visibility: export
cursorDown : Nat->String
  Moves the cursor n columns down.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorDown1 : String
Totality: total
Visibility: export
cursorForward : Nat->String
  Moves the cursor n columns forward.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorForward1 : String
Totality: total
Visibility: export
cursorBack : Nat->String
  Moves the cursor n columns back.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorBack1 : String
Totality: total
Visibility: export
cursorNextLine : Nat->String
  Moves the cursor at the beginning of n lines down.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorNextLine1 : String
Totality: total
Visibility: export
cursorPrevLine : Nat->String
  Moves the cursor at the beginning of n lines up.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorPrevLine1 : String
Totality: total
Visibility: export
cursorMove : Nat->Nat->String
  Moves the cursor at an arbitrary line and column.
Both lines and columns start at 1.

Totality: total
Visibility: export
dataEraseDirection : Type
Totality: total
Visibility: public export
Constructors:
Start : EraseDirection
End : EraseDirection
All : EraseDirection

Hint: 
CastEraseDirectionString
eraseScreen : EraseDirection->String
  Clears part of the screen.

Totality: total
Visibility: export
eraseLine : EraseDirection->String
  Clears part of the line.

Totality: total
Visibility: export
scrollUp : Nat->String
  Scrolls the whole screen up by n lines.

Totality: total
Visibility: export
scrollUp1 : String
Totality: total
Visibility: export
scrollDown : Nat->String
  Scrolls the whole screen down by n lines.

Totality: total
Visibility: export
scrollDown1 : String
Totality: total
Visibility: export
\ No newline at end of file +

Control.ANSI.CSI(source)

Definitions

cursorUp : Nat->String
  Moves the cursor n columns up.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorUp1 : String
Totality: total
Visibility: export
cursorDown : Nat->String
  Moves the cursor n columns down.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorDown1 : String
Totality: total
Visibility: export
cursorForward : Nat->String
  Moves the cursor n columns forward.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorForward1 : String
Totality: total
Visibility: export
cursorBack : Nat->String
  Moves the cursor n columns back.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorBack1 : String
Totality: total
Visibility: export
cursorNextLine : Nat->String
  Moves the cursor at the beginning of n lines down.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorNextLine1 : String
Totality: total
Visibility: export
cursorPrevLine : Nat->String
  Moves the cursor at the beginning of n lines up.
If the cursor is at the edge of the screen it has no effect.

Totality: total
Visibility: export
cursorPrevLine1 : String
Totality: total
Visibility: export
cursorMove : Nat->Nat->String
  Moves the cursor at an arbitrary line and column.
Both lines and columns start at 1.

Totality: total
Visibility: export
dataEraseDirection : Type
Totality: total
Visibility: public export
Constructors:
Start : EraseDirection
End : EraseDirection
All : EraseDirection

Hint: 
CastEraseDirectionString
eraseScreen : EraseDirection->String
  Clears part of the screen.

Totality: total
Visibility: export
eraseLine : EraseDirection->String
  Clears part of the line.

Totality: total
Visibility: export
scrollUp : Nat->String
  Scrolls the whole screen up by n lines.

Totality: total
Visibility: export
scrollUp1 : String
Totality: total
Visibility: export
scrollDown : Nat->String
  Scrolls the whole screen down by n lines.

Totality: total
Visibility: export
scrollDown1 : String
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Control.ANSI.SGR.html b/contrib/docs/Control.ANSI.SGR.html index 3c9a9451ca..949049b1f9 100644 --- a/contrib/docs/Control.ANSI.SGR.html +++ b/contrib/docs/Control.ANSI.SGR.html @@ -61,4 +61,4 @@ -

Control.ANSI.SGR(source)

Definitions

dataColor : Type
Totality: total
Visibility: public export
Constructors:
Black : Color
Red : Color
Green : Color
Yellow : Color
Blue : Color
Magenta : Color
Cyan : Color
White : Color
BrightBlack : Color
BrightRed : Color
BrightGreen : Color
BrightYellow : Color
BrightBlue : Color
BrightMagenta : Color
BrightCyan : Color
BrightWhite : Color

Hint: 
CastColorString
dataStyle : Type
Totality: total
Visibility: public export
Constructors:
Bold : Style
Faint : Style
NotBoldOrFaint : Style
Italic : Style
SingleUnderline : Style
DoubleUnderline : Style
NoUnderline : Style
Striked : Style
NotStriked : Style

Hint: 
CastStyleString
Totality: total
Visibility: public export
Constructors:
Slow : Blink
Rapid : Blink

Hint: 
CastBlinkString
dataSGR : Type
Totality: total
Visibility: public export
Constructors:
Reset : SGR
SetForeground : Color->SGR
SetBackground : Color->SGR
SetStyle : Style->SGR
escapeSGR : ListSGR->String
  Returns the ANSI escape code equivalent to the list of operations provided.

Totality: total
Visibility: export
\ No newline at end of file +

Control.ANSI.SGR(source)

Definitions

dataColor : Type
Totality: total
Visibility: public export
Constructors:
Black : Color
Red : Color
Green : Color
Yellow : Color
Blue : Color
Magenta : Color
Cyan : Color
White : Color
BrightBlack : Color
BrightRed : Color
BrightGreen : Color
BrightYellow : Color
BrightBlue : Color
BrightMagenta : Color
BrightCyan : Color
BrightWhite : Color

Hint: 
CastColorString
dataStyle : Type
Totality: total
Visibility: public export
Constructors:
Bold : Style
Faint : Style
NotBoldOrFaint : Style
Italic : Style
SingleUnderline : Style
DoubleUnderline : Style
NoUnderline : Style
Striked : Style
NotStriked : Style

Hint: 
CastStyleString
Totality: total
Visibility: public export
Constructors:
Slow : Blink
Rapid : Blink

Hint: 
CastBlinkString
dataSGR : Type
Totality: total
Visibility: public export
Constructors:
Reset : SGR
SetForeground : Color->SGR
SetBackground : Color->SGR
SetStyle : Style->SGR
escapeSGR : ListSGR->String
  Returns the ANSI escape code equivalent to the list of operations provided.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Control.ANSI.html b/contrib/docs/Control.ANSI.html index 724853cc35..3208ccfaa3 100644 --- a/contrib/docs/Control.ANSI.html +++ b/contrib/docs/Control.ANSI.html @@ -61,4 +61,4 @@ -

Control.ANSI(source)

Reexports

importpublic Control.ANSI.CSI
importpublic Control.ANSI.SGR

Definitions

recordDecoratedString : Type
Totality: total
Visibility: public export
Constructor: 
MkDString : ListSGR->String->DecoratedString

Projections:
.sgr : DecoratedString->ListSGR
.str : DecoratedString->String

Hint: 
ShowDecoratedString
.sgr : DecoratedString->ListSGR
Totality: total
Visibility: public export
sgr : DecoratedString->ListSGR
Totality: total
Visibility: public export
.str : DecoratedString->String
Totality: total
Visibility: public export
str : DecoratedString->String
Totality: total
Visibility: public export
colored : Color->String->DecoratedString
Totality: total
Visibility: export
background : Color->String->DecoratedString
Totality: total
Visibility: export
bolden : String->DecoratedString
Totality: total
Visibility: export
italicize : String->DecoratedString
Totality: total
Visibility: export
underline : String->DecoratedString
Totality: total
Visibility: export
\ No newline at end of file +

Control.ANSI(source)

Reexports

importpublic Control.ANSI.CSI
importpublic Control.ANSI.SGR

Definitions

recordDecoratedString : Type
Totality: total
Visibility: public export
Constructor: 
MkDString : ListSGR->String->DecoratedString

Projections:
.sgr : DecoratedString->ListSGR
.str : DecoratedString->String

Hint: 
ShowDecoratedString
.sgr : DecoratedString->ListSGR
Totality: total
Visibility: public export
sgr : DecoratedString->ListSGR
Totality: total
Visibility: public export
.str : DecoratedString->String
Totality: total
Visibility: public export
str : DecoratedString->String
Totality: total
Visibility: public export
colored : Color->String->DecoratedString
Totality: total
Visibility: export
background : Color->String->DecoratedString
Totality: total
Visibility: export
bolden : String->DecoratedString
Totality: total
Visibility: export
italicize : String->DecoratedString
Totality: total
Visibility: export
underline : String->DecoratedString
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Control.Algebra.Implementations.html b/contrib/docs/Control.Algebra.Implementations.html index 996df3fb11..10b3030e96 100644 --- a/contrib/docs/Control.Algebra.Implementations.html +++ b/contrib/docs/Control.Algebra.Implementations.html @@ -61,4 +61,4 @@ -

Control.Algebra.Implementations(source)

Definitions

\ No newline at end of file +

Control.Algebra.Implementations(source)

Definitions

\ No newline at end of file diff --git a/contrib/docs/Control.Algebra.Laws.html b/contrib/docs/Control.Algebra.Laws.html index e3cd8d6eaf..e2c5a345b8 100644 --- a/contrib/docs/Control.Algebra.Laws.html +++ b/contrib/docs/Control.Algebra.Laws.html @@ -61,4 +61,4 @@ -

Control.Algebra.Laws(source)

Definitions

uniqueInverse : {auto{conArg:2029} : MonoidVty} -> (x : ty) -> (y : ty) -> (z : ty) ->y<+>x=neutral->x<+>z=neutral->y=z
  Inverses are unique.

Totality: total
Visibility: public export
selfSquareId : {auto{conArg:2147} : Groupty} -> (x : ty) ->x<+>x=x->x=neutral
  Only identity is self-squaring.

Totality: total
Visibility: public export
inverseCommute : {auto{conArg:2247} : Groupty} -> (x : ty) -> (y : ty) ->y<+>x=neutral->x<+>y=neutral
  Inverse elements commute.

Totality: total
Visibility: public export
groupInverseIsInverseL : {auto{conArg:2417} : Groupty} -> (x : ty) ->x<+>inversex=neutral
  Every element has a right inverse.

Totality: total
Visibility: public export
inverseSquaredIsIdentity : {auto{conArg:2459} : Groupty} -> (x : ty) ->inverse (inversex) =x
  -(-x) = x

Totality: total
Visibility: public export
squareIdCommutative : {auto{conArg:2500} : Groupty} -> (x : ty) -> (y : ty) -> ((a : ty) ->a<+>a=neutral) ->x<+>y=y<+>x
  If every square in a group is identity, the group is commutative.

Totality: total
Visibility: public export
inverseNeutralIsNeutral : {auto{conArg:2701} : Groupty} ->inverseneutral=neutral
  -0 = 0

Totality: total
Visibility: public export
cancelLeft : {auto{conArg:2778} : Groupty} -> (x : ty) -> (y : ty) -> (z : ty) ->x<+>y=x<+>z->y=z
  y = z if x + y = x + z

Totality: total
Visibility: public export
cancelRight : {auto{conArg:2923} : Groupty} -> (x : ty) -> (y : ty) -> (z : ty) ->y<+>x=z<+>x->y=z
  y = z if y + x = z + x.

Totality: total
Visibility: public export
neutralProductInverseR : {auto{conArg:3068} : Groupty} -> (a : ty) -> (b : ty) ->a<+>b=neutral->a=inverseb
  ab = 0 -> a = b^-1

Totality: total
Visibility: public export
neutralProductInverseL : {auto{conArg:3129} : Groupty} -> (a : ty) -> (b : ty) ->a<+>b=neutral->inversea=b
  ab = 0 -> a^-1 = b

Totality: total
Visibility: public export
latinSquareProperty : {auto{conArg:3190} : Groupty} -> (a : ty) -> (b : ty) -> ((x : ty**a<+>x=b), (y : ty**y<+>a=b))
  For any a and b, ax = b and ya = b have solutions.

Totality: total
Visibility: public export
uniqueSolutionR : {auto{conArg:3341} : Groupty} -> (a : ty) -> (b : ty) -> (x : ty) -> (y : ty) ->a<+>x=b->a<+>y=b->x=y
  For any a, b, x, the solution to ax = b is unique.

Totality: total
Visibility: public export
uniqueSolutionL : {auto{conArg:3413} : Groupt} -> (a : t) -> (b : t) -> (x : t) -> (y : t) ->x<+>a=b->y<+>a=b->x=y
  For any a, b, y, the solution to ya = b is unique.

Totality: total
Visibility: public export
homoNeutral : {auto{conArg:3485} : GroupHomomorphismab} ->toneutral=neutral
  Homomorphism preserves neutral.

Totality: total
Visibility: public export
homoInverse : {auto{conArg:3596} : GroupHomomorphismab} -> (x : a) ->theb (to (inversex)) =theb (inverse (tox))
  Homomorphism preserves inverses.

Totality: total
Visibility: public export
multNeutralAbsorbingL : {auto{conArg:3717} : Ringty} -> (r : ty) ->neutral<.>r=neutral
  0x = x

Totality: total
Visibility: public export
multNeutralAbsorbingR : {auto{conArg:3980} : Ringty} -> (l : ty) ->l<.>neutral=neutral
  x0 = 0

Totality: total
Visibility: public export
multInverseInversesL : {auto{conArg:4239} : Ringty} -> (l : ty) -> (r : ty) ->inversel<.>r=inverse (l<.>r)
  (-x)y = -(xy)

Totality: total
Visibility: public export
multInverseInversesR : {auto{conArg:4410} : Ringty} -> (l : ty) -> (r : ty) ->l<.>inverser=inverse (l<.>r)
  x(-y) = -(xy)

Totality: total
Visibility: public export
multNegativeByNegativeIsPositive : {auto{conArg:4577} : Ringty} -> (l : ty) -> (r : ty) ->inversel<.>inverser=l<.>r
  (-x)(-y) = xy

Totality: total
Visibility: public export
inverseOfUnityR : {auto{conArg:4659} : RingWithUnityty} -> (x : ty) ->inverseunity<.>x=inversex
  (-1)x = -x

Totality: total
Visibility: public export
inverseOfUnityL : {auto{conArg:4720} : RingWithUnityty} -> (x : ty) ->x<.>inverseunity=inversex
  x(-1) = -x

Totality: total
Visibility: public export
\ No newline at end of file +

Control.Algebra.Laws(source)

Definitions

uniqueInverse : {auto{conArg:2029} : MonoidVty} -> (x : ty) -> (y : ty) -> (z : ty) ->y<+>x=neutral->x<+>z=neutral->y=z
  Inverses are unique.

Totality: total
Visibility: public export
selfSquareId : {auto{conArg:2147} : Groupty} -> (x : ty) ->x<+>x=x->x=neutral
  Only identity is self-squaring.

Totality: total
Visibility: public export
inverseCommute : {auto{conArg:2247} : Groupty} -> (x : ty) -> (y : ty) ->y<+>x=neutral->x<+>y=neutral
  Inverse elements commute.

Totality: total
Visibility: public export
groupInverseIsInverseL : {auto{conArg:2417} : Groupty} -> (x : ty) ->x<+>inversex=neutral
  Every element has a right inverse.

Totality: total
Visibility: public export
inverseSquaredIsIdentity : {auto{conArg:2459} : Groupty} -> (x : ty) ->inverse (inversex) =x
  -(-x) = x

Totality: total
Visibility: public export
squareIdCommutative : {auto{conArg:2500} : Groupty} -> (x : ty) -> (y : ty) -> ((a : ty) ->a<+>a=neutral) ->x<+>y=y<+>x
  If every square in a group is identity, the group is commutative.

Totality: total
Visibility: public export
inverseNeutralIsNeutral : {auto{conArg:2701} : Groupty} ->inverseneutral=neutral
  -0 = 0

Totality: total
Visibility: public export
cancelLeft : {auto{conArg:2778} : Groupty} -> (x : ty) -> (y : ty) -> (z : ty) ->x<+>y=x<+>z->y=z
  y = z if x + y = x + z

Totality: total
Visibility: public export
cancelRight : {auto{conArg:2923} : Groupty} -> (x : ty) -> (y : ty) -> (z : ty) ->y<+>x=z<+>x->y=z
  y = z if y + x = z + x.

Totality: total
Visibility: public export
neutralProductInverseR : {auto{conArg:3068} : Groupty} -> (a : ty) -> (b : ty) ->a<+>b=neutral->a=inverseb
  ab = 0 -> a = b^-1

Totality: total
Visibility: public export
neutralProductInverseL : {auto{conArg:3129} : Groupty} -> (a : ty) -> (b : ty) ->a<+>b=neutral->inversea=b
  ab = 0 -> a^-1 = b

Totality: total
Visibility: public export
latinSquareProperty : {auto{conArg:3190} : Groupty} -> (a : ty) -> (b : ty) -> ((x : ty**a<+>x=b), (y : ty**y<+>a=b))
  For any a and b, ax = b and ya = b have solutions.

Totality: total
Visibility: public export
uniqueSolutionR : {auto{conArg:3341} : Groupty} -> (a : ty) -> (b : ty) -> (x : ty) -> (y : ty) ->a<+>x=b->a<+>y=b->x=y
  For any a, b, x, the solution to ax = b is unique.

Totality: total
Visibility: public export
uniqueSolutionL : {auto{conArg:3413} : Groupt} -> (a : t) -> (b : t) -> (x : t) -> (y : t) ->x<+>a=b->y<+>a=b->x=y
  For any a, b, y, the solution to ya = b is unique.

Totality: total
Visibility: public export
homoNeutral : {auto{conArg:3485} : GroupHomomorphismab} ->toneutral=neutral
  Homomorphism preserves neutral.

Totality: total
Visibility: public export
homoInverse : {auto{conArg:3596} : GroupHomomorphismab} -> (x : a) ->theb (to (inversex)) =theb (inverse (tox))
  Homomorphism preserves inverses.

Totality: total
Visibility: public export
multNeutralAbsorbingL : {auto{conArg:3717} : Ringty} -> (r : ty) ->neutral<.>r=neutral
  0x = x

Totality: total
Visibility: public export
multNeutralAbsorbingR : {auto{conArg:3980} : Ringty} -> (l : ty) ->l<.>neutral=neutral
  x0 = 0

Totality: total
Visibility: public export
multInverseInversesL : {auto{conArg:4239} : Ringty} -> (l : ty) -> (r : ty) ->inversel<.>r=inverse (l<.>r)
  (-x)y = -(xy)

Totality: total
Visibility: public export
multInverseInversesR : {auto{conArg:4410} : Ringty} -> (l : ty) -> (r : ty) ->l<.>inverser=inverse (l<.>r)
  x(-y) = -(xy)

Totality: total
Visibility: public export
multNegativeByNegativeIsPositive : {auto{conArg:4577} : Ringty} -> (l : ty) -> (r : ty) ->inversel<.>inverser=l<.>r
  (-x)(-y) = xy

Totality: total
Visibility: public export
inverseOfUnityR : {auto{conArg:4659} : RingWithUnityty} -> (x : ty) ->inverseunity<.>x=inversex
  (-1)x = -x

Totality: total
Visibility: public export
inverseOfUnityL : {auto{conArg:4720} : RingWithUnityty} -> (x : ty) ->x<.>inverseunity=inversex
  x(-1) = -x

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Control.Algebra.html b/contrib/docs/Control.Algebra.html index 4d256c8e5b..40035a6834 100644 --- a/contrib/docs/Control.Algebra.html +++ b/contrib/docs/Control.Algebra.html @@ -61,4 +61,4 @@ -

Control.Algebra(source)

Definitions

interfaceSemigroupV : Type->Type
Parameters: ty
Constraints: Semigroup ty
Methods:
semigroupOpIsAssociative : (l : ty) -> (c : ty) -> (r : ty) ->l<+> (c<+>r) = (l<+>c) <+>r

Implementation: 
SemigroupVty=>SemigroupV (Identityty)
semigroupOpIsAssociative : {auto__con : SemigroupVty} -> (l : ty) -> (c : ty) -> (r : ty) ->l<+> (c<+>r) = (l<+>c) <+>r
Visibility: public export
interfaceMonoidV : Type->Type
Parameters: ty
Constraints: Monoid ty, SemigroupV ty
Methods:
monoidNeutralIsNeutralL : (l : ty) ->l<+>neutral=l
monoidNeutralIsNeutralR : (r : ty) ->neutral<+>r=r

Implementation: 
MonoidVty=>MonoidV (Identityty)
monoidNeutralIsNeutralL : {auto__con : MonoidVty} -> (l : ty) ->l<+>neutral=l
Visibility: public export
monoidNeutralIsNeutralR : {auto__con : MonoidVty} -> (r : ty) ->neutral<+>r=r
Visibility: public export
interfaceGroup : Type->Type
  Sets equipped with a single binary operation that is associative,
along with a neutral element for that binary operation and
inverses for all elements. Satisfies the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral

Parameters: ty
Constraints: MonoidV ty
Methods:
inverse : ty->ty
groupInverseIsInverseR : (r : ty) ->inverser<+>r=neutral

Implementations:
AbelianGroupty->Groupty
GroupHomomorphismab->Groupa
GroupHomomorphismab->Groupb
Ringty->Groupty
inverse : Groupty=>ty->ty
Visibility: public export
groupInverseIsInverseR : {auto__con : Groupty} -> (r : ty) ->inverser<+>r=neutral
Visibility: public export
interfaceAbelianGroup : Type->Type
  Sets equipped with a single binary operation that is associative
and commutative, along with a neutral element for that binary
operation and inverses for all elements. Satisfies the following
laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Commutativity of `<+>`:
forall a b, a <+> b == b <+> a
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral

Parameters: ty
Constraints: Group ty
Methods:
groupOpIsCommutative : (l : ty) -> (r : ty) ->l<+>r=r<+>l
groupOpIsCommutative : {auto__con : AbelianGroupty} -> (l : ty) -> (r : ty) ->l<+>r=r<+>l
Visibility: public export
interfaceGroupHomomorphism : Type->Type->Type
  A homomorphism is a mapping that preserves group structure.

Parameters: a, b
Constraints: Group a, Group b
Methods:
to : a->b
toGroup : (x : a) -> (y : a) ->to (x<+>y) =tox<+>toy
to : GroupHomomorphismab=>a->b
Visibility: public export
toGroup : {auto__con : GroupHomomorphismab} -> (x : a) -> (y : a) ->to (x<+>y) =tox<+>toy
Visibility: public export
interfaceRing : Type->Type
  Sets equipped with two binary operations, one associative and
commutative supplied with a neutral element, and the other
associative, with distributivity laws relating the two operations.
Satisfies the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Commutativity of `<+>`:
forall a b, a <+> b == b <+> a
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral
+ Associativity of `<.>`:
forall a b c, a <.> (b <.> c) == (a <.> b) <.> c
+ Distributivity of `<.>` and `<+>`:
forall a b c, a <.> (b <+> c) == (a <.> b) <+> (a <.> c)
forall a b c, (a <+> b) <.> c == (a <.> c) <+> (b <.> c)

Parameters: ty
Constraints: Group ty
Methods:
(<.>) : ty->ty->ty
Fixity Declaration: infixl operator, level 7
ringOpIsAssociative : (l : ty) -> (c : ty) -> (r : ty) ->l<.> (c<.>r) = (l<.>c) <.>r
ringOpIsDistributiveL : (l : ty) -> (c : ty) -> (r : ty) ->l<.> (c<+>r) = (l<.>c) <+> (l<.>r)
ringOpIsDistributiveR : (l : ty) -> (c : ty) -> (r : ty) -> (l<+>c) <.>r= (l<.>r) <+> (c<.>r)

Implementation: 
RingWithUnityty->Ringty
(<.>) : Ringty=>ty->ty->ty
Visibility: public export
Fixity Declaration: infixl operator, level 7
ringOpIsAssociative : {auto__con : Ringty} -> (l : ty) -> (c : ty) -> (r : ty) ->l<.> (c<.>r) = (l<.>c) <.>r
Visibility: public export
ringOpIsDistributiveL : {auto__con : Ringty} -> (l : ty) -> (c : ty) -> (r : ty) ->l<.> (c<+>r) = (l<.>c) <+> (l<.>r)
Visibility: public export
ringOpIsDistributiveR : {auto__con : Ringty} -> (l : ty) -> (c : ty) -> (r : ty) -> (l<+>c) <.>r= (l<.>r) <+> (c<.>r)
Visibility: public export
interfaceRingWithUnity : Type->Type
  Sets equipped with two binary operations, one associative and
commutative supplied with a neutral element, and the other
associative supplied with a neutral element, with distributivity
laws relating the two operations. Satisfies the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Commutativity of `<+>`:
forall a b, a <+> b == b <+> a
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral
+ Associativity of `<.>`:
forall a b c, a <.> (b <.> c) == (a <.> b) <.> c
+ Neutral for `<.>`:
forall a, a <.> unity == a
forall a, unity <.> a == a
+ Distributivity of `<.>` and `<+>`:
forall a b c, a <.> (b <+> c) == (a <.> b) <+> (a <.> c)
forall a b c, (a <+> b) <.> c == (a <.> c) <+> (b <.> c)

Parameters: ty
Constraints: Ring ty
Methods:
unity : ty
unityIsRingIdL : (l : ty) ->l<.>unity=l
unityIsRingIdR : (r : ty) ->unity<.>r=r

Implementation: 
Fieldty->RingWithUnityty
unity : RingWithUnityty=>ty
Visibility: public export
unityIsRingIdL : {auto__con : RingWithUnityty} -> (l : ty) ->l<.>unity=l
Visibility: public export
unityIsRingIdR : {auto__con : RingWithUnityty} -> (r : ty) ->unity<.>r=r
Visibility: public export
interfaceField : Type->Type
  Sets equipped with two binary operations – both associative,
commutative and possessing a neutral element – and distributivity
laws relating the two operations. All elements except the additive
identity should have a multiplicative inverse. Should (but may
not) satisfy the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Commutativity of `<+>`:
forall a b, a <+> b == b <+> a
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral
+ Associativity of `<.>`:
forall a b c, a <.> (b <.> c) == (a <.> b) <.> c
+ Unity for `<.>`:
forall a, a <.> unity == a
forall a, unity <.> a == a
+ InverseM of `<.>`, except for neutral
forall a /= neutral, a <.> inverseM a == unity
forall a /= neutral, inverseM a <.> a == unity
+ Distributivity of `<.>` and `<+>`:
forall a b c, a <.> (b <+> c) == (a <.> b) <+> (a <.> c)
forall a b c, (a <+> b) <.> c == (a <.> c) <+> (b <.> c)

Parameters: ty
Constraints: RingWithUnity ty
Methods:
inverseM : (x : ty) ->Not (x=neutral) ->ty
inverseM : {auto__con : Fieldty} -> (x : ty) ->Not (x=neutral) ->ty
Visibility: public export
\ No newline at end of file +

Control.Algebra(source)

Definitions

interfaceSemigroupV : Type->Type
Parameters: ty
Constraints: Semigroup ty
Methods:
semigroupOpIsAssociative : (l : ty) -> (c : ty) -> (r : ty) ->l<+> (c<+>r) = (l<+>c) <+>r

Implementation: 
SemigroupVty=>SemigroupV (Identityty)
semigroupOpIsAssociative : {auto__con : SemigroupVty} -> (l : ty) -> (c : ty) -> (r : ty) ->l<+> (c<+>r) = (l<+>c) <+>r
Visibility: public export
interfaceMonoidV : Type->Type
Parameters: ty
Constraints: Monoid ty, SemigroupV ty
Methods:
monoidNeutralIsNeutralL : (l : ty) ->l<+>neutral=l
monoidNeutralIsNeutralR : (r : ty) ->neutral<+>r=r

Implementation: 
MonoidVty=>MonoidV (Identityty)
monoidNeutralIsNeutralL : {auto__con : MonoidVty} -> (l : ty) ->l<+>neutral=l
Visibility: public export
monoidNeutralIsNeutralR : {auto__con : MonoidVty} -> (r : ty) ->neutral<+>r=r
Visibility: public export
interfaceGroup : Type->Type
  Sets equipped with a single binary operation that is associative,
along with a neutral element for that binary operation and
inverses for all elements. Satisfies the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral

Parameters: ty
Constraints: MonoidV ty
Methods:
inverse : ty->ty
groupInverseIsInverseR : (r : ty) ->inverser<+>r=neutral

Implementations:
AbelianGroupty->Groupty
GroupHomomorphismab->Groupa
GroupHomomorphismab->Groupb
Ringty->Groupty
inverse : Groupty=>ty->ty
Visibility: public export
groupInverseIsInverseR : {auto__con : Groupty} -> (r : ty) ->inverser<+>r=neutral
Visibility: public export
interfaceAbelianGroup : Type->Type
  Sets equipped with a single binary operation that is associative
and commutative, along with a neutral element for that binary
operation and inverses for all elements. Satisfies the following
laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Commutativity of `<+>`:
forall a b, a <+> b == b <+> a
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral

Parameters: ty
Constraints: Group ty
Methods:
groupOpIsCommutative : (l : ty) -> (r : ty) ->l<+>r=r<+>l
groupOpIsCommutative : {auto__con : AbelianGroupty} -> (l : ty) -> (r : ty) ->l<+>r=r<+>l
Visibility: public export
interfaceGroupHomomorphism : Type->Type->Type
  A homomorphism is a mapping that preserves group structure.

Parameters: a, b
Constraints: Group a, Group b
Methods:
to : a->b
toGroup : (x : a) -> (y : a) ->to (x<+>y) =tox<+>toy
to : GroupHomomorphismab=>a->b
Visibility: public export
toGroup : {auto__con : GroupHomomorphismab} -> (x : a) -> (y : a) ->to (x<+>y) =tox<+>toy
Visibility: public export
interfaceRing : Type->Type
  Sets equipped with two binary operations, one associative and
commutative supplied with a neutral element, and the other
associative, with distributivity laws relating the two operations.
Satisfies the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Commutativity of `<+>`:
forall a b, a <+> b == b <+> a
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral
+ Associativity of `<.>`:
forall a b c, a <.> (b <.> c) == (a <.> b) <.> c
+ Distributivity of `<.>` and `<+>`:
forall a b c, a <.> (b <+> c) == (a <.> b) <+> (a <.> c)
forall a b c, (a <+> b) <.> c == (a <.> c) <+> (b <.> c)

Parameters: ty
Constraints: Group ty
Methods:
(<.>) : ty->ty->ty
Fixity Declaration: infixl operator, level 7
ringOpIsAssociative : (l : ty) -> (c : ty) -> (r : ty) ->l<.> (c<.>r) = (l<.>c) <.>r
ringOpIsDistributiveL : (l : ty) -> (c : ty) -> (r : ty) ->l<.> (c<+>r) = (l<.>c) <+> (l<.>r)
ringOpIsDistributiveR : (l : ty) -> (c : ty) -> (r : ty) -> (l<+>c) <.>r= (l<.>r) <+> (c<.>r)

Implementation: 
RingWithUnityty->Ringty
(<.>) : Ringty=>ty->ty->ty
Visibility: public export
Fixity Declaration: infixl operator, level 7
ringOpIsAssociative : {auto__con : Ringty} -> (l : ty) -> (c : ty) -> (r : ty) ->l<.> (c<.>r) = (l<.>c) <.>r
Visibility: public export
ringOpIsDistributiveL : {auto__con : Ringty} -> (l : ty) -> (c : ty) -> (r : ty) ->l<.> (c<+>r) = (l<.>c) <+> (l<.>r)
Visibility: public export
ringOpIsDistributiveR : {auto__con : Ringty} -> (l : ty) -> (c : ty) -> (r : ty) -> (l<+>c) <.>r= (l<.>r) <+> (c<.>r)
Visibility: public export
interfaceRingWithUnity : Type->Type
  Sets equipped with two binary operations, one associative and
commutative supplied with a neutral element, and the other
associative supplied with a neutral element, with distributivity
laws relating the two operations. Satisfies the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Commutativity of `<+>`:
forall a b, a <+> b == b <+> a
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral
+ Associativity of `<.>`:
forall a b c, a <.> (b <.> c) == (a <.> b) <.> c
+ Neutral for `<.>`:
forall a, a <.> unity == a
forall a, unity <.> a == a
+ Distributivity of `<.>` and `<+>`:
forall a b c, a <.> (b <+> c) == (a <.> b) <+> (a <.> c)
forall a b c, (a <+> b) <.> c == (a <.> c) <+> (b <.> c)

Parameters: ty
Constraints: Ring ty
Methods:
unity : ty
unityIsRingIdL : (l : ty) ->l<.>unity=l
unityIsRingIdR : (r : ty) ->unity<.>r=r

Implementation: 
Fieldty->RingWithUnityty
unity : RingWithUnityty=>ty
Visibility: public export
unityIsRingIdL : {auto__con : RingWithUnityty} -> (l : ty) ->l<.>unity=l
Visibility: public export
unityIsRingIdR : {auto__con : RingWithUnityty} -> (r : ty) ->unity<.>r=r
Visibility: public export
interfaceField : Type->Type
  Sets equipped with two binary operations – both associative,
commutative and possessing a neutral element – and distributivity
laws relating the two operations. All elements except the additive
identity should have a multiplicative inverse. Should (but may
not) satisfy the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Commutativity of `<+>`:
forall a b, a <+> b == b <+> a
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a
+ Inverse for `<+>`:
forall a, a <+> inverse a == neutral
forall a, inverse a <+> a == neutral
+ Associativity of `<.>`:
forall a b c, a <.> (b <.> c) == (a <.> b) <.> c
+ Unity for `<.>`:
forall a, a <.> unity == a
forall a, unity <.> a == a
+ InverseM of `<.>`, except for neutral
forall a /= neutral, a <.> inverseM a == unity
forall a /= neutral, inverseM a <.> a == unity
+ Distributivity of `<.>` and `<+>`:
forall a b c, a <.> (b <+> c) == (a <.> b) <+> (a <.> c)
forall a b c, (a <+> b) <.> c == (a <.> c) <+> (b <.> c)

Parameters: ty
Constraints: RingWithUnity ty
Methods:
inverseM : (x : ty) ->Not (x=neutral) ->ty
inverseM : {auto__con : Fieldty} -> (x : ty) ->Not (x=neutral) ->ty
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Control.Arrow.html b/contrib/docs/Control.Arrow.html index f213ef6205..3c40279157 100644 --- a/contrib/docs/Control.Arrow.html +++ b/contrib/docs/Control.Arrow.html @@ -61,4 +61,4 @@ -

Control.Arrow(source)

Definitions

interfaceArrow : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Category arr
Methods:
arrow : (a->b) ->arrab
  Converts a function from input to output into a arrow computation.
first : arrab->arr (a, c) (b, c)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the first component and leaves the second component
untouched, thus saving its value across a computation.
second : arrab->arr (c, a) (c, b)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the second component and leaves the first component
untouched, thus saving its value across a computation.
(***) : arrab->arra'b'->arr (a, a') (b, b')
  A combinator which processes both components of a pair.

Fixity Declaration: infixr operator, level 3
(&&&) : arrab->arrab'->arra (b, b')
  A combinator which builds a pair from the results of two arrows.

Fixity Declaration: infixr operator, level 3

Implementations:
ArrowMorphism
Monadm=>Arrow (Kleislimorphismm)
arrow : Arrowarr=> (a->b) ->arrab
  Converts a function from input to output into a arrow computation.

Visibility: public export
first : Arrowarr=>arrab->arr (a, c) (b, c)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the first component and leaves the second component
untouched, thus saving its value across a computation.

Visibility: public export
second : Arrowarr=>arrab->arr (c, a) (c, b)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the second component and leaves the first component
untouched, thus saving its value across a computation.

Visibility: public export
(***) : Arrowarr=>arrab->arra'b'->arr (a, a') (b, b')
  A combinator which processes both components of a pair.

Visibility: public export
Fixity Declaration: infixr operator, level 3
(&&&) : Arrowarr=>arrab->arrab'->arra (b, b')
  A combinator which builds a pair from the results of two arrows.

Visibility: public export
Fixity Declaration: infixr operator, level 3
interfaceArrowZero : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Arrow arr
Methods:
zeroArrow : arrab

Implementation: 
ArrowPlusarr->ArrowZeroarr
zeroArrow : ArrowZeroarr=>arrab
Visibility: public export
interfaceArrowPlus : (Type->Type->Type) ->Type
Parameters: arr
Constraints: ArrowZero arr
Methods:
(<++>) : arrab->arrab->arrab
Fixity Declaration: infixr operator, level 5
(<++>) : ArrowPlusarr=>arrab->arrab->arrab
Visibility: public export
Fixity Declaration: infixr operator, level 5
interfaceArrowChoice : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Arrow arr
Methods:
left : arrab->arr (Eitherac) (Eitherbc)
right : arrab->arr (Eitherca) (Eithercb)
(+++) : arrab->arrcd->arr (Eitherac) (Eitherbd)
Fixity Declaration: infixr operator, level 2
(\|/) : arrab->arrcb->arr (Eitherac) b
Fixity Declaration: infixr operator, level 2

Implementation: 
Monadm=>ArrowChoice (Kleislimorphismm)
left : ArrowChoicearr=>arrab->arr (Eitherac) (Eitherbc)
Visibility: public export
right : ArrowChoicearr=>arrab->arr (Eitherca) (Eithercb)
Visibility: public export
(+++) : ArrowChoicearr=>arrab->arrcd->arr (Eitherac) (Eitherbd)
Visibility: public export
Fixity Declaration: infixr operator, level 2
(\|/) : ArrowChoicearr=>arrab->arrcb->arr (Eitherac) b
Visibility: public export
Fixity Declaration: infixr operator, level 2
interfaceArrowApply : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Arrow arr
Methods:
app : arr (arrab, a) b

Implementation: 
Monadm=>ArrowApply (Kleislimorphismm)
app : ArrowApplyarr=>arr (arrab, a) b
Visibility: public export
dataArrowMonad : (Type->Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkArrowMonad : arr () a->ArrowMonadarra

Hints:
Arrowa=>Applicative (ArrowMonada)
Arrowa=>Functor (ArrowMonada)
ArrowApplya=>Monad (ArrowMonada)
runArrowMonad : ArrowMonadarra->arr () a
Visibility: public export
interfaceArrowLoop : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Arrow arr
Methods:
loop : arr (a, c) (b, c) ->arrab
loop : ArrowLooparr=>arr (a, c) (b, c) ->arrab
Visibility: public export
liftA2 : Arrowarr=> (a->b->c) ->arrda->arrdb->arrdc
  Applying a binary operator to the results of two arrow computations.

Visibility: public export
\ No newline at end of file +

Control.Arrow(source)

Definitions

interfaceArrow : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Category arr
Methods:
arrow : (a->b) ->arrab
  Converts a function from input to output into a arrow computation.
first : arrab->arr (a, c) (b, c)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the first component and leaves the second component
untouched, thus saving its value across a computation.
second : arrab->arr (c, a) (c, b)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the second component and leaves the first component
untouched, thus saving its value across a computation.
(***) : arrab->arra'b'->arr (a, a') (b, b')
  A combinator which processes both components of a pair.

Fixity Declaration: infixr operator, level 3
(&&&) : arrab->arrab'->arra (b, b')
  A combinator which builds a pair from the results of two arrows.

Fixity Declaration: infixr operator, level 3

Implementations:
ArrowMorphism
Monadm=>Arrow (Kleislimorphismm)
arrow : Arrowarr=> (a->b) ->arrab
  Converts a function from input to output into a arrow computation.

Visibility: public export
first : Arrowarr=>arrab->arr (a, c) (b, c)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the first component and leaves the second component
untouched, thus saving its value across a computation.

Visibility: public export
second : Arrowarr=>arrab->arr (c, a) (c, b)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the second component and leaves the first component
untouched, thus saving its value across a computation.

Visibility: public export
(***) : Arrowarr=>arrab->arra'b'->arr (a, a') (b, b')
  A combinator which processes both components of a pair.

Visibility: public export
Fixity Declaration: infixr operator, level 3
(&&&) : Arrowarr=>arrab->arrab'->arra (b, b')
  A combinator which builds a pair from the results of two arrows.

Visibility: public export
Fixity Declaration: infixr operator, level 3
interfaceArrowZero : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Arrow arr
Methods:
zeroArrow : arrab

Implementation: 
ArrowPlusarr->ArrowZeroarr
zeroArrow : ArrowZeroarr=>arrab
Visibility: public export
interfaceArrowPlus : (Type->Type->Type) ->Type
Parameters: arr
Constraints: ArrowZero arr
Methods:
(<++>) : arrab->arrab->arrab
Fixity Declaration: infixr operator, level 5
(<++>) : ArrowPlusarr=>arrab->arrab->arrab
Visibility: public export
Fixity Declaration: infixr operator, level 5
interfaceArrowChoice : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Arrow arr
Methods:
left : arrab->arr (Eitherac) (Eitherbc)
right : arrab->arr (Eitherca) (Eithercb)
(+++) : arrab->arrcd->arr (Eitherac) (Eitherbd)
Fixity Declaration: infixr operator, level 2
(\|/) : arrab->arrcb->arr (Eitherac) b
Fixity Declaration: infixr operator, level 2

Implementation: 
Monadm=>ArrowChoice (Kleislimorphismm)
left : ArrowChoicearr=>arrab->arr (Eitherac) (Eitherbc)
Visibility: public export
right : ArrowChoicearr=>arrab->arr (Eitherca) (Eithercb)
Visibility: public export
(+++) : ArrowChoicearr=>arrab->arrcd->arr (Eitherac) (Eitherbd)
Visibility: public export
Fixity Declaration: infixr operator, level 2
(\|/) : ArrowChoicearr=>arrab->arrcb->arr (Eitherac) b
Visibility: public export
Fixity Declaration: infixr operator, level 2
interfaceArrowApply : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Arrow arr
Methods:
app : arr (arrab, a) b

Implementation: 
Monadm=>ArrowApply (Kleislimorphismm)
app : ArrowApplyarr=>arr (arrab, a) b
Visibility: public export
dataArrowMonad : (Type->Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkArrowMonad : arr () a->ArrowMonadarra

Hints:
Arrowa=>Applicative (ArrowMonada)
Arrowa=>Functor (ArrowMonada)
ArrowApplya=>Monad (ArrowMonada)
runArrowMonad : ArrowMonadarra->arr () a
Visibility: public export
interfaceArrowLoop : (Type->Type->Type) ->Type
Parameters: arr
Constraints: Arrow arr
Methods:
loop : arr (a, c) (b, c) ->arrab
loop : ArrowLooparr=>arr (a, c) (b, c) ->arrab
Visibility: public export
liftA2 : Arrowarr=> (a->b->c) ->arrda->arrdb->arrdc
  Applying a binary operator to the results of two arrow computations.

Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Control.Category.html b/contrib/docs/Control.Category.html index f1b21cad82..2e8f738960 100644 --- a/contrib/docs/Control.Category.html +++ b/contrib/docs/Control.Category.html @@ -61,4 +61,4 @@ -

Control.Category(source)

Definitions

interfaceCategory : (obj->obj->Type) ->Type
Parameters: cat
Methods:
id : cataa
(.) : catbc->catab->catac
Fixity Declaration: infixr operator, level 9

Implementations:
CategoryMorphism
Monadm=>Category (Kleislimorphismm)
id : Categorycat=>cataa
Visibility: public export
(.) : Categorycat=>catbc->catab->catac
Visibility: public export
Fixity Declaration: infixr operator, level 9
(>>>) : Categorycat=>catab->catbc->catac
Visibility: public export
Fixity Declaration: infixr operator, level 1
\ No newline at end of file +

Control.Category(source)

Definitions

interfaceCategory : (obj->obj->Type) ->Type
Parameters: cat
Methods:
id : cataa
(.) : catbc->catab->catac
Fixity Declaration: infixr operator, level 9

Implementations:
CategoryMorphism
Monadm=>Category (Kleislimorphismm)
id : Categorycat=>cataa
Visibility: public export
(.) : Categorycat=>catbc->catab->catac
Visibility: public export
Fixity Declaration: infixr operator, level 9
(>>>) : Categorycat=>catab->catbc->catac
Visibility: public export
Fixity Declaration: infixr operator, level 1
\ No newline at end of file diff --git a/contrib/docs/Control.Delayed.html b/contrib/docs/Control.Delayed.html index c2ab090125..779e46f2ee 100644 --- a/contrib/docs/Control.Delayed.html +++ b/contrib/docs/Control.Delayed.html @@ -62,4 +62,4 @@

Control.Delayed(source)

Utilities functions for conditionally delaying values.
-

Definitions

inf : Bool->Type->Type
  Type-level function for a conditionally infinite type.

Visibility: public export
lazy : Bool->Type->Type
  Type-level function for a conditionally lazy type.

Visibility: public export
\ No newline at end of file +

Definitions

inf : Bool->Type->Type
  Type-level function for a conditionally infinite type.

Visibility: public export
lazy : Bool->Type->Type
  Type-level function for a conditionally lazy type.

Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Control.Monad.Algebra.html b/contrib/docs/Control.Monad.Algebra.html index 91d3d34be0..f9efc6331e 100644 --- a/contrib/docs/Control.Monad.Algebra.html +++ b/contrib/docs/Control.Monad.Algebra.html @@ -61,4 +61,4 @@ -

Control.Monad.Algebra(source)

Definitions

\ No newline at end of file +

Control.Monad.Algebra(source)

Definitions

\ No newline at end of file diff --git a/contrib/docs/Control.Validation.html b/contrib/docs/Control.Validation.html index dc562100b2..e84a2f9146 100644 --- a/contrib/docs/Control.Validation.html +++ b/contrib/docs/Control.Validation.html @@ -61,4 +61,4 @@ -

Control.Validation(source)

Definitions

Result : (Type->Type) ->Type->Type
Totality: total
Visibility: public export
dataValidatorT : (Type->Type) ->Type->Type->Type
  Validators in this module come in two flavours: Structural Validators and
Property Validators. They are both wrappers around functions which take
some input and confirm that it's valid (returning some witness of its
validity) or fail with an error described by a string.

Totality: total
Visibility: export
Constructor: 
MkValidator : (a->Resultmb) ->ValidatorTmab

Hints:
Monadm=>Alternative (ValidatorTma)
Monadm=>Applicative (ValidatorTma)
Functorm=>Functor (ValidatorTma)
Monadm=>Monad (ValidatorTma)
Validator : Type->Type->Type
Totality: total
Visibility: public export
validateT : ValidatorTmab->a->Resultmb
  Run validation on given input, returning (Right refinedInput) if everything
is all right or (Left errorMessage) if it's not.

Totality: total
Visibility: export
validate : Validatorab->a->EitherStringb
  Run validation within the Identity monad and unwrap result immediately.

Totality: total
Visibility: export
validator : (a->Resultmb) ->ValidatorTmab
  Given a function from input to Either String output, make a validator.

Totality: total
Visibility: export
withError : Monadm=>String->ValidatorTmab->ValidatorTmab
  Replace validator's default error message.

Totality: total
Visibility: export
fail : Applicativem=>String->ValidatorTmab
  A validator which always fails with a given message.

Totality: total
Visibility: export
(>>>) : Monadm=>ValidatorTmab->ValidatorTmbc->ValidatorTmac
  Compose two validators so that the second validates the output of the first.

Totality: total
Visibility: export
Fixity Declarations:
infixl operator, level 2
infixr operator, level 1
contramap : (a->b) ->ValidatorTmbc->ValidatorTmac
  Alter the input before validation using given function.

Totality: total
Visibility: export
decide : Monadm=> (t->String) -> ((x : t) ->Dec (px)) ->PropValidatormtp
  Given a value x and a decision procedure for property p, validateT if p x
holds, returning a proof if it does. The procedure also has access to the
raw input in case it was helpful.

Totality: total
Visibility: export
fromMaybe : Monadm=> (a->String) -> (a->Maybeb) ->ValidatorTmab
  Given a function converting a into Maybe b, build a Validator of a
converting it into b.

Totality: total
Visibility: export
natural : Monadm=>ValidatorTmStringNat
  Verify whether a String represents a natural number.

Totality: total
Visibility: export
integral : Numa=>Nega=>Monadm=>ValidatorTmStringa
  Verify whether a String represents an Integer

Totality: total
Visibility: export
double : Monadm=>ValidatorTmStringDouble
  Verify that a string represents a decimal fraction.

Totality: total
Visibility: export
length : Monadm=> (l : Nat) ->ValidatorTm (Lista) (Vectla)
  Verify whether a list has a desired length.

Totality: total
Visibility: export
equal : Monadm=>DecEqt=> (a : t) ->PropValidatormt (\b=>a=b)
  Verify that certain values are equal.

Totality: total
Visibility: export
lteNat : Monadm=> (bound : Nat) ->PropValidatormNat (flipLTEbound)
  Verify that a Nat is less than or equal to  certain bound.

Totality: total
Visibility: export
gteNat : Monadm=> (bound : Nat) ->PropValidatormNat (flipGTEbound)
  Verify that a Nat is greater than or equal to certain bound.

Totality: total
Visibility: export
ltNat : Monadm=> (bound : Nat) ->PropValidatormNat (flipLTbound)
  Verify that a Nat is strictly less than a certain bound.

Totality: total
Visibility: export
gtNat : Monadm=> (bound : Nat) ->PropValidatormNat (flipGTbound)
  Verify that a Nat is strictly greate than a certain bound.

Totality: total
Visibility: export
\ No newline at end of file +

Control.Validation(source)

Definitions

Result : (Type->Type) ->Type->Type
Totality: total
Visibility: public export
dataValidatorT : (Type->Type) ->Type->Type->Type
  Validators in this module come in two flavours: Structural Validators and
Property Validators. They are both wrappers around functions which take
some input and confirm that it's valid (returning some witness of its
validity) or fail with an error described by a string.

Totality: total
Visibility: export
Constructor: 
MkValidator : (a->Resultmb) ->ValidatorTmab

Hints:
Monadm=>Alternative (ValidatorTma)
Monadm=>Applicative (ValidatorTma)
Functorm=>Functor (ValidatorTma)
Monadm=>Monad (ValidatorTma)
Validator : Type->Type->Type
Totality: total
Visibility: public export
validateT : ValidatorTmab->a->Resultmb
  Run validation on given input, returning (Right refinedInput) if everything
is all right or (Left errorMessage) if it's not.

Totality: total
Visibility: export
validate : Validatorab->a->EitherStringb
  Run validation within the Identity monad and unwrap result immediately.

Totality: total
Visibility: export
validator : (a->Resultmb) ->ValidatorTmab
  Given a function from input to Either String output, make a validator.

Totality: total
Visibility: export
withError : Monadm=>String->ValidatorTmab->ValidatorTmab
  Replace validator's default error message.

Totality: total
Visibility: export
fail : Applicativem=>String->ValidatorTmab
  A validator which always fails with a given message.

Totality: total
Visibility: export
(>>>) : Monadm=>ValidatorTmab->ValidatorTmbc->ValidatorTmac
  Compose two validators so that the second validates the output of the first.

Totality: total
Visibility: export
Fixity Declarations:
infixl operator, level 2
infixr operator, level 1
contramap : (a->b) ->ValidatorTmbc->ValidatorTmac
  Alter the input before validation using given function.

Totality: total
Visibility: export
decide : Monadm=> (t->String) -> ((x : t) ->Dec (px)) ->PropValidatormtp
  Given a value x and a decision procedure for property p, validateT if p x
holds, returning a proof if it does. The procedure also has access to the
raw input in case it was helpful.

Totality: total
Visibility: export
fromMaybe : Monadm=> (a->String) -> (a->Maybeb) ->ValidatorTmab
  Given a function converting a into Maybe b, build a Validator of a
converting it into b.

Totality: total
Visibility: export
natural : Monadm=>ValidatorTmStringNat
  Verify whether a String represents a natural number.

Totality: total
Visibility: export
integral : Numa=>Nega=>Monadm=>ValidatorTmStringa
  Verify whether a String represents an Integer

Totality: total
Visibility: export
double : Monadm=>ValidatorTmStringDouble
  Verify that a string represents a decimal fraction.

Totality: total
Visibility: export
length : Monadm=> (l : Nat) ->ValidatorTm (Lista) (Vectla)
  Verify whether a list has a desired length.

Totality: total
Visibility: export
equal : Monadm=>DecEqt=> (a : t) ->PropValidatormt (\b=>a=b)
  Verify that certain values are equal.

Totality: total
Visibility: export
lteNat : Monadm=> (bound : Nat) ->PropValidatormNat (flipLTEbound)
  Verify that a Nat is less than or equal to  certain bound.

Totality: total
Visibility: export
gteNat : Monadm=> (bound : Nat) ->PropValidatormNat (flipGTEbound)
  Verify that a Nat is greater than or equal to certain bound.

Totality: total
Visibility: export
ltNat : Monadm=> (bound : Nat) ->PropValidatormNat (flipLTbound)
  Verify that a Nat is strictly less than a certain bound.

Totality: total
Visibility: export
gtNat : Monadm=> (bound : Nat) ->PropValidatormNat (flipGTbound)
  Verify that a Nat is strictly greate than a certain bound.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Binary.Digit.html b/contrib/docs/Data.Binary.Digit.html index 1778edf4a3..2924576ae8 100644 --- a/contrib/docs/Data.Binary.Digit.html +++ b/contrib/docs/Data.Binary.Digit.html @@ -61,4 +61,4 @@ -

Data.Binary.Digit(source)

Definitions

dataDigit : Type
  This is essentially Bool but with names that are easier
to understand

Totality: total
Visibility: public export
Constructors:
O : Digit
I : Digit
isI : Digit->Bool
  Translation to Bool

Totality: total
Visibility: public export
toNat : Digit->Nat
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Binary.Digit(source)

Definitions

dataDigit : Type
  This is essentially Bool but with names that are easier
to understand

Totality: total
Visibility: public export
Constructors:
O : Digit
I : Digit
isI : Digit->Bool
  Translation to Bool

Totality: total
Visibility: public export
toNat : Digit->Nat
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Binary.html b/contrib/docs/Data.Binary.html index ef3a69511b..346349a423 100644 --- a/contrib/docs/Data.Binary.html +++ b/contrib/docs/Data.Binary.html @@ -61,4 +61,4 @@ -

Data.Binary(source)

Definitions

Bin : Type
  Bin represents binary numbers right-to-left.
For instance `4` can be represented as `OOI`.
Note that representations are not unique: one may append arbitrarily
many Os to the right of the representation without changing the meaning.

Totality: total
Visibility: public export
toNat : Bin->Nat
  Conversion from lists of bits to natural number.

Totality: total
Visibility: public export
suc : Bin->Bin
  Successor function on binary numbers.
Amortised constant time.

Totality: total
Visibility: public export
sucCorrect : toNat (sucbs) =S (toNatbs)
  Correctness proof of `suc` with respect to the semantics in terms of Nat

Totality: total
Visibility: export
\ No newline at end of file +

Data.Binary(source)

Definitions

Bin : Type
  Bin represents binary numbers right-to-left.
For instance `4` can be represented as `OOI`.
Note that representations are not unique: one may append arbitrarily
many Os to the right of the representation without changing the meaning.

Totality: total
Visibility: public export
toNat : Bin->Nat
  Conversion from lists of bits to natural number.

Totality: total
Visibility: public export
suc : Bin->Bin
  Successor function on binary numbers.
Amortised constant time.

Totality: total
Visibility: public export
sucCorrect : toNat (sucbs) =S (toNatbs)
  Correctness proof of `suc` with respect to the semantics in terms of Nat

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Bool.Algebra.html b/contrib/docs/Data.Bool.Algebra.html index 949c9059b6..2aad4bdf83 100644 --- a/contrib/docs/Data.Bool.Algebra.html +++ b/contrib/docs/Data.Bool.Algebra.html @@ -61,4 +61,4 @@ -

Data.Bool.Algebra(source)

\ No newline at end of file +

Data.Bool.Algebra(source)

\ No newline at end of file diff --git a/contrib/docs/Data.Bool.Decidable.html b/contrib/docs/Data.Bool.Decidable.html index 1bfa9d23d1..d9e021e334 100644 --- a/contrib/docs/Data.Bool.Decidable.html +++ b/contrib/docs/Data.Bool.Decidable.html @@ -61,4 +61,4 @@ -

Data.Bool.Decidable(source)

Definitions

dataReflects : Type->Bool->Type
Totality: total
Visibility: public export
Constructors:
RTrue : p->ReflectspTrue
RFalse : Notp->ReflectspFalse
recompute : Deca-> (0_ : a) ->a
Visibility: public export
invert : ({arg:910} : Reflectspb) -> (ifbthenpelseNotp)
Visibility: public export
remember : (ifbthenpelseNotp) ->Reflectspb
Visibility: public export
reflect : ({arg:989} : Reflectspb) -> (ifcthenpelseNotp) ->b=c
Visibility: public export
\ No newline at end of file +

Data.Bool.Decidable(source)

Definitions

dataReflects : Type->Bool->Type
Totality: total
Visibility: public export
Constructors:
RTrue : p->ReflectspTrue
RFalse : Notp->ReflectspFalse
recompute : Deca-> (0_ : a) ->a
Visibility: public export
invert : ({arg:910} : Reflectspb) -> (ifbthenpelseNotp)
Visibility: public export
remember : (ifbthenpelseNotp) ->Reflectspb
Visibility: public export
reflect : ({arg:989} : Reflectspb) -> (ifcthenpelseNotp) ->b=c
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Fin.Extra.html b/contrib/docs/Data.Fin.Extra.html index 8c8e6d82ce..bbce305f8f 100644 --- a/contrib/docs/Data.Fin.Extra.html +++ b/contrib/docs/Data.Fin.Extra.html @@ -61,4 +61,4 @@ -

Data.Fin.Extra(source)

Definitions

elemSmallerThanBound : (n : Finm) ->LT (finToNatn) m
  A Fin's underlying natural number is smaller than the bound

Totality: total
Visibility: export
finToNatLastIsBound : finToNatlast=n
  Last's underlying natural number is the bound's predecessor

Totality: total
Visibility: export
finToNatWeakenNeutral : finToNat (weakenn) =finToNatn
  Weaken does not modify the underlying natural number

Totality: total
Visibility: export
finToNatWeakenNNeutral : (0m : Nat) -> (k : Finn) ->finToNat (weakenNmk) =finToNatk
  WeakenN does not modify the underlying natural number

Totality: total
Visibility: export
finToNatShift : (k : Nat) -> (a : Finn) ->finToNat (shiftka) =k+finToNata
  `Shift k` shifts the underlying natural number by `k`.

Totality: total
Visibility: export
invFin : Finn->Finn
  Compute the Fin such that `k + invFin k = n - 1`

Totality: total
Visibility: public export
invFinSpec : (i : Finn) -> (1+finToNati) +finToNat (invFini) =n
Totality: total
Visibility: export
invFinWeakenIsFS : (m : Finn) ->invFin (weakenm) =FS (invFinm)
  The inverse of a weakened element is the successor of its inverse

Totality: total
Visibility: export
invFinLastIsFZ : invFinlast=FZ
Totality: total
Visibility: export
invFinInvolutive : (m : Finn) ->invFin (invFinm) =m
  `invFin` is involutive (i.e. applied twice it is the identity)

Totality: total
Visibility: export
strengthenWeakenIsRight : (n : Finm) ->strengthen (weakenn) =Justn
  It's possible to strengthen a weakened element of Fin **m**.

Totality: total
Visibility: export
strengthenLastIsLeft : strengthenlast=Nothing
  It's not possible to strengthen the last element of Fin **n**.

Totality: total
Visibility: export
strengthenNotLastIsRight : (m : Finn) ->strengthen (invFin (FSm)) =Just (invFinm)
  It's possible to strengthen the inverse of a succesor

Totality: total
Visibility: export
strengthen' : (m : Fin (Sn)) ->Either (m=last) (m' : Finn**finToNatm=finToNatm')
  Either tightens the bound on a Fin or proves that it's the last.

Totality: total
Visibility: export
strengthenMod : Finn-> (m : Nat) ->NonZerom=>Finm
  Tighten the bound on a Fin by taking its current bound modulo the given
non-zero number.

Totality: total
Visibility: export
weakenNZeroIdentity : (k : Finn) ->weakenN0k~~~k
Totality: total
Visibility: export
shiftFSLinear : (m : Nat) -> (f : Finn) ->shiftm (FSf) ~~~FS (shiftmf)
Totality: total
Visibility: export
shiftLastIsLast : (m : Nat) ->shiftmlast~~~last
Totality: total
Visibility: export
dataFractionView : Nat->Nat->Type
  A view of Nat as a quotient of some number and a finite remainder.

Totality: total
Visibility: public export
Constructor: 
Fraction : (n : Nat) -> (d : Nat) ->GTd0=> (q : Nat) -> (r : Find) -> (q*d) +finToNatr=n->FractionViewnd
divMod : (n : Nat) -> (d : Nat) ->GTd0=>FractionViewnd
  Converts Nat to the fractional view with a non-zero divisor.

Totality: total
Visibility: export
modFin : Nat-> (m : Nat) ->NonZerom=>Finm
  Compute n % m as a Fin with upper bound m.

Useful, for example, when iterating through a large index, computing
subindices as a function of the larger index (e.g. a flattened 2D-array)

Totality: total
Visibility: export
natToFinLTE : (n : Nat) -> (0_ : LTnm) ->Finm
  Total function to convert a nat to a Fin, given a proof
that it is less than the bound.

Totality: total
Visibility: public export
natToFinToNat : (n : Nat) -> (lte : LTnm) ->finToNat (natToFinLTEnlte) =n
  Converting from a Nat to a Fin and back is the identity.

Totality: total
Visibility: public export
(+) : Finm->Fin (Sn) ->Fin (m+n)
  Addition of `Fin`s as bounded naturals.
The resulting type has the smallest possible bound
as illustated by the relations with the `last` function.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
(*) : Fin (Sm) ->Fin (Sn) ->Fin (S (m*n))
  Multiplication of `Fin`s as bounded naturals.
The resulting type has the smallest possible bound
as illustated by the relations with the `last` function.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
finToNatPlusHomo : (x : Finm) -> (y : Fin (Sn)) ->finToNat (x+y) =finToNatx+finToNaty
Totality: total
Visibility: export
finToNatMultHomo : (x : Fin (Sm)) -> (y : Fin (Sn)) ->finToNat (x*y) =finToNatx*finToNaty
Totality: total
Visibility: export
plusPreservesLast : (m : Nat) -> (n : Nat) ->last+last=last
Totality: total
Visibility: export
multPreservesLast : (m : Nat) -> (n : Nat) ->last*last=last
Totality: total
Visibility: export
plusSuccRightSucc : (left : Finm) -> (right : Fin (Sn)) ->FS (left+right) ~~~ (left+FSright)
Totality: total
Visibility: export
shiftAsPlus : (k : Fin (Sm)) ->shiftnk~~~ (last+k)
Totality: total
Visibility: export
weakenNAsPlusFZ : (k : Finn) ->weakenNmk=k+the (Fin (Sm)) FZ
Totality: total
Visibility: export
weakenNPlusHomo : (k : Finp) ->weakenNn (weakenNmk) ~~~weakenN (m+n) k
Totality: total
Visibility: export
weakenNOfPlus : (k : Finm) -> (l : Fin (Sn)) ->weakenNw (k+l) ~~~ (weakenNwk+l)
Totality: total
Visibility: export
plusZeroLeftNeutral : (k : Fin (Sn)) -> (FZ+k) ~~~k
Totality: total
Visibility: export
congPlusLeft : (c : Fin (Sp)) ->k~~~l-> (k+c) ~~~ (l+c)
Totality: total
Visibility: export
plusZeroRightNeutral : (k : Finm) -> (k+FZ) ~~~k
Totality: total
Visibility: export
congPlusRight : (c : Finm) ->k~~~l-> (c+k) ~~~ (c+l)
Totality: total
Visibility: export
plusCommutative : (left : Fin (Sm)) -> (right : Fin (Sn)) -> (left+right) ~~~ (right+left)
Totality: total
Visibility: export
plusAssociative : (left : Finm) -> (centre : Fin (Sn)) -> (right : Fin (Sp)) -> (left+ (centre+right)) ~~~ ((left+centre) +right)
Totality: total
Visibility: export
indexSum : Either (Finm) (Finn) ->Fin (m+n)
  Converts `Fin`s that are used as indexes of parts to an index of a sum.

For example, if you have a `Vect` that is a concatenation of two `Vect`s and
you have an index either in the first or the second of the original `Vect`s,
using this function you can get an index in the concatenated one.

Totality: total
Visibility: public export
splitSum : Fin (m+n) ->Either (Finm) (Finn)
  Extracts an index of the first or the second part from the index of a sum.

For example, if you have a `Vect` that is a concatenation of the `Vect`s and
you have an index of this `Vect`, you have get an index of either left or right
original `Vect` using this function.

Totality: total
Visibility: public export
indexProd : Finm->Finn->Fin (m*n)
  Calculates the index of a square matrix of size `a * b` by indices of each side.

Totality: total
Visibility: public export
splitProd : Fin (m*n) -> (Finm, Finn)
  Splits the index of a square matrix of size `a * b` to indices of each side.

Totality: total
Visibility: public export
indexSumPreservesLast : (m : Nat) -> (n : Nat) ->indexSum (Rightlast) ~~~last
Totality: total
Visibility: export
indexProdPreservesLast : (m : Nat) -> (n : Nat) ->indexProdlastlast=last
Totality: total
Visibility: export
splitSumOfWeakenN : (k : Finm) ->splitSum (weakenNnk) =Leftk
Totality: total
Visibility: export
splitSumOfShift : (k : Finn) ->splitSum (shiftmk) =Rightk
Totality: total
Visibility: export
splitOfIndexSumInverse : (e : Either (Finm) (Finn)) ->splitSum (indexSume) =e
Totality: total
Visibility: export
indexOfSplitSumInverse : (f : Fin (m+n)) ->indexSum (splitSumf) =f
Totality: total
Visibility: export
splitOfIndexProdInverse : (k : Finm) -> (l : Finn) ->splitProd (indexProdkl) = (k, l)
Totality: total
Visibility: export
indexOfSplitProdInverse : (f : Fin (m*n)) ->uncurryindexProd (splitProdf) =f
Totality: total
Visibility: export
\ No newline at end of file +

Data.Fin.Extra(source)

Definitions

elemSmallerThanBound : (n : Finm) ->LT (finToNatn) m
  A Fin's underlying natural number is smaller than the bound

Totality: total
Visibility: export
finToNatLastIsBound : finToNatlast=n
  Last's underlying natural number is the bound's predecessor

Totality: total
Visibility: export
finToNatWeakenNeutral : finToNat (weakenn) =finToNatn
  Weaken does not modify the underlying natural number

Totality: total
Visibility: export
finToNatWeakenNNeutral : (0m : Nat) -> (k : Finn) ->finToNat (weakenNmk) =finToNatk
  WeakenN does not modify the underlying natural number

Totality: total
Visibility: export
finToNatShift : (k : Nat) -> (a : Finn) ->finToNat (shiftka) =k+finToNata
  `Shift k` shifts the underlying natural number by `k`.

Totality: total
Visibility: export
invFin : Finn->Finn
  Compute the Fin such that `k + invFin k = n - 1`

Totality: total
Visibility: public export
invFinSpec : (i : Finn) -> (1+finToNati) +finToNat (invFini) =n
Totality: total
Visibility: export
invFinWeakenIsFS : (m : Finn) ->invFin (weakenm) =FS (invFinm)
  The inverse of a weakened element is the successor of its inverse

Totality: total
Visibility: export
invFinLastIsFZ : invFinlast=FZ
Totality: total
Visibility: export
invFinInvolutive : (m : Finn) ->invFin (invFinm) =m
  `invFin` is involutive (i.e. applied twice it is the identity)

Totality: total
Visibility: export
strengthenWeakenIsRight : (n : Finm) ->strengthen (weakenn) =Justn
  It's possible to strengthen a weakened element of Fin **m**.

Totality: total
Visibility: export
strengthenLastIsLeft : strengthenlast=Nothing
  It's not possible to strengthen the last element of Fin **n**.

Totality: total
Visibility: export
strengthenNotLastIsRight : (m : Finn) ->strengthen (invFin (FSm)) =Just (invFinm)
  It's possible to strengthen the inverse of a succesor

Totality: total
Visibility: export
strengthen' : (m : Fin (Sn)) ->Either (m=last) (m' : Finn**finToNatm=finToNatm')
  Either tightens the bound on a Fin or proves that it's the last.

Totality: total
Visibility: export
strengthenMod : Finn-> (m : Nat) ->NonZerom=>Finm
  Tighten the bound on a Fin by taking its current bound modulo the given
non-zero number.

Totality: total
Visibility: export
weakenNZeroIdentity : (k : Finn) ->weakenN0k~~~k
Totality: total
Visibility: export
shiftFSLinear : (m : Nat) -> (f : Finn) ->shiftm (FSf) ~~~FS (shiftmf)
Totality: total
Visibility: export
shiftLastIsLast : (m : Nat) ->shiftmlast~~~last
Totality: total
Visibility: export
dataFractionView : Nat->Nat->Type
  A view of Nat as a quotient of some number and a finite remainder.

Totality: total
Visibility: public export
Constructor: 
Fraction : (n : Nat) -> (d : Nat) ->GTd0=> (q : Nat) -> (r : Find) -> (q*d) +finToNatr=n->FractionViewnd
divMod : (n : Nat) -> (d : Nat) ->GTd0=>FractionViewnd
  Converts Nat to the fractional view with a non-zero divisor.

Totality: total
Visibility: export
modFin : Nat-> (m : Nat) ->NonZerom=>Finm
  Compute n % m as a Fin with upper bound m.

Useful, for example, when iterating through a large index, computing
subindices as a function of the larger index (e.g. a flattened 2D-array)

Totality: total
Visibility: export
natToFinLTE : (n : Nat) -> (0_ : LTnm) ->Finm
  Total function to convert a nat to a Fin, given a proof
that it is less than the bound.

Totality: total
Visibility: public export
natToFinToNat : (n : Nat) -> (lte : LTnm) ->finToNat (natToFinLTEnlte) =n
  Converting from a Nat to a Fin and back is the identity.

Totality: total
Visibility: public export
(+) : Finm->Fin (Sn) ->Fin (m+n)
  Addition of `Fin`s as bounded naturals.
The resulting type has the smallest possible bound
as illustated by the relations with the `last` function.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
(*) : Fin (Sm) ->Fin (Sn) ->Fin (S (m*n))
  Multiplication of `Fin`s as bounded naturals.
The resulting type has the smallest possible bound
as illustated by the relations with the `last` function.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
finToNatPlusHomo : (x : Finm) -> (y : Fin (Sn)) ->finToNat (x+y) =finToNatx+finToNaty
Totality: total
Visibility: export
finToNatMultHomo : (x : Fin (Sm)) -> (y : Fin (Sn)) ->finToNat (x*y) =finToNatx*finToNaty
Totality: total
Visibility: export
plusPreservesLast : (m : Nat) -> (n : Nat) ->last+last=last
Totality: total
Visibility: export
multPreservesLast : (m : Nat) -> (n : Nat) ->last*last=last
Totality: total
Visibility: export
plusSuccRightSucc : (left : Finm) -> (right : Fin (Sn)) ->FS (left+right) ~~~ (left+FSright)
Totality: total
Visibility: export
shiftAsPlus : (k : Fin (Sm)) ->shiftnk~~~ (last+k)
Totality: total
Visibility: export
weakenNAsPlusFZ : (k : Finn) ->weakenNmk=k+the (Fin (Sm)) FZ
Totality: total
Visibility: export
weakenNPlusHomo : (k : Finp) ->weakenNn (weakenNmk) ~~~weakenN (m+n) k
Totality: total
Visibility: export
weakenNOfPlus : (k : Finm) -> (l : Fin (Sn)) ->weakenNw (k+l) ~~~ (weakenNwk+l)
Totality: total
Visibility: export
plusZeroLeftNeutral : (k : Fin (Sn)) -> (FZ+k) ~~~k
Totality: total
Visibility: export
congPlusLeft : (c : Fin (Sp)) ->k~~~l-> (k+c) ~~~ (l+c)
Totality: total
Visibility: export
plusZeroRightNeutral : (k : Finm) -> (k+FZ) ~~~k
Totality: total
Visibility: export
congPlusRight : (c : Finm) ->k~~~l-> (c+k) ~~~ (c+l)
Totality: total
Visibility: export
plusCommutative : (left : Fin (Sm)) -> (right : Fin (Sn)) -> (left+right) ~~~ (right+left)
Totality: total
Visibility: export
plusAssociative : (left : Finm) -> (centre : Fin (Sn)) -> (right : Fin (Sp)) -> (left+ (centre+right)) ~~~ ((left+centre) +right)
Totality: total
Visibility: export
indexSum : Either (Finm) (Finn) ->Fin (m+n)
  Converts `Fin`s that are used as indexes of parts to an index of a sum.

For example, if you have a `Vect` that is a concatenation of two `Vect`s and
you have an index either in the first or the second of the original `Vect`s,
using this function you can get an index in the concatenated one.

Totality: total
Visibility: public export
splitSum : Fin (m+n) ->Either (Finm) (Finn)
  Extracts an index of the first or the second part from the index of a sum.

For example, if you have a `Vect` that is a concatenation of the `Vect`s and
you have an index of this `Vect`, you have get an index of either left or right
original `Vect` using this function.

Totality: total
Visibility: public export
indexProd : Finm->Finn->Fin (m*n)
  Calculates the index of a square matrix of size `a * b` by indices of each side.

Totality: total
Visibility: public export
splitProd : Fin (m*n) -> (Finm, Finn)
  Splits the index of a square matrix of size `a * b` to indices of each side.

Totality: total
Visibility: public export
indexSumPreservesLast : (m : Nat) -> (n : Nat) ->indexSum (Rightlast) ~~~last
Totality: total
Visibility: export
indexProdPreservesLast : (m : Nat) -> (n : Nat) ->indexProdlastlast=last
Totality: total
Visibility: export
splitSumOfWeakenN : (k : Finm) ->splitSum (weakenNnk) =Leftk
Totality: total
Visibility: export
splitSumOfShift : (k : Finn) ->splitSum (shiftmk) =Rightk
Totality: total
Visibility: export
splitOfIndexSumInverse : (e : Either (Finm) (Finn)) ->splitSum (indexSume) =e
Totality: total
Visibility: export
indexOfSplitSumInverse : (f : Fin (m+n)) ->indexSum (splitSumf) =f
Totality: total
Visibility: export
splitOfIndexProdInverse : (k : Finm) -> (l : Finn) ->splitProd (indexProdkl) = (k, l)
Totality: total
Visibility: export
indexOfSplitProdInverse : (f : Fin (m*n)) ->uncurryindexProd (splitProdf) =f
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Fun.Extra.html b/contrib/docs/Data.Fun.Extra.html index 5d4f1d315b..066473aeb2 100644 --- a/contrib/docs/Data.Fun.Extra.html +++ b/contrib/docs/Data.Fun.Extra.html @@ -61,4 +61,4 @@ -

Data.Fun.Extra(source)

Definitions

uncurry : Funtscod->HVectts->cod
  Apply an n-ary function to an n-ary tuple of inputs

Totality: total
Visibility: public export
curry : (HVectts->cod) ->Funtscod
  Apply an n-ary function to an n-ary tuple of inputs

Totality: total
Visibility: public export
homoFunNeut_ext : Fun [] cod->idcod
Totality: total
Visibility: public export
homoFunMult_ext : Fun (rs++ss) cod->(.) (Funrs) (Funss) cod
Totality: total
Visibility: public export
homoFunNeut_inv : idcod->Fun [] cod
Totality: total
Visibility: public export
homoFunMult_inv : (.) (Funrs) (Funss) cod->Fun (rs++ss) cod
Totality: total
Visibility: public export
applyPartially : Fun (ts++ss) cod->HVectts->Funsscod
  Apply an n-ary function to an n-ary tuple of inputs

Totality: total
Visibility: public export
uncurryAll : Alltscod-> (xs : HVectts) ->uncurrycodxs
  Apply an n-ary dependent function to its tuple of inputs (given by an HVect)

Totality: total
Visibility: public export
curryAll : ((xs : HVectts) ->uncurrycodxs) ->Alltscod
Totality: total
Visibility: public export
homoAllNeut_ext : Fun [] cod->idcod
Totality: total
Visibility: public export
extractWitness : Extsr->HVectts
Totality: total
Visibility: public export
extractWitnessCorrect : (f : Extsr) ->uncurryr (extractWitnessf)
Totality: total
Visibility: public export
introduceWitness : (witness : HVectts) ->uncurryrwitness->Extsr
Totality: total
Visibility: public export
dataPointwise : (a->b->Type) ->Vectna->Vectnb->Type
Totality: total
Visibility: public export
Constructors:
Nil : Pointwiser [] []
(::) : rts->Pointwisertsss->Pointwiser (t::ts) (s::ss)
precompose : Pointwise (\a, b=>a->b) tsss->Funsscod->Funtscod
Totality: total
Visibility: public export
chainUncurry : (g : Funtsr) -> (f : (r->r')) -> (elems : HVectts) ->f (uncurrygelems) =uncurry (chainfg) elems
  Uncurrying a Fun and then composing with a normal function
is extensionally equal to
composing functions using `chain`, then uncurrying.

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Fun.Extra(source)

Definitions

uncurry : Funtscod->HVectts->cod
  Apply an n-ary function to an n-ary tuple of inputs

Totality: total
Visibility: public export
curry : (HVectts->cod) ->Funtscod
  Apply an n-ary function to an n-ary tuple of inputs

Totality: total
Visibility: public export
homoFunNeut_ext : Fun [] cod->idcod
Totality: total
Visibility: public export
homoFunMult_ext : Fun (rs++ss) cod->(.) (Funrs) (Funss) cod
Totality: total
Visibility: public export
homoFunNeut_inv : idcod->Fun [] cod
Totality: total
Visibility: public export
homoFunMult_inv : (.) (Funrs) (Funss) cod->Fun (rs++ss) cod
Totality: total
Visibility: public export
applyPartially : Fun (ts++ss) cod->HVectts->Funsscod
  Apply an n-ary function to an n-ary tuple of inputs

Totality: total
Visibility: public export
uncurryAll : Alltscod-> (xs : HVectts) ->uncurrycodxs
  Apply an n-ary dependent function to its tuple of inputs (given by an HVect)

Totality: total
Visibility: public export
curryAll : ((xs : HVectts) ->uncurrycodxs) ->Alltscod
Totality: total
Visibility: public export
homoAllNeut_ext : Fun [] cod->idcod
Totality: total
Visibility: public export
extractWitness : Extsr->HVectts
Totality: total
Visibility: public export
extractWitnessCorrect : (f : Extsr) ->uncurryr (extractWitnessf)
Totality: total
Visibility: public export
introduceWitness : (witness : HVectts) ->uncurryrwitness->Extsr
Totality: total
Visibility: public export
dataPointwise : (a->b->Type) ->Vectna->Vectnb->Type
Totality: total
Visibility: public export
Constructors:
Nil : Pointwiser [] []
(::) : rts->Pointwisertsss->Pointwiser (t::ts) (s::ss)
precompose : Pointwise (\a, b=>a->b) tsss->Funsscod->Funtscod
Totality: total
Visibility: public export
chainUncurry : (g : Funtsr) -> (f : (r->r')) -> (elems : HVectts) ->f (uncurrygelems) =uncurry (chainfg) elems
  Uncurrying a Fun and then composing with a normal function
is extensionally equal to
composing functions using `chain`, then uncurrying.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Fun.Graph.html b/contrib/docs/Data.Fun.Graph.html index e778dcd779..0019ad4e0f 100644 --- a/contrib/docs/Data.Fun.Graph.html +++ b/contrib/docs/Data.Fun.Graph.html @@ -61,4 +61,4 @@ -

Data.Fun.Graph(source)

Definitions

recordGraph : {0b : a->Type} -> ((x : a) ->bx) -> (x : a) ->bx->Type
  A relation corresponding to the graph of `f`.

Totality: total
Visibility: public export
Constructor: 
MkGraph : fx=y->Graphfxy

Projection: 
.equality : Graphfxy->fx=y
.equality : Graphfxy->fx=y
Visibility: public export
equality : Graphfxy->fx=y
Visibility: public export
remember : {0b : a->Type} -> (f : ((x : a) ->bx)) -> (x : a) ->Graphfx (fx)
  An alternative for 'Syntax.WithProof' that allows to keep the
proof certificate in non-reduced form after nested matching.
Inspired by https://agda.github.io/agda-stdlib/README.Inspect.html

Visibility: public export
\ No newline at end of file +

Data.Fun.Graph(source)

Definitions

recordGraph : {0b : a->Type} -> ((x : a) ->bx) -> (x : a) ->bx->Type
  A relation corresponding to the graph of `f`.

Totality: total
Visibility: public export
Constructor: 
MkGraph : fx=y->Graphfxy

Projection: 
.equality : Graphfxy->fx=y
.equality : Graphfxy->fx=y
Visibility: public export
equality : Graphfxy->fx=y
Visibility: public export
remember : {0b : a->Type} -> (f : ((x : a) ->bx)) -> (x : a) ->Graphfx (fx)
  An alternative for 'Syntax.WithProof' that allows to keep the
proof certificate in non-reduced form after nested matching.
Inspired by https://agda.github.io/agda-stdlib/README.Inspect.html

Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.HVect.html b/contrib/docs/Data.HVect.html index 567c7a8243..a4df2f325d 100644 --- a/contrib/docs/Data.HVect.html +++ b/contrib/docs/Data.HVect.html @@ -61,4 +61,4 @@ -

Data.HVect(source)

Reexports

importpublic Data.Vect

Definitions

dataHVect : VectkType->Type
  Heterogeneous vectors where the type index gives, element-wise,
the types of the contents.

Totality: total
Visibility: public export
Constructors:
Nil : HVect []
(::) : t->HVectts->HVect (t::ts)

Hints:
DecEq (HVect [])
(DecEqt, DecEq (HVectts)) =>DecEq (HVect (t::ts))
Eq (HVect [])
(Eqt, Eq (HVectts)) =>Eq (HVect (t::ts))
Showslents=>Show (HVectts)
index : (i : Fink) ->HVectts->indexits
  Extract an element from an HVect.

```idris example
> index 0 (the (HVect _) [1, "string"])
1
```

Totality: total
Visibility: public export
deleteAt : (i : Fin (Sl)) ->HVectts->HVect (deleteAtits)
  Delete an element from an HVect.

```idris example
> deleteAt 0 (the (HVect _) [1, "string"])
["string"]
```

Totality: total
Visibility: public export
replaceAt : (i : Fink) ->t->HVectts->HVect (replaceAtitts)
  Replace an element in an HVect.

```idris example
> replaceAt 0 "firstString" (the (HVect _) [1, "string"])
["firstString", "string"]
```

Totality: total
Visibility: public export
updateAt : (i : Fink) -> (indexits->t) ->HVectts->HVect (replaceAtitts)
  Update an element in an HVect.

```idris example
> updateAt 0 (const True) (the (HVect _) [1, "string"])
[True, "string"]
```

Totality: total
Visibility: public export
(++) : HVectts->HVectus->HVect (ts++us)
  Append two `HVect`s.

```idris example
> (the (HVect _) [1]) ++ (the (HVect _) ["string"])
[1, "string"]
```

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
consInjective1 : x::xs=y::ys->x=y
Totality: total
Visibility: public export
consInjective2 : x::xs=y::ys->xs=ys
Totality: total
Visibility: public export
interfaceShows : (k : Nat) ->VectkType->Type
Parameters: k, ts
Methods:
shows : HVectts->VectkString

Implementations:
Shows0 []
(Showt, Showslents) =>Shows (Slen) (t::ts)
shows : Showskts=>HVectts->VectkString
Totality: total
Visibility: public export
get : (1_ : HVectts) -> {auto1_ : Elemtts} ->t
  Extract an arbitrary element of the correct type.

```idris example
> get [1, "string"] {p = Here}
1
```

Totality: total
Visibility: public export
put : t-> (1_ : HVectts) -> {auto1_ : Elemtts} ->HVectts
  Replace an element with the correct type. (Homogeneous)

```idris example
> put 2 [1, "string"]
[2, "string"]
```

Totality: total
Visibility: public export
htPut : u-> (1_ : HVectts) -> {auto1p : Elemtts} ->HVect (replaceByElemtspu)
  Replace an element with the correct type. (Heterogeneous)

```idris example
> htPut True [1, "string"] {p = Here}
[True, "string"]
```

Totality: total
Visibility: public export
update : (t->t) -> (1_ : HVectts) -> {auto1_ : Elemtts} ->HVectts
  Update an element with the correct type. (Homogeneous)

```idris example
> update (const "hello world!") [1, "string"]
[1, "hello world!"]
```

Totality: total
Visibility: public export
htUpdate : (t->u) -> (1_ : HVectts) -> {auto1p : Elemtts} ->HVect (replaceByElemtspu)
  Update an element with the correct type. (Heterogeneous)

```idris example
> htUpdate (\_ : String => 2) [1, "string"]
[1, 2]
```

Totality: total
Visibility: public export
\ No newline at end of file +

Data.HVect(source)

Reexports

importpublic Data.Vect

Definitions

dataHVect : VectkType->Type
  Heterogeneous vectors where the type index gives, element-wise,
the types of the contents.

Totality: total
Visibility: public export
Constructors:
Nil : HVect []
(::) : t->HVectts->HVect (t::ts)

Hints:
DecEq (HVect [])
(DecEqt, DecEq (HVectts)) =>DecEq (HVect (t::ts))
Eq (HVect [])
(Eqt, Eq (HVectts)) =>Eq (HVect (t::ts))
Showslents=>Show (HVectts)
index : (i : Fink) ->HVectts->indexits
  Extract an element from an HVect.

```idris example
> index 0 (the (HVect _) [1, "string"])
1
```

Totality: total
Visibility: public export
deleteAt : (i : Fin (Sl)) ->HVectts->HVect (deleteAtits)
  Delete an element from an HVect.

```idris example
> deleteAt 0 (the (HVect _) [1, "string"])
["string"]
```

Totality: total
Visibility: public export
replaceAt : (i : Fink) ->t->HVectts->HVect (replaceAtitts)
  Replace an element in an HVect.

```idris example
> replaceAt 0 "firstString" (the (HVect _) [1, "string"])
["firstString", "string"]
```

Totality: total
Visibility: public export
updateAt : (i : Fink) -> (indexits->t) ->HVectts->HVect (replaceAtitts)
  Update an element in an HVect.

```idris example
> updateAt 0 (const True) (the (HVect _) [1, "string"])
[True, "string"]
```

Totality: total
Visibility: public export
(++) : HVectts->HVectus->HVect (ts++us)
  Append two `HVect`s.

```idris example
> (the (HVect _) [1]) ++ (the (HVect _) ["string"])
[1, "string"]
```

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
consInjective1 : x::xs=y::ys->x=y
Totality: total
Visibility: public export
consInjective2 : x::xs=y::ys->xs=ys
Totality: total
Visibility: public export
interfaceShows : (k : Nat) ->VectkType->Type
Parameters: k, ts
Methods:
shows : HVectts->VectkString

Implementations:
Shows0 []
(Showt, Showslents) =>Shows (Slen) (t::ts)
shows : Showskts=>HVectts->VectkString
Totality: total
Visibility: public export
get : (1_ : HVectts) -> {auto1_ : Elemtts} ->t
  Extract an arbitrary element of the correct type.

```idris example
> get [1, "string"] {p = Here}
1
```

Totality: total
Visibility: public export
put : t-> (1_ : HVectts) -> {auto1_ : Elemtts} ->HVectts
  Replace an element with the correct type. (Homogeneous)

```idris example
> put 2 [1, "string"]
[2, "string"]
```

Totality: total
Visibility: public export
htPut : u-> (1_ : HVectts) -> {auto1p : Elemtts} ->HVect (replaceByElemtspu)
  Replace an element with the correct type. (Heterogeneous)

```idris example
> htPut True [1, "string"] {p = Here}
[True, "string"]
```

Totality: total
Visibility: public export
update : (t->t) -> (1_ : HVectts) -> {auto1_ : Elemtts} ->HVectts
  Update an element with the correct type. (Homogeneous)

```idris example
> update (const "hello world!") [1, "string"]
[1, "hello world!"]
```

Totality: total
Visibility: public export
htUpdate : (t->u) -> (1_ : HVectts) -> {auto1p : Elemtts} ->HVect (replaceByElemtspu)
  Update an element with the correct type. (Heterogeneous)

```idris example
> htUpdate (\_ : String => 2) [1, "string"]
[1, 2]
```

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.IMaybe.html b/contrib/docs/Data.IMaybe.html index e94fb45935..91e5a270d9 100644 --- a/contrib/docs/Data.IMaybe.html +++ b/contrib/docs/Data.IMaybe.html @@ -62,4 +62,4 @@

Data.IMaybe(source)

Version of Maybe indexed by an `isJust' boolean
-

Definitions

dataIMaybe : Bool->Type->Type
Totality: total
Visibility: public export
Constructors:
Just : a->IMaybeTruea
Nothing : IMaybeFalsea

Hints:
Applicative (IMaybeTrue)
Functor (IMaybeb)
Zippable (IMaybeb)
fromJust : IMaybeTruea->a
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataIMaybe : Bool->Type->Type
Totality: total
Visibility: public export
Constructors:
Just : a->IMaybeTruea
Nothing : IMaybeFalsea

Hints:
Applicative (IMaybeTrue)
Functor (IMaybeb)
Zippable (IMaybeb)
fromJust : IMaybeTruea->a
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.IOMatrix.html b/contrib/docs/Data.IOMatrix.html index 1bc93e454b..cc85667890 100644 --- a/contrib/docs/Data.IOMatrix.html +++ b/contrib/docs/Data.IOMatrix.html @@ -61,4 +61,4 @@ -

Data.IOMatrix(source)

Definitions

recordIOMatrix : Type->Type
Totality: total
Visibility: export
Constructor: 
MkIOMatrix : Int->Int->ArrayData (Maybea) ->IOMatrixa

Projections:
.content : IOMatrixa->ArrayData (Maybea)
.maxHeight : IOMatrixa->Int
.maxWidth : IOMatrixa->Int
width : IOMatrixa->Int
Totality: total
Visibility: export
height : IOMatrixa->Int
Totality: total
Visibility: export
new : HasIOio=>Int->Int->io (IOMatrixa)
Totality: total
Visibility: export
write : HasIOio=>IOMatrixa->Int->Int->a->ioBool
Totality: total
Visibility: export
read : HasIOio=>IOMatrixa->Int->Int->io (Maybea)
Totality: total
Visibility: export
\ No newline at end of file +

Data.IOMatrix(source)

Definitions

recordIOMatrix : Type->Type
Totality: total
Visibility: export
Constructor: 
MkIOMatrix : Int->Int->ArrayData (Maybea) ->IOMatrixa

Projections:
.content : IOMatrixa->ArrayData (Maybea)
.maxHeight : IOMatrixa->Int
.maxWidth : IOMatrixa->Int
width : IOMatrixa->Int
Totality: total
Visibility: export
height : IOMatrixa->Int
Totality: total
Visibility: export
new : HasIOio=>Int->Int->io (IOMatrixa)
Totality: total
Visibility: export
write : HasIOio=>IOMatrixa->Int->Int->a->ioBool
Totality: total
Visibility: export
read : HasIOio=>IOMatrixa->Int->Int->io (Maybea)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Int.Order.html b/contrib/docs/Data.Int.Order.html index 9e5012dd09..e1f735fbfe 100644 --- a/contrib/docs/Data.Int.Order.html +++ b/contrib/docs/Data.Int.Order.html @@ -65,4 +65,4 @@ This is full of tricks as `Int` is a primitive type that can only be interacted with using either literals or built-in functions. The exported interface should however be safe. -

Definitions

strictRefl : a=b-> Lazy c->c
  Pattern-match on an equality proof so that the second argument to
strictRefl is only returned once the first is canonical.

Totality: total
Visibility: export
dataLT : Int->Int->Type
  `LT a b` is a proof that `a` is less than `b` which is to say that
the function call `a < b` returns `True`.

NB: we do not re-export the constructor so that users cannot force
our magic functions to blow up in absurd contexts by bypassing the
safety measures introduced by the `strictX` functions.
We do provide functions corresponding to the wrapping and unwrapping
of `LT` but, crucially, they do not let people force `LT` proofs to
be in canonical form.

Totality: total
Visibility: export
Constructor: 
MkLT : a<b=True->LTab
mkLT : a<b=True->LTab
  We may prove `LT a b` by using a proof that `a < b` returns `True`.

Totality: total
Visibility: export
runLT : LTab->a<b=True
  From a proof that `LT a b`, we may concluded that `a < b` returns `True`.

Totality: total
Visibility: export
strictLT : LTab-> Lazy c->c
  Do not trust arbitrary `LT` proofs when manufacturing magic ones:
be strict!

Totality: total
Visibility: export
decide : (a : Int) -> (b : Int) ->Dec (LTab)
  LT is decidable, by virtue of being the reflection of a boolean function

Totality: total
Visibility: export
trans : LTab->LTbc->LTa (theIntc)
  LT is a transitive relation. This cannot be proven so we use a magic trick.

Totality: total
Visibility: export
irrefl : Not (LTaa)
  LT is an irreflexive relation.
The crash will never happen because the `LT a a` argument will never reduce
to a canonical form (unless the built-in function (<) is buggy).

Totality: total
Visibility: export
GT : Int->Int->Type
  GT is defined in terms of LT to avoid code duplication

Totality: total
Visibility: public export
LT_not_GT : LTab->Not (GTab)
Totality: total
Visibility: export
GT_not_LT : GTab->Not (LTab)
Totality: total
Visibility: export
dataEQ : Int->Int->Type
  `EQ a b` is a proof that `a` is equal to `b` which is to say that
the function call `a == b` returns `True`.

NB: we do not re-export the constructor so that users cannot force
our magic functions to blow up in absurd contexts by bypassing the
safety measures introduced by the `strictX` functions.
We do provide functions corresponding to the wrapping and unwrapping
of `EQ` but, crucially, they do not let people force `EQ` proofs to
be in canonical form.

Totality: total
Visibility: export
Constructor: 
MkEQ : a==b=True->EQab
mkEQ : a==b=True->EQab
  We may prove `EQ a b` by using a proof that `a == b` returns `True`.

Totality: total
Visibility: export
runEQ : EQab->a==b=True
  From a proof that `EQ a b`, we may concluded that `a == b` returns `True`.

Totality: total
Visibility: export
strictEQ : EQab-> Lazy c->c
  Do not trust arbitrary `EQ` proofs when manufacturing magic ones:
be strict!

Totality: total
Visibility: export
decide : (a : Int) -> (b : Int) ->Dec (EQab)
  EQ is decidable, by virtue of being the reflection of a boolean function

Totality: total
Visibility: export
refl : EQaa
  EQ is a reflexive relation

Totality: total
Visibility: export
elimEQ : (0p : (Int->Type)) ->EQab->pa->pb
  EQ is substitutive

Totality: total
Visibility: export
reflect : EQab->a=b
  EQ implies propositional equality

Totality: total
Visibility: export
sym : EQab->EQba
  EQ is a symmetric relation

Totality: total
Visibility: export
trans : EQab->EQbc->EQac
  EQ is a transitive relation

Totality: total
Visibility: export
trans_LT_EQ : LTab->EQbc->LTac
Totality: total
Visibility: export
trans_EQ_LT : EQab->LTbc->LTac
Totality: total
Visibility: export
LT_not_EQ : LTab->Not (EQab)
Totality: total
Visibility: export
EQ_not_LT : EQab->Not (LTab)
Totality: total
Visibility: export
EQ_not_GT : EQab->Not (GTab)
Totality: total
Visibility: export
GT_not_EQ : GTab->Not (EQab)
Totality: total
Visibility: export
dataLTE : Int->Int->Type
  `LTE a b` is a proof that `a` is less or equal to `b` which is to say that
the function call `a < b` or `a == b` returns `True`.

NB: we do not re-export the constructor so that users cannot force
our magic functions to blow up in absurd contexts by bypassing the
safety measures introduced by the `strictX` functions.

Totality: total
Visibility: export
Constructors:
MkLT : a<b=True->LTEab
MkEQ : a==b=True->LTEab
runLTE : LTEab->Either (LTab) (EQab)
  Unwrap an LTE proof to get either an LT or an EQ one

Totality: total
Visibility: export
strictLTE : LTEab-> Lazy c->c
  Do not trust arbitrary `LTE` proofs when manufacturing magic ones:
be strict!

Totality: total
Visibility: export
decide : (a : Int) -> (b : Int) ->Dec (LTEab)
  LTE is decidable by virture of both LT and EQ being decidable

Totality: total
Visibility: export
refl : LTEaa
  LTE is a reflexive relation

Totality: total
Visibility: export
trans_LT_LTE : LTab->LTEbc->LTac
Totality: total
Visibility: export
trans_LTE_LT : LTEab->LTbc->LTac
Totality: total
Visibility: export
inject_LT_LTE : LTab->LTEab
Totality: total
Visibility: export
inject_EQ_LTE : EQab->LTEab
Totality: total
Visibility: export
trans : LTEab->LTEbc->LTEac
  LTE is a transitive relation

Totality: total
Visibility: export
antisym : LTEab->LTEba->EQab
  LTE is an antisymmetric relation

Totality: total
Visibility: export
GTE : Int->Int->Type
  GTE is defined in terms of LTE to avoid code duplication

Totality: total
Visibility: public export
trichotomous : (a : Int) -> (b : Int) ->TrichotomousLTEQGTab
  Any pair of Ints is related either via LT, EQ, or GT

Totality: total
Visibility: export
decide_LT_GTE : (a : Int) -> (b : Int) ->Either (LTab) (GTEab)
  Any pair of Ints is related either via LT or GTE

Totality: total
Visibility: export
decide_LTE_GT : (a : Int) -> (b : Int) ->Either (LTEab) (GTab)
  Any pair of Ints is related either via LTE or GT

Totality: total
Visibility: export
suc_LT_LTE : LTab->LTE (a+1) b
  Adding one to a strictly smaller Int, yields a smaller Int

Totality: total
Visibility: export
pred_LT_LTE : LTab->LTEa (b-1)
  Subtracting one to a strictly larger Int, yields a larger Int

Totality: total
Visibility: export
sucBounded : LTab->LTa (a+1)
  Adding one to an Int yields a strictly larger one,
provided there is no overflow

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

strictRefl : a=b-> Lazy c->c
  Pattern-match on an equality proof so that the second argument to
strictRefl is only returned once the first is canonical.

Totality: total
Visibility: export
dataLT : Int->Int->Type
  `LT a b` is a proof that `a` is less than `b` which is to say that
the function call `a < b` returns `True`.

NB: we do not re-export the constructor so that users cannot force
our magic functions to blow up in absurd contexts by bypassing the
safety measures introduced by the `strictX` functions.
We do provide functions corresponding to the wrapping and unwrapping
of `LT` but, crucially, they do not let people force `LT` proofs to
be in canonical form.

Totality: total
Visibility: export
Constructor: 
MkLT : a<b=True->LTab
mkLT : a<b=True->LTab
  We may prove `LT a b` by using a proof that `a < b` returns `True`.

Totality: total
Visibility: export
runLT : LTab->a<b=True
  From a proof that `LT a b`, we may concluded that `a < b` returns `True`.

Totality: total
Visibility: export
strictLT : LTab-> Lazy c->c
  Do not trust arbitrary `LT` proofs when manufacturing magic ones:
be strict!

Totality: total
Visibility: export
decide : (a : Int) -> (b : Int) ->Dec (LTab)
  LT is decidable, by virtue of being the reflection of a boolean function

Totality: total
Visibility: export
trans : LTab->LTbc->LTa (theIntc)
  LT is a transitive relation. This cannot be proven so we use a magic trick.

Totality: total
Visibility: export
irrefl : Not (LTaa)
  LT is an irreflexive relation.
The crash will never happen because the `LT a a` argument will never reduce
to a canonical form (unless the built-in function (<) is buggy).

Totality: total
Visibility: export
GT : Int->Int->Type
  GT is defined in terms of LT to avoid code duplication

Totality: total
Visibility: public export
LT_not_GT : LTab->Not (GTab)
Totality: total
Visibility: export
GT_not_LT : GTab->Not (LTab)
Totality: total
Visibility: export
dataEQ : Int->Int->Type
  `EQ a b` is a proof that `a` is equal to `b` which is to say that
the function call `a == b` returns `True`.

NB: we do not re-export the constructor so that users cannot force
our magic functions to blow up in absurd contexts by bypassing the
safety measures introduced by the `strictX` functions.
We do provide functions corresponding to the wrapping and unwrapping
of `EQ` but, crucially, they do not let people force `EQ` proofs to
be in canonical form.

Totality: total
Visibility: export
Constructor: 
MkEQ : a==b=True->EQab
mkEQ : a==b=True->EQab
  We may prove `EQ a b` by using a proof that `a == b` returns `True`.

Totality: total
Visibility: export
runEQ : EQab->a==b=True
  From a proof that `EQ a b`, we may concluded that `a == b` returns `True`.

Totality: total
Visibility: export
strictEQ : EQab-> Lazy c->c
  Do not trust arbitrary `EQ` proofs when manufacturing magic ones:
be strict!

Totality: total
Visibility: export
decide : (a : Int) -> (b : Int) ->Dec (EQab)
  EQ is decidable, by virtue of being the reflection of a boolean function

Totality: total
Visibility: export
refl : EQaa
  EQ is a reflexive relation

Totality: total
Visibility: export
elimEQ : (0p : (Int->Type)) ->EQab->pa->pb
  EQ is substitutive

Totality: total
Visibility: export
reflect : EQab->a=b
  EQ implies propositional equality

Totality: total
Visibility: export
sym : EQab->EQba
  EQ is a symmetric relation

Totality: total
Visibility: export
trans : EQab->EQbc->EQac
  EQ is a transitive relation

Totality: total
Visibility: export
trans_LT_EQ : LTab->EQbc->LTac
Totality: total
Visibility: export
trans_EQ_LT : EQab->LTbc->LTac
Totality: total
Visibility: export
LT_not_EQ : LTab->Not (EQab)
Totality: total
Visibility: export
EQ_not_LT : EQab->Not (LTab)
Totality: total
Visibility: export
EQ_not_GT : EQab->Not (GTab)
Totality: total
Visibility: export
GT_not_EQ : GTab->Not (EQab)
Totality: total
Visibility: export
dataLTE : Int->Int->Type
  `LTE a b` is a proof that `a` is less or equal to `b` which is to say that
the function call `a < b` or `a == b` returns `True`.

NB: we do not re-export the constructor so that users cannot force
our magic functions to blow up in absurd contexts by bypassing the
safety measures introduced by the `strictX` functions.

Totality: total
Visibility: export
Constructors:
MkLT : a<b=True->LTEab
MkEQ : a==b=True->LTEab
runLTE : LTEab->Either (LTab) (EQab)
  Unwrap an LTE proof to get either an LT or an EQ one

Totality: total
Visibility: export
strictLTE : LTEab-> Lazy c->c
  Do not trust arbitrary `LTE` proofs when manufacturing magic ones:
be strict!

Totality: total
Visibility: export
decide : (a : Int) -> (b : Int) ->Dec (LTEab)
  LTE is decidable by virture of both LT and EQ being decidable

Totality: total
Visibility: export
refl : LTEaa
  LTE is a reflexive relation

Totality: total
Visibility: export
trans_LT_LTE : LTab->LTEbc->LTac
Totality: total
Visibility: export
trans_LTE_LT : LTEab->LTbc->LTac
Totality: total
Visibility: export
inject_LT_LTE : LTab->LTEab
Totality: total
Visibility: export
inject_EQ_LTE : EQab->LTEab
Totality: total
Visibility: export
trans : LTEab->LTEbc->LTEac
  LTE is a transitive relation

Totality: total
Visibility: export
antisym : LTEab->LTEba->EQab
  LTE is an antisymmetric relation

Totality: total
Visibility: export
GTE : Int->Int->Type
  GTE is defined in terms of LTE to avoid code duplication

Totality: total
Visibility: public export
trichotomous : (a : Int) -> (b : Int) ->TrichotomousLTEQGTab
  Any pair of Ints is related either via LT, EQ, or GT

Totality: total
Visibility: export
decide_LT_GTE : (a : Int) -> (b : Int) ->Either (LTab) (GTEab)
  Any pair of Ints is related either via LT or GTE

Totality: total
Visibility: export
decide_LTE_GT : (a : Int) -> (b : Int) ->Either (LTEab) (GTab)
  Any pair of Ints is related either via LTE or GT

Totality: total
Visibility: export
suc_LT_LTE : LTab->LTE (a+1) b
  Adding one to a strictly smaller Int, yields a smaller Int

Totality: total
Visibility: export
pred_LT_LTE : LTab->LTEa (b-1)
  Subtracting one to a strictly larger Int, yields a larger Int

Totality: total
Visibility: export
sucBounded : LTab->LTa (a+1)
  Adding one to an Int yields a strictly larger one,
provided there is no overflow

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Late.html b/contrib/docs/Data.Late.html index 131e6ebfd3..4ee8ea5e3a 100644 --- a/contrib/docs/Data.Late.html +++ b/contrib/docs/Data.Late.html @@ -61,4 +61,4 @@ -

Data.Late(source)

Definitions

dataLate : Type->Type
Totality: total
Visibility: public export
Constructors:
Now : a->Latea
Later : Inf (Latea) ->Latea

Hints:
ApplicativeLate
FunctorLate
MonadLate
never : Latea
  Never return

Totality: total
Visibility: public export
unfold : (seed->Eitherseedvalue) ->seed->Latevalue
  Run a small state machine until it reaches a final state and yields a value.

Totality: total
Visibility: public export
bind : Latea-> (a->Lateb) ->Lateb
  It's easier to define map and (<*>) in terms of bind so let's start
by defining it.

Totality: total
Visibility: public export
isNow : Latea->Maybea
  Check whether we already have a value.

Totality: total
Visibility: public export
wait : Latea->Latea
  Wait for one tick, hoping to get a value.

Totality: total
Visibility: public export
engine : Nat->Latea->Latea
  Wait for a set number of ticks.

Totality: total
Visibility: public export
petrol : Nat->Latea->Maybea
  Wait for a set number of ticks, hoping to get a value.

Totality: total
Visibility: public export
accelerate : Latea->Latea
  Accelerate makes things happen twice as fast.

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Late(source)

Definitions

dataLate : Type->Type
Totality: total
Visibility: public export
Constructors:
Now : a->Latea
Later : Inf (Latea) ->Latea

Hints:
ApplicativeLate
FunctorLate
MonadLate
never : Latea
  Never return

Totality: total
Visibility: public export
unfold : (seed->Eitherseedvalue) ->seed->Latevalue
  Run a small state machine until it reaches a final state and yields a value.

Totality: total
Visibility: public export
bind : Latea-> (a->Lateb) ->Lateb
  It's easier to define map and (<*>) in terms of bind so let's start
by defining it.

Totality: total
Visibility: public export
isNow : Latea->Maybea
  Check whether we already have a value.

Totality: total
Visibility: public export
wait : Latea->Latea
  Wait for one tick, hoping to get a value.

Totality: total
Visibility: public export
engine : Nat->Latea->Latea
  Wait for a set number of ticks.

Totality: total
Visibility: public export
petrol : Nat->Latea->Maybea
  Wait for a set number of ticks, hoping to get a value.

Totality: total
Visibility: public export
accelerate : Latea->Latea
  Accelerate makes things happen twice as fast.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Linear.Array.html b/contrib/docs/Data.Linear.Array.html index cb22c136ae..8cc22ac5cd 100644 --- a/contrib/docs/Data.Linear.Array.html +++ b/contrib/docs/Data.Linear.Array.html @@ -61,4 +61,4 @@ -

Data.Linear.Array(source)

Definitions

interfaceArray : (Type->Type) ->Type
Parameters: arr
Methods:
read : (1_ : arrt) ->Int->Maybet
size : (1_ : arrt) ->Int

Implementations:
ArrayLinArray
ArrayIArray
read : Arrayarr=> (1_ : arrt) ->Int->Maybet
Visibility: public export
size : Arrayarr=> (1_ : arrt) ->Int
Visibility: public export
interfaceMArray : (Type->Type) ->Type
Parameters: arr
Constraints: Array arr
Methods:
newArray : Int-> (1_ : ((1_ : arrt) ->a)) ->a
write : (1_ : arrt) ->Int->t->ResBool (const (arrt))
mread : (1_ : arrt) ->Int->Res (Maybet) (const (arrt))
msize : (1_ : arrt) ->ResInt (const (arrt))

Implementation: 
MArrayLinArray
newArray : MArrayarr=>Int-> (1_ : ((1_ : arrt) ->a)) ->a
Visibility: public export
write : MArrayarr=> (1_ : arrt) ->Int->t->ResBool (const (arrt))
Visibility: public export
mread : MArrayarr=> (1_ : arrt) ->Int->Res (Maybet) (const (arrt))
Visibility: public export
msize : MArrayarr=> (1_ : arrt) ->ResInt (const (arrt))
Visibility: public export
dataIArray : Type->Type
Totality: total
Visibility: export
Constructor: 
MkIArray : IOArrayt->IArrayt

Hint: 
ArrayIArray
dataLinArray : Type->Type
Totality: total
Visibility: export
Constructor: 
MkLinArray : IOArrayt->LinArrayt

Hints:
ArrayLinArray
MArrayLinArray
toIArray : (1_ : LinArrayt) -> (IArrayt->a) ->a
Visibility: export
copyArray : MArrayarr=>Int-> (1_ : arrt) ->LPair (arrt) (arrt)
Visibility: export
\ No newline at end of file +

Data.Linear.Array(source)

Definitions

interfaceArray : (Type->Type) ->Type
Parameters: arr
Methods:
read : (1_ : arrt) ->Int->Maybet
size : (1_ : arrt) ->Int

Implementations:
ArrayLinArray
ArrayIArray
read : Arrayarr=> (1_ : arrt) ->Int->Maybet
Visibility: public export
size : Arrayarr=> (1_ : arrt) ->Int
Visibility: public export
interfaceMArray : (Type->Type) ->Type
Parameters: arr
Constraints: Array arr
Methods:
newArray : Int-> (1_ : ((1_ : arrt) ->a)) ->a
write : (1_ : arrt) ->Int->t->ResBool (const (arrt))
mread : (1_ : arrt) ->Int->Res (Maybet) (const (arrt))
msize : (1_ : arrt) ->ResInt (const (arrt))

Implementation: 
MArrayLinArray
newArray : MArrayarr=>Int-> (1_ : ((1_ : arrt) ->a)) ->a
Visibility: public export
write : MArrayarr=> (1_ : arrt) ->Int->t->ResBool (const (arrt))
Visibility: public export
mread : MArrayarr=> (1_ : arrt) ->Int->Res (Maybet) (const (arrt))
Visibility: public export
msize : MArrayarr=> (1_ : arrt) ->ResInt (const (arrt))
Visibility: public export
dataIArray : Type->Type
Totality: total
Visibility: export
Constructor: 
MkIArray : IOArrayt->IArrayt

Hint: 
ArrayIArray
dataLinArray : Type->Type
Totality: total
Visibility: export
Constructor: 
MkLinArray : IOArrayt->LinArrayt

Hints:
ArrayLinArray
MArrayLinArray
toIArray : (1_ : LinArrayt) -> (IArrayt->a) ->a
Visibility: export
copyArray : MArrayarr=>Int-> (1_ : arrt) ->LPair (arrt) (arrt)
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.List.Algebra.html b/contrib/docs/Data.List.Algebra.html index ff7651158c..a145c28d36 100644 --- a/contrib/docs/Data.List.Algebra.html +++ b/contrib/docs/Data.List.Algebra.html @@ -61,4 +61,4 @@ -

Data.List.Algebra(source)

Definitions

\ No newline at end of file +

Data.List.Algebra(source)

Definitions

\ No newline at end of file diff --git a/contrib/docs/Data.List.Alternating.html b/contrib/docs/Data.List.Alternating.html index f7b39b97c8..49bccd9069 100644 --- a/contrib/docs/Data.List.Alternating.html +++ b/contrib/docs/Data.List.Alternating.html @@ -61,4 +61,4 @@ -

Data.List.Alternating(source)

Definitions

dataOdd : Type->Type->Type
  Non-empty list, starting and ending with an a, where adjacent elements alternate
between types a and b.
We can think of this type as:
- A fence, with the `a`s as fence-posts, and the `b`s as panels.
- A non-empty list of `a`s, separated by `b`s
- A list of `b`s, separated by, and surrounded by, `a`s
- The free extension of a monoid `a`, with variables in `b`

Totality: total
Visibility: public export
Constructor: 
(::) : a->Evenba->Oddab

Hints:
Monoida=>Alternative (Odda)
Monoida=>Applicative (Odda)
BifoldableOdd
BifunctorOdd
BitraversableOdd
Eqa=>Eqb=>Eq (Oddab)
Foldable (Odda)
Functor (Odda)
Monoida=>Monoid (Oddab)
Orda=>Ordb=>Ord (Oddab)
Semigroupa=>Semigroup (Oddab)
Showa=>Showb=>Show (Oddab)
Traversable (Odda)
dataEven : Type->Type->Type
  A list, starting with an a, and ending with a b; where adjacent elements
alternate between types a and b.
Equivalent to List (a, b)

Totality: total
Visibility: public export
Constructors:
Nil : Evenab
(::) : a->Oddba->Evenab

Hints:
BifoldableEven
BifunctorEven
BitraversableEven
Eqa=>Eqb=>Eq (Evenab)
Monoid (Evenab)
Orda=>Ordb=>Ord (Evenab)
Semigroup (Evenab)
Showa=>Showb=>Show (Evenab)
(++) : Oddab->Oddba->Evenab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
(++) : Evenab->Oddab->Oddab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
(++) : Evenab->Evenab->Evenab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
(++) : Oddab->Evenba->Oddab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
(+>) : Semigroupa=>Oddab->a->Oddab
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 5
(<+) : Semigroupa=>a->Oddab->Oddab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 5
singleton : a->Oddab
Totality: total
Visibility: public export
flatten : Odd (Oddab) b->Oddab
Totality: total
Visibility: public export
(>>=) : Monoida=>Oddab-> (b->Oddac) ->Oddac
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(>>=) : Oddac-> (a->Oddbc) ->Oddbc
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
odds : Oddab->Lista
Totality: total
Visibility: public export
evens : Evenab->Listb
Totality: total
Visibility: public export
evens : Oddab->Listb
Totality: total
Visibility: public export
odds : Evenab->Lista
Totality: total
Visibility: public export
forget : Oddaa->Lista
Totality: total
Visibility: public export
forget : Evenaa->Lista
Totality: total
Visibility: public export
\ No newline at end of file +

Data.List.Alternating(source)

Definitions

dataOdd : Type->Type->Type
  Non-empty list, starting and ending with an a, where adjacent elements alternate
between types a and b.
We can think of this type as:
- A fence, with the `a`s as fence-posts, and the `b`s as panels.
- A non-empty list of `a`s, separated by `b`s
- A list of `b`s, separated by, and surrounded by, `a`s
- The free extension of a monoid `a`, with variables in `b`

Totality: total
Visibility: public export
Constructor: 
(::) : a->Evenba->Oddab

Hints:
Monoida=>Alternative (Odda)
Monoida=>Applicative (Odda)
BifoldableOdd
BifunctorOdd
BitraversableOdd
Eqa=>Eqb=>Eq (Oddab)
Foldable (Odda)
Functor (Odda)
Monoida=>Monoid (Oddab)
Orda=>Ordb=>Ord (Oddab)
Semigroupa=>Semigroup (Oddab)
Showa=>Showb=>Show (Oddab)
Traversable (Odda)
dataEven : Type->Type->Type
  A list, starting with an a, and ending with a b; where adjacent elements
alternate between types a and b.
Equivalent to List (a, b)

Totality: total
Visibility: public export
Constructors:
Nil : Evenab
(::) : a->Oddba->Evenab

Hints:
BifoldableEven
BifunctorEven
BitraversableEven
Eqa=>Eqb=>Eq (Evenab)
Monoid (Evenab)
Orda=>Ordb=>Ord (Evenab)
Semigroup (Evenab)
Showa=>Showb=>Show (Evenab)
(++) : Oddab->Oddba->Evenab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
(++) : Evenab->Oddab->Oddab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
(++) : Evenab->Evenab->Evenab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
(++) : Oddab->Evenba->Oddab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
(+>) : Semigroupa=>Oddab->a->Oddab
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 5
(<+) : Semigroupa=>a->Oddab->Oddab
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 5
singleton : a->Oddab
Totality: total
Visibility: public export
flatten : Odd (Oddab) b->Oddab
Totality: total
Visibility: public export
(>>=) : Monoida=>Oddab-> (b->Oddac) ->Oddac
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(>>=) : Oddac-> (a->Oddbc) ->Oddbc
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
odds : Oddab->Lista
Totality: total
Visibility: public export
evens : Evenab->Listb
Totality: total
Visibility: public export
evens : Oddab->Listb
Totality: total
Visibility: public export
odds : Evenab->Lista
Totality: total
Visibility: public export
forget : Oddaa->Lista
Totality: total
Visibility: public export
forget : Evenaa->Lista
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.List.AtIndex.html b/contrib/docs/Data.List.AtIndex.html index db5ba5effe..224fe94b19 100644 --- a/contrib/docs/Data.List.AtIndex.html +++ b/contrib/docs/Data.List.AtIndex.html @@ -61,4 +61,4 @@ -

Data.List.AtIndex(source)

Definitions

dataAtIndex : a->Lista->Nat->Type
  @AtIndex witnesses the fact that a natural number encodes a membership proof.
It is meant to be used as a runtime-irrelevant gadget to guarantee that the
natural number is indeed a valid index.

Totality: total
Visibility: public export
Constructors:
Z : AtIndexa (a::as) 0
S : AtIndexaasn->AtIndexa (b::as) (Sn)

Hint: 
Uninhabited (AtIndexa [] n)
inverseZ : AtIndexx (y::xs) 0->x=y
  Inversion principle for Z constructor

Totality: total
Visibility: export
inverseS : AtIndexx (y::xs) (Sn) ->AtIndexxxsn
  inversion principle for S constructor

Totality: total
Visibility: export
atIndexUnique : AtIndexaasn->AtIndexbasn->a=b
  For a given list and a given index, there is only one possible value
stored at that index in that list

Totality: total
Visibility: export
find : DecEqa=> (x : a) -> (xs : Lista) ->Dec (SubsetNat (AtIndexxxs))
  Provided that equality is decidable, we can look for the first occurence
of a value inside of a list

Totality: total
Visibility: public export
interfaceMember : a->Lista->Type
  If the equality is not decidable, we may instead rely on interface resolution

Parameters: t, ts
Methods:
isMember' : SubsetNat (AtIndextts)

Implementations:
Membert (t::ts)
Membertts=>Membert (u::ts)
isMember' : Membertts=>SubsetNat (AtIndextts)
Totality: total
Visibility: public export
isMember : (0t : a) -> (0ts : Lista) ->Membertts=>SubsetNat (AtIndextts)
Totality: total
Visibility: public export
lookup : (n : Nat) -> (xs : Lista) ->Dec (Subseta (\x=>AtIndexxxsn))
  Given an index, we can decide whether there is a value corresponding to it

Totality: total
Visibility: public export
inRange : (n : Nat) -> (xs : Lista) -> (0_ : AtIndexxxsn) ->LTEn (lengthxs)
  An AtIndex proof implies that n is less than the length of the list indexed into

Totality: total
Visibility: public export
weakenR : AtIndexxxsn->AtIndexx (xs++ys) n
  

Totality: total
Visibility: export
weakenL : (p : SubsetNat (flipHasLengthws)) ->AtIndexxxsn->AtIndexx (ws++xs) (fstp+n)
Totality: total
Visibility: export
strengthenL : (p : SubsetNat (flipHasLengthxs)) ->ltn (fstp) =True->AtIndexx (xs++ys) n->AtIndexxxsn
Totality: total
Visibility: export
strengthenR : (p : SubsetNat (flipHasLengthws)) ->lte (fstp) n=True->AtIndexx (ws++xs) n->AtIndexxxs (minusn (fstp))
Totality: total
Visibility: export
\ No newline at end of file +

Data.List.AtIndex(source)

Definitions

dataAtIndex : a->Lista->Nat->Type
  @AtIndex witnesses the fact that a natural number encodes a membership proof.
It is meant to be used as a runtime-irrelevant gadget to guarantee that the
natural number is indeed a valid index.

Totality: total
Visibility: public export
Constructors:
Z : AtIndexa (a::as) 0
S : AtIndexaasn->AtIndexa (b::as) (Sn)

Hint: 
Uninhabited (AtIndexa [] n)
inverseZ : AtIndexx (y::xs) 0->x=y
  Inversion principle for Z constructor

Totality: total
Visibility: export
inverseS : AtIndexx (y::xs) (Sn) ->AtIndexxxsn
  inversion principle for S constructor

Totality: total
Visibility: export
atIndexUnique : AtIndexaasn->AtIndexbasn->a=b
  For a given list and a given index, there is only one possible value
stored at that index in that list

Totality: total
Visibility: export
find : DecEqa=> (x : a) -> (xs : Lista) ->Dec (SubsetNat (AtIndexxxs))
  Provided that equality is decidable, we can look for the first occurence
of a value inside of a list

Totality: total
Visibility: public export
interfaceMember : a->Lista->Type
  If the equality is not decidable, we may instead rely on interface resolution

Parameters: t, ts
Methods:
isMember' : SubsetNat (AtIndextts)

Implementations:
Membert (t::ts)
Membertts=>Membert (u::ts)
isMember' : Membertts=>SubsetNat (AtIndextts)
Totality: total
Visibility: public export
isMember : (0t : a) -> (0ts : Lista) ->Membertts=>SubsetNat (AtIndextts)
Totality: total
Visibility: public export
lookup : (n : Nat) -> (xs : Lista) ->Dec (Subseta (\x=>AtIndexxxsn))
  Given an index, we can decide whether there is a value corresponding to it

Totality: total
Visibility: public export
inRange : (n : Nat) -> (xs : Lista) -> (0_ : AtIndexxxsn) ->LTEn (lengthxs)
  An AtIndex proof implies that n is less than the length of the list indexed into

Totality: total
Visibility: public export
weakenR : AtIndexxxsn->AtIndexx (xs++ys) n
  

Totality: total
Visibility: export
weakenL : (p : SubsetNat (flipHasLengthws)) ->AtIndexxxsn->AtIndexx (ws++xs) (fstp+n)
Totality: total
Visibility: export
strengthenL : (p : SubsetNat (flipHasLengthxs)) ->ltn (fstp) =True->AtIndexx (xs++ys) n->AtIndexxxsn
Totality: total
Visibility: export
strengthenR : (p : SubsetNat (flipHasLengthws)) ->lte (fstp) n=True->AtIndexx (ws++xs) n->AtIndexxxs (minusn (fstp))
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.List.Elem.Extra.html b/contrib/docs/Data.List.Elem.Extra.html index c957e33619..ee54c94a10 100644 --- a/contrib/docs/Data.List.Elem.Extra.html +++ b/contrib/docs/Data.List.Elem.Extra.html @@ -61,4 +61,4 @@ -

Data.List.Elem.Extra(source)

Definitions

elemAppLeft : (xs : Lista) -> (ys : Lista) ->Elemxxs->Elemx (xs++ys)
  Proof that an element is still inside a list if we append to it.

Totality: total
Visibility: public export
elemAppRight : (ys : Lista) -> (xs : Lista) ->Elemxxs->Elemx (ys++xs)
  Proof that an element is still inside a list if we prepend to it.

Totality: total
Visibility: public export
elemAppLorR : (xs : Lista) -> (ys : Lista) ->Elemk (xs++ys) ->Either (Elemkxs) (Elemkys)
  Proof that membership on append implies membership in left or right sublist.

Totality: total
Visibility: public export
notElemAppLeft : (xs : Lista) -> (ys : Lista) ->Not (Elemx (xs++ys)) ->Not (Elemxxs)
  Proof that x is not in (xs ++ ys) implies proof that x is not in xs.

Totality: total
Visibility: public export
notElemAppRight : (ys : Lista) -> (xs : Lista) ->Not (Elemx (xs++ys)) ->Not (Elemxys)
  Proof that x is not in (xs ++ ys) implies proof that x is not in ys.

Totality: total
Visibility: public export
\ No newline at end of file +

Data.List.Elem.Extra(source)

Definitions

elemAppLeft : (xs : Lista) -> (ys : Lista) ->Elemxxs->Elemx (xs++ys)
  Proof that an element is still inside a list if we append to it.

Totality: total
Visibility: public export
elemAppRight : (ys : Lista) -> (xs : Lista) ->Elemxxs->Elemx (ys++xs)
  Proof that an element is still inside a list if we prepend to it.

Totality: total
Visibility: public export
elemAppLorR : (xs : Lista) -> (ys : Lista) ->Elemk (xs++ys) ->Either (Elemkxs) (Elemkys)
  Proof that membership on append implies membership in left or right sublist.

Totality: total
Visibility: public export
notElemAppLeft : (xs : Lista) -> (ys : Lista) ->Not (Elemx (xs++ys)) ->Not (Elemxxs)
  Proof that x is not in (xs ++ ys) implies proof that x is not in xs.

Totality: total
Visibility: public export
notElemAppRight : (ys : Lista) -> (xs : Lista) ->Not (Elemx (xs++ys)) ->Not (Elemxys)
  Proof that x is not in (xs ++ ys) implies proof that x is not in ys.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.List.Equalities.html b/contrib/docs/Data.List.Equalities.html index 797ea31b12..3d73059435 100644 --- a/contrib/docs/Data.List.Equalities.html +++ b/contrib/docs/Data.List.Equalities.html @@ -61,4 +61,4 @@ -

Data.List.Equalities(source)

Definitions

snocNonEmpty : Not (xs++ [x] = [])
  A list constructued using snoc cannot be empty.

Totality: total
Visibility: export
SnocNonEmpty : (xs : Lista) -> (x : a) ->NonEmpty (snocxsx)
  Proof that snoc'ed list is not empty in terms of `NonEmpty`.

Totality: total
Visibility: export
consCong2 : x=y->xs=ys->x::xs=y::ys
  Two lists are equal, if their heads are equal and their tails are equal.

Totality: total
Visibility: export
snocInjective : snocxsx=snocysy-> (xs=ys, x=y)
  Equal non-empty lists should result in equal components after destructuring 'snoc'.

Totality: total
Visibility: export
appendCong2 : x1=y1->x2=y2->x1++x2=y1++y2
  Appending pairwise equal lists gives equal lists

Totality: total
Visibility: export
mapDistributesOverAppend : (f : (a->b)) -> (xs : Lista) -> (ys : Lista) ->mapf (xs++ys) =mapfxs++mapfys
  List.map is distributive over appending.

Totality: total
Visibility: export
lengthDistributesOverAppend : (xs : Lista) -> (ys : Lista) ->length (xs++ys) =lengthxs+lengthys
  List.length is distributive over appending.

Totality: total
Visibility: export
lengthSnoc : (x : a) -> (xs : Lista) ->length (snocxsx) =S (lengthxs)
  Length of a snoc'd list is the same as Succ of length list.

Totality: total
Visibility: export
appendSameLeftInjective : (xs : Lista) -> (ys : Lista) -> (zs : Lista) ->zs++xs=zs++ys->xs=ys
  Appending the same list at left is injective.

Totality: total
Visibility: export
appendSameRightInjective : (xs : Lista) -> (ys : Lista) -> (zs : Lista) ->xs++zs=ys++zs->xs=ys
  Appending the same list at right is injective.

Totality: total
Visibility: export
appendNonEmptyLeftNotEq : (zs : Lista) -> (xs : Lista) ->NonEmptyxs=>Not (zs=xs++zs)
  List cannot be equal to itself prepended with some non-empty list.

Totality: total
Visibility: export
appendNonEmptyRightNotEq : (zs : Lista) -> (xs : Lista) ->NonEmptyxs=>Not (zs=zs++xs)
  List cannot be equal to itself appended with some non-empty list.

Totality: total
Visibility: export
bindConcatPrf : (xs : Lista) -> (x : a) -> (f : (a->Listb)) -> (x::xs) >>=f=fx++ (xs>>=f)
  Proof of correspondence between list bind and concatenation.

Totality: total
Visibility: export
\ No newline at end of file +

Data.List.Equalities(source)

Definitions

snocNonEmpty : Not (xs++ [x] = [])
  A list constructued using snoc cannot be empty.

Totality: total
Visibility: export
SnocNonEmpty : (xs : Lista) -> (x : a) ->NonEmpty (snocxsx)
  Proof that snoc'ed list is not empty in terms of `NonEmpty`.

Totality: total
Visibility: export
consCong2 : x=y->xs=ys->x::xs=y::ys
  Two lists are equal, if their heads are equal and their tails are equal.

Totality: total
Visibility: export
snocInjective : snocxsx=snocysy-> (xs=ys, x=y)
  Equal non-empty lists should result in equal components after destructuring 'snoc'.

Totality: total
Visibility: export
appendCong2 : x1=y1->x2=y2->x1++x2=y1++y2
  Appending pairwise equal lists gives equal lists

Totality: total
Visibility: export
mapDistributesOverAppend : (f : (a->b)) -> (xs : Lista) -> (ys : Lista) ->mapf (xs++ys) =mapfxs++mapfys
  List.map is distributive over appending.

Totality: total
Visibility: export
lengthDistributesOverAppend : (xs : Lista) -> (ys : Lista) ->length (xs++ys) =lengthxs+lengthys
  List.length is distributive over appending.

Totality: total
Visibility: export
lengthSnoc : (x : a) -> (xs : Lista) ->length (snocxsx) =S (lengthxs)
  Length of a snoc'd list is the same as Succ of length list.

Totality: total
Visibility: export
appendSameLeftInjective : (xs : Lista) -> (ys : Lista) -> (zs : Lista) ->zs++xs=zs++ys->xs=ys
  Appending the same list at left is injective.

Totality: total
Visibility: export
appendSameRightInjective : (xs : Lista) -> (ys : Lista) -> (zs : Lista) ->xs++zs=ys++zs->xs=ys
  Appending the same list at right is injective.

Totality: total
Visibility: export
appendNonEmptyLeftNotEq : (zs : Lista) -> (xs : Lista) ->NonEmptyxs=>Not (zs=xs++zs)
  List cannot be equal to itself prepended with some non-empty list.

Totality: total
Visibility: export
appendNonEmptyRightNotEq : (zs : Lista) -> (xs : Lista) ->NonEmptyxs=>Not (zs=zs++xs)
  List cannot be equal to itself appended with some non-empty list.

Totality: total
Visibility: export
bindConcatPrf : (xs : Lista) -> (x : a) -> (f : (a->Listb)) -> (x::xs) >>=f=fx++ (xs>>=f)
  Proof of correspondence between list bind and concatenation.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.List.Extra.html b/contrib/docs/Data.List.Extra.html index 26a1e88ce2..69f91263ec 100644 --- a/contrib/docs/Data.List.Extra.html +++ b/contrib/docs/Data.List.Extra.html @@ -61,4 +61,4 @@ -

Data.List.Extra(source)

Definitions

mapi : (Nat->a->b) ->Lista->Listb
  Analogous to `map` for `List`, but the function is applied to the index of
the element as first argument (counting from 0), and the element itself as
second argument.

Totality: total
Visibility: public export
filterLoc : (a->Bool) ->Lista-> (Lista, ListNat)
  Applied to a predicate and a list, returns the list of those elements that
satisfy the predicate with corresponding indices in a stand-alone list.
See also `Data.List.Extra.filterLoc'`.

Totality: total
Visibility: public export
filterLoc' : (a->Bool) ->Lista->List (a, Nat)
  Applied to a predicate and a list, returns the list of those elements that
satisfy the predicate with corresponding indices.

Totality: total
Visibility: public export
\ No newline at end of file +

Data.List.Extra(source)

Definitions

mapi : (Nat->a->b) ->Lista->Listb
  Analogous to `map` for `List`, but the function is applied to the index of
the element as first argument (counting from 0), and the element itself as
second argument.

Totality: total
Visibility: public export
filterLoc : (a->Bool) ->Lista-> (Lista, ListNat)
  Applied to a predicate and a list, returns the list of those elements that
satisfy the predicate with corresponding indices in a stand-alone list.
See also `Data.List.Extra.filterLoc'`.

Totality: total
Visibility: public export
filterLoc' : (a->Bool) ->Lista->List (a, Nat)
  Applied to a predicate and a list, returns the list of those elements that
satisfy the predicate with corresponding indices.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.List.Palindrome.html b/contrib/docs/Data.List.Palindrome.html index 6a53b08b18..9b9f6fe69f 100644 --- a/contrib/docs/Data.List.Palindrome.html +++ b/contrib/docs/Data.List.Palindrome.html @@ -61,4 +61,4 @@ -

Data.List.Palindrome(source)

Definitions

dataPalindrome : Lista->Type
  Do geese see God?

Totality: total
Visibility: public export
Constructors:
Empty : Palindrome []
Single : Palindrome [{_:5373}]
Multi : Palindromexs->Palindrome (x::snocxsx)
palindromeReverse : (xs : Lista) ->Palindromexs->reversexs=xs
  A Palindrome reversed is itself.

Totality: total
Visibility: export
reversePalindrome : (xs : Lista) ->reversexs=xs->Palindromexs
  Only Palindromes are equal to their own reverse.

Totality: total
Visibility: export
\ No newline at end of file +

Data.List.Palindrome(source)

Definitions

dataPalindrome : Lista->Type
  Do geese see God?

Totality: total
Visibility: public export
Constructors:
Empty : Palindrome []
Single : Palindrome [{_:5373}]
Multi : Palindromexs->Palindrome (x::snocxsx)
palindromeReverse : (xs : Lista) ->Palindromexs->reversexs=xs
  A Palindrome reversed is itself.

Totality: total
Visibility: export
reversePalindrome : (xs : Lista) ->reversexs=xs->Palindromexs
  Only Palindromes are equal to their own reverse.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.List.Reverse.html b/contrib/docs/Data.List.Reverse.html index ce7f6bf3a1..16bc75b34b 100644 --- a/contrib/docs/Data.List.Reverse.html +++ b/contrib/docs/Data.List.Reverse.html @@ -62,4 +62,4 @@

Data.List.Reverse(source)

Properties of the reverse function.
-

Definitions

reverseOntoAcc : (xs : Lista) -> (ys : Lista) -> (zs : Lista) ->reverseOnto (ys++zs) xs=reverseOntoysxs++zs
Totality: total
Visibility: export
reverseOntoSpec : (xs : Lista) -> (ys : Lista) ->reverseOntoxsys=reverseys++xs
  Serves as a specification for reverseOnto.

Totality: total
Visibility: export
reverseNil : reverse [] = []
  The reverse of an empty list is an empty list.  Together with reverseCons,
serves as a specification for reverse.

Totality: total
Visibility: export
reverseCons : (x : a) -> (xs : Lista) ->reverse (x::xs) =snoc (reversexs) x
  The reverse of a cons is the reverse of the tail followed by the head.
Together with reverseNil serves as a specification for reverse.

Totality: total
Visibility: export
0slowReverse : Lista->Lista
  A slow recursive definition of reverse.

Totality: total
Visibility: public export
reverseEquiv : (xs : Lista) ->slowReversexs=reversexs
  The iterative and recursive defintions of reverse are the same.

Totality: total
Visibility: export
reverseSingletonId : (x : a) ->reverse [x] = [x]
  Reversing a singleton list is a no-op.

Totality: total
Visibility: export
reverseOntoLength : (xs : Lista) -> (acc : Lista) ->length (reverseOntoaccxs) =lengthacc+lengthxs
  Reversing onto preserves list length.

Totality: total
Visibility: export
reverseLength : (xs : Lista) ->length (reversexs) =lengthxs
  Reversing preserves list length.

Totality: total
Visibility: export
reverseEqual : (xs : Lista) -> (ys : Lista) ->reversexs=reverseys->xs=ys
  Equal reversed lists are equal.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

reverseOntoAcc : (xs : Lista) -> (ys : Lista) -> (zs : Lista) ->reverseOnto (ys++zs) xs=reverseOntoysxs++zs
Totality: total
Visibility: export
reverseOntoSpec : (xs : Lista) -> (ys : Lista) ->reverseOntoxsys=reverseys++xs
  Serves as a specification for reverseOnto.

Totality: total
Visibility: export
reverseNil : reverse [] = []
  The reverse of an empty list is an empty list.  Together with reverseCons,
serves as a specification for reverse.

Totality: total
Visibility: export
reverseCons : (x : a) -> (xs : Lista) ->reverse (x::xs) =snoc (reversexs) x
  The reverse of a cons is the reverse of the tail followed by the head.
Together with reverseNil serves as a specification for reverse.

Totality: total
Visibility: export
0slowReverse : Lista->Lista
  A slow recursive definition of reverse.

Totality: total
Visibility: public export
reverseEquiv : (xs : Lista) ->slowReversexs=reversexs
  The iterative and recursive defintions of reverse are the same.

Totality: total
Visibility: export
reverseSingletonId : (x : a) ->reverse [x] = [x]
  Reversing a singleton list is a no-op.

Totality: total
Visibility: export
reverseOntoLength : (xs : Lista) -> (acc : Lista) ->length (reverseOntoaccxs) =lengthacc+lengthxs
  Reversing onto preserves list length.

Totality: total
Visibility: export
reverseLength : (xs : Lista) ->length (reversexs) =lengthxs
  Reversing preserves list length.

Totality: total
Visibility: export
reverseEqual : (xs : Lista) -> (ys : Lista) ->reversexs=reverseys->xs=ys
  Equal reversed lists are equal.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.List.Sufficient.html b/contrib/docs/Data.List.Sufficient.html index cf6279b7cb..5bfb64cf88 100644 --- a/contrib/docs/Data.List.Sufficient.html +++ b/contrib/docs/Data.List.Sufficient.html @@ -62,4 +62,4 @@

Data.List.Sufficient(source)

WellFounded on List suffixes
-

Definitions

dataSuffix : Lista->Lista->Type
Totality: total
Visibility: public export
Constructor: 
IsSuffix : (x : a) -> (zs : Lista) -> (0_ : xs=x:: (zs++ys)) ->Suffixysxs

Hint: 
WellFounded (Lista) Suffix
\ No newline at end of file +

Definitions

dataSuffix : Lista->Lista->Type
Totality: total
Visibility: public export
Constructor: 
IsSuffix : (x : a) -> (zs : Lista) -> (0_ : xs=x:: (zs++ys)) ->Suffixysxs

Hint: 
WellFounded (Lista) Suffix
\ No newline at end of file diff --git a/contrib/docs/Data.List.TailRec.html b/contrib/docs/Data.List.TailRec.html index ae2cbef6a1..8c217a528f 100644 --- a/contrib/docs/Data.List.TailRec.html +++ b/contrib/docs/Data.List.TailRec.html @@ -77,4 +77,4 @@ 2. The proofs below also work on non-publicly exported definitions. This could be due to a bug, and will need to be moved elsewhere if it's fixed. -

Definitions

length : Lista->Nat
Totality: total
Visibility: export
length_ext : (xs : Lista) ->lengthxs=lengthxs
Totality: total
Visibility: export
take : Nat->Lista->Lista
Totality: total
Visibility: export
take_ext : (n : Nat) -> (xs : Lista) ->takenxs=takenxs
Totality: total
Visibility: export
span : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
span_ext : (p : (a->Bool)) -> (xs : Lista) ->spanpxs=spanpxs
Totality: total
Visibility: export
break : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
break_ext : (p : (a->Bool)) -> (xs : Lista) ->breakpxs=breakpxs
Totality: total
Visibility: export
split : (a->Bool) ->Lista->List1 (Lista)
Totality: total
Visibility: export
split_ext : (p : (a->Bool)) -> (xs : Lista) ->splitpxs=splitpxs
Totality: total
Visibility: export
splitAt : Nat->Lista-> (Lista, Lista)
Totality: total
Visibility: export
splitAt_ext : (n : Nat) -> (xs : Lista) ->splitAtnxs=splitAtnxs
Totality: total
Visibility: export
partition : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
intersperse : a->Lista->Lista
Totality: total
Visibility: export
intersperse_ext : (sep : a) -> (xs : Lista) ->interspersesepxs=interspersesepxs
Totality: total
Visibility: export
mapMaybe : (a->Maybeb) ->Lista->Listb
Totality: total
Visibility: export
mapMaybe_ext : (f : (a->Maybeb)) -> (xs : Lista) ->mapMaybefxs=mapMaybefxs
Totality: total
Visibility: export
sorted : Orda=>Lista->Bool
Totality: total
Visibility: export
sorted_ext : {auto{conArg:6976} : Orda} -> (xs : Lista) ->sortedxs=sortedxs
Visibility: export
mergeBy : (a->a->Ordering) ->Lista->Lista->Lista
Totality: total
Visibility: export
mergeBy_ext : (order : (a->a->Ordering)) -> (left : Lista) -> (right : Lista) ->mergeByorderleftright=mergeByorderleftright
Visibility: export
merge : Orda=>Lista->Lista->Lista
Totality: total
Visibility: export
merge_ext : {auto{conArg:7383} : Orda} -> (left : Lista) -> (right : Lista) ->mergeleftright=mergeleftright
Visibility: export
sortBy : (a->a->Ordering) ->Lista->Lista
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

length : Lista->Nat
Totality: total
Visibility: export
length_ext : (xs : Lista) ->lengthxs=lengthxs
Totality: total
Visibility: export
take : Nat->Lista->Lista
Totality: total
Visibility: export
take_ext : (n : Nat) -> (xs : Lista) ->takenxs=takenxs
Totality: total
Visibility: export
span : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
span_ext : (p : (a->Bool)) -> (xs : Lista) ->spanpxs=spanpxs
Totality: total
Visibility: export
break : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
break_ext : (p : (a->Bool)) -> (xs : Lista) ->breakpxs=breakpxs
Totality: total
Visibility: export
split : (a->Bool) ->Lista->List1 (Lista)
Totality: total
Visibility: export
split_ext : (p : (a->Bool)) -> (xs : Lista) ->splitpxs=splitpxs
Totality: total
Visibility: export
splitAt : Nat->Lista-> (Lista, Lista)
Totality: total
Visibility: export
splitAt_ext : (n : Nat) -> (xs : Lista) ->splitAtnxs=splitAtnxs
Totality: total
Visibility: export
partition : (a->Bool) ->Lista-> (Lista, Lista)
Totality: total
Visibility: export
intersperse : a->Lista->Lista
Totality: total
Visibility: export
intersperse_ext : (sep : a) -> (xs : Lista) ->interspersesepxs=interspersesepxs
Totality: total
Visibility: export
mapMaybe : (a->Maybeb) ->Lista->Listb
Totality: total
Visibility: export
mapMaybe_ext : (f : (a->Maybeb)) -> (xs : Lista) ->mapMaybefxs=mapMaybefxs
Totality: total
Visibility: export
sorted : Orda=>Lista->Bool
Totality: total
Visibility: export
sorted_ext : {auto{conArg:6976} : Orda} -> (xs : Lista) ->sortedxs=sortedxs
Visibility: export
mergeBy : (a->a->Ordering) ->Lista->Lista->Lista
Totality: total
Visibility: export
mergeBy_ext : (order : (a->a->Ordering)) -> (left : Lista) -> (right : Lista) ->mergeByorderleftright=mergeByorderleftright
Visibility: export
merge : Orda=>Lista->Lista->Lista
Totality: total
Visibility: export
merge_ext : {auto{conArg:7383} : Orda} -> (left : Lista) -> (right : Lista) ->mergeleftright=mergeleftright
Visibility: export
sortBy : (a->a->Ordering) ->Lista->Lista
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.List.Views.Extra.html b/contrib/docs/Data.List.Views.Extra.html index 272e3b17ed..36c28390a2 100644 --- a/contrib/docs/Data.List.Views.Extra.html +++ b/contrib/docs/Data.List.Views.Extra.html @@ -61,4 +61,4 @@ -

Data.List.Views.Extra(source)

Definitions

dataBalanced : Nat->Nat->Type
  Proof that two numbers differ by at most one

Totality: total
Visibility: public export
Constructors:
BalancedZ : Balanced00
BalancedL : Balanced10
BalancedRec : Balancednm->Balanced (Sn) (Sm)

Hint: 
Uninhabited (Balanced0 (Sk))
balancedPred : Balanced (Sx) (Sy) ->Balancedxy
Totality: total
Visibility: export
mkBalancedEq : n=m->Balancednm
Totality: total
Visibility: export
mkBalancedL : n=Sm->Balancednm
Totality: total
Visibility: export
dataSplitBalanced : Lista->Type
  View of a list split into two halves

The lengths of the lists are guaranteed to differ by at most one

Totality: total
Visibility: public export
Constructor: 
MkSplitBal : Balanced (lengthxs) (lengthys) ->SplitBalanced (xs++ys)
splitBalanced : (input : Lista) ->SplitBalancedinput
  Covering function for the `SplitBalanced`

Constructs the view in linear time

Totality: total
Visibility: export
dataVList : Lista->Type
  The `VList` view allows us to recurse on the middle of a list,
inspecting the front and back elements simultaneously.

Totality: total
Visibility: public export
Constructors:
VNil : VList []
VOne : VList [x]
VCons : Lazy (VListxs) ->VList (x:: (xs++ [y]))
vList : (xs : Lista) ->VListxs
  Covering function for `VList`
Constructs the view in linear time.

Totality: total
Visibility: export
dataLazyFilterRec : Lista->Type
  Lazy filtering of a list based on a predicate.

Totality: total
Visibility: public export
Constructors:
Exhausted : (skip : Lista) ->LazyFilterRecskip
Found : (skip : Lista) -> (head : a) -> Lazy (LazyFilterRecrest) ->LazyFilterRec (skip++ (head::rest))
lazyFilterRec : (a->Bool) -> (xs : Lista) ->LazyFilterRecxs
  Covering function for the LazyFilterRec view.
Constructs the view lazily in linear time.

Totality: total
Visibility: export
\ No newline at end of file +

Data.List.Views.Extra(source)

Definitions

dataBalanced : Nat->Nat->Type
  Proof that two numbers differ by at most one

Totality: total
Visibility: public export
Constructors:
BalancedZ : Balanced00
BalancedL : Balanced10
BalancedRec : Balancednm->Balanced (Sn) (Sm)

Hint: 
Uninhabited (Balanced0 (Sk))
balancedPred : Balanced (Sx) (Sy) ->Balancedxy
Totality: total
Visibility: export
mkBalancedEq : n=m->Balancednm
Totality: total
Visibility: export
mkBalancedL : n=Sm->Balancednm
Totality: total
Visibility: export
dataSplitBalanced : Lista->Type
  View of a list split into two halves

The lengths of the lists are guaranteed to differ by at most one

Totality: total
Visibility: public export
Constructor: 
MkSplitBal : Balanced (lengthxs) (lengthys) ->SplitBalanced (xs++ys)
splitBalanced : (input : Lista) ->SplitBalancedinput
  Covering function for the `SplitBalanced`

Constructs the view in linear time

Totality: total
Visibility: export
dataVList : Lista->Type
  The `VList` view allows us to recurse on the middle of a list,
inspecting the front and back elements simultaneously.

Totality: total
Visibility: public export
Constructors:
VNil : VList []
VOne : VList [x]
VCons : Lazy (VListxs) ->VList (x:: (xs++ [y]))
vList : (xs : Lista) ->VListxs
  Covering function for `VList`
Constructs the view in linear time.

Totality: total
Visibility: export
dataLazyFilterRec : Lista->Type
  Lazy filtering of a list based on a predicate.

Totality: total
Visibility: public export
Constructors:
Exhausted : (skip : Lista) ->LazyFilterRecskip
Found : (skip : Lista) -> (head : a) -> Lazy (LazyFilterRecrest) ->LazyFilterRec (skip++ (head::rest))
lazyFilterRec : (a->Bool) -> (xs : Lista) ->LazyFilterRecxs
  Covering function for the LazyFilterRec view.
Constructs the view lazily in linear time.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Logic.Propositional.html b/contrib/docs/Data.Logic.Propositional.html index 688cdbc6f7..c59d0d5192 100644 --- a/contrib/docs/Data.Logic.Propositional.html +++ b/contrib/docs/Data.Logic.Propositional.html @@ -61,4 +61,4 @@ -

Data.Logic.Propositional(source)

Definitions

\ No newline at end of file +

Data.Logic.Propositional(source)

Definitions

\ No newline at end of file diff --git a/contrib/docs/Data.Monoid.Exponentiation.html b/contrib/docs/Data.Monoid.Exponentiation.html index d40848e785..d895b2472a 100644 --- a/contrib/docs/Data.Monoid.Exponentiation.html +++ b/contrib/docs/Data.Monoid.Exponentiation.html @@ -61,4 +61,4 @@ -

Data.Monoid.Exponentiation(source)

Definitions

linear : Monoida=>a->Nat->a
Totality: total
Visibility: public export
modularRec : Monoida=>a->HalfRecn->a
Totality: total
Visibility: public export
modular : Monoida=>a->Nat->a
Totality: total
Visibility: public export
(^) : Numa=>a->Nat->a
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 10
linearPlusHomo : {automon : Monoida} -> (x<+>y) <+>z=x<+> (y<+>z) ->neutral<+>x=x-> (v : a) ->linearvm<+>linearvn=linearv (m+n)
Totality: total
Visibility: export
modularRecCorrect : {automon : Monoida} -> (x<+>y) <+>z=x<+> (y<+>z) ->neutral<+>x=x-> (v : a) -> (p : HalfRecn) ->modularRecvp=linearvn
Totality: total
Visibility: export
modularCorrect : {automon : Monoida} -> (x<+>y) <+>z=x<+> (y<+>z) ->neutral<+>x=x-> (v : a) ->modularvn=linearvn
Totality: total
Visibility: export
\ No newline at end of file +

Data.Monoid.Exponentiation(source)

Definitions

linear : Monoida=>a->Nat->a
Totality: total
Visibility: public export
modularRec : Monoida=>a->HalfRecn->a
Totality: total
Visibility: public export
modular : Monoida=>a->Nat->a
Totality: total
Visibility: public export
(^) : Numa=>a->Nat->a
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 10
linearPlusHomo : {automon : Monoida} -> (x<+>y) <+>z=x<+> (y<+>z) ->neutral<+>x=x-> (v : a) ->linearvm<+>linearvn=linearv (m+n)
Totality: total
Visibility: export
modularRecCorrect : {automon : Monoida} -> (x<+>y) <+>z=x<+> (y<+>z) ->neutral<+>x=x-> (v : a) -> (p : HalfRecn) ->modularRecvp=linearvn
Totality: total
Visibility: export
modularCorrect : {automon : Monoida} -> (x<+>y) <+>z=x<+> (y<+>z) ->neutral<+>x=x-> (v : a) ->modularvn=linearvn
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Morphisms.Algebra.html b/contrib/docs/Data.Morphisms.Algebra.html index cf53adc921..226a3f0e6a 100644 --- a/contrib/docs/Data.Morphisms.Algebra.html +++ b/contrib/docs/Data.Morphisms.Algebra.html @@ -61,4 +61,4 @@ -

Data.Morphisms.Algebra(source)

Definitions

\ No newline at end of file +

Data.Morphisms.Algebra(source)

Definitions

\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Ack.html b/contrib/docs/Data.Nat.Ack.html index f3843f2025..8db7ffa02c 100644 --- a/contrib/docs/Data.Nat.Ack.html +++ b/contrib/docs/Data.Nat.Ack.html @@ -62,4 +62,4 @@

Data.Nat.Ack(source)

Properties of Ackermann functions
-
\ No newline at end of file + \ No newline at end of file diff --git a/contrib/docs/Data.Nat.Algebra.html b/contrib/docs/Data.Nat.Algebra.html index a1f7b9524c..c2aa372bcd 100644 --- a/contrib/docs/Data.Nat.Algebra.html +++ b/contrib/docs/Data.Nat.Algebra.html @@ -61,4 +61,4 @@ -

Data.Nat.Algebra(source)

Definitions

\ No newline at end of file +

Data.Nat.Algebra(source)

Definitions

\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Division.html b/contrib/docs/Data.Nat.Division.html index 7471bfbd8b..ba2cc4f807 100644 --- a/contrib/docs/Data.Nat.Division.html +++ b/contrib/docs/Data.Nat.Division.html @@ -62,4 +62,4 @@

Data.Nat.Division(source)

Division theorem for (type-level) natural number division
-

Definitions

divmodNatNZeqDivMod : (numer : Nat) -> (denom : Nat) -> (0prf1 : NonZerodenom) -> (0prf2 : NonZerodenom) -> (0prf3 : NonZerodenom) ->divmodNatNZnumerdenomprf1= (divNatNZnumerdenomprf2, modNatNZnumerdenomprf3)
Totality: total
Visibility: export
fstDivmodNatNZeqDiv : (numer : Nat) -> (denom : Nat) -> (0prf1 : NonZerodenom) -> (0prf2 : NonZerodenom) ->fst (divmodNatNZnumerdenomprf1) =divNatNZnumerdenomprf2
Totality: total
Visibility: export
sndDivmodNatNZeqMod : (numer : Nat) -> (denom : Nat) -> (0prf1 : NonZerodenom) -> (0prf2 : NonZerodenom) ->snd (divmodNatNZnumerdenomprf1) =modNatNZnumerdenomprf2
Totality: total
Visibility: export
boundModNatNZ : (numer : Nat) -> (denom : Nat) -> (0denom_nz : NonZerodenom) ->LT (modNatNZnumerdenomdenom_nz) denom
Totality: total
Visibility: export
DivisionTheoremDivMod : (numer : Nat) -> (denom : Nat) -> (0prf : NonZerodenom) ->numer=snd (divmodNatNZnumerdenomprf) + (fst (divmodNatNZnumerdenomprf) *denom)
Totality: total
Visibility: export
DivisionTheorem : (numer : Nat) -> (denom : Nat) -> (0prf1 : NonZerodenom) -> (0prf2 : NonZerodenom) ->numer=modNatNZnumerdenomprf1+ (divNatNZnumerdenomprf2*denom)
Totality: total
Visibility: export
DivisionTheoremUniquenessDivMod : (numer : Nat) -> (denom : Nat) -> (0denom_nz : NonZerodenom) -> (q : Nat) -> (r : Nat) ->LTrdenom->numer= (q*denom) +r->divmodNatNZnumerdenomdenom_nz= (q, r)
Totality: total
Visibility: export
DivisionTheoremUniqueness : (numer : Nat) -> (denom : Nat) -> (0denom_nz : NonZerodenom) -> (q : Nat) -> (r : Nat) ->LTrdenom->numer= (q*denom) +r-> (divNatNZnumerdenomdenom_nz=q, modNatNZnumerdenomdenom_nz=r)
Totality: total
Visibility: export
modDividendMinusDivMultDivider : (0numer : Nat) -> (0denom : Nat) -> {auto0denom_nz : NonZerodenom} ->modNatNZnumerdenomdenom_nz=minusnumer (divNatNZnumerdenomdenom_nz*denom)
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

divmodNatNZeqDivMod : (numer : Nat) -> (denom : Nat) -> (0prf1 : NonZerodenom) -> (0prf2 : NonZerodenom) -> (0prf3 : NonZerodenom) ->divmodNatNZnumerdenomprf1= (divNatNZnumerdenomprf2, modNatNZnumerdenomprf3)
Totality: total
Visibility: export
fstDivmodNatNZeqDiv : (numer : Nat) -> (denom : Nat) -> (0prf1 : NonZerodenom) -> (0prf2 : NonZerodenom) ->fst (divmodNatNZnumerdenomprf1) =divNatNZnumerdenomprf2
Totality: total
Visibility: export
sndDivmodNatNZeqMod : (numer : Nat) -> (denom : Nat) -> (0prf1 : NonZerodenom) -> (0prf2 : NonZerodenom) ->snd (divmodNatNZnumerdenomprf1) =modNatNZnumerdenomprf2
Totality: total
Visibility: export
boundModNatNZ : (numer : Nat) -> (denom : Nat) -> (0denom_nz : NonZerodenom) ->LT (modNatNZnumerdenomdenom_nz) denom
Totality: total
Visibility: export
DivisionTheoremDivMod : (numer : Nat) -> (denom : Nat) -> (0prf : NonZerodenom) ->numer=snd (divmodNatNZnumerdenomprf) + (fst (divmodNatNZnumerdenomprf) *denom)
Totality: total
Visibility: export
DivisionTheorem : (numer : Nat) -> (denom : Nat) -> (0prf1 : NonZerodenom) -> (0prf2 : NonZerodenom) ->numer=modNatNZnumerdenomprf1+ (divNatNZnumerdenomprf2*denom)
Totality: total
Visibility: export
DivisionTheoremUniquenessDivMod : (numer : Nat) -> (denom : Nat) -> (0denom_nz : NonZerodenom) -> (q : Nat) -> (r : Nat) ->LTrdenom->numer= (q*denom) +r->divmodNatNZnumerdenomdenom_nz= (q, r)
Totality: total
Visibility: export
DivisionTheoremUniqueness : (numer : Nat) -> (denom : Nat) -> (0denom_nz : NonZerodenom) -> (q : Nat) -> (r : Nat) ->LTrdenom->numer= (q*denom) +r-> (divNatNZnumerdenomdenom_nz=q, modNatNZnumerdenomdenom_nz=r)
Totality: total
Visibility: export
modDividendMinusDivMultDivider : (0numer : Nat) -> (0denom : Nat) -> {auto0denom_nz : NonZerodenom} ->modNatNZnumerdenomdenom_nz=minusnumer (divNatNZnumerdenomdenom_nz*denom)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Equational.html b/contrib/docs/Data.Nat.Equational.html index e9e7c4d92a..d79210fb89 100644 --- a/contrib/docs/Data.Nat.Equational.html +++ b/contrib/docs/Data.Nat.Equational.html @@ -61,4 +61,4 @@ -

Data.Nat.Equational(source)

Definitions

subtractEqLeft : (a : Nat) ->a+b=a+c->b=c
  Subtract a number from both sides of an equation.
Due to partial nature of subtraction in natural numbers, an equation of
special form is required in order for subtraction to be total.

Totality: total
Visibility: export
subtractEqRight : (c : Nat) ->a+c=b+c->a=b
  Subtract a number from both sides of an equation.
Due to partial nature of subtraction in natural numbers, an equation of
special form is required in order for subtraction to be total.

Totality: total
Visibility: export
plusLteLeft : (a : Nat) ->LTEbc->LTE (a+b) (a+c)
  Add a number to both sides of an inequality

Totality: total
Visibility: export
plusLteRight : (c : Nat) ->LTEab->LTE (a+c) (b+c)
  Add a number to both sides of an inequality

Totality: total
Visibility: export
lteZeroIsZero : LTEa0->a=0
  Only 0 is lte 0
Useful when the argument is an open term

Totality: total
Visibility: export
subtractLteLeft : (a : Nat) ->LTE (a+b) (a+c) ->LTEbc
  Subtract a number from both sides of an inequality.
Due to partial nature of subtraction, we require an inequality of special form.

Totality: total
Visibility: export
subtractLteRight : (c : Nat) ->LTE (a+c) (b+c) ->LTEab
  Subtract a number from both sides of an inequality.
Due to partial nature of subtraction, we require an inequality of special form.

Totality: total
Visibility: export
rightFactorLteProduct : (a : Nat) -> (b : Nat) ->LTEb (Sa*b)
  If one of the factors of a product is greater than 0, then the other factor
is less than or equal to the product..

Totality: total
Visibility: export
leftFactorLteProduct : (a : Nat) -> (b : Nat) ->LTEa (a*Sb)
  If one of the factors of a product is greater than 0, then the other factor
is less than or equal to the product..

Totality: total
Visibility: export
\ No newline at end of file +

Data.Nat.Equational(source)

Definitions

subtractEqLeft : (a : Nat) ->a+b=a+c->b=c
  Subtract a number from both sides of an equation.
Due to partial nature of subtraction in natural numbers, an equation of
special form is required in order for subtraction to be total.

Totality: total
Visibility: export
subtractEqRight : (c : Nat) ->a+c=b+c->a=b
  Subtract a number from both sides of an equation.
Due to partial nature of subtraction in natural numbers, an equation of
special form is required in order for subtraction to be total.

Totality: total
Visibility: export
plusLteLeft : (a : Nat) ->LTEbc->LTE (a+b) (a+c)
  Add a number to both sides of an inequality

Totality: total
Visibility: export
plusLteRight : (c : Nat) ->LTEab->LTE (a+c) (b+c)
  Add a number to both sides of an inequality

Totality: total
Visibility: export
lteZeroIsZero : LTEa0->a=0
  Only 0 is lte 0
Useful when the argument is an open term

Totality: total
Visibility: export
subtractLteLeft : (a : Nat) ->LTE (a+b) (a+c) ->LTEbc
  Subtract a number from both sides of an inequality.
Due to partial nature of subtraction, we require an inequality of special form.

Totality: total
Visibility: export
subtractLteRight : (c : Nat) ->LTE (a+c) (b+c) ->LTEab
  Subtract a number from both sides of an inequality.
Due to partial nature of subtraction, we require an inequality of special form.

Totality: total
Visibility: export
rightFactorLteProduct : (a : Nat) -> (b : Nat) ->LTEb (Sa*b)
  If one of the factors of a product is greater than 0, then the other factor
is less than or equal to the product..

Totality: total
Visibility: export
leftFactorLteProduct : (a : Nat) -> (b : Nat) ->LTEa (a*Sb)
  If one of the factors of a product is greater than 0, then the other factor
is less than or equal to the product..

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Exponentiation.html b/contrib/docs/Data.Nat.Exponentiation.html index 3b43f6947f..438f0c8f5b 100644 --- a/contrib/docs/Data.Nat.Exponentiation.html +++ b/contrib/docs/Data.Nat.Exponentiation.html @@ -61,4 +61,4 @@ -

Data.Nat.Exponentiation(source)

Definitions

pow : Nat->Nat->Nat
Totality: total
Visibility: public export
lpow : Nat->Nat->Nat
Totality: total
Visibility: public export
pow2 : Nat->Nat
Totality: total
Visibility: public export
lpow2 : Nat->Nat
Totality: total
Visibility: public export
modularCorrect : (v : Nat) ->powvn=lpowvn
Totality: total
Visibility: export
pow2Correct : pow2n=lpow2n
Totality: total
Visibility: export
unfoldLpow2 : lpow2 (Sn) =lpow2n+lpow2n
Totality: total
Visibility: export
unfoldPow2 : pow2 (Sn) =pow2n+pow2n
Totality: total
Visibility: export
lteLpow2 : LTE1 (lpow2m)
Totality: total
Visibility: export
ltePow2 : LTE1 (pow2m)
Totality: total
Visibility: export
pow2Increasing : LT (pow2m) (pow2 (Sm))
Totality: total
Visibility: export
\ No newline at end of file +

Data.Nat.Exponentiation(source)

Definitions

pow : Nat->Nat->Nat
Totality: total
Visibility: public export
lpow : Nat->Nat->Nat
Totality: total
Visibility: public export
pow2 : Nat->Nat
Totality: total
Visibility: public export
lpow2 : Nat->Nat
Totality: total
Visibility: public export
modularCorrect : (v : Nat) ->powvn=lpowvn
Totality: total
Visibility: export
pow2Correct : pow2n=lpow2n
Totality: total
Visibility: export
unfoldLpow2 : lpow2 (Sn) =lpow2n+lpow2n
Totality: total
Visibility: export
unfoldPow2 : pow2 (Sn) =pow2n+pow2n
Totality: total
Visibility: export
lteLpow2 : LTE1 (lpow2m)
Totality: total
Visibility: export
ltePow2 : LTE1 (pow2m)
Totality: total
Visibility: export
pow2Increasing : LT (pow2m) (pow2 (Sm))
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Fact.html b/contrib/docs/Data.Nat.Fact.html index b4213be395..5132d26d77 100644 --- a/contrib/docs/Data.Nat.Fact.html +++ b/contrib/docs/Data.Nat.Fact.html @@ -62,4 +62,4 @@

Data.Nat.Fact(source)

Properties of factorial functions
-

Definitions

\ No newline at end of file +

Definitions

\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Factor.html b/contrib/docs/Data.Nat.Factor.html index 01fc1f62df..53acebc74e 100644 --- a/contrib/docs/Data.Nat.Factor.html +++ b/contrib/docs/Data.Nat.Factor.html @@ -61,4 +61,4 @@ -

Data.Nat.Factor(source)

Definitions

dataFactor : Nat->Nat->Type
  Factor n p is a witness that p is indeed a factor of n,
i.e. there exists a q such that p * q = n.

Totality: total
Visibility: public export
Constructor: 
CofactorExists : (q : Nat) ->n=p*q->Factorpn

Hints:
AntisymmetricNatFactor
PartialOrderNatFactor
PreorderNatFactor
ReflexiveNatFactor
TransitiveNatFactor
Uninhabited (Factor0 (Sn))
dataNotFactor : Nat->Nat->Type
  NotFactor n p is a witness that p is NOT a factor of n,
i.e. there exist a q and an r, greater than 0 but smaller than p,
such that p * q + r = n.

Totality: total
Visibility: public export
Constructors:
ZeroNotFactorS : (n : Nat) ->NotFactor0 (Sn)
ProperRemExists : (q : Nat) -> (r : Fin (predp)) ->n= (p*q) +S (finToNatr) ->NotFactorpn
dataDecFactor : Nat->Nat->Type
  DecFactor n p is a result of the process which decides
whether or not p is a factor on n.

Totality: total
Visibility: public export
Constructors:
ItIsFactor : Factorpn->DecFactorpn
ItIsNotFactor : NotFactorpn->DecFactorpn
dataCommonFactor : Nat->Nat->Nat->Type
  CommonFactor n m p is a witness that p is a factor of both n and m.

Totality: total
Visibility: public export
Constructor: 
CommonFactorExists : (p : Nat) ->Factorpa->Factorpb->CommonFactorpab

Hint: 
SymmetricNat (CommonFactorp)
dataGCD : Nat->Nat->Nat->Type
  GCD n m p is a witness that p is THE greatest common factor of both n and m.
The second argument to the constructor is a function which for all q being
a factor of both n and m, proves that q is a factor of p.

This is equivalent to a more straightforward definition, stating that for
all q being a factor of both n and m, q is less than or equal to p, but more
powerful and therefore more useful for further proofs. See below for a proof
that if q is a factor of p then q must be less than or equal to p.

Totality: total
Visibility: public export
Constructor: 
MkGCD : NotBothZeroab=> Lazy (CommonFactorpab) -> ((q : Nat) ->CommonFactorqab->Factorqp) ->GCDpab

Hint: 
SymmetricNat (GCDp)
cofactor : Factorpn-> (q : Nat**Factorqn)
  Given a statement that p is factor of n, return its cofactor.

Totality: total
Visibility: export
oneIsFactor : (n : Nat) ->Factor1n
  1 is a factor of any natural number.

Totality: total
Visibility: export
oneSoleFactorOfOne : (a : Nat) ->Factora1->a=1
  1 is the only factor of itself

Totality: total
Visibility: export
factorNotFactorAbsurd : Factorpn->Not (NotFactorpn)
  No number can simultaneously be and not be a factor of another number.

Totality: total
Visibility: export
anythingFactorZero : (a : Nat) ->Factora0
  Anything is a factor of 0.

Totality: total
Visibility: export
multFactor : (p : Nat) -> (q : Nat) ->Factorp (p*q)
  For all natural numbers p and q, p is a factor of (p * q).

Totality: total
Visibility: export
factorLteNumber : Factorpn->LTE1n=>LTEpn
  If n > 0 then any factor of n must be less than or equal to n.

Totality: total
Visibility: export
plusDivisorAlsoFactor : Factorpn->Factorp (n+p)
  If p is a factor of n, then it is also a factor of (n + p).

Totality: total
Visibility: export
plusDivisorNeitherFactor : NotFactorpn->NotFactorp (n+p)
  If p is NOT a factor of n, then it also is NOT a factor of (n + p).

Totality: total
Visibility: export
multNAlsoFactor : Factorpn-> (a : Nat) ->LTE1a=>Factorp (n*a)
  If p is a factor of n, then it is also a factor of any multiply of n.

Totality: total
Visibility: export
plusFactor : Factorpn->Factorpm->Factorp (n+m)
  If p is a factor of both n and m, then it is also a factor of their sum.

Totality: total
Visibility: export
minusFactor : Factorp (a+b) ->Factorpa->Factorpb
  If p is a factor of a sum (n + m) and a factor of n, then it is also
a factor of m. This could be expressed more naturally with minus, but
it would be more difficult to prove, since minus lacks certain properties
that one would expect from decent subtraction.

Totality: total
Visibility: export
modFactorAlsoFactorOfDivider : {auto0nNotZ : NonZeron} ->Factorpn->Factorp (modNatNZmnnNotZ) ->Factorpm
  If p is a common factor of n and mod m n, then it is also a factor of m.

Totality: total
Visibility: export
commonFactorAlsoFactorOfMod : {auto0nNotZ : NonZeron} ->Factorpm->Factorpn->Factorp (modNatNZmnnNotZ)
  If p is a common factor of m and n, then it is also a factor of their mod.

Totality: total
Visibility: export
decFactor : (n : Nat) -> (d : Nat) ->DecFactordn
  A decision procedure for whether of not p is a factor of n.

Totality: total
Visibility: export
factNotSuccFact : GTp1->Factorpn->NotFactorp (Sn)
  For all p greater than 1, if p is a factor of n, then it is NOT a factor
of (n + 1).

Totality: total
Visibility: export
commonFactorAlsoFactorOfGCD : Factorpa->Factorpb->GCDqab->Factorpq
  If p is a common factor of a and b, then it is also a factor of their GCD.
This actually follows directly from the definition of GCD.

Totality: total
Visibility: export
oneCommonFactor : (a : Nat) -> (b : Nat) ->CommonFactor1ab
  1 is a common factor of any pair of natural numbers.

Totality: total
Visibility: export
selfIsCommonFactor : (a : Nat) ->LTE1a=>CommonFactoraaa
  Any natural number is a common factor of itself and itself.

Totality: total
Visibility: export
gcd : (a : Nat) -> (b : Nat) ->NotBothZeroab=> (f : Nat**GCDfab)
  An implementation of Euclidean Algorithm for computing greatest common
divisors. It is proven correct and total; returns a proof that computed
number actually IS the GCD.

Totality: total
Visibility: export
gcdUnique : GCDpab->GCDqab->p=q
  For every two natural numbers there is a unique greatest common divisor.

Totality: total
Visibility: export
divByGcdGcdOne : GCDa (a*b) (a*c) ->GCD1bc
  For every two natural numbers, if we divide both of them by their GCD,
the GCD of resulting numbers will always be 1.

Totality: total
Visibility: export
\ No newline at end of file +

Data.Nat.Factor(source)

Definitions

dataFactor : Nat->Nat->Type
  Factor n p is a witness that p is indeed a factor of n,
i.e. there exists a q such that p * q = n.

Totality: total
Visibility: public export
Constructor: 
CofactorExists : (q : Nat) ->n=p*q->Factorpn

Hints:
AntisymmetricNatFactor
PartialOrderNatFactor
PreorderNatFactor
ReflexiveNatFactor
TransitiveNatFactor
Uninhabited (Factor0 (Sn))
dataNotFactor : Nat->Nat->Type
  NotFactor n p is a witness that p is NOT a factor of n,
i.e. there exist a q and an r, greater than 0 but smaller than p,
such that p * q + r = n.

Totality: total
Visibility: public export
Constructors:
ZeroNotFactorS : (n : Nat) ->NotFactor0 (Sn)
ProperRemExists : (q : Nat) -> (r : Fin (predp)) ->n= (p*q) +S (finToNatr) ->NotFactorpn
dataDecFactor : Nat->Nat->Type
  DecFactor n p is a result of the process which decides
whether or not p is a factor on n.

Totality: total
Visibility: public export
Constructors:
ItIsFactor : Factorpn->DecFactorpn
ItIsNotFactor : NotFactorpn->DecFactorpn
dataCommonFactor : Nat->Nat->Nat->Type
  CommonFactor n m p is a witness that p is a factor of both n and m.

Totality: total
Visibility: public export
Constructor: 
CommonFactorExists : (p : Nat) ->Factorpa->Factorpb->CommonFactorpab

Hint: 
SymmetricNat (CommonFactorp)
dataGCD : Nat->Nat->Nat->Type
  GCD n m p is a witness that p is THE greatest common factor of both n and m.
The second argument to the constructor is a function which for all q being
a factor of both n and m, proves that q is a factor of p.

This is equivalent to a more straightforward definition, stating that for
all q being a factor of both n and m, q is less than or equal to p, but more
powerful and therefore more useful for further proofs. See below for a proof
that if q is a factor of p then q must be less than or equal to p.

Totality: total
Visibility: public export
Constructor: 
MkGCD : NotBothZeroab=> Lazy (CommonFactorpab) -> ((q : Nat) ->CommonFactorqab->Factorqp) ->GCDpab

Hint: 
SymmetricNat (GCDp)
cofactor : Factorpn-> (q : Nat**Factorqn)
  Given a statement that p is factor of n, return its cofactor.

Totality: total
Visibility: export
oneIsFactor : (n : Nat) ->Factor1n
  1 is a factor of any natural number.

Totality: total
Visibility: export
oneSoleFactorOfOne : (a : Nat) ->Factora1->a=1
  1 is the only factor of itself

Totality: total
Visibility: export
factorNotFactorAbsurd : Factorpn->Not (NotFactorpn)
  No number can simultaneously be and not be a factor of another number.

Totality: total
Visibility: export
anythingFactorZero : (a : Nat) ->Factora0
  Anything is a factor of 0.

Totality: total
Visibility: export
multFactor : (p : Nat) -> (q : Nat) ->Factorp (p*q)
  For all natural numbers p and q, p is a factor of (p * q).

Totality: total
Visibility: export
factorLteNumber : Factorpn->LTE1n=>LTEpn
  If n > 0 then any factor of n must be less than or equal to n.

Totality: total
Visibility: export
plusDivisorAlsoFactor : Factorpn->Factorp (n+p)
  If p is a factor of n, then it is also a factor of (n + p).

Totality: total
Visibility: export
plusDivisorNeitherFactor : NotFactorpn->NotFactorp (n+p)
  If p is NOT a factor of n, then it also is NOT a factor of (n + p).

Totality: total
Visibility: export
multNAlsoFactor : Factorpn-> (a : Nat) ->LTE1a=>Factorp (n*a)
  If p is a factor of n, then it is also a factor of any multiply of n.

Totality: total
Visibility: export
plusFactor : Factorpn->Factorpm->Factorp (n+m)
  If p is a factor of both n and m, then it is also a factor of their sum.

Totality: total
Visibility: export
minusFactor : Factorp (a+b) ->Factorpa->Factorpb
  If p is a factor of a sum (n + m) and a factor of n, then it is also
a factor of m. This could be expressed more naturally with minus, but
it would be more difficult to prove, since minus lacks certain properties
that one would expect from decent subtraction.

Totality: total
Visibility: export
modFactorAlsoFactorOfDivider : {auto0nNotZ : NonZeron} ->Factorpn->Factorp (modNatNZmnnNotZ) ->Factorpm
  If p is a common factor of n and mod m n, then it is also a factor of m.

Totality: total
Visibility: export
commonFactorAlsoFactorOfMod : {auto0nNotZ : NonZeron} ->Factorpm->Factorpn->Factorp (modNatNZmnnNotZ)
  If p is a common factor of m and n, then it is also a factor of their mod.

Totality: total
Visibility: export
decFactor : (n : Nat) -> (d : Nat) ->DecFactordn
  A decision procedure for whether of not p is a factor of n.

Totality: total
Visibility: export
factNotSuccFact : GTp1->Factorpn->NotFactorp (Sn)
  For all p greater than 1, if p is a factor of n, then it is NOT a factor
of (n + 1).

Totality: total
Visibility: export
commonFactorAlsoFactorOfGCD : Factorpa->Factorpb->GCDqab->Factorpq
  If p is a common factor of a and b, then it is also a factor of their GCD.
This actually follows directly from the definition of GCD.

Totality: total
Visibility: export
oneCommonFactor : (a : Nat) -> (b : Nat) ->CommonFactor1ab
  1 is a common factor of any pair of natural numbers.

Totality: total
Visibility: export
selfIsCommonFactor : (a : Nat) ->LTE1a=>CommonFactoraaa
  Any natural number is a common factor of itself and itself.

Totality: total
Visibility: export
gcd : (a : Nat) -> (b : Nat) ->NotBothZeroab=> (f : Nat**GCDfab)
  An implementation of Euclidean Algorithm for computing greatest common
divisors. It is proven correct and total; returns a proof that computed
number actually IS the GCD.

Totality: total
Visibility: export
gcdUnique : GCDpab->GCDqab->p=q
  For every two natural numbers there is a unique greatest common divisor.

Totality: total
Visibility: export
divByGcdGcdOne : GCDa (a*b) (a*c) ->GCD1bc
  For every two natural numbers, if we divide both of them by their GCD,
the GCD of resulting numbers will always be 1.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Fib.html b/contrib/docs/Data.Nat.Fib.html index 0a38d92513..5330e97fb7 100644 --- a/contrib/docs/Data.Nat.Fib.html +++ b/contrib/docs/Data.Nat.Fib.html @@ -62,4 +62,4 @@

Data.Nat.Fib(source)

Properties of Fibonacci functions
-

Definitions

\ No newline at end of file +

Definitions

\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Order.Properties.html b/contrib/docs/Data.Nat.Order.Properties.html index 1146a3bf67..a4f747a5af 100644 --- a/contrib/docs/Data.Nat.Order.Properties.html +++ b/contrib/docs/Data.Nat.Order.Properties.html @@ -62,4 +62,4 @@

Data.Nat.Order.Properties(source)

Additional properties/lemmata of Nats involving order
-

Definitions

LTESuccInjectiveMonotone : (m : Nat) -> (n : Nat) ->Reflects (LTEmn) b->Reflects (LTE (Sm) (Sn)) b
Totality: total
Visibility: export
lteReflection : (a : Nat) -> (b : Nat) ->Reflects (LTEab) (lteab)
Totality: total
Visibility: export
ltReflection : (a : Nat) -> (b : Nat) ->Reflects (LTab) (ltab)
Totality: total
Visibility: export
lteIsLTE : (a : Nat) -> (b : Nat) ->lteab=True->LTEab
Totality: total
Visibility: export
ltIsLT : (a : Nat) -> (b : Nat) ->ltab=True->LTab
Totality: total
Visibility: export
notlteIsNotLTE : (a : Nat) -> (b : Nat) ->lteab=False->Not (LTEab)
Totality: total
Visibility: export
notltIsNotLT : (a : Nat) -> (b : Nat) ->ltab=False->Not (LTab)
Totality: total
Visibility: export
notlteIsLT : (a : Nat) -> (b : Nat) ->lteab=False->LTba
Totality: total
Visibility: export
notltIsGTE : (a : Nat) -> (b : Nat) ->ltab=False->GTEab
Totality: total
Visibility: export
LteIslte : (a : Nat) -> (b : Nat) ->LTEab->lteab=True
Totality: total
Visibility: export
notLteIsnotlte : (a : Nat) -> (b : Nat) ->Not (LTEab) ->lteab=False
Totality: total
Visibility: export
GTIsnotlte : (a : Nat) -> (b : Nat) ->LTba->lteab=False
Totality: total
Visibility: export
minusLTE : (a : Nat) -> (b : Nat) ->LTE (minusba) b
  Subtracting a number gives a smaller number

Totality: total
Visibility: export
minusPosLT : (a : Nat) -> (b : Nat) ->LT0a->LTEab->LT (minusba) b
  Subtracting a positive number gives a strictly smaller number

Totality: total
Visibility: export
multLteMonotoneRight : (l : Nat) -> (a : Nat) -> (b : Nat) ->LTEab->LTE (l*a) (l*b)
Totality: total
Visibility: export
multLteMonotoneLeft : (a : Nat) -> (b : Nat) -> (r : Nat) ->LTEab->LTE (a*r) (b*r)
Totality: total
Visibility: export
lteNotLtEq : (a : Nat) -> (b : Nat) ->LTEab->Not (LTab) ->a=b
Totality: total
Visibility: export
decomposeLte : (a : Nat) -> (b : Nat) ->LTEab->Either (LTab) (a=b)
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

LTESuccInjectiveMonotone : (m : Nat) -> (n : Nat) ->Reflects (LTEmn) b->Reflects (LTE (Sm) (Sn)) b
Totality: total
Visibility: export
lteReflection : (a : Nat) -> (b : Nat) ->Reflects (LTEab) (lteab)
Totality: total
Visibility: export
ltReflection : (a : Nat) -> (b : Nat) ->Reflects (LTab) (ltab)
Totality: total
Visibility: export
lteIsLTE : (a : Nat) -> (b : Nat) ->lteab=True->LTEab
Totality: total
Visibility: export
ltIsLT : (a : Nat) -> (b : Nat) ->ltab=True->LTab
Totality: total
Visibility: export
notlteIsNotLTE : (a : Nat) -> (b : Nat) ->lteab=False->Not (LTEab)
Totality: total
Visibility: export
notltIsNotLT : (a : Nat) -> (b : Nat) ->ltab=False->Not (LTab)
Totality: total
Visibility: export
notlteIsLT : (a : Nat) -> (b : Nat) ->lteab=False->LTba
Totality: total
Visibility: export
notltIsGTE : (a : Nat) -> (b : Nat) ->ltab=False->GTEab
Totality: total
Visibility: export
LteIslte : (a : Nat) -> (b : Nat) ->LTEab->lteab=True
Totality: total
Visibility: export
notLteIsnotlte : (a : Nat) -> (b : Nat) ->Not (LTEab) ->lteab=False
Totality: total
Visibility: export
GTIsnotlte : (a : Nat) -> (b : Nat) ->LTba->lteab=False
Totality: total
Visibility: export
minusLTE : (a : Nat) -> (b : Nat) ->LTE (minusba) b
  Subtracting a number gives a smaller number

Totality: total
Visibility: export
minusPosLT : (a : Nat) -> (b : Nat) ->LT0a->LTEab->LT (minusba) b
  Subtracting a positive number gives a strictly smaller number

Totality: total
Visibility: export
multLteMonotoneRight : (l : Nat) -> (a : Nat) -> (b : Nat) ->LTEab->LTE (l*a) (l*b)
Totality: total
Visibility: export
multLteMonotoneLeft : (a : Nat) -> (b : Nat) -> (r : Nat) ->LTEab->LTE (a*r) (b*r)
Totality: total
Visibility: export
lteNotLtEq : (a : Nat) -> (b : Nat) ->LTEab->Not (LTab) ->a=b
Totality: total
Visibility: export
decomposeLte : (a : Nat) -> (b : Nat) ->LTEab->Either (LTab) (a=b)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Order.Relation.html b/contrib/docs/Data.Nat.Order.Relation.html index 6b911cc69f..a56088dc19 100644 --- a/contrib/docs/Data.Nat.Order.Relation.html +++ b/contrib/docs/Data.Nat.Order.Relation.html @@ -62,4 +62,4 @@

Data.Nat.Order.Relation(source)

An example implementation for the Tolerance relation.
-

Definitions

\ No newline at end of file +

Definitions

\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Order.Strict.html b/contrib/docs/Data.Nat.Order.Strict.html index ffe28bcc39..d786018dc2 100644 --- a/contrib/docs/Data.Nat.Order.Strict.html +++ b/contrib/docs/Data.Nat.Order.Strict.html @@ -62,4 +62,4 @@

Data.Nat.Order.Strict(source)

Implementing `Decidable.Order.Strict` for `Data.Nat.LT`
-

Definitions

decLT : (a : Nat) -> (b : Nat) ->DecOrderingab
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

decLT : (a : Nat) -> (b : Nat) ->DecOrderingab
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Nat.Properties.html b/contrib/docs/Data.Nat.Properties.html index 04325fc375..040b35f2ee 100644 --- a/contrib/docs/Data.Nat.Properties.html +++ b/contrib/docs/Data.Nat.Properties.html @@ -62,4 +62,4 @@

Data.Nat.Properties(source)

Additional properties/lemmata of Nats
-

Definitions

unfoldDouble : 2*n=n+n
Totality: total
Visibility: export
unfoldDoubleS : 2*Sn=2+ (2*n)
Totality: total
Visibility: export
multRightCancel : (a : Nat) -> (b : Nat) -> (r : Nat) -> (0_ : NonZeror) ->a*r=b*r->a=b
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

unfoldDouble : 2*n=n+n
Totality: total
Visibility: export
unfoldDoubleS : 2*Sn=2+ (2*n)
Totality: total
Visibility: export
multRightCancel : (a : Nat) -> (b : Nat) -> (r : Nat) -> (0_ : NonZeror) ->a*r=b*r->a=b
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Order.html b/contrib/docs/Data.Order.html index 7939d3721f..32bcb534d2 100644 --- a/contrib/docs/Data.Order.html +++ b/contrib/docs/Data.Order.html @@ -62,4 +62,4 @@

Data.Order(source)

Additional data types related to ordering notions
-

Definitions

dataTrichotomous : (a->a->Type) -> (a->a->Type) -> (a->a->Type) ->a->a->Type
  Trichotomous formalises the fact that three relations are mutually exclusive.
It is meant to be used with relations that complement each other so that the
`Trichotomous lt eq gt` relation is the total relation.

Totality: total
Visibility: public export
Constructors:
MkLT : ltvw->Not (eqvw) ->Not (gtvw) ->Trichotomouslteqgtvw
MkEQ : Not (ltvw) ->eqvw->Not (gtvw) ->Trichotomouslteqgtvw
MkGT : Not (ltvw) ->Not (eqvw) ->gtvw->Trichotomouslteqgtvw
\ No newline at end of file +

Definitions

dataTrichotomous : (a->a->Type) -> (a->a->Type) -> (a->a->Type) ->a->a->Type
  Trichotomous formalises the fact that three relations are mutually exclusive.
It is meant to be used with relations that complement each other so that the
`Trichotomous lt eq gt` relation is the total relation.

Totality: total
Visibility: public export
Constructors:
MkLT : ltvw->Not (eqvw) ->Not (gtvw) ->Trichotomouslteqgtvw
MkEQ : Not (ltvw) ->eqvw->Not (gtvw) ->Trichotomouslteqgtvw
MkGT : Not (ltvw) ->Not (eqvw) ->gtvw->Trichotomouslteqgtvw
\ No newline at end of file diff --git a/contrib/docs/Data.Path.html b/contrib/docs/Data.Path.html index 24a605ec4d..7d4b64a7f3 100644 --- a/contrib/docs/Data.Path.html +++ b/contrib/docs/Data.Path.html @@ -61,4 +61,4 @@ -

Data.Path(source)

Definitions

dataPath : (t->t->Type) ->t->t->Type
  Paths in a typed graph as a sequence of edges with source and target nodes matching up domino-style.
AKA reflexive-transitive closure.

Totality: total
Visibility: public export
Constructors:
Nil : Pathgii
(::) : gij->Pathgjk->Pathgik
joinPath : Pathgij->Pathgjk->Pathgik
Totality: total
Visibility: export
snocPath : Pathgij->gjk->Pathgik
Totality: total
Visibility: export
lengthPath : Pathgij->Nat
Totality: total
Visibility: export
mapPath : {0f : t->u} -> (gtij->gu (fi) (fj)) ->Pathgtij->Pathgu (fi) (fj)
Totality: total
Visibility: export
foldPath : {0gu : u->u->Type} -> {0f : t->u} -> (gtij->gu (fj) (fk) ->gu (fi) (fk)) ->Pathgtij->gu (fj) (fk) ->gu (fi) (fk)
Totality: total
Visibility: export
foldlPath : {0gu : u->u->Type} -> {0f : t->u} -> (gu (fi) (fj) ->gtjk->gu (fi) (fk)) ->gu (fi) (fj) ->Pathgtjk->gu (fi) (fk)
Totality: total
Visibility: export
\ No newline at end of file +

Data.Path(source)

Definitions

dataPath : (t->t->Type) ->t->t->Type
  Paths in a typed graph as a sequence of edges with source and target nodes matching up domino-style.
AKA reflexive-transitive closure.

Totality: total
Visibility: public export
Constructors:
Nil : Pathgii
(::) : gij->Pathgjk->Pathgik
joinPath : Pathgij->Pathgjk->Pathgik
Totality: total
Visibility: export
snocPath : Pathgij->gjk->Pathgik
Totality: total
Visibility: export
lengthPath : Pathgij->Nat
Totality: total
Visibility: export
mapPath : {0f : t->u} -> (gtij->gu (fi) (fj)) ->Pathgtij->Pathgu (fi) (fj)
Totality: total
Visibility: export
foldPath : {0gu : u->u->Type} -> {0f : t->u} -> (gtij->gu (fj) (fk) ->gu (fi) (fk)) ->Pathgtij->gu (fj) (fk) ->gu (fi) (fk)
Totality: total
Visibility: export
foldlPath : {0gu : u->u->Type} -> {0f : t->u} -> (gu (fi) (fj) ->gtjk->gu (fi) (fk)) ->gu (fi) (fj) ->Pathgtjk->gu (fi) (fk)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Rel.Complement.html b/contrib/docs/Data.Rel.Complement.html index aa83517f13..d080917752 100644 --- a/contrib/docs/Data.Rel.Complement.html +++ b/contrib/docs/Data.Rel.Complement.html @@ -61,4 +61,4 @@ -

Data.Rel.Complement(source)

Definitions

complement : Relts->Relts
  The logical complement of a relation.

Totality: total
Visibility: public export
notToComplement : (p : Relts) -> (elems : HVectts) ->Not (uncurrypelems) =uncurry (complementp) elems
  The negation of a relation for some elements
is equal to the complement of the relation.

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Rel.Complement(source)

Definitions

complement : Relts->Relts
  The logical complement of a relation.

Totality: total
Visibility: public export
notToComplement : (p : Relts) -> (elems : HVectts) ->Not (uncurrypelems) =uncurry (complementp) elems
  The negation of a relation for some elements
is equal to the complement of the relation.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Seq.Internal.html b/contrib/docs/Data.Seq.Internal.html index 6b4f530fce..8c7a2c27c5 100644 --- a/contrib/docs/Data.Seq.Internal.html +++ b/contrib/docs/Data.Seq.Internal.html @@ -71,4 +71,4 @@ Original Copyrights: Copyright 2004, The University Court of the University of Glasgow (c) Ross Paterson 2005 -

Definitions

dataElem : Type->Type
Totality: total
Visibility: public export
Constructor: 
MkElem : a->Elema

Hints:
ApplicativeElem
Eqa=>Eq (Elema)
FunctorElem
Orda=>Ord (Elema)
Showa=>Show (Elema)
Sized (Elema)
unElem : Elema->a
Totality: total
Visibility: export
dataFingerTree : Type->Type
Totality: total
Visibility: public export
Constructors:
Empty : FingerTreee
Single : e->FingerTreee
Deep : Nat->Digite->FingerTree (Nodee) ->Digite->FingerTreee

Hints:
Sizeda=>Eqa=>Eq (FingerTreea)
FoldableFingerTree
FunctorFingerTree
Sizeda=>Orda=>Ord (FingerTreea)
Showa=>Show (FingerTreea)
Sizede=>Sized (FingerTreee)
TraversableFingerTree
reverseTree : (a->a) ->FingerTreea->FingerTreea
Totality: total
Visibility: export
lookupTree : Sizeda=>Nat->FingerTreea-> (Nat, a)
Totality: total
Visibility: export
adjustTree : Sizeda=> (Nat->a->a) ->Nat->FingerTreea->FingerTreea
Totality: total
Visibility: export
viewLTree : Sizeda=>FingerTreea->Maybe (a, FingerTreea)
Totality: total
Visibility: export
viewRTree : Sizeda=>FingerTreea->Maybe (FingerTreea, a)
Totality: total
Visibility: export
consTree : Sizede=>e->FingerTreee->FingerTreee
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 5
snocTree : Sizede=>FingerTreee->e->FingerTreee
Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 5
split : Nat->FingerTree (Elema) -> (FingerTree (Elema), FingerTree (Elema))
Totality: total
Visibility: export
addTree0 : FingerTree (Elema) ->FingerTree (Elema) ->FingerTree (Elema)
Totality: total
Visibility: export
toList' : FingerTree (Elema) ->Lista
Totality: total
Visibility: export
replicate' : Nat->e->FingerTree (Eleme)
Totality: total
Visibility: export
length' : FingerTree (Eleme) ->Nat
Totality: total
Visibility: export
zipWith' : (a->b->c) ->FingerTree (Elema) ->FingerTree (Elemb) ->FingerTree (Elemc)
Totality: total
Visibility: export
zipWith3' : (a->b->c->d) ->FingerTree (Elema) ->FingerTree (Elemb) ->FingerTree (Elemc) ->FingerTree (Elemd)
Totality: total
Visibility: export
unzipWith' : (a-> (b, c)) ->FingerTree (Elema) -> (FingerTree (Elemb), FingerTree (Elemc))
Totality: total
Visibility: export
unzipWith3' : (a-> (b, (c, d))) ->FingerTree (Elema) -> (FingerTree (Elemb), (FingerTree (Elemc), FingerTree (Elemd)))
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataElem : Type->Type
Totality: total
Visibility: public export
Constructor: 
MkElem : a->Elema

Hints:
ApplicativeElem
Eqa=>Eq (Elema)
FunctorElem
Orda=>Ord (Elema)
Showa=>Show (Elema)
Sized (Elema)
unElem : Elema->a
Totality: total
Visibility: export
dataFingerTree : Type->Type
Totality: total
Visibility: public export
Constructors:
Empty : FingerTreee
Single : e->FingerTreee
Deep : Nat->Digite->FingerTree (Nodee) ->Digite->FingerTreee

Hints:
Sizeda=>Eqa=>Eq (FingerTreea)
FoldableFingerTree
FunctorFingerTree
Sizeda=>Orda=>Ord (FingerTreea)
Showa=>Show (FingerTreea)
Sizede=>Sized (FingerTreee)
TraversableFingerTree
reverseTree : (a->a) ->FingerTreea->FingerTreea
Totality: total
Visibility: export
lookupTree : Sizeda=>Nat->FingerTreea-> (Nat, a)
Totality: total
Visibility: export
adjustTree : Sizeda=> (Nat->a->a) ->Nat->FingerTreea->FingerTreea
Totality: total
Visibility: export
viewLTree : Sizeda=>FingerTreea->Maybe (a, FingerTreea)
Totality: total
Visibility: export
viewRTree : Sizeda=>FingerTreea->Maybe (FingerTreea, a)
Totality: total
Visibility: export
consTree : Sizede=>e->FingerTreee->FingerTreee
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 5
snocTree : Sizede=>FingerTreee->e->FingerTreee
Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 5
split : Nat->FingerTree (Elema) -> (FingerTree (Elema), FingerTree (Elema))
Totality: total
Visibility: export
addTree0 : FingerTree (Elema) ->FingerTree (Elema) ->FingerTree (Elema)
Totality: total
Visibility: export
toList' : FingerTree (Elema) ->Lista
Totality: total
Visibility: export
replicate' : Nat->e->FingerTree (Eleme)
Totality: total
Visibility: export
length' : FingerTree (Eleme) ->Nat
Totality: total
Visibility: export
zipWith' : (a->b->c) ->FingerTree (Elema) ->FingerTree (Elemb) ->FingerTree (Elemc)
Totality: total
Visibility: export
zipWith3' : (a->b->c->d) ->FingerTree (Elema) ->FingerTree (Elemb) ->FingerTree (Elemc) ->FingerTree (Elemd)
Totality: total
Visibility: export
unzipWith' : (a-> (b, c)) ->FingerTree (Elema) -> (FingerTree (Elemb), FingerTree (Elemc))
Totality: total
Visibility: export
unzipWith3' : (a-> (b, (c, d))) ->FingerTree (Elema) -> (FingerTree (Elemb), (FingerTree (Elemc), FingerTree (Elemd)))
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Seq.Sized.html b/contrib/docs/Data.Seq.Sized.html index c8a2d9aa93..fbf3409a21 100644 --- a/contrib/docs/Data.Seq.Sized.html +++ b/contrib/docs/Data.Seq.Sized.html @@ -65,4 +65,4 @@ with length in its type. This is implemented by finger tree. -

Reexports

importpublic Data.Fin
importpublic Data.Nat
importpublic Data.Vect
importpublic Data.Zippable

Definitions

dataSeq : Nat->Type->Type
  A two-end finite sequences, with length in its type.

Totality: total
Visibility: export
Constructor: 
MkSeq : FingerTree (Eleme) ->Seqne

Hints:
Applicative (Seqn)
Eqa=>Eq (Seqna)
Foldable (Seqn)
Functor (Seqn)
Orda=>Ord (Seqna)
Showa=>Show (Seqna)
Sized (Seqna)
Traversable (Seqn)
Zippable (Seqn)
empty : Seq0e
  O(1). The empty sequence.

Totality: total
Visibility: export
singleton : e->Seq1e
  O(1). A singleton sequence.

Totality: total
Visibility: export
replicate : (n : Nat) ->e->Seqne
  O(n). A sequence of length n with a the value of every element.

Totality: total
Visibility: export
length : Seqna->Nat
  O(1). The number of elements in the sequence.

Totality: total
Visibility: export
reverse : Seqna->Seqna
  O(n). Reverse the sequence.

Totality: total
Visibility: export
cons : e->Seqne->Seq (Sn) e
  O(1). Add an element to the left end of a sequence.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 5
snoc : Seqne->e->Seq (Sn) e
  O(1). Add an element to the right end of a sequence.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 5
(++) : Seqme->Seqne->Seq (m+n) e
  O(log(min(m, n))). Concatenate two sequences.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
viewl : Seq (Sn) a-> (a, Seqna)
  O(1). View from the left of the sequence.

Totality: total
Visibility: export
head : Seq (Sn) a->a
  O(1). The first element of the sequence.

Totality: total
Visibility: export
tail : Seq (Sn) a->Seqna
  O(1). The elements after the head of the sequence.

Totality: total
Visibility: export
viewr : Seq (Sn) a-> (Seqna, a)
  O(1). View from the right of the sequence.

Totality: total
Visibility: export
init : Seq (Sn) a->Seqna
  O(1). The elements before the last element of the sequence.

Totality: total
Visibility: export
last : Seq (Sn) a->a
  O(1). The last element of the sequence.

Totality: total
Visibility: export
fromVect : Vectna->Seqna
  O(n). Turn a vector into a sequence.

Totality: total
Visibility: export
fromList : (xs : Lista) ->Seq (lengthxs) a
  O(n). Turn a list into a sequence.

Totality: total
Visibility: export
toVect : Seqna->Vectna
  O(n). Turn a sequence into a vector.

Totality: total
Visibility: export
index : (i : Nat) ->Seqna->LTin=>a
  O(log(min(i, n-i))). The element at the specified position.

Totality: total
Visibility: export
index' : Seqna->Finn->a
  O(log(min(i, n-i))). The element at the specified position.
Use Fin n to index instead.

Totality: total
Visibility: export
adjust : (a->a) -> (i : Nat) ->Seqna->LTin=>Seqna
  O(log(min(i, n-i))). Update the element at the specified position.

Totality: total
Visibility: export
update : (i : Nat) ->a->Seqna->LTin=>Seqna
  O(log(min(i, n-i))). Replace the element at the specified position.

Totality: total
Visibility: export
splitAt : (i : Nat) ->Seq (i+j) a-> (Seqia, Seqja)
  O(log(min(i, n-i))). Split a sequence at a given position.

Totality: total
Visibility: export
take : (i : Nat) ->Seq (i+j) a->Seqia
  O(log(min(i, n-i))). The first i elements of a sequence.

Totality: total
Visibility: export
drop : (i : Nat) ->Seq (i+j) a->Seqja
  O(log(min(i, n-i))). Elements of a sequence after the first i.

Totality: total
Visibility: export
show' : Showa=>Seqna->String
  Dump the internal structure of the finger tree.

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Data.Fin
importpublic Data.Nat
importpublic Data.Vect
importpublic Data.Zippable

Definitions

dataSeq : Nat->Type->Type
  A two-end finite sequences, with length in its type.

Totality: total
Visibility: export
Constructor: 
MkSeq : FingerTree (Eleme) ->Seqne

Hints:
Applicative (Seqn)
Eqa=>Eq (Seqna)
Foldable (Seqn)
Functor (Seqn)
Orda=>Ord (Seqna)
Showa=>Show (Seqna)
Sized (Seqna)
Traversable (Seqn)
Zippable (Seqn)
empty : Seq0e
  O(1). The empty sequence.

Totality: total
Visibility: export
singleton : e->Seq1e
  O(1). A singleton sequence.

Totality: total
Visibility: export
replicate : (n : Nat) ->e->Seqne
  O(n). A sequence of length n with a the value of every element.

Totality: total
Visibility: export
length : Seqna->Nat
  O(1). The number of elements in the sequence.

Totality: total
Visibility: export
reverse : Seqna->Seqna
  O(n). Reverse the sequence.

Totality: total
Visibility: export
cons : e->Seqne->Seq (Sn) e
  O(1). Add an element to the left end of a sequence.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 5
snoc : Seqne->e->Seq (Sn) e
  O(1). Add an element to the right end of a sequence.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 5
(++) : Seqme->Seqne->Seq (m+n) e
  O(log(min(m, n))). Concatenate two sequences.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
viewl : Seq (Sn) a-> (a, Seqna)
  O(1). View from the left of the sequence.

Totality: total
Visibility: export
head : Seq (Sn) a->a
  O(1). The first element of the sequence.

Totality: total
Visibility: export
tail : Seq (Sn) a->Seqna
  O(1). The elements after the head of the sequence.

Totality: total
Visibility: export
viewr : Seq (Sn) a-> (Seqna, a)
  O(1). View from the right of the sequence.

Totality: total
Visibility: export
init : Seq (Sn) a->Seqna
  O(1). The elements before the last element of the sequence.

Totality: total
Visibility: export
last : Seq (Sn) a->a
  O(1). The last element of the sequence.

Totality: total
Visibility: export
fromVect : Vectna->Seqna
  O(n). Turn a vector into a sequence.

Totality: total
Visibility: export
fromList : (xs : Lista) ->Seq (lengthxs) a
  O(n). Turn a list into a sequence.

Totality: total
Visibility: export
toVect : Seqna->Vectna
  O(n). Turn a sequence into a vector.

Totality: total
Visibility: export
index : (i : Nat) ->Seqna->LTin=>a
  O(log(min(i, n-i))). The element at the specified position.

Totality: total
Visibility: export
index' : Seqna->Finn->a
  O(log(min(i, n-i))). The element at the specified position.
Use Fin n to index instead.

Totality: total
Visibility: export
adjust : (a->a) -> (i : Nat) ->Seqna->LTin=>Seqna
  O(log(min(i, n-i))). Update the element at the specified position.

Totality: total
Visibility: export
update : (i : Nat) ->a->Seqna->LTin=>Seqna
  O(log(min(i, n-i))). Replace the element at the specified position.

Totality: total
Visibility: export
splitAt : (i : Nat) ->Seq (i+j) a-> (Seqia, Seqja)
  O(log(min(i, n-i))). Split a sequence at a given position.

Totality: total
Visibility: export
take : (i : Nat) ->Seq (i+j) a->Seqia
  O(log(min(i, n-i))). The first i elements of a sequence.

Totality: total
Visibility: export
drop : (i : Nat) ->Seq (i+j) a->Seqja
  O(log(min(i, n-i))). Elements of a sequence after the first i.

Totality: total
Visibility: export
show' : Showa=>Seqna->String
  Dump the internal structure of the finger tree.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Seq.Unsized.html b/contrib/docs/Data.Seq.Unsized.html index 0570a3215e..5c075deeec 100644 --- a/contrib/docs/Data.Seq.Unsized.html +++ b/contrib/docs/Data.Seq.Unsized.html @@ -64,4 +64,4 @@

Data.Seq.Unsized(source)

General purpose two-end finite sequences.
 
 This is implemented by finger tree.
-

Reexports

importpublic Data.Zippable

Definitions

dataSeq : Type->Type
  A two-end finite sequences.

Totality: total
Visibility: export
Constructor: 
MkSeq : FingerTree (Eleme) ->Seqe

Hints:
ApplicativeSeq
Eqa=>Eq (Seqa)
FoldableSeq
FunctorSeq
MonadSeq
Monoid (Seqa)
Orda=>Ord (Seqa)
Semigroup (Seqa)
Showa=>Show (Seqa)
Sized (Seqa)
TraversableSeq
ZippableSeq
empty : Seqe
  O(1). The empty sequence.

Totality: total
Visibility: export
singleton : e->Seqe
  O(1). A singleton sequence.

Totality: total
Visibility: export
replicate : Nat->e->Seqe
  O(n). A sequence of length n with a the value of every element.

Totality: total
Visibility: export
length : Seqa->Nat
  O(1). The number of elements in the sequence.

Totality: total
Visibility: export
reverse : Seqa->Seqa
  O(n). Reverse the sequence.

Totality: total
Visibility: export
cons : e->Seqe->Seqe
  O(1). Add an element to the left end of a sequence.

Totality: total
Visibility: export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
snoc : Seqe->e->Seqe
  O(1). Add an element to the right end of a sequence.

Totality: total
Visibility: export
Fixity Declarations:
infixl operator, level 5
infixl operator, level 5
(++) : Seqe->Seqe->Seqe
  O(log(min(m, n))). Concatenate two sequences.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
viewl : Seqa->Maybe (a, Seqa)
  O(1). View from the left of the sequence.

Totality: total
Visibility: export
head : Seqa->Maybea
  O(1). The first element of the sequence.

Totality: total
Visibility: export
tail : Seqa->Seqa
  O(1). The elements after the head of the sequence.
Returns an empty sequence when the sequence is empty.

Totality: total
Visibility: export
viewr : Seqa->Maybe (Seqa, a)
  O(1). View from the right of the sequence.

Totality: total
Visibility: export
init : Seqa->Seqa
  O(1). The elements before the last element of the sequence.
Returns an empty sequence when the sequence is empty.

Totality: total
Visibility: export
last : Seqa->Maybea
  O(1). The last element of the sequence.

Totality: total
Visibility: export
fromList : Lista->Seqa
  O(n). Turn a list into a sequence.

Totality: total
Visibility: export
index : Nat->Seqa->Maybea
  O(log(min(i, n-i))). The element at the specified position.

Totality: total
Visibility: export
adjust : (a->a) ->Nat->Seqa->Seqa
  O(log(min(i, n-i))). Update the element at the specified position.
If the position is out of range, the original sequence is returned.

Totality: total
Visibility: export
update : Nat->a->Seqa->Seqa
  O(log(min(i, n-i))). Replace the element at the specified position.
If the position is out of range, the original sequence is returned.

Totality: total
Visibility: export
splitAt : Nat->Seqa-> (Seqa, Seqa)
  O(log(min(i, n-i))). Split a sequence at a given position.
splitAt i s = (take i s, drop i s)

Totality: total
Visibility: export
take : Nat->Seqa->Seqa
  O(log(min(i,n-i))). The first i elements of a sequence.
If the sequence contains fewer than i elements, the whole sequence is returned.

Totality: total
Visibility: export
drop : Nat->Seqa->Seqa
  O(log(min(i,n-i))). Elements of a sequence after the first i.
If the sequence contains fewer than i elements, the empty sequence is returned.

Totality: total
Visibility: export
show' : Showa=>Seqa->String
  Dump the internal structure of the finger tree.

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Data.Zippable

Definitions

dataSeq : Type->Type
  A two-end finite sequences.

Totality: total
Visibility: export
Constructor: 
MkSeq : FingerTree (Eleme) ->Seqe

Hints:
ApplicativeSeq
Eqa=>Eq (Seqa)
FoldableSeq
FunctorSeq
MonadSeq
Monoid (Seqa)
Orda=>Ord (Seqa)
Semigroup (Seqa)
Showa=>Show (Seqa)
Sized (Seqa)
TraversableSeq
ZippableSeq
empty : Seqe
  O(1). The empty sequence.

Totality: total
Visibility: export
singleton : e->Seqe
  O(1). A singleton sequence.

Totality: total
Visibility: export
replicate : Nat->e->Seqe
  O(n). A sequence of length n with a the value of every element.

Totality: total
Visibility: export
length : Seqa->Nat
  O(1). The number of elements in the sequence.

Totality: total
Visibility: export
reverse : Seqa->Seqa
  O(n). Reverse the sequence.

Totality: total
Visibility: export
cons : e->Seqe->Seqe
  O(1). Add an element to the left end of a sequence.

Totality: total
Visibility: export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
snoc : Seqe->e->Seqe
  O(1). Add an element to the right end of a sequence.

Totality: total
Visibility: export
Fixity Declarations:
infixl operator, level 5
infixl operator, level 5
(++) : Seqe->Seqe->Seqe
  O(log(min(m, n))). Concatenate two sequences.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
viewl : Seqa->Maybe (a, Seqa)
  O(1). View from the left of the sequence.

Totality: total
Visibility: export
head : Seqa->Maybea
  O(1). The first element of the sequence.

Totality: total
Visibility: export
tail : Seqa->Seqa
  O(1). The elements after the head of the sequence.
Returns an empty sequence when the sequence is empty.

Totality: total
Visibility: export
viewr : Seqa->Maybe (Seqa, a)
  O(1). View from the right of the sequence.

Totality: total
Visibility: export
init : Seqa->Seqa
  O(1). The elements before the last element of the sequence.
Returns an empty sequence when the sequence is empty.

Totality: total
Visibility: export
last : Seqa->Maybea
  O(1). The last element of the sequence.

Totality: total
Visibility: export
fromList : Lista->Seqa
  O(n). Turn a list into a sequence.

Totality: total
Visibility: export
index : Nat->Seqa->Maybea
  O(log(min(i, n-i))). The element at the specified position.

Totality: total
Visibility: export
adjust : (a->a) ->Nat->Seqa->Seqa
  O(log(min(i, n-i))). Update the element at the specified position.
If the position is out of range, the original sequence is returned.

Totality: total
Visibility: export
update : Nat->a->Seqa->Seqa
  O(log(min(i, n-i))). Replace the element at the specified position.
If the position is out of range, the original sequence is returned.

Totality: total
Visibility: export
splitAt : Nat->Seqa-> (Seqa, Seqa)
  O(log(min(i, n-i))). Split a sequence at a given position.
splitAt i s = (take i s, drop i s)

Totality: total
Visibility: export
take : Nat->Seqa->Seqa
  O(log(min(i,n-i))). The first i elements of a sequence.
If the sequence contains fewer than i elements, the whole sequence is returned.

Totality: total
Visibility: export
drop : Nat->Seqa->Seqa
  O(log(min(i,n-i))). Elements of a sequence after the first i.
If the sequence contains fewer than i elements, the empty sequence is returned.

Totality: total
Visibility: export
show' : Showa=>Seqa->String
  Dump the internal structure of the finger tree.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Stream.Extra.html b/contrib/docs/Data.Stream.Extra.html index 5bc5e52598..eba313e3b0 100644 --- a/contrib/docs/Data.Stream.Extra.html +++ b/contrib/docs/Data.Stream.Extra.html @@ -61,4 +61,4 @@ -

Data.Stream.Extra(source)

Definitions

startWith : Foldablet=>ta->Streama->Streama
  Insert elements from a Foldable at the start of an existing Stream
@ pfx the Foldable containing elements to prepend
@ stream the Stream to prepend the elements to

Totality: total
Visibility: public export
\ No newline at end of file +

Data.Stream.Extra(source)

Definitions

startWith : Foldablet=>ta->Streama->Streama
  Insert elements from a Foldable at the start of an existing Stream
@ pfx the Foldable containing elements to prepend
@ stream the Stream to prepend the elements to

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.String.Extra.html b/contrib/docs/Data.String.Extra.html index 6e74f4758d..1cc393ddf6 100644 --- a/contrib/docs/Data.String.Extra.html +++ b/contrib/docs/Data.String.Extra.html @@ -61,4 +61,4 @@ -

Data.String.Extra(source)

Definitions

strSnoc : String->Char->String
  Adds a character to the end of the specified string.

```idris example
strSnoc "AB" 'C'
```
```idris example
strSnoc "" 'A'
```

Totality: total
Visibility: public export
(+>) : String->Char->String
  Alias of `strSnoc`

```idris example
"AB" +> 'C'
```

Totality: total
Visibility: public export
Fixity Declarations:
infixl operator, level 5
infixl operator, level 5
(<+) : Char->String->String
  Alias of `strCons`

```idris example
'A' <+ "AB"
```

Totality: total
Visibility: public export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
take : Nat->String->String
  Take the first `n` characters from a string. Returns the whole string
if it's too short.

Totality: total
Visibility: public export
takeLast : Nat->String->String
  Take the last `n` characters from a string. Returns the whole string
if it's too short.

Totality: total
Visibility: public export
drop : Nat->String->String
  Remove the first `n` characters from a string. Returns the empty string if
the input string is too short.

Totality: total
Visibility: public export
dropLast : Nat->String->String
  Remove the last `n` characters from a string. Returns the empty string if
the input string is too short.

Totality: total
Visibility: public export
shrink : Nat->String->String
  Remove the first and last `n` characters from a string. Returns the empty
string if the input string is too short.

Totality: total
Visibility: public export
join : String->Foldablet=>tString->String
  Concatenate the strings from a `Foldable` containing strings, separated by
the given string.

Totality: total
Visibility: public export
index : Nat->String->MaybeChar
  Get a character from a string if the string is long enough.

Totality: total
Visibility: public export
indentLines : Nat->String->String
  Indent each line of a given string by `n` spaces.

Totality: total
Visibility: public export
justifyLeft : Nat->Char->String->String
  Left-justify a string to the given length, using the
specified fill character on the right.

Totality: total
Visibility: export
justifyRight : Nat->Char->String->String
  Right-justify a string to the given length, using the
specified fill character on the left.

Totality: total
Visibility: export
leftEllipsis : Nat->String->String->String
  Truncates a string to the given length.
If the given string is longer, replace first characters with given prefix.

Say, `leftEllipsis 5 ".." "abcdefgh"` should give `"..fgh"` and
`leftEllipsis 5 "" "abcdefgh"` should give `"defgh"`.

Notice, that the resulting string can be longer than max length if the prefix is longer.

Totality: total
Visibility: export
rightEllipsis : Nat->String->String->String
  Truncates a string to the given length.
If the given string is longer, replace last characters with given suffix.

Say, `rightEllipsis 5 ".." "abcdefgh"` should give `"abc.."` and
`rightEllipsis 5 "" "abcdefgh"` should give `"abcde"`.

Notice, that the resulting string can be longer than max length if the suffix is longer.

Totality: total
Visibility: export
\ No newline at end of file +

Data.String.Extra(source)

Definitions

strSnoc : String->Char->String
  Adds a character to the end of the specified string.

```idris example
strSnoc "AB" 'C'
```
```idris example
strSnoc "" 'A'
```

Totality: total
Visibility: public export
(+>) : String->Char->String
  Alias of `strSnoc`

```idris example
"AB" +> 'C'
```

Totality: total
Visibility: public export
Fixity Declarations:
infixl operator, level 5
infixl operator, level 5
(<+) : Char->String->String
  Alias of `strCons`

```idris example
'A' <+ "AB"
```

Totality: total
Visibility: public export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
take : Nat->String->String
  Take the first `n` characters from a string. Returns the whole string
if it's too short.

Totality: total
Visibility: public export
takeLast : Nat->String->String
  Take the last `n` characters from a string. Returns the whole string
if it's too short.

Totality: total
Visibility: public export
drop : Nat->String->String
  Remove the first `n` characters from a string. Returns the empty string if
the input string is too short.

Totality: total
Visibility: public export
dropLast : Nat->String->String
  Remove the last `n` characters from a string. Returns the empty string if
the input string is too short.

Totality: total
Visibility: public export
shrink : Nat->String->String
  Remove the first and last `n` characters from a string. Returns the empty
string if the input string is too short.

Totality: total
Visibility: public export
join : String->Foldablet=>tString->String
  Concatenate the strings from a `Foldable` containing strings, separated by
the given string.

Totality: total
Visibility: public export
index : Nat->String->MaybeChar
  Get a character from a string if the string is long enough.

Totality: total
Visibility: public export
indentLines : Nat->String->String
  Indent each line of a given string by `n` spaces.

Totality: total
Visibility: public export
justifyLeft : Nat->Char->String->String
  Left-justify a string to the given length, using the
specified fill character on the right.

Totality: total
Visibility: export
justifyRight : Nat->Char->String->String
  Right-justify a string to the given length, using the
specified fill character on the left.

Totality: total
Visibility: export
leftEllipsis : Nat->String->String->String
  Truncates a string to the given length.
If the given string is longer, replace first characters with given prefix.

Say, `leftEllipsis 5 ".." "abcdefgh"` should give `"..fgh"` and
`leftEllipsis 5 "" "abcdefgh"` should give `"defgh"`.

Notice, that the resulting string can be longer than max length if the prefix is longer.

Totality: total
Visibility: export
rightEllipsis : Nat->String->String->String
  Truncates a string to the given length.
If the given string is longer, replace last characters with given suffix.

Say, `rightEllipsis 5 ".." "abcdefgh"` should give `"abc.."` and
`rightEllipsis 5 "" "abcdefgh"` should give `"abcde"`.

Notice, that the resulting string can be longer than max length if the suffix is longer.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.String.Interpolation.html b/contrib/docs/Data.String.Interpolation.html index 7ad857c5b4..ceeac91206 100644 --- a/contrib/docs/Data.String.Interpolation.html +++ b/contrib/docs/Data.String.Interpolation.html @@ -63,4 +63,4 @@

Data.String.Interpolation(source)

A DYI version of 'string interpolation', mimicking Python 3's 'f-string' syntax
 Not as fancy
-

Definitions

F : ListString->String
Visibility: public export
F : List (ListString) ->String
Visibility: public export
\ No newline at end of file +

Definitions

F : ListString->String
Visibility: public export
F : List (ListString) ->String
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.String.Iterator.html b/contrib/docs/Data.String.Iterator.html index 6b213558e5..50c11e4706 100644 --- a/contrib/docs/Data.String.Iterator.html +++ b/contrib/docs/Data.String.Iterator.html @@ -61,4 +61,4 @@ -

Data.String.Iterator(source)

Reexports

importpublic Data.List.Lazy

Definitions

dataStringIterator : String->Type
Totality: total
Visibility: export
withString : (str : String) -> ((1_ : StringIteratorstr) ->a) ->a
Totality: total
Visibility: export
withIteratorString : (str : String) -> (1_ : StringIteratorstr) -> (String->a) ->a
  Runs the action `f` on the slice `res` of the original string `str` represented by the
iterator `it`
dataUnconsResult : String->Type
Totality: total
Visibility: public export
Constructors:
EOF : UnconsResultstr
Character : Char-> (1_ : StringIteratorstr) ->UnconsResultstr
uncons : (str : String) -> (1_ : StringIteratorstr) ->UnconsResultstr
foldl : (accTy->Char->accTy) ->accTy->String->accTy
Totality: total
Visibility: export
unpack : String->LazyListChar
Totality: total
Visibility: export
\ No newline at end of file +

Data.String.Iterator(source)

Reexports

importpublic Data.List.Lazy

Definitions

dataStringIterator : String->Type
Totality: total
Visibility: export
withString : (str : String) -> ((1_ : StringIteratorstr) ->a) ->a
Totality: total
Visibility: export
withIteratorString : (str : String) -> (1_ : StringIteratorstr) -> (String->a) ->a
  Runs the action `f` on the slice `res` of the original string `str` represented by the
iterator `it`
dataUnconsResult : String->Type
Totality: total
Visibility: public export
Constructors:
EOF : UnconsResultstr
Character : Char-> (1_ : StringIteratorstr) ->UnconsResultstr
uncons : (str : String) -> (1_ : StringIteratorstr) ->UnconsResultstr
foldl : (accTy->Char->accTy) ->accTy->String->accTy
Totality: total
Visibility: export
unpack : String->LazyListChar
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.String.Parser.Expression.html b/contrib/docs/Data.String.Parser.Expression.html index bf66a78749..906e1f8851 100644 --- a/contrib/docs/Data.String.Parser.Expression.html +++ b/contrib/docs/Data.String.Parser.Expression.html @@ -61,4 +61,4 @@ -

Data.String.Parser.Expression(source)

Definitions

dataAssoc : Type
Totality: total
Visibility: public export
Constructors:
AssocNone : Assoc
AssocLeft : Assoc
AssocRight : Assoc
dataOperator : Type->Type
Totality: total
Visibility: public export
Constructors:
Infix : Parser (a->a->a) ->Assoc->Operatora
Prefix : Parser (a->a) ->Operatora
Postfix : Parser (a->a) ->Operatora
OperatorTable : Type->Type
Visibility: public export
BinaryOperator : Type->Type
Visibility: public export
UnaryOperator : Type->Type
Visibility: public export
dataOps : Type->Type
Totality: total
Visibility: public export
Constructors:
BinOp : BinaryOperatora->Opsa
UnOp : UnaryOperatora->Opsa
ReturnType : Type->Type
Visibility: public export
buildExpressionParser : (a : Type) ->OperatorTablea->Parsera->Parsera
Visibility: public export
\ No newline at end of file +

Data.String.Parser.Expression(source)

Definitions

dataAssoc : Type
Totality: total
Visibility: public export
Constructors:
AssocNone : Assoc
AssocLeft : Assoc
AssocRight : Assoc
dataOperator : Type->Type
Totality: total
Visibility: public export
Constructors:
Infix : Parser (a->a->a) ->Assoc->Operatora
Prefix : Parser (a->a) ->Operatora
Postfix : Parser (a->a) ->Operatora
OperatorTable : Type->Type
Visibility: public export
BinaryOperator : Type->Type
Visibility: public export
UnaryOperator : Type->Type
Visibility: public export
dataOps : Type->Type
Totality: total
Visibility: public export
Constructors:
BinOp : BinaryOperatora->Opsa
UnOp : UnaryOperatora->Opsa
ReturnType : Type->Type
Visibility: public export
buildExpressionParser : (a : Type) ->OperatorTablea->Parsera->Parsera
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.String.Parser.html b/contrib/docs/Data.String.Parser.html index 84bc6a3555..36d24e7519 100644 --- a/contrib/docs/Data.String.Parser.html +++ b/contrib/docs/Data.String.Parser.html @@ -62,4 +62,4 @@

Data.String.Parser(source)

A simple parser combinator library for String. Inspired by attoparsec zepto.
-

Reexports

importpublic Control.Monad.Identity

Definitions

recordState : Type
  The input state, pos is position in the string and maxPos is the length of the input string.

Totality: total
Visibility: public export
Constructor: 
S : String->Int->Int->State

Projections:
.input : State->String
.maxPos : State->Int
.pos : State->Int

Hint: 
ShowState
.input : State->String
Totality: total
Visibility: public export
input : State->String
Totality: total
Visibility: public export
.pos : State->Int
Totality: total
Visibility: public export
pos : State->Int
Totality: total
Visibility: public export
.maxPos : State->Int
Totality: total
Visibility: public export
maxPos : State->Int
Totality: total
Visibility: public export
dataResult : Type->Type
  Result of applying a parser

Totality: total
Visibility: public export
Constructors:
Fail : Int->String->Resulta
OK : a->State->Resulta

Hint: 
FunctorResult
recordParseT : (Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructor: 
P : (State->m (Resulta)) ->ParseTma

Projection: 
.runParser : ParseTma->State->m (Resulta)

Hints:
Monadm=>Alternative (ParseTm)
Monadm=>Applicative (ParseTm)
Functorm=>Functor (ParseTm)
Monadm=>Monad (ParseTm)
MonadTransParseT
.runParser : ParseTma->State->m (Resulta)
Totality: total
Visibility: public export
runParser : ParseTma->State->m (Resulta)
Totality: total
Visibility: public export
Parser : Type->Type
Totality: total
Visibility: public export
parseT : Functorm=>ParseTma->String->m (EitherString (a, Int))
  Run a parser in a monad
Returns a tuple of the result and final position on success.
Returns an error message on failure.

Totality: total
Visibility: export
parse : Parsera->String->EitherString (a, Int)
  Run a parser in a pure function
Returns a tuple of the result and final position on success.
Returns an error message on failure.

Totality: total
Visibility: export
(<?>) : Functorm=>ParseTma->String->ParseTma
  Combinator that replaces the error message on failure.
This allows combinators to output relevant errors

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 0
skip : Functorm=>ParseTma->ParseTm ()
  Discards the result of a parser

Totality: total
Visibility: export
optionMap : Functorm=>b-> (a->b) ->ParseTma->ParseTmb
  Maps the result of the parser `p` or returns `def` if it fails.

Totality: total
Visibility: export
option : Functorm=>a->ParseTma->ParseTma
  Runs the result of the parser `p` or returns `def` if it fails.

Totality: total
Visibility: export
succeeds : Functorm=>ParseTma->ParseTmBool
  Returns a Bool indicating whether `p` succeeded

Totality: total
Visibility: export
optional : Functorm=>ParseTma->ParseTm (Maybea)
  Returns a Maybe that contains the result of `p` if it succeeds or `Nothing` if it fails.

Totality: total
Visibility: export
requireFailure : Functorm=>ParseTma->ParseTm ()
  Succeeds if and only if the argument parser fails.

In Parsec, this combinator is called `notFollowedBy`.

Totality: total
Visibility: export
fail : Applicativem=>String->ParseTma
  Fail with some error message

Totality: total
Visibility: export
satisfy : Applicativem=> (Char->Bool) ->ParseTmChar
  Succeeds if the next char satisfies the predicate `f`

Totality: total
Visibility: export
string : Applicativem=>String->ParseTmString
  Succeeds if the string `str` follows.

Totality: total
Visibility: export
eos : Applicativem=>ParseTm ()
  Succeeds if the end of the string is reached.

Totality: total
Visibility: export
char : Applicativem=>Char->ParseTmChar
  Succeeds if the next char is `c`

Totality: total
Visibility: export
space : Applicativem=>ParseTmChar
  Parses a space character

Totality: total
Visibility: export
alphaNum : Applicativem=>ParseTmChar
  Parses a letter or digit (a character between \'0\' and \'9\').
Returns the parsed character.

Totality: total
Visibility: export
letter : Applicativem=>ParseTmChar
  Parses a letter (an upper case or lower case character). Returns the
parsed character.

Totality: total
Visibility: export
some : Monadm=>ParseTma->ParseTm (Lista)
  Succeeds if `p` succeeds, will continue to match `p` until it fails
and accumulate the results in a list

Visibility: export
many : Monadm=>ParseTma->ParseTm (Lista)
  Always succeeds, will accumulate the results of `p` in a list until it fails.

Visibility: export
hchainl : Monadm=>ParseTminit->ParseTm (init->arg->init) ->ParseTmarg->ParseTminit
  Parse left-nested lists of the form `((init op arg) op arg) op arg`

Visibility: export
hchainr : Monadm=>ParseTmarg->ParseTm (arg->end->end) ->ParseTmend->ParseTmend
  Parse right-nested lists of the form `arg op (arg op (arg op end))`

Visibility: export
takeWhile : Monadm=> (Char->Bool) ->ParseTmString
  Always succeeds, applies the predicate `f` on chars until it fails and creates a string
from the results.

Visibility: export
takeWhile1 : Monadm=> (Char->Bool) ->ParseTmString
  Similar to `takeWhile` but fails if the resulting string is empty.

Visibility: export
takeUntil : Monadm=>String->ParseTmString
  Takes from the input until the `stop` string is found.
Fails if the `stop` string cannot be found.

Visibility: export
spaces : Monadm=>ParseTm ()
  Parses zero or more space characters

Visibility: export
spaces1 : Monadm=>ParseTm ()
  Parses one or more space characters

Visibility: export
parens : Monadm=>ParseTma->ParseTma
  Discards brackets around a matching parser

Totality: total
Visibility: export
lexeme : Monadm=>ParseTma->ParseTma
  Discards whitespace after a matching parser

Visibility: export
token : Monadm=>String->ParseTm ()
  Matches a specific string, then skips following whitespace

Visibility: export
digit : Monadm=>ParseTm (Fin10)
  Matches a single digit

Totality: total
Visibility: export
natural : Monadm=>ParseTmNat
  Matches a natural number

Visibility: export
integer : Monadm=>ParseTmInteger
  Matches an integer, eg. "12", "-4"

Visibility: export
sepBy1 : Monadm=>ParseTma->ParseTmb->ParseTm (List1a)
  Parse repeated instances of at least one `p`, separated by `s`,
returning a list of successes.

@ p the parser for items
@ s the parser for separators

Visibility: export
sepBy : Monadm=>ParseTma->ParseTmb->ParseTm (Lista)
  Parse zero or more `p`s, separated by `s`s, returning a list of
successes.

@ p the parser for items
@ s the parser for separators

Visibility: export
commaSep1 : Monadm=>ParseTma->ParseTm (List1a)
  Parses /one/ or more occurrences of `p` separated by `comma`.

Visibility: export
commaSep : Monadm=>ParseTma->ParseTm (Lista)
  Parses /zero/ or more occurrences of `p` separated by `comma`.

Visibility: export
alternating : Monadm=>ParseTma->ParseTmb->ParseTm (Oddab)
  Parses alternating occurrences of `a`s and `b`s.
Can be thought of as parsing:
- a list of `b`s, separated, and surrounded, by `a`s
- a non-empty list of `a`s, separated by `b`s
where we care about the separators

Visibility: export
ntimes : Monadm=> (n : Nat) ->ParseTma->ParseTm (Vectna)
  Run the specified parser precisely `n` times, returning a vector
of successes.

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Control.Monad.Identity

Definitions

recordState : Type
  The input state, pos is position in the string and maxPos is the length of the input string.

Totality: total
Visibility: public export
Constructor: 
S : String->Int->Int->State

Projections:
.input : State->String
.maxPos : State->Int
.pos : State->Int

Hint: 
ShowState
.input : State->String
Totality: total
Visibility: public export
input : State->String
Totality: total
Visibility: public export
.pos : State->Int
Totality: total
Visibility: public export
pos : State->Int
Totality: total
Visibility: public export
.maxPos : State->Int
Totality: total
Visibility: public export
maxPos : State->Int
Totality: total
Visibility: public export
dataResult : Type->Type
  Result of applying a parser

Totality: total
Visibility: public export
Constructors:
Fail : Int->String->Resulta
OK : a->State->Resulta

Hint: 
FunctorResult
recordParseT : (Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructor: 
P : (State->m (Resulta)) ->ParseTma

Projection: 
.runParser : ParseTma->State->m (Resulta)

Hints:
Monadm=>Alternative (ParseTm)
Monadm=>Applicative (ParseTm)
Functorm=>Functor (ParseTm)
Monadm=>Monad (ParseTm)
MonadTransParseT
.runParser : ParseTma->State->m (Resulta)
Totality: total
Visibility: public export
runParser : ParseTma->State->m (Resulta)
Totality: total
Visibility: public export
Parser : Type->Type
Totality: total
Visibility: public export
parseT : Functorm=>ParseTma->String->m (EitherString (a, Int))
  Run a parser in a monad
Returns a tuple of the result and final position on success.
Returns an error message on failure.

Totality: total
Visibility: export
parse : Parsera->String->EitherString (a, Int)
  Run a parser in a pure function
Returns a tuple of the result and final position on success.
Returns an error message on failure.

Totality: total
Visibility: export
(<?>) : Functorm=>ParseTma->String->ParseTma
  Combinator that replaces the error message on failure.
This allows combinators to output relevant errors

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 0
skip : Functorm=>ParseTma->ParseTm ()
  Discards the result of a parser

Totality: total
Visibility: export
optionMap : Functorm=>b-> (a->b) ->ParseTma->ParseTmb
  Maps the result of the parser `p` or returns `def` if it fails.

Totality: total
Visibility: export
option : Functorm=>a->ParseTma->ParseTma
  Runs the result of the parser `p` or returns `def` if it fails.

Totality: total
Visibility: export
succeeds : Functorm=>ParseTma->ParseTmBool
  Returns a Bool indicating whether `p` succeeded

Totality: total
Visibility: export
optional : Functorm=>ParseTma->ParseTm (Maybea)
  Returns a Maybe that contains the result of `p` if it succeeds or `Nothing` if it fails.

Totality: total
Visibility: export
requireFailure : Functorm=>ParseTma->ParseTm ()
  Succeeds if and only if the argument parser fails.

In Parsec, this combinator is called `notFollowedBy`.

Totality: total
Visibility: export
fail : Applicativem=>String->ParseTma
  Fail with some error message

Totality: total
Visibility: export
satisfy : Applicativem=> (Char->Bool) ->ParseTmChar
  Succeeds if the next char satisfies the predicate `f`

Totality: total
Visibility: export
string : Applicativem=>String->ParseTmString
  Succeeds if the string `str` follows.

Totality: total
Visibility: export
eos : Applicativem=>ParseTm ()
  Succeeds if the end of the string is reached.

Totality: total
Visibility: export
char : Applicativem=>Char->ParseTmChar
  Succeeds if the next char is `c`

Totality: total
Visibility: export
space : Applicativem=>ParseTmChar
  Parses a space character

Totality: total
Visibility: export
alphaNum : Applicativem=>ParseTmChar
  Parses a letter or digit (a character between \'0\' and \'9\').
Returns the parsed character.

Totality: total
Visibility: export
letter : Applicativem=>ParseTmChar
  Parses a letter (an upper case or lower case character). Returns the
parsed character.

Totality: total
Visibility: export
some : Monadm=>ParseTma->ParseTm (Lista)
  Succeeds if `p` succeeds, will continue to match `p` until it fails
and accumulate the results in a list

Visibility: export
many : Monadm=>ParseTma->ParseTm (Lista)
  Always succeeds, will accumulate the results of `p` in a list until it fails.

Visibility: export
hchainl : Monadm=>ParseTminit->ParseTm (init->arg->init) ->ParseTmarg->ParseTminit
  Parse left-nested lists of the form `((init op arg) op arg) op arg`

Visibility: export
hchainr : Monadm=>ParseTmarg->ParseTm (arg->end->end) ->ParseTmend->ParseTmend
  Parse right-nested lists of the form `arg op (arg op (arg op end))`

Visibility: export
takeWhile : Monadm=> (Char->Bool) ->ParseTmString
  Always succeeds, applies the predicate `f` on chars until it fails and creates a string
from the results.

Visibility: export
takeWhile1 : Monadm=> (Char->Bool) ->ParseTmString
  Similar to `takeWhile` but fails if the resulting string is empty.

Visibility: export
takeUntil : Monadm=>String->ParseTmString
  Takes from the input until the `stop` string is found.
Fails if the `stop` string cannot be found.

Visibility: export
spaces : Monadm=>ParseTm ()
  Parses zero or more space characters

Visibility: export
spaces1 : Monadm=>ParseTm ()
  Parses one or more space characters

Visibility: export
parens : Monadm=>ParseTma->ParseTma
  Discards brackets around a matching parser

Totality: total
Visibility: export
lexeme : Monadm=>ParseTma->ParseTma
  Discards whitespace after a matching parser

Visibility: export
token : Monadm=>String->ParseTm ()
  Matches a specific string, then skips following whitespace

Visibility: export
digit : Monadm=>ParseTm (Fin10)
  Matches a single digit

Totality: total
Visibility: export
natural : Monadm=>ParseTmNat
  Matches a natural number

Visibility: export
integer : Monadm=>ParseTmInteger
  Matches an integer, eg. "12", "-4"

Visibility: export
sepBy1 : Monadm=>ParseTma->ParseTmb->ParseTm (List1a)
  Parse repeated instances of at least one `p`, separated by `s`,
returning a list of successes.

@ p the parser for items
@ s the parser for separators

Visibility: export
sepBy : Monadm=>ParseTma->ParseTmb->ParseTm (Lista)
  Parse zero or more `p`s, separated by `s`s, returning a list of
successes.

@ p the parser for items
@ s the parser for separators

Visibility: export
commaSep1 : Monadm=>ParseTma->ParseTm (List1a)
  Parses /one/ or more occurrences of `p` separated by `comma`.

Visibility: export
commaSep : Monadm=>ParseTma->ParseTm (Lista)
  Parses /zero/ or more occurrences of `p` separated by `comma`.

Visibility: export
alternating : Monadm=>ParseTma->ParseTmb->ParseTm (Oddab)
  Parses alternating occurrences of `a`s and `b`s.
Can be thought of as parsing:
- a list of `b`s, separated, and surrounded, by `a`s
- a non-empty list of `a`s, separated by `b`s
where we care about the separators

Visibility: export
ntimes : Monadm=> (n : Nat) ->ParseTma->ParseTm (Vectna)
  Run the specified parser precisely `n` times, returning a vector
of successes.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.String.Position.html b/contrib/docs/Data.String.Position.html index 9e95d24f60..0aa924dd23 100644 --- a/contrib/docs/Data.String.Position.html +++ b/contrib/docs/Data.String.Position.html @@ -64,4 +64,4 @@

Data.String.Position(source)

A small library introducing string positions
 This can be used as an alternative to unpacking a string into a list of
 characters
-

Definitions

recordValidPosition : String->Type
  @ValidPosition points to an existing character into
@str its parameter string
Do NOT publicly export so that users cannot manufacture arbitrary positions

Totality: total
Visibility: export
Constructor: 
MkValidPosition : Int->Int->ValidPositionstr

Projections:
.currentIndex : ValidPositionstr->Int
  @currentIndex is the valid position into str
.parameterLength : ValidPositionstr->Int
  @parameterLength is the length of the parameter str
Position : String->Type
  A position is either a ValidPosition or the end of the string

Totality: total
Visibility: public export
mkPosition : (str : String) ->Int->Positionstr
  Manufacture a position by checking it is strictly inside the string

Totality: total
Visibility: export
mvPosition : ValidPositionstr->Int->Positionstr
  Move a position (note that we do not need access to the string here)

Totality: total
Visibility: export
init : (str : String) ->Positionstr
  Find the initial position inside the input string

Totality: total
Visibility: export
next : ValidPositionstr->Positionstr
  Move from a valid position to the next position in the string

Totality: total
Visibility: export
index : ValidPositionstr->Char
  We can safely access the character at a valid position

Totality: total
Visibility: export
uncons : ValidPositionstr-> (Char, Positionstr)
  We can successfully uncons the substring starting at a `ValidPosition`.
Note that we can use `map uncons pos` to uncons the substring starting
a `Position`.

Totality: total
Visibility: export
span : (Char->Bool) ->Positionstr->Positionstr
  @span keeps munching characters of the substring starting at a given
position as long as the predicate is true of them. It returns the position
after the last successful munch.
Using `subString` to recover the string selected by `span` should yield
the same result as Data.String's `span`. That is to say we should have:
```
subString pos (Position.span p pos) = String.span p (subString pos Nothing)
```

Totality: total
Visibility: export
count : (Char->Bool) ->Positionstr->Nat
  @count computes the length of the substring one would obtain if one were
to filter out characters based on the predicate passed as an argument.
It replaces the `length (filter p (fastUnpack str))` pattern.

Totality: total
Visibility: export
distance : Positionstr->Positionstr->Int
  Distance between a starting position and an end one.
We assume that the end position is *after* the starting one, otherwise the
output may be negative.

Totality: total
Visibility: export
subString : Positionstr->Positionstr->String
  the substring of length `distance start end` that is contained between
start (inclusive) and end (exclusive).

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

recordValidPosition : String->Type
  @ValidPosition points to an existing character into
@str its parameter string
Do NOT publicly export so that users cannot manufacture arbitrary positions

Totality: total
Visibility: export
Constructor: 
MkValidPosition : Int->Int->ValidPositionstr

Projections:
.currentIndex : ValidPositionstr->Int
  @currentIndex is the valid position into str
.parameterLength : ValidPositionstr->Int
  @parameterLength is the length of the parameter str
Position : String->Type
  A position is either a ValidPosition or the end of the string

Totality: total
Visibility: public export
mkPosition : (str : String) ->Int->Positionstr
  Manufacture a position by checking it is strictly inside the string

Totality: total
Visibility: export
mvPosition : ValidPositionstr->Int->Positionstr
  Move a position (note that we do not need access to the string here)

Totality: total
Visibility: export
init : (str : String) ->Positionstr
  Find the initial position inside the input string

Totality: total
Visibility: export
next : ValidPositionstr->Positionstr
  Move from a valid position to the next position in the string

Totality: total
Visibility: export
index : ValidPositionstr->Char
  We can safely access the character at a valid position

Totality: total
Visibility: export
uncons : ValidPositionstr-> (Char, Positionstr)
  We can successfully uncons the substring starting at a `ValidPosition`.
Note that we can use `map uncons pos` to uncons the substring starting
a `Position`.

Totality: total
Visibility: export
span : (Char->Bool) ->Positionstr->Positionstr
  @span keeps munching characters of the substring starting at a given
position as long as the predicate is true of them. It returns the position
after the last successful munch.
Using `subString` to recover the string selected by `span` should yield
the same result as Data.String's `span`. That is to say we should have:
```
subString pos (Position.span p pos) = String.span p (subString pos Nothing)
```

Totality: total
Visibility: export
count : (Char->Bool) ->Positionstr->Nat
  @count computes the length of the substring one would obtain if one were
to filter out characters based on the predicate passed as an argument.
It replaces the `length (filter p (fastUnpack str))` pattern.

Totality: total
Visibility: export
distance : Positionstr->Positionstr->Int
  Distance between a starting position and an end one.
We assume that the end position is *after* the starting one, otherwise the
output may be negative.

Totality: total
Visibility: export
subString : Positionstr->Positionstr->String
  the substring of length `distance start end` that is contained between
start (inclusive) and end (exclusive).

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Telescope.Congruence.html b/contrib/docs/Data.Telescope.Congruence.html index c68f5d3b0c..5802dc09e1 100644 --- a/contrib/docs/Data.Telescope.Congruence.html +++ b/contrib/docs/Data.Telescope.Congruence.html @@ -62,4 +62,4 @@

Data.Telescope.Congruence(source)

N-ary congruence for reasoning
-

Definitions

congType : (delta : Segmentngamma) -> (env1 : Environmentgamma) -> (sy1 : SimpleFunenv1deltaType) ->Funenv1deltasy1-> (env2 : Environmentgamma) -> (sy2 : SimpleFunenv2deltaType) ->Funenv2deltasy2->Type
Visibility: public export
congSegment : (0delta : Segmentngamma) -> (0env1 : Environmentgamma) -> (0sy1 : SimpleFunenv1deltaType) -> (0lhs : Funenv1deltasy1) -> (0env2 : Environmentgamma) -> (0sy2 : SimpleFunenv2deltaType) -> (0rhs : Funenv2deltasy2) -> (0_ : env1=env2) -> (0_ : sy1=sy2) -> (0_ : lhs=rhs) ->congTypedeltaenv1sy1lhsenv2sy2rhs
Visibility: public export
cong : (context : Fun () deltasy) ->congTypedelta () sycontext () sycontext
Visibility: public export
\ No newline at end of file +

Definitions

congType : (delta : Segmentngamma) -> (env1 : Environmentgamma) -> (sy1 : SimpleFunenv1deltaType) ->Funenv1deltasy1-> (env2 : Environmentgamma) -> (sy2 : SimpleFunenv2deltaType) ->Funenv2deltasy2->Type
Visibility: public export
congSegment : (0delta : Segmentngamma) -> (0env1 : Environmentgamma) -> (0sy1 : SimpleFunenv1deltaType) -> (0lhs : Funenv1deltasy1) -> (0env2 : Environmentgamma) -> (0sy2 : SimpleFunenv2deltaType) -> (0rhs : Funenv2deltasy2) -> (0_ : env1=env2) -> (0_ : sy1=sy2) -> (0_ : lhs=rhs) ->congTypedeltaenv1sy1lhsenv2sy2rhs
Visibility: public export
cong : (context : Fun () deltasy) ->congTypedelta () sycontext () sycontext
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Telescope.Fun.html b/contrib/docs/Data.Telescope.Fun.html index a0ff6ebe3f..6768545cf6 100644 --- a/contrib/docs/Data.Telescope.Fun.html +++ b/contrib/docs/Data.Telescope.Fun.html @@ -65,4 +65,4 @@ Compare with `base/Data.Fun` and: Guillaume Allais. 2019. Generic level polymorphic n-ary functions. TyDe 2019. -

Definitions

0Fun : (env : Environmentgamma) -> (0delta : Segmentngamma) ->SimpleFunenvdeltaType->Type
Visibility: public export
uncurry : Funenvdeltacod-> (ext : Environmentenvdelta) ->uncurrycodext
Visibility: public export
curry : ((ext : Environmentenvdelta) ->uncurrycodext) ->Funenvdeltacod
Visibility: public export
\ No newline at end of file +

Definitions

0Fun : (env : Environmentgamma) -> (0delta : Segmentngamma) ->SimpleFunenvdeltaType->Type
Visibility: public export
uncurry : Funenvdeltacod-> (ext : Environmentenvdelta) ->uncurrycodext
Visibility: public export
curry : ((ext : Environmentenvdelta) ->uncurrycodext) ->Funenvdeltacod
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Telescope.Segment.html b/contrib/docs/Data.Telescope.Segment.html index 5a789837ef..d41681679e 100644 --- a/contrib/docs/Data.Telescope.Segment.html +++ b/contrib/docs/Data.Telescope.Segment.html @@ -70,4 +70,4 @@ As with telescopes, indexing segments by their length (hopefully) helps the type-checker infer stuff. -

Definitions

dataSegment : Nat->Telescopek->Type
  A segment is a compositional fragment of a telescope, indexed by
the segment's length.

Totality: total
Visibility: public export
Constructors:
Nil : Segment0gamma
(::) : (ty : TypeIngamma) ->Segmentn (gamma-.ty) ->Segment (Sn) gamma
tabulate : (n : Nat) -> (Environmentgamma->Telescopen) ->Segmentngamma
  A segment of size `n` indexed by `gamma` can be seen as the tabulation of a
function that turns environments for `gamma` into telescopes of size `n`.

Totality: total
Visibility: public export
fromTelescope : Telescopek->Segmentk []
  Any telescope is a segment in the empty telescope. It amounts to looking
at it left-to-right instead of right-to-left.

Totality: total
Visibility: public export
untabulate : Segmentngamma->Environmentgamma->Telescopen
  Conversely, a segment of size `n` in telescope `gamma` can be seen as a function
from environments for `gamma` to telescopes of size `n`.

Totality: total
Visibility: public export
toTelescope : Segmentk [] ->Telescopek
  Any segment in the empty telescope correspond to a telescope.

Totality: total
Visibility: public export
keep : (0_ : a=b) ->a=b
Totality: total
Visibility: public export
(|++) : (gamma : Telescopek) ->Segmentngamma->Telescope (n+k)
  Segments act on telescope from the right.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
(++) : (lft : Segmentngamma) ->Segmentm (gamma|++lft) ->Segment (n+m) gamma
  Segments form a kind of an indexed monoid w.r.t. the action `(|++)`

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
actSegmentAssociative : (gamma : Telescopek) -> (lft : Segmentngamma) -> (rgt : Segmentm (gamma|++lft)) ->gamma|++ (lft++rgt) = (gamma|++lft) |++rgt
Totality: total
Visibility: export
weaken : TypeIngamma->TypeIn (gamma|++delta)
Totality: total
Visibility: public export
projection : Environment (gamma|++delta) ->Environmentgamma
Totality: total
Visibility: public export
dataEnvironment : Environmentgamma->Segmentngamma->Type
Totality: total
Visibility: public export
Constructors:
Empty : Environmentenv []
(.=) : (x : tyenv) ->Environment (env**x) delta->Environmentenv (ty::delta)
(:++) : (env : Environmentgamma) ->Environmentenvdelta->Environment (gamma|++delta)
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
\ No newline at end of file +

Definitions

dataSegment : Nat->Telescopek->Type
  A segment is a compositional fragment of a telescope, indexed by
the segment's length.

Totality: total
Visibility: public export
Constructors:
Nil : Segment0gamma
(::) : (ty : TypeIngamma) ->Segmentn (gamma-.ty) ->Segment (Sn) gamma
tabulate : (n : Nat) -> (Environmentgamma->Telescopen) ->Segmentngamma
  A segment of size `n` indexed by `gamma` can be seen as the tabulation of a
function that turns environments for `gamma` into telescopes of size `n`.

Totality: total
Visibility: public export
fromTelescope : Telescopek->Segmentk []
  Any telescope is a segment in the empty telescope. It amounts to looking
at it left-to-right instead of right-to-left.

Totality: total
Visibility: public export
untabulate : Segmentngamma->Environmentgamma->Telescopen
  Conversely, a segment of size `n` in telescope `gamma` can be seen as a function
from environments for `gamma` to telescopes of size `n`.

Totality: total
Visibility: public export
toTelescope : Segmentk [] ->Telescopek
  Any segment in the empty telescope correspond to a telescope.

Totality: total
Visibility: public export
keep : (0_ : a=b) ->a=b
Totality: total
Visibility: public export
(|++) : (gamma : Telescopek) ->Segmentngamma->Telescope (n+k)
  Segments act on telescope from the right.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
(++) : (lft : Segmentngamma) ->Segmentm (gamma|++lft) ->Segment (n+m) gamma
  Segments form a kind of an indexed monoid w.r.t. the action `(|++)`

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
actSegmentAssociative : (gamma : Telescopek) -> (lft : Segmentngamma) -> (rgt : Segmentm (gamma|++lft)) ->gamma|++ (lft++rgt) = (gamma|++lft) |++rgt
Totality: total
Visibility: export
weaken : TypeIngamma->TypeIn (gamma|++delta)
Totality: total
Visibility: public export
projection : Environment (gamma|++delta) ->Environmentgamma
Totality: total
Visibility: public export
dataEnvironment : Environmentgamma->Segmentngamma->Type
Totality: total
Visibility: public export
Constructors:
Empty : Environmentenv []
(.=) : (x : tyenv) ->Environment (env**x) delta->Environmentenv (ty::delta)
(:++) : (env : Environmentgamma) ->Environmentenvdelta->Environment (gamma|++delta)
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
\ No newline at end of file diff --git a/contrib/docs/Data.Telescope.SimpleFun.html b/contrib/docs/Data.Telescope.SimpleFun.html index 8555724dcf..53d97de953 100644 --- a/contrib/docs/Data.Telescope.SimpleFun.html +++ b/contrib/docs/Data.Telescope.SimpleFun.html @@ -65,4 +65,4 @@ Compare with `base/Data.Fun` and `contrib/Data.Fun.Extra` and with: Guillaume Allais. 2019. Generic level polymorphic n-ary functions. TyDe 2019. -

Definitions

0SimpleFun : Environmentgamma-> (0_ : Segmentngamma) ->Type->Type
  An n-ary function whose codomain does not depend on its
arguments. The arguments may have dependencies.

Visibility: public export
target : SimpleFunenvdeltacod->Type
Visibility: public export
uncurry : SimpleFunenvdeltacod->Environmentenvdelta->cod
Visibility: public export
curry : (Environmentenvdelta->cod) ->SimpleFunenvdeltacod
Visibility: public export
\ No newline at end of file +

Definitions

0SimpleFun : Environmentgamma-> (0_ : Segmentngamma) ->Type->Type
  An n-ary function whose codomain does not depend on its
arguments. The arguments may have dependencies.

Visibility: public export
target : SimpleFunenvdeltacod->Type
Visibility: public export
uncurry : SimpleFunenvdeltacod->Environmentenvdelta->cod
Visibility: public export
curry : (Environmentenvdelta->cod) ->SimpleFunenvdeltacod
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Telescope.Telescope.html b/contrib/docs/Data.Telescope.Telescope.html index d2d54a4b7b..8c630673ab 100644 --- a/contrib/docs/Data.Telescope.Telescope.html +++ b/contrib/docs/Data.Telescope.Telescope.html @@ -65,4 +65,4 @@ Indexing telescopes by their length (hopefully) helps inform the type-checker during inference. -

Definitions

plusAcc : Nat->Nat->Nat
Totality: total
Visibility: public export
plusAccIsPlus : (m : Nat) -> (n : Nat) ->m+n=plusAccmn
Totality: total
Visibility: export
plusAccZeroRightNeutral : (m : Nat) ->plusAccm0=m
Totality: total
Visibility: public export
dataTelescope : Nat->Type
  A left-nested sequence of dependent types

Totality: total
Visibility: public export
Constructors:
Nil : Telescope0
(-.) : (gamma : Telescopek) ->TypeIngamma->Telescope (Sk)
TypeIn : Telescopek->Type
  A type with dependencies in the given context

Totality: total
Visibility: public export
Environment : Telescopek->Type
  A tuple of values of each type in the telescope

Totality: total
Visibility: public export
weakenTypeIn : TypeIngamma->TypeIn (gamma-.sigma)
Totality: total
Visibility: export
uncons : (gamma : Telescope (Sk)) -> (ty : Type** (delta : ty->Telescopek** (v : ty) ->Environment (deltav) ->Environmentgamma))
Totality: total
Visibility: public export
(++) : (gamma : Telescopem) -> (Environmentgamma->Telescopen) ->Telescope (plusAccnm)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
cons : (ty : Type) -> (ty->Telescopek) ->Telescope (Sk)
Totality: total
Visibility: public export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
Position : Telescopek->Type
  A position between the variables of a telescope, counting from the _end_:
Telescope: Nil -. ty1 -. ... -. tyn
Positions: ^k ^k-1 ^k-2 ^1 ^0

Totality: total
Visibility: public export
start : (gamma : Telescopek) ->Positiongamma
  The position at the beginning of the telescope

Totality: total
Visibility: public export
dataTelescope : Nat->Type
  A right-nested sequence of dependent types

Totality: total
Visibility: public export
Constructors:
Nil : Telescope0
(.-) : (ty : Type) -> (ty->Telescopek) ->Telescope (Sk)
Environment : Telescopek->Type
  A tuple of values of each type in the telescope

Totality: total
Visibility: public export
empty : (0gamma : Telescope0) ->Environmentgamma
Totality: total
Visibility: export
snoc : (gamma : Telescopek) -> (Environmentgamma->Type) ->Telescope (Sk)
Totality: total
Visibility: export
Fixity Declarations:
infixl operator, level 5
infixl operator, level 5
unsnoc : (gamma : Telescope (Sk)) -> (delta : Telescopek** (sigma : Environmentdelta->Type** (env : Environmentdelta) ->sigmaenv->Environmentgamma))
Totality: total
Visibility: export
(++) : (gamma : Telescopem) -> (Environmentgamma->Telescopen) ->Telescope (m+n)
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
split : (gamma : Telescopem) -> (delta : (Environmentgamma->Telescopen)) ->Environment (gamma++delta) -> (env : Environmentgamma**Environment (deltaenv))
Totality: total
Visibility: export
dataTelescope : Nat->Type
  A tree of dependent types

Totality: total
Visibility: public export
Constructors:
Nil : Telescope0
Elt : Type->Telescope1
(><) : (gamma : Telescopem) -> (Environmentgamma->Telescopen) ->Telescope (m+n)
Environment : Telescopek->Type
  A tuple of values of each type in the telescope

Totality: total
Visibility: public export
concat : (gamma : Telescopek) -> (delta : Telescopek**Environmentdelta->Environmentgamma)
Totality: total
Visibility: export
(<++>) : (gamma : Telescopem) -> (Environmentgamma->Telescopen) ->Telescope (plusAccmn)
Totality: total
Visibility: public export
Fixity Declarations:
infix operator, level 5
infixr operator, level 5
leftToRight : Telescopem->Telescopem
Totality: total
Visibility: export
rightToLeft : Telescopem->Telescopem
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

plusAcc : Nat->Nat->Nat
Totality: total
Visibility: public export
plusAccIsPlus : (m : Nat) -> (n : Nat) ->m+n=plusAccmn
Totality: total
Visibility: export
plusAccZeroRightNeutral : (m : Nat) ->plusAccm0=m
Totality: total
Visibility: public export
dataTelescope : Nat->Type
  A left-nested sequence of dependent types

Totality: total
Visibility: public export
Constructors:
Nil : Telescope0
(-.) : (gamma : Telescopek) ->TypeIngamma->Telescope (Sk)
TypeIn : Telescopek->Type
  A type with dependencies in the given context

Totality: total
Visibility: public export
Environment : Telescopek->Type
  A tuple of values of each type in the telescope

Totality: total
Visibility: public export
weakenTypeIn : TypeIngamma->TypeIn (gamma-.sigma)
Totality: total
Visibility: export
uncons : (gamma : Telescope (Sk)) -> (ty : Type** (delta : ty->Telescopek** (v : ty) ->Environment (deltav) ->Environmentgamma))
Totality: total
Visibility: public export
(++) : (gamma : Telescopem) -> (Environmentgamma->Telescopen) ->Telescope (plusAccnm)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
cons : (ty : Type) -> (ty->Telescopek) ->Telescope (Sk)
Totality: total
Visibility: public export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
Position : Telescopek->Type
  A position between the variables of a telescope, counting from the _end_:
Telescope: Nil -. ty1 -. ... -. tyn
Positions: ^k ^k-1 ^k-2 ^1 ^0

Totality: total
Visibility: public export
start : (gamma : Telescopek) ->Positiongamma
  The position at the beginning of the telescope

Totality: total
Visibility: public export
dataTelescope : Nat->Type
  A right-nested sequence of dependent types

Totality: total
Visibility: public export
Constructors:
Nil : Telescope0
(.-) : (ty : Type) -> (ty->Telescopek) ->Telescope (Sk)
Environment : Telescopek->Type
  A tuple of values of each type in the telescope

Totality: total
Visibility: public export
empty : (0gamma : Telescope0) ->Environmentgamma
Totality: total
Visibility: export
snoc : (gamma : Telescopek) -> (Environmentgamma->Type) ->Telescope (Sk)
Totality: total
Visibility: export
Fixity Declarations:
infixl operator, level 5
infixl operator, level 5
unsnoc : (gamma : Telescope (Sk)) -> (delta : Telescopek** (sigma : Environmentdelta->Type** (env : Environmentdelta) ->sigmaenv->Environmentgamma))
Totality: total
Visibility: export
(++) : (gamma : Telescopem) -> (Environmentgamma->Telescopen) ->Telescope (m+n)
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
split : (gamma : Telescopem) -> (delta : (Environmentgamma->Telescopen)) ->Environment (gamma++delta) -> (env : Environmentgamma**Environment (deltaenv))
Totality: total
Visibility: export
dataTelescope : Nat->Type
  A tree of dependent types

Totality: total
Visibility: public export
Constructors:
Nil : Telescope0
Elt : Type->Telescope1
(><) : (gamma : Telescopem) -> (Environmentgamma->Telescopen) ->Telescope (m+n)
Environment : Telescopek->Type
  A tuple of values of each type in the telescope

Totality: total
Visibility: public export
concat : (gamma : Telescopek) -> (delta : Telescopek**Environmentdelta->Environmentgamma)
Totality: total
Visibility: export
(<++>) : (gamma : Telescopem) -> (Environmentgamma->Telescopen) ->Telescope (plusAccmn)
Totality: total
Visibility: public export
Fixity Declarations:
infix operator, level 5
infixr operator, level 5
leftToRight : Telescopem->Telescopem
Totality: total
Visibility: export
rightToLeft : Telescopem->Telescopem
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Telescope.html b/contrib/docs/Data.Telescope.html index 5355ab69fc..1c1adc0a4e 100644 --- a/contrib/docs/Data.Telescope.html +++ b/contrib/docs/Data.Telescope.html @@ -75,4 +75,4 @@ Unifiers as Equivalences: Proof-Relevant Unification of Dependently Typed Data. Jesper Cockx, Dominique Devriese, Frank Piessens, ICFP'16. but they don't seem to have segments and their left action on contexts. -

Reexports

importpublic Data.Telescope.Telescope
importpublic Data.Telescope.Segment
importpublic Data.Telescope.SimpleFun
importpublic Data.Telescope.Fun
importpublic Data.Telescope.Congruence
\ No newline at end of file +

Reexports

importpublic Data.Telescope.Telescope
importpublic Data.Telescope.Segment
importpublic Data.Telescope.SimpleFun
importpublic Data.Telescope.Fun
importpublic Data.Telescope.Congruence
\ No newline at end of file diff --git a/contrib/docs/Data.Validated.html b/contrib/docs/Data.Validated.html index 4cc2bd8d0a..de5a1c61a1 100644 --- a/contrib/docs/Data.Validated.html +++ b/contrib/docs/Data.Validated.html @@ -61,4 +61,4 @@ -

Data.Validated(source)

Definitions

dataValidated : Type->Type->Type
  `Validated` is like an `Either` but accumulates all errors with semigroup operation.

Totality: total
Visibility: public export
Constructors:
Valid : a->Validatedea
Invalid : e->Validatedea

Hints:
Monoide=>Alternative (Validatede)
Semigroupe=>Applicative (Validatede)
BifoldableValidated
BifunctorValidated
BitraversableValidated
(DecEqe, DecEqa) =>DecEq (Validatedea)
(Eqe, Eqa) =>Eq (Validatedea)
Foldable (Validatede)
Functor (Validatede)
InjectiveValid
InjectiveInvalid
Monoide=>Monoid (Validatedea)
Semigroupe=>Semigroup (Validatedea)
(Showe, Showa) =>Show (Validatedea)
Traversable (Validatede)
Uninhabited (Validx=Invalide)
Uninhabited (Invalide=Validx)
Semigroupe=>Zippable (Validatede)
ValidatedL : Type->Type->Type
  Special case of `Validated` with a `List` as an error accumulator.

Totality: total
Visibility: public export
oneInvalid : Applicativef=>e->Validated (fe) a
Totality: total
Visibility: public export
fromEither : Eitherea->Validatedea
Totality: total
Visibility: public export
fromEitherL : Eitherea->ValidatedLea
Totality: total
Visibility: public export
toEither : Validatedea->Eitherea
Totality: total
Visibility: public export
fromMaybe : Monoide=>Maybea->Validatedea
Totality: total
Visibility: public export
toMaybe : Validatedea->Maybea
Totality: total
Visibility: public export
dataIsValid : Validatedea->Type
Totality: total
Visibility: public export
Constructor: 
ItIsValid : IsValid (Validx)

Hint: 
Uninhabited (IsValid (Invalide))
isItValid : (v : Validatedea) ->Dec (IsValidv)
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Validated(source)

Definitions

dataValidated : Type->Type->Type
  `Validated` is like an `Either` but accumulates all errors with semigroup operation.

Totality: total
Visibility: public export
Constructors:
Valid : a->Validatedea
Invalid : e->Validatedea

Hints:
Monoide=>Alternative (Validatede)
Semigroupe=>Applicative (Validatede)
BifoldableValidated
BifunctorValidated
BitraversableValidated
(DecEqe, DecEqa) =>DecEq (Validatedea)
(Eqe, Eqa) =>Eq (Validatedea)
Foldable (Validatede)
Functor (Validatede)
InjectiveValid
InjectiveInvalid
Monoide=>Monoid (Validatedea)
Semigroupe=>Semigroup (Validatedea)
(Showe, Showa) =>Show (Validatedea)
Traversable (Validatede)
Uninhabited (Validx=Invalide)
Uninhabited (Invalide=Validx)
Semigroupe=>Zippable (Validatede)
ValidatedL : Type->Type->Type
  Special case of `Validated` with a `List` as an error accumulator.

Totality: total
Visibility: public export
oneInvalid : Applicativef=>e->Validated (fe) a
Totality: total
Visibility: public export
fromEither : Eitherea->Validatedea
Totality: total
Visibility: public export
fromEitherL : Eitherea->ValidatedLea
Totality: total
Visibility: public export
toEither : Validatedea->Eitherea
Totality: total
Visibility: public export
fromMaybe : Monoide=>Maybea->Validatedea
Totality: total
Visibility: public export
toMaybe : Validatedea->Maybea
Totality: total
Visibility: public export
dataIsValid : Validatedea->Type
Totality: total
Visibility: public export
Constructor: 
ItIsValid : IsValid (Validx)

Hint: 
Uninhabited (IsValid (Invalide))
isItValid : (v : Validatedea) ->Dec (IsValidv)
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Extra.html b/contrib/docs/Data.Vect.Extra.html index 13eefc2ce5..a7ba15b9bd 100644 --- a/contrib/docs/Data.Vect.Extra.html +++ b/contrib/docs/Data.Vect.Extra.html @@ -62,4 +62,4 @@

Data.Vect.Extra(source)

Additional functions about vectors
-

Definitions

mapWithPos : (Finn->a->b) ->Vectna->Vectnb
  Version of `map` with access to the current position

Visibility: public export
mapWithElem : (xs : Vectna) -> ((x : a) -> (0_ : Elemxxs) ->b) ->Vectnb
  Version of `map` with runtime-irrelevant information that the
argument is an element of the vector

Visibility: public export
\ No newline at end of file +

Definitions

mapWithPos : (Finn->a->b) ->Vectna->Vectnb
  Version of `map` with access to the current position

Visibility: public export
mapWithElem : (xs : Vectna) -> ((x : a) -> (0_ : Elemxxs) ->b) ->Vectnb
  Version of `map` with runtime-irrelevant information that the
argument is an element of the vector

Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Properties.Fin.html b/contrib/docs/Data.Vect.Properties.Fin.html index 08e6074801..2930d07d09 100644 --- a/contrib/docs/Data.Vect.Properties.Fin.html +++ b/contrib/docs/Data.Vect.Properties.Fin.html @@ -61,4 +61,4 @@ -

Data.Vect.Properties.Fin(source)

Definitions

dataNonEmpty : Vectna->Type
  Witnesses non-empty runtime-irrelevant vectors. Analogous to Data.List.NonEmpty

Totality: total
Visibility: public export
Constructor: 
IsNonEmpty : NonEmpty (x::xs)
etaCons : (xs : Vect (Sn) a) ->headxs::tailxs=xs
  eta-law (extensionality) of head-tail cons

Visibility: export
finNonZero : Finn->NonZeron
  Inhabitants of `Fin n` witness `NonZero n`

Visibility: export
finNonEmpty : (0xs : Vectna) ->NonZeron->NonEmptyxs
  Inhabitants of `Fin n` witness runtime-irrelevant vectors of length `n` aren't empty

Visibility: export
finToElem : (0xs : Vectna) -> (i : Finn) ->Elem (indexixs) xs
  Cast an index into a runtime-irrelevant `Vect` into the position
of the corresponding element

Visibility: public export
indexNaturalityWithElem : (i : Finn) -> (xs : Vectna) -> (f : ((x : a) -> (0_ : Elemxxs) ->b)) ->indexi (mapWithElemxsf) =f (indexixs) (finToElemxsi)
  Analogus to `indexNaturality`, but morhisms can (irrelevantly) know the context

Visibility: export
\ No newline at end of file +

Data.Vect.Properties.Fin(source)

Definitions

dataNonEmpty : Vectna->Type
  Witnesses non-empty runtime-irrelevant vectors. Analogous to Data.List.NonEmpty

Totality: total
Visibility: public export
Constructor: 
IsNonEmpty : NonEmpty (x::xs)
etaCons : (xs : Vect (Sn) a) ->headxs::tailxs=xs
  eta-law (extensionality) of head-tail cons

Visibility: export
finNonZero : Finn->NonZeron
  Inhabitants of `Fin n` witness `NonZero n`

Visibility: export
finNonEmpty : (0xs : Vectna) ->NonZeron->NonEmptyxs
  Inhabitants of `Fin n` witness runtime-irrelevant vectors of length `n` aren't empty

Visibility: export
finToElem : (0xs : Vectna) -> (i : Finn) ->Elem (indexixs) xs
  Cast an index into a runtime-irrelevant `Vect` into the position
of the corresponding element

Visibility: public export
indexNaturalityWithElem : (i : Finn) -> (xs : Vectna) -> (f : ((x : a) -> (0_ : Elemxxs) ->b)) ->indexi (mapWithElemxsf) =f (indexixs) (finToElemxsi)
  Analogus to `indexNaturality`, but morhisms can (irrelevantly) know the context

Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Properties.Foldr.html b/contrib/docs/Data.Vect.Properties.Foldr.html index 15091781cd..165384284b 100644 --- a/contrib/docs/Data.Vect.Properties.Foldr.html +++ b/contrib/docs/Data.Vect.Properties.Foldr.html @@ -72,4 +72,4 @@ Since the prelude defines foldr tail-recursively, this fact isn't immediate and we need some lemmata to prove it. -

Definitions

sumR : Numa=>Foldablef=>fa->a
  Sum implemented with foldr

Visibility: public export
recordVectHomomorphismProperty : {0A : Type} -> {0B : Type} -> (A->B->B) ->B-> (VectnA->B) ->Type
  A function H : forall n. Vect n A -> B preserving the structure of vectors over A

Totality: total
Visibility: public export
Constructor: 
ShowVectHomomorphismProperty : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->H [] =E-> ((x : A) -> (xs : VectnA) ->H (x::xs) =Fx (Hxs)) ->VectHomomorphismPropertyFE (\0{n:4651}=>H)

Projections:
.cons : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4819}=>H) -> (x : A) -> (xs : VectnA) ->H (x::xs) =Fx (Hxs)
.nil : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4693}=>H) ->H [] =E
.nil : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4693}=>H) ->H [] =E
Visibility: public export
nil : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4757}=>H) ->H [] =E
Visibility: public export
.cons : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4819}=>H) -> (x : A) -> (xs : VectnA) ->H (x::xs) =Fx (Hxs)
Visibility: public export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
cons : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4898}=>H) -> (x : A) -> (xs : VectnA) ->H (x::xs) =Fx (Hxs)
Visibility: public export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
nilConsInitiality : (f : (a->b->b)) -> (e : b) -> (h1 : (Vectna->b)) -> (h2 : (Vectna->b)) ->VectHomomorphismPropertyfe (\0{n:4978}=>h1) ->VectHomomorphismPropertyfe (\0{n:4990}=>h2) -> (xs : Vectna) ->h1xs=h2xs
  There is an extensionally unique function preserving the vector structure

Visibility: export
foldrVectHomomorphism : VectHomomorphismPropertyfe (\0{n:5386}=>foldrfe)
  Our tail-recursive foldr preserves the vector structure

Visibility: export
foldrUniqueness : (h : (Vectna->b)) ->VectHomomorphismPropertyfe (\0{n:5586}=>h) -> (xs : Vectna) ->hxs=foldrfexs
  foldr is the unique function preserving the vector structure

Visibility: export
sumIsGTEtoParts : (xs : VectnNat) ->Elemxxs->GTE (sumRxs) x
  Each summand is `LTE` the sum

Visibility: export
sumMonotone : (xs : VectnNat) -> (ys : VectnNat) -> ((i : Finn) ->LTE (indexixs) (indexiys)) ->LTE (sumRxs) (sumRys)
  `sumR : Vect n Nat -> Nat` is monotone

Visibility: export
\ No newline at end of file +

Definitions

sumR : Numa=>Foldablef=>fa->a
  Sum implemented with foldr

Visibility: public export
recordVectHomomorphismProperty : {0A : Type} -> {0B : Type} -> (A->B->B) ->B-> (VectnA->B) ->Type
  A function H : forall n. Vect n A -> B preserving the structure of vectors over A

Totality: total
Visibility: public export
Constructor: 
ShowVectHomomorphismProperty : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->H [] =E-> ((x : A) -> (xs : VectnA) ->H (x::xs) =Fx (Hxs)) ->VectHomomorphismPropertyFE (\0{n:4651}=>H)

Projections:
.cons : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4819}=>H) -> (x : A) -> (xs : VectnA) ->H (x::xs) =Fx (Hxs)
.nil : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4693}=>H) ->H [] =E
.nil : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4693}=>H) ->H [] =E
Visibility: public export
nil : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4757}=>H) ->H [] =E
Visibility: public export
.cons : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4819}=>H) -> (x : A) -> (xs : VectnA) ->H (x::xs) =Fx (Hxs)
Visibility: public export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
cons : {0A : Type} -> {0B : Type} -> {0F : A->B->B} -> {0E : B} -> {0H : VectnA->B} ->VectHomomorphismPropertyFE (\0{n:4898}=>H) -> (x : A) -> (xs : VectnA) ->H (x::xs) =Fx (Hxs)
Visibility: public export
Fixity Declarations:
infixr operator, level 5
infixr operator, level 5
nilConsInitiality : (f : (a->b->b)) -> (e : b) -> (h1 : (Vectna->b)) -> (h2 : (Vectna->b)) ->VectHomomorphismPropertyfe (\0{n:4978}=>h1) ->VectHomomorphismPropertyfe (\0{n:4990}=>h2) -> (xs : Vectna) ->h1xs=h2xs
  There is an extensionally unique function preserving the vector structure

Visibility: export
foldrVectHomomorphism : VectHomomorphismPropertyfe (\0{n:5386}=>foldrfe)
  Our tail-recursive foldr preserves the vector structure

Visibility: export
foldrUniqueness : (h : (Vectna->b)) ->VectHomomorphismPropertyfe (\0{n:5586}=>h) -> (xs : Vectna) ->hxs=foldrfexs
  foldr is the unique function preserving the vector structure

Visibility: export
sumIsGTEtoParts : (xs : VectnNat) ->Elemxxs->GTE (sumRxs) x
  Each summand is `LTE` the sum

Visibility: export
sumMonotone : (xs : VectnNat) -> (ys : VectnNat) -> ((i : Finn) ->LTE (indexixs) (indexiys)) ->LTE (sumRxs) (sumRys)
  `sumR : Vect n Nat -> Nat` is monotone

Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Properties.Index.html b/contrib/docs/Data.Vect.Properties.Index.html index 81177e9f93..ba44efc221 100644 --- a/contrib/docs/Data.Vect.Properties.Index.html +++ b/contrib/docs/Data.Vect.Properties.Index.html @@ -62,4 +62,4 @@

Data.Vect.Properties.Index(source)

Properties of Data.Vect.index
-

Definitions

recallElem : Elemxxs->a
  Recall an element by its position, as we may not have the element
at runtime

Visibility: public export
recallElemSpec : (pos : Elemxxs) ->recallElempos=x
  Recalling by a position of `x` does yield `x`

Visibility: export
indexNaturality : (i : Finn) -> (f : (a->b)) -> (xs : Vectna) ->indexi (mapfxs) =f (indexixs)
  `index i : Vect n a -> a` is a natural transformation

Visibility: export
indexReplicate : (i : Finn) -> (x : a) ->indexi (replicatenx) =x
  Replication tabulates the constant function

Visibility: export
indexRange : (i : Finn) ->indexirange=i
  `range` tabulates the identity function (by definition)

Visibility: export
indexTranspose : (xss : Vectm (Vectna)) -> (i : Finn) ->indexi (transposexss) =map (indexi) xss
  The `i`-th vector in a transposed matrix is the vector of `i`-th components

Visibility: export
\ No newline at end of file +

Definitions

recallElem : Elemxxs->a
  Recall an element by its position, as we may not have the element
at runtime

Visibility: public export
recallElemSpec : (pos : Elemxxs) ->recallElempos=x
  Recalling by a position of `x` does yield `x`

Visibility: export
indexNaturality : (i : Finn) -> (f : (a->b)) -> (xs : Vectna) ->indexi (mapfxs) =f (indexixs)
  `index i : Vect n a -> a` is a natural transformation

Visibility: export
indexReplicate : (i : Finn) -> (x : a) ->indexi (replicatenx) =x
  Replication tabulates the constant function

Visibility: export
indexRange : (i : Finn) ->indexirange=i
  `range` tabulates the identity function (by definition)

Visibility: export
indexTranspose : (xss : Vectm (Vectna)) -> (i : Finn) ->indexi (transposexss) =map (indexi) xss
  The `i`-th vector in a transposed matrix is the vector of `i`-th components

Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Properties.Map.html b/contrib/docs/Data.Vect.Properties.Map.html index 502a71547e..b5b01acd6e 100644 --- a/contrib/docs/Data.Vect.Properties.Map.html +++ b/contrib/docs/Data.Vect.Properties.Map.html @@ -62,4 +62,4 @@

Data.Vect.Properties.Map(source)

Properties of Data.Vect.map
-

Definitions

mapId : (xs : Vectna) ->mapidxs=xs
  `map` functoriality: identity preservation

Visibility: export
indexMapWithPos : (f : (Finn->a->b)) -> (xs : Vectna) -> (i : Finn) ->indexi (mapWithPosfxs) =fi (indexixs)
  `mapWtihPos f` represents post-composition the tabulated function `f`

Visibility: export
mapTabulate : (f : (a->b)) -> (g : (Finn->a)) ->tabulate (f.g) =mapf (tabulateg)
  `tabulate : (Fin n ->) -> Vect n` is a natural transformation

Visibility: export
tabulateConstantly : (x : a) ->tabulate (constx) =replicatelenx
  Tabulating with the constant function is replication

Visibility: export
mapRestrictedExtensional : (f : (a->b)) -> (g : (a->b)) -> (xs : Vectna) -> ((i : Finn) ->f (indexixs) =g (indexixs)) ->mapfxs=mapgxs
  It's enough that two functions agree on the elements of a vector for the maps to agree

Visibility: export
mapExtensional : (f : (a->b)) -> (g : (a->b)) -> ((x : a) ->fx=gx) -> (xs : Vectna) ->mapfxs=mapgxs
  function extensionality is a congruence wrt map

Visibility: export
mapFusion : (f : (b->c)) -> (g : (a->b)) -> (xs : Vectna) ->mapf (mapgxs) =map (f.g) xs
  map-fusion property for vectors up to function extensionality

Visibility: export
mapWithElemExtensional : (xs : Vectna) -> (f : ((x : a) -> (0_ : Elemxxs) ->b)) -> (g : ((x : a) -> (0_ : Elemxxs) ->b)) -> ((x : a) -> (0pos : Elemxxs) ->fxpos=gxpos) ->mapWithElemxsf=mapWithElemxsg
  function extensionality is a congruence wrt mapWithElem

Visibility: export
\ No newline at end of file +

Definitions

mapId : (xs : Vectna) ->mapidxs=xs
  `map` functoriality: identity preservation

Visibility: export
indexMapWithPos : (f : (Finn->a->b)) -> (xs : Vectna) -> (i : Finn) ->indexi (mapWithPosfxs) =fi (indexixs)
  `mapWtihPos f` represents post-composition the tabulated function `f`

Visibility: export
mapTabulate : (f : (a->b)) -> (g : (Finn->a)) ->tabulate (f.g) =mapf (tabulateg)
  `tabulate : (Fin n ->) -> Vect n` is a natural transformation

Visibility: export
tabulateConstantly : (x : a) ->tabulate (constx) =replicatelenx
  Tabulating with the constant function is replication

Visibility: export
mapRestrictedExtensional : (f : (a->b)) -> (g : (a->b)) -> (xs : Vectna) -> ((i : Finn) ->f (indexixs) =g (indexixs)) ->mapfxs=mapgxs
  It's enough that two functions agree on the elements of a vector for the maps to agree

Visibility: export
mapExtensional : (f : (a->b)) -> (g : (a->b)) -> ((x : a) ->fx=gx) -> (xs : Vectna) ->mapfxs=mapgxs
  function extensionality is a congruence wrt map

Visibility: export
mapFusion : (f : (b->c)) -> (g : (a->b)) -> (xs : Vectna) ->mapf (mapgxs) =map (f.g) xs
  map-fusion property for vectors up to function extensionality

Visibility: export
mapWithElemExtensional : (xs : Vectna) -> (f : ((x : a) -> (0_ : Elemxxs) ->b)) -> (g : ((x : a) -> (0_ : Elemxxs) ->b)) -> ((x : a) -> (0pos : Elemxxs) ->fxpos=gxpos) ->mapWithElemxsf=mapWithElemxsg
  function extensionality is a congruence wrt mapWithElem

Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Properties.Tabulate.html b/contrib/docs/Data.Vect.Properties.Tabulate.html index 984ae137bc..7a8d6b82ab 100644 --- a/contrib/docs/Data.Vect.Properties.Tabulate.html +++ b/contrib/docs/Data.Vect.Properties.Tabulate.html @@ -63,4 +63,4 @@

Data.Vect.Properties.Tabulate(source)

Tabulation gives a bijection between functions `f : Fin n -> a`
 (up to extensional equality) and vectors `tabulate f : Vect n a`.
-

Definitions

vectorExtensionality : (xs : Vectna) -> (ys : Vectna) -> ((i : Finn) ->indexixs=indexiys) ->xs=ys
  Vectors are uniquely determined by their elements

Visibility: export
tabulateExtensional : (f : (Finn->a)) -> (g : (Finn->a)) -> ((i : Finn) ->fi=gi) ->tabulatef=tabulateg
  Extensionally equivalent functions tabulate to the same vector

Visibility: export
indexTabulate : (f : (Finn->a)) -> (i : Finn) ->indexi (tabulatef) =fi
  Taking an index amounts to applying the tabulated function

Visibility: export
emptyInitial : (v : Vect0a) ->v= []
  The empty vector represents the unique function `Fin 0 -> a`

Visibility: export
\ No newline at end of file +

Definitions

vectorExtensionality : (xs : Vectna) -> (ys : Vectna) -> ((i : Finn) ->indexixs=indexiys) ->xs=ys
  Vectors are uniquely determined by their elements

Visibility: export
tabulateExtensional : (f : (Finn->a)) -> (g : (Finn->a)) -> ((i : Finn) ->fi=gi) ->tabulatef=tabulateg
  Extensionally equivalent functions tabulate to the same vector

Visibility: export
indexTabulate : (f : (Finn->a)) -> (i : Finn) ->indexi (tabulatef) =fi
  Taking an index amounts to applying the tabulated function

Visibility: export
emptyInitial : (v : Vect0a) ->v= []
  The empty vector represents the unique function `Fin 0 -> a`

Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Properties.html b/contrib/docs/Data.Vect.Properties.html index f16bf283c6..dc661b5dc7 100644 --- a/contrib/docs/Data.Vect.Properties.html +++ b/contrib/docs/Data.Vect.Properties.html @@ -62,4 +62,4 @@

Data.Vect.Properties(source)

Additional properties and lemmata to do with Vect
-

Reexports

importpublic Data.Vect.Properties.Tabulate
importpublic Data.Vect.Properties.Index
importpublic Data.Vect.Properties.Foldr
importpublic Data.Vect.Properties.Map
importpublic Data.Vect.Properties.Fin
\ No newline at end of file +

Reexports

importpublic Data.Vect.Properties.Tabulate
importpublic Data.Vect.Properties.Index
importpublic Data.Vect.Properties.Foldr
importpublic Data.Vect.Properties.Map
importpublic Data.Vect.Properties.Fin
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Sort.html b/contrib/docs/Data.Vect.Sort.html index 8af8eec6c2..5dbb3f8ef7 100644 --- a/contrib/docs/Data.Vect.Sort.html +++ b/contrib/docs/Data.Vect.Sort.html @@ -61,4 +61,4 @@ -

Data.Vect.Sort(source)

Definitions

sortBy : (a->a->Ordering) ->Vectna->Vectna
  Merge sort implementation for Vect n a

Totality: total
Visibility: export
sort : Orda=>Vectna->Vectna
Totality: total
Visibility: export
\ No newline at end of file +

Data.Vect.Sort(source)

Definitions

sortBy : (a->a->Ordering) ->Vectna->Vectna
  Merge sort implementation for Vect n a

Totality: total
Visibility: export
sort : Orda=>Vectna->Vectna
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Data.Vect.Views.Extra.html b/contrib/docs/Data.Vect.Views.Extra.html index d2e5795dad..e40f90dc51 100644 --- a/contrib/docs/Data.Vect.Views.Extra.html +++ b/contrib/docs/Data.Vect.Views.Extra.html @@ -62,4 +62,4 @@

Data.Vect.Views.Extra(source)

Additional views for Vect
-

Definitions

dataSplit : Vectna->Type
  View for splitting a vector in half, non-recursively

Totality: total
Visibility: public export
Constructors:
SplitNil : Split []
SplitOne : Split [x]
SplitPair : (x : a) -> (xs : Vectna) -> (y : a) -> (ys : Vectma) ->Split (x:: (xs++ (y::ys)))
  two non-empty parts
split : (xs : Vectna) ->Splitxs
  Covering function for the `Split` view
Constructs the view in linear time

Totality: total
Visibility: export
dataSplitRec : Vectka->Type
  View for splitting a vector in half, recursively

This allows us to define recursive functions which repeatedly split vectors
in half, with base cases for the empty and singleton lists.

Totality: total
Visibility: public export
Constructors:
SplitRecNil : SplitRec []
SplitRecOne : SplitRec [x]
SplitRecPair : Lazy (SplitRecxs) -> Lazy (SplitRecys) ->SplitRec (xs++ys)
splitRec : (xs : Vectka) ->SplitRecxs
  Covering function for the `SplitRec` view
Constructs the view in O(n lg n)

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataSplit : Vectna->Type
  View for splitting a vector in half, non-recursively

Totality: total
Visibility: public export
Constructors:
SplitNil : Split []
SplitOne : Split [x]
SplitPair : (x : a) -> (xs : Vectna) -> (y : a) -> (ys : Vectma) ->Split (x:: (xs++ (y::ys)))
  two non-empty parts
split : (xs : Vectna) ->Splitxs
  Covering function for the `Split` view
Constructs the view in linear time

Totality: total
Visibility: export
dataSplitRec : Vectka->Type
  View for splitting a vector in half, recursively

This allows us to define recursive functions which repeatedly split vectors
in half, with base cases for the empty and singleton lists.

Totality: total
Visibility: public export
Constructors:
SplitRecNil : SplitRec []
SplitRecOne : SplitRec [x]
SplitRecPair : Lazy (SplitRecxs) -> Lazy (SplitRecys) ->SplitRec (xs++ys)
splitRec : (xs : Vectka) ->SplitRecxs
  Covering function for the `SplitRec` view
Constructs the view in O(n lg n)

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Data.Void.html b/contrib/docs/Data.Void.html index ed5a33251e..db23a08105 100644 --- a/contrib/docs/Data.Void.html +++ b/contrib/docs/Data.Void.html @@ -61,4 +61,4 @@ -

Data.Void(source)

Definitions

absurdity : Uninhabitedt=> (0_ : t) ->s
Visibility: export
contradiction : Uninhabitedt=> (0_ : (x->t)) ->x->s
Visibility: export
\ No newline at end of file +

Data.Void(source)

Definitions

absurdity : Uninhabitedt=> (0_ : t) ->s
Visibility: export
contradiction : Uninhabitedt=> (0_ : (x->t)) ->x->s
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Debug.Buffer.html b/contrib/docs/Debug.Buffer.html index 7fc3c63333..fe00b64d52 100644 --- a/contrib/docs/Debug.Buffer.html +++ b/contrib/docs/Debug.Buffer.html @@ -61,4 +61,4 @@ -

Debug.Buffer(source)

Definitions

dumpBuffer : HasIOio=>Buffer->ioString
Visibility: export
printBuffer : HasIOio=>Buffer->io ()
Visibility: export
\ No newline at end of file +

Debug.Buffer(source)

Definitions

dumpBuffer : HasIOio=>Buffer->ioString
Visibility: export
printBuffer : HasIOio=>Buffer->io ()
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Decidable.Decidable.Extra.html b/contrib/docs/Decidable.Decidable.Extra.html index 9e33981ee8..3626662c15 100644 --- a/contrib/docs/Decidable.Decidable.Extra.html +++ b/contrib/docs/Decidable.Decidable.Extra.html @@ -61,4 +61,4 @@ -

Decidable.Decidable.Extra(source)

Definitions

NotNot : Relts->Relts
Totality: total
Visibility: public export
doubleNegationElimination : Decidablentsr=> (witness : HVectts) ->uncurry (NotNotr) witness->uncurryrwitness
Totality: total
Visibility: public export
doubleNegationExists : Decidablentsr=>Exts (NotNotr) ->Extsr
Totality: total
Visibility: public export
negateDec : Deca->Dec (Nota)
  Convert a decision about a decidable property into one about its negation.

Totality: total
Visibility: public export
notExistsNotForall : {0p : a->Type} -> ((x : a) ->Dec (px)) ->Dec (x : a**Not (px)) ->Dec ((x : a) ->px)
  We can turn (Not (Exists Not)) into Forall for decidable types

Totality: total
Visibility: public export
\ No newline at end of file +

Decidable.Decidable.Extra(source)

Definitions

NotNot : Relts->Relts
Totality: total
Visibility: public export
doubleNegationElimination : Decidablentsr=> (witness : HVectts) ->uncurry (NotNotr) witness->uncurryrwitness
Totality: total
Visibility: public export
doubleNegationExists : Decidablentsr=>Exts (NotNotr) ->Extsr
Totality: total
Visibility: public export
negateDec : Deca->Dec (Nota)
  Convert a decision about a decidable property into one about its negation.

Totality: total
Visibility: public export
notExistsNotForall : {0p : a->Type} -> ((x : a) ->Dec (px)) ->Dec (x : a**Not (px)) ->Dec ((x : a) ->px)
  We can turn (Not (Exists Not)) into Forall for decidable types

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Decidable.Finite.Fin.html b/contrib/docs/Decidable.Finite.Fin.html index b628f47796..fe06591875 100644 --- a/contrib/docs/Decidable.Finite.Fin.html +++ b/contrib/docs/Decidable.Finite.Fin.html @@ -61,4 +61,4 @@ -

Decidable.Finite.Fin(source)

Definitions

finiteDecEx : {0p : Finn->Type} -> ((k : Finn) ->Dec (pk)) ->Dec (k : Finn**pk)
  Given a decidable predicate on Fin n,
it's decidable whether any number in Fin n satisfies it.

Visibility: public export
finiteDecAll : {0p : Finn->Type} -> ((k : Finn) ->Dec (pk)) ->Dec ((k : Finn) ->pk)
  Given a decidable predicate on Fin n,
it's decidable whether all numbers in Fin n satisfy it.

Visibility: public export
\ No newline at end of file +

Decidable.Finite.Fin(source)

Definitions

finiteDecEx : {0p : Finn->Type} -> ((k : Finn) ->Dec (pk)) ->Dec (k : Finn**pk)
  Given a decidable predicate on Fin n,
it's decidable whether any number in Fin n satisfies it.

Visibility: public export
finiteDecAll : {0p : Finn->Type} -> ((k : Finn) ->Dec (pk)) ->Dec ((k : Finn) ->pk)
  Given a decidable predicate on Fin n,
it's decidable whether all numbers in Fin n satisfy it.

Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Decidable.Order.Strict.html b/contrib/docs/Decidable.Order.Strict.html index 316212c333..e4d2a23639 100644 --- a/contrib/docs/Decidable.Order.Strict.html +++ b/contrib/docs/Decidable.Order.Strict.html @@ -67,4 +67,4 @@ This module extends base's Control.Order with the strict versions. The interface system seems to struggle a bit with some of the constructions, so I hacked them a bit. Sorry. -

Definitions

interfaceIrreflexive : (ty : Type) -> (ty->ty->Type) ->Type
Parameters: ty, rel
Methods:
irreflexive : Not (relxx)

Implementation: 
IrreflexiveNatLT
irreflexive : Irreflexivetyrel=>Not (relxx)
Totality: total
Visibility: public export
interfaceStrictPreorder : (ty : Type) -> (ty->ty->Type) ->Type
Parameters: ty, rel
Constraints: Transitive ty rel, Irreflexive ty rel
Implementation: 
StrictPreorderNatLT
interfaceAsymmetric : (ty : Type) -> (ty->ty->Type) ->Type
Parameters: ty, rel
Methods:
asymmetric : relxy->Not (relyx)
asymmetric : Asymmetrictyrel=>relxy->Not (relyx)
Totality: total
Visibility: public export
recordEqOr : Relt->t->t->Type
Totality: total
Visibility: public export
Constructor: 
MkEqOr : Either (a=b) (spoab) ->EqOrspoab

Projection: 
.runEqOr : EqOrspoab->Either (a=b) (spoab)

Hints:
(Irreflexivetyrel, Asymmetrictyrel) =>Antisymmetricty (EqOrrel)
Connextyrel=>Connexty (EqOrrel)
(Irreflexivetyrel, (Asymmetrictyrel, Transitivetyrel)) =>PartialOrderty (EqOrrel)
Transitivetyrel=>Preorderty (EqOrrel)
Reflexivety (EqOrrel)
(Connextyrel, DecEqty) =>StronglyConnexty (EqOrrel)
Transitivetyrel=>Transitivety (EqOrrel)
.runEqOr : EqOrspoab->Either (a=b) (spoab)
Totality: total
Visibility: public export
runEqOr : EqOrspoab->Either (a=b) (spoab)
Totality: total
Visibility: public export
dataDecOrdering : t->t->Type
Totality: total
Visibility: public export
Constructors:
DecLT : ltab->DecOrderingab
DecEQ : a=b->DecOrderingab
DecGT : ltba->DecOrderingab
interfaceStrictOrdered : (t : Type) -> (t->t->Type) ->Type
Parameters: t, spo
Constraints: StrictPreorder t spo
Methods:
order : (a : t) -> (b : t) ->DecOrderingab

Implementation: 
StrictOrderedNatLT
order : StrictOrderedtspo=> (a : t) -> (b : t) ->DecOrderingab
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

interfaceIrreflexive : (ty : Type) -> (ty->ty->Type) ->Type
Parameters: ty, rel
Methods:
irreflexive : Not (relxx)

Implementation: 
IrreflexiveNatLT
irreflexive : Irreflexivetyrel=>Not (relxx)
Totality: total
Visibility: public export
interfaceStrictPreorder : (ty : Type) -> (ty->ty->Type) ->Type
Parameters: ty, rel
Constraints: Transitive ty rel, Irreflexive ty rel
Implementation: 
StrictPreorderNatLT
interfaceAsymmetric : (ty : Type) -> (ty->ty->Type) ->Type
Parameters: ty, rel
Methods:
asymmetric : relxy->Not (relyx)
asymmetric : Asymmetrictyrel=>relxy->Not (relyx)
Totality: total
Visibility: public export
recordEqOr : Relt->t->t->Type
Totality: total
Visibility: public export
Constructor: 
MkEqOr : Either (a=b) (spoab) ->EqOrspoab

Projection: 
.runEqOr : EqOrspoab->Either (a=b) (spoab)

Hints:
(Irreflexivetyrel, Asymmetrictyrel) =>Antisymmetricty (EqOrrel)
Connextyrel=>Connexty (EqOrrel)
(Irreflexivetyrel, (Asymmetrictyrel, Transitivetyrel)) =>PartialOrderty (EqOrrel)
Transitivetyrel=>Preorderty (EqOrrel)
Reflexivety (EqOrrel)
(Connextyrel, DecEqty) =>StronglyConnexty (EqOrrel)
Transitivetyrel=>Transitivety (EqOrrel)
.runEqOr : EqOrspoab->Either (a=b) (spoab)
Totality: total
Visibility: public export
runEqOr : EqOrspoab->Either (a=b) (spoab)
Totality: total
Visibility: public export
dataDecOrdering : t->t->Type
Totality: total
Visibility: public export
Constructors:
DecLT : ltab->DecOrderingab
DecEQ : a=b->DecOrderingab
DecGT : ltba->DecOrderingab
interfaceStrictOrdered : (t : Type) -> (t->t->Type) ->Type
Parameters: t, spo
Constraints: StrictPreorder t spo
Methods:
order : (a : t) -> (b : t) ->DecOrderingab

Implementation: 
StrictOrderedNatLT
order : StrictOrderedtspo=> (a : t) -> (b : t) ->DecOrderingab
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.Data.html b/contrib/docs/Language.JSON.Data.html index c0de733b0f..423fbbfb8a 100644 --- a/contrib/docs/Language.JSON.Data.html +++ b/contrib/docs/Language.JSON.Data.html @@ -61,4 +61,4 @@ -

Language.JSON.Data(source)

Definitions

dataJSON : Type
Totality: total
Visibility: public export
Constructors:
JNull : JSON
JBoolean : Bool->JSON
JNumber : Double->JSON
JString : String->JSON
JArray : ListJSON->JSON
JObject : List (String, JSON) ->JSON

Hints:
Cast () JSON
CastBoolJSON
CastDoubleJSON
CastStringJSON
CastaJSON=>Cast (Lista) JSON
ShowJSON
format : {default0_ : Nat} ->Nat->JSON->String
  Format a JSON value, indenting by `n` spaces per nesting level.

@curr The current indentation amount, measured in spaces.
@n The amount of spaces to indent per nesting level.

Totality: total
Visibility: export
\ No newline at end of file +

Language.JSON.Data(source)

Definitions

dataJSON : Type
Totality: total
Visibility: public export
Constructors:
JNull : JSON
JBoolean : Bool->JSON
JNumber : Double->JSON
JString : String->JSON
JArray : ListJSON->JSON
JObject : List (String, JSON) ->JSON

Hints:
Cast () JSON
CastBoolJSON
CastDoubleJSON
CastStringJSON
CastaJSON=>Cast (Lista) JSON
ShowJSON
format : {default0_ : Nat} ->Nat->JSON->String
  Format a JSON value, indenting by `n` spaces per nesting level.

@curr The current indentation amount, measured in spaces.
@n The amount of spaces to indent per nesting level.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.Lexer.html b/contrib/docs/Language.JSON.Lexer.html index 149fd357c9..ec366471ae 100644 --- a/contrib/docs/Language.JSON.Lexer.html +++ b/contrib/docs/Language.JSON.Lexer.html @@ -61,4 +61,4 @@ -

Language.JSON.Lexer(source)

Reexports

importpublic Language.JSON.Tokens

Definitions

lexJSON : String->Maybe (List (WithBoundsJSONToken))
Totality: total
Visibility: export
\ No newline at end of file +

Language.JSON.Lexer(source)

Reexports

importpublic Language.JSON.Tokens

Definitions

lexJSON : String->Maybe (List (WithBoundsJSONToken))
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.Parser.html b/contrib/docs/Language.JSON.Parser.html index 4e503bf835..1cc9887397 100644 --- a/contrib/docs/Language.JSON.Parser.html +++ b/contrib/docs/Language.JSON.Parser.html @@ -61,4 +61,4 @@ -

Language.JSON.Parser(source)

Reexports

importpublic Language.JSON.Tokens

Definitions

parseJSON : List (WithBoundsJSONToken) ->MaybeJSON
Totality: total
Visibility: export
\ No newline at end of file +

Language.JSON.Parser(source)

Reexports

importpublic Language.JSON.Tokens

Definitions

parseJSON : List (WithBoundsJSONToken) ->MaybeJSON
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.String.Lexer.html b/contrib/docs/Language.JSON.String.Lexer.html index 22fe9edf65..ba31428a6e 100644 --- a/contrib/docs/Language.JSON.String.Lexer.html +++ b/contrib/docs/Language.JSON.String.Lexer.html @@ -61,4 +61,4 @@ -

Language.JSON.String.Lexer(source)

Definitions

quo : Lexer
Totality: total
Visibility: export
esc : Lexer->Lexer
Totality: total
Visibility: export
lexString : String->Maybe (List (WithBoundsJSONStringToken))
Totality: total
Visibility: export
\ No newline at end of file +

Language.JSON.String.Lexer(source)

Definitions

quo : Lexer
Totality: total
Visibility: export
esc : Lexer->Lexer
Totality: total
Visibility: export
lexString : String->Maybe (List (WithBoundsJSONStringToken))
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.String.Parser.html b/contrib/docs/Language.JSON.String.Parser.html index 00f0370f45..728c68ccb1 100644 --- a/contrib/docs/Language.JSON.String.Parser.html +++ b/contrib/docs/Language.JSON.String.Parser.html @@ -61,4 +61,4 @@ -

Language.JSON.String.Parser(source)

Definitions

parseString : List (WithBoundsJSONStringToken) ->MaybeString
Totality: total
Visibility: export
\ No newline at end of file +

Language.JSON.String.Parser(source)

Definitions

parseString : List (WithBoundsJSONStringToken) ->MaybeString
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.String.Tokens.html b/contrib/docs/Language.JSON.String.Tokens.html index 7e6d02f807..1dbe2258ec 100644 --- a/contrib/docs/Language.JSON.String.Tokens.html +++ b/contrib/docs/Language.JSON.String.Tokens.html @@ -61,4 +61,4 @@ -

Language.JSON.String.Tokens(source)

Definitions

dataJSONStringTokenKind : Type
Totality: total
Visibility: public export
Constructors:
JSTQuote : JSONStringTokenKind
JSTChar : JSONStringTokenKind
JSTSimpleEscape : JSONStringTokenKind
JSTUnicodeEscape : JSONStringTokenKind

Hints:
EqJSONStringTokenKind
TokenKindJSONStringTokenKind
JSONStringToken : Type
Totality: total
Visibility: public export
\ No newline at end of file +

Language.JSON.String.Tokens(source)

Definitions

dataJSONStringTokenKind : Type
Totality: total
Visibility: public export
Constructors:
JSTQuote : JSONStringTokenKind
JSTChar : JSONStringTokenKind
JSTSimpleEscape : JSONStringTokenKind
JSTUnicodeEscape : JSONStringTokenKind

Hints:
EqJSONStringTokenKind
TokenKindJSONStringTokenKind
JSONStringToken : Type
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.String.html b/contrib/docs/Language.JSON.String.html index 3c4acfd297..8fa87ce6a0 100644 --- a/contrib/docs/Language.JSON.String.html +++ b/contrib/docs/Language.JSON.String.html @@ -61,4 +61,4 @@ -

Language.JSON.String(source)

Definitions

permissiveStringLit : Lexer
Totality: total
Visibility: export
stringValue : String->MaybeString
Totality: total
Visibility: export
\ No newline at end of file +

Language.JSON.String(source)

Definitions

permissiveStringLit : Lexer
Totality: total
Visibility: export
stringValue : String->MaybeString
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.Tokens.html b/contrib/docs/Language.JSON.Tokens.html index 95ec841848..a18ab05725 100644 --- a/contrib/docs/Language.JSON.Tokens.html +++ b/contrib/docs/Language.JSON.Tokens.html @@ -61,4 +61,4 @@ -

Language.JSON.Tokens(source)

Definitions

strTrue : String
Totality: total
Visibility: public export
strFalse : String
Totality: total
Visibility: public export
dataBracket : Type
Totality: total
Visibility: public export
Constructors:
Open : Bracket
Close : Bracket

Hint: 
EqBracket
dataPunctuation : Type
Totality: total
Visibility: public export
Constructors:
Comma : Punctuation
Colon : Punctuation
Square : Bracket->Punctuation
Curly : Bracket->Punctuation

Hint: 
EqPunctuation
dataJSONTokenKind : Type
Totality: total
Visibility: public export
Constructors:
JTBoolean : JSONTokenKind
JTNumber : JSONTokenKind
JTString : JSONTokenKind
JTNull : JSONTokenKind
JTPunct : Punctuation->JSONTokenKind
JTIgnore : JSONTokenKind

Hints:
EqJSONTokenKind
TokenKindJSONTokenKind
JSONToken : Type
Totality: total
Visibility: public export
ignored : WithBoundsJSONToken->Bool
Totality: total
Visibility: export
\ No newline at end of file +

Language.JSON.Tokens(source)

Definitions

strTrue : String
Totality: total
Visibility: public export
strFalse : String
Totality: total
Visibility: public export
dataBracket : Type
Totality: total
Visibility: public export
Constructors:
Open : Bracket
Close : Bracket

Hint: 
EqBracket
dataPunctuation : Type
Totality: total
Visibility: public export
Constructors:
Comma : Punctuation
Colon : Punctuation
Square : Bracket->Punctuation
Curly : Bracket->Punctuation

Hint: 
EqPunctuation
dataJSONTokenKind : Type
Totality: total
Visibility: public export
Constructors:
JTBoolean : JSONTokenKind
JTNumber : JSONTokenKind
JTString : JSONTokenKind
JTNull : JSONTokenKind
JTPunct : Punctuation->JSONTokenKind
JTIgnore : JSONTokenKind

Hints:
EqJSONTokenKind
TokenKindJSONTokenKind
JSONToken : Type
Totality: total
Visibility: public export
ignored : WithBoundsJSONToken->Bool
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Language.JSON.html b/contrib/docs/Language.JSON.html index 43d2d6d694..3c15a5c116 100644 --- a/contrib/docs/Language.JSON.html +++ b/contrib/docs/Language.JSON.html @@ -62,4 +62,4 @@

Language.JSON(source)

The JSON language, as described at https://json.org/
-

Reexports

importpublic Language.JSON.Data
importpublic Text.Bounded

Definitions

parse : String->MaybeJSON
  Parse a JSON string.

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Language.JSON.Data
importpublic Text.Bounded

Definitions

parse : String->MaybeJSON
  Parse a JSON string.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Syntax.WithProof.html b/contrib/docs/Syntax.WithProof.html index 9c9f24dbe7..5e0e826c91 100644 --- a/contrib/docs/Syntax.WithProof.html +++ b/contrib/docs/Syntax.WithProof.html @@ -61,4 +61,4 @@ -

Syntax.WithProof(source)

Definitions

(@@) : (t : a) -> (u : a**t=u)
  Until Idris2 supports the 'with (...) proof p' construct, here's a
poor-man's replacement.

Visibility: public export
Fixity Declaration: prefix operator, level 10
\ No newline at end of file +

Syntax.WithProof(source)

Definitions

(@@) : (t : a) -> (u : a**t=u)
  Until Idris2 supports the 'with (...) proof p' construct, here's a
poor-man's replacement.

Visibility: public export
Fixity Declaration: prefix operator, level 10
\ No newline at end of file diff --git a/contrib/docs/System.Console.GetOpt.html b/contrib/docs/System.Console.GetOpt.html index c7ab99ce34..6b1b9249db 100644 --- a/contrib/docs/System.Console.GetOpt.html +++ b/contrib/docs/System.Console.GetOpt.html @@ -65,4 +65,4 @@ in a standalone program. It is essentially an Idris port of the GNU getopt library. (Actually, it is an Idris port of the [corresponding Haskell module] (http://hackage.haskell.org/package/base-4.14.1.0/docs/System-Console-GetOpt.html)). -

Definitions

dataArgOrder : Type->Type
  What to do with options following non-options

Totality: total
Visibility: public export
Constructors:
RequireOrder : ArgOrdera
  no option processing after first non-option
Permute : ArgOrdera
  freely intersperse options and non-options
ReturnInOrder : (String->a) ->ArgOrdera
  wrap non-options into options
ReturnInOrder' : (String->EitherStringa) ->ArgOrdera
  wrap non-options into options (or fail, if can't)

Hint: 
FunctorArgOrder
dataArgDescr : Type->Type
  Describes whether an option takes an argument or not, and if so
how the argument is injected into a value of type `a`.

Totality: total
Visibility: public export
Constructors:
NoArg : a->ArgDescra
  no argument expected
ReqArg : (String->a) ->String->ArgDescra
  option requires argument
ReqArg' : (String->EitherStringa) ->String->ArgDescra
  option requires argument and may fail during parsing
OptArg : (MaybeString->a) ->String->ArgDescra
  optional argument
OptArg' : (MaybeString->EitherStringa) ->String->ArgDescra
  optional argument and may fail during parsing

Hint: 
FunctorArgDescr
recordOptDescr : Type->Type
  Each `OptDescr` describes a single option.

The arguments to 'Option' are:

* list of short option characters
* list of long option strings (without \"--\")
* argument descriptor
* explanation of option for user

Totality: total
Visibility: public export
Constructor: 
MkOpt : ListChar->ListString->ArgDescra->String->OptDescra

Projections:
.argDescr : OptDescra->ArgDescra
  argument descriptor
.description : OptDescra->String
  explanation of option for user
.longNames : OptDescra->ListString
  list of long option strings (without "--")
.shortNames : OptDescra->ListChar
  list of short option characters

Hint: 
FunctorOptDescr
.shortNames : OptDescra->ListChar
  list of short option characters

Totality: total
Visibility: public export
shortNames : OptDescra->ListChar
  list of short option characters

Totality: total
Visibility: public export
.longNames : OptDescra->ListString
  list of long option strings (without "--")

Totality: total
Visibility: public export
longNames : OptDescra->ListString
  list of long option strings (without "--")

Totality: total
Visibility: public export
.argDescr : OptDescra->ArgDescra
  argument descriptor

Totality: total
Visibility: public export
argDescr : OptDescra->ArgDescra
  argument descriptor

Totality: total
Visibility: public export
.description : OptDescra->String
  explanation of option for user

Totality: total
Visibility: public export
description : OptDescra->String
  explanation of option for user

Totality: total
Visibility: public export
usageInfo : String->List (OptDescra) ->String
  Return a string describing the usage of a command, derived from
the header (first argument) and the options described by the
second argument.

Totality: total
Visibility: public export
recordResult : Type->Type
  Result of parsing the command line arguments accoring to a list
of `OptDescr`s. (see also function `getOpt`).

Totality: total
Visibility: public export
Constructor: 
MkResult : Lista->ListString->ListString->ListString->Resulta

Projections:
.errors : Resulta->ListString
  Errors during option parsing. These occur, for instance, when
an option requires an additional argument but none was given.
.nonOptions : Resulta->ListString
  List of non-options (other command line arguments)
.options : Resulta->Lista
  List of successfully parsed options
.unrecognized : Resulta->ListString
  List of unrecognized options.

Hint: 
FunctorResult
.options : Resulta->Lista
  List of successfully parsed options

Totality: total
Visibility: public export
options : Resulta->Lista
  List of successfully parsed options

Totality: total
Visibility: public export
.nonOptions : Resulta->ListString
  List of non-options (other command line arguments)

Totality: total
Visibility: public export
nonOptions : Resulta->ListString
  List of non-options (other command line arguments)

Totality: total
Visibility: public export
.unrecognized : Resulta->ListString
  List of unrecognized options.

Totality: total
Visibility: public export
unrecognized : Resulta->ListString
  List of unrecognized options.

Totality: total
Visibility: public export
.errors : Resulta->ListString
  Errors during option parsing. These occur, for instance, when
an option requires an additional argument but none was given.

Totality: total
Visibility: public export
errors : Resulta->ListString
  Errors during option parsing. These occur, for instance, when
an option requires an additional argument but none was given.

Totality: total
Visibility: public export
emptyRes : Resulta
Totality: total
Visibility: public export
getOpt : ArgOrdera->List (OptDescra) ->ListString->Resulta
  Process the command-line, and return the list of values that matched
(and those that didn't). The arguments are:

* The order requirements (see `ArgOrder`)

* The option descriptions (see `OptDescr`)

* The actual command line arguments (presumably got from
`System.getArgs`).

Totality: total
Visibility: export
getOpt' : Applicativef=>ArgOrder (fa) ->List (OptDescr (fa)) ->ListString->f (Resulta)
  Parse the command-line like `getOpt`, but allow each option parser to do
additional work in some `Applicative`.

Place, notice that options parsing is done first, i.e. if you use
applicatives that can have a failure semantics, you will lose all errors
reported inside the `Result` type in case of any option parsing fails.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataArgOrder : Type->Type
  What to do with options following non-options

Totality: total
Visibility: public export
Constructors:
RequireOrder : ArgOrdera
  no option processing after first non-option
Permute : ArgOrdera
  freely intersperse options and non-options
ReturnInOrder : (String->a) ->ArgOrdera
  wrap non-options into options
ReturnInOrder' : (String->EitherStringa) ->ArgOrdera
  wrap non-options into options (or fail, if can't)

Hint: 
FunctorArgOrder
dataArgDescr : Type->Type
  Describes whether an option takes an argument or not, and if so
how the argument is injected into a value of type `a`.

Totality: total
Visibility: public export
Constructors:
NoArg : a->ArgDescra
  no argument expected
ReqArg : (String->a) ->String->ArgDescra
  option requires argument
ReqArg' : (String->EitherStringa) ->String->ArgDescra
  option requires argument and may fail during parsing
OptArg : (MaybeString->a) ->String->ArgDescra
  optional argument
OptArg' : (MaybeString->EitherStringa) ->String->ArgDescra
  optional argument and may fail during parsing

Hint: 
FunctorArgDescr
recordOptDescr : Type->Type
  Each `OptDescr` describes a single option.

The arguments to 'Option' are:

* list of short option characters
* list of long option strings (without \"--\")
* argument descriptor
* explanation of option for user

Totality: total
Visibility: public export
Constructor: 
MkOpt : ListChar->ListString->ArgDescra->String->OptDescra

Projections:
.argDescr : OptDescra->ArgDescra
  argument descriptor
.description : OptDescra->String
  explanation of option for user
.longNames : OptDescra->ListString
  list of long option strings (without "--")
.shortNames : OptDescra->ListChar
  list of short option characters

Hint: 
FunctorOptDescr
.shortNames : OptDescra->ListChar
  list of short option characters

Totality: total
Visibility: public export
shortNames : OptDescra->ListChar
  list of short option characters

Totality: total
Visibility: public export
.longNames : OptDescra->ListString
  list of long option strings (without "--")

Totality: total
Visibility: public export
longNames : OptDescra->ListString
  list of long option strings (without "--")

Totality: total
Visibility: public export
.argDescr : OptDescra->ArgDescra
  argument descriptor

Totality: total
Visibility: public export
argDescr : OptDescra->ArgDescra
  argument descriptor

Totality: total
Visibility: public export
.description : OptDescra->String
  explanation of option for user

Totality: total
Visibility: public export
description : OptDescra->String
  explanation of option for user

Totality: total
Visibility: public export
usageInfo : String->List (OptDescra) ->String
  Return a string describing the usage of a command, derived from
the header (first argument) and the options described by the
second argument.

Totality: total
Visibility: public export
recordResult : Type->Type
  Result of parsing the command line arguments accoring to a list
of `OptDescr`s. (see also function `getOpt`).

Totality: total
Visibility: public export
Constructor: 
MkResult : Lista->ListString->ListString->ListString->Resulta

Projections:
.errors : Resulta->ListString
  Errors during option parsing. These occur, for instance, when
an option requires an additional argument but none was given.
.nonOptions : Resulta->ListString
  List of non-options (other command line arguments)
.options : Resulta->Lista
  List of successfully parsed options
.unrecognized : Resulta->ListString
  List of unrecognized options.

Hint: 
FunctorResult
.options : Resulta->Lista
  List of successfully parsed options

Totality: total
Visibility: public export
options : Resulta->Lista
  List of successfully parsed options

Totality: total
Visibility: public export
.nonOptions : Resulta->ListString
  List of non-options (other command line arguments)

Totality: total
Visibility: public export
nonOptions : Resulta->ListString
  List of non-options (other command line arguments)

Totality: total
Visibility: public export
.unrecognized : Resulta->ListString
  List of unrecognized options.

Totality: total
Visibility: public export
unrecognized : Resulta->ListString
  List of unrecognized options.

Totality: total
Visibility: public export
.errors : Resulta->ListString
  Errors during option parsing. These occur, for instance, when
an option requires an additional argument but none was given.

Totality: total
Visibility: public export
errors : Resulta->ListString
  Errors during option parsing. These occur, for instance, when
an option requires an additional argument but none was given.

Totality: total
Visibility: public export
emptyRes : Resulta
Totality: total
Visibility: public export
getOpt : ArgOrdera->List (OptDescra) ->ListString->Resulta
  Process the command-line, and return the list of values that matched
(and those that didn't). The arguments are:

* The order requirements (see `ArgOrder`)

* The option descriptions (see `OptDescr`)

* The actual command line arguments (presumably got from
`System.getArgs`).

Totality: total
Visibility: export
getOpt' : Applicativef=>ArgOrder (fa) ->List (OptDescr (fa)) ->ListString->f (Resulta)
  Parse the command-line like `getOpt`, but allow each option parser to do
additional work in some `Applicative`.

Place, notice that options parsing is done first, i.e. if you use
applicatives that can have a failure semantics, you will lose all errors
reported inside the `Result` type in case of any option parsing fails.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/System.Directory.Tree.html b/contrib/docs/System.Directory.Tree.html index 20339757ea..fc90bd9802 100644 --- a/contrib/docs/System.Directory.Tree.html +++ b/contrib/docs/System.Directory.Tree.html @@ -61,4 +61,4 @@ -

System.Directory.Tree(source)

Definitions

dataFileName : Path->Type
  A `Filename root` is anchored in `root`.
We use a `data` type so that Idris can easily infer `root` when passing
a `FileName` around. We do not use a `record` because we do not want to
allow users to manufacture their own `FileName`.
To get an absolute path, we need to append said filename to the root.

Totality: total
Visibility: export
Constructor: 
MkFileName : String->FileNameroot
fileName : FileNameroot->String
  Project the string out of a `FileName`.

Totality: total
Visibility: export
toRelative : FileNameroot->FileName (parse"")
Totality: total
Visibility: export
toFilePath : FileNameroot->Path
  Convert a filename anchored in `root` to a filepath by appending the name
to the root path.

Totality: total
Visibility: export
directoryExists : FileNameroot->IOBool
Totality: total
Visibility: export
SubTree : Path->Type
  A `Tree root` is the representation of a directory tree anchored in `root`.
Each directory contains a list of files and a list of subtrees waiting to be
explored. The fact these subtrees are IO-bound means the subtrees will be
lazily constructed on demand.

Totality: total
Visibility: public export
recordTree : Path->Type
Totality: total
Visibility: public export
Constructor: 
MkTree : List (FileNameroot) ->List (SubTreeroot) ->Treeroot

Projections:
.files : Treeroot->List (FileNameroot)
.subTrees : Treeroot->List (SubTreeroot)
.files : Treeroot->List (FileNameroot)
Totality: total
Visibility: public export
files : Treeroot->List (FileNameroot)
Totality: total
Visibility: public export
.subTrees : Treeroot->List (SubTreeroot)
Totality: total
Visibility: public export
subTrees : Treeroot->List (SubTreeroot)
Totality: total
Visibility: public export
emptyTree : Treeroot
  An empty tree contains no files and has no sub-directories.

Totality: total
Visibility: export
toRelative : Treeroot->Tree (parse"")
  No run time information is changed,
so we assert the identity.

Totality: total
Visibility: export
filter : (FileNameroot->Bool) -> (FileNameroot->Bool) ->Treeroot->Treeroot
  Filter out files and directories that do not satisfy a given predicate.

Totality: total
Visibility: export
sortBy : (FileNameroot->FileNameroot->Ordering) -> (FileNameroot->FileNameroot->Ordering) ->Treeroot->Treeroot
  Sort the lists of files and directories using the given comparison functions

Totality: total
Visibility: export
sort : Treeroot->Treeroot
  Sort the list of files and directories alphabetically

Totality: total
Visibility: export
explore : (root : Path) ->IO (Treeroot)
  Exploring a filesystem from a given root to produce a tree

Totality: total
Visibility: export
depthFirst : (FileNameroot-> Lazy (IOa) ->IOa) ->Treeroot->IOa->IOa
  Depth first traversal of all of the files in a tree

Visibility: export
findFile : String->Treeroot->IO (MaybePath)
  Finding a file in a tree (depth first search)

Visibility: export
print : Treeroot->IO ()
  Display a tree by printing it procedurally. Note that because directory
trees contain suspended computations corresponding to their subtrees this
has to be an `IO` function. We make it return Unit rather than a String
because we do not want to assume that the tree is finite.

Visibility: export
copyDir : HasIOio=>Path->Path->io (EitherFileError ())
  Copy a directory and its contents recursively
Returns a FileError if the target directory already exists, or if any of
the source files fail to be copied.

Visibility: export
\ No newline at end of file +

System.Directory.Tree(source)

Definitions

dataFileName : Path->Type
  A `Filename root` is anchored in `root`.
We use a `data` type so that Idris can easily infer `root` when passing
a `FileName` around. We do not use a `record` because we do not want to
allow users to manufacture their own `FileName`.
To get an absolute path, we need to append said filename to the root.

Totality: total
Visibility: export
Constructor: 
MkFileName : String->FileNameroot
fileName : FileNameroot->String
  Project the string out of a `FileName`.

Totality: total
Visibility: export
toRelative : FileNameroot->FileName (parse"")
Totality: total
Visibility: export
toFilePath : FileNameroot->Path
  Convert a filename anchored in `root` to a filepath by appending the name
to the root path.

Totality: total
Visibility: export
directoryExists : FileNameroot->IOBool
Totality: total
Visibility: export
SubTree : Path->Type
  A `Tree root` is the representation of a directory tree anchored in `root`.
Each directory contains a list of files and a list of subtrees waiting to be
explored. The fact these subtrees are IO-bound means the subtrees will be
lazily constructed on demand.

Totality: total
Visibility: public export
recordTree : Path->Type
Totality: total
Visibility: public export
Constructor: 
MkTree : List (FileNameroot) ->List (SubTreeroot) ->Treeroot

Projections:
.files : Treeroot->List (FileNameroot)
.subTrees : Treeroot->List (SubTreeroot)
.files : Treeroot->List (FileNameroot)
Totality: total
Visibility: public export
files : Treeroot->List (FileNameroot)
Totality: total
Visibility: public export
.subTrees : Treeroot->List (SubTreeroot)
Totality: total
Visibility: public export
subTrees : Treeroot->List (SubTreeroot)
Totality: total
Visibility: public export
emptyTree : Treeroot
  An empty tree contains no files and has no sub-directories.

Totality: total
Visibility: export
toRelative : Treeroot->Tree (parse"")
  No run time information is changed,
so we assert the identity.

Totality: total
Visibility: export
filter : (FileNameroot->Bool) -> (FileNameroot->Bool) ->Treeroot->Treeroot
  Filter out files and directories that do not satisfy a given predicate.

Totality: total
Visibility: export
sortBy : (FileNameroot->FileNameroot->Ordering) -> (FileNameroot->FileNameroot->Ordering) ->Treeroot->Treeroot
  Sort the lists of files and directories using the given comparison functions

Totality: total
Visibility: export
sort : Treeroot->Treeroot
  Sort the list of files and directories alphabetically

Totality: total
Visibility: export
explore : (root : Path) ->IO (Treeroot)
  Exploring a filesystem from a given root to produce a tree

Totality: total
Visibility: export
depthFirst : (FileNameroot-> Lazy (IOa) ->IOa) ->Treeroot->IOa->IOa
  Depth first traversal of all of the files in a tree

Visibility: export
findFile : String->Treeroot->IO (MaybePath)
  Finding a file in a tree (depth first search)

Visibility: export
print : Treeroot->IO ()
  Display a tree by printing it procedurally. Note that because directory
trees contain suspended computations corresponding to their subtrees this
has to be an `IO` function. We make it return Unit rather than a String
because we do not want to assume that the tree is finite.

Visibility: export
copyDir : HasIOio=>Path->Path->io (EitherFileError ())
  Copy a directory and its contents recursively
Returns a FileError if the target directory already exists, or if any of
the source files fail to be copied.

Visibility: export
\ No newline at end of file diff --git a/contrib/docs/System.Future.html b/contrib/docs/System.Future.html index 1bd0016606..b5dab6d144 100644 --- a/contrib/docs/System.Future.html +++ b/contrib/docs/System.Future.html @@ -61,4 +61,4 @@ -

System.Future(source)

Definitions

dataFuture : Type->Type
Totality: total
Visibility: export
Hints:
ApplicativeFuture
FunctorFuture
MonadFuture
fork : Lazy a->Futurea
Totality: total
Visibility: export
await : Futurea->a
Totality: total
Visibility: export
performFutureIO : HasIOio=>Future (IOa) ->io (Futurea)
Totality: total
Visibility: export
forkIO : HasIOio=>IOa->io (Futurea)
Totality: total
Visibility: export
\ No newline at end of file +

System.Future(source)

Definitions

dataFuture : Type->Type
Totality: total
Visibility: export
Hints:
ApplicativeFuture
FunctorFuture
MonadFuture
fork : Lazy a->Futurea
Totality: total
Visibility: export
await : Futurea->a
Totality: total
Visibility: export
performFutureIO : HasIOio=>Future (IOa) ->io (Futurea)
Totality: total
Visibility: export
forkIO : HasIOio=>IOa->io (Futurea)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/System.Path.html b/contrib/docs/System.Path.html index 644aa076e0..07d84a7582 100644 --- a/contrib/docs/System.Path.html +++ b/contrib/docs/System.Path.html @@ -61,4 +61,4 @@ -

System.Path(source)

Definitions

dirSeparator : Char
  The character that separates directories in the path.

Visibility: export
pathSeparator : Char
  The character that separates multiple paths.

Visibility: export
dataVolume : Type
  Windows path prefix.

Totality: total
Visibility: public export
Constructors:
UNC : String->String->Volume
  Windows Uniform Naming Convention, consisting of server name and share
directory.

Example: `\\localhost\share`
Disk : Char->Volume
  The drive.

Example: `C:`

Hints:
EqVolume
ShowVolume
dataBody : Type
  A single body in path.

Totality: total
Visibility: public export
Constructors:
CurDir : Body
  Represents ".".
ParentDir : Body
  Represents "..".
Normal : String->Body
  Directory or file.

Hints:
EqBody
ShowBody
recordPath : Type
  A parsed cross-platform file system path.

Use the function `parse` to constructs a Path from String, and use the
function `show` to convert in reverse.

Trailing separator is only used for display and is ignored when comparing
paths.

Totality: total
Visibility: public export
Constructor: 
MkPath : MaybeVolume->Bool->ListBody->Bool->Path

Projections:
.body : Path->ListBody
  Path bodies.
.hasRoot : Path->Bool
  Whether the path contains root.
.hasTrailSep : Path->Bool
  Whether the path terminates with a separator.
.volume : Path->MaybeVolume
  Windows path prefix (only for Windows).

Hints:
EqPath
ShowPath
.volume : Path->MaybeVolume
  Windows path prefix (only for Windows).

Visibility: public export
volume : Path->MaybeVolume
  Windows path prefix (only for Windows).

Visibility: public export
.hasRoot : Path->Bool
  Whether the path contains root.

Visibility: public export
hasRoot : Path->Bool
  Whether the path contains root.

Visibility: public export
.body : Path->ListBody
  Path bodies.

Visibility: public export
body : Path->ListBody
  Path bodies.

Visibility: public export
.hasTrailSep : Path->Bool
  Whether the path terminates with a separator.

Visibility: public export
hasTrailSep : Path->Bool
  Whether the path terminates with a separator.

Visibility: public export
emptyPath : Path
  An empty path, which represents "".

Visibility: public export
tryParse : String->MaybePath
Visibility: export
parse : String->Path
  Parses a String into Path.

The string is parsed as much as possible from left to right, and the invalid
parts on the right is ignored.

Some kind of invalid paths are accepted. The relax rules:

- Both slash('/') and backslash('\\') are parsed as valid directory separator,
regardless of the platform;
- Any characters in the body in allowed, e.g., glob like "/root/*";
- Verbatim prefix(`\\?\`) that disables the forward slash is ignored (for
Windows only).
- Repeated separators are ignored, therefore, "a/b" and "a//b" both have "a"
and "b" as bodies.
- "." in the body are removed, unless they are at the beginning of the path.
For example, "a/./b", "a/b/", "a/b/." and "a/b" will have "a" and "b" as
bodies, and "./a/b" will starts with `CurDir`.

```idris example
parse "C:\\Windows/System32"
parse "/usr/local/etc/*"
```

Visibility: export
splitFileName : String-> (String, String)
Visibility: export
splitExtensions : String-> (String, ListString)
  Split a file name into a basename and a list of extensions.
A leading dot is considered to be part of the basename.
```
splitExtensions "Path.idr" = ("Path", ["idr"])
splitExtensions "file.latex.lidr" = ("file", ["latex", "lidr"])
splitExtensions ".hidden.latex.lidr" = (".hidden", ["latex", "lidr"])
```

Visibility: export
isAbsolute : String->Bool
  Returns true if the path is absolute.

- On Unix, a path is absolute if it starts with the root, so `isAbsolute` and
`hasRoot` are equivalent.

- On Windows, a path is absolute if it starts with a disk and has root or
starts with UNC. For example, `c:\\windows` is absolute, while `c:temp`
and `\temp` are not.

Visibility: export
isRelative : String->Bool
  Returns true if the path is relative.

Visibility: export
(/>) : Path->String->Path
  Appends the right path to the left path.

If the path on the right is absolute, it replaces the left path.

On Windows:

- If the right path has a root but no volume (e.g., `\windows`), it replaces
everything except for the volume (if any) of left.
- If the right path has a volume but no root, it replaces left.

```idris example
parse "/usr" /> "local/etc" == "/usr/local/etc"
```

Visibility: export
Fixity Declaration: infixl operator, level 5
(</>) : String->String->String
  Appends the right path to the left path.

If the path on the right is absolute, it replaces the left path.

On Windows:

- If the right path has a root but no volume (e.g., `\windows`), it replaces
everything except for the volume (if any) of left.
- If the right path has a volume but no root, it replaces left.

```idris example
"/usr" </> "local/etc" == "/usr/local/etc"
```

Visibility: export
Fixity Declaration: infixl operator, level 5
joinPath : ListString->String
  Joins path components into one.

```idris example
joinPath ["/usr", "local/etc"] == "/usr/local/etc"
```

Visibility: export
splitPath : String->ListString
  Splits path into components.

```idris example
splitPath "/usr/local/etc" == ["/", "usr", "local", "etc"]
splitPath "tmp/Foo.idr" == ["tmp", "Foo.idr"]
```

Visibility: export
splitParent : String->Maybe (String, String)
  Splits the path into parent and child.

```idris example
splitParent "/usr/local/etc" == Just ("/usr/local", "etc")
```

Visibility: export
parent : String->MaybeString
  Returns the path without its final component, if there is one.

Returns Nothing if the path terminates by a root or volume.

Visibility: export
parents : String->ListString
  Returns the list of all parents of the path, longest first, self included.

```idris example
parents "/etc/kernel" == ["/etc/kernel", "/etc", "/"]
```

Visibility: export
isBaseOf : String->String->Bool
  Determines whether the base is one of the parents of target.

Trailing separator is ignored.

```idris example
"/etc" `isBaseOf` "/etc/kernel"
```

Visibility: export
dropBase : String->String->MaybeString
  Returns a path that, when appended to base, yields target.

Returns Nothing if the base is not a prefix of the target.

Visibility: export
fileName : String->MaybeString
  Returns the last body of the path.

If the last body is a file, this is the file name;
if it's a directory, this is the directory name;
if it's ".", it recurses on the previous body;
if it's "..", returns Nothing.

Visibility: export
fileStem : String->MaybeString
  Extracts the file name in the path without extension.

The stem is:

- Nothing, if there is no file name;
- The entire file name if there is no embedded ".";
- The entire file name if the file name begins with a "." and has no other ".";
- Otherwise, the portion of the file name before the last ".".

Visibility: export
extension : String->MaybeString
  Extracts the extension of the file name in the path.

The extension is:

- Nothing, if there is no file name;
- Nothing, if there is no embedded ".";
- Nothing, if the file name begins with a "." and has no other ".";
- Otherwise, the portion of the file name after the last ".".

Visibility: export
extensions : String->Maybe (ListString)
  Extracts the list of extensions of the file name in the path.
The returned value is:

- Nothing, if there is no file name;
- Just [], if there is no embedded ".";
- Just [], if the filename begins with a "." and has no other ".";
- Just es, the portions between the "."s (excluding a potential leading one).

Visibility: export
setFileName : String->String->String
  Updates the file name in the path.

If there is no file name, it appends the name to the path;
otherwise, it appends the name to the parent of the path.

Visibility: export
(<.>) : String->String->String
  Appends a extension to the path.

If there is no file name, the path will not change;
if the path has no extension, the extension will be appended;
if the given extension is empty, the extension of the path will be dropped;
otherwise, the extension will be replaced.

```idris example
"/tmp/Foo" <.> "idr" == "/tmp/Foo.idr"
```

Visibility: export
Fixity Declarations:
infixl operator, level 7
infixr operator, level 7
dropExtension : String->String
  Drops the extension of the path.

Visibility: export
\ No newline at end of file +

System.Path(source)

Definitions

dirSeparator : Char
  The character that separates directories in the path.

Visibility: export
pathSeparator : Char
  The character that separates multiple paths.

Visibility: export
dataVolume : Type
  Windows path prefix.

Totality: total
Visibility: public export
Constructors:
UNC : String->String->Volume
  Windows Uniform Naming Convention, consisting of server name and share
directory.

Example: `\\localhost\share`
Disk : Char->Volume
  The drive.

Example: `C:`

Hints:
EqVolume
ShowVolume
dataBody : Type
  A single body in path.

Totality: total
Visibility: public export
Constructors:
CurDir : Body
  Represents ".".
ParentDir : Body
  Represents "..".
Normal : String->Body
  Directory or file.

Hints:
EqBody
ShowBody
recordPath : Type
  A parsed cross-platform file system path.

Use the function `parse` to constructs a Path from String, and use the
function `show` to convert in reverse.

Trailing separator is only used for display and is ignored when comparing
paths.

Totality: total
Visibility: public export
Constructor: 
MkPath : MaybeVolume->Bool->ListBody->Bool->Path

Projections:
.body : Path->ListBody
  Path bodies.
.hasRoot : Path->Bool
  Whether the path contains root.
.hasTrailSep : Path->Bool
  Whether the path terminates with a separator.
.volume : Path->MaybeVolume
  Windows path prefix (only for Windows).

Hints:
EqPath
ShowPath
.volume : Path->MaybeVolume
  Windows path prefix (only for Windows).

Visibility: public export
volume : Path->MaybeVolume
  Windows path prefix (only for Windows).

Visibility: public export
.hasRoot : Path->Bool
  Whether the path contains root.

Visibility: public export
hasRoot : Path->Bool
  Whether the path contains root.

Visibility: public export
.body : Path->ListBody
  Path bodies.

Visibility: public export
body : Path->ListBody
  Path bodies.

Visibility: public export
.hasTrailSep : Path->Bool
  Whether the path terminates with a separator.

Visibility: public export
hasTrailSep : Path->Bool
  Whether the path terminates with a separator.

Visibility: public export
emptyPath : Path
  An empty path, which represents "".

Visibility: public export
tryParse : String->MaybePath
Visibility: export
parse : String->Path
  Parses a String into Path.

The string is parsed as much as possible from left to right, and the invalid
parts on the right is ignored.

Some kind of invalid paths are accepted. The relax rules:

- Both slash('/') and backslash('\\') are parsed as valid directory separator,
regardless of the platform;
- Any characters in the body in allowed, e.g., glob like "/root/*";
- Verbatim prefix(`\\?\`) that disables the forward slash is ignored (for
Windows only).
- Repeated separators are ignored, therefore, "a/b" and "a//b" both have "a"
and "b" as bodies.
- "." in the body are removed, unless they are at the beginning of the path.
For example, "a/./b", "a/b/", "a/b/." and "a/b" will have "a" and "b" as
bodies, and "./a/b" will starts with `CurDir`.

```idris example
parse "C:\\Windows/System32"
parse "/usr/local/etc/*"
```

Visibility: export
splitFileName : String-> (String, String)
Visibility: export
splitExtensions : String-> (String, ListString)
  Split a file name into a basename and a list of extensions.
A leading dot is considered to be part of the basename.
```
splitExtensions "Path.idr" = ("Path", ["idr"])
splitExtensions "file.latex.lidr" = ("file", ["latex", "lidr"])
splitExtensions ".hidden.latex.lidr" = (".hidden", ["latex", "lidr"])
```

Visibility: export
isAbsolute : String->Bool
  Returns true if the path is absolute.

- On Unix, a path is absolute if it starts with the root, so `isAbsolute` and
`hasRoot` are equivalent.

- On Windows, a path is absolute if it starts with a disk and has root or
starts with UNC. For example, `c:\\windows` is absolute, while `c:temp`
and `\temp` are not.

Visibility: export
isRelative : String->Bool
  Returns true if the path is relative.

Visibility: export
(/>) : Path->String->Path
  Appends the right path to the left path.

If the path on the right is absolute, it replaces the left path.

On Windows:

- If the right path has a root but no volume (e.g., `\windows`), it replaces
everything except for the volume (if any) of left.
- If the right path has a volume but no root, it replaces left.

```idris example
parse "/usr" /> "local/etc" == "/usr/local/etc"
```

Visibility: export
Fixity Declaration: infixl operator, level 5
(</>) : String->String->String
  Appends the right path to the left path.

If the path on the right is absolute, it replaces the left path.

On Windows:

- If the right path has a root but no volume (e.g., `\windows`), it replaces
everything except for the volume (if any) of left.
- If the right path has a volume but no root, it replaces left.

```idris example
"/usr" </> "local/etc" == "/usr/local/etc"
```

Visibility: export
Fixity Declaration: infixl operator, level 5
joinPath : ListString->String
  Joins path components into one.

```idris example
joinPath ["/usr", "local/etc"] == "/usr/local/etc"
```

Visibility: export
splitPath : String->ListString
  Splits path into components.

```idris example
splitPath "/usr/local/etc" == ["/", "usr", "local", "etc"]
splitPath "tmp/Foo.idr" == ["tmp", "Foo.idr"]
```

Visibility: export
splitParent : String->Maybe (String, String)
  Splits the path into parent and child.

```idris example
splitParent "/usr/local/etc" == Just ("/usr/local", "etc")
```

Visibility: export
parent : String->MaybeString
  Returns the path without its final component, if there is one.

Returns Nothing if the path terminates by a root or volume.

Visibility: export
parents : String->ListString
  Returns the list of all parents of the path, longest first, self included.

```idris example
parents "/etc/kernel" == ["/etc/kernel", "/etc", "/"]
```

Visibility: export
isBaseOf : String->String->Bool
  Determines whether the base is one of the parents of target.

Trailing separator is ignored.

```idris example
"/etc" `isBaseOf` "/etc/kernel"
```

Visibility: export
dropBase : String->String->MaybeString
  Returns a path that, when appended to base, yields target.

Returns Nothing if the base is not a prefix of the target.

Visibility: export
fileName : String->MaybeString
  Returns the last body of the path.

If the last body is a file, this is the file name;
if it's a directory, this is the directory name;
if it's ".", it recurses on the previous body;
if it's "..", returns Nothing.

Visibility: export
fileStem : String->MaybeString
  Extracts the file name in the path without extension.

The stem is:

- Nothing, if there is no file name;
- The entire file name if there is no embedded ".";
- The entire file name if the file name begins with a "." and has no other ".";
- Otherwise, the portion of the file name before the last ".".

Visibility: export
extension : String->MaybeString
  Extracts the extension of the file name in the path.

The extension is:

- Nothing, if there is no file name;
- Nothing, if there is no embedded ".";
- Nothing, if the file name begins with a "." and has no other ".";
- Otherwise, the portion of the file name after the last ".".

Visibility: export
extensions : String->Maybe (ListString)
  Extracts the list of extensions of the file name in the path.
The returned value is:

- Nothing, if there is no file name;
- Just [], if there is no embedded ".";
- Just [], if the filename begins with a "." and has no other ".";
- Just es, the portions between the "."s (excluding a potential leading one).

Visibility: export
setFileName : String->String->String
  Updates the file name in the path.

If there is no file name, it appends the name to the path;
otherwise, it appends the name to the parent of the path.

Visibility: export
(<.>) : String->String->String
  Appends a extension to the path.

If there is no file name, the path will not change;
if the path has no extension, the extension will be appended;
if the given extension is empty, the extension of the path will be dropped;
otherwise, the extension will be replaced.

```idris example
"/tmp/Foo" <.> "idr" == "/tmp/Foo.idr"
```

Visibility: export
Fixity Declarations:
infixl operator, level 7
infixr operator, level 7
dropExtension : String->String
  Drops the extension of the path.

Visibility: export
\ No newline at end of file diff --git a/contrib/docs/System.Random.html b/contrib/docs/System.Random.html index cb7401ef5a..9db64de8f6 100644 --- a/contrib/docs/System.Random.html +++ b/contrib/docs/System.Random.html @@ -61,4 +61,4 @@ -

System.Random(source)

Definitions

interfaceRandom : Type->Type
Parameters: a
Methods:
randomIO : HasIOio=>ioa
randomRIO : HasIOio=> (a, a) ->ioa
  Takes a range (lo, hi), and returns a random value uniformly
distributed in the closed interval [lo, hi]. It is unspecified what
happens if lo > hi.

Implementations:
RandomInt32
RandomDouble
randomIO : Randoma=>HasIOio=>ioa
Visibility: public export
randomRIO : Randoma=>HasIOio=> (a, a) ->ioa
  Takes a range (lo, hi), and returns a random value uniformly
distributed in the closed interval [lo, hi]. It is unspecified what
happens if lo > hi.

Visibility: public export
srand : Bits64->IO ()
  Sets the random seed

Visibility: export
rndFin : HasIOio=> (n : Nat) ->io (Fin (Sn))
  Generate a random number in Fin (S `k`)

Note that rndFin k takes values 0, 1, ..., k.

Visibility: public export
rndSelect' : HasIOio=>Vect (Sk) a->ioa
  Select a random element from a vector

Visibility: public export
rndSelect : HasIOio=> (elems : Lista) -> {auto0_ : NonEmptyelems} ->ioa
  Select a random element from a non-empty list

Visibility: public export
\ No newline at end of file +

System.Random(source)

Definitions

interfaceRandom : Type->Type
Parameters: a
Methods:
randomIO : HasIOio=>ioa
randomRIO : HasIOio=> (a, a) ->ioa
  Takes a range (lo, hi), and returns a random value uniformly
distributed in the closed interval [lo, hi]. It is unspecified what
happens if lo > hi.

Implementations:
RandomInt32
RandomDouble
randomIO : Randoma=>HasIOio=>ioa
Visibility: public export
randomRIO : Randoma=>HasIOio=> (a, a) ->ioa
  Takes a range (lo, hi), and returns a random value uniformly
distributed in the closed interval [lo, hi]. It is unspecified what
happens if lo > hi.

Visibility: public export
srand : Bits64->IO ()
  Sets the random seed

Visibility: export
rndFin : HasIOio=> (n : Nat) ->io (Fin (Sn))
  Generate a random number in Fin (S `k`)

Note that rndFin k takes values 0, 1, ..., k.

Visibility: public export
rndSelect' : HasIOio=>Vect (Sk) a->ioa
  Select a random element from a vector

Visibility: public export
rndSelect : HasIOio=> (elems : Lista) -> {auto0_ : NonEmptyelems} ->ioa
  Select a random element from a non-empty list

Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Text.Bounded.html b/contrib/docs/Text.Bounded.html index 51ad1b7d03..9014b66e4f 100644 --- a/contrib/docs/Text.Bounded.html +++ b/contrib/docs/Text.Bounded.html @@ -61,4 +61,4 @@ -

Text.Bounded(source)

Definitions

recordBounds : Type
Totality: total
Visibility: public export
Constructor: 
MkBounds : Int->Int->Int->Int->Bounds

Projections:
.endCol : Bounds->Int
.endLine : Bounds->Int
.startCol : Bounds->Int
.startLine : Bounds->Int

Hints:
EqBounds
ShowBounds
.startLine : Bounds->Int
Totality: total
Visibility: public export
startLine : Bounds->Int
Totality: total
Visibility: public export
.startCol : Bounds->Int
Totality: total
Visibility: public export
startCol : Bounds->Int
Totality: total
Visibility: public export
.endLine : Bounds->Int
Totality: total
Visibility: public export
endLine : Bounds->Int
Totality: total
Visibility: public export
.endCol : Bounds->Int
Totality: total
Visibility: public export
endCol : Bounds->Int
Totality: total
Visibility: public export
startBounds : Bounds-> (Int, Int)
Totality: total
Visibility: export
endBounds : Bounds-> (Int, Int)
Totality: total
Visibility: export
recordWithBounds : Type->Type
Totality: total
Visibility: public export
Constructor: 
MkBounded : ty->Bool->Bounds->WithBoundsty

Projections:
.bounds : WithBoundsty->Bounds
.isIrrelevant : WithBoundsty->Bool
.val : WithBoundsty->ty

Hints:
Eqty=>Eq (WithBoundsty)
FoldableWithBounds
FunctorWithBounds
Showty=>Show (WithBoundsty)
TraversableWithBounds
.val : WithBoundsty->ty
Totality: total
Visibility: public export
val : WithBoundsty->ty
Totality: total
Visibility: public export
.isIrrelevant : WithBoundsty->Bool
Totality: total
Visibility: public export
isIrrelevant : WithBoundsty->Bool
Totality: total
Visibility: public export
.bounds : WithBoundsty->Bounds
Totality: total
Visibility: public export
bounds : WithBoundsty->Bounds
Totality: total
Visibility: public export
start : WithBoundsty-> (Int, Int)
Totality: total
Visibility: export
end : WithBoundsty-> (Int, Int)
Totality: total
Visibility: export
irrelevantBounds : ty->WithBoundsty
Totality: total
Visibility: export
removeIrrelevance : WithBoundsty->WithBoundsty
Totality: total
Visibility: export
mergeBounds : WithBoundsty->WithBoundsty'->WithBoundsty'
Totality: total
Visibility: export
joinBounds : WithBounds (WithBoundsty) ->WithBoundsty
Totality: total
Visibility: export
\ No newline at end of file +

Text.Bounded(source)

Definitions

recordBounds : Type
Totality: total
Visibility: public export
Constructor: 
MkBounds : Int->Int->Int->Int->Bounds

Projections:
.endCol : Bounds->Int
.endLine : Bounds->Int
.startCol : Bounds->Int
.startLine : Bounds->Int

Hints:
EqBounds
ShowBounds
.startLine : Bounds->Int
Totality: total
Visibility: public export
startLine : Bounds->Int
Totality: total
Visibility: public export
.startCol : Bounds->Int
Totality: total
Visibility: public export
startCol : Bounds->Int
Totality: total
Visibility: public export
.endLine : Bounds->Int
Totality: total
Visibility: public export
endLine : Bounds->Int
Totality: total
Visibility: public export
.endCol : Bounds->Int
Totality: total
Visibility: public export
endCol : Bounds->Int
Totality: total
Visibility: public export
startBounds : Bounds-> (Int, Int)
Totality: total
Visibility: export
endBounds : Bounds-> (Int, Int)
Totality: total
Visibility: export
recordWithBounds : Type->Type
Totality: total
Visibility: public export
Constructor: 
MkBounded : ty->Bool->Bounds->WithBoundsty

Projections:
.bounds : WithBoundsty->Bounds
.isIrrelevant : WithBoundsty->Bool
.val : WithBoundsty->ty

Hints:
Eqty=>Eq (WithBoundsty)
FoldableWithBounds
FunctorWithBounds
Showty=>Show (WithBoundsty)
TraversableWithBounds
.val : WithBoundsty->ty
Totality: total
Visibility: public export
val : WithBoundsty->ty
Totality: total
Visibility: public export
.isIrrelevant : WithBoundsty->Bool
Totality: total
Visibility: public export
isIrrelevant : WithBoundsty->Bool
Totality: total
Visibility: public export
.bounds : WithBoundsty->Bounds
Totality: total
Visibility: public export
bounds : WithBoundsty->Bounds
Totality: total
Visibility: public export
start : WithBoundsty-> (Int, Int)
Totality: total
Visibility: export
end : WithBoundsty-> (Int, Int)
Totality: total
Visibility: export
irrelevantBounds : ty->WithBoundsty
Totality: total
Visibility: export
removeIrrelevance : WithBoundsty->WithBoundsty
Totality: total
Visibility: export
mergeBounds : WithBoundsty->WithBoundsty'->WithBoundsty'
Totality: total
Visibility: export
joinBounds : WithBounds (WithBoundsty) ->WithBoundsty
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.Distance.Levenshtein.html b/contrib/docs/Text.Distance.Levenshtein.html index 5af9894a40..fdc859a65f 100644 --- a/contrib/docs/Text.Distance.Levenshtein.html +++ b/contrib/docs/Text.Distance.Levenshtein.html @@ -61,4 +61,4 @@ -

Text.Distance.Levenshtein(source)

Definitions

compute : HasIOio=>String->String->ioNat
  Dynamic programming

Totality: total
Visibility: export
\ No newline at end of file +

Text.Distance.Levenshtein(source)

Definitions

compute : HasIOio=>String->String->ioNat
  Dynamic programming

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.Lexer.Core.html b/contrib/docs/Text.Lexer.Core.html index 15a6fae7ef..3ab80af1c1 100644 --- a/contrib/docs/Text.Lexer.Core.html +++ b/contrib/docs/Text.Lexer.Core.html @@ -61,4 +61,4 @@ -

Text.Lexer.Core(source)

Reexports

importpublic Control.Delayed
importpublic Text.Bounded

Definitions

dataRecognise : Bool->Type
  A language of token recognisers.
@ consumes If `True`, this recogniser is guaranteed to consume at
least one character of input when it succeeds.

Totality: total
Visibility: export
Constructors:
Empty : RecogniseFalse
Fail : Recognisec
Lookahead : Bool->Recognisec->RecogniseFalse
Pred : (Char->Bool) ->RecogniseTrue
SeqEat : RecogniseTrue-> Inf (Recognisee) ->RecogniseTrue
SeqEmpty : Recognisee1->Recognisee2->Recognise (e1|| Delay e2)
SeqSame : Recognisee->Recognisee->Recognisee
Alt : Recognisee1->Recognisee2->Recognise (e1&& Delay e2)
Lexer : Type
  A token recogniser. Guaranteed to consume at least one character.

Totality: total
Visibility: public export
(<+>) : Recognisec1->infc1 (Recognisec2) ->Recognise (c1|| Delay c2)
  Sequence two recognisers. If either consumes a character, the sequence
is guaranteed to consume a character.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 8
(<|>) : Recognisec1->Recognisec2->Recognise (c1&& Delay c2)
  Alternative recognisers. If both consume, the combination is guaranteed
to consume a character.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 2
fail : Recognisec
  A recogniser that always fails.

Totality: total
Visibility: export
empty : RecogniseFalse
  Recognise no input (doesn't consume any input)

Totality: total
Visibility: export
pred : (Char->Bool) ->Lexer
  Recognise a character that matches a predicate

Totality: total
Visibility: export
expect : Recognisec->RecogniseFalse
  Positive lookahead. Never consumes input.

Totality: total
Visibility: export
reject : Recognisec->RecogniseFalse
  Negative lookahead. Never consumes input.

Totality: total
Visibility: export
concatMap : (a->Recognisec) -> (xs : Lista) ->Recognise (isConsxs&& Delay c)
  Sequence the recognisers resulting from applying a function to each element
of a list. The resulting recogniser will consume input if the produced
recognisers consume and the list is non-empty.

Totality: total
Visibility: export
scan : Recognisec->ListChar->ListChar->Maybe (ListChar, ListChar)
Totality: total
Visibility: export
TokenMap : Type->Type
  A mapping from lexers to the tokens they produce.
This is a list of pairs `(Lexer, String -> tokenType)`
For each Lexer in the list, if a substring in the input matches, run
the associated function to produce a token of type `tokenType`

Totality: total
Visibility: public export
lex : TokenMapa->String-> (List (WithBoundsa), (Int, (Int, String)))
  Given a mapping from lexers to token generating functions (the
TokenMap a) and an input string, return a list of recognised tokens,
and the line, column, and remainder of the input at the first point in the
string where there are no recognised tokens.

Totality: total
Visibility: export
lexTo : (a->Bool) ->TokenMapa->String-> (List (WithBoundsa), (Int, (Int, String)))
Totality: total
Visibility: export
\ No newline at end of file +

Text.Lexer.Core(source)

Reexports

importpublic Control.Delayed
importpublic Text.Bounded

Definitions

dataRecognise : Bool->Type
  A language of token recognisers.
@ consumes If `True`, this recogniser is guaranteed to consume at
least one character of input when it succeeds.

Totality: total
Visibility: export
Constructors:
Empty : RecogniseFalse
Fail : Recognisec
Lookahead : Bool->Recognisec->RecogniseFalse
Pred : (Char->Bool) ->RecogniseTrue
SeqEat : RecogniseTrue-> Inf (Recognisee) ->RecogniseTrue
SeqEmpty : Recognisee1->Recognisee2->Recognise (e1|| Delay e2)
SeqSame : Recognisee->Recognisee->Recognisee
Alt : Recognisee1->Recognisee2->Recognise (e1&& Delay e2)
Lexer : Type
  A token recogniser. Guaranteed to consume at least one character.

Totality: total
Visibility: public export
(<+>) : Recognisec1->infc1 (Recognisec2) ->Recognise (c1|| Delay c2)
  Sequence two recognisers. If either consumes a character, the sequence
is guaranteed to consume a character.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 8
(<|>) : Recognisec1->Recognisec2->Recognise (c1&& Delay c2)
  Alternative recognisers. If both consume, the combination is guaranteed
to consume a character.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 2
fail : Recognisec
  A recogniser that always fails.

Totality: total
Visibility: export
empty : RecogniseFalse
  Recognise no input (doesn't consume any input)

Totality: total
Visibility: export
pred : (Char->Bool) ->Lexer
  Recognise a character that matches a predicate

Totality: total
Visibility: export
expect : Recognisec->RecogniseFalse
  Positive lookahead. Never consumes input.

Totality: total
Visibility: export
reject : Recognisec->RecogniseFalse
  Negative lookahead. Never consumes input.

Totality: total
Visibility: export
concatMap : (a->Recognisec) -> (xs : Lista) ->Recognise (isConsxs&& Delay c)
  Sequence the recognisers resulting from applying a function to each element
of a list. The resulting recogniser will consume input if the produced
recognisers consume and the list is non-empty.

Totality: total
Visibility: export
scan : Recognisec->ListChar->ListChar->Maybe (ListChar, ListChar)
Totality: total
Visibility: export
TokenMap : Type->Type
  A mapping from lexers to the tokens they produce.
This is a list of pairs `(Lexer, String -> tokenType)`
For each Lexer in the list, if a substring in the input matches, run
the associated function to produce a token of type `tokenType`

Totality: total
Visibility: public export
lex : TokenMapa->String-> (List (WithBoundsa), (Int, (Int, String)))
  Given a mapping from lexers to token generating functions (the
TokenMap a) and an input string, return a list of recognised tokens,
and the line, column, and remainder of the input at the first point in the
string where there are no recognised tokens.

Totality: total
Visibility: export
lexTo : (a->Bool) ->TokenMapa->String-> (List (WithBoundsa), (Int, (Int, String)))
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.Lexer.Tokenizer.html b/contrib/docs/Text.Lexer.Tokenizer.html index 1e9e6663ca..ca4bdec80b 100644 --- a/contrib/docs/Text.Lexer.Tokenizer.html +++ b/contrib/docs/Text.Lexer.Tokenizer.html @@ -61,4 +61,4 @@ -

Text.Lexer.Tokenizer(source)

Reexports

importpublic Control.Delayed
importpublic Text.Bounded

Definitions

dataTokenizer : Type->Type
  Description of a language's tokenization rule.

Totality: total
Visibility: export
Constructors:
Match : Lexer-> (String->tokenType) ->TokenizertokenType
Compose : Lexer-> (String->tokenType) -> (String->tag) -> Inf (tag->TokenizertokenType) -> (tag->Lexer) -> (String->tokenType) ->TokenizertokenType
Alt : TokenizertokenType-> Lazy (TokenizertokenType) ->TokenizertokenType

Hint: 
FunctorTokenizer
(<|>) : Tokenizert-> Lazy (Tokenizert) ->Tokenizert
  Alternative tokenizer rules.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 2
match : Lexer-> (String->a) ->Tokenizera
  Match on a recogniser and cast the string to a token.

Totality: total
Visibility: export
compose : Lexer-> (String->a) -> (String->tag) -> Inf (tag->Tokenizera) -> (tag->Lexer) -> (String->a) ->Tokenizera
  Compose other tokenizer. Language composition should be quoted between
a begin lexer and a end lexer. The begin token can be used to generate
the composition tokenizer and the end lexer.

Totality: total
Visibility: export
dataStopReason : Type
  Stop reason why tokenizer can't make more progress.
@ ComposeNotClosing carries the span of composition begin token in the
form of `(startLine, startCol), (endLine, endCol)`.

Totality: total
Visibility: public export
Constructors:
EndInput : StopReason
NoRuleApply : StopReason
ComposeNotClosing : (Int, Int) -> (Int, Int) ->StopReason

Hints:
PrettyStopReason
ShowStopReason
lexTo : Lexer->Tokenizera->String-> (List (WithBoundsa), (StopReason, (Int, (Int, String))))
Totality: total
Visibility: export
lex : Tokenizera->String-> (List (WithBoundsa), (StopReason, (Int, (Int, String))))
  Given a tokenizer and an input string, return a list of recognised tokens,
and the line, column, and remainder of the input at the first point in the string
where there are no recognised tokens.

Totality: total
Visibility: export
\ No newline at end of file +

Text.Lexer.Tokenizer(source)

Reexports

importpublic Control.Delayed
importpublic Text.Bounded

Definitions

dataTokenizer : Type->Type
  Description of a language's tokenization rule.

Totality: total
Visibility: export
Constructors:
Match : Lexer-> (String->tokenType) ->TokenizertokenType
Compose : Lexer-> (String->tokenType) -> (String->tag) -> Inf (tag->TokenizertokenType) -> (tag->Lexer) -> (String->tokenType) ->TokenizertokenType
Alt : TokenizertokenType-> Lazy (TokenizertokenType) ->TokenizertokenType

Hint: 
FunctorTokenizer
(<|>) : Tokenizert-> Lazy (Tokenizert) ->Tokenizert
  Alternative tokenizer rules.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 2
match : Lexer-> (String->a) ->Tokenizera
  Match on a recogniser and cast the string to a token.

Totality: total
Visibility: export
compose : Lexer-> (String->a) -> (String->tag) -> Inf (tag->Tokenizera) -> (tag->Lexer) -> (String->a) ->Tokenizera
  Compose other tokenizer. Language composition should be quoted between
a begin lexer and a end lexer. The begin token can be used to generate
the composition tokenizer and the end lexer.

Totality: total
Visibility: export
dataStopReason : Type
  Stop reason why tokenizer can't make more progress.
@ ComposeNotClosing carries the span of composition begin token in the
form of `(startLine, startCol), (endLine, endCol)`.

Totality: total
Visibility: public export
Constructors:
EndInput : StopReason
NoRuleApply : StopReason
ComposeNotClosing : (Int, Int) -> (Int, Int) ->StopReason

Hints:
PrettyStopReason
ShowStopReason
lexTo : Lexer->Tokenizera->String-> (List (WithBoundsa), (StopReason, (Int, (Int, String))))
Totality: total
Visibility: export
lex : Tokenizera->String-> (List (WithBoundsa), (StopReason, (Int, (Int, String))))
  Given a tokenizer and an input string, return a list of recognised tokens,
and the line, column, and remainder of the input at the first point in the string
where there are no recognised tokens.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.Lexer.html b/contrib/docs/Text.Lexer.html index aae08c4a97..2263d14439 100644 --- a/contrib/docs/Text.Lexer.html +++ b/contrib/docs/Text.Lexer.html @@ -61,4 +61,4 @@ -

Text.Lexer(source)

Reexports

importpublic Text.Lexer.Core
importpublic Text.Quantity
importpublic Text.Token

Definitions

toTokenMap : List (Lexer, k) ->TokenMap (Tokenk)
Totality: total
Visibility: export
any : Lexer
  Recognise any character.
/./

Totality: total
Visibility: export
opt : Lexer->RecogniseFalse
  Recognise a lexer or recognise no input. This is not guaranteed
to consume input.
/`l`?/

Totality: total
Visibility: export
non : Lexer->Lexer
  Recognise any character if the sub-lexer `l` fails.
/(?!`l`)./

Totality: total
Visibility: export
choiceMap : Foldablet=> (a->Recognisec) ->ta->Recognisec
  Produce recognisers by applying a function to elements of a container, and
recognise the first match. Consumes input if the function produces consuming
recognisers. Fails if the container is empty.

Totality: total
Visibility: export
choice : Foldablet=>t (Recognisec) ->Recognisec
  Recognise the first matching recogniser in a container. Consumes input if
recognisers in the list consume. Fails if the container is empty.

Totality: total
Visibility: export
concat : (xs : List (Recognisec)) ->Recognise (isConsxs&& Delay c)
  Sequence a list of recognisers. Guaranteed to consume input if the list is
non-empty and the recognisers consume.

Totality: total
Visibility: export
is : Char->Lexer
  Recognise a specific character.
/[`x`]/

Totality: total
Visibility: export
isNot : Char->Lexer
  Recognise anything but the given character.
/[\^`x`]/

Totality: total
Visibility: export
like : Char->Lexer
  Recognise a specific character (case-insensitive).
/[`x`]/i

Totality: total
Visibility: export
notLike : Char->Lexer
  Recognise anything but the given character (case-insensitive).
/[\^`x`]/i

Totality: total
Visibility: export
exact : String->Lexer
  Recognise a specific string.
Fails if the string is empty.
/`str`/

Totality: total
Visibility: export
approx : String->Lexer
  Recognise a specific string (case-insensitive).
Fails if the string is empty.
/`str`/i

Totality: total
Visibility: export
oneOf : String->Lexer
  Recognise any of the characters in the given string.
/[`chars`]/

Totality: total
Visibility: export
range : Char->Char->Lexer
  Recognise a character range. Also works in reverse!
/[`start`-`end`]/

Totality: total
Visibility: export
some : Lexer->Lexer
  Recognise a sequence of at least one sub-lexers
/`l`+/

Totality: total
Visibility: export
many : Lexer->RecogniseFalse
  Recognise a sequence of at zero or more sub-lexers. This is not
guaranteed to consume input
/`l`\*/

Totality: total
Visibility: export
someUntil : Recognisec->Lexer->Lexer
  Repeat the sub-lexer `l` one or more times until the lexer
`stopBefore` is encountered. `stopBefore` will not be consumed.
/((?!`stopBefore`)`l`)\+/

Totality: total
Visibility: export
manyUntil : Recognisec->Lexer->RecogniseFalse
  Repeat the sub-lexer `l` zero or more times until the lexer
`stopBefore` is encountered. `stopBefore` will not be consumed.
Not guaranteed to consume input.
/((?!`stopBefore`)`l`)\*/

Totality: total
Visibility: export
manyThen : Recognisec->Lexer->Recognisec
  Repeat the sub-lexer `l` zero or more times until the lexer
`stopAfter` is encountered, and consume it. Guaranteed to
consume if `stopAfter` consumes.
/`l`\*?`stopAfter`/

Totality: total
Visibility: export
count : (q : Quantity) ->Lexer->Recognise (isSucc (minq))
  Recognise a sub-lexer repeated as specified by `q`. Fails if `q` has
`min` and `max` in the wrong order. Consumes input unless `min q` is zero.
/`l`{`q`}/

Totality: total
Visibility: export
digit : Lexer
  Recognise a single digit 0-9
/[0-9]/

Totality: total
Visibility: export
digits : Lexer
  Recognise one or more digits
/[0-9]+/

Totality: total
Visibility: export
binDigit : Lexer
  Recognise a single binary digit
/[0-1]/

Totality: total
Visibility: export
binDigits : Lexer
  Recognise one or more binary digits
/[0-1]+/

Totality: total
Visibility: export
hexDigit : Lexer
  Recognise a single hexidecimal digit
/[0-9A-Fa-f]/

Totality: total
Visibility: export
hexDigits : Lexer
  Recognise one or more hexidecimal digits
/[0-9A-Fa-f]+/

Totality: total
Visibility: export
octDigit : Lexer
  Recognise a single octal digit
/[0-8]/

Totality: total
Visibility: export
octDigits : Lexer
  Recognise one or more octal digits
/[0-8]+/

Totality: total
Visibility: export
alpha : Lexer
  Recognise a single alpha character
/[A-Za-z]/

Totality: total
Visibility: export
alphas : Lexer
  Recognise one or more alpha characters
/[A-Za-z]+/

Totality: total
Visibility: export
lower : Lexer
  Recognise a lowercase alpha character
/[a-z]/

Totality: total
Visibility: export
lowers : Lexer
  Recognise one or more lowercase alpha characters
/[a-z]+/

Totality: total
Visibility: export
upper : Lexer
  Recognise an uppercase alpha character
/[A-Z]/

Totality: total
Visibility: export
uppers : Lexer
  Recognise one or more uppercase alpha characters
/[A-Z]+/

Totality: total
Visibility: export
alphaNum : Lexer
  Recognise an alphanumeric character
/[A-Za-z0-9]/

Totality: total
Visibility: export
alphaNums : Lexer
  Recognise one or more alphanumeric characters
/[A-Za-z0-9]+/

Totality: total
Visibility: export
space : Lexer
  Recognise a single whitespace character
/\\s/

Totality: total
Visibility: export
spaces : Lexer
  Recognise one or more whitespace characters
/\\s+/

Totality: total
Visibility: export
newline : Lexer
  Recognise a single newline sequence. Understands CRLF, CR, and LF
/\\r\\n|[\\r\\n]/

Totality: total
Visibility: export
newlines : Lexer
  Recognise one or more newline sequences. Understands CRLF, CR, and LF
/(\\r\\n|[\\r\\n])+)/

Totality: total
Visibility: export
symbol : Lexer
  Recognise a single non-whitespace, non-alphanumeric character
/[\^\\sA-Za-z0-9]/

Totality: total
Visibility: export
symbols : Lexer
  Recognise one or more non-whitespace, non-alphanumeric characters
/[\^\\sA-Za-z0-9]+/

Totality: total
Visibility: export
control : Lexer
Totality: total
Visibility: export
controls : Lexer
  Recognise one or more control characters
/[\\x00-\\x1f\\x7f-\\x9f]+/

Totality: total
Visibility: export
surround : Lexer->Lexer->Lexer->Lexer
  Recognise zero or more occurrences of a sub-lexer between
delimiting lexers
/`start`(`l`)\*?`end`/

Totality: total
Visibility: export
quote : Lexer->Lexer->Lexer
  Recognise zero or more occurrences of a sub-lexer surrounded
by the same quote lexer on both sides (useful for strings)
/`q`(`l`)\*?`q`/

Totality: total
Visibility: export
escape : Lexer->Lexer->Lexer
  Recognise an escape sub-lexer (often '\\') followed by
another sub-lexer
/[`esc`]`l`/

Totality: total
Visibility: export
stringLit : Lexer
  Recognise a string literal, including escaped characters.
(Note: doesn't yet handle escape sequences such as \123)
/"(\\\\.|.)\*?"/

Totality: total
Visibility: export
charLit : Lexer
  Recognise a character literal, including escaped characters.
(Note: doesn't yet handle escape sequences such as \123)
/'(\\\\.|[\^'])'/

Totality: total
Visibility: export
intLit : Lexer
  Recognise an integer literal (possibly with a '-' prefix)
/-?[0-9]+/

Totality: total
Visibility: export
binLit : Lexer
  Recognise a binary literal, prefixed by "0b"
/0b[0-1]+/

Totality: total
Visibility: export
hexLit : Lexer
  Recognise a hexidecimal literal, prefixed by "0x" or "0X"
/0[Xx][0-9A-Fa-f]+/

Totality: total
Visibility: export
octLit : Lexer
  Recognise an octal literal, prefixed by "0o"
/0o[0-9A-Fa-f]+/

Totality: total
Visibility: export
digitsUnderscoredLit : Lexer
Totality: total
Visibility: export
binUnderscoredLit : Lexer
Totality: total
Visibility: export
hexUnderscoredLit : Lexer
Totality: total
Visibility: export
octUnderscoredLit : Lexer
Totality: total
Visibility: export
lineComment : Lexer->Lexer
  Recognise `start`, then recognise all input until a newline is encountered,
and consume the newline. Will succeed if end-of-input is encountered before
a newline.
/`start`[\^\\r\\n]+(\\r\\n|[\\r\\n])?/

Totality: total
Visibility: export
blockComment : Lexer->Lexer->Lexer
  Recognise all input between `start` and `end` lexers.
Supports balanced nesting.

For block comments that don't support nesting (such as C-style comments),
use `surround`

Totality: total
Visibility: export
\ No newline at end of file +

Text.Lexer(source)

Reexports

importpublic Text.Lexer.Core
importpublic Text.Quantity
importpublic Text.Token

Definitions

toTokenMap : List (Lexer, k) ->TokenMap (Tokenk)
Totality: total
Visibility: export
any : Lexer
  Recognise any character.
/./

Totality: total
Visibility: export
opt : Lexer->RecogniseFalse
  Recognise a lexer or recognise no input. This is not guaranteed
to consume input.
/`l`?/

Totality: total
Visibility: export
non : Lexer->Lexer
  Recognise any character if the sub-lexer `l` fails.
/(?!`l`)./

Totality: total
Visibility: export
choiceMap : Foldablet=> (a->Recognisec) ->ta->Recognisec
  Produce recognisers by applying a function to elements of a container, and
recognise the first match. Consumes input if the function produces consuming
recognisers. Fails if the container is empty.

Totality: total
Visibility: export
choice : Foldablet=>t (Recognisec) ->Recognisec
  Recognise the first matching recogniser in a container. Consumes input if
recognisers in the list consume. Fails if the container is empty.

Totality: total
Visibility: export
concat : (xs : List (Recognisec)) ->Recognise (isConsxs&& Delay c)
  Sequence a list of recognisers. Guaranteed to consume input if the list is
non-empty and the recognisers consume.

Totality: total
Visibility: export
is : Char->Lexer
  Recognise a specific character.
/[`x`]/

Totality: total
Visibility: export
isNot : Char->Lexer
  Recognise anything but the given character.
/[\^`x`]/

Totality: total
Visibility: export
like : Char->Lexer
  Recognise a specific character (case-insensitive).
/[`x`]/i

Totality: total
Visibility: export
notLike : Char->Lexer
  Recognise anything but the given character (case-insensitive).
/[\^`x`]/i

Totality: total
Visibility: export
exact : String->Lexer
  Recognise a specific string.
Fails if the string is empty.
/`str`/

Totality: total
Visibility: export
approx : String->Lexer
  Recognise a specific string (case-insensitive).
Fails if the string is empty.
/`str`/i

Totality: total
Visibility: export
oneOf : String->Lexer
  Recognise any of the characters in the given string.
/[`chars`]/

Totality: total
Visibility: export
range : Char->Char->Lexer
  Recognise a character range. Also works in reverse!
/[`start`-`end`]/

Totality: total
Visibility: export
some : Lexer->Lexer
  Recognise a sequence of at least one sub-lexers
/`l`+/

Totality: total
Visibility: export
many : Lexer->RecogniseFalse
  Recognise a sequence of at zero or more sub-lexers. This is not
guaranteed to consume input
/`l`\*/

Totality: total
Visibility: export
someUntil : Recognisec->Lexer->Lexer
  Repeat the sub-lexer `l` one or more times until the lexer
`stopBefore` is encountered. `stopBefore` will not be consumed.
/((?!`stopBefore`)`l`)\+/

Totality: total
Visibility: export
manyUntil : Recognisec->Lexer->RecogniseFalse
  Repeat the sub-lexer `l` zero or more times until the lexer
`stopBefore` is encountered. `stopBefore` will not be consumed.
Not guaranteed to consume input.
/((?!`stopBefore`)`l`)\*/

Totality: total
Visibility: export
manyThen : Recognisec->Lexer->Recognisec
  Repeat the sub-lexer `l` zero or more times until the lexer
`stopAfter` is encountered, and consume it. Guaranteed to
consume if `stopAfter` consumes.
/`l`\*?`stopAfter`/

Totality: total
Visibility: export
count : (q : Quantity) ->Lexer->Recognise (isSucc (minq))
  Recognise a sub-lexer repeated as specified by `q`. Fails if `q` has
`min` and `max` in the wrong order. Consumes input unless `min q` is zero.
/`l`{`q`}/

Totality: total
Visibility: export
digit : Lexer
  Recognise a single digit 0-9
/[0-9]/

Totality: total
Visibility: export
digits : Lexer
  Recognise one or more digits
/[0-9]+/

Totality: total
Visibility: export
binDigit : Lexer
  Recognise a single binary digit
/[0-1]/

Totality: total
Visibility: export
binDigits : Lexer
  Recognise one or more binary digits
/[0-1]+/

Totality: total
Visibility: export
hexDigit : Lexer
  Recognise a single hexidecimal digit
/[0-9A-Fa-f]/

Totality: total
Visibility: export
hexDigits : Lexer
  Recognise one or more hexidecimal digits
/[0-9A-Fa-f]+/

Totality: total
Visibility: export
octDigit : Lexer
  Recognise a single octal digit
/[0-8]/

Totality: total
Visibility: export
octDigits : Lexer
  Recognise one or more octal digits
/[0-8]+/

Totality: total
Visibility: export
alpha : Lexer
  Recognise a single alpha character
/[A-Za-z]/

Totality: total
Visibility: export
alphas : Lexer
  Recognise one or more alpha characters
/[A-Za-z]+/

Totality: total
Visibility: export
lower : Lexer
  Recognise a lowercase alpha character
/[a-z]/

Totality: total
Visibility: export
lowers : Lexer
  Recognise one or more lowercase alpha characters
/[a-z]+/

Totality: total
Visibility: export
upper : Lexer
  Recognise an uppercase alpha character
/[A-Z]/

Totality: total
Visibility: export
uppers : Lexer
  Recognise one or more uppercase alpha characters
/[A-Z]+/

Totality: total
Visibility: export
alphaNum : Lexer
  Recognise an alphanumeric character
/[A-Za-z0-9]/

Totality: total
Visibility: export
alphaNums : Lexer
  Recognise one or more alphanumeric characters
/[A-Za-z0-9]+/

Totality: total
Visibility: export
space : Lexer
  Recognise a single whitespace character
/\\s/

Totality: total
Visibility: export
spaces : Lexer
  Recognise one or more whitespace characters
/\\s+/

Totality: total
Visibility: export
newline : Lexer
  Recognise a single newline sequence. Understands CRLF, CR, and LF
/\\r\\n|[\\r\\n]/

Totality: total
Visibility: export
newlines : Lexer
  Recognise one or more newline sequences. Understands CRLF, CR, and LF
/(\\r\\n|[\\r\\n])+)/

Totality: total
Visibility: export
symbol : Lexer
  Recognise a single non-whitespace, non-alphanumeric character
/[\^\\sA-Za-z0-9]/

Totality: total
Visibility: export
symbols : Lexer
  Recognise one or more non-whitespace, non-alphanumeric characters
/[\^\\sA-Za-z0-9]+/

Totality: total
Visibility: export
control : Lexer
Totality: total
Visibility: export
controls : Lexer
  Recognise one or more control characters
/[\\x00-\\x1f\\x7f-\\x9f]+/

Totality: total
Visibility: export
surround : Lexer->Lexer->Lexer->Lexer
  Recognise zero or more occurrences of a sub-lexer between
delimiting lexers
/`start`(`l`)\*?`end`/

Totality: total
Visibility: export
quote : Lexer->Lexer->Lexer
  Recognise zero or more occurrences of a sub-lexer surrounded
by the same quote lexer on both sides (useful for strings)
/`q`(`l`)\*?`q`/

Totality: total
Visibility: export
escape : Lexer->Lexer->Lexer
  Recognise an escape sub-lexer (often '\\') followed by
another sub-lexer
/[`esc`]`l`/

Totality: total
Visibility: export
stringLit : Lexer
  Recognise a string literal, including escaped characters.
(Note: doesn't yet handle escape sequences such as \123)
/"(\\\\.|.)\*?"/

Totality: total
Visibility: export
charLit : Lexer
  Recognise a character literal, including escaped characters.
(Note: doesn't yet handle escape sequences such as \123)
/'(\\\\.|[\^'])'/

Totality: total
Visibility: export
intLit : Lexer
  Recognise an integer literal (possibly with a '-' prefix)
/-?[0-9]+/

Totality: total
Visibility: export
binLit : Lexer
  Recognise a binary literal, prefixed by "0b"
/0b[0-1]+/

Totality: total
Visibility: export
hexLit : Lexer
  Recognise a hexidecimal literal, prefixed by "0x" or "0X"
/0[Xx][0-9A-Fa-f]+/

Totality: total
Visibility: export
octLit : Lexer
  Recognise an octal literal, prefixed by "0o"
/0o[0-9A-Fa-f]+/

Totality: total
Visibility: export
digitsUnderscoredLit : Lexer
Totality: total
Visibility: export
binUnderscoredLit : Lexer
Totality: total
Visibility: export
hexUnderscoredLit : Lexer
Totality: total
Visibility: export
octUnderscoredLit : Lexer
Totality: total
Visibility: export
lineComment : Lexer->Lexer
  Recognise `start`, then recognise all input until a newline is encountered,
and consume the newline. Will succeed if end-of-input is encountered before
a newline.
/`start`[\^\\r\\n]+(\\r\\n|[\\r\\n])?/

Totality: total
Visibility: export
blockComment : Lexer->Lexer->Lexer
  Recognise all input between `start` and `end` lexers.
Supports balanced nesting.

For block comments that don't support nesting (such as C-style comments),
use `surround`

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.Literate.html b/contrib/docs/Text.Literate.html index f0022ec0c8..260b2992ee 100644 --- a/contrib/docs/Text.Literate.html +++ b/contrib/docs/Text.Literate.html @@ -84,4 +84,4 @@ the markers within the document's main text: This will confuse the lexer. -

Definitions

lines : String->List1String
Totality: total
Visibility: export
recordLiterateError : Type
Totality: total
Visibility: public export
Constructor: 
MkLitErr : Int->Int->String->LiterateError

Projections:
.column : LiterateError->Int
.input : LiterateError->String
.line : LiterateError->Int
.line : LiterateError->Int
Totality: total
Visibility: public export
line : LiterateError->Int
Totality: total
Visibility: public export
.column : LiterateError->Int
Totality: total
Visibility: public export
column : LiterateError->Int
Totality: total
Visibility: public export
.input : LiterateError->String
Totality: total
Visibility: public export
input : LiterateError->String
Totality: total
Visibility: public export
recordLiterateStyle : Type
  Description of literate styles.

A 'literate' style comprises of

+ a list of code block deliminators (`deliminators`);
+ a list of code line markers (`line_markers`); and
+ a list of known file extensions `file_extensions`.

Some example specifications:

+ Bird Style

```
MkLitStyle Nil [">"] [".lidr"]
```

+ Literate Haskell (for LaTeX)

```
MkLitStyle [("\\begin{code}", "\\end{code}"),("\\begin{spec}","\\end{spec}")]
Nil
[".lhs", ".tex"]
```

+ OrgMode

```
MkLitStyle [("#+BEGIN_SRC idris","#+END_SRC"), ("#+COMMENT idris","#+END_COMMENT")]
["#+IDRIS:"]
[".org"]
```

+ Common Mark

```
MkLitStyle [("```idris","```"), ("<!-- idris","--!>")]
Nil
[".md", ".markdown"]
```

Totality: total
Visibility: public export
Constructor: 
MkLitStyle : List (String, String) ->ListString->ListString->LiterateStyle

Projections:
.deliminators : LiterateStyle->List (String, String)
  The pairs of start and end tags for code blocks.
.file_extensions : LiterateStyle->ListString
  Recognised file extensions. Not used by the module, but will be
of use when connecting to code that reads in the original source
files.
.line_markers : LiterateStyle->ListString
  Line markers that indicate a line contains code.
.deliminators : LiterateStyle->List (String, String)
  The pairs of start and end tags for code blocks.

Totality: total
Visibility: public export
deliminators : LiterateStyle->List (String, String)
  The pairs of start and end tags for code blocks.

Totality: total
Visibility: public export
.line_markers : LiterateStyle->ListString
  Line markers that indicate a line contains code.

Totality: total
Visibility: public export
line_markers : LiterateStyle->ListString
  Line markers that indicate a line contains code.

Totality: total
Visibility: public export
.file_extensions : LiterateStyle->ListString
  Recognised file extensions. Not used by the module, but will be
of use when connecting to code that reads in the original source
files.

Totality: total
Visibility: public export
file_extensions : LiterateStyle->ListString
  Recognised file extensions. Not used by the module, but will be
of use when connecting to code that reads in the original source
files.

Totality: total
Visibility: public export
extractCode : LiterateStyle->String->EitherLiterateErrorString
  Given a 'literate specification' extract the code from the
literate source file (`litStr`) that follows the presented style.

@specification The literate specification to use.
@litStr The literate source file.

Returns a `LiterateError` if the literate file contains malformed
code blocks or code lines.

Totality: total
Visibility: export
unlit : LiterateStyle->String->EitherLiterateErrorString
  Synonym for `extractCode`.

Totality: total
Visibility: export
isLiterateLine : LiterateStyle->String-> (MaybeString, String)
  Is the provided line marked up using a line marker?

If the line is suffixed by any one of the style's set of line
markers then return length of literate line marker, and the code stripped from the line
marker. Otherwise, return Nothing and the unmarked line.

Totality: total
Visibility: export
embedCode : LiterateStyle->String->String
  Given a 'literate specification' embed the given code using the
literate style provided.

If the style uses deliminators to denote code blocks use the first
pair of deliminators in the style. Otherwise use first linemarker
in the style. If there is **no style** return the presented code
string unembedded.


@specification The literate specification to use.
@code The code to embed,


Totality: total
Visibility: export
relit : LiterateStyle->String->String
  Synonm for `embedCode`

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

lines : String->List1String
Totality: total
Visibility: export
recordLiterateError : Type
Totality: total
Visibility: public export
Constructor: 
MkLitErr : Int->Int->String->LiterateError

Projections:
.column : LiterateError->Int
.input : LiterateError->String
.line : LiterateError->Int
.line : LiterateError->Int
Totality: total
Visibility: public export
line : LiterateError->Int
Totality: total
Visibility: public export
.column : LiterateError->Int
Totality: total
Visibility: public export
column : LiterateError->Int
Totality: total
Visibility: public export
.input : LiterateError->String
Totality: total
Visibility: public export
input : LiterateError->String
Totality: total
Visibility: public export
recordLiterateStyle : Type
  Description of literate styles.

A 'literate' style comprises of

+ a list of code block deliminators (`deliminators`);
+ a list of code line markers (`line_markers`); and
+ a list of known file extensions `file_extensions`.

Some example specifications:

+ Bird Style

```
MkLitStyle Nil [">"] [".lidr"]
```

+ Literate Haskell (for LaTeX)

```
MkLitStyle [("\\begin{code}", "\\end{code}"),("\\begin{spec}","\\end{spec}")]
Nil
[".lhs", ".tex"]
```

+ OrgMode

```
MkLitStyle [("#+BEGIN_SRC idris","#+END_SRC"), ("#+COMMENT idris","#+END_COMMENT")]
["#+IDRIS:"]
[".org"]
```

+ Common Mark

```
MkLitStyle [("```idris","```"), ("<!-- idris","--!>")]
Nil
[".md", ".markdown"]
```

Totality: total
Visibility: public export
Constructor: 
MkLitStyle : List (String, String) ->ListString->ListString->LiterateStyle

Projections:
.deliminators : LiterateStyle->List (String, String)
  The pairs of start and end tags for code blocks.
.file_extensions : LiterateStyle->ListString
  Recognised file extensions. Not used by the module, but will be
of use when connecting to code that reads in the original source
files.
.line_markers : LiterateStyle->ListString
  Line markers that indicate a line contains code.
.deliminators : LiterateStyle->List (String, String)
  The pairs of start and end tags for code blocks.

Totality: total
Visibility: public export
deliminators : LiterateStyle->List (String, String)
  The pairs of start and end tags for code blocks.

Totality: total
Visibility: public export
.line_markers : LiterateStyle->ListString
  Line markers that indicate a line contains code.

Totality: total
Visibility: public export
line_markers : LiterateStyle->ListString
  Line markers that indicate a line contains code.

Totality: total
Visibility: public export
.file_extensions : LiterateStyle->ListString
  Recognised file extensions. Not used by the module, but will be
of use when connecting to code that reads in the original source
files.

Totality: total
Visibility: public export
file_extensions : LiterateStyle->ListString
  Recognised file extensions. Not used by the module, but will be
of use when connecting to code that reads in the original source
files.

Totality: total
Visibility: public export
extractCode : LiterateStyle->String->EitherLiterateErrorString
  Given a 'literate specification' extract the code from the
literate source file (`litStr`) that follows the presented style.

@specification The literate specification to use.
@litStr The literate source file.

Returns a `LiterateError` if the literate file contains malformed
code blocks or code lines.

Totality: total
Visibility: export
unlit : LiterateStyle->String->EitherLiterateErrorString
  Synonym for `extractCode`.

Totality: total
Visibility: export
isLiterateLine : LiterateStyle->String-> (MaybeString, String)
  Is the provided line marked up using a line marker?

If the line is suffixed by any one of the style's set of line
markers then return length of literate line marker, and the code stripped from the line
marker. Otherwise, return Nothing and the unmarked line.

Totality: total
Visibility: export
embedCode : LiterateStyle->String->String
  Given a 'literate specification' embed the given code using the
literate style provided.

If the style uses deliminators to denote code blocks use the first
pair of deliminators in the style. Otherwise use first linemarker
in the style. If there is **no style** return the presented code
string unembedded.


@specification The literate specification to use.
@code The code to embed,


Totality: total
Visibility: export
relit : LiterateStyle->String->String
  Synonm for `embedCode`

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.Parser.Core.html b/contrib/docs/Text.Parser.Core.html index c36aae3c01..3d99213cf3 100644 --- a/contrib/docs/Text.Parser.Core.html +++ b/contrib/docs/Text.Parser.Core.html @@ -61,4 +61,4 @@ -

Text.Parser.Core(source)

Reexports

importpublic Control.Delayed
importpublic Text.Bounded

Definitions

dataGrammar : Type->Type->Bool->Type->Type
  Description of a language's grammar. The `tok` parameter is the type
of tokens, and the `consumes` flag is True if the language is guaranteed
to be non-empty - that is, successfully parsing the language is guaranteed
to consume some input.

Totality: total
Visibility: export
Constructors:
Empty : ty->GrammarstatetokFalsety
Terminal : String-> (tok->Maybea) ->GrammarstatetokTruea
NextIs : String-> (tok->Bool) ->GrammarstatetokFalsetok
EOF : GrammarstatetokFalse ()
Fail : MaybeBounds->Bool->String->Grammarstatetokcty
Try : Grammarstatetokcty->Grammarstatetokcty
Commit : GrammarstatetokFalse ()
MustWork : Grammarstatetokca->Grammarstatetokca
SeqEat : GrammarstatetokTruea-> Inf (a->Grammarstatetokc2b) ->GrammarstatetokTrueb
SeqEmpty : Grammarstatetokc1a-> (a->Grammarstatetokc2b) ->Grammarstatetok (c1|| Delay c2) b
ThenEat : GrammarstatetokTrue () -> Inf (Grammarstatetokc2a) ->GrammarstatetokTruea
ThenEmpty : Grammarstatetokc1 () ->Grammarstatetokc2a->Grammarstatetok (c1|| Delay c2) a
Alt : Grammarstatetokc1ty-> Lazy (Grammarstatetokc2ty) ->Grammarstatetok (c1&& Delay c2) ty
Bounds : Grammarstatetokcty->Grammarstatetokc (WithBoundsty)
Position : GrammarstatetokFalseBounds
Act : state->GrammarstatetokFalse ()

Hint: 
Functor (Grammarstatetokc)
(>>=) : Grammarstatetokc1a->infc1 (a->Grammarstatetokc2b) ->Grammarstatetok (c1|| Delay c2) b
  Sequence two grammars. If either consumes some input, the sequence is
guaranteed to consume some input. If the first one consumes input, the
second is allowed to be recursive (because it means some input has been
consumed and therefore the input is smaller)

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 1
(>>) : Grammarstatetokc1 () ->infc1 (Grammarstatetokc2a) ->Grammarstatetok (c1|| Delay c2) a
  Sequence two grammars. If either consumes some input, the sequence is
guaranteed to consume some input. If the first one consumes input, the
second is allowed to be recursive (because it means some input has been
consumed and therefore the input is smaller)

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
seq : Grammarstatetokc1a-> (a->Grammarstatetokc2b) ->Grammarstatetok (c1|| Delay c2) b
  Sequence two grammars. If either consumes some input, the sequence is
guaranteed to consume input. This is an explicitly non-infinite version
of `>>=`.

Totality: total
Visibility: export
join : Grammarstatetokc1 (Grammarstatetokc2a) ->Grammarstatetok (c1|| Delay c2) a
  Sequence a grammar followed by the grammar it returns.

Totality: total
Visibility: export
(<|>) : Grammarstatetokc1ty-> Lazy (Grammarstatetokc2ty) ->Grammarstatetok (c1&& Delay c2) ty
  Give two alternative grammars. If both consume, the combination is
guaranteed to consume.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 2
(<||>) : Grammarstatetokc1a-> Lazy (Grammarstatetokc2b) ->Grammarstatetok (c1&& Delay c2) (Eitherab)
  Take the tagged disjunction of two grammars. If both consume, the
combination is guaranteed to consume.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 2
(<*>) : Grammarstatetokc1 (a->b) ->Grammarstatetokc2a->Grammarstatetok (c1|| Delay c2) b
  Sequence a grammar with value type `a -> b` and a grammar
with value type `a`. If both succeed, apply the function
from the first grammar to the value from the second grammar.
Guaranteed to consume if either grammar consumes.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
(<*) : Grammarstatetokc1a->Grammarstatetokc2b->Grammarstatetok (c1|| Delay c2) a
  Sequence two grammars. If both succeed, use the value of the first one.
Guaranteed to consume if either grammar consumes.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
(*>) : Grammarstatetokc1a->Grammarstatetokc2b->Grammarstatetok (c1|| Delay c2) b
  Sequence two grammars. If both succeed, use the value of the second one.
Guaranteed to consume if either grammar consumes.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
act : state->GrammarstatetokFalse ()
Totality: total
Visibility: export
mapToken : (a->b) ->Grammarstatebcty->Grammarstateacty
  Produce a grammar that can parse a different type of token by providing a
function converting the new token type into the original one.

Totality: total
Visibility: export
pure : ty->GrammarstatetokFalsety
  Always succeed with the given value.

Totality: total
Visibility: export
nextIs : String-> (tok->Bool) ->GrammarstatetokFalsetok
  Check whether the next token satisfies a predicate

Totality: total
Visibility: export
peek : GrammarstatetokFalsetok
  Look at the next token in the input

Totality: total
Visibility: export
terminal : String-> (tok->Maybea) ->GrammarstatetokTruea
  Succeeds if running the predicate on the next token returns Just x,
returning x. Otherwise fails.

Totality: total
Visibility: export
fail : String->Grammarstatetokcty
  Always fail with a message

Totality: total
Visibility: export
failLoc : Bounds->String->Grammarstatetokcty
  Always fail with a message and a location

Totality: total
Visibility: export
fatalError : String->Grammarstatetokcty
  Fail with no possibility for recovery (i.e.
no alternative parsing can succeed).

Totality: total
Visibility: export
fatalLoc : Bounds->String->Grammarstatetokcty
  Fail with no possibility for recovery (i.e.
no alternative parsing can succeed).

Totality: total
Visibility: export
try : Grammarstatetokcty->Grammarstatetokcty
  Catch a fatal error

Totality: total
Visibility: export
eof : GrammarstatetokFalse ()
  Succeed if the input is empty

Totality: total
Visibility: export
commit : GrammarstatetokFalse ()
  Commit to an alternative; if the current branch of an alternative
fails to parse, no more branches will be tried

Totality: total
Visibility: export
mustWork : Grammarstatetokcty->Grammarstatetokcty
  If the parser fails, treat it as a fatal error

Totality: total
Visibility: export
bounds : Grammarstatetokcty->Grammarstatetokc (WithBoundsty)
Totality: total
Visibility: export
position : GrammarstatetokFalseBounds
Totality: total
Visibility: export
dataParsingError : Type->Type
Totality: total
Visibility: public export
Constructor: 
Error : String->MaybeBounds->ParsingErrortok

Hint: 
Showtok=>Show (ParsingErrortok)
parse : Grammar () tokcty->List (WithBoundstok) ->Either (List1 (ParsingErrortok)) (ty, List (WithBoundstok))
  Parse a list of tokens according to the given grammar. If successful,
returns a pair of the parse result and the unparsed tokens (the remaining
input).

Totality: total
Visibility: export
parseWith : Monoidstate=>Grammarstatetokcty->List (WithBoundstok) ->Either (List1 (ParsingErrortok)) (state, (ty, List (WithBoundstok)))
Totality: total
Visibility: export
\ No newline at end of file +

Text.Parser.Core(source)

Reexports

importpublic Control.Delayed
importpublic Text.Bounded

Definitions

dataGrammar : Type->Type->Bool->Type->Type
  Description of a language's grammar. The `tok` parameter is the type
of tokens, and the `consumes` flag is True if the language is guaranteed
to be non-empty - that is, successfully parsing the language is guaranteed
to consume some input.

Totality: total
Visibility: export
Constructors:
Empty : ty->GrammarstatetokFalsety
Terminal : String-> (tok->Maybea) ->GrammarstatetokTruea
NextIs : String-> (tok->Bool) ->GrammarstatetokFalsetok
EOF : GrammarstatetokFalse ()
Fail : MaybeBounds->Bool->String->Grammarstatetokcty
Try : Grammarstatetokcty->Grammarstatetokcty
Commit : GrammarstatetokFalse ()
MustWork : Grammarstatetokca->Grammarstatetokca
SeqEat : GrammarstatetokTruea-> Inf (a->Grammarstatetokc2b) ->GrammarstatetokTrueb
SeqEmpty : Grammarstatetokc1a-> (a->Grammarstatetokc2b) ->Grammarstatetok (c1|| Delay c2) b
ThenEat : GrammarstatetokTrue () -> Inf (Grammarstatetokc2a) ->GrammarstatetokTruea
ThenEmpty : Grammarstatetokc1 () ->Grammarstatetokc2a->Grammarstatetok (c1|| Delay c2) a
Alt : Grammarstatetokc1ty-> Lazy (Grammarstatetokc2ty) ->Grammarstatetok (c1&& Delay c2) ty
Bounds : Grammarstatetokcty->Grammarstatetokc (WithBoundsty)
Position : GrammarstatetokFalseBounds
Act : state->GrammarstatetokFalse ()

Hint: 
Functor (Grammarstatetokc)
(>>=) : Grammarstatetokc1a->infc1 (a->Grammarstatetokc2b) ->Grammarstatetok (c1|| Delay c2) b
  Sequence two grammars. If either consumes some input, the sequence is
guaranteed to consume some input. If the first one consumes input, the
second is allowed to be recursive (because it means some input has been
consumed and therefore the input is smaller)

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 1
(>>) : Grammarstatetokc1 () ->infc1 (Grammarstatetokc2a) ->Grammarstatetok (c1|| Delay c2) a
  Sequence two grammars. If either consumes some input, the sequence is
guaranteed to consume some input. If the first one consumes input, the
second is allowed to be recursive (because it means some input has been
consumed and therefore the input is smaller)

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
seq : Grammarstatetokc1a-> (a->Grammarstatetokc2b) ->Grammarstatetok (c1|| Delay c2) b
  Sequence two grammars. If either consumes some input, the sequence is
guaranteed to consume input. This is an explicitly non-infinite version
of `>>=`.

Totality: total
Visibility: export
join : Grammarstatetokc1 (Grammarstatetokc2a) ->Grammarstatetok (c1|| Delay c2) a
  Sequence a grammar followed by the grammar it returns.

Totality: total
Visibility: export
(<|>) : Grammarstatetokc1ty-> Lazy (Grammarstatetokc2ty) ->Grammarstatetok (c1&& Delay c2) ty
  Give two alternative grammars. If both consume, the combination is
guaranteed to consume.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 2
(<||>) : Grammarstatetokc1a-> Lazy (Grammarstatetokc2b) ->Grammarstatetok (c1&& Delay c2) (Eitherab)
  Take the tagged disjunction of two grammars. If both consume, the
combination is guaranteed to consume.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 2
(<*>) : Grammarstatetokc1 (a->b) ->Grammarstatetokc2a->Grammarstatetok (c1|| Delay c2) b
  Sequence a grammar with value type `a -> b` and a grammar
with value type `a`. If both succeed, apply the function
from the first grammar to the value from the second grammar.
Guaranteed to consume if either grammar consumes.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
(<*) : Grammarstatetokc1a->Grammarstatetokc2b->Grammarstatetok (c1|| Delay c2) a
  Sequence two grammars. If both succeed, use the value of the first one.
Guaranteed to consume if either grammar consumes.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
(*>) : Grammarstatetokc1a->Grammarstatetokc2b->Grammarstatetok (c1|| Delay c2) b
  Sequence two grammars. If both succeed, use the value of the second one.
Guaranteed to consume if either grammar consumes.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
act : state->GrammarstatetokFalse ()
Totality: total
Visibility: export
mapToken : (a->b) ->Grammarstatebcty->Grammarstateacty
  Produce a grammar that can parse a different type of token by providing a
function converting the new token type into the original one.

Totality: total
Visibility: export
pure : ty->GrammarstatetokFalsety
  Always succeed with the given value.

Totality: total
Visibility: export
nextIs : String-> (tok->Bool) ->GrammarstatetokFalsetok
  Check whether the next token satisfies a predicate

Totality: total
Visibility: export
peek : GrammarstatetokFalsetok
  Look at the next token in the input

Totality: total
Visibility: export
terminal : String-> (tok->Maybea) ->GrammarstatetokTruea
  Succeeds if running the predicate on the next token returns Just x,
returning x. Otherwise fails.

Totality: total
Visibility: export
fail : String->Grammarstatetokcty
  Always fail with a message

Totality: total
Visibility: export
failLoc : Bounds->String->Grammarstatetokcty
  Always fail with a message and a location

Totality: total
Visibility: export
fatalError : String->Grammarstatetokcty
  Fail with no possibility for recovery (i.e.
no alternative parsing can succeed).

Totality: total
Visibility: export
fatalLoc : Bounds->String->Grammarstatetokcty
  Fail with no possibility for recovery (i.e.
no alternative parsing can succeed).

Totality: total
Visibility: export
try : Grammarstatetokcty->Grammarstatetokcty
  Catch a fatal error

Totality: total
Visibility: export
eof : GrammarstatetokFalse ()
  Succeed if the input is empty

Totality: total
Visibility: export
commit : GrammarstatetokFalse ()
  Commit to an alternative; if the current branch of an alternative
fails to parse, no more branches will be tried

Totality: total
Visibility: export
mustWork : Grammarstatetokcty->Grammarstatetokcty
  If the parser fails, treat it as a fatal error

Totality: total
Visibility: export
bounds : Grammarstatetokcty->Grammarstatetokc (WithBoundsty)
Totality: total
Visibility: export
position : GrammarstatetokFalseBounds
Totality: total
Visibility: export
dataParsingError : Type->Type
Totality: total
Visibility: public export
Constructor: 
Error : String->MaybeBounds->ParsingErrortok

Hint: 
Showtok=>Show (ParsingErrortok)
parse : Grammar () tokcty->List (WithBoundstok) ->Either (List1 (ParsingErrortok)) (ty, List (WithBoundstok))
  Parse a list of tokens according to the given grammar. If successful,
returns a pair of the parse result and the unparsed tokens (the remaining
input).

Totality: total
Visibility: export
parseWith : Monoidstate=>Grammarstatetokcty->List (WithBoundstok) ->Either (List1 (ParsingErrortok)) (state, (ty, List (WithBoundstok)))
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.Parser.Expression.html b/contrib/docs/Text.Parser.Expression.html index bc8c4f043e..2af5223e7b 100644 --- a/contrib/docs/Text.Parser.Expression.html +++ b/contrib/docs/Text.Parser.Expression.html @@ -61,4 +61,4 @@ -

Text.Parser.Expression(source)

Definitions

dataAssoc : Type
Totality: total
Visibility: public export
Constructors:
AssocNone : Assoc
AssocLeft : Assoc
AssocRight : Assoc
dataOp : Type->Type->Type->Type
Totality: total
Visibility: public export
Constructors:
Prefix : GrammarstatekTrue (a->a) ->Opstateka
Postfix : GrammarstatekTrue (a->a) ->Opstateka
Infix : GrammarstatekTrue (a->a->a) ->Assoc->Opstateka
OperatorTable : Type->Type->Type->Type
Visibility: public export
buildExpressionParser : OperatorTablestateka->GrammarstatekTruea->GrammarstatekTruea
Visibility: export
\ No newline at end of file +

Text.Parser.Expression(source)

Definitions

dataAssoc : Type
Totality: total
Visibility: public export
Constructors:
AssocNone : Assoc
AssocLeft : Assoc
AssocRight : Assoc
dataOp : Type->Type->Type->Type
Totality: total
Visibility: public export
Constructors:
Prefix : GrammarstatekTrue (a->a) ->Opstateka
Postfix : GrammarstatekTrue (a->a) ->Opstateka
Infix : GrammarstatekTrue (a->a->a) ->Assoc->Opstateka
OperatorTable : Type->Type->Type->Type
Visibility: public export
buildExpressionParser : OperatorTablestateka->GrammarstatekTruea->GrammarstatekTruea
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.Parser.html b/contrib/docs/Text.Parser.html index f1be38ec57..2db4f2007a 100644 --- a/contrib/docs/Text.Parser.html +++ b/contrib/docs/Text.Parser.html @@ -61,4 +61,4 @@ -

Text.Parser(source)

Reexports

importpublic Data.List1
importpublic Text.Parser.Core
importpublic Text.Quantity
importpublic Text.Token

Definitions

match : {auto{conArg:983} : TokenKindk} ->Eqk=> (kind : k) ->Grammarstate (Tokenk) True (TokTypekind)
  Parse a terminal based on a kind of token.

Totality: total
Visibility: export
option : a->Grammarstatetokca->GrammarstatetokFalsea
  Optionally parse a thing, with a default value if the grammar doesn't
match. May match the empty input.

Totality: total
Visibility: export
optional : Grammarstatetokca->GrammarstatetokFalse (Maybea)
  Optionally parse a thing.
To provide a default value, use `option` instead.

Totality: total
Visibility: export
choose : Grammarstatetokc1a->Grammarstatetokc2b->Grammarstatetok (c1&& Delay c2) (Eitherab)
  Try to parse one thing or the other, producing a value that indicates
which option succeeded. If both would succeed, the left option
takes priority.

Totality: total
Visibility: export
choiceMap : (a->Grammarstatetokcb) ->Foldablet=>ta->Grammarstatetokcb
  Produce a grammar by applying a function to each element of a container,
then try each resulting grammar until the first one succeeds. Fails if the
container is empty.

Totality: total
Visibility: export
choice : Foldablet=>t (Grammarstatetokca) ->Grammarstatetokca
  Try each grammar in a container until the first one succeeds.
Fails if the container is empty.

Totality: total
Visibility: export
some : GrammarstatetokTruea->GrammarstatetokTrue (List1a)
  Parse one or more things

Totality: total
Visibility: export
many : GrammarstatetokTruea->GrammarstatetokFalse (Lista)
  Parse zero or more things (may match the empty input)

Totality: total
Visibility: export
count : (q : Quantity) ->GrammarstatetokTruea->Grammarstatetok (isSucc (minq)) (Lista)
  Parse `p`, repeated as specified by `q`, returning the list of values.

Totality: total
Visibility: export
someTill : Grammarstatetokce->GrammarstatetokTruea->GrammarstatetokTrue (List1a)
  Parse one or more instances of `p` until `end` succeeds, returning the
list of values from `p`. Guaranteed to consume input.

Totality: total
Visibility: export
manyTill : Grammarstatetokce->GrammarstatetokTruea->Grammarstatetokc (Lista)
  Parse zero or more instances of `p` until `end` succeeds, returning the
list of values from `p`. Guaranteed to consume input if `end` consumes.

Totality: total
Visibility: export
afterSome : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokTruea
  Parse one or more instance of `skip` until `p` is encountered,
returning its value.

Totality: total
Visibility: export
afterMany : GrammarstatetokTrues->Grammarstatetokca->Grammarstatetokca
  Parse zero or more instance of `skip` until `p` is encountered,
returning its value.

Totality: total
Visibility: export
sepBy1 : GrammarstatetokTrues->Grammarstatetokca->Grammarstatetokc (List1a)
  Parse one or more things, each separated by another thing.

Totality: total
Visibility: export
sepBy : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokFalse (Lista)
  Parse zero or more things, each separated by another thing. May
match the empty input.

Totality: total
Visibility: export
sepEndBy1 : GrammarstatetokTrues->Grammarstatetokca->Grammarstatetokc (List1a)
  Parse one or more instances of `p` separated by and optionally terminated by
`sep`.

Totality: total
Visibility: export
sepEndBy : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokFalse (Lista)
  Parse zero or more instances of `p`, separated by and optionally terminated
by `sep`. Will not match a separator by itself.

Totality: total
Visibility: export
endBy1 : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokTrue (List1a)
  Parse one or more instances of `p`, separated and terminated by `sep`.

Totality: total
Visibility: export
endBy : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokFalse (Lista)
Totality: total
Visibility: export
between : GrammarstatetokTruel->GrammarstatetokTruer->Grammarstatetokca->GrammarstatetokTruea
  Parse an instance of `p` that is between `left` and `right`.

Totality: total
Visibility: export
location : GrammarstatetokenFalse (Int, Int)
Totality: total
Visibility: export
endLocation : GrammarstatetokenFalse (Int, Int)
Totality: total
Visibility: export
column : GrammarstatetokenFalseInt
Totality: total
Visibility: export
when : Bool-> Lazy (GrammarstatetokenFalse ()) ->GrammarstatetokenFalse ()
Totality: total
Visibility: public export
\ No newline at end of file +

Text.Parser(source)

Reexports

importpublic Data.List1
importpublic Text.Parser.Core
importpublic Text.Quantity
importpublic Text.Token

Definitions

match : {auto{conArg:983} : TokenKindk} ->Eqk=> (kind : k) ->Grammarstate (Tokenk) True (TokTypekind)
  Parse a terminal based on a kind of token.

Totality: total
Visibility: export
option : a->Grammarstatetokca->GrammarstatetokFalsea
  Optionally parse a thing, with a default value if the grammar doesn't
match. May match the empty input.

Totality: total
Visibility: export
optional : Grammarstatetokca->GrammarstatetokFalse (Maybea)
  Optionally parse a thing.
To provide a default value, use `option` instead.

Totality: total
Visibility: export
choose : Grammarstatetokc1a->Grammarstatetokc2b->Grammarstatetok (c1&& Delay c2) (Eitherab)
  Try to parse one thing or the other, producing a value that indicates
which option succeeded. If both would succeed, the left option
takes priority.

Totality: total
Visibility: export
choiceMap : (a->Grammarstatetokcb) ->Foldablet=>ta->Grammarstatetokcb
  Produce a grammar by applying a function to each element of a container,
then try each resulting grammar until the first one succeeds. Fails if the
container is empty.

Totality: total
Visibility: export
choice : Foldablet=>t (Grammarstatetokca) ->Grammarstatetokca
  Try each grammar in a container until the first one succeeds.
Fails if the container is empty.

Totality: total
Visibility: export
some : GrammarstatetokTruea->GrammarstatetokTrue (List1a)
  Parse one or more things

Totality: total
Visibility: export
many : GrammarstatetokTruea->GrammarstatetokFalse (Lista)
  Parse zero or more things (may match the empty input)

Totality: total
Visibility: export
count : (q : Quantity) ->GrammarstatetokTruea->Grammarstatetok (isSucc (minq)) (Lista)
  Parse `p`, repeated as specified by `q`, returning the list of values.

Totality: total
Visibility: export
someTill : Grammarstatetokce->GrammarstatetokTruea->GrammarstatetokTrue (List1a)
  Parse one or more instances of `p` until `end` succeeds, returning the
list of values from `p`. Guaranteed to consume input.

Totality: total
Visibility: export
manyTill : Grammarstatetokce->GrammarstatetokTruea->Grammarstatetokc (Lista)
  Parse zero or more instances of `p` until `end` succeeds, returning the
list of values from `p`. Guaranteed to consume input if `end` consumes.

Totality: total
Visibility: export
afterSome : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokTruea
  Parse one or more instance of `skip` until `p` is encountered,
returning its value.

Totality: total
Visibility: export
afterMany : GrammarstatetokTrues->Grammarstatetokca->Grammarstatetokca
  Parse zero or more instance of `skip` until `p` is encountered,
returning its value.

Totality: total
Visibility: export
sepBy1 : GrammarstatetokTrues->Grammarstatetokca->Grammarstatetokc (List1a)
  Parse one or more things, each separated by another thing.

Totality: total
Visibility: export
sepBy : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokFalse (Lista)
  Parse zero or more things, each separated by another thing. May
match the empty input.

Totality: total
Visibility: export
sepEndBy1 : GrammarstatetokTrues->Grammarstatetokca->Grammarstatetokc (List1a)
  Parse one or more instances of `p` separated by and optionally terminated by
`sep`.

Totality: total
Visibility: export
sepEndBy : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokFalse (Lista)
  Parse zero or more instances of `p`, separated by and optionally terminated
by `sep`. Will not match a separator by itself.

Totality: total
Visibility: export
endBy1 : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokTrue (List1a)
  Parse one or more instances of `p`, separated and terminated by `sep`.

Totality: total
Visibility: export
endBy : GrammarstatetokTrues->Grammarstatetokca->GrammarstatetokFalse (Lista)
Totality: total
Visibility: export
between : GrammarstatetokTruel->GrammarstatetokTruer->Grammarstatetokca->GrammarstatetokTruea
  Parse an instance of `p` that is between `left` and `right`.

Totality: total
Visibility: export
location : GrammarstatetokenFalse (Int, Int)
Totality: total
Visibility: export
endLocation : GrammarstatetokenFalse (Int, Int)
Totality: total
Visibility: export
column : GrammarstatetokenFalseInt
Totality: total
Visibility: export
when : Bool-> Lazy (GrammarstatetokenFalse ()) ->GrammarstatetokenFalse ()
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Text.PrettyPrint.Prettyprinter.Doc.html b/contrib/docs/Text.PrettyPrint.Prettyprinter.Doc.html index 814c2b3334..84a787b6d6 100644 --- a/contrib/docs/Text.PrettyPrint.Prettyprinter.Doc.html +++ b/contrib/docs/Text.PrettyPrint.Prettyprinter.Doc.html @@ -61,4 +61,4 @@ -

Text.PrettyPrint.Prettyprinter.Doc(source)

Reexports

importpublic Data.List1
importpublic Data.String.Extra

Definitions

textSpaces : Int->String
Totality: total
Visibility: export
dataPageWidth : Type
  Maximum number of characters that fit in one line.

Totality: total
Visibility: public export
Constructors:
AvailablePerLine : Int->Double->PageWidth
  The `Int` is the number of characters, including whitespace, that fit in a line.
The `Double` is the ribbon, the fraction of the toal page width that can be printed on.
Unbounded : PageWidth
  The layouters should not introduce line breaks.
dataFusionDepth : Type
  Fusion depth parameter.

Totality: total
Visibility: public export
Constructors:
Shallow : FusionDepth
  Do not dive deep into nested documents.
Deep : FusionDepth
  Recurse into all parts of the `Doc`. May impact performace.
dataDoc : Type->Type
  This data type represents pretty documents that have
been annotated with an arbitrary data type `ann`.

Totality: total
Visibility: public export
Constructors:
Empty : Docann
Chara : Char->Docann
Text : Int->String->Docann
Line : Docann
FlatAlt : Lazy (Docann) -> Lazy (Docann) ->Docann
Cat : Docann->Docann->Docann
Nest : Int->Docann->Docann
Union : Lazy (Docann) -> Lazy (Docann) ->Docann
Column : (Int->Docann) ->Docann
WithPageWidth : (PageWidth->Docann) ->Docann
Nesting : (Int->Docann) ->Docann
Annotated : ann->Docann->Docann

Hints:
FromString (Docann)
FunctorDoc
Monoid (Docann)
Semigroup (Docann)
Show (Docann)
column : (Int->Docann) ->Docann
  Layout a document depending on which column it starts at.

Totality: total
Visibility: export
nest : Int->Docann->Docann
  Lays out a document with the current nesting level increased by `i`.

Totality: total
Visibility: export
nesting : (Int->Docann) ->Docann
  Layout a document depending on the current nesting level.

Totality: total
Visibility: export
width : Docann-> (Int->Docann) ->Docann
  Lays out a document, and makes the column width of it available to a function.

Totality: total
Visibility: export
pageWidth : (PageWidth->Docann) ->Docann
  Layout a document depending on the page width, if one has been specified.

Totality: total
Visibility: export
align : Docann->Docann
  Lays out a document with the nesting level set to the current column.

Totality: total
Visibility: export
hang : Int->Docann->Docann
  Lays out a document with a nesting level set to the current column plus `i`.
Negative values are allowed, and decrease the nesting level accordingly.

Totality: total
Visibility: export
spaces : Int->Docann
  Insert a number of spaces.

Totality: total
Visibility: export
indent : Int->Docann->Docann
  Indents a document with `i` spaces, starting from the current cursor position.

Totality: total
Visibility: export
fill : Int->Docann->Docann
  Lays out a document. It then appends spaces until the width is equal to `i`.
If the width is already larger, nothing is appended.

Totality: total
Visibility: export
(<++>) : Docann->Docann->Docann
  Concatenates two documents with a space in between.

Totality: total
Visibility: export
Fixity Declarations:
infix operator, level 5
infixr operator, level 5
infixr operator, level 6
emptyDoc : Docann
  The empty document behaves like `pretty ""`, so it has a height of 1.

Totality: total
Visibility: export
softline : Docann
  Behaves like `space` if the resulting output fits the page, otherwise like `line`.

Totality: total
Visibility: export
softline' : Docann
  Like `softline`, but behaves like `neutral` if the resulting output does not fit
on the page.

Totality: total
Visibility: export
hardline : Docann
  A line break, even when grouped.

Totality: total
Visibility: export
group : Docann->Docann
  Tries laying out a document into a single line by removing the contained
line breaks; if this does not fit the page, or has an `hardline`, the document
is laid out without changes.

Totality: total
Visibility: export
flatAlt : Lazy (Docann) -> Lazy (Docann) ->Docann
  By default renders the first document, When grouped renders the second, with
the first as fallback when there is not enough space.

Totality: total
Visibility: export
line : Docann
  Advances to the next line and indents to the current nesting level.

Totality: total
Visibility: export
line' : Docann
  Like `line`, but behaves like `neutral` if the line break is undone by `group`.

Totality: total
Visibility: export
fillBreak : Int->Docann->Docann
  First lays out the document. It then appends spaces until the width is equal to `i`.
If the width is already larger than `i`, the nesting level is decreased by `i`
and a line is appended.

Totality: total
Visibility: export
concatWith : (Docann->Docann->Docann) ->List (Docann) ->Docann
  Concatenate all documents element-wise with a binary function.

Totality: total
Visibility: export
hsep : List (Docann) ->Docann
  Concatenates all documents horizontally with `(<++>)`.

Totality: total
Visibility: export
vsep : List (Docann) ->Docann
  Concatenates all documents above each other. If a `group` undoes the line breaks,
the documents are separated with a space instead.

Totality: total
Visibility: export
fillSep : List (Docann) ->Docann
  Concatenates the documents horizontally with `(<++>)` as long as it fits the page,
then inserts a line and continues.

Totality: total
Visibility: export
sep : List (Docann) ->Docann
  Tries laying out the documents separated with spaces and if this does not fit,
separates them with newlines.

Totality: total
Visibility: export
hcat : List (Docann) ->Docann
  Concatenates all documents horizontally with `(<+>)`.

Totality: total
Visibility: export
vcat : List (Docann) ->Docann
  Vertically concatenates the documents. If it is grouped, the line breaks are removed.

Totality: total
Visibility: export
fillCat : List (Docann) ->Docann
  Concatenates documents horizontally with `(<+>)` as log as it fits the page, then
inserts a line and continues.

Totality: total
Visibility: export
cat : List (Docann) ->Docann
  Tries laying out the documents separated with nothing, and if it does not fit the page,
separates them with newlines.

Totality: total
Visibility: export
punctuate : Docann->List (Docann) ->List (Docann)
  Appends `p` to all but the last document.

Totality: total
Visibility: export
plural : Numamount=>Eqamount=>doc->doc->amount->doc
Totality: total
Visibility: export
enclose : Docann->Docann->Docann->Docann
  Encloses the document between two other documents using `(<+>)`.

Totality: total
Visibility: export
surround : Docann->Docann->Docann->Docann
  Reordering of `encloses`.
Example: concatWith (surround (pretty ".")) [pretty "Text", pretty "PrettyPrint", pretty "Doc"]
Text.PrettyPrint.Doc

Totality: total
Visibility: export
encloseSep : Docann->Docann->Docann->List (Docann) ->Docann
  Concatenates the documents separated by `s` and encloses the resulting document by `l` and `r`.

Totality: total
Visibility: export
annotate : ann->Docann->Docann
  Adds an annotation to a document.

Totality: total
Visibility: export
alterAnnotations : (ann->Listann') ->Docann->Docann'
  Changes the annotations of a document. Individual annotations can be removed,
changed, or replaced by multiple ones.

Totality: total
Visibility: export
unAnnotate : Docann->Docxxx
  Removes all annotations.

Totality: total
Visibility: export
reAnnotate : (ann->ann') ->Docann->Docann'
  Changes the annotations of a document.

Totality: total
Visibility: export
interfacePretty : Type->Type
  Overloaded converison to `Doc`.

Parameters: a
Methods:
pretty : a->Docann
prettyPrec : Prec->a->Docann

Implementations:
PrettyString
Prettya=>Pretty (Lista)
Prettya=>Pretty (List1a)
Pretty ()
PrettyBool
PrettyChar
PrettyNat
PrettyInt
PrettyInteger
PrettyDouble
PrettyBits8
PrettyBits16
PrettyBits32
PrettyBits64
PrettyInt8
PrettyInt16
PrettyInt32
PrettyInt64
(Prettya, Prettyb) =>Pretty (a, b)
Prettya=>Pretty (Maybea)
PrettyStopReason
pretty : Prettya=>a->Docann
Totality: total
Visibility: public export
prettyPrec : Prettya=>Prec->a->Docann
Totality: total
Visibility: public export
list : List (Docann) ->Docann
  Variant of `encloseSep` with braces and comma as separator.

Totality: total
Visibility: export
tupled : List (Docann) ->Docann
  Variant of `encloseSep` with parentheses and comma as separator.

Totality: total
Visibility: export
fuse : FusionDepth->Docann->Docann
  Combines text nodes so they can be rendered more efficiently.

Totality: total
Visibility: export
dataSimpleDocStream : Type->Type
  This data type represents laid out documents and is used by the display functions.

Totality: total
Visibility: public export
Constructors:
SEmpty : SimpleDocStreamann
SChar : Char-> Lazy (SimpleDocStreamann) ->SimpleDocStreamann
SText : Int->String-> Lazy (SimpleDocStreamann) ->SimpleDocStreamann
SLine : Int->SimpleDocStreamann->SimpleDocStreamann
SAnnPush : ann->SimpleDocStreamann->SimpleDocStreamann
SAnnPop : SimpleDocStreamann->SimpleDocStreamann

Hint: 
FunctorSimpleDocStream
alterAnnotationsS : (ann->Maybeann') ->SimpleDocStreamann->SimpleDocStreamann'
  Changes the annotation of a document to a different annotation or none.

Totality: total
Visibility: export
unAnnotateS : SimpleDocStreamann->SimpleDocStreamxxx
  Removes all annotations.

Totality: total
Visibility: export
reAnnotateS : (ann->ann') ->SimpleDocStreamann->SimpleDocStreamann'
  Changes the annotation of a document.

Totality: total
Visibility: export
collectAnnotations : Monoidm=> (ann->m) ->SimpleDocStreamann->m
  Collects all annotations from a document.

Totality: total
Visibility: export
traverse : Applicativef=> (ann->fann') ->SimpleDocStreamann->f (SimpleDocStreamann')
  Transform a document based on its annotations.

Totality: total
Visibility: export
removeTrailingWhitespace : SimpleDocStreamann->SimpleDocStreamann
  Removes all trailing space characters.

Totality: total
Visibility: export
FittingPredicate : Type->Type
Totality: total
Visibility: public export
defaultPageWidth : PageWidth
Totality: total
Visibility: export
recordLayoutOptions : Type
Totality: total
Visibility: public export
Constructor: 
MkLayoutOptions : PageWidth->LayoutOptions

Projection: 
.layoutPageWidth : LayoutOptions->PageWidth
.layoutPageWidth : LayoutOptions->PageWidth
Totality: total
Visibility: public export
layoutPageWidth : LayoutOptions->PageWidth
Totality: total
Visibility: public export
defaultLayoutOptions : LayoutOptions
Totality: total
Visibility: export
layoutWadlerLeijen : FittingPredicateann->PageWidth->Docann->SimpleDocStreamann
  The Wadler/Leijen layout algorithm.

Totality: total
Visibility: export
layoutUnbounded : Docann->SimpleDocStreamann
  Layout a document with unbounded page width.

Totality: total
Visibility: export
layoutPretty : LayoutOptions->Docann->SimpleDocStreamann
  The default layout algorithm.

Totality: total
Visibility: export
layoutSmart : LayoutOptions->Docann->SimpleDocStreamann
  Layout algorithm with more lookahead than layoutPretty.

Totality: total
Visibility: export
layoutCompact : Docann->SimpleDocStreamann
  Lays out the document without adding any indentation. This layouter is very fast.

Totality: total
Visibility: export
renderShow : SimpleDocStreamann->String->String
Totality: total
Visibility: export
\ No newline at end of file +

Text.PrettyPrint.Prettyprinter.Doc(source)

Reexports

importpublic Data.List1
importpublic Data.String.Extra

Definitions

textSpaces : Int->String
Totality: total
Visibility: export
dataPageWidth : Type
  Maximum number of characters that fit in one line.

Totality: total
Visibility: public export
Constructors:
AvailablePerLine : Int->Double->PageWidth
  The `Int` is the number of characters, including whitespace, that fit in a line.
The `Double` is the ribbon, the fraction of the toal page width that can be printed on.
Unbounded : PageWidth
  The layouters should not introduce line breaks.
dataFusionDepth : Type
  Fusion depth parameter.

Totality: total
Visibility: public export
Constructors:
Shallow : FusionDepth
  Do not dive deep into nested documents.
Deep : FusionDepth
  Recurse into all parts of the `Doc`. May impact performace.
dataDoc : Type->Type
  This data type represents pretty documents that have
been annotated with an arbitrary data type `ann`.

Totality: total
Visibility: public export
Constructors:
Empty : Docann
Chara : Char->Docann
Text : Int->String->Docann
Line : Docann
FlatAlt : Lazy (Docann) -> Lazy (Docann) ->Docann
Cat : Docann->Docann->Docann
Nest : Int->Docann->Docann
Union : Lazy (Docann) -> Lazy (Docann) ->Docann
Column : (Int->Docann) ->Docann
WithPageWidth : (PageWidth->Docann) ->Docann
Nesting : (Int->Docann) ->Docann
Annotated : ann->Docann->Docann

Hints:
FromString (Docann)
FunctorDoc
Monoid (Docann)
Semigroup (Docann)
Show (Docann)
column : (Int->Docann) ->Docann
  Layout a document depending on which column it starts at.

Totality: total
Visibility: export
nest : Int->Docann->Docann
  Lays out a document with the current nesting level increased by `i`.

Totality: total
Visibility: export
nesting : (Int->Docann) ->Docann
  Layout a document depending on the current nesting level.

Totality: total
Visibility: export
width : Docann-> (Int->Docann) ->Docann
  Lays out a document, and makes the column width of it available to a function.

Totality: total
Visibility: export
pageWidth : (PageWidth->Docann) ->Docann
  Layout a document depending on the page width, if one has been specified.

Totality: total
Visibility: export
align : Docann->Docann
  Lays out a document with the nesting level set to the current column.

Totality: total
Visibility: export
hang : Int->Docann->Docann
  Lays out a document with a nesting level set to the current column plus `i`.
Negative values are allowed, and decrease the nesting level accordingly.

Totality: total
Visibility: export
spaces : Int->Docann
  Insert a number of spaces.

Totality: total
Visibility: export
indent : Int->Docann->Docann
  Indents a document with `i` spaces, starting from the current cursor position.

Totality: total
Visibility: export
fill : Int->Docann->Docann
  Lays out a document. It then appends spaces until the width is equal to `i`.
If the width is already larger, nothing is appended.

Totality: total
Visibility: export
(<++>) : Docann->Docann->Docann
  Concatenates two documents with a space in between.

Totality: total
Visibility: export
Fixity Declarations:
infix operator, level 5
infixr operator, level 5
infixr operator, level 6
emptyDoc : Docann
  The empty document behaves like `pretty ""`, so it has a height of 1.

Totality: total
Visibility: export
softline : Docann
  Behaves like `space` if the resulting output fits the page, otherwise like `line`.

Totality: total
Visibility: export
softline' : Docann
  Like `softline`, but behaves like `neutral` if the resulting output does not fit
on the page.

Totality: total
Visibility: export
hardline : Docann
  A line break, even when grouped.

Totality: total
Visibility: export
group : Docann->Docann
  Tries laying out a document into a single line by removing the contained
line breaks; if this does not fit the page, or has an `hardline`, the document
is laid out without changes.

Totality: total
Visibility: export
flatAlt : Lazy (Docann) -> Lazy (Docann) ->Docann
  By default renders the first document, When grouped renders the second, with
the first as fallback when there is not enough space.

Totality: total
Visibility: export
line : Docann
  Advances to the next line and indents to the current nesting level.

Totality: total
Visibility: export
line' : Docann
  Like `line`, but behaves like `neutral` if the line break is undone by `group`.

Totality: total
Visibility: export
fillBreak : Int->Docann->Docann
  First lays out the document. It then appends spaces until the width is equal to `i`.
If the width is already larger than `i`, the nesting level is decreased by `i`
and a line is appended.

Totality: total
Visibility: export
concatWith : (Docann->Docann->Docann) ->List (Docann) ->Docann
  Concatenate all documents element-wise with a binary function.

Totality: total
Visibility: export
hsep : List (Docann) ->Docann
  Concatenates all documents horizontally with `(<++>)`.

Totality: total
Visibility: export
vsep : List (Docann) ->Docann
  Concatenates all documents above each other. If a `group` undoes the line breaks,
the documents are separated with a space instead.

Totality: total
Visibility: export
fillSep : List (Docann) ->Docann
  Concatenates the documents horizontally with `(<++>)` as long as it fits the page,
then inserts a line and continues.

Totality: total
Visibility: export
sep : List (Docann) ->Docann
  Tries laying out the documents separated with spaces and if this does not fit,
separates them with newlines.

Totality: total
Visibility: export
hcat : List (Docann) ->Docann
  Concatenates all documents horizontally with `(<+>)`.

Totality: total
Visibility: export
vcat : List (Docann) ->Docann
  Vertically concatenates the documents. If it is grouped, the line breaks are removed.

Totality: total
Visibility: export
fillCat : List (Docann) ->Docann
  Concatenates documents horizontally with `(<+>)` as log as it fits the page, then
inserts a line and continues.

Totality: total
Visibility: export
cat : List (Docann) ->Docann
  Tries laying out the documents separated with nothing, and if it does not fit the page,
separates them with newlines.

Totality: total
Visibility: export
punctuate : Docann->List (Docann) ->List (Docann)
  Appends `p` to all but the last document.

Totality: total
Visibility: export
plural : Numamount=>Eqamount=>doc->doc->amount->doc
Totality: total
Visibility: export
enclose : Docann->Docann->Docann->Docann
  Encloses the document between two other documents using `(<+>)`.

Totality: total
Visibility: export
surround : Docann->Docann->Docann->Docann
  Reordering of `encloses`.
Example: concatWith (surround (pretty ".")) [pretty "Text", pretty "PrettyPrint", pretty "Doc"]
Text.PrettyPrint.Doc

Totality: total
Visibility: export
encloseSep : Docann->Docann->Docann->List (Docann) ->Docann
  Concatenates the documents separated by `s` and encloses the resulting document by `l` and `r`.

Totality: total
Visibility: export
annotate : ann->Docann->Docann
  Adds an annotation to a document.

Totality: total
Visibility: export
alterAnnotations : (ann->Listann') ->Docann->Docann'
  Changes the annotations of a document. Individual annotations can be removed,
changed, or replaced by multiple ones.

Totality: total
Visibility: export
unAnnotate : Docann->Docxxx
  Removes all annotations.

Totality: total
Visibility: export
reAnnotate : (ann->ann') ->Docann->Docann'
  Changes the annotations of a document.

Totality: total
Visibility: export
interfacePretty : Type->Type
  Overloaded converison to `Doc`.

Parameters: a
Methods:
pretty : a->Docann
prettyPrec : Prec->a->Docann

Implementations:
PrettyString
Prettya=>Pretty (Lista)
Prettya=>Pretty (List1a)
Pretty ()
PrettyBool
PrettyChar
PrettyNat
PrettyInt
PrettyInteger
PrettyDouble
PrettyBits8
PrettyBits16
PrettyBits32
PrettyBits64
PrettyInt8
PrettyInt16
PrettyInt32
PrettyInt64
(Prettya, Prettyb) =>Pretty (a, b)
Prettya=>Pretty (Maybea)
PrettyStopReason
pretty : Prettya=>a->Docann
Totality: total
Visibility: public export
prettyPrec : Prettya=>Prec->a->Docann
Totality: total
Visibility: public export
list : List (Docann) ->Docann
  Variant of `encloseSep` with braces and comma as separator.

Totality: total
Visibility: export
tupled : List (Docann) ->Docann
  Variant of `encloseSep` with parentheses and comma as separator.

Totality: total
Visibility: export
fuse : FusionDepth->Docann->Docann
  Combines text nodes so they can be rendered more efficiently.

Totality: total
Visibility: export
dataSimpleDocStream : Type->Type
  This data type represents laid out documents and is used by the display functions.

Totality: total
Visibility: public export
Constructors:
SEmpty : SimpleDocStreamann
SChar : Char-> Lazy (SimpleDocStreamann) ->SimpleDocStreamann
SText : Int->String-> Lazy (SimpleDocStreamann) ->SimpleDocStreamann
SLine : Int->SimpleDocStreamann->SimpleDocStreamann
SAnnPush : ann->SimpleDocStreamann->SimpleDocStreamann
SAnnPop : SimpleDocStreamann->SimpleDocStreamann

Hint: 
FunctorSimpleDocStream
alterAnnotationsS : (ann->Maybeann') ->SimpleDocStreamann->SimpleDocStreamann'
  Changes the annotation of a document to a different annotation or none.

Totality: total
Visibility: export
unAnnotateS : SimpleDocStreamann->SimpleDocStreamxxx
  Removes all annotations.

Totality: total
Visibility: export
reAnnotateS : (ann->ann') ->SimpleDocStreamann->SimpleDocStreamann'
  Changes the annotation of a document.

Totality: total
Visibility: export
collectAnnotations : Monoidm=> (ann->m) ->SimpleDocStreamann->m
  Collects all annotations from a document.

Totality: total
Visibility: export
traverse : Applicativef=> (ann->fann') ->SimpleDocStreamann->f (SimpleDocStreamann')
  Transform a document based on its annotations.

Totality: total
Visibility: export
removeTrailingWhitespace : SimpleDocStreamann->SimpleDocStreamann
  Removes all trailing space characters.

Totality: total
Visibility: export
FittingPredicate : Type->Type
Totality: total
Visibility: public export
defaultPageWidth : PageWidth
Totality: total
Visibility: export
recordLayoutOptions : Type
Totality: total
Visibility: public export
Constructor: 
MkLayoutOptions : PageWidth->LayoutOptions

Projection: 
.layoutPageWidth : LayoutOptions->PageWidth
.layoutPageWidth : LayoutOptions->PageWidth
Totality: total
Visibility: public export
layoutPageWidth : LayoutOptions->PageWidth
Totality: total
Visibility: public export
defaultLayoutOptions : LayoutOptions
Totality: total
Visibility: export
layoutWadlerLeijen : FittingPredicateann->PageWidth->Docann->SimpleDocStreamann
  The Wadler/Leijen layout algorithm.

Totality: total
Visibility: export
layoutUnbounded : Docann->SimpleDocStreamann
  Layout a document with unbounded page width.

Totality: total
Visibility: export
layoutPretty : LayoutOptions->Docann->SimpleDocStreamann
  The default layout algorithm.

Totality: total
Visibility: export
layoutSmart : LayoutOptions->Docann->SimpleDocStreamann
  Layout algorithm with more lookahead than layoutPretty.

Totality: total
Visibility: export
layoutCompact : Docann->SimpleDocStreamann
  Lays out the document without adding any indentation. This layouter is very fast.

Totality: total
Visibility: export
renderShow : SimpleDocStreamann->String->String
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.HTML.html b/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.HTML.html index a2e4ff9dd3..f1f383695a 100644 --- a/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.HTML.html +++ b/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.HTML.html @@ -61,4 +61,4 @@ -

Text.PrettyPrint.Prettyprinter.Render.HTML(source)

Definitions

htmlEscape : String->String
Visibility: export
\ No newline at end of file +

Text.PrettyPrint.Prettyprinter.Render.HTML(source)

Definitions

htmlEscape : String->String
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.String.html b/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.String.html index 752ac76969..de5e568bc3 100644 --- a/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.String.html +++ b/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.String.html @@ -61,4 +61,4 @@ -

Text.PrettyPrint.Prettyprinter.Render.String(source)

Definitions

renderString : SimpleDocStreamann->String
Totality: total
Visibility: export
renderIO : SimpleDocStreamann->IO ()
Totality: total
Visibility: export
putDoc : Docann->IO ()
  Prettyprints a document to standard output, using default options.

Totality: total
Visibility: export
\ No newline at end of file +

Text.PrettyPrint.Prettyprinter.Render.String(source)

Definitions

renderString : SimpleDocStreamann->String
Totality: total
Visibility: export
renderIO : SimpleDocStreamann->IO ()
Totality: total
Visibility: export
putDoc : Docann->IO ()
  Prettyprints a document to standard output, using default options.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.Terminal.html b/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.Terminal.html index 5849b90b09..1939d9b2be 100644 --- a/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.Terminal.html +++ b/contrib/docs/Text.PrettyPrint.Prettyprinter.Render.Terminal.html @@ -61,4 +61,4 @@ -

Text.PrettyPrint.Prettyprinter.Render.Terminal(source)

Reexports

importpublic Control.ANSI

Definitions

AnsiStyle : Type
Visibility: public export
color : Color->AnsiStyle
Visibility: export
bgColor : Color->AnsiStyle
Visibility: export
bold : AnsiStyle
Visibility: export
italic : AnsiStyle
Visibility: export
underline : AnsiStyle
Visibility: export
strike : AnsiStyle
Visibility: export
renderString : SimpleDocStreamAnsiStyle->String
Visibility: export
renderIO : SimpleDocStreamAnsiStyle->IO ()
Visibility: export
putDoc : DocAnsiStyle->IO ()
Visibility: export
\ No newline at end of file +

Text.PrettyPrint.Prettyprinter.Render.Terminal(source)

Reexports

importpublic Control.ANSI

Definitions

AnsiStyle : Type
Visibility: public export
color : Color->AnsiStyle
Visibility: export
bgColor : Color->AnsiStyle
Visibility: export
bold : AnsiStyle
Visibility: export
italic : AnsiStyle
Visibility: export
underline : AnsiStyle
Visibility: export
strike : AnsiStyle
Visibility: export
renderString : SimpleDocStreamAnsiStyle->String
Visibility: export
renderIO : SimpleDocStreamAnsiStyle->IO ()
Visibility: export
putDoc : DocAnsiStyle->IO ()
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.PrettyPrint.Prettyprinter.SimpleDocTree.html b/contrib/docs/Text.PrettyPrint.Prettyprinter.SimpleDocTree.html index 32faee59f4..06c01e80ca 100644 --- a/contrib/docs/Text.PrettyPrint.Prettyprinter.SimpleDocTree.html +++ b/contrib/docs/Text.PrettyPrint.Prettyprinter.SimpleDocTree.html @@ -61,4 +61,4 @@ -

Text.PrettyPrint.Prettyprinter.SimpleDocTree(source)

Definitions

dataSimpleDocTree : Type->Type
  Tree-like structure more suitable for rendering to a structured
format such as HTML.

Totality: total
Visibility: public export
Constructors:
STEmpty : SimpleDocTreeann
STChar : Char->SimpleDocTreeann
STText : Int->String->SimpleDocTreeann
STLine : Int->SimpleDocTreeann
STAnn : ann->SimpleDocTreeann->SimpleDocTreeann
STConcat : List (SimpleDocTreeann) ->SimpleDocTreeann
alterAnnotationsST : (ann->Listann') ->SimpleDocTreeann->SimpleDocTreeann'
  Changes the annotation of a document, or none at all.

Totality: total
Visibility: export
reAnnotateST : (ann->ann') ->SimpleDocTreeann->SimpleDocTreeann'
  Changes the annotation of a document.

Totality: total
Visibility: export
unAnnotateST : SimpleDocTreeann->SimpleDocTreexxx
  Removes all annotations.

Totality: total
Visibility: export
collectAnnotations : Monoidm=> (ann->m) ->SimpleDocTreeann->m
  Collects all annotations from a document.

Totality: total
Visibility: export
traverse : Applicativef=> (ann->fann') ->SimpleDocTreeann->f (SimpleDocTreeann')
  Transform a document based on its annotations.

Totality: total
Visibility: export
fromStream : SimpleDocStreamann->SimpleDocTreeann
Totality: total
Visibility: export
\ No newline at end of file +

Text.PrettyPrint.Prettyprinter.SimpleDocTree(source)

Definitions

dataSimpleDocTree : Type->Type
  Tree-like structure more suitable for rendering to a structured
format such as HTML.

Totality: total
Visibility: public export
Constructors:
STEmpty : SimpleDocTreeann
STChar : Char->SimpleDocTreeann
STText : Int->String->SimpleDocTreeann
STLine : Int->SimpleDocTreeann
STAnn : ann->SimpleDocTreeann->SimpleDocTreeann
STConcat : List (SimpleDocTreeann) ->SimpleDocTreeann
alterAnnotationsST : (ann->Listann') ->SimpleDocTreeann->SimpleDocTreeann'
  Changes the annotation of a document, or none at all.

Totality: total
Visibility: export
reAnnotateST : (ann->ann') ->SimpleDocTreeann->SimpleDocTreeann'
  Changes the annotation of a document.

Totality: total
Visibility: export
unAnnotateST : SimpleDocTreeann->SimpleDocTreexxx
  Removes all annotations.

Totality: total
Visibility: export
collectAnnotations : Monoidm=> (ann->m) ->SimpleDocTreeann->m
  Collects all annotations from a document.

Totality: total
Visibility: export
traverse : Applicativef=> (ann->fann') ->SimpleDocTreeann->f (SimpleDocTreeann')
  Transform a document based on its annotations.

Totality: total
Visibility: export
fromStream : SimpleDocStreamann->SimpleDocTreeann
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.PrettyPrint.Prettyprinter.Symbols.html b/contrib/docs/Text.PrettyPrint.Prettyprinter.Symbols.html index aaaf8242f1..285656ccff 100644 --- a/contrib/docs/Text.PrettyPrint.Prettyprinter.Symbols.html +++ b/contrib/docs/Text.PrettyPrint.Prettyprinter.Symbols.html @@ -61,4 +61,4 @@ -

Text.PrettyPrint.Prettyprinter.Symbols(source)

Definitions

squote : Docann
Totality: total
Visibility: export
dquote : Docann
Totality: total
Visibility: export
lparen : Docann
Totality: total
Visibility: export
rparen : Docann
Totality: total
Visibility: export
langle : Docann
Totality: total
Visibility: export
rangle : Docann
Totality: total
Visibility: export
lbracket : Docann
Totality: total
Visibility: export
rbracket : Docann
Totality: total
Visibility: export
lbrace : Docann
Totality: total
Visibility: export
rbrace : Docann
Totality: total
Visibility: export
semi : Docann
Totality: total
Visibility: export
colon : Docann
Totality: total
Visibility: export
comma : Docann
Totality: total
Visibility: export
space : Docann
Totality: total
Visibility: export
dot : Docann
Totality: total
Visibility: export
slash : Docann
Totality: total
Visibility: export
backslash : Docann
Totality: total
Visibility: export
equals : Docann
Totality: total
Visibility: export
pipe : Docann
Totality: total
Visibility: export
squotes : Docann->Docann
Totality: total
Visibility: export
dquotes : Docann->Docann
Totality: total
Visibility: export
parens : Docann->Docann
Totality: total
Visibility: export
parenthesise : Bool->Docann->Docann
Totality: total
Visibility: export
angles : Docann->Docann
Totality: total
Visibility: export
brackets : {defaultlbracket_ : Docann} -> {defaultrbracket_ : Docann} ->Docann->Docann
Totality: total
Visibility: export
braces : Docann->Docann
Totality: total
Visibility: export
\ No newline at end of file +

Text.PrettyPrint.Prettyprinter.Symbols(source)

Definitions

squote : Docann
Totality: total
Visibility: export
dquote : Docann
Totality: total
Visibility: export
lparen : Docann
Totality: total
Visibility: export
rparen : Docann
Totality: total
Visibility: export
langle : Docann
Totality: total
Visibility: export
rangle : Docann
Totality: total
Visibility: export
lbracket : Docann
Totality: total
Visibility: export
rbracket : Docann
Totality: total
Visibility: export
lbrace : Docann
Totality: total
Visibility: export
rbrace : Docann
Totality: total
Visibility: export
semi : Docann
Totality: total
Visibility: export
colon : Docann
Totality: total
Visibility: export
comma : Docann
Totality: total
Visibility: export
space : Docann
Totality: total
Visibility: export
dot : Docann
Totality: total
Visibility: export
slash : Docann
Totality: total
Visibility: export
backslash : Docann
Totality: total
Visibility: export
equals : Docann
Totality: total
Visibility: export
pipe : Docann
Totality: total
Visibility: export
squotes : Docann->Docann
Totality: total
Visibility: export
dquotes : Docann->Docann
Totality: total
Visibility: export
parens : Docann->Docann
Totality: total
Visibility: export
parenthesise : Bool->Docann->Docann
Totality: total
Visibility: export
angles : Docann->Docann
Totality: total
Visibility: export
brackets : {defaultlbracket_ : Docann} -> {defaultrbracket_ : Docann} ->Docann->Docann
Totality: total
Visibility: export
braces : Docann->Docann
Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.PrettyPrint.Prettyprinter.Util.html b/contrib/docs/Text.PrettyPrint.Prettyprinter.Util.html index 257d2fe854..11a6d10b8d 100644 --- a/contrib/docs/Text.PrettyPrint.Prettyprinter.Util.html +++ b/contrib/docs/Text.PrettyPrint.Prettyprinter.Util.html @@ -61,4 +61,4 @@ -

Text.PrettyPrint.Prettyprinter.Util(source)

Definitions

words : String->List (Docann)
  Split an input into word-sized `Doc`.

Totality: total
Visibility: export
reflow : String->Docann
  Insert soft linebreaks between words, so that text is broken into multiple
lines when it exceeds the available width.

Totality: total
Visibility: export
putDocW : Nat->Docann->IO ()
  Renders a document with a certain width.

Totality: total
Visibility: export
\ No newline at end of file +

Text.PrettyPrint.Prettyprinter.Util(source)

Definitions

words : String->List (Docann)
  Split an input into word-sized `Doc`.

Totality: total
Visibility: export
reflow : String->Docann
  Insert soft linebreaks between words, so that text is broken into multiple
lines when it exceeds the available width.

Totality: total
Visibility: export
putDocW : Nat->Docann->IO ()
  Renders a document with a certain width.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/contrib/docs/Text.PrettyPrint.Prettyprinter.html b/contrib/docs/Text.PrettyPrint.Prettyprinter.html index 774ff14809..f73004934f 100644 --- a/contrib/docs/Text.PrettyPrint.Prettyprinter.html +++ b/contrib/docs/Text.PrettyPrint.Prettyprinter.html @@ -66,4 +66,4 @@ [1] https://hackage.haskell.org/package/prettyprinter [2] https://hackage.haskell.org/package/prettyprinter-ansi-terminal -

Reexports

importpublic Text.PrettyPrint.Prettyprinter.Doc
importpublic Text.PrettyPrint.Prettyprinter.Symbols
\ No newline at end of file +

Reexports

importpublic Text.PrettyPrint.Prettyprinter.Doc
importpublic Text.PrettyPrint.Prettyprinter.Symbols
\ No newline at end of file diff --git a/contrib/docs/Text.Quantity.html b/contrib/docs/Text.Quantity.html index adb2992de5..829635bb4c 100644 --- a/contrib/docs/Text.Quantity.html +++ b/contrib/docs/Text.Quantity.html @@ -61,4 +61,4 @@ -

Text.Quantity(source)

Definitions

recordQuantity : Type
Totality: total
Visibility: public export
Constructor: 
Qty : Nat->MaybeNat->Quantity

Projections:
.max : Quantity->MaybeNat
.min : Quantity->Nat

Hint: 
ShowQuantity
.min : Quantity->Nat
Totality: total
Visibility: public export
min : Quantity->Nat
Totality: total
Visibility: public export
.max : Quantity->MaybeNat
Totality: total
Visibility: public export
max : Quantity->MaybeNat
Totality: total
Visibility: public export
between : Nat->Nat->Quantity
Totality: total
Visibility: public export
atLeast : Nat->Quantity
Totality: total
Visibility: public export
atMost : Nat->Quantity
Totality: total
Visibility: public export
exactly : Nat->Quantity
Totality: total
Visibility: public export
inOrder : Quantity->Bool
Totality: total
Visibility: public export
\ No newline at end of file +

Text.Quantity(source)

Definitions

recordQuantity : Type
Totality: total
Visibility: public export
Constructor: 
Qty : Nat->MaybeNat->Quantity

Projections:
.max : Quantity->MaybeNat
.min : Quantity->Nat

Hint: 
ShowQuantity
.min : Quantity->Nat
Totality: total
Visibility: public export
min : Quantity->Nat
Totality: total
Visibility: public export
.max : Quantity->MaybeNat
Totality: total
Visibility: public export
max : Quantity->MaybeNat
Totality: total
Visibility: public export
between : Nat->Nat->Quantity
Totality: total
Visibility: public export
atLeast : Nat->Quantity
Totality: total
Visibility: public export
atMost : Nat->Quantity
Totality: total
Visibility: public export
exactly : Nat->Quantity
Totality: total
Visibility: public export
inOrder : Quantity->Bool
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/docs/Text.Token.html b/contrib/docs/Text.Token.html index f2fd9bb408..918828ef84 100644 --- a/contrib/docs/Text.Token.html +++ b/contrib/docs/Text.Token.html @@ -61,4 +61,4 @@ -

Text.Token(source)

Definitions

interfaceTokenKind : Type->Type
  For a type `kind`, specify a way of converting the recognised
string into a value.

```idris example
data SimpleKind = SKString | SKInt | SKComma

TokenKind SimpleKind where
TokType SKString = String
TokType SKInt = Int
TokType SKComma = ()

tokValue SKString x = x
tokValue SKInt x = cast x
tokValue SKComma x = ()
```

Parameters: k
Methods:
TokType : k->Type
  The type that a token of this kind converts to.
tokValue : (kind : k) ->String->TokTypekind
  Convert a recognised string into a value. The type is determined
by the kind of token.

Implementations:
TokenKindPathTokenKind
TokenKindJSONStringTokenKind
TokenKindJSONTokenKind
TokType : TokenKindk=>k->Type
  The type that a token of this kind converts to.

Totality: total
Visibility: public export
tokValue : {auto__con : TokenKindk} -> (kind : k) ->String->TokTypekind
  Convert a recognised string into a value. The type is determined
by the kind of token.

Totality: total
Visibility: public export
recordToken : Type->Type
  A token of a particular kind and the text that was recognised.

Totality: total
Visibility: public export
Constructor: 
Tok : k->String->Tokenk

Projections:
.kind : Tokenk->k
.text : Tokenk->String
.kind : Tokenk->k
Totality: total
Visibility: public export
kind : Tokenk->k
Totality: total
Visibility: public export
.text : Tokenk->String
Totality: total
Visibility: public export
text : Tokenk->String
Totality: total
Visibility: public export
value : {auto{conArg:962} : TokenKindk} -> (t : Tokenk) ->TokType (kindt)
  Get the value of a `Token k`. The resulting type depends upon
the kind of token.

Totality: total
Visibility: public export
\ No newline at end of file +

Text.Token(source)

Definitions

interfaceTokenKind : Type->Type
  For a type `kind`, specify a way of converting the recognised
string into a value.

```idris example
data SimpleKind = SKString | SKInt | SKComma

TokenKind SimpleKind where
TokType SKString = String
TokType SKInt = Int
TokType SKComma = ()

tokValue SKString x = x
tokValue SKInt x = cast x
tokValue SKComma x = ()
```

Parameters: k
Methods:
TokType : k->Type
  The type that a token of this kind converts to.
tokValue : (kind : k) ->String->TokTypekind
  Convert a recognised string into a value. The type is determined
by the kind of token.

Implementations:
TokenKindPathTokenKind
TokenKindJSONStringTokenKind
TokenKindJSONTokenKind
TokType : TokenKindk=>k->Type
  The type that a token of this kind converts to.

Totality: total
Visibility: public export
tokValue : {auto__con : TokenKindk} -> (kind : k) ->String->TokTypekind
  Convert a recognised string into a value. The type is determined
by the kind of token.

Totality: total
Visibility: public export
recordToken : Type->Type
  A token of a particular kind and the text that was recognised.

Totality: total
Visibility: public export
Constructor: 
Tok : k->String->Tokenk

Projections:
.kind : Tokenk->k
.text : Tokenk->String
.kind : Tokenk->k
Totality: total
Visibility: public export
kind : Tokenk->k
Totality: total
Visibility: public export
.text : Tokenk->String
Totality: total
Visibility: public export
text : Tokenk->String
Totality: total
Visibility: public export
value : {auto{conArg:962} : TokenKindk} -> (t : Tokenk) ->TokType (kindt)
  Get the value of a `Token k`. The resulting type depends upon
the kind of token.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/contrib/index.html b/contrib/index.html index 904a300a3e..f043b35ec8 100644 --- a/contrib/index.html +++ b/contrib/index.html @@ -61,4 +61,4 @@ -

Package contrib - Namespaces

\ No newline at end of file +

Package contrib - Namespaces

\ No newline at end of file diff --git a/linear/docs/Control.Linear.LIO.html b/linear/docs/Control.Linear.LIO.html index 39ee4d06df..94e9d31d28 100644 --- a/linear/docs/Control.Linear.LIO.html +++ b/linear/docs/Control.Linear.LIO.html @@ -61,4 +61,4 @@ -

Control.Linear.LIO(source)

Definitions

interfaceLinearBind : (Type->Type) ->Type
  Like `Monad`, but the action and continuation must be run exactly once
to ensure that the computation is linear.

Parameters: io
Methods:
bindL : (1_ : ioa) -> (1_ : (a->iob)) ->iob

Implementation: 
LinearBindIO
bindL : LinearBindio=> (1_ : ioa) -> (1_ : (a->iob)) ->iob
Visibility: public export
dataUsage : Type
  Required usage on the result value of a computation

Totality: total
Visibility: public export
Constructors:
None : Usage
Linear : Usage
Unrestricted : Usage
fromInteger : (x : Integer) ->Either (x=0) (x=1) =>Usage
Visibility: public export
0ContType : (Type->Type) ->Usage->Usage->Type->Type->Type
Visibility: public export
dataL : (Type->Type) -> {defaultUnrestricted_ : Usage} ->Type->Type
  A wrapper which allows operations to state the multiplicity of the value
they return. For example, `L IO {use=1} File` is an IO operation which
returns a file that must be used exactly once.

Totality: total
Visibility: export
Constructors:
Pure0 : (0_ : a) ->Lioa
Pure1 : (1_ : a) ->Lioa
PureW : a->Lioa
Action : (1_ : ioa) ->Lioa
Bind : (1_ : Lioa) -> (1_ : ContTypeiou_actu_kab) ->Liob

Hints:
Applicativeio=>Applicative (Lio)
Functorio=>Functor (Lio)
(LinearBindio, HasLinearIOio) =>HasLinearIO (Lio)
(Applicativem, LinearBindm) =>Monad (Lm)
L0 : (Type->Type) ->Type->Type
Visibility: public export
L1 : (Type->Type) ->Type->Type
Visibility: public export
run : Applicativeio=>LinearBindio=> (1_ : Lioa) ->ioa
  Run a linear program exactly once, with unrestricted return value in the
underlying context

Visibility: export
(>>=) : LinearBindio=> (1_ : Lioa) -> (1_ : ContTypeiou_actu_kab) ->Liob
Visibility: export
Fixity Declaration: infixl operator, level 1
delay : (1_ : Liob) ->ContTypeiou_actu_k () b
Visibility: export
(>>) : LinearBindio=> (1_ : Lio ()) -> (1_ : Liob) ->Liob
Visibility: export
Fixity Declaration: infixl operator, level 1
pure0 : (0_ : a) ->Lioa
Visibility: export
pure1 : (1_ : a) ->Lioa
Visibility: export
LinearIO : (Type->Type) ->Type
Visibility: public export
\ No newline at end of file +

Control.Linear.LIO(source)

Definitions

interfaceLinearBind : (Type->Type) ->Type
  Like `Monad`, but the action and continuation must be run exactly once
to ensure that the computation is linear.

Parameters: io
Methods:
bindL : (1_ : ioa) -> (1_ : (a->iob)) ->iob

Implementation: 
LinearBindIO
bindL : LinearBindio=> (1_ : ioa) -> (1_ : (a->iob)) ->iob
Visibility: public export
dataUsage : Type
  Required usage on the result value of a computation

Totality: total
Visibility: public export
Constructors:
None : Usage
Linear : Usage
Unrestricted : Usage
fromInteger : (x : Integer) ->Either (x=0) (x=1) =>Usage
Visibility: public export
0ContType : (Type->Type) ->Usage->Usage->Type->Type->Type
Visibility: public export
dataL : (Type->Type) -> {defaultUnrestricted_ : Usage} ->Type->Type
  A wrapper which allows operations to state the multiplicity of the value
they return. For example, `L IO {use=1} File` is an IO operation which
returns a file that must be used exactly once.

Totality: total
Visibility: export
Constructors:
Pure0 : (0_ : a) ->Lioa
Pure1 : (1_ : a) ->Lioa
PureW : a->Lioa
Action : (1_ : ioa) ->Lioa
Bind : (1_ : Lioa) -> (1_ : ContTypeiou_actu_kab) ->Liob

Hints:
Applicativeio=>Applicative (Lio)
Functorio=>Functor (Lio)
(LinearBindio, HasLinearIOio) =>HasLinearIO (Lio)
(Applicativem, LinearBindm) =>Monad (Lm)
L0 : (Type->Type) ->Type->Type
Visibility: public export
L1 : (Type->Type) ->Type->Type
Visibility: public export
run : Applicativeio=>LinearBindio=> (1_ : Lioa) ->ioa
  Run a linear program exactly once, with unrestricted return value in the
underlying context

Visibility: export
(>>=) : LinearBindio=> (1_ : Lioa) -> (1_ : ContTypeiou_actu_kab) ->Liob
Visibility: export
Fixity Declaration: infixl operator, level 1
delay : (1_ : Liob) ->ContTypeiou_actu_k () b
Visibility: export
(>>) : LinearBindio=> (1_ : Lio ()) -> (1_ : Liob) ->Liob
Visibility: export
Fixity Declaration: infixl operator, level 1
pure0 : (0_ : a) ->Lioa
Visibility: export
pure1 : (1_ : a) ->Lioa
Visibility: export
LinearIO : (Type->Type) ->Type
Visibility: public export
\ No newline at end of file diff --git a/linear/docs/Data.Linear.Bifunctor.html b/linear/docs/Data.Linear.Bifunctor.html index 2779a4e430..52e70f415d 100644 --- a/linear/docs/Data.Linear.Bifunctor.html +++ b/linear/docs/Data.Linear.Bifunctor.html @@ -61,4 +61,4 @@ -

Data.Linear.Bifunctor(source)

Definitions

bimap : (a-@x) -@ ((b-@y) -@ (LPairab-@LPairxy))
  A linear bimap on linear pairs.
There is no general Bifunctor interface because it would not be implementable with
The same type signature consistently, for example LEither does not consume both
`f` and `g` linearly.

Totality: total
Visibility: public export
mapFst : (a-@x) -@ (LPairab-@LPairxb)
Totality: total
Visibility: public export
mapSnd : (b-@y) -@ (LPairab-@LPairay)
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Linear.Bifunctor(source)

Definitions

bimap : (a-@x) -@ ((b-@y) -@ (LPairab-@LPairxy))
  A linear bimap on linear pairs.
There is no general Bifunctor interface because it would not be implementable with
The same type signature consistently, for example LEither does not consume both
`f` and `g` linearly.

Totality: total
Visibility: public export
mapFst : (a-@x) -@ (LPairab-@LPairxb)
Totality: total
Visibility: public export
mapSnd : (b-@y) -@ (LPairab-@LPairay)
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/linear/docs/Data.Linear.Copies.html b/linear/docs/Data.Linear.Copies.html index 75f7da887e..f080c364e8 100644 --- a/linear/docs/Data.Linear.Copies.html +++ b/linear/docs/Data.Linear.Copies.html @@ -61,4 +61,4 @@ -

Data.Linear.Copies(source)

Definitions

dataCopies : Nat-> (0_ : a) ->Type
  Carries multiple linear copies of the same value. Usage: m `Copies` x
reads as "m copies of value x". This data structure is necessary to implement
algorithms that rely on linearity but also interact with Nat indicies, like
Vect and Fin.
This datastructure can be found in the paper "How to Take the Inverse of a Type" by
Daniel Marshall and Dominic Orchard where it's described as an exponent operator

Totality: total
Visibility: public export
Constructors:
Nil : 0 `Copies` x
(::) : (1x : a) -> (1_ : n `Copies` x) ->Sn `Copies` x

Fixity Declaration: infix operator, level 1
splitAt : (1m : Nat) -> ((m+n) `Copies` x) -@LPair (m `Copies` x) (n `Copies` x)
  Split copies into two

Totality: total
Visibility: export
(++) : (m `Copies` x) -@ ((n `Copies` x) -@ ((m+n) `Copies` x))
  Combine multiple copies into one

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
unzip : (m `Copies` (x#y)) -@LPair (m `Copies` x) (m `Copies` y)
  Copies of pairs are like pairs of copies

Totality: total
Visibility: export
pure : (x : a) ->n `Copies` x
Totality: total
Visibility: export
(<*>) : (m `Copies` f) -@ ((m `Copies` x) -@ (m `Copies` fx))
  Applies m copies of a linear function to m arguments, resulting in m copies
of the result.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
(<$>) : (f : a-@b) -> (m `Copies` x) -@ (m `Copies` fx)
  Apply f to `m` copies of `x`, resulting in `m` copies of `f x`.

Note that this is not quite `pure f <*> xs` because we don't actually
need to know `m` to be able to define `(<$>)` as we can proceed by
induction on xs.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 4
zip : (m `Copies` x) -@ ((m `Copies` y) -@ (m `Copies` (x#y)))
  Combine copies of two values into a pair of copies

Totality: total
Visibility: export
extract : (1 `Copies` x) -@a
  If we have a single copy, we can extract its value

Totality: total
Visibility: export
pair : (2 `Copies` x) -@LPairaa
  Extract 2 copies into a linear pair

Totality: total
Visibility: export
\ No newline at end of file +

Data.Linear.Copies(source)

Definitions

dataCopies : Nat-> (0_ : a) ->Type
  Carries multiple linear copies of the same value. Usage: m `Copies` x
reads as "m copies of value x". This data structure is necessary to implement
algorithms that rely on linearity but also interact with Nat indicies, like
Vect and Fin.
This datastructure can be found in the paper "How to Take the Inverse of a Type" by
Daniel Marshall and Dominic Orchard where it's described as an exponent operator

Totality: total
Visibility: public export
Constructors:
Nil : 0 `Copies` x
(::) : (1x : a) -> (1_ : n `Copies` x) ->Sn `Copies` x

Fixity Declaration: infix operator, level 1
splitAt : (1m : Nat) -> ((m+n) `Copies` x) -@LPair (m `Copies` x) (n `Copies` x)
  Split copies into two

Totality: total
Visibility: export
(++) : (m `Copies` x) -@ ((n `Copies` x) -@ ((m+n) `Copies` x))
  Combine multiple copies into one

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
unzip : (m `Copies` (x#y)) -@LPair (m `Copies` x) (m `Copies` y)
  Copies of pairs are like pairs of copies

Totality: total
Visibility: export
pure : (x : a) ->n `Copies` x
Totality: total
Visibility: export
(<*>) : (m `Copies` f) -@ ((m `Copies` x) -@ (m `Copies` fx))
  Applies m copies of a linear function to m arguments, resulting in m copies
of the result.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
(<$>) : (f : a-@b) -> (m `Copies` x) -@ (m `Copies` fx)
  Apply f to `m` copies of `x`, resulting in `m` copies of `f x`.

Note that this is not quite `pure f <*> xs` because we don't actually
need to know `m` to be able to define `(<$>)` as we can proceed by
induction on xs.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 4
zip : (m `Copies` x) -@ ((m `Copies` y) -@ (m `Copies` (x#y)))
  Combine copies of two values into a pair of copies

Totality: total
Visibility: export
extract : (1 `Copies` x) -@a
  If we have a single copy, we can extract its value

Totality: total
Visibility: export
pair : (2 `Copies` x) -@LPairaa
  Extract 2 copies into a linear pair

Totality: total
Visibility: export
\ No newline at end of file diff --git a/linear/docs/Data.Linear.Interface.html b/linear/docs/Data.Linear.Interface.html index c489de60ed..93b55d5737 100644 --- a/linear/docs/Data.Linear.Interface.html +++ b/linear/docs/Data.Linear.Interface.html @@ -61,4 +61,4 @@ -

Data.Linear.Interface(source)

Reexports

importpublic Data.Linear.Copies

Definitions

interfaceConsumable : Type->Type
  An interface for consumable types

Parameters: a
Methods:
consume : a-@ ()

Implementations:
ConsumableVoid
Consumable ()
ConsumableBool
Consumable ((!*)a)
ConsumableInt
consume : Consumablea=>a-@ ()
Totality: total
Visibility: public export
seq : Consumablea=>a-@ (b-@b)
  We can sequentially compose a computation returning a value that is
consumable with another computation. This is done by first consuming
the result of the first computation and then returning the second one.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 5
interfaceDuplicable : Type->Type
Parameters: a
Methods:
duplicate : (1v : a) ->2 `Copies` v

Implementations:
DuplicableVoid
Duplicable ()
DuplicableBool
Duplicable ((!*)a)
duplicate : Duplicablea=> (1v : a) ->2 `Copies` v
Totality: total
Visibility: public export
interfaceComonoid : Type->Type
  Comonoid is the dual of Monoid, it can consume a value linearly and duplicate a value linearly
`comult` returns a pair instead of 2 copies, because we do not guarantee that the two values
are identical, unlike with `duplicate`. For example if we build a comonoid out of a group, with
comult returning both the element given and its inverse:
comult x = x # inverse x
It is not necessarily the case that x equals its inverse. For example the finite groupe of size
3, has 1 and 2 as inverses of each other wrt to addition, but are not the same.

Parameters: a
Methods:
counit : a-@ ()
comult : a-@LPairaa

Implementation: 
Comonoid ((!*)a)
counit : Comonoida=>a-@ ()
Totality: total
Visibility: public export
comult : Comonoida=>a-@LPairaa
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Linear.Interface(source)

Reexports

importpublic Data.Linear.Copies

Definitions

interfaceConsumable : Type->Type
  An interface for consumable types

Parameters: a
Methods:
consume : a-@ ()

Implementations:
ConsumableVoid
Consumable ()
ConsumableBool
Consumable ((!*)a)
ConsumableInt
consume : Consumablea=>a-@ ()
Totality: total
Visibility: public export
seq : Consumablea=>a-@ (b-@b)
  We can sequentially compose a computation returning a value that is
consumable with another computation. This is done by first consuming
the result of the first computation and then returning the second one.

Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 5
interfaceDuplicable : Type->Type
Parameters: a
Methods:
duplicate : (1v : a) ->2 `Copies` v

Implementations:
DuplicableVoid
Duplicable ()
DuplicableBool
Duplicable ((!*)a)
duplicate : Duplicablea=> (1v : a) ->2 `Copies` v
Totality: total
Visibility: public export
interfaceComonoid : Type->Type
  Comonoid is the dual of Monoid, it can consume a value linearly and duplicate a value linearly
`comult` returns a pair instead of 2 copies, because we do not guarantee that the two values
are identical, unlike with `duplicate`. For example if we build a comonoid out of a group, with
comult returning both the element given and its inverse:
comult x = x # inverse x
It is not necessarily the case that x equals its inverse. For example the finite groupe of size
3, has 1 and 2 as inverses of each other wrt to addition, but are not the same.

Parameters: a
Methods:
counit : a-@ ()
comult : a-@LPairaa

Implementation: 
Comonoid ((!*)a)
counit : Comonoida=>a-@ ()
Totality: total
Visibility: public export
comult : Comonoida=>a-@LPairaa
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/linear/docs/Data.Linear.LEither.html b/linear/docs/Data.Linear.LEither.html index 04974f173d..9e152fbfa7 100644 --- a/linear/docs/Data.Linear.LEither.html +++ b/linear/docs/Data.Linear.LEither.html @@ -61,4 +61,4 @@ -

Data.Linear.LEither(source)

Definitions

dataLEither : Type->Type->Type
Totality: total
Visibility: public export
Constructors:
Left : a-@LEitherab
Right : b-@LEitherab

Hints:
(Consumablea, Consumableb) =>Consumable (LEitherab)
(Duplicablea, Duplicableb) =>Duplicable (LEitherab)
\ No newline at end of file +

Data.Linear.LEither(source)

Definitions

dataLEither : Type->Type->Type
Totality: total
Visibility: public export
Constructors:
Left : a-@LEitherab
Right : b-@LEitherab

Hints:
(Consumablea, Consumableb) =>Consumable (LEitherab)
(Duplicablea, Duplicableb) =>Duplicable (LEitherab)
\ No newline at end of file diff --git a/linear/docs/Data.Linear.LList.html b/linear/docs/Data.Linear.LList.html index 533faac5e8..331927f17d 100644 --- a/linear/docs/Data.Linear.LList.html +++ b/linear/docs/Data.Linear.LList.html @@ -61,4 +61,4 @@ -

Data.Linear.LList(source)

Definitions

dataLList : Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : LLista
(::) : a-@ (LLista-@LLista)

Hints:
Consumablea=>Consumable (LLista)
Duplicablea=>Duplicable (LLista)
length : Consumablea=>LLista-@LNat
Totality: total
Visibility: export
\ No newline at end of file +

Data.Linear.LList(source)

Definitions

dataLList : Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : LLista
(::) : a-@ (LLista-@LLista)

Hints:
Consumablea=>Consumable (LLista)
Duplicablea=>Duplicable (LLista)
length : Consumablea=>LLista-@LNat
Totality: total
Visibility: export
\ No newline at end of file diff --git a/linear/docs/Data.Linear.LMaybe.html b/linear/docs/Data.Linear.LMaybe.html index ab5472adc4..3e252e22b4 100644 --- a/linear/docs/Data.Linear.LMaybe.html +++ b/linear/docs/Data.Linear.LMaybe.html @@ -61,4 +61,4 @@ -

Data.Linear.LMaybe(source)

Definitions

dataLMaybe : Type->Type
  Linear version of Maybe

Totality: total
Visibility: public export
Constructors:
Nothing : LMaybea
Just : a-@LMaybea

Hints:
Consumablea=>Consumable (LMaybea)
Duplicablea=>Duplicable (LMaybea)
(<$>) : a-@b->LMaybea-@LMaybeb
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 4
\ No newline at end of file +

Data.Linear.LMaybe(source)

Definitions

dataLMaybe : Type->Type
  Linear version of Maybe

Totality: total
Visibility: public export
Constructors:
Nothing : LMaybea
Just : a-@LMaybea

Hints:
Consumablea=>Consumable (LMaybea)
Duplicablea=>Duplicable (LMaybea)
(<$>) : a-@b->LMaybea-@LMaybeb
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 4
\ No newline at end of file diff --git a/linear/docs/Data.Linear.LNat.html b/linear/docs/Data.Linear.LNat.html index 0150102550..346509b3fd 100644 --- a/linear/docs/Data.Linear.LNat.html +++ b/linear/docs/Data.Linear.LNat.html @@ -61,4 +61,4 @@ -

Data.Linear.LNat(source)

Definitions

dataLNat : Type
  Linear Nat

Totality: total
Visibility: public export
Constructors:
Zero : LNat
Succ : LNat-@LNat

Hints:
ConsumableLNat
DuplicableLNat
0toNat : LNat-@Nat
  Convert a linear nat to an unrestricted Nat, only usable at the type level
because we canot call `S` with an argument that is expected to be used exactly once

Totality: total
Visibility: public export
add : LNat-@ (LNat-@LNat)
  Add two linear numbers

Totality: total
Visibility: export
mult : (1n : LNat) -> (0l : LNat) -> {auto1_ : toNatn `Copies` l} ->LNat
  Multiply two linear numbers

Totality: total
Visibility: export
square : (1v : LNat) -> {auto1_ : toNatv `Copies` v} ->LNat
  Square a linear number

Totality: total
Visibility: export
\ No newline at end of file +

Data.Linear.LNat(source)

Definitions

dataLNat : Type
  Linear Nat

Totality: total
Visibility: public export
Constructors:
Zero : LNat
Succ : LNat-@LNat

Hints:
ConsumableLNat
DuplicableLNat
0toNat : LNat-@Nat
  Convert a linear nat to an unrestricted Nat, only usable at the type level
because we canot call `S` with an argument that is expected to be used exactly once

Totality: total
Visibility: public export
add : LNat-@ (LNat-@LNat)
  Add two linear numbers

Totality: total
Visibility: export
mult : (1n : LNat) -> (0l : LNat) -> {auto1_ : toNatn `Copies` l} ->LNat
  Multiply two linear numbers

Totality: total
Visibility: export
square : (1v : LNat) -> {auto1_ : toNatv `Copies` v} ->LNat
  Square a linear number

Totality: total
Visibility: export
\ No newline at end of file diff --git a/linear/docs/Data.Linear.LVect.html b/linear/docs/Data.Linear.LVect.html index 03c133a2a0..563edc6fbc 100644 --- a/linear/docs/Data.Linear.LVect.html +++ b/linear/docs/Data.Linear.LVect.html @@ -61,4 +61,4 @@ -

Data.Linear.LVect(source)

Definitions

dataLVect : Nat->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : LVect0a
(::) : a-@ (LVectna-@LVect (Sn) a)

Hints:
Consumablea=>Consumable (LVectna)
Duplicablea=>Duplicable (LVectna)
lookup : Fin (Sn) -@ (LVect (Sn) a-@LPaira (LVectna))
Totality: total
Visibility: export
insertAt : Fin (Sn) -@ (a-@ (LVectna-@LVect (Sn) a))
Totality: total
Visibility: export
uncurry : (a-@ (b-@c)) -@ (LPairab-@c)
Totality: total
Visibility: export
lookupInsertAtIdentity : (k : Fin (Sn)) -> (vs : LVect (Sn) a) ->uncurry (insertAtk) (lookupkvs) =vs
Totality: total
Visibility: export
insertAtLookupIdentity : (k : Fin (Sn)) -> (w : a) -> (vs : LVectna) ->lookupk (insertAtkwvs) =w#vs
Totality: total
Visibility: export
(<$>) : a-@b->LVectna-@LVectnb
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 4
pure : a->LVectna
Totality: total
Visibility: export
(<*>) : LVectn (a-@b) -@ (LVectna-@LVectnb)
Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
zip : LVectna-@ (LVectnb-@LVectn (LPairab))
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 6
unzip : LVectn (LPairab) -@LPair (LVectna) (LVectnb)
Totality: total
Visibility: export
splitAt : (1m : Nat) ->LVect (m+n) a-@LPair (LVectma) (LVectna)
Totality: total
Visibility: export
(++) : LVectma-@ (LVectna-@LVect (m+n) a)
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
lfoldr : (0p : (Nat->Type)) ->a-@ (pn-@p (Sn)) ->p0-@ (LVectna-@pn)
Totality: total
Visibility: export
lfoldl : (0p : (Nat->Type)) ->a-@ (pn-@p (Sn)) ->p0-@ (LVectna-@pn)
Totality: total
Visibility: export
reverse : LVectma-@LVectma
Totality: total
Visibility: export
map : (0f : a-@b) -> {auto1_ : n `Copies` f} ->LVectna-@LVectnb
  Map a linear vector

Totality: total
Visibility: export
length : Consumablea=>LVectna-@LNat
  Extract all

Totality: total
Visibility: export
foldl : (0f : acc-@ (a-@acc)) -> {auto1_ : n `Copies` f} ->acc-@ (LVectna-@acc)
  Fold a linear vector.

Totality: total
Visibility: export
replicate : (1n : LNat) -> (0v : a) -> {auto1_ : toNatn `Copies` v} ->LVect (toNatn) a
Totality: total
Visibility: export
(>>=) : LVectna-@ ((0f : a-@LVectmb) ->LVect (n*m) b)
  Bind a linear vector.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 1
copiesToVect : (n `Copies` v) -@LVectna
  Extract all the copies into a vector of the same length as the number of copies.

Totality: total
Visibility: export
\ No newline at end of file +

Data.Linear.LVect(source)

Definitions

dataLVect : Nat->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : LVect0a
(::) : a-@ (LVectna-@LVect (Sn) a)

Hints:
Consumablea=>Consumable (LVectna)
Duplicablea=>Duplicable (LVectna)
lookup : Fin (Sn) -@ (LVect (Sn) a-@LPaira (LVectna))
Totality: total
Visibility: export
insertAt : Fin (Sn) -@ (a-@ (LVectna-@LVect (Sn) a))
Totality: total
Visibility: export
uncurry : (a-@ (b-@c)) -@ (LPairab-@c)
Totality: total
Visibility: export
lookupInsertAtIdentity : (k : Fin (Sn)) -> (vs : LVect (Sn) a) ->uncurry (insertAtk) (lookupkvs) =vs
Totality: total
Visibility: export
insertAtLookupIdentity : (k : Fin (Sn)) -> (w : a) -> (vs : LVectna) ->lookupk (insertAtkwvs) =w#vs
Totality: total
Visibility: export
(<$>) : a-@b->LVectna-@LVectnb
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 4
pure : a->LVectna
Totality: total
Visibility: export
(<*>) : LVectn (a-@b) -@ (LVectna-@LVectnb)
Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 3
zip : LVectna-@ (LVectnb-@LVectn (LPairab))
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 6
unzip : LVectn (LPairab) -@LPair (LVectna) (LVectnb)
Totality: total
Visibility: export
splitAt : (1m : Nat) ->LVect (m+n) a-@LPair (LVectma) (LVectna)
Totality: total
Visibility: export
(++) : LVectma-@ (LVectna-@LVect (m+n) a)
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
lfoldr : (0p : (Nat->Type)) ->a-@ (pn-@p (Sn)) ->p0-@ (LVectna-@pn)
Totality: total
Visibility: export
lfoldl : (0p : (Nat->Type)) ->a-@ (pn-@p (Sn)) ->p0-@ (LVectna-@pn)
Totality: total
Visibility: export
reverse : LVectma-@LVectma
Totality: total
Visibility: export
map : (0f : a-@b) -> {auto1_ : n `Copies` f} ->LVectna-@LVectnb
  Map a linear vector

Totality: total
Visibility: export
length : Consumablea=>LVectna-@LNat
  Extract all

Totality: total
Visibility: export
foldl : (0f : acc-@ (a-@acc)) -> {auto1_ : n `Copies` f} ->acc-@ (LVectna-@acc)
  Fold a linear vector.

Totality: total
Visibility: export
replicate : (1n : LNat) -> (0v : a) -> {auto1_ : toNatn `Copies` v} ->LVect (toNatn) a
Totality: total
Visibility: export
(>>=) : LVectna-@ ((0f : a-@LVectmb) ->LVect (n*m) b)
  Bind a linear vector.

Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 1
copiesToVect : (n `Copies` v) -@LVectna
  Extract all the copies into a vector of the same length as the number of copies.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/linear/docs/Data.Linear.List.LQuantifiers.html b/linear/docs/Data.Linear.List.LQuantifiers.html index 0895d2dbff..90d9d72d49 100644 --- a/linear/docs/Data.Linear.List.LQuantifiers.html +++ b/linear/docs/Data.Linear.List.LQuantifiers.html @@ -61,4 +61,4 @@ -

Data.Linear.List.LQuantifiers(source)

Definitions

dataLAll : (a->Type) ->Lista->Type
Totality: total
Visibility: public export
Constructors:
Nil : LAllp []
(::) : px-@ (LAllpxs-@LAllp (x::xs))
\ No newline at end of file +

Data.Linear.List.LQuantifiers(source)

Definitions

dataLAll : (a->Type) ->Lista->Type
Totality: total
Visibility: public export
Constructors:
Nil : LAllp []
(::) : px-@ (LAllpxs-@LAllp (x::xs))
\ No newline at end of file diff --git a/linear/docs/Data.Linear.Notation.html b/linear/docs/Data.Linear.Notation.html index 3fd4de5cc4..afad47255f 100644 --- a/linear/docs/Data.Linear.Notation.html +++ b/linear/docs/Data.Linear.Notation.html @@ -61,4 +61,4 @@ -

Data.Linear.Notation(source)

Definitions

(-@) : Type->Type->Type
  Infix notation for linear implication

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 0
id : a-@a
  Linear identity function

Totality: total
Visibility: public export
(.) : (b-@c) -@ ((a-@b) -@ (a-@c))
  Linear function composition

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 9
record(!*) : Type->Type
  Prefix notation for the linear unrestricted modality

Totality: total
Visibility: public export
Constructor: 
MkBang : a->(!*)a

Projection: 
.unrestricted : (!*)a->a

Hints:
Comonoid ((!*)a)
Consumable ((!*)a)
Duplicable ((!*)a)

Fixity Declaration: prefix operator, level 5
.unrestricted : (!*)a->a
Totality: total
Visibility: public export
unrestricted : (!*)a->a
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Linear.Notation(source)

Definitions

(-@) : Type->Type->Type
  Infix notation for linear implication

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 0
id : a-@a
  Linear identity function

Totality: total
Visibility: public export
(.) : (b-@c) -@ ((a-@b) -@ (a-@c))
  Linear function composition

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 9
record(!*) : Type->Type
  Prefix notation for the linear unrestricted modality

Totality: total
Visibility: public export
Constructor: 
MkBang : a->(!*)a

Projection: 
.unrestricted : (!*)a->a

Hints:
Comonoid ((!*)a)
Consumable ((!*)a)
Duplicable ((!*)a)

Fixity Declaration: prefix operator, level 5
.unrestricted : (!*)a->a
Totality: total
Visibility: public export
unrestricted : (!*)a->a
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/linear/docs/Data.Linear.html b/linear/docs/Data.Linear.html index 2e8e53d2a0..686cd66e66 100644 --- a/linear/docs/Data.Linear.html +++ b/linear/docs/Data.Linear.html @@ -61,4 +61,4 @@ -

Data.Linear(source)

Reexports

importpublic Data.Linear.Notation as Data.Linear
importpublic Data.Linear.Interface as Data.Linear
importpublic Data.Linear.Copies as Data.Linear
\ No newline at end of file +

Data.Linear(source)

Reexports

importpublic Data.Linear.Notation as Data.Linear
importpublic Data.Linear.Interface as Data.Linear
importpublic Data.Linear.Copies as Data.Linear
\ No newline at end of file diff --git a/linear/index.html b/linear/index.html index 178b997f68..727f9ba4f1 100644 --- a/linear/index.html +++ b/linear/index.html @@ -61,4 +61,4 @@ -

Package linear - Namespaces

\ No newline at end of file +

Package linear - Namespaces

\ No newline at end of file diff --git a/network/docs/Control.Linear.Network.html b/network/docs/Control.Linear.Network.html index fc82226064..df86836d22 100644 --- a/network/docs/Control.Linear.Network.html +++ b/network/docs/Control.Linear.Network.html @@ -61,4 +61,4 @@ -

Control.Linear.Network(source)

Reexports

importpublic Data.Either
importpublic Data.Maybe
importpublic Network.Socket.Data

Definitions

dataSocketState : Type
Totality: total
Visibility: public export
Constructors:
Ready : SocketState
Bound : SocketState
Listening : SocketState
Open : SocketState
Closed : SocketState
dataAction : SocketState->Type
  Define the domain of SocketState transitions.
Label every such transition.

Totality: total
Visibility: public export
Constructors:
Bind : ActionReady
Listen : ActionBound
Accept : ActionListening
Connect : ActionReady
Send : ActionOpen
Receive : ActionOpen
Close : Actionst
dataSocket : SocketState->Type
Totality: total
Visibility: export
Constructor: 
MkSocket : Socket->Socketst
Next : Actionst->Bool->Type
  For every label of a SocketState transition
and a success value of the transition,
define its result.

Visibility: public export
newSocket : LinearIOio=>SocketFamily->SocketType->ProtocolNumber-> ((1_ : SocketReady) ->Lio ()) -> (SocketError->Lio ()) ->Lio ()
Visibility: export
close : LinearIOio=> (1_ : Socketst) ->L1io (SocketClosed)
Visibility: export
done : LinearIOio=> (1_ : SocketClosed) ->Lio ()
Visibility: export
bind : LinearIOio=> (1_ : SocketReady) ->MaybeSocketAddress->Port->L1io (Res (MaybeSocketError) (\res=>NextBind (isNothingres)))
Visibility: export
connect : LinearIOio=> (1_ : SocketReady) ->SocketAddress->Port->L1io (Res (MaybeSocketError) (\res=>NextConnect (isNothingres)))
Visibility: export
listen : LinearIOio=> (1_ : SocketBound) ->L1io (Res (MaybeSocketError) (\res=>NextListen (isNothingres)))
Visibility: export
accept : LinearIOio=> (1_ : SocketListening) ->L1io (Res (MaybeSocketError) (\res=>NextAccept (isNothingres)))
Visibility: export
send : LinearIOio=> (1_ : SocketOpen) ->String->L1io (Res (MaybeSocketError) (\res=>NextSend (isNothingres)))
Visibility: export
recv : LinearIOio=> (1_ : SocketOpen) ->ByteLength->L1io (Res (EitherSocketError (String, ResultCode)) (\res=>NextReceive (isRightres)))
Visibility: export
recvAll : LinearIOio=> (1_ : SocketOpen) ->L1io (Res (EitherSocketErrorString) (\res=>NextReceive (isRightres)))
Visibility: export
sendBytes : LinearIOio=> (1_ : SocketOpen) ->ListBits8->L1io (Res (MaybeSocketError) (\res=>NextSend (isNothingres)))
Visibility: export
recvBytes : LinearIOio=> (1_ : SocketOpen) ->ByteLength->L1io (Res (EitherSocketError (ListBits8)) (\res=>NextReceive (isRightres)))
Visibility: export
recvAllBytes : LinearIOio=> (1_ : SocketOpen) ->L1io (Res (EitherSocketError (ListBits8)) (\res=>NextReceive (isRightres)))
Visibility: export
\ No newline at end of file +

Control.Linear.Network(source)

Reexports

importpublic Data.Either
importpublic Data.Maybe
importpublic Network.Socket.Data

Definitions

dataSocketState : Type
Totality: total
Visibility: public export
Constructors:
Ready : SocketState
Bound : SocketState
Listening : SocketState
Open : SocketState
Closed : SocketState
dataAction : SocketState->Type
  Define the domain of SocketState transitions.
Label every such transition.

Totality: total
Visibility: public export
Constructors:
Bind : ActionReady
Listen : ActionBound
Accept : ActionListening
Connect : ActionReady
Send : ActionOpen
Receive : ActionOpen
Close : Actionst
dataSocket : SocketState->Type
Totality: total
Visibility: export
Constructor: 
MkSocket : Socket->Socketst
Next : Actionst->Bool->Type
  For every label of a SocketState transition
and a success value of the transition,
define its result.

Visibility: public export
newSocket : LinearIOio=>SocketFamily->SocketType->ProtocolNumber-> ((1_ : SocketReady) ->Lio ()) -> (SocketError->Lio ()) ->Lio ()
Visibility: export
close : LinearIOio=> (1_ : Socketst) ->L1io (SocketClosed)
Visibility: export
done : LinearIOio=> (1_ : SocketClosed) ->Lio ()
Visibility: export
bind : LinearIOio=> (1_ : SocketReady) ->MaybeSocketAddress->Port->L1io (Res (MaybeSocketError) (\res=>NextBind (isNothingres)))
Visibility: export
connect : LinearIOio=> (1_ : SocketReady) ->SocketAddress->Port->L1io (Res (MaybeSocketError) (\res=>NextConnect (isNothingres)))
Visibility: export
listen : LinearIOio=> (1_ : SocketBound) ->L1io (Res (MaybeSocketError) (\res=>NextListen (isNothingres)))
Visibility: export
accept : LinearIOio=> (1_ : SocketListening) ->L1io (Res (MaybeSocketError) (\res=>NextAccept (isNothingres)))
Visibility: export
send : LinearIOio=> (1_ : SocketOpen) ->String->L1io (Res (MaybeSocketError) (\res=>NextSend (isNothingres)))
Visibility: export
recv : LinearIOio=> (1_ : SocketOpen) ->ByteLength->L1io (Res (EitherSocketError (String, ResultCode)) (\res=>NextReceive (isRightres)))
Visibility: export
recvAll : LinearIOio=> (1_ : SocketOpen) ->L1io (Res (EitherSocketErrorString) (\res=>NextReceive (isRightres)))
Visibility: export
sendBytes : LinearIOio=> (1_ : SocketOpen) ->ListBits8->L1io (Res (MaybeSocketError) (\res=>NextSend (isNothingres)))
Visibility: export
recvBytes : LinearIOio=> (1_ : SocketOpen) ->ByteLength->L1io (Res (EitherSocketError (ListBits8)) (\res=>NextReceive (isRightres)))
Visibility: export
recvAllBytes : LinearIOio=> (1_ : SocketOpen) ->L1io (Res (EitherSocketError (ListBits8)) (\res=>NextReceive (isRightres)))
Visibility: export
\ No newline at end of file diff --git a/network/docs/Network.FFI.html b/network/docs/Network.FFI.html index 9372d4b59f..603927e580 100644 --- a/network/docs/Network.FFI.html +++ b/network/docs/Network.FFI.html @@ -64,4 +64,4 @@

Network.FFI(source)

FFI binding to the low-Level C Sockets bindings for Idris.
 
 Modified (C) The Idris Community, 2020
-

Definitions

prim__idrnet_socket : Int->Int->Int->PrimIOInt
prim__idrnet_close : SocketDescriptor->PrimIOInt
prim__idrnet_bind : SocketDescriptor->Int->Int->String->Port->PrimIOInt
prim__idrnet_connect : SocketDescriptor->Int->Int->String->Port->PrimIOInt
prim__idrnet_listen : SocketDescriptor->Int->PrimIOInt
prim__idrnet_fdopen : Int->String->PrimIOAnyPtr
prim__idrnet_sockaddr_family : AnyPtr->PrimIOInt
prim__idrnet_sockaddr_ipv4 : AnyPtr->PrimIOString
prim__idrnet_sockaddr_unix : AnyPtr->PrimIOString
prim__idrnet_sockaddr_ipv4_port : AnyPtr->PrimIOInt
prim__idrnet_sockaddr_port : SocketDescriptor->PrimIOInt
prim__idrnet_create_sockaddr : PrimIOAnyPtr
prim__idrnet_accept : SocketDescriptor->AnyPtr->PrimIOInt
prim__idrnet_send : SocketDescriptor->String->PrimIOInt
prim__idrnet_send_bytes : SocketDescriptor->Buffer->Int->Bits32->PrimIOInt
prim__idrnet_send_buf : SocketDescriptor->AnyPtr->Int->PrimIOInt
prim__idrnet_recv : SocketDescriptor->Int->PrimIOAnyPtr
prim__idrnet_recv_bytes : SocketDescriptor->Buffer->Int->Int->PrimIOInt
prim__idrnet_recv_buf : SocketDescriptor->AnyPtr->Int->PrimIOInt
prim__idrnet_sendto : SocketDescriptor->String->String->Port->Int->PrimIOInt
prim__idrnet_sendto_buf : SocketDescriptor->AnyPtr->Int->String->Port->Int->PrimIOInt
prim__idrnet_recvfrom : SocketDescriptor->Int->PrimIOAnyPtr
prim__idrnet_recvfrom_buf : SocketDescriptor->AnyPtr->Int->PrimIOAnyPtr
prim__idrnet_get_recv_res : AnyPtr->PrimIOInt
prim__idrnet_get_recv_payload : AnyPtr->PrimIOString
prim__idrnet_free_recv_struct : AnyPtr->PrimIO ()
prim__idrnet_get_recvfrom_res : AnyPtr->PrimIOInt
prim__idrnet_get_recvfrom_payload : AnyPtr->PrimIOString
prim__idrnet_get_recvfrom_sockaddr : AnyPtr->PrimIOAnyPtr
prim__idrnet_free_recvfrom_struct : AnyPtr->PrimIO ()
prim__idrnet_geteagain : PrimIOInt
prim__idrnet_errno : PrimIOInt
prim__idrnet_peek : AnyPtr->Int->PrimIOInt
prim__idrnet_poke : AnyPtr->Int->Int->PrimIO ()
\ No newline at end of file +

Definitions

prim__idrnet_socket : Int->Int->Int->PrimIOInt
prim__idrnet_close : SocketDescriptor->PrimIOInt
prim__idrnet_bind : SocketDescriptor->Int->Int->String->Port->PrimIOInt
prim__idrnet_connect : SocketDescriptor->Int->Int->String->Port->PrimIOInt
prim__idrnet_listen : SocketDescriptor->Int->PrimIOInt
prim__idrnet_fdopen : Int->String->PrimIOAnyPtr
prim__idrnet_sockaddr_family : AnyPtr->PrimIOInt
prim__idrnet_sockaddr_ipv4 : AnyPtr->PrimIOString
prim__idrnet_sockaddr_unix : AnyPtr->PrimIOString
prim__idrnet_sockaddr_ipv4_port : AnyPtr->PrimIOInt
prim__idrnet_sockaddr_port : SocketDescriptor->PrimIOInt
prim__idrnet_create_sockaddr : PrimIOAnyPtr
prim__idrnet_accept : SocketDescriptor->AnyPtr->PrimIOInt
prim__idrnet_send : SocketDescriptor->String->PrimIOInt
prim__idrnet_send_bytes : SocketDescriptor->Buffer->Int->Bits32->PrimIOInt
prim__idrnet_send_buf : SocketDescriptor->AnyPtr->Int->PrimIOInt
prim__idrnet_recv : SocketDescriptor->Int->PrimIOAnyPtr
prim__idrnet_recv_bytes : SocketDescriptor->Buffer->Int->Int->PrimIOInt
prim__idrnet_recv_buf : SocketDescriptor->AnyPtr->Int->PrimIOInt
prim__idrnet_sendto : SocketDescriptor->String->String->Port->Int->PrimIOInt
prim__idrnet_sendto_buf : SocketDescriptor->AnyPtr->Int->String->Port->Int->PrimIOInt
prim__idrnet_recvfrom : SocketDescriptor->Int->PrimIOAnyPtr
prim__idrnet_recvfrom_buf : SocketDescriptor->AnyPtr->Int->PrimIOAnyPtr
prim__idrnet_get_recv_res : AnyPtr->PrimIOInt
prim__idrnet_get_recv_payload : AnyPtr->PrimIOString
prim__idrnet_free_recv_struct : AnyPtr->PrimIO ()
prim__idrnet_get_recvfrom_res : AnyPtr->PrimIOInt
prim__idrnet_get_recvfrom_payload : AnyPtr->PrimIOString
prim__idrnet_get_recvfrom_sockaddr : AnyPtr->PrimIOAnyPtr
prim__idrnet_free_recvfrom_struct : AnyPtr->PrimIO ()
prim__idrnet_geteagain : PrimIOInt
prim__idrnet_errno : PrimIOInt
prim__idrnet_peek : AnyPtr->Int->PrimIOInt
prim__idrnet_poke : AnyPtr->Int->Int->PrimIO ()
\ No newline at end of file diff --git a/network/docs/Network.Socket.Data.html b/network/docs/Network.Socket.Data.html index 38237827f8..d4ad97a585 100644 --- a/network/docs/Network.Socket.Data.html +++ b/network/docs/Network.Socket.Data.html @@ -66,4 +66,4 @@ Original (C) SimonJF, MIT Licensed, 2014 Modified (C) The Idris Community, 2015, 2016, 2019 -

Definitions

ByteLength : Type
Visibility: public export
ResultCode : Type
Visibility: public export
ProtocolNumber : Type
  Protocol Number.

Generally good enough to just set it to 0.

Visibility: public export
SocketError : Type
  SocketError: Error thrown by a socket operation

Visibility: public export
SocketDescriptor : Type
  SocketDescriptor: Native C Socket Descriptor

Visibility: public export
Port : Type
Visibility: public export
BACKLOG : Int
  Backlog used within listen() call -- number of incoming calls

Visibility: export
EAGAIN : Int
Visibility: export
getErrno : HasIOio=>ioSocketError
Visibility: export
nullPtr : HasIOio=>AnyPtr->ioBool
Visibility: export
interfaceToCode : Type->Type
Parameters: a
Methods:
toCode : a->Int

Implementations:
ToCodeSocketFamily
ToCodeSocketType
toCode : ToCodea=>a->Int
Visibility: public export
dataSocketFamily : Type
  Socket Families

The ones that people might actually use. We're not going to need US
Government proprietary ones.

Totality: total
Visibility: public export
Constructors:
AF_UNSPEC : SocketFamily
  Unspecified
AF_UNIX : SocketFamily
  Unix type sockets
AF_INET : SocketFamily
  IP / UDP etc. IPv4
AF_INET6 : SocketFamily
   IP / UDP etc. IPv6

Hints:
ShowSocketFamily
ToCodeSocketFamily
getSocketFamily : Int->MaybeSocketFamily
Visibility: export
dataSocketType : Type
  Socket Types.

Totality: total
Visibility: public export
Constructors:
NotASocket : SocketType
  Not a socket, used in certain operations
Stream : SocketType
  TCP
Datagram : SocketType
  UDP
RawSocket : SocketType
  Raw sockets

Hints:
ShowSocketType
ToCodeSocketType
dataSocketAddress : Type
  Network Addresses

Totality: total
Visibility: public export
Constructors:
IPv4Addr : Int->Int->Int->Int->SocketAddress
IPv6Addr : SocketAddress
  Not implemented (yet)
Hostname : String->SocketAddress
InvalidAddress : SocketAddress
  Used when there's a parse error

Hint: 
ShowSocketAddress
parseIPv4 : String->SocketAddress
  Parses a textual representation of an IPv4 address into a SocketAddress

Visibility: export
recordUDPRecvData : Type
Totality: total
Visibility: public export
Constructor: 
MkUDPRecvData : SocketAddress->Port->String->Int->UDPRecvData

Projections:
.data_len : UDPRecvData->Int
.recv_data : UDPRecvData->String
.remote_addr : UDPRecvData->SocketAddress
.remote_port : UDPRecvData->Port
.remote_addr : UDPRecvData->SocketAddress
Visibility: public export
remote_addr : UDPRecvData->SocketAddress
Visibility: public export
.remote_port : UDPRecvData->Port
Visibility: public export
remote_port : UDPRecvData->Port
Visibility: public export
.recv_data : UDPRecvData->String
Visibility: public export
recv_data : UDPRecvData->String
Visibility: public export
.data_len : UDPRecvData->Int
Visibility: public export
data_len : UDPRecvData->Int
Visibility: public export
recordUDPAddrInfo : Type
Totality: total
Visibility: public export
Constructor: 
MkUDPAddrInfo : SocketAddress->Port->UDPAddrInfo

Projections:
.remote_addr : UDPAddrInfo->SocketAddress
.remote_port : UDPAddrInfo->Port
.remote_addr : UDPAddrInfo->SocketAddress
Visibility: public export
remote_addr : UDPAddrInfo->SocketAddress
Visibility: public export
.remote_port : UDPAddrInfo->Port
Visibility: public export
remote_port : UDPAddrInfo->Port
Visibility: public export
recordSocket : Type
  The metadata about a socket

Totality: total
Visibility: public export
Constructor: 
MkSocket : SocketDescriptor->SocketFamily->SocketType->ProtocolNumber->Socket

Projections:
.descriptor : Socket->SocketDescriptor
.family : Socket->SocketFamily
.protocolNumber : Socket->ProtocolNumber
.socketType : Socket->SocketType
.descriptor : Socket->SocketDescriptor
Visibility: public export
descriptor : Socket->SocketDescriptor
Visibility: public export
.family : Socket->SocketFamily
Visibility: public export
family : Socket->SocketFamily
Visibility: public export
.socketType : Socket->SocketType
Visibility: public export
socketType : Socket->SocketType
Visibility: public export
.protocolNumber : Socket->ProtocolNumber
Visibility: public export
protocolNumber : Socket->ProtocolNumber
Visibility: public export
\ No newline at end of file +

Definitions

ByteLength : Type
Visibility: public export
ResultCode : Type
Visibility: public export
ProtocolNumber : Type
  Protocol Number.

Generally good enough to just set it to 0.

Visibility: public export
SocketError : Type
  SocketError: Error thrown by a socket operation

Visibility: public export
SocketDescriptor : Type
  SocketDescriptor: Native C Socket Descriptor

Visibility: public export
Port : Type
Visibility: public export
BACKLOG : Int
  Backlog used within listen() call -- number of incoming calls

Visibility: export
EAGAIN : Int
Visibility: export
getErrno : HasIOio=>ioSocketError
Visibility: export
nullPtr : HasIOio=>AnyPtr->ioBool
Visibility: export
interfaceToCode : Type->Type
Parameters: a
Methods:
toCode : a->Int

Implementations:
ToCodeSocketFamily
ToCodeSocketType
toCode : ToCodea=>a->Int
Visibility: public export
dataSocketFamily : Type
  Socket Families

The ones that people might actually use. We're not going to need US
Government proprietary ones.

Totality: total
Visibility: public export
Constructors:
AF_UNSPEC : SocketFamily
  Unspecified
AF_UNIX : SocketFamily
  Unix type sockets
AF_INET : SocketFamily
  IP / UDP etc. IPv4
AF_INET6 : SocketFamily
   IP / UDP etc. IPv6

Hints:
ShowSocketFamily
ToCodeSocketFamily
getSocketFamily : Int->MaybeSocketFamily
Visibility: export
dataSocketType : Type
  Socket Types.

Totality: total
Visibility: public export
Constructors:
NotASocket : SocketType
  Not a socket, used in certain operations
Stream : SocketType
  TCP
Datagram : SocketType
  UDP
RawSocket : SocketType
  Raw sockets

Hints:
ShowSocketType
ToCodeSocketType
dataSocketAddress : Type
  Network Addresses

Totality: total
Visibility: public export
Constructors:
IPv4Addr : Int->Int->Int->Int->SocketAddress
IPv6Addr : SocketAddress
  Not implemented (yet)
Hostname : String->SocketAddress
InvalidAddress : SocketAddress
  Used when there's a parse error

Hint: 
ShowSocketAddress
parseIPv4 : String->SocketAddress
  Parses a textual representation of an IPv4 address into a SocketAddress

Visibility: export
recordUDPRecvData : Type
Totality: total
Visibility: public export
Constructor: 
MkUDPRecvData : SocketAddress->Port->String->Int->UDPRecvData

Projections:
.data_len : UDPRecvData->Int
.recv_data : UDPRecvData->String
.remote_addr : UDPRecvData->SocketAddress
.remote_port : UDPRecvData->Port
.remote_addr : UDPRecvData->SocketAddress
Visibility: public export
remote_addr : UDPRecvData->SocketAddress
Visibility: public export
.remote_port : UDPRecvData->Port
Visibility: public export
remote_port : UDPRecvData->Port
Visibility: public export
.recv_data : UDPRecvData->String
Visibility: public export
recv_data : UDPRecvData->String
Visibility: public export
.data_len : UDPRecvData->Int
Visibility: public export
data_len : UDPRecvData->Int
Visibility: public export
recordUDPAddrInfo : Type
Totality: total
Visibility: public export
Constructor: 
MkUDPAddrInfo : SocketAddress->Port->UDPAddrInfo

Projections:
.remote_addr : UDPAddrInfo->SocketAddress
.remote_port : UDPAddrInfo->Port
.remote_addr : UDPAddrInfo->SocketAddress
Visibility: public export
remote_addr : UDPAddrInfo->SocketAddress
Visibility: public export
.remote_port : UDPAddrInfo->Port
Visibility: public export
remote_port : UDPAddrInfo->Port
Visibility: public export
recordSocket : Type
  The metadata about a socket

Totality: total
Visibility: public export
Constructor: 
MkSocket : SocketDescriptor->SocketFamily->SocketType->ProtocolNumber->Socket

Projections:
.descriptor : Socket->SocketDescriptor
.family : Socket->SocketFamily
.protocolNumber : Socket->ProtocolNumber
.socketType : Socket->SocketType
.descriptor : Socket->SocketDescriptor
Visibility: public export
descriptor : Socket->SocketDescriptor
Visibility: public export
.family : Socket->SocketFamily
Visibility: public export
family : Socket->SocketFamily
Visibility: public export
.socketType : Socket->SocketType
Visibility: public export
socketType : Socket->SocketType
Visibility: public export
.protocolNumber : Socket->ProtocolNumber
Visibility: public export
protocolNumber : Socket->ProtocolNumber
Visibility: public export
\ No newline at end of file diff --git a/network/docs/Network.Socket.Raw.html b/network/docs/Network.Socket.Raw.html index 72729e9772..9e7f35e2f9 100644 --- a/network/docs/Network.Socket.Raw.html +++ b/network/docs/Network.Socket.Raw.html @@ -66,4 +66,4 @@ Original (C) SimonJF, MIT Licensed, 2014 Modified (C) The Idris Community, 2015, 2016 -

Reexports

importpublic Network.Socket.Data

Definitions

dataRecvStructPtr : Type
Totality: total
Visibility: public export
Constructor: 
RSPtr : AnyPtr->RecvStructPtr
dataRecvfromStructPtr : Type
Totality: total
Visibility: public export
Constructor: 
RFPtr : AnyPtr->RecvfromStructPtr
dataBufPtr : Type
Totality: total
Visibility: public export
Constructor: 
BPtr : AnyPtr->BufPtr
dataSockaddrPtr : Type
Totality: total
Visibility: public export
Constructor: 
SAPtr : AnyPtr->SockaddrPtr
sock_poke : HasIOio=>BufPtr->Int->Int->io ()
  Put a value in a buffer

Visibility: export
sock_peek : HasIOio=>BufPtr->Int->ioInt
  Take a value from a buffer

Visibility: export
sock_free : HasIOio=>BufPtr->io ()
  Frees a given pointer

Visibility: export
sockaddr_free : HasIOio=>SockaddrPtr->io ()
Visibility: export
sock_alloc : HasIOio=>ByteLength->ioBufPtr
  Allocates an amount of memory given by the ByteLength parameter.

Used to allocate a mutable pointer to be given to the Recv functions.

Visibility: export
getSockPort : HasIOio=>Socket->ioPort
  Retrieves the port the given socket is bound to

Visibility: export
getSockAddr : HasIOio=>SockaddrPtr->ioSocketAddress
  Retrieves a socket address from a sockaddr pointer

Visibility: export
freeRecvStruct : HasIOio=>RecvStructPtr->io ()
Visibility: export
freeRecvfromStruct : HasIOio=>RecvfromStructPtr->io ()
  Utility to extract data.

Visibility: export
sendBuf : HasIOio=>Socket->BufPtr->ByteLength->io (EitherSocketErrorResultCode)
  Sends the data in a given memory location

Returns on failure a `SocketError`
Returns on success the `ResultCode`

@sock The socket on which to send the message.
@ptr The location containing the data to send.
@len How much of the data to send.

Visibility: export
recvBuf : HasIOio=>Socket->BufPtr->ByteLength->io (EitherSocketErrorResultCode)
  Receive data from a given memory location.

Returns on failure a `SocketError`
Returns on success the `ResultCode`

@sock The socket on which to receive the message.
@ptr The location containing the data to receive.
@len How much of the data to receive.

Visibility: export
sendToBuf : HasIOio=>Socket->SocketAddress->Port->BufPtr->ByteLength->io (EitherSocketErrorResultCode)
  Send a message stored in some buffer.

Returns on failure a `SocketError`
Returns on success the `ResultCode`

@sock The socket on which to send the message.
@addr Address of the recipient.
@port The port on which to send the message.
@ptr A Pointer to the buffer containing the message.
@len The size of the message.

Visibility: export
foreignGetRecvfromPayload : HasIOio=>RecvfromStructPtr->ioString
  Utility function to get the payload of the sent message as a `String`.

Visibility: export
foreignGetRecvfromAddr : HasIOio=>RecvfromStructPtr->ioSocketAddress
  Utility function to return senders socket address.

Visibility: export
foreignGetRecvfromPort : HasIOio=>RecvfromStructPtr->ioPort
  Utility function to return sender's IPV4 port.

Visibility: export
recvFromBuf : HasIOio=>Socket->BufPtr->ByteLength->io (EitherSocketError (UDPAddrInfo, ResultCode))
  Receive a message placed on a 'known' buffer.

Returns on failure a `SocketError`.
Returns on success a pair of
+ `UDPAddrInfo` :: The address of the sender.
+ `Int` :: Result value from underlying function.

@sock The channel on which to receive.
@ptr Pointer to the buffer to place the message.
@len Size of the expected message.

Visibility: export
\ No newline at end of file +

Reexports

importpublic Network.Socket.Data

Definitions

dataRecvStructPtr : Type
Totality: total
Visibility: public export
Constructor: 
RSPtr : AnyPtr->RecvStructPtr
dataRecvfromStructPtr : Type
Totality: total
Visibility: public export
Constructor: 
RFPtr : AnyPtr->RecvfromStructPtr
dataBufPtr : Type
Totality: total
Visibility: public export
Constructor: 
BPtr : AnyPtr->BufPtr
dataSockaddrPtr : Type
Totality: total
Visibility: public export
Constructor: 
SAPtr : AnyPtr->SockaddrPtr
sock_poke : HasIOio=>BufPtr->Int->Int->io ()
  Put a value in a buffer

Visibility: export
sock_peek : HasIOio=>BufPtr->Int->ioInt
  Take a value from a buffer

Visibility: export
sock_free : HasIOio=>BufPtr->io ()
  Frees a given pointer

Visibility: export
sockaddr_free : HasIOio=>SockaddrPtr->io ()
Visibility: export
sock_alloc : HasIOio=>ByteLength->ioBufPtr
  Allocates an amount of memory given by the ByteLength parameter.

Used to allocate a mutable pointer to be given to the Recv functions.

Visibility: export
getSockPort : HasIOio=>Socket->ioPort
  Retrieves the port the given socket is bound to

Visibility: export
getSockAddr : HasIOio=>SockaddrPtr->ioSocketAddress
  Retrieves a socket address from a sockaddr pointer

Visibility: export
freeRecvStruct : HasIOio=>RecvStructPtr->io ()
Visibility: export
freeRecvfromStruct : HasIOio=>RecvfromStructPtr->io ()
  Utility to extract data.

Visibility: export
sendBuf : HasIOio=>Socket->BufPtr->ByteLength->io (EitherSocketErrorResultCode)
  Sends the data in a given memory location

Returns on failure a `SocketError`
Returns on success the `ResultCode`

@sock The socket on which to send the message.
@ptr The location containing the data to send.
@len How much of the data to send.

Visibility: export
recvBuf : HasIOio=>Socket->BufPtr->ByteLength->io (EitherSocketErrorResultCode)
  Receive data from a given memory location.

Returns on failure a `SocketError`
Returns on success the `ResultCode`

@sock The socket on which to receive the message.
@ptr The location containing the data to receive.
@len How much of the data to receive.

Visibility: export
sendToBuf : HasIOio=>Socket->SocketAddress->Port->BufPtr->ByteLength->io (EitherSocketErrorResultCode)
  Send a message stored in some buffer.

Returns on failure a `SocketError`
Returns on success the `ResultCode`

@sock The socket on which to send the message.
@addr Address of the recipient.
@port The port on which to send the message.
@ptr A Pointer to the buffer containing the message.
@len The size of the message.

Visibility: export
foreignGetRecvfromPayload : HasIOio=>RecvfromStructPtr->ioString
  Utility function to get the payload of the sent message as a `String`.

Visibility: export
foreignGetRecvfromAddr : HasIOio=>RecvfromStructPtr->ioSocketAddress
  Utility function to return senders socket address.

Visibility: export
foreignGetRecvfromPort : HasIOio=>RecvfromStructPtr->ioPort
  Utility function to return sender's IPV4 port.

Visibility: export
recvFromBuf : HasIOio=>Socket->BufPtr->ByteLength->io (EitherSocketError (UDPAddrInfo, ResultCode))
  Receive a message placed on a 'known' buffer.

Returns on failure a `SocketError`.
Returns on success a pair of
+ `UDPAddrInfo` :: The address of the sender.
+ `Int` :: Result value from underlying function.

@sock The channel on which to receive.
@ptr Pointer to the buffer to place the message.
@len Size of the expected message.

Visibility: export
\ No newline at end of file diff --git a/network/docs/Network.Socket.html b/network/docs/Network.Socket.html index c9e6500758..a64dfbd920 100644 --- a/network/docs/Network.Socket.html +++ b/network/docs/Network.Socket.html @@ -65,4 +65,4 @@ Original (C) SimonJF, MIT Licensed, 2014 Modified (C) The Idris Community, 2015, 2016, 2019 -

Reexports

importpublic Network.Socket.Data

Definitions

socket : HasIOio=>SocketFamily->SocketType->ProtocolNumber->io (EitherSocketErrorSocket)
  Creates a UNIX socket with the given family, socket type and protocol
number. Returns either a socket or an error.

Visibility: export
close : HasIOio=>Socket->io ()
  Close a socket

Visibility: export
bind : HasIOio=>Socket->MaybeSocketAddress->Port->ioInt
  Binds a socket to the given socket address and port.
Returns 0 on success, an error code otherwise.

Visibility: export
connect : HasIOio=>Socket->SocketAddress->Port->ioResultCode
  Connects to a given address and port.
Returns 0 on success, and an error number on error.

Visibility: export
listen : HasIOio=>Socket->ioInt
  Listens on a bound socket.

@sock The socket to listen on.

Visibility: export
accept : HasIOio=>Socket->io (EitherSocketError (Socket, SocketAddress))
  Accept a connection on the provided socket.

Returns on failure a `SocketError`
Returns on success a pairing of:
+ `Socket` :: The socket representing the connection.
+ `SocketAddress` :: The

@sock The socket used to establish connection.

Visibility: export
send : HasIOio=>Socket->String->io (EitherSocketErrorResultCode)
  Send data on the specified socket.

Returns on failure a `SocketError`.
Returns on success the `ResultCode`.

@sock The socket on which to send the message.
@msg The data to send.

Visibility: export
recv : HasIOio=>Socket->ByteLength->io (EitherSocketError (String, ResultCode))
  Receive data on the specified socket.

Returns on failure a `SocketError`
Returns on success a pairing of:
+ `String` :: The payload.
+ `ResultCode` :: The result of the underlying function.

@sock The socket on which to receive the message.
@len How much of the data to receive.

Visibility: export
recvAll : HasIOio=>Socket->io (EitherSocketErrorString)
  Receive all the remaining data on the specified socket.

Returns on failure a `SocketError`
Returns on success the payload `String`

@sock The socket on which to receive the message.

Visibility: export
sendTo : HasIOio=>Socket->SocketAddress->Port->String->io (EitherSocketErrorByteLength)
  Send a message.

Returns on failure a `SocketError`
Returns on success the `ResultCode`

@sock The socket on which to send the message.
@addr Address of the recipient.
@port The port on which to send the message.
@msg The message to send.

Visibility: export
recvFrom : HasIOio=>Socket->ByteLength->io (EitherSocketError (UDPAddrInfo, (String, ResultCode)))
  Receive a message.

Returns on failure a `SocketError`.
Returns on success a triple of
+ `UDPAddrInfo` :: The address of the sender.
+ `String` :: The payload.
+ `Int` :: Result value from underlying function.

@sock The channel on which to receive.
@len Size of the expected message.

Visibility: export
sendBytes : HasIOm=>Socket->ListBits8->m (EitherSocketErrorInt)
  Send data on the specified socket.

Returns on failure a `SocketError`.
Returns on success the number of bytes sent.

@sock The socket on which to send the message.
@bytes The data to send.

Visibility: export
recvBytes : HasIOm=>Socket->ByteLength->m (EitherSocketError (ListBits8))
  Receive data on the specified socket.

Returns on failure a `SocketError`
Returns on success a pairing of:
+ `List Bits8` :: The payload.
+ `ResultCode` :: The result of the underlying function.

@sock The socket on which to receive the message.
@max_size How much of the data to receive at most.

Visibility: export
recvAllBytes : HasIOio=>Socket->io (EitherSocketError (ListBits8))
  Receive all the remaining data on the specified socket.

Returns on failure a `SocketError`
Returns on success the payload `List Bits8`

@sock The socket on which to receive the message.

Visibility: export
\ No newline at end of file +

Reexports

importpublic Network.Socket.Data

Definitions

socket : HasIOio=>SocketFamily->SocketType->ProtocolNumber->io (EitherSocketErrorSocket)
  Creates a UNIX socket with the given family, socket type and protocol
number. Returns either a socket or an error.

Visibility: export
close : HasIOio=>Socket->io ()
  Close a socket

Visibility: export
bind : HasIOio=>Socket->MaybeSocketAddress->Port->ioInt
  Binds a socket to the given socket address and port.
Returns 0 on success, an error code otherwise.

Visibility: export
connect : HasIOio=>Socket->SocketAddress->Port->ioResultCode
  Connects to a given address and port.
Returns 0 on success, and an error number on error.

Visibility: export
listen : HasIOio=>Socket->ioInt
  Listens on a bound socket.

@sock The socket to listen on.

Visibility: export
accept : HasIOio=>Socket->io (EitherSocketError (Socket, SocketAddress))
  Accept a connection on the provided socket.

Returns on failure a `SocketError`
Returns on success a pairing of:
+ `Socket` :: The socket representing the connection.
+ `SocketAddress` :: The

@sock The socket used to establish connection.

Visibility: export
send : HasIOio=>Socket->String->io (EitherSocketErrorResultCode)
  Send data on the specified socket.

Returns on failure a `SocketError`.
Returns on success the `ResultCode`.

@sock The socket on which to send the message.
@msg The data to send.

Visibility: export
recv : HasIOio=>Socket->ByteLength->io (EitherSocketError (String, ResultCode))
  Receive data on the specified socket.

Returns on failure a `SocketError`
Returns on success a pairing of:
+ `String` :: The payload.
+ `ResultCode` :: The result of the underlying function.

@sock The socket on which to receive the message.
@len How much of the data to receive.

Visibility: export
recvAll : HasIOio=>Socket->io (EitherSocketErrorString)
  Receive all the remaining data on the specified socket.

Returns on failure a `SocketError`
Returns on success the payload `String`

@sock The socket on which to receive the message.

Visibility: export
sendTo : HasIOio=>Socket->SocketAddress->Port->String->io (EitherSocketErrorByteLength)
  Send a message.

Returns on failure a `SocketError`
Returns on success the `ResultCode`

@sock The socket on which to send the message.
@addr Address of the recipient.
@port The port on which to send the message.
@msg The message to send.

Visibility: export
recvFrom : HasIOio=>Socket->ByteLength->io (EitherSocketError (UDPAddrInfo, (String, ResultCode)))
  Receive a message.

Returns on failure a `SocketError`.
Returns on success a triple of
+ `UDPAddrInfo` :: The address of the sender.
+ `String` :: The payload.
+ `Int` :: Result value from underlying function.

@sock The channel on which to receive.
@len Size of the expected message.

Visibility: export
sendBytes : HasIOm=>Socket->ListBits8->m (EitherSocketErrorInt)
  Send data on the specified socket.

Returns on failure a `SocketError`.
Returns on success the number of bytes sent.

@sock The socket on which to send the message.
@bytes The data to send.

Visibility: export
recvBytes : HasIOm=>Socket->ByteLength->m (EitherSocketError (ListBits8))
  Receive data on the specified socket.

Returns on failure a `SocketError`
Returns on success a pairing of:
+ `List Bits8` :: The payload.
+ `ResultCode` :: The result of the underlying function.

@sock The socket on which to receive the message.
@max_size How much of the data to receive at most.

Visibility: export
recvAllBytes : HasIOio=>Socket->io (EitherSocketError (ListBits8))
  Receive all the remaining data on the specified socket.

Returns on failure a `SocketError`
Returns on success the payload `List Bits8`

@sock The socket on which to receive the message.

Visibility: export
\ No newline at end of file diff --git a/network/index.html b/network/index.html index 1b71170e88..d460ade0bb 100644 --- a/network/index.html +++ b/network/index.html @@ -61,4 +61,4 @@ -

Package network - Namespaces

\ No newline at end of file +

Package network - Namespaces

\ No newline at end of file diff --git a/papers/docs/Control.DivideAndConquer.html b/papers/docs/Control.DivideAndConquer.html index fa643e4f47..f1760c0730 100644 --- a/papers/docs/Control.DivideAndConquer.html +++ b/papers/docs/Control.DivideAndConquer.html @@ -70,4 +70,4 @@ The original paper relies on Coq's impredicative Set axiom, something we don't have access to in Idris 2. We can however reproduce the results by ignoring the type levels -

Definitions

dataListF : Type->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : ListFax
(::) : a->x->ListFax

Hint: 
Functor (ListFa)
dataMu : (Type->Type) ->Type
Totality: total
Visibility: public export
Constructor: 
MkMu : (r->Muf) ->fr->Muf
inMu : f (Muf) ->Muf
Totality: total
Visibility: public export
outMu : Functorf=>Muf->f (Muf)
Totality: total
Visibility: public export
fold : Functorf=> (fa->a) ->Muf->a
Totality: total
Visibility: public export
KAlg : Type
Totality: total
Visibility: public export
0Mono : (KAlg->KAlg) ->Type
Totality: total
Visibility: public export
dataMu : (KAlg->KAlg) ->KAlg
Totality: total
Visibility: public export
Constructor: 
MkMu : (ax->Mufx) ->fax->Mufx
inMu : f (Muf) x->Mufx
Totality: total
Visibility: public export
outMu : Monof->Mufx->f (Muf) x
Totality: total
Visibility: public export
0FoldT : (0_ : (Type->Type)) ->KAlg->Type->Type
Totality: total
Visibility: public export
0SAlgF : (0_ : (Type->Type)) ->KAlg-> (Type->Type) ->Type
Totality: total
Visibility: public export
0SAlg : (0_ : (Type->Type)) -> (Type->Type) ->Type
Totality: total
Visibility: public export
0AlgF : (0_ : (Type->Type)) ->KAlg-> (Type->Type) ->Type
Totality: total
Visibility: public export
0Alg : (0_ : (Type->Type)) -> (Type->Type) ->Type
Totality: total
Visibility: public export
inSAlg : (0f : (Type->Type)) ->SAlgFSAlgx->SAlgx
Totality: total
Visibility: public export
monoSAlgF : (0f : (Type->Type)) ->MonoSAlgF
Totality: total
Visibility: public export
outSAlg : (0f : (Type->Type)) ->SAlgx->SAlgFSAlgx
Totality: total
Visibility: public export
inAlg : (0f : (Type->Type)) ->AlgFAlgx->Algx
Totality: total
Visibility: public export
monoAlgF : (0f : (Type->Type)) ->MonoAlgF
Totality: total
Visibility: public export
outAlg : (0f : (Type->Type)) ->Algx->AlgFAlgx
Totality: total
Visibility: public export
0DcF : (0_ : (Type->Type)) ->Type->Type
Totality: total
Visibility: public export
functorDcF : (0f : (Type->Type)) ->FunctorDcF
Totality: total
Visibility: public export
0Dc : (0_ : (Type->Type)) ->Type
Totality: total
Visibility: public export
fold : (0f : (Type->Type)) ->FoldTAlgDc
Totality: total
Visibility: public export
recordRevealT : (0_ : (Type->Type)) -> (Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkRevealT : (0f : (Type->Type)) -> ((r->Dc) ->xDc) ->RevealTxr

Projection: 
.runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc

Hint: 
(0f : (Type->Type)) ->Functor (RevealTx)
.runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc
Totality: total
Visibility: public export
runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc
Totality: total
Visibility: public export
functorRevealT : (0f : (Type->Type)) ->Functor (RevealTx)
Totality: total
Visibility: public export
promote : (0f : (Type->Type)) ->Functorx=>SAlgx->Alg (RevealTx)
Totality: total
Visibility: public export
sfold : (0f : (Type->Type)) ->FoldTSAlgDc
Totality: total
Visibility: public export
inDc : (0f : (Type->Type)) ->fDc->Dc
Totality: total
Visibility: public export
0list : Type->Type
Totality: total
Visibility: public export
Nil : lista
Totality: total
Visibility: public export
(::) : a->lista->lista
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
fromList : Lista->lista
Totality: total
Visibility: public export
0SpanF : Type->Type->Type
Totality: total
Visibility: public export
spanr : FoldTSAlgr-> (a->Bool) ->r->SpanFar
Totality: total
Visibility: export
zero : Nat->Nat
Totality: total
Visibility: export
matchExample : Bool
Totality: total
Visibility: export
sortExample : String->String
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataListF : Type->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : ListFax
(::) : a->x->ListFax

Hint: 
Functor (ListFa)
dataMu : (Type->Type) ->Type
Totality: total
Visibility: public export
Constructor: 
MkMu : (r->Muf) ->fr->Muf
inMu : f (Muf) ->Muf
Totality: total
Visibility: public export
outMu : Functorf=>Muf->f (Muf)
Totality: total
Visibility: public export
fold : Functorf=> (fa->a) ->Muf->a
Totality: total
Visibility: public export
KAlg : Type
Totality: total
Visibility: public export
0Mono : (KAlg->KAlg) ->Type
Totality: total
Visibility: public export
dataMu : (KAlg->KAlg) ->KAlg
Totality: total
Visibility: public export
Constructor: 
MkMu : (ax->Mufx) ->fax->Mufx
inMu : f (Muf) x->Mufx
Totality: total
Visibility: public export
outMu : Monof->Mufx->f (Muf) x
Totality: total
Visibility: public export
0FoldT : (0_ : (Type->Type)) ->KAlg->Type->Type
Totality: total
Visibility: public export
0SAlgF : (0_ : (Type->Type)) ->KAlg-> (Type->Type) ->Type
Totality: total
Visibility: public export
0SAlg : (0_ : (Type->Type)) -> (Type->Type) ->Type
Totality: total
Visibility: public export
0AlgF : (0_ : (Type->Type)) ->KAlg-> (Type->Type) ->Type
Totality: total
Visibility: public export
0Alg : (0_ : (Type->Type)) -> (Type->Type) ->Type
Totality: total
Visibility: public export
inSAlg : (0f : (Type->Type)) ->SAlgFSAlgx->SAlgx
Totality: total
Visibility: public export
monoSAlgF : (0f : (Type->Type)) ->MonoSAlgF
Totality: total
Visibility: public export
outSAlg : (0f : (Type->Type)) ->SAlgx->SAlgFSAlgx
Totality: total
Visibility: public export
inAlg : (0f : (Type->Type)) ->AlgFAlgx->Algx
Totality: total
Visibility: public export
monoAlgF : (0f : (Type->Type)) ->MonoAlgF
Totality: total
Visibility: public export
outAlg : (0f : (Type->Type)) ->Algx->AlgFAlgx
Totality: total
Visibility: public export
0DcF : (0_ : (Type->Type)) ->Type->Type
Totality: total
Visibility: public export
functorDcF : (0f : (Type->Type)) ->FunctorDcF
Totality: total
Visibility: public export
0Dc : (0_ : (Type->Type)) ->Type
Totality: total
Visibility: public export
fold : (0f : (Type->Type)) ->FoldTAlgDc
Totality: total
Visibility: public export
recordRevealT : (0_ : (Type->Type)) -> (Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkRevealT : (0f : (Type->Type)) -> ((r->Dc) ->xDc) ->RevealTxr

Projection: 
.runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc

Hint: 
(0f : (Type->Type)) ->Functor (RevealTx)
.runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc
Totality: total
Visibility: public export
runRevealT : (0f : (Type->Type)) ->RevealTxr-> (r->Dc) ->xDc
Totality: total
Visibility: public export
functorRevealT : (0f : (Type->Type)) ->Functor (RevealTx)
Totality: total
Visibility: public export
promote : (0f : (Type->Type)) ->Functorx=>SAlgx->Alg (RevealTx)
Totality: total
Visibility: public export
sfold : (0f : (Type->Type)) ->FoldTSAlgDc
Totality: total
Visibility: public export
inDc : (0f : (Type->Type)) ->fDc->Dc
Totality: total
Visibility: public export
0list : Type->Type
Totality: total
Visibility: public export
Nil : lista
Totality: total
Visibility: public export
(::) : a->lista->lista
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
fromList : Lista->lista
Totality: total
Visibility: public export
0SpanF : Type->Type->Type
Totality: total
Visibility: public export
spanr : FoldTSAlgr-> (a->Bool) ->r->SpanFar
Totality: total
Visibility: export
zero : Nat->Nat
Totality: total
Visibility: export
matchExample : Bool
Totality: total
Visibility: export
sortExample : String->String
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.Container.html b/papers/docs/Data.Container.html index fa0c7de6cf..4f34696fdf 100644 --- a/papers/docs/Data.Container.html +++ b/papers/docs/Data.Container.html @@ -61,4 +61,4 @@ -

Data.Container(source)

Definitions

recordContainer : Type
Totality: total
Visibility: public export
Constructor: 
MkContainer : (Shape : Type) -> (Shape->Type) ->Container

Projections:
.Position : ({rec:0} : Container) ->Shape{rec:0}->Type
.Shape : Container->Type

Hint: 
Functor (Extensionc)
.Shape : Container->Type
Totality: total
Visibility: public export
Shape : Container->Type
Totality: total
Visibility: public export
.Position : ({rec:0} : Container) ->Shape{rec:0}->Type
Totality: total
Visibility: public export
Position : ({rec:0} : Container) ->Shape{rec:0}->Type
Totality: total
Visibility: public export
recordExtension : Container->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkExtension : (shape : Shapec) -> (Positioncshape->x) ->Extensioncx

Projections:
.payloads : ({rec:0} : Extensioncx) ->Positionc (shape{rec:0}) ->x
.shape : Extensioncx->Shapec

Hint: 
Functor (Extensionc)
.shape : Extensioncx->Shapec
Totality: total
Visibility: public export
shape : Extensioncx->Shapec
Totality: total
Visibility: public export
.payloads : ({rec:0} : Extensioncx) ->Positionc (shape{rec:0}) ->x
Totality: total
Visibility: public export
payloads : ({rec:0} : Extensioncx) ->Positionc (shape{rec:0}) ->x
Totality: total
Visibility: public export
recordMorphism : Container->Container->Type
Totality: total
Visibility: public export
Constructor: 
MkMorphism : (shapeMorphism : (Shapec->Shaped)) -> (Positiond (shapeMorphisms) ->Positioncs) ->Morphismcd

Projections:
.positionMorphism : ({rec:0} : Morphismcd) ->Positiond (shapeMorphism{rec:0}s) ->Positioncs
.shapeMorphism : Morphismcd->Shapec->Shaped
.shapeMorphism : Morphismcd->Shapec->Shaped
Totality: total
Visibility: public export
shapeMorphism : Morphismcd->Shapec->Shaped
Totality: total
Visibility: public export
.positionMorphism : ({rec:0} : Morphismcd) ->Positiond (shapeMorphism{rec:0}s) ->Positioncs
Totality: total
Visibility: public export
positionMorphism : ({rec:0} : Morphismcd) ->Positiond (shapeMorphism{rec:0}s) ->Positioncs
Totality: total
Visibility: public export
Extension : Morphismcd->Extensioncx->Extensiondx
Totality: total
Visibility: public export
Const : Type->Container
Totality: total
Visibility: public export
toConst : k->Extension (Constk) x
Totality: total
Visibility: export
fromConst : Extension (Constk) x->k
Totality: total
Visibility: export
Identity : Container
Totality: total
Visibility: public export
toIdentity : x->ExtensionIdentityx
Totality: total
Visibility: export
fromIdentity : ExtensionIdentityx->x
Totality: total
Visibility: export
Compose : Container->Container->Container
Totality: total
Visibility: public export
toCompose : (.) (Extensiond) (Extensionc) x->Extension (Composedc) x
Totality: total
Visibility: export
fromCompose : Extension (Composedc) x->(.) (Extensiond) (Extensionc) x
Totality: total
Visibility: export
Sum : Container->Container->Container
Totality: total
Visibility: public export
toSum : Either (Extensioncx) (Extensiondx) ->Extension (Sumcd) x
Totality: total
Visibility: export
fromSum : Extension (Sumcd) x->Either (Extensioncx) (Extensiondx)
Totality: total
Visibility: export
Pair : Container->Container->Container
Totality: total
Visibility: public export
toPair : (Extensioncx, Extensiondx) ->Extension (Paircd) x
Totality: total
Visibility: export
fromPair : Extension (Paircd) x-> (Extensioncx, Extensiondx)
Totality: total
Visibility: export
Exponential : Type->Container->Container
Totality: total
Visibility: public export
toExponential : (k->Extensioncx) ->Extension (Exponentialkc) x
Totality: total
Visibility: export
fromExponential : Extension (Exponentialkc) x->k->Extensioncx
Totality: total
Visibility: export
dataW : Container->Type
Totality: total
Visibility: public export
Constructor: 
MkW : Extensionc (Wc) ->Wc
map : Morphismcd->Wc->Wd
Totality: total
Visibility: export
foldr : (Extensioncx->x) ->Wc->x
Totality: total
Visibility: export
para : (Extensionc (x, Wc) ->x) ->Wc->x
Totality: total
Visibility: export
recordFree : Container->Type->Type
  @Free@ is a wrapper around @W@ to make it inference friendly.
Without this wrapper, neither @pure@ nor @bind@ are able to infer their @c@ argument.

Totality: total
Visibility: public export
Constructor: 
MkFree : W (Sumc (Constx)) ->Freecx

Projection: 
.runFree : Freecx->W (Sumc (Constx))
.runFree : Freecx->W (Sumc (Constx))
Totality: total
Visibility: public export
runFree : Freecx->W (Sumc (Constx))
Totality: total
Visibility: public export
pure : x->Freecx
Totality: total
Visibility: export
(>>=) : Freecx-> (x->Freecy) ->Freecy
Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 1
join : Freec (Freecx) ->Freecx
Totality: total
Visibility: export
dataM : Container->Type
Totality: total
Visibility: public export
Constructor: 
MkM : Extensionc (Inf (Mc)) ->Mc
unfoldr : (s->Extensioncs) ->s->Mc
Totality: total
Visibility: export
recordCofree : Container->Type->Type
  @Cofree@ is a wrapper around @M@ to make it inference friendly.
Without this wrapper, neither @extract@ nor @extend@ are able to infer their @c@ argument.

Totality: total
Visibility: public export
Constructor: 
MkCofree : M (Pair (Constx) c) ->Cofreecx

Projection: 
.runCofree : Cofreecx->M (Pair (Constx) c)
.runCofree : Cofreecx->M (Pair (Constx) c)
Totality: total
Visibility: public export
runCofree : Cofreecx->M (Pair (Constx) c)
Totality: total
Visibility: public export
extract : Cofreecx->x
Totality: total
Visibility: export
extend : (Cofreeca->b) ->Cofreeca->Cofreecb
Totality: total
Visibility: export
duplicate : Cofreeca->Cofreec (Cofreeca)
Totality: total
Visibility: export
Derivative : Container->Container
Totality: total
Visibility: public export
hole : (v : Extension (Derivativec) x) ->Positionc (fst (shapev))
Totality: total
Visibility: export
unplug : (v : Extensioncx) ->Positionc (shapev) -> (Extension (Derivativec) x, x)
Totality: total
Visibility: export
plug : (v : Extension (Derivativec) x) ->DecEq (Positionc (fst (shapev))) =>x->Extensioncx
Totality: total
Visibility: export
toConst : Extension (ConstVoid) x->Extension (Derivative (Constk)) x
Totality: total
Visibility: export
fromConst : Extension (Derivative (Constk)) x->Extension (ConstVoid) x
Totality: total
Visibility: export
toIdentity : Extension (DerivativeIdentity) x
Totality: total
Visibility: export
toSum : Extension (Sum (Derivativec) (Derivatived)) x->Extension (Derivative (Sumcd)) x
Totality: total
Visibility: export
fromSum : Extension (Derivative (Sumcd)) x->Extension (Sum (Derivativec) (Derivatived)) x
Totality: total
Visibility: export
toPair : Extension (Sum (Pair (Derivativec) d) (Pairc (Derivatived))) x->Extension (Derivative (Paircd)) x
Totality: total
Visibility: export
fromPair : Extension (Derivative (Paircd)) x->Extension (Sum (Pair (Derivativec) d) (Pairc (Derivatived))) x
Totality: total
Visibility: export
fromCompose : Extension (Derivative (Composecd)) x->Extension (Pair (Derivatived) (Compose (Derivativec) d)) x
Totality: total
Visibility: export
toCompose : ((s : c.Shape) ->DecEq (Positioncs)) -> ((s : d.Shape) ->DecEq (Positionds)) ->Extension (Pair (Derivatived) (Compose (Derivativec) d)) x->Extension (Derivative (Composecd)) x
Totality: total
Visibility: export
\ No newline at end of file +

Data.Container(source)

Definitions

recordContainer : Type
Totality: total
Visibility: public export
Constructor: 
MkContainer : (Shape : Type) -> (Shape->Type) ->Container

Projections:
.Position : ({rec:0} : Container) ->Shape{rec:0}->Type
.Shape : Container->Type

Hint: 
Functor (Extensionc)
.Shape : Container->Type
Totality: total
Visibility: public export
Shape : Container->Type
Totality: total
Visibility: public export
.Position : ({rec:0} : Container) ->Shape{rec:0}->Type
Totality: total
Visibility: public export
Position : ({rec:0} : Container) ->Shape{rec:0}->Type
Totality: total
Visibility: public export
recordExtension : Container->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkExtension : (shape : Shapec) -> (Positioncshape->x) ->Extensioncx

Projections:
.payloads : ({rec:0} : Extensioncx) ->Positionc (shape{rec:0}) ->x
.shape : Extensioncx->Shapec

Hint: 
Functor (Extensionc)
.shape : Extensioncx->Shapec
Totality: total
Visibility: public export
shape : Extensioncx->Shapec
Totality: total
Visibility: public export
.payloads : ({rec:0} : Extensioncx) ->Positionc (shape{rec:0}) ->x
Totality: total
Visibility: public export
payloads : ({rec:0} : Extensioncx) ->Positionc (shape{rec:0}) ->x
Totality: total
Visibility: public export
recordMorphism : Container->Container->Type
Totality: total
Visibility: public export
Constructor: 
MkMorphism : (shapeMorphism : (Shapec->Shaped)) -> (Positiond (shapeMorphisms) ->Positioncs) ->Morphismcd

Projections:
.positionMorphism : ({rec:0} : Morphismcd) ->Positiond (shapeMorphism{rec:0}s) ->Positioncs
.shapeMorphism : Morphismcd->Shapec->Shaped
.shapeMorphism : Morphismcd->Shapec->Shaped
Totality: total
Visibility: public export
shapeMorphism : Morphismcd->Shapec->Shaped
Totality: total
Visibility: public export
.positionMorphism : ({rec:0} : Morphismcd) ->Positiond (shapeMorphism{rec:0}s) ->Positioncs
Totality: total
Visibility: public export
positionMorphism : ({rec:0} : Morphismcd) ->Positiond (shapeMorphism{rec:0}s) ->Positioncs
Totality: total
Visibility: public export
Extension : Morphismcd->Extensioncx->Extensiondx
Totality: total
Visibility: public export
Const : Type->Container
Totality: total
Visibility: public export
toConst : k->Extension (Constk) x
Totality: total
Visibility: export
fromConst : Extension (Constk) x->k
Totality: total
Visibility: export
Identity : Container
Totality: total
Visibility: public export
toIdentity : x->ExtensionIdentityx
Totality: total
Visibility: export
fromIdentity : ExtensionIdentityx->x
Totality: total
Visibility: export
Compose : Container->Container->Container
Totality: total
Visibility: public export
toCompose : (.) (Extensiond) (Extensionc) x->Extension (Composedc) x
Totality: total
Visibility: export
fromCompose : Extension (Composedc) x->(.) (Extensiond) (Extensionc) x
Totality: total
Visibility: export
Sum : Container->Container->Container
Totality: total
Visibility: public export
toSum : Either (Extensioncx) (Extensiondx) ->Extension (Sumcd) x
Totality: total
Visibility: export
fromSum : Extension (Sumcd) x->Either (Extensioncx) (Extensiondx)
Totality: total
Visibility: export
Pair : Container->Container->Container
Totality: total
Visibility: public export
toPair : (Extensioncx, Extensiondx) ->Extension (Paircd) x
Totality: total
Visibility: export
fromPair : Extension (Paircd) x-> (Extensioncx, Extensiondx)
Totality: total
Visibility: export
Exponential : Type->Container->Container
Totality: total
Visibility: public export
toExponential : (k->Extensioncx) ->Extension (Exponentialkc) x
Totality: total
Visibility: export
fromExponential : Extension (Exponentialkc) x->k->Extensioncx
Totality: total
Visibility: export
dataW : Container->Type
Totality: total
Visibility: public export
Constructor: 
MkW : Extensionc (Wc) ->Wc
map : Morphismcd->Wc->Wd
Totality: total
Visibility: export
foldr : (Extensioncx->x) ->Wc->x
Totality: total
Visibility: export
para : (Extensionc (x, Wc) ->x) ->Wc->x
Totality: total
Visibility: export
recordFree : Container->Type->Type
  @Free@ is a wrapper around @W@ to make it inference friendly.
Without this wrapper, neither @pure@ nor @bind@ are able to infer their @c@ argument.

Totality: total
Visibility: public export
Constructor: 
MkFree : W (Sumc (Constx)) ->Freecx

Projection: 
.runFree : Freecx->W (Sumc (Constx))
.runFree : Freecx->W (Sumc (Constx))
Totality: total
Visibility: public export
runFree : Freecx->W (Sumc (Constx))
Totality: total
Visibility: public export
pure : x->Freecx
Totality: total
Visibility: export
(>>=) : Freecx-> (x->Freecy) ->Freecy
Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 1
join : Freec (Freecx) ->Freecx
Totality: total
Visibility: export
dataM : Container->Type
Totality: total
Visibility: public export
Constructor: 
MkM : Extensionc (Inf (Mc)) ->Mc
unfoldr : (s->Extensioncs) ->s->Mc
Totality: total
Visibility: export
recordCofree : Container->Type->Type
  @Cofree@ is a wrapper around @M@ to make it inference friendly.
Without this wrapper, neither @extract@ nor @extend@ are able to infer their @c@ argument.

Totality: total
Visibility: public export
Constructor: 
MkCofree : M (Pair (Constx) c) ->Cofreecx

Projection: 
.runCofree : Cofreecx->M (Pair (Constx) c)
.runCofree : Cofreecx->M (Pair (Constx) c)
Totality: total
Visibility: public export
runCofree : Cofreecx->M (Pair (Constx) c)
Totality: total
Visibility: public export
extract : Cofreecx->x
Totality: total
Visibility: export
extend : (Cofreeca->b) ->Cofreeca->Cofreecb
Totality: total
Visibility: export
duplicate : Cofreeca->Cofreec (Cofreeca)
Totality: total
Visibility: export
Derivative : Container->Container
Totality: total
Visibility: public export
hole : (v : Extension (Derivativec) x) ->Positionc (fst (shapev))
Totality: total
Visibility: export
unplug : (v : Extensioncx) ->Positionc (shapev) -> (Extension (Derivativec) x, x)
Totality: total
Visibility: export
plug : (v : Extension (Derivativec) x) ->DecEq (Positionc (fst (shapev))) =>x->Extensioncx
Totality: total
Visibility: export
toConst : Extension (ConstVoid) x->Extension (Derivative (Constk)) x
Totality: total
Visibility: export
fromConst : Extension (Derivative (Constk)) x->Extension (ConstVoid) x
Totality: total
Visibility: export
toIdentity : Extension (DerivativeIdentity) x
Totality: total
Visibility: export
toSum : Extension (Sum (Derivativec) (Derivatived)) x->Extension (Derivative (Sumcd)) x
Totality: total
Visibility: export
fromSum : Extension (Derivative (Sumcd)) x->Extension (Sum (Derivativec) (Derivatived)) x
Totality: total
Visibility: export
toPair : Extension (Sum (Pair (Derivativec) d) (Pairc (Derivatived))) x->Extension (Derivative (Paircd)) x
Totality: total
Visibility: export
fromPair : Extension (Derivative (Paircd)) x->Extension (Sum (Pair (Derivativec) d) (Pairc (Derivatived))) x
Totality: total
Visibility: export
fromCompose : Extension (Derivative (Composecd)) x->Extension (Pair (Derivatived) (Compose (Derivativec) d)) x
Totality: total
Visibility: export
toCompose : ((s : c.Shape) ->DecEq (Positioncs)) -> ((s : d.Shape) ->DecEq (Positionds)) ->Extension (Pair (Derivatived) (Compose (Derivativec) d)) x->Extension (Derivative (Composecd)) x
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.Description.Indexed.html b/papers/docs/Data.Description.Indexed.html index b085b25239..d68a52fbae 100644 --- a/papers/docs/Data.Description.Indexed.html +++ b/papers/docs/Data.Description.Indexed.html @@ -65,4 +65,4 @@ A Completely Unique Account of Enumeration by Cas van der Rest, and Wouter Swierstra https://doi.org/10.1145/3547636 -

Definitions

dataIDesc : (Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructors:
Zero : IDescpi
One : IDescpi
Id : i->IDescpi
(*) : IDescpi->IDescpi->IDescpi
(+) : IDescpi->IDescpi->IDescpi
Sig : (s : Type) ->ps-> (s->IDescpi) ->IDescpi
Elem : IDescpi-> (i->Type) ->Type
Totality: total
Visibility: public export
dataFix : (i->IDescpi) ->i->Type
Totality: total
Visibility: public export
Constructor: 
MkFix : assert_total (Elem (di) (Fixd)) ->Fixdi
map : (d : IDescpi) -> ((v : i) ->xv->yv) ->Elemdx->Elemdy
Totality: total
Visibility: export
ifold : ((v : i) ->Elem (dv) x->xv) ->Fixdv->xv
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataIDesc : (Type->Type) ->Type->Type
Totality: total
Visibility: public export
Constructors:
Zero : IDescpi
One : IDescpi
Id : i->IDescpi
(*) : IDescpi->IDescpi->IDescpi
(+) : IDescpi->IDescpi->IDescpi
Sig : (s : Type) ->ps-> (s->IDescpi) ->IDescpi
Elem : IDescpi-> (i->Type) ->Type
Totality: total
Visibility: public export
dataFix : (i->IDescpi) ->i->Type
Totality: total
Visibility: public export
Constructor: 
MkFix : assert_total (Elem (di) (Fixd)) ->Fixdi
map : (d : IDescpi) -> ((v : i) ->xv->yv) ->Elemdx->Elemdy
Totality: total
Visibility: export
ifold : ((v : i) ->Elem (dv) x->xv) ->Fixdv->xv
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.Description.Regular.html b/papers/docs/Data.Description.Regular.html index 795e42bdeb..f15a865cac 100644 --- a/papers/docs/Data.Description.Regular.html +++ b/papers/docs/Data.Description.Regular.html @@ -65,4 +65,4 @@ A Completely Unique Account of Enumeration by Cas van der Rest, and Wouter Swierstra https://doi.org/10.1145/3547636 -

Definitions

dataDesc : (Type->Type) ->Type
  Description of regular functors
@ p stores additional data for constant types
e.g. the fact they are enumerable

Totality: total
Visibility: public export
Constructors:
Zero : Descp
  The code for the empty type
One : Descp
  The code for the unit type
Id : Descp
  The code for the identity functor
Const : (0s : Type) ->ps->Descp
  The code for the constant functor
(*) : Descp->Descp->Descp
  The code for the product of functors
(+) : Descp->Descp->Descp
  The code for the sum of functors
0Elem : Descp->Type->Type
  Computing the meaning of a description as a functor

Totality: total
Visibility: public export
map : (d : Descp) -> (a->b) ->Elemda->Elemdb
  Elem does decode to functors

Totality: total
Visibility: export
dataFix : Descp->Type
  A regular type is obtained by taking the fixpoint of
the decoding of a description.
Unfortunately Idris 2 does not currently detect that this definition
is total because we do not track positivity in function arguments

Totality: total
Visibility: public export
Constructor: 
MkFix : assert_total (Elemd (Fixd)) ->Fixd
fold : (Elemdx->x) ->Fixd->x
  Fix is an initial algebra so we get the fold

Totality: total
Visibility: export
record(~>) : (d : Descp) -> (Fixd->Type) ->Type
  A memo trie is a coinductive structure

Totality: total
Visibility: export
Constructor: 
MkMemo : assert_total (Memod (\x=> Inf (d~>x)) (b.MkFix)) ->d~>b

Projection: 
.getMemo : d~>b->assert_total (Memod (\x=> Inf (d~>x)) (b.MkFix))

Fixity Declaration: infixr operator, level 0
trie : ((x : Fixd) ->bx) ->d~>b
Totality: total
Visibility: export
untrie : d~>b-> (x : Fixd) ->bx
Totality: total
Visibility: export
memo : (0b : (Fixd->Type)) -> ((x : Fixd) ->bx) -> (x : Fixd) ->bx
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataDesc : (Type->Type) ->Type
  Description of regular functors
@ p stores additional data for constant types
e.g. the fact they are enumerable

Totality: total
Visibility: public export
Constructors:
Zero : Descp
  The code for the empty type
One : Descp
  The code for the unit type
Id : Descp
  The code for the identity functor
Const : (0s : Type) ->ps->Descp
  The code for the constant functor
(*) : Descp->Descp->Descp
  The code for the product of functors
(+) : Descp->Descp->Descp
  The code for the sum of functors
0Elem : Descp->Type->Type
  Computing the meaning of a description as a functor

Totality: total
Visibility: public export
map : (d : Descp) -> (a->b) ->Elemda->Elemdb
  Elem does decode to functors

Totality: total
Visibility: export
dataFix : Descp->Type
  A regular type is obtained by taking the fixpoint of
the decoding of a description.
Unfortunately Idris 2 does not currently detect that this definition
is total because we do not track positivity in function arguments

Totality: total
Visibility: public export
Constructor: 
MkFix : assert_total (Elemd (Fixd)) ->Fixd
fold : (Elemdx->x) ->Fixd->x
  Fix is an initial algebra so we get the fold

Totality: total
Visibility: export
record(~>) : (d : Descp) -> (Fixd->Type) ->Type
  A memo trie is a coinductive structure

Totality: total
Visibility: export
Constructor: 
MkMemo : assert_total (Memod (\x=> Inf (d~>x)) (b.MkFix)) ->d~>b

Projection: 
.getMemo : d~>b->assert_total (Memod (\x=> Inf (d~>x)) (b.MkFix))

Fixity Declaration: infixr operator, level 0
trie : ((x : Fixd) ->bx) ->d~>b
Totality: total
Visibility: export
untrie : d~>b-> (x : Fixd) ->bx
Totality: total
Visibility: export
memo : (0b : (Fixd->Type)) -> ((x : Fixd) ->bx) -> (x : Fixd) ->bx
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.Enumerate.Common.html b/papers/docs/Data.Enumerate.Common.html index 0b78f5db6b..caa111526c 100644 --- a/papers/docs/Data.Enumerate.Common.html +++ b/papers/docs/Data.Enumerate.Common.html @@ -61,4 +61,4 @@ -

Data.Enumerate.Common(source)

Definitions

prodWith : (a->b->c) ->Lista->Listb->Listc
Totality: total
Visibility: export
\ No newline at end of file +

Data.Enumerate.Common(source)

Definitions

prodWith : (a->b->c) ->Lista->Listb->Listc
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.Enumerate.Indexed.html b/papers/docs/Data.Enumerate.Indexed.html index f65dc1259c..93ae2735ac 100644 --- a/papers/docs/Data.Enumerate.Indexed.html +++ b/papers/docs/Data.Enumerate.Indexed.html @@ -65,4 +65,4 @@ A Completely Unique Account of Enumeration by Cas van der Rest, and Wouter Swierstra https://doi.org/10.1145/3547636 -

Definitions

recordIEnumerator : (i->Type) ->Type->Type
  An (a,b)-enumerator is an enumerator for values of type b provided
that we already know how to enumerate subterms of type a

Totality: total
Visibility: export
Constructor: 
MkIEnumerator : (((v : i) ->List (av)) ->Listb) ->IEnumeratorab

Projection: 
.runIEnumerator : IEnumeratorab-> ((v : i) ->List (av)) ->Listb

Hints:
Alternative (IEnumeratora)
Applicative (IEnumeratora)
Functor (IEnumeratora)
Monad (IEnumeratora)
rec : (v : i) ->IEnumeratora (av)
Totality: total
Visibility: export
pairWith : (b->c->d) ->IEnumeratorab->IEnumeratorac->IEnumeratorad
Totality: total
Visibility: export
pair : IEnumeratorab->IEnumeratorac->IEnumeratora (b, c)
Totality: total
Visibility: export
sig : {b : a->Type} ->IEnumeratorfa-> ((x : a) ->IEnumeratorf (bx)) ->IEnumeratorf (x : a**bx)
Totality: total
Visibility: export
const : Listb->IEnumeratorab
Totality: total
Visibility: export
isized : ((v : i) ->IEnumeratora (av)) ->Nat-> (v : i) ->List (av)
Totality: total
Visibility: export
indexed : (d : (i->IDescListi)) -> (v : i) ->IEnumerator (Fixd) (Fixdv)
Totality: total
Visibility: export
0Memorator : (d : Descp) -> (Fixd->Type) ->Type->Type
Totality: total
Visibility: export
memorate : ((x : Fixd) ->Memoratordb (bx)) ->Nat-> (x : Fixd) ->List (bx)
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

recordIEnumerator : (i->Type) ->Type->Type
  An (a,b)-enumerator is an enumerator for values of type b provided
that we already know how to enumerate subterms of type a

Totality: total
Visibility: export
Constructor: 
MkIEnumerator : (((v : i) ->List (av)) ->Listb) ->IEnumeratorab

Projection: 
.runIEnumerator : IEnumeratorab-> ((v : i) ->List (av)) ->Listb

Hints:
Alternative (IEnumeratora)
Applicative (IEnumeratora)
Functor (IEnumeratora)
Monad (IEnumeratora)
rec : (v : i) ->IEnumeratora (av)
Totality: total
Visibility: export
pairWith : (b->c->d) ->IEnumeratorab->IEnumeratorac->IEnumeratorad
Totality: total
Visibility: export
pair : IEnumeratorab->IEnumeratorac->IEnumeratora (b, c)
Totality: total
Visibility: export
sig : {b : a->Type} ->IEnumeratorfa-> ((x : a) ->IEnumeratorf (bx)) ->IEnumeratorf (x : a**bx)
Totality: total
Visibility: export
const : Listb->IEnumeratorab
Totality: total
Visibility: export
isized : ((v : i) ->IEnumeratora (av)) ->Nat-> (v : i) ->List (av)
Totality: total
Visibility: export
indexed : (d : (i->IDescListi)) -> (v : i) ->IEnumerator (Fixd) (Fixdv)
Totality: total
Visibility: export
0Memorator : (d : Descp) -> (Fixd->Type) ->Type->Type
Totality: total
Visibility: export
memorate : ((x : Fixd) ->Memoratordb (bx)) ->Nat-> (x : Fixd) ->List (bx)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.Enumerate.html b/papers/docs/Data.Enumerate.html index 794d43c515..0f9ce4e37a 100644 --- a/papers/docs/Data.Enumerate.html +++ b/papers/docs/Data.Enumerate.html @@ -65,4 +65,4 @@ A Completely Unique Account of Enumeration by Cas van der Rest, and Wouter Swierstra https://doi.org/10.1145/3547636 -

Definitions

recordEnumerator : Type->Type->Type
  An (a,b)-enumerator is an enumerator for values of type b provided
that we already know how to enumerate subterms of type a

Totality: total
Visibility: export
Constructor: 
MkEnumerator : (Lista->Listb) ->Enumeratorab

Projection: 
.runEnumerator : Enumeratorab->Lista->Listb

Hints:
Alternative (Enumeratora)
Applicative (Enumeratora)
Functor (Enumeratora)
Monad (Enumeratora)
pairWith : (b->c->d) ->Enumeratorab->Enumeratorac->Enumeratorad
  This interleaving is fair, unlike one defined using concatMap.
Cf. paper for definition of fairness

Totality: total
Visibility: export
pair : Enumeratorab->Enumeratorac->Enumeratora (b, c)
Totality: total
Visibility: export
const : Listb->Enumeratorab
  Like `pure` but returns more than one result

Totality: total
Visibility: export
rec : Enumeratoraa
  The construction of recursive substructures is memoised by
simply passing the result of the recursive call

Totality: total
Visibility: export
sized : Enumeratoraa->Nat->Lista
  Assuming that the enumerator is building one layer of term,
sized e n willl produce a list of values of depth n

Totality: total
Visibility: export
stream : Enumeratoraa->Stream (Lista)
  Assuming that the enumerator is building one layer of term,
stream e will produce a list of increasingly deep values

Totality: total
Visibility: export
regular : (d : DescList) ->Enumerator (Fixd) (Fixd)
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

recordEnumerator : Type->Type->Type
  An (a,b)-enumerator is an enumerator for values of type b provided
that we already know how to enumerate subterms of type a

Totality: total
Visibility: export
Constructor: 
MkEnumerator : (Lista->Listb) ->Enumeratorab

Projection: 
.runEnumerator : Enumeratorab->Lista->Listb

Hints:
Alternative (Enumeratora)
Applicative (Enumeratora)
Functor (Enumeratora)
Monad (Enumeratora)
pairWith : (b->c->d) ->Enumeratorab->Enumeratorac->Enumeratorad
  This interleaving is fair, unlike one defined using concatMap.
Cf. paper for definition of fairness

Totality: total
Visibility: export
pair : Enumeratorab->Enumeratorac->Enumeratora (b, c)
Totality: total
Visibility: export
const : Listb->Enumeratorab
  Like `pure` but returns more than one result

Totality: total
Visibility: export
rec : Enumeratoraa
  The construction of recursive substructures is memoised by
simply passing the result of the recursive call

Totality: total
Visibility: export
sized : Enumeratoraa->Nat->Lista
  Assuming that the enumerator is building one layer of term,
sized e n willl produce a list of values of depth n

Totality: total
Visibility: export
stream : Enumeratoraa->Stream (Lista)
  Assuming that the enumerator is building one layer of term,
stream e will produce a list of increasingly deep values

Totality: total
Visibility: export
regular : (d : DescList) ->Enumerator (Fixd) (Fixd)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.INTEGER.html b/papers/docs/Data.INTEGER.html index d87e859683..b114c8f9ca 100644 --- a/papers/docs/Data.INTEGER.html +++ b/papers/docs/Data.INTEGER.html @@ -61,4 +61,4 @@ -

Data.INTEGER(source)

Definitions

dataINTEGER : Type
Totality: total
Visibility: public export
Constructors:
Z : INTEGER
PS : Nat->INTEGER
NS : Nat->INTEGER

Hints:
CastNatINTEGER
CastIntegerINTEGER
CastINTEGERInteger
NegINTEGER
NumINTEGER
ShowINTEGER
add : INTEGER->INTEGER->INTEGER
Totality: total
Visibility: public export
mult : INTEGER->INTEGER->INTEGER
Totality: total
Visibility: public export
plusZeroRightNeutral : (m : INTEGER) ->m+Z=m
Totality: total
Visibility: export
plusCommutative : (m : INTEGER) -> (n : INTEGER) ->m+n=n+m
Totality: total
Visibility: export
castPlus : (m : Nat) -> (n : Nat) ->theINTEGER (cast (m+n)) =castm+castn
Totality: total
Visibility: export
unfoldPS : (m : Nat) ->PSm=1+castm
Totality: total
Visibility: export
unfoldNS : (m : Nat) ->NSm=-1-castm
Totality: total
Visibility: export
difference : Nat->Nat->INTEGER
Totality: total
Visibility: export
differenceZeroRight : (n : Nat) ->differencen0=castn
Totality: total
Visibility: export
minusSuccSucc : (m : Nat) -> (n : Nat) ->theINTEGER (cast (Sm) -cast (Sn)) =castm-castn
Totality: total
Visibility: export
unfoldDifference : (m : Nat) -> (n : Nat) ->differencemn=castm-castn
Totality: total
Visibility: export
negateInvolutive : (m : INTEGER) ->negate (negatem) =m
Totality: total
Visibility: export
negatePlus : (m : INTEGER) -> (n : INTEGER) ->negate (m+n) =negatem+negaten
Totality: total
Visibility: export
negateDifference : (m : Nat) -> (n : Nat) ->negate (differencemn) =differencenm
Totality: total
Visibility: export
minusZeroRight : (m : INTEGER) ->m-Z=m
Totality: total
Visibility: export
plusInverse : (m : INTEGER) ->m-m=Z
Totality: total
Visibility: export
plusAssociative : (m : INTEGER) -> (n : INTEGER) -> (p : INTEGER) ->m+ (n+p) = (m+n) +p
Totality: total
Visibility: export
\ No newline at end of file +

Data.INTEGER(source)

Definitions

dataINTEGER : Type
Totality: total
Visibility: public export
Constructors:
Z : INTEGER
PS : Nat->INTEGER
NS : Nat->INTEGER

Hints:
CastNatINTEGER
CastIntegerINTEGER
CastINTEGERInteger
NegINTEGER
NumINTEGER
ShowINTEGER
add : INTEGER->INTEGER->INTEGER
Totality: total
Visibility: public export
mult : INTEGER->INTEGER->INTEGER
Totality: total
Visibility: public export
plusZeroRightNeutral : (m : INTEGER) ->m+Z=m
Totality: total
Visibility: export
plusCommutative : (m : INTEGER) -> (n : INTEGER) ->m+n=n+m
Totality: total
Visibility: export
castPlus : (m : Nat) -> (n : Nat) ->theINTEGER (cast (m+n)) =castm+castn
Totality: total
Visibility: export
unfoldPS : (m : Nat) ->PSm=1+castm
Totality: total
Visibility: export
unfoldNS : (m : Nat) ->NSm=-1-castm
Totality: total
Visibility: export
difference : Nat->Nat->INTEGER
Totality: total
Visibility: export
differenceZeroRight : (n : Nat) ->differencen0=castn
Totality: total
Visibility: export
minusSuccSucc : (m : Nat) -> (n : Nat) ->theINTEGER (cast (Sm) -cast (Sn)) =castm-castn
Totality: total
Visibility: export
unfoldDifference : (m : Nat) -> (n : Nat) ->differencemn=castm-castn
Totality: total
Visibility: export
negateInvolutive : (m : INTEGER) ->negate (negatem) =m
Totality: total
Visibility: export
negatePlus : (m : INTEGER) -> (n : INTEGER) ->negate (m+n) =negatem+negaten
Totality: total
Visibility: export
negateDifference : (m : Nat) -> (n : Nat) ->negate (differencemn) =differencenm
Totality: total
Visibility: export
minusZeroRight : (m : INTEGER) ->m-Z=m
Totality: total
Visibility: export
plusInverse : (m : INTEGER) ->m-m=Z
Totality: total
Visibility: export
plusAssociative : (m : INTEGER) -> (n : INTEGER) -> (p : INTEGER) ->m+ (n+p) = (m+n) +p
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.InductionRecursion.DybjerSetzer.html b/papers/docs/Data.InductionRecursion.DybjerSetzer.html index 3be71f1aa8..2bfabd265e 100644 --- a/papers/docs/Data.InductionRecursion.DybjerSetzer.html +++ b/papers/docs/Data.InductionRecursion.DybjerSetzer.html @@ -64,4 +64,4 @@

Data.InductionRecursion.DybjerSetzer(source)

There are different flavours of induction-recursion. This is the one
 introduced in Dybjer and Setzer's paper:
 Indexed induction-recursion
-

Definitions

dataCode : (sort->Type) ->Type->Type
Totality: total
Visibility: public export
Constructors:
Yield : output->Codeinputoutput
Store : (payload : Type) -> (payload->Codeinputoutput) ->Codeinputoutput
Branch : (label : Type) -> (toSort : (label->sort)) -> (((l : label) ->input (toSortl)) ->Codeinputoutput) ->Codeinputoutput

Hints:
Applicative (Codei)
Functor (Codei)
Monad (Codei)
DecodeType : Codeinputoutput-> (x : (sort->Type)) -> (xs->inputs) ->Type
Visibility: public export
DecodeOutput : (c : Codeinputoutput) -> (x : Lazy (sort->Type)) -> (f : (Force xs->inputs)) ->DecodeTypec (Force x) (\{s:1027}=>f) ->output
Visibility: public export
dataMu : ((s : sort) ->Codeinput (inputs)) ->sort->Type
Totality: not strictly positive
Visibility: public export
Constructor: 
MkMu : DecodeType (fs) (Muf) (\{s:1208}=>Decode) ->Mufs
Decode : Mufs->inputs
Visibility: public export
bind : Codeio-> (o->Codeio') ->Codeio'
Visibility: public export
\ No newline at end of file +

Definitions

dataCode : (sort->Type) ->Type->Type
Totality: total
Visibility: public export
Constructors:
Yield : output->Codeinputoutput
Store : (payload : Type) -> (payload->Codeinputoutput) ->Codeinputoutput
Branch : (label : Type) -> (toSort : (label->sort)) -> (((l : label) ->input (toSortl)) ->Codeinputoutput) ->Codeinputoutput

Hints:
Applicative (Codei)
Functor (Codei)
Monad (Codei)
DecodeType : Codeinputoutput-> (x : (sort->Type)) -> (xs->inputs) ->Type
Visibility: public export
DecodeOutput : (c : Codeinputoutput) -> (x : Lazy (sort->Type)) -> (f : (Force xs->inputs)) ->DecodeTypec (Force x) (\{s:1027}=>f) ->output
Visibility: public export
dataMu : ((s : sort) ->Codeinput (inputs)) ->sort->Type
Totality: not strictly positive
Visibility: public export
Constructor: 
MkMu : DecodeType (fs) (Muf) (\{s:1208}=>Decode) ->Mufs
Decode : Mufs->inputs
Visibility: public export
bind : Codeio-> (o->Codeio') ->Codeio'
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Data.Linear.Communications.html b/papers/docs/Data.Linear.Communications.html index 8ad636c8a3..81bb1be6e8 100644 --- a/papers/docs/Data.Linear.Communications.html +++ b/papers/docs/Data.Linear.Communications.html @@ -64,4 +64,4 @@

Data.Linear.Communications(source)

This module is based on the content of the functional pearl
 How to Take the Inverse of a Type
 by Daniel Marshall and Dominic Orchard
-

Definitions

dataProtocol : Type
Totality: total
Visibility: public export
Constructors:
Send : Type->Protocol->Protocol
Recv : Type->Protocol->Protocol
End : Protocol
Dual : Protocol->Protocol
Totality: total
Visibility: public export
dataLChan : Protocol->Type
Totality: total
Visibility: export
Constructor: 
MkLChan : LChanp
\ No newline at end of file +

Definitions

dataProtocol : Type
Totality: total
Visibility: public export
Constructors:
Send : Type->Protocol->Protocol
Recv : Type->Protocol->Protocol
End : Protocol
Dual : Protocol->Protocol
Totality: total
Visibility: public export
dataLChan : Protocol->Type
Totality: total
Visibility: export
Constructor: 
MkLChan : LChanp
\ No newline at end of file diff --git a/papers/docs/Data.Linear.Diff.html b/papers/docs/Data.Linear.Diff.html index 22ec256887..80babfd949 100644 --- a/papers/docs/Data.Linear.Diff.html +++ b/papers/docs/Data.Linear.Diff.html @@ -64,4 +64,4 @@

Data.Linear.Diff(source)

This module is based on the content of the functional pearl
 How to Take the Inverse of a Type
 by Daniel Marshall and Dominic Orchard
-

Definitions

Quadruple : Type->Type
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

Quadruple : Type->Type
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Data.Linear.Inverse.html b/papers/docs/Data.Linear.Inverse.html index db48ef3521..38ee52c0e8 100644 --- a/papers/docs/Data.Linear.Inverse.html +++ b/papers/docs/Data.Linear.Inverse.html @@ -64,4 +64,4 @@

Data.Linear.Inverse(source)

This module is based on the content of the functional pearl
 How to Take the Inverse of a Type
 by Daniel Marshall and Dominic Orchard
-

Definitions

Inverse : Type->Type
  Inverse is a shorthand for 'multiplicative skew inverse'

Totality: total
Visibility: export
mkInverse : (a-@ ()) -@Inversea
Totality: total
Visibility: export
divide : a-@ (Inversea-@ ())
  And this is the morphism witnessing the multiplicative skew inverse

Totality: total
Visibility: export
doubleNegation : a-@Inverse (Inversea)
Totality: total
Visibility: export
maybeNeg : LMaybea-@ (Inversea-@LMaybe (Inversea))
  We only use the inverse of a if the LMaybe is actually Just.m

Totality: total
Visibility: export
lid : a-@a
Totality: total
Visibility: public export
lcompose : (b-@c) -@ ((a-@b) -@ (a-@c))
Totality: total
Visibility: public export
comap : (b-@a) -@ (Inversea-@Inverseb)
Totality: total
Visibility: public export
comapId : (u : Inversea) ->comaplidu=lidu
Totality: total
Visibility: export
comapComp : (u : Inversea) ->comap (lcomposegf) u=lcompose (comapf) (comapg) u
Totality: total
Visibility: export
munit : () -@Inverse ()
Totality: total
Visibility: export
mmult : Inversea-@ (Inverseb-@Inverse (LPairab))
Totality: total
Visibility: export
Pow : Type->INTEGER->Type
Totality: total
Visibility: public export
zip : Powan-@ (Powbn-@Pow (LPairab) n)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 6
powPositiveL : (m : Nat) -> (n : Nat) ->Powa (cast (m+n)) -@LPair (Powa (castm)) (Powa (castn))
Totality: total
Visibility: export
powPositiveR : (m : Nat) -> (n : Nat) ->Powa (castm) -@ (Powa (castn) -@Powa (cast (m+n)))
Totality: total
Visibility: export
powNegateL : (m : Nat) ->Powa (negate (castm)) ->Pow (Inversea) (castm)
Totality: total
Visibility: export
powNegateR : (m : Nat) ->Pow (Inversea) (castm) ->Powa (negate (castm))
Totality: total
Visibility: export
powNegativeL : (m : Nat) -> (n : Nat) ->Powa (negate (cast (m+n))) -@LPair (Powa (negate (castm))) (Powa (negate (castn)))
Totality: total
Visibility: export
powNegativeR : (m : Nat) -> (n : Nat) ->Powa (negate (castm)) -@ (Powa (negate (castn)) -@Powa (negate (cast (m+n))))
Totality: total
Visibility: export
powAnnihilate : (m : Nat) ->Powa (castm) -@ (Powa (negate (castm)) -@ ())
Totality: total
Visibility: export
powMinus : (m : Nat) -> (n : Nat) ->Powa (castm) -@ (Powa (negate (castn)) -@Powa (castm-castn))
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

Inverse : Type->Type
  Inverse is a shorthand for 'multiplicative skew inverse'

Totality: total
Visibility: export
mkInverse : (a-@ ()) -@Inversea
Totality: total
Visibility: export
divide : a-@ (Inversea-@ ())
  And this is the morphism witnessing the multiplicative skew inverse

Totality: total
Visibility: export
doubleNegation : a-@Inverse (Inversea)
Totality: total
Visibility: export
maybeNeg : LMaybea-@ (Inversea-@LMaybe (Inversea))
  We only use the inverse of a if the LMaybe is actually Just.m

Totality: total
Visibility: export
lid : a-@a
Totality: total
Visibility: public export
lcompose : (b-@c) -@ ((a-@b) -@ (a-@c))
Totality: total
Visibility: public export
comap : (b-@a) -@ (Inversea-@Inverseb)
Totality: total
Visibility: public export
comapId : (u : Inversea) ->comaplidu=lidu
Totality: total
Visibility: export
comapComp : (u : Inversea) ->comap (lcomposegf) u=lcompose (comapf) (comapg) u
Totality: total
Visibility: export
munit : () -@Inverse ()
Totality: total
Visibility: export
mmult : Inversea-@ (Inverseb-@Inverse (LPairab))
Totality: total
Visibility: export
Pow : Type->INTEGER->Type
Totality: total
Visibility: public export
zip : Powan-@ (Powbn-@Pow (LPairab) n)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 6
powPositiveL : (m : Nat) -> (n : Nat) ->Powa (cast (m+n)) -@LPair (Powa (castm)) (Powa (castn))
Totality: total
Visibility: export
powPositiveR : (m : Nat) -> (n : Nat) ->Powa (castm) -@ (Powa (castn) -@Powa (cast (m+n)))
Totality: total
Visibility: export
powNegateL : (m : Nat) ->Powa (negate (castm)) ->Pow (Inversea) (castm)
Totality: total
Visibility: export
powNegateR : (m : Nat) ->Pow (Inversea) (castm) ->Powa (negate (castm))
Totality: total
Visibility: export
powNegativeL : (m : Nat) -> (n : Nat) ->Powa (negate (cast (m+n))) -@LPair (Powa (negate (castm))) (Powa (negate (castn)))
Totality: total
Visibility: export
powNegativeR : (m : Nat) -> (n : Nat) ->Powa (negate (castm)) -@ (Powa (negate (castn)) -@Powa (negate (cast (m+n))))
Totality: total
Visibility: export
powAnnihilate : (m : Nat) ->Powa (castm) -@ (Powa (negate (castm)) -@ ())
Totality: total
Visibility: export
powMinus : (m : Nat) -> (n : Nat) ->Powa (castm) -@ (Powa (negate (castn)) -@Powa (castm-castn))
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.OpenUnion.html b/papers/docs/Data.OpenUnion.html index 10af504243..3059e0da7a 100644 --- a/papers/docs/Data.OpenUnion.html +++ b/papers/docs/Data.OpenUnion.html @@ -67,4 +67,4 @@ By using an AtIndex proof, we are able to get rid of all of the unsafe coercions in the original module. -

Definitions

dataUnion : (a->Type) ->Lista->Type
  An open union of families is an index picking a family out together with
a value in the family thus picked.

Totality: total
Visibility: public export
Constructor: 
Element : (k : Nat) -> (0_ : AtIndexttsk) ->eltt->Unioneltts

Hint: 
Uninhabited (Unionelt [])
inj : Membertts=>eltt->Unioneltts
  Given that equality of type families is not decidable, we have to
rely on the interface `Member` to automatically find the index of a
given family.

Totality: total
Visibility: public export
prj : Membertts=>Unioneltts->Maybe (eltt)
  Given that equality of type families is not decidable, we have to
rely on the interface `Member` to automatically find the index of a
given family.

Totality: total
Visibility: public export
split : SubsetNat (flipHasLengthss) ->Unionelt (ss++ts) ->Either (Unioneltss) (Unioneltts)
  By doing a bit of arithmetic we can figure out whether the union's value
came from the left or the right list used in the index.

Totality: total
Visibility: public export
decomp : Unionelt (t::ts) ->Either (Unioneltts) (eltt)
  We can inspect an open union over a non-empty list of families to check
whether the value it contains belongs either to the first family or any
other in the tail.

Totality: total
Visibility: public export
decomp0 : Unionelt [t] ->eltt
  An open union over a singleton list is just a wrapper

Totality: total
Visibility: public export
weakenR : Unioneltts->Unionelt (ts++us)
  Inserting new union members on the right leaves the index unchanged.

Totality: total
Visibility: public export
weakenL : SubsetNat (flipHasLengthss) ->Unioneltts->Unionelt (ss++ts)
  Inserting new union members on the left, requires shifting the index by
the number of members introduced. Note that this number is the only
thing we need to keep around at runtime.

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataUnion : (a->Type) ->Lista->Type
  An open union of families is an index picking a family out together with
a value in the family thus picked.

Totality: total
Visibility: public export
Constructor: 
Element : (k : Nat) -> (0_ : AtIndexttsk) ->eltt->Unioneltts

Hint: 
Uninhabited (Unionelt [])
inj : Membertts=>eltt->Unioneltts
  Given that equality of type families is not decidable, we have to
rely on the interface `Member` to automatically find the index of a
given family.

Totality: total
Visibility: public export
prj : Membertts=>Unioneltts->Maybe (eltt)
  Given that equality of type families is not decidable, we have to
rely on the interface `Member` to automatically find the index of a
given family.

Totality: total
Visibility: public export
split : SubsetNat (flipHasLengthss) ->Unionelt (ss++ts) ->Either (Unioneltss) (Unioneltts)
  By doing a bit of arithmetic we can figure out whether the union's value
came from the left or the right list used in the index.

Totality: total
Visibility: public export
decomp : Unionelt (t::ts) ->Either (Unioneltts) (eltt)
  We can inspect an open union over a non-empty list of families to check
whether the value it contains belongs either to the first family or any
other in the tail.

Totality: total
Visibility: public export
decomp0 : Unionelt [t] ->eltt
  An open union over a singleton list is just a wrapper

Totality: total
Visibility: public export
weakenR : Unioneltts->Unionelt (ts++us)
  Inserting new union members on the right leaves the index unchanged.

Totality: total
Visibility: public export
weakenL : SubsetNat (flipHasLengthss) ->Unioneltts->Unionelt (ss++ts)
  Inserting new union members on the left, requires shifting the index by
the number of members introduced. Note that this number is the only
thing we need to keep around at runtime.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Data.ProofDelay.html b/papers/docs/Data.ProofDelay.html index 08f830b3f4..b9f4ebfeec 100644 --- a/papers/docs/Data.ProofDelay.html +++ b/papers/docs/Data.ProofDelay.html @@ -65,4 +65,4 @@ Deferring the Details and Deriving Programs by Liam O'Connor https://doi.org/10.1145/3331554.3342605 -

Definitions

recordPDelay : Type->Type
  A type `x` which can only be computed once some, delayed, proof obligations
have been fulfilled.

Totality: total
Visibility: public export
Constructor: 
Prf : (goals : ListType) -> (HListgoals->x) ->PDelayx

Projections:
.goals : PDelayx->ListType
  List of propositions we need to prove.
.prove : ({rec:0} : PDelayx) ->HList (goals{rec:0}) ->x
  Given the proofs required (i.e. the goals), actually compute the value x.
.goals : PDelayx->ListType
  List of propositions we need to prove.

Totality: total
Visibility: public export
goals : PDelayx->ListType
  List of propositions we need to prove.

Totality: total
Visibility: public export
.prove : ({rec:0} : PDelayx) ->HList (goals{rec:0}) ->x
  Given the proofs required (i.e. the goals), actually compute the value x.

Totality: total
Visibility: public export
prove : ({rec:0} : PDelayx) ->HList (goals{rec:0}) ->x
  Given the proofs required (i.e. the goals), actually compute the value x.

Totality: total
Visibility: public export
pure : tx->PDelaytx
  A value which can immediately be constructed (i.e. no delayed proofs).

Totality: total
Visibility: public export
later : PDelaytx
  Delay the full computation of `x` until `later`.

Totality: total
Visibility: public export
(<*>) : PDelay (a->b) ->PDelaya->PDelayb
  We can compose `PDelay` computations.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
dataOList : Nat->Nat->Type
  An ordered list type.

[27](https://dl.acm.org/doi/10.1145/2503778.2503786)

Totality: total
Visibility: public export
Constructors:
Nil : LTEmn->OListmn
Cons : (x : Nat) ->LTEmx->OListxn->OListmn
dataBST : Nat->Nat->Type
  A binary search tree carrying proofs of the ordering in the leaves.

[31](https://dl.acm.org/doi/10.1145/2628136.2628163)

Totality: total
Visibility: public export
Constructors:
Leaf : LTEmn->BSTmn
Branch : (x : Nat) ->BSTmx->BSTxn->BSTmn
nil : PDelay (OListmn)
  OList `Nil`, but delaying the proof obligation.

Totality: total
Visibility: public export
cons : (x : Nat) ->PDelay (OListxn) ->PDelay (OListmn)
  OList `Cons`, but delaying the proof obligations.

Totality: total
Visibility: public export
example : OList15
  Extracting an actual `OList` from the delayed version requires providing the
unergonomic proofs.

Totality: total
Visibility: public export
leaf : PDelay (BSTmn)
  BST `Leaf`, but delaying the proof obligation.

Totality: total
Visibility: public export
branch : (x : Nat) ->PDelay (BSTmx) ->PDelay (BSTxn) ->PDelay (BSTmn)
  BST `Branch`, but delaying the proof obligations.

Totality: total
Visibility: public export
example2 : BST210
  Once again, extracting the actual `BST` requires providing the uninteresting
proofs.

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

recordPDelay : Type->Type
  A type `x` which can only be computed once some, delayed, proof obligations
have been fulfilled.

Totality: total
Visibility: public export
Constructor: 
Prf : (goals : ListType) -> (HListgoals->x) ->PDelayx

Projections:
.goals : PDelayx->ListType
  List of propositions we need to prove.
.prove : ({rec:0} : PDelayx) ->HList (goals{rec:0}) ->x
  Given the proofs required (i.e. the goals), actually compute the value x.
.goals : PDelayx->ListType
  List of propositions we need to prove.

Totality: total
Visibility: public export
goals : PDelayx->ListType
  List of propositions we need to prove.

Totality: total
Visibility: public export
.prove : ({rec:0} : PDelayx) ->HList (goals{rec:0}) ->x
  Given the proofs required (i.e. the goals), actually compute the value x.

Totality: total
Visibility: public export
prove : ({rec:0} : PDelayx) ->HList (goals{rec:0}) ->x
  Given the proofs required (i.e. the goals), actually compute the value x.

Totality: total
Visibility: public export
pure : tx->PDelaytx
  A value which can immediately be constructed (i.e. no delayed proofs).

Totality: total
Visibility: public export
later : PDelaytx
  Delay the full computation of `x` until `later`.

Totality: total
Visibility: public export
(<*>) : PDelay (a->b) ->PDelaya->PDelayb
  We can compose `PDelay` computations.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
dataOList : Nat->Nat->Type
  An ordered list type.

[27](https://dl.acm.org/doi/10.1145/2503778.2503786)

Totality: total
Visibility: public export
Constructors:
Nil : LTEmn->OListmn
Cons : (x : Nat) ->LTEmx->OListxn->OListmn
dataBST : Nat->Nat->Type
  A binary search tree carrying proofs of the ordering in the leaves.

[31](https://dl.acm.org/doi/10.1145/2628136.2628163)

Totality: total
Visibility: public export
Constructors:
Leaf : LTEmn->BSTmn
Branch : (x : Nat) ->BSTmx->BSTxn->BSTmn
nil : PDelay (OListmn)
  OList `Nil`, but delaying the proof obligation.

Totality: total
Visibility: public export
cons : (x : Nat) ->PDelay (OListxn) ->PDelay (OListmn)
  OList `Cons`, but delaying the proof obligations.

Totality: total
Visibility: public export
example : OList15
  Extracting an actual `OList` from the delayed version requires providing the
unergonomic proofs.

Totality: total
Visibility: public export
leaf : PDelay (BSTmn)
  BST `Leaf`, but delaying the proof obligation.

Totality: total
Visibility: public export
branch : (x : Nat) ->PDelay (BSTmx) ->PDelay (BSTxn) ->PDelay (BSTmn)
  BST `Branch`, but delaying the proof obligations.

Totality: total
Visibility: public export
example2 : BST210
  Once again, extracting the actual `BST` requires providing the uninteresting
proofs.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Data.Recursion.Free.html b/papers/docs/Data.Recursion.Free.html index dd641ddebe..4c42e9a1e4 100644 --- a/papers/docs/Data.Recursion.Free.html +++ b/papers/docs/Data.Recursion.Free.html @@ -72,4 +72,4 @@ domain/evaluation pair by computing a Dybjer-Setzer code we build a specialised structure that allows us to make the domain proof runtime irrelevant. -

Definitions

dataGeneral : (a : Type) -> (a->Type) ->Type->Type
  Syntax for a program using general recursion

Totality: total
Visibility: public export
Constructors:
Tell : x->Generalabx
  We can return a value without performing any recursive call.
Ask : (i : a) -> (bi->Generalabx) ->Generalabx
  Or we can pick an input and ask an oracle to give us a return value
for it. The second argument is a continuation explaining what we want
to do with the returned value.

Hints:
Applicative (Generalab)
Functor (Generalab)
Monad (Generalab)
PiG : (a : Type) -> (a->Type) ->Type
  Type of functions using general recursion

Totality: total
Visibility: public export
fold : (x->y) -> ((i : a) -> (bi->y) ->y) ->Generalabx->y
  Recursor for General

Totality: total
Visibility: public export
call : PiGab
  Perform a recursive call and return the value provided by the oracle.

Totality: total
Visibility: public export
bind : Generalabx-> (x->Generalaby) ->Generalaby
  Monadic bind (defined outside of the interface to be able to use it for
map and (<*>)).

Totality: total
Visibility: public export
monadMorphism : Monadm=> ((i : a) ->m (bi)) ->Generalabx->mx
  Given a monadic oracle we can give a monad morphism interpreting a
function using general recursion as a monadic process.

Totality: total
Visibility: public export
already : Generalabx->Maybex
  Check whehther we are ready to return a value

Totality: total
Visibility: public export
expand : PiGab->Generalabx->Generalabx
  Use a function using general recursion to expand all of the oracle calls.

Totality: total
Visibility: public export
engine : PiGab->Nat->Generalabx->Generalabx
  Recursively call expand a set number of times.

Totality: total
Visibility: public export
petrol : PiGab->Nat-> (i : a) ->Maybe (bi)
  Check whether recursively calling expand a set number of times is enough
to produce a value.

Totality: total
Visibility: public export
late : PiGab->Generalabx->Latex
  Rely on an oracle using general recursion to convert a function using
general recursion into a process returning a value in the (distant) future.

Totality: total
Visibility: public export
lazy : PiGab-> (i : a) ->Late (bi)
  Interpret a function using general recursion as a process returning
a value in the (distant) future.

Totality: total
Visibility: public export
Domain : PiGab-> (i : a) ->Codeb (bi)
  Compute, as a Dybjer-Setzer code for an inductive-recursive type, the domain
of a function defined by general recursion.

Totality: total
Visibility: public export
evaluate : (f : PiGab) -> (i : a) ->Mu (Domainf) i->bi
  If a given input is in the domain of the function then we may evaluate
it fully on that input and obtain a pure return value.

Totality: total
Visibility: public export
totally : (f : PiGab) -> ((i : a) ->Mu (Domainf) i) -> (i : a) ->bi
  If every input value is in the domain then the function is total.

Totality: total
Visibility: public export
dataLayer : PiGab->Generalab (bi) ->Type
Totality: total
Visibility: public export
Constructors:
MkTell : (o : bi) ->Layerf (Tello)
  A computation returning a value is trivially terminating
MkAsk : (j : a) -> (jprf : Domainfj) -> (k : (bj->Generalab (bi))) ->Layerf (k (evaluatefjjprf)) ->Layerf (Askjk)
  Performing a call to the oracle is termnating if the input is in its
domain and if the rest of the computation is also finite.
view : (d : Generalab (bi)) -> (0l : Layerfd) ->Viewl
  Function computing the view by pattern-matching on the computation and
inverting the proof. Note that the proof is runtime irrelevant even though
the resulting view is not: this is possible because the relevant constructor
is uniquely determined by the shape of `d`.

Totality: total
Visibility: public export
totally : (f : PiGab) -> (0_ : ((i : a) ->Domainfi)) -> (i : a) ->bi
  If a function's domain is total then it is a pure function.

Totality: total
Visibility: public export
irrelevantDomain : (f : PiGab) -> (i : a) -> (p : Domainfi) -> (q : Domainfi) ->p=q
  Domain is a singleton type

Totality: total
Visibility: export
evaluateLayerIrrelevance : (f : PiGab) -> (d : Generalab (bi)) -> (0p : Layerfd) -> (0q : Layerfd) ->evaluateLayerfdp=evaluateLayerfdq
  The result of `evaluateLayer` does not depend on the specific proof that
`i` is in the domain of the layer of computation at hand.

Totality: total
Visibility: export
evaluateIrrelevance : (f : PiGab) -> (i : a) -> (0p : Domainfi) -> (0q : Domainfi) ->evaluatefip=evaluatefiq
  The result of `evaluate` does not depend on the specific proof that `i`
is in the domain of the function at hand.

Totality: total
Visibility: export
totallyIrrelevance : (f : PiGab) -> (0p : ((i : a) ->Domainfi)) -> (0q : ((i : a) ->Domainfi)) -> (i : a) ->totallyfpi=totallyfqi
  The result computed by a total function is independent from the proof
that it is total.

Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataGeneral : (a : Type) -> (a->Type) ->Type->Type
  Syntax for a program using general recursion

Totality: total
Visibility: public export
Constructors:
Tell : x->Generalabx
  We can return a value without performing any recursive call.
Ask : (i : a) -> (bi->Generalabx) ->Generalabx
  Or we can pick an input and ask an oracle to give us a return value
for it. The second argument is a continuation explaining what we want
to do with the returned value.

Hints:
Applicative (Generalab)
Functor (Generalab)
Monad (Generalab)
PiG : (a : Type) -> (a->Type) ->Type
  Type of functions using general recursion

Totality: total
Visibility: public export
fold : (x->y) -> ((i : a) -> (bi->y) ->y) ->Generalabx->y
  Recursor for General

Totality: total
Visibility: public export
call : PiGab
  Perform a recursive call and return the value provided by the oracle.

Totality: total
Visibility: public export
bind : Generalabx-> (x->Generalaby) ->Generalaby
  Monadic bind (defined outside of the interface to be able to use it for
map and (<*>)).

Totality: total
Visibility: public export
monadMorphism : Monadm=> ((i : a) ->m (bi)) ->Generalabx->mx
  Given a monadic oracle we can give a monad morphism interpreting a
function using general recursion as a monadic process.

Totality: total
Visibility: public export
already : Generalabx->Maybex
  Check whehther we are ready to return a value

Totality: total
Visibility: public export
expand : PiGab->Generalabx->Generalabx
  Use a function using general recursion to expand all of the oracle calls.

Totality: total
Visibility: public export
engine : PiGab->Nat->Generalabx->Generalabx
  Recursively call expand a set number of times.

Totality: total
Visibility: public export
petrol : PiGab->Nat-> (i : a) ->Maybe (bi)
  Check whether recursively calling expand a set number of times is enough
to produce a value.

Totality: total
Visibility: public export
late : PiGab->Generalabx->Latex
  Rely on an oracle using general recursion to convert a function using
general recursion into a process returning a value in the (distant) future.

Totality: total
Visibility: public export
lazy : PiGab-> (i : a) ->Late (bi)
  Interpret a function using general recursion as a process returning
a value in the (distant) future.

Totality: total
Visibility: public export
Domain : PiGab-> (i : a) ->Codeb (bi)
  Compute, as a Dybjer-Setzer code for an inductive-recursive type, the domain
of a function defined by general recursion.

Totality: total
Visibility: public export
evaluate : (f : PiGab) -> (i : a) ->Mu (Domainf) i->bi
  If a given input is in the domain of the function then we may evaluate
it fully on that input and obtain a pure return value.

Totality: total
Visibility: public export
totally : (f : PiGab) -> ((i : a) ->Mu (Domainf) i) -> (i : a) ->bi
  If every input value is in the domain then the function is total.

Totality: total
Visibility: public export
dataLayer : PiGab->Generalab (bi) ->Type
Totality: total
Visibility: public export
Constructors:
MkTell : (o : bi) ->Layerf (Tello)
  A computation returning a value is trivially terminating
MkAsk : (j : a) -> (jprf : Domainfj) -> (k : (bj->Generalab (bi))) ->Layerf (k (evaluatefjjprf)) ->Layerf (Askjk)
  Performing a call to the oracle is termnating if the input is in its
domain and if the rest of the computation is also finite.
view : (d : Generalab (bi)) -> (0l : Layerfd) ->Viewl
  Function computing the view by pattern-matching on the computation and
inverting the proof. Note that the proof is runtime irrelevant even though
the resulting view is not: this is possible because the relevant constructor
is uniquely determined by the shape of `d`.

Totality: total
Visibility: public export
totally : (f : PiGab) -> (0_ : ((i : a) ->Domainfi)) -> (i : a) ->bi
  If a function's domain is total then it is a pure function.

Totality: total
Visibility: public export
irrelevantDomain : (f : PiGab) -> (i : a) -> (p : Domainfi) -> (q : Domainfi) ->p=q
  Domain is a singleton type

Totality: total
Visibility: export
evaluateLayerIrrelevance : (f : PiGab) -> (d : Generalab (bi)) -> (0p : Layerfd) -> (0q : Layerfd) ->evaluateLayerfdp=evaluateLayerfdq
  The result of `evaluateLayer` does not depend on the specific proof that
`i` is in the domain of the layer of computation at hand.

Totality: total
Visibility: export
evaluateIrrelevance : (f : PiGab) -> (i : a) -> (0p : Domainfi) -> (0q : Domainfi) ->evaluatefip=evaluatefiq
  The result of `evaluate` does not depend on the specific proof that `i`
is in the domain of the function at hand.

Totality: total
Visibility: export
totallyIrrelevance : (f : PiGab) -> (0p : ((i : a) ->Domainfi)) -> (0q : ((i : a) ->Domainfi)) -> (i : a) ->totallyfpi=totallyfqi
  The result computed by a total function is independent from the proof
that it is total.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Data.Tree.Perfect.html b/papers/docs/Data.Tree.Perfect.html index 932514f4d9..e15e342b5e 100644 --- a/papers/docs/Data.Tree.Perfect.html +++ b/papers/docs/Data.Tree.Perfect.html @@ -61,4 +61,4 @@ -

Data.Tree.Perfect(source)

Definitions

dataTree : Nat->Type->Type
Totality: total
Visibility: public export
Constructors:
Leaf : a->Tree0a
Node : Treena->Treena->Tree (Sn) a

Hints:
Applicative (Treen)
Functor (Treen)
replicate : (n : Nat) ->a->Treena
Totality: total
Visibility: public export
dataPath : Nat->Type
Totality: total
Visibility: public export
Constructors:
Here : Path0
Left : Pathn->Path (Sn)
Right : Pathn->Path (Sn)
toNat : Pathn->Nat
Totality: total
Visibility: public export
toNatBounded : (n : Nat) -> (p : Pathn) ->LT (toNatp) (pow2n)
Totality: total
Visibility: export
dataView : Nat->Nat->Type
  This pattern-matching in `fromNat` is annoying:
The `Z (S _)` case is impossible
In the `k (S n)` case we want to branch on whether `k `LT` pow2 n`
and get our hands on some proofs.
This view factors out that work.

Totality: total
Visibility: public export
Constructors:
ZZ : View00
SLT : (0_ : LTk (pow2n)) ->Viewk (Sn)
SNLT : (0_ : GTEk (pow2n)) -> (0_ : LT (minusk (pow2n)) (pow2n)) ->Viewk (Sn)
view : (k : Nat) -> (n : Nat) -> (0_ : LTk (pow2n)) ->Viewkn
Totality: total
Visibility: public export
fromNat : (k : Nat) -> (n : Nat) -> (0_ : LTk (pow2n)) ->Pathn
  Convert a natural number to a path in a perfect binary tree

Totality: total
Visibility: public export
fromNatCorrect : (k : Nat) -> (n : Nat) -> (0p : LTk (pow2n)) ->toNat (fromNatknp) =k
  The `fromNat` conversion is compatible with the semantics `toNat`

Totality: total
Visibility: export
lookup : Treena->Pathn->a
Totality: total
Visibility: public export
\ No newline at end of file +

Data.Tree.Perfect(source)

Definitions

dataTree : Nat->Type->Type
Totality: total
Visibility: public export
Constructors:
Leaf : a->Tree0a
Node : Treena->Treena->Tree (Sn) a

Hints:
Applicative (Treen)
Functor (Treen)
replicate : (n : Nat) ->a->Treena
Totality: total
Visibility: public export
dataPath : Nat->Type
Totality: total
Visibility: public export
Constructors:
Here : Path0
Left : Pathn->Path (Sn)
Right : Pathn->Path (Sn)
toNat : Pathn->Nat
Totality: total
Visibility: public export
toNatBounded : (n : Nat) -> (p : Pathn) ->LT (toNatp) (pow2n)
Totality: total
Visibility: export
dataView : Nat->Nat->Type
  This pattern-matching in `fromNat` is annoying:
The `Z (S _)` case is impossible
In the `k (S n)` case we want to branch on whether `k `LT` pow2 n`
and get our hands on some proofs.
This view factors out that work.

Totality: total
Visibility: public export
Constructors:
ZZ : View00
SLT : (0_ : LTk (pow2n)) ->Viewk (Sn)
SNLT : (0_ : GTEk (pow2n)) -> (0_ : LT (minusk (pow2n)) (pow2n)) ->Viewk (Sn)
view : (k : Nat) -> (n : Nat) -> (0_ : LTk (pow2n)) ->Viewkn
Totality: total
Visibility: public export
fromNat : (k : Nat) -> (n : Nat) -> (0_ : LTk (pow2n)) ->Pathn
  Convert a natural number to a path in a perfect binary tree

Totality: total
Visibility: public export
fromNatCorrect : (k : Nat) -> (n : Nat) -> (0p : LTk (pow2n)) ->toNat (fromNatknp) =k
  The `fromNat` conversion is compatible with the semantics `toNat`

Totality: total
Visibility: export
lookup : Treena->Pathn->a
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Data.Vect.Binary.html b/papers/docs/Data.Vect.Binary.html index 3b7f2f924c..78c63b1e43 100644 --- a/papers/docs/Data.Vect.Binary.html +++ b/papers/docs/Data.Vect.Binary.html @@ -63,4 +63,4 @@

Data.Vect.Binary(source)

The content of this file is taken from the paper
 Heterogeneous Binary Random-access lists
-

Definitions

dataBVect : Nat->Bin->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : BVectn [] a
(::) : IMaybe (isIb) (Treena) ->BVect (Sn) bsa->BVectn (b::bs) a
dataPath : Nat->Bin->Type
Totality: total
Visibility: public export
Constructors:
Here : Pathn->Pathn (I::bs)
There : Path (Sn) bs->Pathn (b::bs)
zero : Pathn (sucbs)
Totality: total
Visibility: public export
lookup : BVectnbsa->Pathnbs->a
Totality: total
Visibility: public export
cons : Treena->BVectnbsa->BVectn (sucbs) a
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataBVect : Nat->Bin->Type->Type
Totality: total
Visibility: public export
Constructors:
Nil : BVectn [] a
(::) : IMaybe (isIb) (Treena) ->BVect (Sn) bsa->BVectn (b::bs) a
dataPath : Nat->Bin->Type
Totality: total
Visibility: public export
Constructors:
Here : Pathn->Pathn (I::bs)
There : Path (Sn) bs->Pathn (b::bs)
zero : Pathn (sucbs)
Totality: total
Visibility: public export
lookup : BVectnbsa->Pathnbs->a
Totality: total
Visibility: public export
cons : Treena->BVectnbsa->BVectn (sucbs) a
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Data.W.html b/papers/docs/Data.W.html index d9408d6c8b..9045a0a3cb 100644 --- a/papers/docs/Data.W.html +++ b/papers/docs/Data.W.html @@ -61,4 +61,4 @@ -

Data.W(source)

Definitions

fromString : String->Fin
Totality: total
Visibility: public export
fromString : (nm : String) ->IsJust (lookupdnm) =>Shaped
Totality: total
Visibility: export
lam : ((x : Elemd) ->b$$x) ->Pidb
Totality: total
Visibility: export
appArr : (d : Fin) ->PiArrdb-> (x : Elemd) ->appArrdbx
Totality: total
Visibility: public export
($$) : Pidb-> (x : Elemd) ->b$$x
Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 0
beta : (f : ((x : Elemd) ->b$$x)) -> (x : Elemd) ->lamf$$x=fx
Totality: total
Visibility: export
eta : (f : Pidb) ->lam (\x=>f$$x) =f
Totality: total
Visibility: export
ext : (f : ((x : Elemd) ->b$$x)) -> (g : ((x : Elemd) ->b$$x)) -> ((x : Elemd) ->fx=gx) ->lamf=lamg
Totality: total
Visibility: export
NAT : Type
Totality: total
Visibility: public export
lamArr : (d : Fin) -> (e : ArrdType) -> (k : ArrdeType) -> ((x : ElemArrde) ->appArrdekx) ->PiArrdek
Totality: total
Visibility: public export
lam : ((x : Elemp) ->k$$x) ->Pipk
Totality: total
Visibility: public export
appArr : (d : Fin) -> (e : ArrdType) -> (k : ArrdeType) ->PiArrdek-> (x : ElemArrde) ->appArrdekx
Totality: total
Visibility: public export
($$) : Pipk-> (x : Elemp) ->k$$x
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 0
\ No newline at end of file +

Data.W(source)

Definitions

fromString : String->Fin
Totality: total
Visibility: public export
fromString : (nm : String) ->IsJust (lookupdnm) =>Shaped
Totality: total
Visibility: export
lam : ((x : Elemd) ->b$$x) ->Pidb
Totality: total
Visibility: export
appArr : (d : Fin) ->PiArrdb-> (x : Elemd) ->appArrdbx
Totality: total
Visibility: public export
($$) : Pidb-> (x : Elemd) ->b$$x
Totality: total
Visibility: export
Fixity Declaration: infixl operator, level 0
beta : (f : ((x : Elemd) ->b$$x)) -> (x : Elemd) ->lamf$$x=fx
Totality: total
Visibility: export
eta : (f : Pidb) ->lam (\x=>f$$x) =f
Totality: total
Visibility: export
ext : (f : ((x : Elemd) ->b$$x)) -> (g : ((x : Elemd) ->b$$x)) -> ((x : Elemd) ->fx=gx) ->lamf=lamg
Totality: total
Visibility: export
NAT : Type
Totality: total
Visibility: public export
lamArr : (d : Fin) -> (e : ArrdType) -> (k : ArrdeType) -> ((x : ElemArrde) ->appArrdekx) ->PiArrdek
Totality: total
Visibility: public export
lam : ((x : Elemp) ->k$$x) ->Pipk
Totality: total
Visibility: public export
appArr : (d : Fin) -> (e : ArrdType) -> (k : ArrdeType) ->PiArrdek-> (x : ElemArrde) ->appArrdekx
Totality: total
Visibility: public export
($$) : Pipk-> (x : Elemp) ->k$$x
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 0
\ No newline at end of file diff --git a/papers/docs/Language.IntrinsicScoping.TypeTheory.html b/papers/docs/Language.IntrinsicScoping.TypeTheory.html index 39caf7e9a6..8499f51cd9 100644 --- a/papers/docs/Language.IntrinsicScoping.TypeTheory.html +++ b/papers/docs/Language.IntrinsicScoping.TypeTheory.html @@ -67,4 +67,4 @@ NB: Unlike `Language.TypeTheory`, this is not a direct translation of the code in the paper but rather a more idiomatic solution. -

Definitions

Scoped : Type
Visibility: public export
thin : (0ext : ListName) ->Checkfg->Check (ext++f) g
Visibility: export
thin : (0ext : ListName) ->Inferfg->Infer (ext++f) g
Visibility: export
closed : (0g : SnocListName) ->Inferf [<] ->Inferfg
Visibility: export
thin : (0ext : ListName) ->Valuef->Value (ext++f)
Visibility: export
\ No newline at end of file +

Definitions

Scoped : Type
Visibility: public export
thin : (0ext : ListName) ->Checkfg->Check (ext++f) g
Visibility: export
thin : (0ext : ListName) ->Inferfg->Infer (ext++f) g
Visibility: export
closed : (0g : SnocListName) ->Inferf [<] ->Inferfg
Visibility: export
thin : (0ext : ListName) ->Valuef->Value (ext++f)
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Language.IntrinsicScoping.Variables.html b/papers/docs/Language.IntrinsicScoping.Variables.html index e9e741ddc2..3e7c9c5b7e 100644 --- a/papers/docs/Language.IntrinsicScoping.Variables.html +++ b/papers/docs/Language.IntrinsicScoping.Variables.html @@ -61,4 +61,4 @@ -

Language.IntrinsicScoping.Variables(source)

Definitions

Name : Type
  We do not really care about the notion of names used here
as long as it has a decidable notion of equality.
String will do for now

Totality: total
Visibility: export
IContext : Type
  A context of De Bruijn indices is right-to-left.
Just like in typing rules, newly bound variables are added
at the most local end with index 0, and all other variables
see their index shifted by 1.

Totality: total
Visibility: public export
dataAtIndex : Nat->Name->IContext->Type
  De Bruijn indices are right-to-left, starting from 0

Totality: total
Visibility: public export
Constructors:
Z : AtIndex0nm (g:<nm)
S : AtIndexnnmg->AtIndex (Sn) nm (g:<{_:9257})
recordIndex : Name->IContext->Type
  An index is the pairing of its encoding as a natural number
and the proof it is valid

Totality: total
Visibility: public export
Constructor: 
MkIndex : (getIndex : Nat) -> (0_ : AtIndexgetIndexnmctx) ->Indexnmctx

Projections:
.getIndex : Indexnmctx->Nat
0.validIndex : ({rec:0} : Indexnmctx) ->AtIndex (getIndex{rec:0}) nmctx

Hint: 
Injectiveweaken
.getIndex : Indexnmctx->Nat
Totality: total
Visibility: public export
getIndex : Indexnmctx->Nat
Totality: total
Visibility: public export
0.validIndex : ({rec:0} : Indexnmctx) ->AtIndex (getIndex{rec:0}) nmctx
Totality: total
Visibility: public export
0validIndex : ({rec:0} : Indexnmctx) ->AtIndex (getIndex{rec:0}) nmctx
Totality: total
Visibility: public export
fresh : Indexnm (ctx:<nm)
Totality: total
Visibility: public export
weaken : Indexnmctx->Indexnm (ctx:<{_:9376})
Totality: total
Visibility: public export
dataView : Indexnmctx->Type
Totality: total
Visibility: public export
Constructors:
Z : Viewfresh
S : (p : Indexnmctx) ->View (weakenp)
view : (p : Indexnmctx) ->Viewp
Totality: total
Visibility: public export
isLast : Indexnm ([<x] <+>g) ->Either (nm=x) (Indexnmg)
Totality: total
Visibility: export
delete : Indexnmg->IContext
Totality: total
Visibility: public export
thicken : (v : Indexnmg) -> (v' : Indexnm'g) ->Either (nm=nm', v=v') (Indexnm' (deletev))
Totality: total
Visibility: export
irrelevantAtIndex : (p : AtIndexnnmg) -> (q : AtIndexnnm'g) -> (nm=nm', p=q)
Totality: total
Visibility: export
hetEqDec : (v : Indexnmg) -> (w : Indexnm'g) ->Dec (nm=nm', v=w)
Totality: total
Visibility: export
LContext : Type
  A context of De Bruijn levels is left-to-right
Newly bound variables are added at the far end, with index (length ctx).
This has the advantage that all other variables have an unchanged level.

Totality: total
Visibility: public export
dataAtLevel : Nat->Name->LContext->Type
Totality: total
Visibility: public export
Constructors:
H : n=lengthctx->AtLevelnnm (nm::ctx)
T : AtLevelnnmctx->AtLevelnnm ({_:10180}::ctx)
recordLevel : Name->LContext->Type
  A level is the pairing of its encoding as a natural number
and the proof it is valid

Totality: total
Visibility: public export
Constructor: 
MkLevel : (getLevel : Nat) -> (0_ : AtLevelgetLevelnmctx) ->Levelnmctx

Projections:
.getLevel : Levelnmctx->Nat
0.validIndex : ({rec:0} : Levelnmctx) ->AtLevel (getLevel{rec:0}) nmctx
.getLevel : Levelnmctx->Nat
Totality: total
Visibility: public export
getLevel : Levelnmctx->Nat
Totality: total
Visibility: public export
0.validIndex : ({rec:0} : Levelnmctx) ->AtLevel (getLevel{rec:0}) nmctx
Totality: total
Visibility: public export
0validIndex : ({rec:0} : Levelnmctx) ->AtLevel (getLevel{rec:0}) nmctx
Totality: total
Visibility: public export
weaken : Levelnmctx->Levelnm ({_:10329}::ctx)
Totality: total
Visibility: export
fresh : Levelnm (nm::ctx)
Totality: total
Visibility: export
dataView : Levelnmctx->Type
Totality: total
Visibility: public export
Constructors:
Z : Viewfresh
S : (p : Levelnmctx) ->View (weakenp)
view : (p : Levelnmctx) ->Viewp
Totality: total
Visibility: public export
irrelevantAtLevel : (p : AtLevelnnmctx) -> (q : AtLevelnnm'ctx) -> (nm=nm', p=q)
Totality: total
Visibility: export
hetEqDec : (v : Levelnmg) -> (w : Levelnm'g) ->Dec (nm=nm', v=w)
Totality: total
Visibility: export
rev : Lista->SnocLista
Totality: total
Visibility: public export
lteIsPlus : LTEmn->Plus (minusnm) mn
Totality: total
Visibility: export
asIndex : AtLevelnnmls->AtIndex (minus (lengthls) (Sn)) nm (revls)
Totality: total
Visibility: export
asIndex : Levelnmls->Indexnm (revls)
Totality: total
Visibility: export
\ No newline at end of file +

Language.IntrinsicScoping.Variables(source)

Definitions

Name : Type
  We do not really care about the notion of names used here
as long as it has a decidable notion of equality.
String will do for now

Totality: total
Visibility: export
IContext : Type
  A context of De Bruijn indices is right-to-left.
Just like in typing rules, newly bound variables are added
at the most local end with index 0, and all other variables
see their index shifted by 1.

Totality: total
Visibility: public export
dataAtIndex : Nat->Name->IContext->Type
  De Bruijn indices are right-to-left, starting from 0

Totality: total
Visibility: public export
Constructors:
Z : AtIndex0nm (g:<nm)
S : AtIndexnnmg->AtIndex (Sn) nm (g:<{_:9257})
recordIndex : Name->IContext->Type
  An index is the pairing of its encoding as a natural number
and the proof it is valid

Totality: total
Visibility: public export
Constructor: 
MkIndex : (getIndex : Nat) -> (0_ : AtIndexgetIndexnmctx) ->Indexnmctx

Projections:
.getIndex : Indexnmctx->Nat
0.validIndex : ({rec:0} : Indexnmctx) ->AtIndex (getIndex{rec:0}) nmctx

Hint: 
Injectiveweaken
.getIndex : Indexnmctx->Nat
Totality: total
Visibility: public export
getIndex : Indexnmctx->Nat
Totality: total
Visibility: public export
0.validIndex : ({rec:0} : Indexnmctx) ->AtIndex (getIndex{rec:0}) nmctx
Totality: total
Visibility: public export
0validIndex : ({rec:0} : Indexnmctx) ->AtIndex (getIndex{rec:0}) nmctx
Totality: total
Visibility: public export
fresh : Indexnm (ctx:<nm)
Totality: total
Visibility: public export
weaken : Indexnmctx->Indexnm (ctx:<{_:9376})
Totality: total
Visibility: public export
dataView : Indexnmctx->Type
Totality: total
Visibility: public export
Constructors:
Z : Viewfresh
S : (p : Indexnmctx) ->View (weakenp)
view : (p : Indexnmctx) ->Viewp
Totality: total
Visibility: public export
isLast : Indexnm ([<x] <+>g) ->Either (nm=x) (Indexnmg)
Totality: total
Visibility: export
delete : Indexnmg->IContext
Totality: total
Visibility: public export
thicken : (v : Indexnmg) -> (v' : Indexnm'g) ->Either (nm=nm', v=v') (Indexnm' (deletev))
Totality: total
Visibility: export
irrelevantAtIndex : (p : AtIndexnnmg) -> (q : AtIndexnnm'g) -> (nm=nm', p=q)
Totality: total
Visibility: export
hetEqDec : (v : Indexnmg) -> (w : Indexnm'g) ->Dec (nm=nm', v=w)
Totality: total
Visibility: export
LContext : Type
  A context of De Bruijn levels is left-to-right
Newly bound variables are added at the far end, with index (length ctx).
This has the advantage that all other variables have an unchanged level.

Totality: total
Visibility: public export
dataAtLevel : Nat->Name->LContext->Type
Totality: total
Visibility: public export
Constructors:
H : n=lengthctx->AtLevelnnm (nm::ctx)
T : AtLevelnnmctx->AtLevelnnm ({_:10180}::ctx)
recordLevel : Name->LContext->Type
  A level is the pairing of its encoding as a natural number
and the proof it is valid

Totality: total
Visibility: public export
Constructor: 
MkLevel : (getLevel : Nat) -> (0_ : AtLevelgetLevelnmctx) ->Levelnmctx

Projections:
.getLevel : Levelnmctx->Nat
0.validIndex : ({rec:0} : Levelnmctx) ->AtLevel (getLevel{rec:0}) nmctx
.getLevel : Levelnmctx->Nat
Totality: total
Visibility: public export
getLevel : Levelnmctx->Nat
Totality: total
Visibility: public export
0.validIndex : ({rec:0} : Levelnmctx) ->AtLevel (getLevel{rec:0}) nmctx
Totality: total
Visibility: public export
0validIndex : ({rec:0} : Levelnmctx) ->AtLevel (getLevel{rec:0}) nmctx
Totality: total
Visibility: public export
weaken : Levelnmctx->Levelnm ({_:10329}::ctx)
Totality: total
Visibility: export
fresh : Levelnm (nm::ctx)
Totality: total
Visibility: export
dataView : Levelnmctx->Type
Totality: total
Visibility: public export
Constructors:
Z : Viewfresh
S : (p : Levelnmctx) ->View (weakenp)
view : (p : Levelnmctx) ->Viewp
Totality: total
Visibility: public export
irrelevantAtLevel : (p : AtLevelnnmctx) -> (q : AtLevelnnm'ctx) -> (nm=nm', p=q)
Totality: total
Visibility: export
hetEqDec : (v : Levelnmg) -> (w : Levelnm'g) ->Dec (nm=nm', v=w)
Totality: total
Visibility: export
rev : Lista->SnocLista
Totality: total
Visibility: public export
lteIsPlus : LTEmn->Plus (minusnm) mn
Totality: total
Visibility: export
asIndex : AtLevelnnmls->AtIndex (minus (lengthls) (Sn)) nm (revls)
Totality: total
Visibility: export
asIndex : Levelnmls->Indexnm (revls)
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Language.IntrinsicTyping.ABT.html b/papers/docs/Language.IntrinsicTyping.ABT.html index 98af4719b8..0ec4957a9d 100644 --- a/papers/docs/Language.IntrinsicTyping.ABT.html +++ b/papers/docs/Language.IntrinsicTyping.ABT.html @@ -63,4 +63,4 @@

Language.IntrinsicTyping.ABT(source)

Abstract binding trees are a generic representation of terms over
 a given signature
-

Definitions

recordArgument : Type
  A constructor's argument describes the kind of the variables that
will be bound in the subterm as well as the overall type of the
argument.
The argument `n` in `S n` is described by `MkArgument [] Nat`
The argument `b` in `\x. b` is described by `MkArgument [s] t`

Totality: total
Visibility: public export
Constructor: 
MkArgument : Listkind->kind->Argument

Projections:
.argType : Argument->kind
.binders : Argument->Listkind
.binders : Argument->Listkind
Totality: total
Visibility: public export
binders : Argument->Listkind
Totality: total
Visibility: public export
.argType : Argument->kind
Totality: total
Visibility: public export
argType : Argument->kind
Totality: total
Visibility: public export
0Signature : Type
  A signature is a relation describing constructors.
Each constructor has a list of arguments and a return type.

Totality: total
Visibility: public export
dataTerm : Signature->SnocListkind->kind->Type
Totality: total
Visibility: public export
Constructors:
Var : Elemsctx->Termsigctxs
  Variables are represented using typed De Bruijn indices.
Con : sigargss->Argssigctxargs->Termsigctxs
  Constructors are provided by the signature
dataArgs : Signature->SnocListkind->ListArgument->Type
Totality: total
Visibility: public export
Constructors:
Nil : Argssigctx []
  Empty list
(::) : Termsig (ctx<><bds) s->Argssigctxargs->Argssigctx (MkArgumentbdss::args)
  An argument with binders `bds` and return type `s` is provided by a term
whose scope has been extended by `bds` and whose return type is `s`.
lift : (Elemsctx->Elemsctx') ->Elems (ctx:<t) ->Elems (ctx':<t)
Totality: total
Visibility: public export
lifts : (bds : Listkind) -> (Elemsctx->Elemsctx') ->Elems (ctx<><bds) ->Elems (ctx'<><bds)
Totality: total
Visibility: public export
rename : (Elemsctx->Elemsctx') ->Termsigctxs->Termsigctx's
Totality: total
Visibility: public export
renames : (Elemsctx->Elemsctx') ->Argssigctxargs->Argssigctx'args
Totality: total
Visibility: public export
extend : (Elemsctx->Termsigctx's) ->Elems (ctx:<t) ->Termsig (ctx':<t) s
Totality: total
Visibility: public export
extends : (bds : Listkind) -> (Elemsctx->Termsigctx's) ->Elems (ctx<><bds) ->Termsig (ctx'<><bds) s
Totality: total
Visibility: public export
substitute : (Elemsctx->Termsigctx's) ->Termsigctxs->Termsigctx's
Totality: total
Visibility: public export
substitutes : (Elemsctx->Termsigctx's) ->Argssigctxargs->Argssigctx'args
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

recordArgument : Type
  A constructor's argument describes the kind of the variables that
will be bound in the subterm as well as the overall type of the
argument.
The argument `n` in `S n` is described by `MkArgument [] Nat`
The argument `b` in `\x. b` is described by `MkArgument [s] t`

Totality: total
Visibility: public export
Constructor: 
MkArgument : Listkind->kind->Argument

Projections:
.argType : Argument->kind
.binders : Argument->Listkind
.binders : Argument->Listkind
Totality: total
Visibility: public export
binders : Argument->Listkind
Totality: total
Visibility: public export
.argType : Argument->kind
Totality: total
Visibility: public export
argType : Argument->kind
Totality: total
Visibility: public export
0Signature : Type
  A signature is a relation describing constructors.
Each constructor has a list of arguments and a return type.

Totality: total
Visibility: public export
dataTerm : Signature->SnocListkind->kind->Type
Totality: total
Visibility: public export
Constructors:
Var : Elemsctx->Termsigctxs
  Variables are represented using typed De Bruijn indices.
Con : sigargss->Argssigctxargs->Termsigctxs
  Constructors are provided by the signature
dataArgs : Signature->SnocListkind->ListArgument->Type
Totality: total
Visibility: public export
Constructors:
Nil : Argssigctx []
  Empty list
(::) : Termsig (ctx<><bds) s->Argssigctxargs->Argssigctx (MkArgumentbdss::args)
  An argument with binders `bds` and return type `s` is provided by a term
whose scope has been extended by `bds` and whose return type is `s`.
lift : (Elemsctx->Elemsctx') ->Elems (ctx:<t) ->Elems (ctx':<t)
Totality: total
Visibility: public export
lifts : (bds : Listkind) -> (Elemsctx->Elemsctx') ->Elems (ctx<><bds) ->Elems (ctx'<><bds)
Totality: total
Visibility: public export
rename : (Elemsctx->Elemsctx') ->Termsigctxs->Termsigctx's
Totality: total
Visibility: public export
renames : (Elemsctx->Elemsctx') ->Argssigctxargs->Argssigctx'args
Totality: total
Visibility: public export
extend : (Elemsctx->Termsigctx's) ->Elems (ctx:<t) ->Termsig (ctx':<t) s
Totality: total
Visibility: public export
extends : (bds : Listkind) -> (Elemsctx->Termsigctx's) ->Elems (ctx<><bds) ->Termsig (ctx'<><bds) s
Totality: total
Visibility: public export
substitute : (Elemsctx->Termsigctx's) ->Termsigctxs->Termsigctx's
Totality: total
Visibility: public export
substitutes : (Elemsctx->Termsigctx's) ->Argssigctxargs->Argssigctx'args
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Language.IntrinsicTyping.Krivine.html b/papers/docs/Language.IntrinsicTyping.Krivine.html index f8aa134ef9..5ee7204a1d 100644 --- a/papers/docs/Language.IntrinsicTyping.Krivine.html +++ b/papers/docs/Language.IntrinsicTyping.Krivine.html @@ -65,4 +65,4 @@ From Mathematics to Abstract Machine A formal derivation of an executable Krivine machine by Wouter Swierstra -

Definitions

dataTy : Type
Totality: total
Visibility: public export
Constructors:
Base : Ty
Arr : Ty->Ty->Ty
Context : Type
Totality: total
Visibility: public export
dataTerm : Context->Ty->Type
Totality: total
Visibility: public export
Constructors:
Lam : Term (a::g) b->Termg (Arrab)
App : Termg (Arrab) ->Termga->Termgb
Var : Elemag->Termga
dataClosed : Ty->Type
Totality: total
Visibility: public export
Constructors:
Closure : Termga->Envg->Closeda
ClApp : Closed (Arrab) ->Closeda->Closedb
dataEnv : Context->Type
Totality: total
Visibility: public export
Constructors:
Nil : Env []
(::) : Closeda->Envg->Env (a::g)
dataIsValue : Closedg->Type
Totality: total
Visibility: public export
Constructor: 
Lam : IsValue (Closure (Lamb) env)
dataValue : Ty->Type
Totality: total
Visibility: public export
Constructor: 
Val : (c : Closeda) ->IsValuec->Valuea
dataRedex : Ty->Type
Totality: total
Visibility: public export
Constructors:
RVar : Elemag->Envg->Redexa
RApp : Termg (Arrab) ->Termga->Envg->Redexb
Beta : Term (a::g) b->Envg->Closeda->Redexb
redex : Redexa->Closeda
Totality: total
Visibility: public export
lookup : Envg->Elemag->Closeda
Totality: total
Visibility: public export
contract : Redexa->Closeda
Totality: total
Visibility: public export
dataEvalContext : Ty->Ty->Type
Totality: total
Visibility: public export
Constructors:
Nil : EvalContextinnerinner
(::) : Closeda->EvalContextinnerouter->EvalContext (Arrainner) outer
snoc : EvalContextinner (Arrdomouter) ->Closeddom->EvalContextinnerouter
Totality: total
Visibility: public export
dataSnocView : EvalContextinnerouter->Type
Totality: total
Visibility: public export
Constructors:
Lin : SnocView []
(:<) : (ctx : EvalContextinner (Arrdomouter)) -> (t : Closeddom) ->SnocView (snocctxt)
snocView : (ctx : EvalContextinnerouter) ->SnocViewctx
Totality: total
Visibility: public export
plug : EvalContextab->Closeda->Closedb
Totality: total
Visibility: public export
0plugSnoc : (ctx : EvalContexta (Arrdomb)) -> (t : Closeddom) -> (f : Closeda) ->plug (snocctxt) f=ClApp (plugctxf) t
Totality: total
Visibility: public export
dataDecomposition : Closeda->Type
Totality: total
Visibility: public export
Constructors:
Val : (sc : Term (a::g) b) -> (env : Envg) ->Decomposition (Closure (Lamsc) env)
Red : (r : Redexs) -> (ctx : EvalContextst) ->Decomposition (plugctx (redexr))
load : (ctx : EvalContextab) -> (c : Closeda) ->Decomposition (plugctxc)
Totality: total
Visibility: public export
unload : (ctx : EvalContext (Arrab) outer) -> (sc : Term (a::g) b) -> (env : Envg) ->Decomposition (plugctx (Closure (Lamsc) env))
Totality: total
Visibility: public export
decompose : (c : Closeda) ->Decompositionc
Totality: total
Visibility: public export
decomposePlug : (ctx : EvalContextab) -> (c : Closeda) ->decompose (plugctxc) =loadctxc
Totality: total
Visibility: public export
recompose : Decompositionc->Closeda
Totality: total
Visibility: public export
headReduce : Closeda->Closeda
Totality: total
Visibility: public export
loadRedex : (ctx : EvalContextab) -> (r : Redexa) ->loadctx (redexr) =Redrctx
Totality: total
Visibility: public export
headReducePlug : (ctx : EvalContextab) -> (r : Redexa) ->headReduce (plugctx (redexr)) =plugctx (contractr)
Totality: total
Visibility: public export
headReduceClApp : (f : Closed (Arrab)) ->Not (IsValuef) -> (t : Closeda) ->headReduce (ClAppft) =ClApp (headReducef) t
Totality: total
Visibility: public export
dataTrace : Decompositionc->Type
Totality: total
Visibility: public export
Constructors:
Done : (sc : Term ({a:5010}::{g:5009}) {b:5008}) -> (env : Env{g:5009}) ->Trace (Valscenv)
Step : (ctx : EvalContextab) -> (r : Redexa) ->Trace (decompose (plugctx (contractr))) ->Trace (Redrctx)
iterate : (0_ : Traced) ->Valuea
Totality: total
Visibility: public export
Reducible : (a : Ty) ->Closeda->Type
Totality: total
Visibility: public export
dataReducibleEnv : Envg->Type
Totality: total
Visibility: public export
Constructors:
Nil : ReducibleEnv []
(::) : Reducibleat->ReducibleEnvenv->ReducibleEnv (t::env)
lookup : ReducibleEnvenv-> (v : Elemag) ->Reduciblea (lookupenvv)
Totality: total
Visibility: public export
step : Trace (decompose (headReducec)) ->Trace (decomposec)
Totality: total
Visibility: public export
expand : Reduciblea (headReducec) ->Reducibleac
Totality: total
Visibility: public export
closure : (t : Termga) ->ReducibleEnvenv->Reduciblea (Closuretenv)
Totality: total
Visibility: public export
theorem : (c : Closeda) ->Reducibleac
Totality: total
Visibility: public export
theoremEnv : (env : Envg) ->ReducibleEnvenv
Totality: total
Visibility: public export
termination : (c : Closeda) ->Trace (decomposec)
Totality: total
Visibility: public export
evaluate : Closeda->Valuea
Totality: total
Visibility: public export
refocus : (ctx : EvalContextab) -> (c : Closeda) ->Decomposition (plugctxc)
Totality: total
Visibility: public export
refocusCorrect : (ctx : EvalContextab) -> (c : Closeda) ->refocusctxc=decompose (plugctxc)
Totality: total
Visibility: public export
dataTrace : Decompositionc->Type
Totality: total
Visibility: public export
Constructors:
Done : (0sc : Term ({a:6022}::{g:6021}) {b:6020}) -> (0env : Env{g:6021}) ->Trace (Valscenv)
Step : (0ctx : EvalContextab) -> (0r : Redexa) ->Trace (refocusctx (contractr)) ->Trace (Redrctx)
trace : Traced-> (0_ : e=d) ->Tracee
Totality: total
Visibility: public export
termination : (c : Closeda) ->Trace (decomposec)
Totality: total
Visibility: public export
iterate : (0_ : Traced) ->Valuea
Totality: total
Visibility: public export
evaluate : Closeda->Valuea
Totality: total
Visibility: public export
IsValidEnv : Envg->Type
Totality: total
Visibility: public export
IsValidClosed : Closeda->Type
Totality: total
Visibility: public export
ValidEnv : Context->Type
Totality: total
Visibility: public export
ValidClosed : Ty->Type
Totality: total
Visibility: public export
Closure : Termga->ValidEnvg->ValidCloseda
Totality: total
Visibility: public export
fstClosure : (t : Termga) -> (env : ValidEnvg) ->fst (Closuretenv) =Closuret (fstenv)
Totality: total
Visibility: public export
0getContext : ValidCloseda->Context
Totality: total
Visibility: public export
getEnv : (c : ValidCloseda) ->ValidEnv (getContextc)
Totality: total
Visibility: public export
getTerm : (c : ValidCloseda) ->Term (getContextc) a
Totality: total
Visibility: public export
etaValidClosed : (c : ValidCloseda) ->c=Closure (getTermc) (getEnvc)
Totality: total
Visibility: public export
lookup : ValidEnvg->Elemag->ValidCloseda
Totality: total
Visibility: public export
fstLookup : (env : ValidEnvg) -> (v : Elemag) ->fst (lookupenvv) =lookup (fstenv) v
Totality: total
Visibility: public export
Nil : ValidEnv []
Totality: total
Visibility: public export
(::) : ValidCloseda->ValidEnvg->ValidEnv (a::g)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
IsValidEvalContext : EvalContextab->Type
Totality: total
Visibility: public export
ValidEvalContext : Ty->Ty->Type
Totality: total
Visibility: public export
Nil : ValidEvalContextaa
Totality: total
Visibility: public export
(::) : ValidCloseda->ValidEvalContextbc->ValidEvalContext (Arrab) c
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
fstCons : (t : ValidCloseda) -> (ctx : ValidEvalContextbc) ->fst (t::ctx) =fstt::fstctx
Totality: total
Visibility: public export
dataView : ValidEvalContextab->Type
Totality: total
Visibility: public export
Constructors:
Nil : View []
(::) : (t : ValidCloseda) -> (ctx : ValidEvalContextbc) ->View (t::ctx)
irrelevantUnit : (t : ()) ->t= ()
Totality: total
Visibility: public export
etaPair : (p : (a, b)) ->p= (fstp, sndp)
Totality: total
Visibility: public export
view : (ctx : ValidEvalContextab) ->Viewctx
Totality: total
Visibility: public export
dataTrace : Termga->ValidEnvg->ValidEvalContextab->Type
Totality: total
Visibility: public export
Constructors:
Var : Trace (getTerm (lookupenvv)) (getEnv (lookupenvv)) ctx->Trace (Varv) envctx
App : Tracefenv (Closuretenv::ctx) ->Trace (f `App` t) envctx
Beta : Tracesc (arg::env) ctx->Trace (Lamsc) env (arg::ctx)
Done : Trace (Lamsc) env []
vvar : (tr : Trace (Varv) envctx) -> (tr' : Trace (getTerm (lookupenvv)) (getEnv (lookupenvv)) ctx**tr=Vartr')
Totality: total
Visibility: public export
vapp : (tr : Trace (f `App` t) envctx) -> (tr' : Tracefenv (Closuretenv::ctx) **tr= (tr' `App`))
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 5
vlam0 : ctx= [] -> (tr : Trace (Lamsc) envctx) ->tr=Done
Totality: total
Visibility: public export
vlamS : ctx=arg::ctx'-> (tr : Trace (Lamsc) envctx) -> (tr' : Tracesc (arg::env) ctx'**tr=Betatr')
Totality: total
Visibility: public export
view : (t : Termga) -> (env : ValidEnvg) -> (ctx : ValidEvalContextab) -> (0tr : Tracetenvctx) ->Viewtr
Totality: total
Visibility: public export
refocus : (0_ : Tracetenvctx) ->Valueb
Totality: total
Visibility: public export
correctness : (ctx : ValidEvalContextab) -> (t : Termga) -> (env : ValidEnvg) -> (trold : Trace (refocus (fstctx) (Closuret (fstenv)))) -> (trnew : Tracetenvctx) ->refocustrnew=iteratetrold
Totality: total
Visibility: public export
trace : (ctx : ValidEvalContextab) -> (t : Termga) -> (env : ValidEnvg) ->Trace (refocus (fstctx) (Closuret (fstenv))) ->Tracetenvctx
Totality: total
Visibility: public export
termination : (t : Term [] a) ->Tracet [] []
Totality: total
Visibility: public export
evaluate : Term [] a->Valuea
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataTy : Type
Totality: total
Visibility: public export
Constructors:
Base : Ty
Arr : Ty->Ty->Ty
Context : Type
Totality: total
Visibility: public export
dataTerm : Context->Ty->Type
Totality: total
Visibility: public export
Constructors:
Lam : Term (a::g) b->Termg (Arrab)
App : Termg (Arrab) ->Termga->Termgb
Var : Elemag->Termga
dataClosed : Ty->Type
Totality: total
Visibility: public export
Constructors:
Closure : Termga->Envg->Closeda
ClApp : Closed (Arrab) ->Closeda->Closedb
dataEnv : Context->Type
Totality: total
Visibility: public export
Constructors:
Nil : Env []
(::) : Closeda->Envg->Env (a::g)
dataIsValue : Closedg->Type
Totality: total
Visibility: public export
Constructor: 
Lam : IsValue (Closure (Lamb) env)
dataValue : Ty->Type
Totality: total
Visibility: public export
Constructor: 
Val : (c : Closeda) ->IsValuec->Valuea
dataRedex : Ty->Type
Totality: total
Visibility: public export
Constructors:
RVar : Elemag->Envg->Redexa
RApp : Termg (Arrab) ->Termga->Envg->Redexb
Beta : Term (a::g) b->Envg->Closeda->Redexb
redex : Redexa->Closeda
Totality: total
Visibility: public export
lookup : Envg->Elemag->Closeda
Totality: total
Visibility: public export
contract : Redexa->Closeda
Totality: total
Visibility: public export
dataEvalContext : Ty->Ty->Type
Totality: total
Visibility: public export
Constructors:
Nil : EvalContextinnerinner
(::) : Closeda->EvalContextinnerouter->EvalContext (Arrainner) outer
snoc : EvalContextinner (Arrdomouter) ->Closeddom->EvalContextinnerouter
Totality: total
Visibility: public export
dataSnocView : EvalContextinnerouter->Type
Totality: total
Visibility: public export
Constructors:
Lin : SnocView []
(:<) : (ctx : EvalContextinner (Arrdomouter)) -> (t : Closeddom) ->SnocView (snocctxt)
snocView : (ctx : EvalContextinnerouter) ->SnocViewctx
Totality: total
Visibility: public export
plug : EvalContextab->Closeda->Closedb
Totality: total
Visibility: public export
0plugSnoc : (ctx : EvalContexta (Arrdomb)) -> (t : Closeddom) -> (f : Closeda) ->plug (snocctxt) f=ClApp (plugctxf) t
Totality: total
Visibility: public export
dataDecomposition : Closeda->Type
Totality: total
Visibility: public export
Constructors:
Val : (sc : Term (a::g) b) -> (env : Envg) ->Decomposition (Closure (Lamsc) env)
Red : (r : Redexs) -> (ctx : EvalContextst) ->Decomposition (plugctx (redexr))
load : (ctx : EvalContextab) -> (c : Closeda) ->Decomposition (plugctxc)
Totality: total
Visibility: public export
unload : (ctx : EvalContext (Arrab) outer) -> (sc : Term (a::g) b) -> (env : Envg) ->Decomposition (plugctx (Closure (Lamsc) env))
Totality: total
Visibility: public export
decompose : (c : Closeda) ->Decompositionc
Totality: total
Visibility: public export
decomposePlug : (ctx : EvalContextab) -> (c : Closeda) ->decompose (plugctxc) =loadctxc
Totality: total
Visibility: public export
recompose : Decompositionc->Closeda
Totality: total
Visibility: public export
headReduce : Closeda->Closeda
Totality: total
Visibility: public export
loadRedex : (ctx : EvalContextab) -> (r : Redexa) ->loadctx (redexr) =Redrctx
Totality: total
Visibility: public export
headReducePlug : (ctx : EvalContextab) -> (r : Redexa) ->headReduce (plugctx (redexr)) =plugctx (contractr)
Totality: total
Visibility: public export
headReduceClApp : (f : Closed (Arrab)) ->Not (IsValuef) -> (t : Closeda) ->headReduce (ClAppft) =ClApp (headReducef) t
Totality: total
Visibility: public export
dataTrace : Decompositionc->Type
Totality: total
Visibility: public export
Constructors:
Done : (sc : Term ({a:5010}::{g:5009}) {b:5008}) -> (env : Env{g:5009}) ->Trace (Valscenv)
Step : (ctx : EvalContextab) -> (r : Redexa) ->Trace (decompose (plugctx (contractr))) ->Trace (Redrctx)
iterate : (0_ : Traced) ->Valuea
Totality: total
Visibility: public export
Reducible : (a : Ty) ->Closeda->Type
Totality: total
Visibility: public export
dataReducibleEnv : Envg->Type
Totality: total
Visibility: public export
Constructors:
Nil : ReducibleEnv []
(::) : Reducibleat->ReducibleEnvenv->ReducibleEnv (t::env)
lookup : ReducibleEnvenv-> (v : Elemag) ->Reduciblea (lookupenvv)
Totality: total
Visibility: public export
step : Trace (decompose (headReducec)) ->Trace (decomposec)
Totality: total
Visibility: public export
expand : Reduciblea (headReducec) ->Reducibleac
Totality: total
Visibility: public export
closure : (t : Termga) ->ReducibleEnvenv->Reduciblea (Closuretenv)
Totality: total
Visibility: public export
theorem : (c : Closeda) ->Reducibleac
Totality: total
Visibility: public export
theoremEnv : (env : Envg) ->ReducibleEnvenv
Totality: total
Visibility: public export
termination : (c : Closeda) ->Trace (decomposec)
Totality: total
Visibility: public export
evaluate : Closeda->Valuea
Totality: total
Visibility: public export
refocus : (ctx : EvalContextab) -> (c : Closeda) ->Decomposition (plugctxc)
Totality: total
Visibility: public export
refocusCorrect : (ctx : EvalContextab) -> (c : Closeda) ->refocusctxc=decompose (plugctxc)
Totality: total
Visibility: public export
dataTrace : Decompositionc->Type
Totality: total
Visibility: public export
Constructors:
Done : (0sc : Term ({a:6022}::{g:6021}) {b:6020}) -> (0env : Env{g:6021}) ->Trace (Valscenv)
Step : (0ctx : EvalContextab) -> (0r : Redexa) ->Trace (refocusctx (contractr)) ->Trace (Redrctx)
trace : Traced-> (0_ : e=d) ->Tracee
Totality: total
Visibility: public export
termination : (c : Closeda) ->Trace (decomposec)
Totality: total
Visibility: public export
iterate : (0_ : Traced) ->Valuea
Totality: total
Visibility: public export
evaluate : Closeda->Valuea
Totality: total
Visibility: public export
IsValidEnv : Envg->Type
Totality: total
Visibility: public export
IsValidClosed : Closeda->Type
Totality: total
Visibility: public export
ValidEnv : Context->Type
Totality: total
Visibility: public export
ValidClosed : Ty->Type
Totality: total
Visibility: public export
Closure : Termga->ValidEnvg->ValidCloseda
Totality: total
Visibility: public export
fstClosure : (t : Termga) -> (env : ValidEnvg) ->fst (Closuretenv) =Closuret (fstenv)
Totality: total
Visibility: public export
0getContext : ValidCloseda->Context
Totality: total
Visibility: public export
getEnv : (c : ValidCloseda) ->ValidEnv (getContextc)
Totality: total
Visibility: public export
getTerm : (c : ValidCloseda) ->Term (getContextc) a
Totality: total
Visibility: public export
etaValidClosed : (c : ValidCloseda) ->c=Closure (getTermc) (getEnvc)
Totality: total
Visibility: public export
lookup : ValidEnvg->Elemag->ValidCloseda
Totality: total
Visibility: public export
fstLookup : (env : ValidEnvg) -> (v : Elemag) ->fst (lookupenvv) =lookup (fstenv) v
Totality: total
Visibility: public export
Nil : ValidEnv []
Totality: total
Visibility: public export
(::) : ValidCloseda->ValidEnvg->ValidEnv (a::g)
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
IsValidEvalContext : EvalContextab->Type
Totality: total
Visibility: public export
ValidEvalContext : Ty->Ty->Type
Totality: total
Visibility: public export
Nil : ValidEvalContextaa
Totality: total
Visibility: public export
(::) : ValidCloseda->ValidEvalContextbc->ValidEvalContext (Arrab) c
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
fstCons : (t : ValidCloseda) -> (ctx : ValidEvalContextbc) ->fst (t::ctx) =fstt::fstctx
Totality: total
Visibility: public export
dataView : ValidEvalContextab->Type
Totality: total
Visibility: public export
Constructors:
Nil : View []
(::) : (t : ValidCloseda) -> (ctx : ValidEvalContextbc) ->View (t::ctx)
irrelevantUnit : (t : ()) ->t= ()
Totality: total
Visibility: public export
etaPair : (p : (a, b)) ->p= (fstp, sndp)
Totality: total
Visibility: public export
view : (ctx : ValidEvalContextab) ->Viewctx
Totality: total
Visibility: public export
dataTrace : Termga->ValidEnvg->ValidEvalContextab->Type
Totality: total
Visibility: public export
Constructors:
Var : Trace (getTerm (lookupenvv)) (getEnv (lookupenvv)) ctx->Trace (Varv) envctx
App : Tracefenv (Closuretenv::ctx) ->Trace (f `App` t) envctx
Beta : Tracesc (arg::env) ctx->Trace (Lamsc) env (arg::ctx)
Done : Trace (Lamsc) env []
vvar : (tr : Trace (Varv) envctx) -> (tr' : Trace (getTerm (lookupenvv)) (getEnv (lookupenvv)) ctx**tr=Vartr')
Totality: total
Visibility: public export
vapp : (tr : Trace (f `App` t) envctx) -> (tr' : Tracefenv (Closuretenv::ctx) **tr= (tr' `App`))
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 5
vlam0 : ctx= [] -> (tr : Trace (Lamsc) envctx) ->tr=Done
Totality: total
Visibility: public export
vlamS : ctx=arg::ctx'-> (tr : Trace (Lamsc) envctx) -> (tr' : Tracesc (arg::env) ctx'**tr=Betatr')
Totality: total
Visibility: public export
view : (t : Termga) -> (env : ValidEnvg) -> (ctx : ValidEvalContextab) -> (0tr : Tracetenvctx) ->Viewtr
Totality: total
Visibility: public export
refocus : (0_ : Tracetenvctx) ->Valueb
Totality: total
Visibility: public export
correctness : (ctx : ValidEvalContextab) -> (t : Termga) -> (env : ValidEnvg) -> (trold : Trace (refocus (fstctx) (Closuret (fstenv)))) -> (trnew : Tracetenvctx) ->refocustrnew=iteratetrold
Totality: total
Visibility: public export
trace : (ctx : ValidEvalContextab) -> (t : Termga) -> (env : ValidEnvg) ->Trace (refocus (fstctx) (Closuret (fstenv))) ->Tracetenvctx
Totality: total
Visibility: public export
termination : (t : Term [] a) ->Tracet [] []
Totality: total
Visibility: public export
evaluate : Term [] a->Valuea
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Language.IntrinsicTyping.SECD.html b/papers/docs/Language.IntrinsicTyping.SECD.html index ac30ff233c..178f32de4c 100644 --- a/papers/docs/Language.IntrinsicTyping.SECD.html +++ b/papers/docs/Language.IntrinsicTyping.SECD.html @@ -64,4 +64,4 @@

Language.IntrinsicTyping.SECD(source)

The content of this module is based on the MSc Thesis
 Coinductive Formalization of SECD Machine in Agda
 by Adam Krupička
-

Reexports

importpublic Data.Late
importpublic Data.List.Quantifiers

Definitions

dataTy : Type
Totality: total
Visibility: public export
Constructors:
TyInt : Ty
TyBool : Ty
TyPair : Ty->Ty->Ty
TyList : Ty->Ty
TyFun : Ty->Ty->Ty
dataConst : Ty->Type
Totality: total
Visibility: public export
Constructors:
AnInt : Int->ConstTyInt
True : ConstTyBool
False : ConstTyBool
fromInteger : Integer->ConstTyInt
Totality: total
Visibility: public export
Stack : Type
Totality: total
Visibility: public export
Env : Type
Totality: total
Visibility: public export
FunDump : Type
Totality: total
Visibility: public export
recordState : Type
Totality: total
Visibility: public export
Constructor: 
MkState : Stack->Env->FunDump->State

Projections:
.dump : State->FunDump
.env : State->Env
.stack : State->Stack
.stack : State->Stack
Totality: total
Visibility: public export
stack : State->Stack
Totality: total
Visibility: public export
.env : State->Env
Totality: total
Visibility: public export
env : State->Env
Totality: total
Visibility: public export
.dump : State->FunDump
Totality: total
Visibility: public export
dump : State->FunDump
Totality: total
Visibility: public export
dataStep : State->State->Type
Totality: total
Visibility: public export
Constructors:
LDC : Constty->Step (MkStatesef) (MkState (ty::s) ef)
  Load a constant of a base type
LDA : Elemtye->Step (MkStatesef) (MkState (ty::s) ef)
  Load a value from an address in the environment
LDF : Steps (MkState [] (a::e) ((a, b) ::f)) (MkState [b] (a::e) ((a, b) ::f)) ->Step (MkStatesef) (MkState (TyFunab::s) ef)
  Load a recursive function
LDR : Elem (a, b) f->Step (MkStatesef) (MkState (TyFunab::s) ef)
  Load a function for recursive application
APP : Step (MkState (a:: (TyFunab::s)) ef) (MkState (b::s) ef)
  Apply a function to its argument
TAP : Step (MkState (a:: (TyFunab::s)) ef) (MkState (b::s) ef)
  Apply a function to its argument, tail call
RTN : Step (MkState (b::s) e ((a, b) ::f)) (MkState [b] e ((a, b) ::f))
  Return a value from inside a function
BCH : Steps (MkStatesef) (MkStates'ef) ->Steps (MkStatesef) (MkStates'ef) ->Step (MkState (TyBool::s) ef) (MkStates'ef)
  Branch over a boolean
FLP : Step (MkState (a:: (b::s)) ef) (MkState (b:: (a::s)) ef)
  Flip the stack's top values
NIL : Step (MkStatesef) (MkState (TyLista::s) ef)
  Nil constructor
CNS : Step (MkState (a:: (TyLista::s)) ef) (MkState (TyLista::s) ef)
  Cons constructor
HED : Step (MkState (TyLista::s) ef) (MkState (a::s) ef)
  Head destructor
TAL : Step (MkState (TyLista::s) ef) (MkState (TyLista::s) ef)
  Tail destructor
MKP : Step (MkState (a:: (b::s)) ef) (MkState (TyPairab::s) ef)
  Pair constructor
FST : Step (MkState (TyPairab::s) ef) (MkState (a::s) ef)
  First pair destructor
SND : Step (MkState (TyPairab::s) ef) (MkState (b::s) ef)
  Second pair destructor
ADD : Step (MkState (TyInt:: (TyInt::s)) ef) (MkState (TyInt::s) ef)
  Addition of ints
SUB : Step (MkState (TyInt:: (TyInt::s)) ef) (MkState (TyInt::s) ef)
  Subtraction of ints
MUL : Step (MkState (TyInt:: (TyInt::s)) ef) (MkState (TyInt::s) ef)
  Multiplication of ints
EQB : Step (MkState (a:: (a::s)) ef) (MkState (TyBool::s) ef)
  Structural equality test
NOT : Step (MkState (TyBool::s) ef) (MkState (TyBool::s) ef)
  Boolean negation
dataSteps : State->State->Type
Totality: total
Visibility: public export
Constructors:
Nil : Stepsss
(::) : Stepst->Stepstu->Stepssu
dataStepz : State->State->Type
Totality: total
Visibility: public export
Constructors:
Lin : Stepzss
(:<) : Stepzst->Steptu->Stepzsu
(<>>) : Stepzst->Stepstu->Stepssu
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 6
(<><) : Stepzst->Stepstu->Stepzsu
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 7
(++) : Stepsst->Stepstu->Stepssu
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
NUL : Steps (MkState (TyLista::s) ef) (MkState (TyBool::s) ef)
Totality: total
Visibility: public export
LDL : ListInt->Steps (MkStatesef) (MkState (TyListTyInt::s) ef)
Totality: total
Visibility: public export
PLS : Step (MkStatesef) (MkState (TyFunTyInt (TyFunTyIntTyInt) ::s) ef)
Totality: total
Visibility: public export
MAP : Step (MkState [] ef) (MkState [TyFun (TyFunab) (TyFun (TyLista) (TyListb))] ef)
Totality: total
Visibility: public export
FLD : Step (MkState [] ef) (MkState [TyFun (TyFunb (TyFunab)) (TyFunb (TyFun (TyLista) b))] ef)
Totality: total
Visibility: public export
SUM : Steps (MkState [] ef) (MkState [TyFun (TyListTyInt) TyInt] ef)
Totality: total
Visibility: public export
Meaning : Ty->Type
Totality: total
Visibility: public export
fromConst : Constty->Meaningty
Totality: total
Visibility: public export
Meaning : ListTy->Type
Totality: total
Visibility: public export
0Meaning : FunDump->Type
Totality: total
Visibility: public export
tail : Meaning (ab::f) ->Meaningf
Totality: total
Visibility: public export
lookup : Meaningf->Elem (a, b) f->Closureab
Totality: total
Visibility: public export
recordMeaning : State->Type
Totality: total
Visibility: public export
Constructor: 
MkMeaning : Meaning (st.stack) ->Meaning (st.env) ->Meaning (st.dump) ->Meaningst

Projections:
.dumpVal : Meaningst->Meaning (st.dump)
.envVal : Meaningst->Meaning (st.env)
.stackVal : Meaningst->Meaning (st.stack)
.stackVal : Meaningst->Meaning (st.stack)
Totality: total
Visibility: public export
stackVal : Meaningst->Meaning (st.stack)
Totality: total
Visibility: public export
.envVal : Meaningst->Meaning (st.env)
Totality: total
Visibility: public export
envVal : Meaningst->Meaning (st.env)
Totality: total
Visibility: public export
.dumpVal : Meaningst->Meaning (st.dump)
Totality: total
Visibility: public export
dumpVal : Meaningst->Meaning (st.dump)
Totality: total
Visibility: public export
recordClosure : Ty->Ty->Type
Totality: total
Visibility: public export
Constructor: 
MkClosure : Steps (MkState [] (a::localEnv) ((a, b) ::localFunDump)) (MkState [b] (a::localEnv) ((a, b) ::localFunDump)) ->MeaninglocalEnv->MeaninglocalFunDump->Closureab

Projections:
.code : ({rec:0} : Closureab) ->Steps (MkState [] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0})) (MkState [b] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0}))
.dumpVal : ({rec:0} : Closureab) ->Meaning (localFunDump{rec:0})
.envVal : ({rec:0} : Closureab) ->Meaning (localEnv{rec:0})
0.localEnv : Closureab->Env
0.localFunDump : Closureab->FunDump
0.localEnv : Closureab->Env
Totality: total
Visibility: public export
0localEnv : Closureab->Env
Totality: total
Visibility: public export
0.localFunDump : Closureab->FunDump
Totality: total
Visibility: public export
0localFunDump : Closureab->FunDump
Totality: total
Visibility: public export
.code : ({rec:0} : Closureab) ->Steps (MkState [] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0})) (MkState [b] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0}))
Totality: total
Visibility: public export
code : ({rec:0} : Closureab) ->Steps (MkState [] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0})) (MkState [b] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0}))
Totality: total
Visibility: public export
.envVal : ({rec:0} : Closureab) ->Meaning (localEnv{rec:0})
Totality: total
Visibility: public export
envVal : ({rec:0} : Closureab) ->Meaning (localEnv{rec:0})
Totality: total
Visibility: public export
.dumpVal : ({rec:0} : Closureab) ->Meaning (localFunDump{rec:0})
Totality: total
Visibility: public export
dumpVal : ({rec:0} : Closureab) ->Meaning (localFunDump{rec:0})
Totality: total
Visibility: public export
eqb : (ty : Ty) ->Meaningty->Meaningty->Bool
Totality: total
Visibility: public export
eqbs : (ty : Ty) ->Meaning (TyListty) ->Meaning (TyListty) ->Bool
Totality: total
Visibility: public export
steps : Meaningst->Stepsstst'->Late (Meaningst')
Totality: total
Visibility: public export
step : Meaningst->Stepstst'->Late (Meaningst')
Totality: total
Visibility: public export
run : Steps (MkState [] [] []) (MkState (ty::{_:11116}) [] []) ->Nat->Maybe (Meaningty)
Totality: total
Visibility: public export
\ No newline at end of file +

Reexports

importpublic Data.Late
importpublic Data.List.Quantifiers

Definitions

dataTy : Type
Totality: total
Visibility: public export
Constructors:
TyInt : Ty
TyBool : Ty
TyPair : Ty->Ty->Ty
TyList : Ty->Ty
TyFun : Ty->Ty->Ty
dataConst : Ty->Type
Totality: total
Visibility: public export
Constructors:
AnInt : Int->ConstTyInt
True : ConstTyBool
False : ConstTyBool
fromInteger : Integer->ConstTyInt
Totality: total
Visibility: public export
Stack : Type
Totality: total
Visibility: public export
Env : Type
Totality: total
Visibility: public export
FunDump : Type
Totality: total
Visibility: public export
recordState : Type
Totality: total
Visibility: public export
Constructor: 
MkState : Stack->Env->FunDump->State

Projections:
.dump : State->FunDump
.env : State->Env
.stack : State->Stack
.stack : State->Stack
Totality: total
Visibility: public export
stack : State->Stack
Totality: total
Visibility: public export
.env : State->Env
Totality: total
Visibility: public export
env : State->Env
Totality: total
Visibility: public export
.dump : State->FunDump
Totality: total
Visibility: public export
dump : State->FunDump
Totality: total
Visibility: public export
dataStep : State->State->Type
Totality: total
Visibility: public export
Constructors:
LDC : Constty->Step (MkStatesef) (MkState (ty::s) ef)
  Load a constant of a base type
LDA : Elemtye->Step (MkStatesef) (MkState (ty::s) ef)
  Load a value from an address in the environment
LDF : Steps (MkState [] (a::e) ((a, b) ::f)) (MkState [b] (a::e) ((a, b) ::f)) ->Step (MkStatesef) (MkState (TyFunab::s) ef)
  Load a recursive function
LDR : Elem (a, b) f->Step (MkStatesef) (MkState (TyFunab::s) ef)
  Load a function for recursive application
APP : Step (MkState (a:: (TyFunab::s)) ef) (MkState (b::s) ef)
  Apply a function to its argument
TAP : Step (MkState (a:: (TyFunab::s)) ef) (MkState (b::s) ef)
  Apply a function to its argument, tail call
RTN : Step (MkState (b::s) e ((a, b) ::f)) (MkState [b] e ((a, b) ::f))
  Return a value from inside a function
BCH : Steps (MkStatesef) (MkStates'ef) ->Steps (MkStatesef) (MkStates'ef) ->Step (MkState (TyBool::s) ef) (MkStates'ef)
  Branch over a boolean
FLP : Step (MkState (a:: (b::s)) ef) (MkState (b:: (a::s)) ef)
  Flip the stack's top values
NIL : Step (MkStatesef) (MkState (TyLista::s) ef)
  Nil constructor
CNS : Step (MkState (a:: (TyLista::s)) ef) (MkState (TyLista::s) ef)
  Cons constructor
HED : Step (MkState (TyLista::s) ef) (MkState (a::s) ef)
  Head destructor
TAL : Step (MkState (TyLista::s) ef) (MkState (TyLista::s) ef)
  Tail destructor
MKP : Step (MkState (a:: (b::s)) ef) (MkState (TyPairab::s) ef)
  Pair constructor
FST : Step (MkState (TyPairab::s) ef) (MkState (a::s) ef)
  First pair destructor
SND : Step (MkState (TyPairab::s) ef) (MkState (b::s) ef)
  Second pair destructor
ADD : Step (MkState (TyInt:: (TyInt::s)) ef) (MkState (TyInt::s) ef)
  Addition of ints
SUB : Step (MkState (TyInt:: (TyInt::s)) ef) (MkState (TyInt::s) ef)
  Subtraction of ints
MUL : Step (MkState (TyInt:: (TyInt::s)) ef) (MkState (TyInt::s) ef)
  Multiplication of ints
EQB : Step (MkState (a:: (a::s)) ef) (MkState (TyBool::s) ef)
  Structural equality test
NOT : Step (MkState (TyBool::s) ef) (MkState (TyBool::s) ef)
  Boolean negation
dataSteps : State->State->Type
Totality: total
Visibility: public export
Constructors:
Nil : Stepsss
(::) : Stepst->Stepstu->Stepssu
dataStepz : State->State->Type
Totality: total
Visibility: public export
Constructors:
Lin : Stepzss
(:<) : Stepzst->Steptu->Stepzsu
(<>>) : Stepzst->Stepstu->Stepssu
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 6
(<><) : Stepzst->Stepstu->Stepzsu
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 7
(++) : Stepsst->Stepstu->Stepssu
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
NUL : Steps (MkState (TyLista::s) ef) (MkState (TyBool::s) ef)
Totality: total
Visibility: public export
LDL : ListInt->Steps (MkStatesef) (MkState (TyListTyInt::s) ef)
Totality: total
Visibility: public export
PLS : Step (MkStatesef) (MkState (TyFunTyInt (TyFunTyIntTyInt) ::s) ef)
Totality: total
Visibility: public export
MAP : Step (MkState [] ef) (MkState [TyFun (TyFunab) (TyFun (TyLista) (TyListb))] ef)
Totality: total
Visibility: public export
FLD : Step (MkState [] ef) (MkState [TyFun (TyFunb (TyFunab)) (TyFunb (TyFun (TyLista) b))] ef)
Totality: total
Visibility: public export
SUM : Steps (MkState [] ef) (MkState [TyFun (TyListTyInt) TyInt] ef)
Totality: total
Visibility: public export
Meaning : Ty->Type
Totality: total
Visibility: public export
fromConst : Constty->Meaningty
Totality: total
Visibility: public export
Meaning : ListTy->Type
Totality: total
Visibility: public export
0Meaning : FunDump->Type
Totality: total
Visibility: public export
tail : Meaning (ab::f) ->Meaningf
Totality: total
Visibility: public export
lookup : Meaningf->Elem (a, b) f->Closureab
Totality: total
Visibility: public export
recordMeaning : State->Type
Totality: total
Visibility: public export
Constructor: 
MkMeaning : Meaning (st.stack) ->Meaning (st.env) ->Meaning (st.dump) ->Meaningst

Projections:
.dumpVal : Meaningst->Meaning (st.dump)
.envVal : Meaningst->Meaning (st.env)
.stackVal : Meaningst->Meaning (st.stack)
.stackVal : Meaningst->Meaning (st.stack)
Totality: total
Visibility: public export
stackVal : Meaningst->Meaning (st.stack)
Totality: total
Visibility: public export
.envVal : Meaningst->Meaning (st.env)
Totality: total
Visibility: public export
envVal : Meaningst->Meaning (st.env)
Totality: total
Visibility: public export
.dumpVal : Meaningst->Meaning (st.dump)
Totality: total
Visibility: public export
dumpVal : Meaningst->Meaning (st.dump)
Totality: total
Visibility: public export
recordClosure : Ty->Ty->Type
Totality: total
Visibility: public export
Constructor: 
MkClosure : Steps (MkState [] (a::localEnv) ((a, b) ::localFunDump)) (MkState [b] (a::localEnv) ((a, b) ::localFunDump)) ->MeaninglocalEnv->MeaninglocalFunDump->Closureab

Projections:
.code : ({rec:0} : Closureab) ->Steps (MkState [] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0})) (MkState [b] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0}))
.dumpVal : ({rec:0} : Closureab) ->Meaning (localFunDump{rec:0})
.envVal : ({rec:0} : Closureab) ->Meaning (localEnv{rec:0})
0.localEnv : Closureab->Env
0.localFunDump : Closureab->FunDump
0.localEnv : Closureab->Env
Totality: total
Visibility: public export
0localEnv : Closureab->Env
Totality: total
Visibility: public export
0.localFunDump : Closureab->FunDump
Totality: total
Visibility: public export
0localFunDump : Closureab->FunDump
Totality: total
Visibility: public export
.code : ({rec:0} : Closureab) ->Steps (MkState [] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0})) (MkState [b] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0}))
Totality: total
Visibility: public export
code : ({rec:0} : Closureab) ->Steps (MkState [] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0})) (MkState [b] (a::localEnv{rec:0}) ((a, b) ::localFunDump{rec:0}))
Totality: total
Visibility: public export
.envVal : ({rec:0} : Closureab) ->Meaning (localEnv{rec:0})
Totality: total
Visibility: public export
envVal : ({rec:0} : Closureab) ->Meaning (localEnv{rec:0})
Totality: total
Visibility: public export
.dumpVal : ({rec:0} : Closureab) ->Meaning (localFunDump{rec:0})
Totality: total
Visibility: public export
dumpVal : ({rec:0} : Closureab) ->Meaning (localFunDump{rec:0})
Totality: total
Visibility: public export
eqb : (ty : Ty) ->Meaningty->Meaningty->Bool
Totality: total
Visibility: public export
eqbs : (ty : Ty) ->Meaning (TyListty) ->Meaning (TyListty) ->Bool
Totality: total
Visibility: public export
steps : Meaningst->Stepsstst'->Late (Meaningst')
Totality: total
Visibility: public export
step : Meaningst->Stepstst'->Late (Meaningst')
Totality: total
Visibility: public export
run : Steps (MkState [] [] []) (MkState (ty::{_:11116}) [] []) ->Nat->Maybe (Meaningty)
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Language.IntrinsicTyping.STLCR.html b/papers/docs/Language.IntrinsicTyping.STLCR.html index 1ccd3717b6..3b047e7e78 100644 --- a/papers/docs/Language.IntrinsicTyping.STLCR.html +++ b/papers/docs/Language.IntrinsicTyping.STLCR.html @@ -64,4 +64,4 @@

Language.IntrinsicTyping.STLCR(source)

The content of this module is based on the MSc Thesis
 Coinductive Formalization of SECD Machine in Agda
 by Adam Krupička
-

Definitions

dataSTLCR : List (Ty, Ty) ->ListTy->Ty->Type
Totality: total
Visibility: public export
Constructors:
Var : Elemtyg->STLCRrgty
Lam : STLCR ((a, b) ::r) (a::g) b->STLCRrg (TyFunab)
App : STLCRrg (TyFunab) ->STLCRrga->STLCRrgb
Rec : Elem (a, b) r->STLCRrg (TyFunab)
If : STLCRrgTyBool->STLCRrga->STLCRrga->STLCRrga
Eqb : STLCRrga->STLCRrga->STLCRrgTyBool
Lit : Constty->STLCRrgty
Add : STLCRrgTyInt->STLCRrgTyInt->STLCRrgTyInt
Sub : STLCRrgTyInt->STLCRrgTyInt->STLCRrgTyInt
Mul : STLCRrgTyInt->STLCRrgTyInt->STLCRrgTyInt
fromInteger : Integer->STLCRrgTyInt
Totality: total
Visibility: public export
compile : STLCRrgty->Steps (MkStatesgr) (MkState (ty::s) gr)
Totality: total
Visibility: public export
compileT : STLCR ((a, b) ::r) (a::g) b->Steps (MkState [] (a::g) ((a, b) ::r)) (MkState [b] (a::g) ((a, b) ::r))
Totality: total
Visibility: public export
compileAcc : Stepzinit (MkStatesgr) ->STLCRrgty->Stepzinit (MkState (ty::s) gr)
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dataSTLCR : List (Ty, Ty) ->ListTy->Ty->Type
Totality: total
Visibility: public export
Constructors:
Var : Elemtyg->STLCRrgty
Lam : STLCR ((a, b) ::r) (a::g) b->STLCRrg (TyFunab)
App : STLCRrg (TyFunab) ->STLCRrga->STLCRrgb
Rec : Elem (a, b) r->STLCRrg (TyFunab)
If : STLCRrgTyBool->STLCRrga->STLCRrga->STLCRrga
Eqb : STLCRrga->STLCRrga->STLCRrgTyBool
Lit : Constty->STLCRrgty
Add : STLCRrgTyInt->STLCRrgTyInt->STLCRrgTyInt
Sub : STLCRrgTyInt->STLCRrgTyInt->STLCRrgTyInt
Mul : STLCRrgTyInt->STLCRrgTyInt->STLCRrgTyInt
fromInteger : Integer->STLCRrgTyInt
Totality: total
Visibility: public export
compile : STLCRrgty->Steps (MkStatesgr) (MkState (ty::s) gr)
Totality: total
Visibility: public export
compileT : STLCR ((a, b) ::r) (a::g) b->Steps (MkState [] (a::g) ((a, b) ::r)) (MkState [b] (a::g) ((a, b) ::r))
Totality: total
Visibility: public export
compileAcc : Stepzinit (MkStatesgr) ->STLCRrgty->Stepzinit (MkState (ty::s) gr)
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Language.Tagless.html b/papers/docs/Language.Tagless.html index 44cd0d71dc..77619ee49d 100644 --- a/papers/docs/Language.Tagless.html +++ b/papers/docs/Language.Tagless.html @@ -64,4 +64,4 @@

Language.Tagless(source)

This module is based on the paper
 Dependent Tagless Final
 by Nicoals Biri
-

Definitions

(-#) : Type->Type->Type
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 0
BinaryOp : Type->Type
Totality: total
Visibility: public export
Ctx : Type
Totality: total
Visibility: public export
Env : Ctx->Type
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

(-#) : Type->Type->Type
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 0
BinaryOp : Type->Type
Totality: total
Visibility: public export
Ctx : Type
Totality: total
Visibility: public export
Env : Ctx->Type
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Language.TypeTheory.html b/papers/docs/Language.TypeTheory.html index 8b28318259..f946ee8dff 100644 --- a/papers/docs/Language.TypeTheory.html +++ b/papers/docs/Language.TypeTheory.html @@ -68,4 +68,4 @@ NB: The work is originally written in Haskell and uses unsafe features This is not how we would write idiomatic Idris code. Cf. Language.IntrinsicScoping.TypeTheory for a more idiomatic representation. -

Definitions

dataName : Type
  Named variables

Totality: total
Visibility: public export
Constructors:
Global : String->Name
  The most typical of name: external functions
Local : Nat->Name
  When passing under a binder we convert a bound variable
into a `Local` free variable
Quote : Nat->Name
  During quoting from values back to term we will be using
the `Quote` constructor

Hint: 
EqName
fromInteger : Integer->Infer
Visibility: public export
fromString : String->Check
Visibility: public export
fromInteger : Integer->Check
Visibility: public export
fromString : String->Ty
Visibility: public export
\ No newline at end of file +

Definitions

dataName : Type
  Named variables

Totality: total
Visibility: public export
Constructors:
Global : String->Name
  The most typical of name: external functions
Local : Nat->Name
  When passing under a binder we convert a bound variable
into a `Local` free variable
Quote : Nat->Name
  During quoting from values back to term we will be using
the `Quote` constructor

Hint: 
EqName
fromInteger : Integer->Infer
Visibility: public export
fromString : String->Check
Visibility: public export
fromInteger : Integer->Check
Visibility: public export
fromString : String->Ty
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Search.Auto.html b/papers/docs/Search.Auto.html index d347fa5184..1bc5917014 100644 --- a/papers/docs/Search.Auto.html +++ b/papers/docs/Search.Auto.html @@ -64,4 +64,4 @@

Search.Auto(source)

The content of this module is based on the paper
 Auto in Agda - Programming proof search using reflection
 by Wen Kokke and Wouter Swierstra
-

Definitions

dataRuleName : Type
Totality: total
Visibility: public export
Constructors:
Free : Name->RuleName
Bound : Nat->RuleName

Hint: 
ShowRuleName
toName : RuleName->Name
Totality: total
Visibility: export
dataTermName : Type
Totality: total
Visibility: public export
Constructors:
UName : Name->TermName
Bound : Nat->TermName
Arrow : TermName

Hint: 
EqTermName
dataTm : Nat->Type
  Proof search terms

Totality: total
Visibility: public export
Constructors:
Var : Finn->Tmn
Con : TermName->List (Tmn) ->Tmn
showTerm : (ns : SnocListName) ->Tm (lengthns) ->String
Totality: total
Visibility: export
Env : (Nat->Type) ->Nat->Nat->Type
Totality: total
Visibility: public export
rename : EnvFinmn->Tmm->Tmn
Totality: total
Visibility: export
subst : EnvTmmn->Tmm->Tmn
Totality: total
Visibility: export
split : Tmm-> (List (Tmm), Tmm)
Totality: total
Visibility: export
thin : Fin (Sn) ->Finn->Fin (Sn)
Totality: total
Visibility: export
thinInjective : (x : Fin (Sn)) -> (y : Finn) -> (z : Finn) ->thinxy=thinxz->y=z
Totality: total
Visibility: export
thinnedApart : (x : Fin (Sn)) -> (y : Finn) ->Not (thinxy=x)
Totality: total
Visibility: export
thinApart : (x : Fin (Sn)) -> (y : Fin (Sn)) ->Not (x=y) -> (y' : Finn**thinxy'=y)
Totality: total
Visibility: export
dataThicken : Finn->Finn->Type
Totality: total
Visibility: public export
Constructors:
EQ : Thickenxx
NEQ : (y : Finn) ->Thickenx (thinxy)
thicken : (x : Finn) -> (y : Finn) ->Thickenxy
Totality: total
Visibility: export
check : Fin (Sn) ->Tm (Sn) ->Maybe (Tmn)
Totality: total
Visibility: export
for : Tmn->Fin (Sn) ->EnvTm (Sn) n
Totality: total
Visibility: export
dataAList : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
Lin : AListmm
(:<) : AListmn-> (Fin (Sm), Tmm) ->AList (Sm) n
(++) : AListmn->AListlm->AListln
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
toSubst : AListmn->EnvTmmn
Totality: total
Visibility: export
mgu : Tmm->Tmm->Maybe (Unifyingm)
Totality: total
Visibility: export
recordRule : Type
Totality: total
Visibility: export
Constructor: 
MkRule : (context : SnocListName) ->RuleName->Vectarity (Tm (lengthcontext)) ->Tm (lengthcontext) ->Rule

Projections:
.arity : Rule->Nat
.conclusion : ({rec:0} : Rule) ->Tm (length (context{rec:0}))
.context : Rule->SnocListName
.premises : ({rec:0} : Rule) ->Vect (arity{rec:0}) (Tm (length (context{rec:0})))
.ruleName : Rule->RuleName

Hint: 
ShowRule
.scope : Rule->Nat
Totality: total
Visibility: export
HintDB : Type
Totality: total
Visibility: public export
dataSpace : Type->Type
  A search Space represents the space of possible solutions to a problem.
It is a finitely branching, potentially infinitely deep, tree.
E.g. we can prove `Nat` using:
1. either Z or S (finitely branching)
2. arbitrarily many S constructor (unbounded depth)

Totality: total
Visibility: public export
Constructors:
Solution : a->Spacea
Candidates : List (Inf (Spacea)) ->Spacea
dataProof : Type
  A proof is a completed tree where each node is the invocation of a rule
together with proofs for its premises, or a lambda abstraction with a
subproof.

Totality: total
Visibility: public export
Constructors:
Call : RuleName->ListProof->Proof
Lam : Nat->Proof->Proof

Hint: 
ShowProof
recordPartialProof : Nat->Type
  A partial proof is a vector of goals and a continuation which, provided
a proof for each of the goals, returns a completed proof

Totality: total
Visibility: public export
Constructor: 
MkPartialProof : (leftovers : Nat) ->Vectleftovers (Tmm) -> (VectleftoversProof->Proof) ->PartialProofm

Projections:
.continuation : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) Proof->Proof
.goals : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) (Tmm)
.leftovers : PartialProofm->Nat
.leftovers : PartialProofm->Nat
Totality: total
Visibility: public export
leftovers : PartialProofm->Nat
Totality: total
Visibility: public export
.goals : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) (Tmm)
Totality: total
Visibility: public export
goals : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) (Tmm)
Totality: total
Visibility: public export
.continuation : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) Proof->Proof
Totality: total
Visibility: public export
continuation : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) Proof->Proof
Totality: total
Visibility: public export
apply : (r : Rule) ->Vect (r.arity+k) Proof->Vect (Sk) Proof
  Helper function to manufacture a proof step

Totality: total
Visibility: export
solve : Nat->HintDB->Tmm->SpaceProof
  Solve takes a database of hints, a goal to prove and returns
the full search space.

Totality: total
Visibility: export
dfs : Nat->Spacea->Lista
  Depth first search strategy to explore a search space.
This is made total by preemptively limiting the depth the search
is willing to explore.

Totality: total
Visibility: export
convert : (0f : (SnocListName->Nat)) -> ((vars : SnocListName) ->Name->Tm (fvars)) -> (vars : SnocListName) ->TTImp->EitherTTImp (Tm (fvars))
  Converts a type of the form (a -> (a -> b -> c) -> b -> c)
to our internal representation

Totality: total
Visibility: export
parseType : (0f : (SnocListName->Nat)) -> ((vars : SnocListName) ->Name->Tm (fvars)) ->TTImp->EitherTTImp (vars : SnocListName**Tm (fvars))
  Parse a type of the form
forall a b c. a -> (a -> b -> c) -> b -> c to
1. a scope [<a,b,c]
2. a representation of the rest

Totality: total
Visibility: export
parseRule : TTImp->EitherTTImp (vars : SnocListName**Tm (lengthvars))
  Parse a type, where bound variables are flexible variables

Totality: total
Visibility: export
parseGoal : TTImp->EitherTTImp (SnocListName, Tm0)
  Parse a type, where bound variables are rigid variables

Totality: total
Visibility: export
mkRule : Name->ElabRule
Totality: total
Visibility: export
getGoal : Elab (HintDB, Tm0)
Totality: total
Visibility: export
unquote : Proof->TTImp
Totality: total
Visibility: export
intros : Lista->TTImp->TTImp
Totality: total
Visibility: export
bySearch : Nat->HintDB->Elaba
Totality: total
Visibility: export
\ No newline at end of file +

Definitions

dataRuleName : Type
Totality: total
Visibility: public export
Constructors:
Free : Name->RuleName
Bound : Nat->RuleName

Hint: 
ShowRuleName
toName : RuleName->Name
Totality: total
Visibility: export
dataTermName : Type
Totality: total
Visibility: public export
Constructors:
UName : Name->TermName
Bound : Nat->TermName
Arrow : TermName

Hint: 
EqTermName
dataTm : Nat->Type
  Proof search terms

Totality: total
Visibility: public export
Constructors:
Var : Finn->Tmn
Con : TermName->List (Tmn) ->Tmn
showTerm : (ns : SnocListName) ->Tm (lengthns) ->String
Totality: total
Visibility: export
Env : (Nat->Type) ->Nat->Nat->Type
Totality: total
Visibility: public export
rename : EnvFinmn->Tmm->Tmn
Totality: total
Visibility: export
subst : EnvTmmn->Tmm->Tmn
Totality: total
Visibility: export
split : Tmm-> (List (Tmm), Tmm)
Totality: total
Visibility: export
thin : Fin (Sn) ->Finn->Fin (Sn)
Totality: total
Visibility: export
thinInjective : (x : Fin (Sn)) -> (y : Finn) -> (z : Finn) ->thinxy=thinxz->y=z
Totality: total
Visibility: export
thinnedApart : (x : Fin (Sn)) -> (y : Finn) ->Not (thinxy=x)
Totality: total
Visibility: export
thinApart : (x : Fin (Sn)) -> (y : Fin (Sn)) ->Not (x=y) -> (y' : Finn**thinxy'=y)
Totality: total
Visibility: export
dataThicken : Finn->Finn->Type
Totality: total
Visibility: public export
Constructors:
EQ : Thickenxx
NEQ : (y : Finn) ->Thickenx (thinxy)
thicken : (x : Finn) -> (y : Finn) ->Thickenxy
Totality: total
Visibility: export
check : Fin (Sn) ->Tm (Sn) ->Maybe (Tmn)
Totality: total
Visibility: export
for : Tmn->Fin (Sn) ->EnvTm (Sn) n
Totality: total
Visibility: export
dataAList : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
Lin : AListmm
(:<) : AListmn-> (Fin (Sm), Tmm) ->AList (Sm) n
(++) : AListmn->AListlm->AListln
Totality: total
Visibility: export
Fixity Declaration: infixr operator, level 7
toSubst : AListmn->EnvTmmn
Totality: total
Visibility: export
mgu : Tmm->Tmm->Maybe (Unifyingm)
Totality: total
Visibility: export
recordRule : Type
Totality: total
Visibility: export
Constructor: 
MkRule : (context : SnocListName) ->RuleName->Vectarity (Tm (lengthcontext)) ->Tm (lengthcontext) ->Rule

Projections:
.arity : Rule->Nat
.conclusion : ({rec:0} : Rule) ->Tm (length (context{rec:0}))
.context : Rule->SnocListName
.premises : ({rec:0} : Rule) ->Vect (arity{rec:0}) (Tm (length (context{rec:0})))
.ruleName : Rule->RuleName

Hint: 
ShowRule
.scope : Rule->Nat
Totality: total
Visibility: export
HintDB : Type
Totality: total
Visibility: public export
dataSpace : Type->Type
  A search Space represents the space of possible solutions to a problem.
It is a finitely branching, potentially infinitely deep, tree.
E.g. we can prove `Nat` using:
1. either Z or S (finitely branching)
2. arbitrarily many S constructor (unbounded depth)

Totality: total
Visibility: public export
Constructors:
Solution : a->Spacea
Candidates : List (Inf (Spacea)) ->Spacea
dataProof : Type
  A proof is a completed tree where each node is the invocation of a rule
together with proofs for its premises, or a lambda abstraction with a
subproof.

Totality: total
Visibility: public export
Constructors:
Call : RuleName->ListProof->Proof
Lam : Nat->Proof->Proof

Hint: 
ShowProof
recordPartialProof : Nat->Type
  A partial proof is a vector of goals and a continuation which, provided
a proof for each of the goals, returns a completed proof

Totality: total
Visibility: public export
Constructor: 
MkPartialProof : (leftovers : Nat) ->Vectleftovers (Tmm) -> (VectleftoversProof->Proof) ->PartialProofm

Projections:
.continuation : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) Proof->Proof
.goals : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) (Tmm)
.leftovers : PartialProofm->Nat
.leftovers : PartialProofm->Nat
Totality: total
Visibility: public export
leftovers : PartialProofm->Nat
Totality: total
Visibility: public export
.goals : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) (Tmm)
Totality: total
Visibility: public export
goals : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) (Tmm)
Totality: total
Visibility: public export
.continuation : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) Proof->Proof
Totality: total
Visibility: public export
continuation : ({rec:0} : PartialProofm) ->Vect (leftovers{rec:0}) Proof->Proof
Totality: total
Visibility: public export
apply : (r : Rule) ->Vect (r.arity+k) Proof->Vect (Sk) Proof
  Helper function to manufacture a proof step

Totality: total
Visibility: export
solve : Nat->HintDB->Tmm->SpaceProof
  Solve takes a database of hints, a goal to prove and returns
the full search space.

Totality: total
Visibility: export
dfs : Nat->Spacea->Lista
  Depth first search strategy to explore a search space.
This is made total by preemptively limiting the depth the search
is willing to explore.

Totality: total
Visibility: export
convert : (0f : (SnocListName->Nat)) -> ((vars : SnocListName) ->Name->Tm (fvars)) -> (vars : SnocListName) ->TTImp->EitherTTImp (Tm (fvars))
  Converts a type of the form (a -> (a -> b -> c) -> b -> c)
to our internal representation

Totality: total
Visibility: export
parseType : (0f : (SnocListName->Nat)) -> ((vars : SnocListName) ->Name->Tm (fvars)) ->TTImp->EitherTTImp (vars : SnocListName**Tm (fvars))
  Parse a type of the form
forall a b c. a -> (a -> b -> c) -> b -> c to
1. a scope [<a,b,c]
2. a representation of the rest

Totality: total
Visibility: export
parseRule : TTImp->EitherTTImp (vars : SnocListName**Tm (lengthvars))
  Parse a type, where bound variables are flexible variables

Totality: total
Visibility: export
parseGoal : TTImp->EitherTTImp (SnocListName, Tm0)
  Parse a type, where bound variables are rigid variables

Totality: total
Visibility: export
mkRule : Name->ElabRule
Totality: total
Visibility: export
getGoal : Elab (HintDB, Tm0)
Totality: total
Visibility: export
unquote : Proof->TTImp
Totality: total
Visibility: export
intros : Lista->TTImp->TTImp
Totality: total
Visibility: export
bySearch : Nat->HintDB->Elaba
Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Search.CTL.html b/papers/docs/Search.CTL.html index 6af12f21d3..2ce43e271c 100644 --- a/papers/docs/Search.CTL.html +++ b/papers/docs/Search.CTL.html @@ -65,4 +65,4 @@ Applications of Applicative Proof Search by Liam O'Connor https://doi.org/10.1145/2976022.2976030 -

Reexports

importpublic Search.Negation
importpublic Search.HDecidable
importpublic Search.Properties

Definitions

recordDiagram : Type->Type->Type
  Labeled transition diagram

Totality: total
Visibility: public export
Constructor: 
TD : ((labels, state) ->List (labels, state)) ->labels->Diagramlabelsstate

Projections:
.iState : Diagramlabelsstate->labels
  Initial state
.transFn : Diagramlabelsstate-> (labels, state) ->List (labels, state)
  Transition function
.transFn : Diagramlabelsstate-> (labels, state) ->List (labels, state)
  Transition function

Totality: total
Visibility: public export
transFn : Diagramlabelsstate-> (labels, state) ->List (labels, state)
  Transition function

Totality: total
Visibility: public export
.iState : Diagramlabelsstate->labels
  Initial state

Totality: total
Visibility: public export
iState : Diagramlabelsstate->labels
  Initial state

Totality: total
Visibility: public export
pComp : {Lbls1 : Type} -> {Lbls2 : Type} -> {Sts : Type} ->DiagramLbls1Sts->DiagramLbls2Sts->Diagram (Lbls1, Lbls2) Sts
  Parallel composition of transition diagrams

Totality: total
Visibility: public export
HiHorse : Diagram () Nat
  A process which always increases the shared number.

Totality: total
Visibility: public export
LoRoad : Diagram () Nat
  A process which always decreases the shared number.

Totality: total
Visibility: public export
dataLTE' : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
LTERefl : LTE'mm
LTEStep : LTE'nm->LTE'n (Sm)
dataCT : Type->Type->Type
  A computation tree (corecursive rose tree?)

Totality: total
Visibility: public export
Constructor: 
At : (Lbls : Type) -> (Sts : Type) -> (Lbls, Sts) -> Inf (ListCT) ->CT

Hints:
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AlwaysUntilfg)
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (ExistsUntilfg)
model : (Lbls : Type) -> (Sts : Type) ->DiagramLblsSts->Sts->CT
  Given a transition diagram and a starting value for the shared state,
construct the computation tree of the given transition diagram.

Totality: total
Visibility: public export
Formula : Type->Type->Type
  A formula has a bound (for Bounded Model Checking; BMC) and a computation
tree to check against.

Totality: total
Visibility: public export
dataModels : (Lbls : Type) -> (Sts : Type) ->CT->Formula->Type
  A tree models a formula if there exists a depth d0 for which the property
holds for all depths d >= d0.

Totality: total
Visibility: public export
Constructor: 
ItModels : (Lbls : Type) -> (Sts : Type) -> (d0 : Nat) -> (LTE'd0d->fdm) ->Modelsmf
recordDepthInv : (Lbls : Type) -> (Sts : Type) ->Formula->Type
  Depth-invariance (DI) is when a formula cannot be falsified by increasing
the search depth.

Totality: total
Visibility: public export
Constructor: 
DI : (Lbls : Type) -> (Sts : Type) -> (fnm->f (Sn) m) ->DepthInvf

Projection: 
.prf : (Lbls : Type) -> (Sts : Type) ->DepthInvf->fnm->f (Sn) m

Hints:
(Lbls : Type) -> (Sts : Type) ->DepthInvTrueF
(Lbls : Type) -> (Sts : Type) ->DepthInv (Guardedp)
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AND'fg)
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AlwaysUntilfg)
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (ExistsUntilfg)
(Lbls : Type) -> (Sts : Type) ->DepthInvCompleted
.prf : (Lbls : Type) -> (Sts : Type) ->DepthInvf->fnm->f (Sn) m
Totality: total
Visibility: public export
prf : (Lbls : Type) -> (Sts : Type) ->DepthInvf->fnm->f (Sn) m
Totality: total
Visibility: public export
diModels : (Lbls : Type) -> (Sts : Type) ->DepthInvf=>fnm->Modelsmf
  A DI-formula holding for a specific depth means the CT models the formula
in general (we could increase the search depth and still be fine).

Totality: total
Visibility: public export
dataTrueF : (Lbls : Type) -> (Sts : Type) ->Formula
  A trivially true (TT) formula.

Totality: total
Visibility: public export
Constructor: 
TT : (Lbls : Type) -> (Sts : Type) ->TrueFnm

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvTrueF
TrueDI : (Lbls : Type) -> (Sts : Type) ->DepthInvTrueF
  A tt formula is depth-invariant.

Totality: total
Visibility: public export
dataGuarded : (Lbls : Type) -> (Sts : Type) -> (Sts->Lbls->Type) ->Formula
  The formula `Guarded g` is true when the current state satisfies the
guard `g`.

Totality: total
Visibility: public export
Constructor: 
Here : (Lbls : Type) -> (Sts : Type) ->gstl->Guardedgdepth (At (l, st) ms)

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInv (Guardedp)
diGuarded : (Lbls : Type) -> (Sts : Type) ->DepthInv (Guardedp)
  Guarded expressions are depth-invariant as the guard does not care about
depth.

Totality: total
Visibility: public export
recordAND' : (Lbls : Type) -> (Sts : Type) ->Formula->Formula->Nat->CT->Type
  Conjunction of two `Formula`s

Totality: total
Visibility: public export
Constructor: 
MkAND' : (Lbls : Type) -> (Sts : Type) ->fdepthtree->gdepthtree->AND'fgdepthtree

Projections:
.fst : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->fdepthtree
.snd : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->gdepthtree

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AND'fg)
.fst : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->fdepthtree
Totality: total
Visibility: public export
fst : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->fdepthtree
Totality: total
Visibility: public export
.snd : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->gdepthtree
Totality: total
Visibility: public export
snd : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->gdepthtree
Totality: total
Visibility: public export
diAND' : (Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AND'fg)
  Conjunction is depth-invariant

Totality: total
Visibility: public export
dataAlwaysUntil : (Lbls : Type) -> (Sts : Type) ->Formula->Formula->Formula
  A proof that for all paths in the tree, f holds until g does.

Totality: total
Visibility: public export
Constructors:
Here : (Lbls : Type) -> (Sts : Type) ->gnt->AlwaysUntilfg (Sn) t
  We've found a place where g holds, so we're done.
There : (Lbls : Type) -> (Sts : Type) ->fn (AtstinfCTs) ->All (AlwaysUntilfgn) (Force infCTs) ->AlwaysUntilfg (Sn) (AtstinfCTs)
  If f still holds and we can recursively show that g holds for all
possible subpaths in the CT, then all branches have f hold until g
does.

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AlwaysUntilfg)
diAU : (Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AlwaysUntilfg)
  Provided `f` and `g` are depth-invariant, AlwaysUntil is
depth-invariant.

Totality: total
Visibility: public export
dataExistsUntil : (Lbls : Type) -> (Sts : Type) ->Formula->Formula->Formula
  A proof that somewhere in the tree, there is a path for which f holds
until g does.

Totality: total
Visibility: public export
Constructors:
Here : (Lbls : Type) -> (Sts : Type) ->gnt->ExistsUntilfg (Sn) t
  If g holds here, we've found a branch where we can stop.
There : (Lbls : Type) -> (Sts : Type) ->fn (AtstinfCTs) ->Any (ExistsUntilfgn) (Force infCTs) ->ExistsUntilfg (Sn) (AtstinfCTs)
  If f holds here and any of the further branches have a g, then there
is a branch where f holds until g does.

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (ExistsUntilfg)
diEU : (Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (ExistsUntilfg)
  Provided `f` and `g` are depth-invariant, ExistsUntil is
depth-invariant.

Totality: total
Visibility: public export
AlwaysFinally : (Lbls : Type) -> (Sts : Type) ->Formula->Formula
  "Always finally" means that for all paths, the formula f will eventually
hold.

This is equivalent to saying `A [TT U f]` (where TT is trivially true).

Totality: total
Visibility: public export
ExistsFinally : (Lbls : Type) -> (Sts : Type) ->Formula->Formula
  "Exists finally" means that for some pathe, the formula f will eventually
hold.

This is equivalent to saying `E [TT U f]` (where TT is trivially true).

Totality: total
Visibility: public export
dataCompleted : (Lbls : Type) -> (Sts : Type) ->Formula
  A completed formula is a formula for which no more successor states exist.

Totality: total
Visibility: public export
Constructor: 
IsCompleted : (Lbls : Type) -> (Sts : Type) -> (Force infCTs) = [] ->Completedn (AtstinfCTs)

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvCompleted
diCompleted : (Lbls : Type) -> (Sts : Type) ->DepthInvCompleted
  A completed formula is depth-invariant (there is nothing more to do).

Totality: total
Visibility: public export
AlwaysGlobal : (Lbls : Type) -> (Sts : Type) ->Formula->Formula
  We can only handle always global checks on finite paths.

Totality: total
Visibility: public export
ExistsGlobal : (Lbls : Type) -> (Sts : Type) ->Formula->Formula
  We can only handle exists global checks on finite paths.

Totality: total
Visibility: public export
MC : (Lbls : Type) -> (Sts : Type) ->Formula->Type
  Model-checking is a half-decider for the formula `f`

Totality: total
Visibility: public export
now : (Lbls : Type) -> (Sts : Type) ->AnHDechdec=> ((st : Sts) -> (l : Lbls) ->hdec (gstl)) ->MC (Guardedg)
  Proof-search combinator for guards.

Totality: total
Visibility: public export
isCompleted : (Lbls : Type) -> (Sts : Type) ->MCCompleted
  Check if the current state has any successors.

Totality: total
Visibility: public export
mcAND' : (Lbls : Type) -> (Sts : Type) ->MCf->MCg->MC (AND'fg)
  Conjunction of model-checking procedures.

Totality: total
Visibility: public export
auSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MCg->MC (AlwaysUntilfg)
  Proof-search for `AlwaysUntil`.

Evaluates the entire `Inf (List CT)` of the state-space, since we need
`f U g` to hold across every path.

Totality: total
Visibility: public export
euSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MCg->MC (ExistsUntilfg)
  Proof-search for `ExistsUntil`.

`Inf` over the state-space, since `E [f U g]` holds as soon as `f U g` is
found.

Totality: total
Visibility: public export
efSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MC (ExistsFinallyf)
  Proof-search for Exists Finally

Totality: total
Visibility: public export
afSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MC (AlwaysFinallyf)
  Proof-search for Always Finally

Totality: total
Visibility: public export
egSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MC (ExistsGlobalf)
  Proof-search for Exists Global

Totality: total
Visibility: public export
agSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MC (AlwaysGlobalf)
  Proof-search for Always Global

Totality: total
Visibility: public export
tree : CT
  This CT is a model of composing the `HiHorse` and `LoRoad` programs.

Totality: total
Visibility: public export
reaches10 : HDec (ExistsFinally (\depth, tree=>Guarded (\st, l=>st=10) depthtree) 20tree)
  A half-decider for proving that there exists a path where the shared
`HiHorse || LoRoad` state reaches 10.

Totality: total
Visibility: public export
r10Proof : Modelstree (ExistsFinally (Guarded (\st, {_:8769}=>st=10)))
  Prove that the shared state of `HiHorse || LoRoad` reaches 10, using the
previously defined half-decider.

Totality: total
Visibility: export
\ No newline at end of file +

Reexports

importpublic Search.Negation
importpublic Search.HDecidable
importpublic Search.Properties

Definitions

recordDiagram : Type->Type->Type
  Labeled transition diagram

Totality: total
Visibility: public export
Constructor: 
TD : ((labels, state) ->List (labels, state)) ->labels->Diagramlabelsstate

Projections:
.iState : Diagramlabelsstate->labels
  Initial state
.transFn : Diagramlabelsstate-> (labels, state) ->List (labels, state)
  Transition function
.transFn : Diagramlabelsstate-> (labels, state) ->List (labels, state)
  Transition function

Totality: total
Visibility: public export
transFn : Diagramlabelsstate-> (labels, state) ->List (labels, state)
  Transition function

Totality: total
Visibility: public export
.iState : Diagramlabelsstate->labels
  Initial state

Totality: total
Visibility: public export
iState : Diagramlabelsstate->labels
  Initial state

Totality: total
Visibility: public export
pComp : {Lbls1 : Type} -> {Lbls2 : Type} -> {Sts : Type} ->DiagramLbls1Sts->DiagramLbls2Sts->Diagram (Lbls1, Lbls2) Sts
  Parallel composition of transition diagrams

Totality: total
Visibility: public export
HiHorse : Diagram () Nat
  A process which always increases the shared number.

Totality: total
Visibility: public export
LoRoad : Diagram () Nat
  A process which always decreases the shared number.

Totality: total
Visibility: public export
dataLTE' : Nat->Nat->Type
Totality: total
Visibility: public export
Constructors:
LTERefl : LTE'mm
LTEStep : LTE'nm->LTE'n (Sm)
dataCT : Type->Type->Type
  A computation tree (corecursive rose tree?)

Totality: total
Visibility: public export
Constructor: 
At : (Lbls : Type) -> (Sts : Type) -> (Lbls, Sts) -> Inf (ListCT) ->CT

Hints:
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AlwaysUntilfg)
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (ExistsUntilfg)
model : (Lbls : Type) -> (Sts : Type) ->DiagramLblsSts->Sts->CT
  Given a transition diagram and a starting value for the shared state,
construct the computation tree of the given transition diagram.

Totality: total
Visibility: public export
Formula : Type->Type->Type
  A formula has a bound (for Bounded Model Checking; BMC) and a computation
tree to check against.

Totality: total
Visibility: public export
dataModels : (Lbls : Type) -> (Sts : Type) ->CT->Formula->Type
  A tree models a formula if there exists a depth d0 for which the property
holds for all depths d >= d0.

Totality: total
Visibility: public export
Constructor: 
ItModels : (Lbls : Type) -> (Sts : Type) -> (d0 : Nat) -> (LTE'd0d->fdm) ->Modelsmf
recordDepthInv : (Lbls : Type) -> (Sts : Type) ->Formula->Type
  Depth-invariance (DI) is when a formula cannot be falsified by increasing
the search depth.

Totality: total
Visibility: public export
Constructor: 
DI : (Lbls : Type) -> (Sts : Type) -> (fnm->f (Sn) m) ->DepthInvf

Projection: 
.prf : (Lbls : Type) -> (Sts : Type) ->DepthInvf->fnm->f (Sn) m

Hints:
(Lbls : Type) -> (Sts : Type) ->DepthInvTrueF
(Lbls : Type) -> (Sts : Type) ->DepthInv (Guardedp)
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AND'fg)
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AlwaysUntilfg)
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (ExistsUntilfg)
(Lbls : Type) -> (Sts : Type) ->DepthInvCompleted
.prf : (Lbls : Type) -> (Sts : Type) ->DepthInvf->fnm->f (Sn) m
Totality: total
Visibility: public export
prf : (Lbls : Type) -> (Sts : Type) ->DepthInvf->fnm->f (Sn) m
Totality: total
Visibility: public export
diModels : (Lbls : Type) -> (Sts : Type) ->DepthInvf=>fnm->Modelsmf
  A DI-formula holding for a specific depth means the CT models the formula
in general (we could increase the search depth and still be fine).

Totality: total
Visibility: public export
dataTrueF : (Lbls : Type) -> (Sts : Type) ->Formula
  A trivially true (TT) formula.

Totality: total
Visibility: public export
Constructor: 
TT : (Lbls : Type) -> (Sts : Type) ->TrueFnm

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvTrueF
TrueDI : (Lbls : Type) -> (Sts : Type) ->DepthInvTrueF
  A tt formula is depth-invariant.

Totality: total
Visibility: public export
dataGuarded : (Lbls : Type) -> (Sts : Type) -> (Sts->Lbls->Type) ->Formula
  The formula `Guarded g` is true when the current state satisfies the
guard `g`.

Totality: total
Visibility: public export
Constructor: 
Here : (Lbls : Type) -> (Sts : Type) ->gstl->Guardedgdepth (At (l, st) ms)

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInv (Guardedp)
diGuarded : (Lbls : Type) -> (Sts : Type) ->DepthInv (Guardedp)
  Guarded expressions are depth-invariant as the guard does not care about
depth.

Totality: total
Visibility: public export
recordAND' : (Lbls : Type) -> (Sts : Type) ->Formula->Formula->Nat->CT->Type
  Conjunction of two `Formula`s

Totality: total
Visibility: public export
Constructor: 
MkAND' : (Lbls : Type) -> (Sts : Type) ->fdepthtree->gdepthtree->AND'fgdepthtree

Projections:
.fst : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->fdepthtree
.snd : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->gdepthtree

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AND'fg)
.fst : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->fdepthtree
Totality: total
Visibility: public export
fst : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->fdepthtree
Totality: total
Visibility: public export
.snd : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->gdepthtree
Totality: total
Visibility: public export
snd : (Lbls : Type) -> (Sts : Type) ->AND'fgdepthtree->gdepthtree
Totality: total
Visibility: public export
diAND' : (Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AND'fg)
  Conjunction is depth-invariant

Totality: total
Visibility: public export
dataAlwaysUntil : (Lbls : Type) -> (Sts : Type) ->Formula->Formula->Formula
  A proof that for all paths in the tree, f holds until g does.

Totality: total
Visibility: public export
Constructors:
Here : (Lbls : Type) -> (Sts : Type) ->gnt->AlwaysUntilfg (Sn) t
  We've found a place where g holds, so we're done.
There : (Lbls : Type) -> (Sts : Type) ->fn (AtstinfCTs) ->All (AlwaysUntilfgn) (Force infCTs) ->AlwaysUntilfg (Sn) (AtstinfCTs)
  If f still holds and we can recursively show that g holds for all
possible subpaths in the CT, then all branches have f hold until g
does.

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AlwaysUntilfg)
diAU : (Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (AlwaysUntilfg)
  Provided `f` and `g` are depth-invariant, AlwaysUntil is
depth-invariant.

Totality: total
Visibility: public export
dataExistsUntil : (Lbls : Type) -> (Sts : Type) ->Formula->Formula->Formula
  A proof that somewhere in the tree, there is a path for which f holds
until g does.

Totality: total
Visibility: public export
Constructors:
Here : (Lbls : Type) -> (Sts : Type) ->gnt->ExistsUntilfg (Sn) t
  If g holds here, we've found a branch where we can stop.
There : (Lbls : Type) -> (Sts : Type) ->fn (AtstinfCTs) ->Any (ExistsUntilfgn) (Force infCTs) ->ExistsUntilfg (Sn) (AtstinfCTs)
  If f holds here and any of the further branches have a g, then there
is a branch where f holds until g does.

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (ExistsUntilfg)
diEU : (Lbls : Type) -> (Sts : Type) ->DepthInvf=>DepthInvg=>DepthInv (ExistsUntilfg)
  Provided `f` and `g` are depth-invariant, ExistsUntil is
depth-invariant.

Totality: total
Visibility: public export
AlwaysFinally : (Lbls : Type) -> (Sts : Type) ->Formula->Formula
  "Always finally" means that for all paths, the formula f will eventually
hold.

This is equivalent to saying `A [TT U f]` (where TT is trivially true).

Totality: total
Visibility: public export
ExistsFinally : (Lbls : Type) -> (Sts : Type) ->Formula->Formula
  "Exists finally" means that for some pathe, the formula f will eventually
hold.

This is equivalent to saying `E [TT U f]` (where TT is trivially true).

Totality: total
Visibility: public export
dataCompleted : (Lbls : Type) -> (Sts : Type) ->Formula
  A completed formula is a formula for which no more successor states exist.

Totality: total
Visibility: public export
Constructor: 
IsCompleted : (Lbls : Type) -> (Sts : Type) -> (Force infCTs) = [] ->Completedn (AtstinfCTs)

Hint: 
(Lbls : Type) -> (Sts : Type) ->DepthInvCompleted
diCompleted : (Lbls : Type) -> (Sts : Type) ->DepthInvCompleted
  A completed formula is depth-invariant (there is nothing more to do).

Totality: total
Visibility: public export
AlwaysGlobal : (Lbls : Type) -> (Sts : Type) ->Formula->Formula
  We can only handle always global checks on finite paths.

Totality: total
Visibility: public export
ExistsGlobal : (Lbls : Type) -> (Sts : Type) ->Formula->Formula
  We can only handle exists global checks on finite paths.

Totality: total
Visibility: public export
MC : (Lbls : Type) -> (Sts : Type) ->Formula->Type
  Model-checking is a half-decider for the formula `f`

Totality: total
Visibility: public export
now : (Lbls : Type) -> (Sts : Type) ->AnHDechdec=> ((st : Sts) -> (l : Lbls) ->hdec (gstl)) ->MC (Guardedg)
  Proof-search combinator for guards.

Totality: total
Visibility: public export
isCompleted : (Lbls : Type) -> (Sts : Type) ->MCCompleted
  Check if the current state has any successors.

Totality: total
Visibility: public export
mcAND' : (Lbls : Type) -> (Sts : Type) ->MCf->MCg->MC (AND'fg)
  Conjunction of model-checking procedures.

Totality: total
Visibility: public export
auSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MCg->MC (AlwaysUntilfg)
  Proof-search for `AlwaysUntil`.

Evaluates the entire `Inf (List CT)` of the state-space, since we need
`f U g` to hold across every path.

Totality: total
Visibility: public export
euSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MCg->MC (ExistsUntilfg)
  Proof-search for `ExistsUntil`.

`Inf` over the state-space, since `E [f U g]` holds as soon as `f U g` is
found.

Totality: total
Visibility: public export
efSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MC (ExistsFinallyf)
  Proof-search for Exists Finally

Totality: total
Visibility: public export
afSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MC (AlwaysFinallyf)
  Proof-search for Always Finally

Totality: total
Visibility: public export
egSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MC (ExistsGlobalf)
  Proof-search for Exists Global

Totality: total
Visibility: public export
agSearch : (Lbls : Type) -> (Sts : Type) ->MCf->MC (AlwaysGlobalf)
  Proof-search for Always Global

Totality: total
Visibility: public export
tree : CT
  This CT is a model of composing the `HiHorse` and `LoRoad` programs.

Totality: total
Visibility: public export
reaches10 : HDec (ExistsFinally (\depth, tree=>Guarded (\st, l=>st=10) depthtree) 20tree)
  A half-decider for proving that there exists a path where the shared
`HiHorse || LoRoad` state reaches 10.

Totality: total
Visibility: public export
r10Proof : Modelstree (ExistsFinally (Guarded (\st, {_:8769}=>st=10)))
  Prove that the shared state of `HiHorse || LoRoad` reaches 10, using the
previously defined half-decider.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/papers/docs/Search.GCL.html b/papers/docs/Search.GCL.html index 4067c5d459..341f9be754 100644 --- a/papers/docs/Search.GCL.html +++ b/papers/docs/Search.GCL.html @@ -65,4 +65,4 @@ Applications of Applicative Proof Search by Liam O'Connor https://doi.org/10.1145/2976022.2976030 -

Reexports

importpublic Search.CTL

Definitions

weaken : Dec{_:6603}->Bool
  Weaken a Dec to a Bool.

Totality: total
Visibility: public export
dataGCL : Type->Type
  Guarded Command Language

Totality: total
Visibility: public export
Constructors:
IF : (Sts : Type) ->ListGUARD->GCL
DOT : (Sts : Type) ->GCL->GCL->GCL
DO : (Sts : Type) ->ListGUARD->GCL
UPDATE : (Sts : Type) -> (Sts->Sts) ->GCL
SKIP : (Sts : Type) ->GCL
  Termination

Hints:
(Sts : Type) ->Uninhabited (IF{_:6700}=SKIP)
(Sts : Type) ->Uninhabited (DOT{_:6725}{_:6724}=SKIP)
(Sts : Type) ->Uninhabited (DO{_:6753}=SKIP)
(Sts : Type) ->Uninhabited (UPDATE{_:6776}=SKIP)
Pred : Type->Type
  A predicate

Totality: total
Visibility: public export
recordGUARD : Type->Type
  Guards are checks on the current state

Totality: total
Visibility: public export
Constructor: 
MkGUARD : (Sts : Type) ->Pred->GCL->GUARD

Projections:
.g : (Sts : Type) ->GUARD->Pred
  The check to confirm
.x : (Sts : Type) ->GUARD->GCL
  The current state

Hints:
(Sts : Type) ->Uninhabited (IF{_:6700}=SKIP)
(Sts : Type) ->Uninhabited (DO{_:6753}=SKIP)
.g : (Sts : Type) ->GUARD->Pred
  The check to confirm

Totality: total
Visibility: public export
g : (Sts : Type) ->GUARD->Pred
  The check to confirm

Totality: total
Visibility: public export
.x : (Sts : Type) ->GUARD->GCL
  The current state

Totality: total
Visibility: public export
x : (Sts : Type) ->GUARD->GCL
  The current state

Totality: total
Visibility: public export
isSkip : (Sts : Type) -> (l : GCL) ->Dec (l=SKIP)
  Prove that the given program terminated (i.e. reached a `SKIP`).

Totality: total
Visibility: public export
ops' : (Sts : Type) ->GCL->Sts->List (GCL, Sts)
  Operational semantics of GCL.
(curried version to pass the termination checker)

Totality: total
Visibility: public export
ops : (Sts : Type) -> (GCL, Sts) ->List (GCL, Sts)
  Operational semantics of GCL.

Totality: total
Visibility: public export
gclToDiag : (Sts : Type) ->GCL->DiagramGCLSts
  We can convert a GCL program to a transition digram by using the program
as the state and the operational semantics as the transition function.

Totality: total
Visibility: public export
while : (Sts : Type) ->Pred->GCL->GCL
  While loops are GCL do loops with a single guard.

Totality: total
Visibility: public export
await : (Sts : Type) ->Pred->GCL
  Await halts progress unless the predicate is satisfied.

Totality: total
Visibility: public export
ifThenElse : (Sts : Type) ->Pred->GCL->GCL->GCL
  If statements translate into GCL if statements by having an unmodified and
a negated version of the predicate in the list of `IF` GCL statements.

Totality: total
Visibility: public export
recordState : Type
Totality: total
Visibility: public export
Constructor: 
MkState : Bool->Bool->Nat->Bool->Bool->State

Projections:
.inCS1 : State->Bool
.inCS2 : State->Bool
.intent1 : State->Bool
.intent2 : State->Bool
.turn : State->Nat
.intent2 : State->Bool
Totality: total
Visibility: public export
.intent1 : State->Bool
Totality: total
Visibility: public export
intent2 : State->Bool
Totality: total
Visibility: public export
intent1 : State->Bool
Totality: total
Visibility: public export
.turn : State->Nat
Totality: total
Visibility: public export
turn : State->Nat
Totality: total
Visibility: public export
.inCS2 : State->Bool
Totality: total
Visibility: public export
.inCS1 : State->Bool
Totality: total
Visibility: public export
inCS2 : State->Bool
Totality: total
Visibility: public export
inCS1 : State->Bool
Totality: total
Visibility: public export
CS1 : GCL
  First critical section

Totality: total
Visibility: public export
CS2 : GCL
  Second critical section

Totality: total
Visibility: public export
petersons1 : GCL
  First Peterson's algorithm process

Totality: total
Visibility: public export
petersons2 : GCL
  Second Peterson's algorithm process

Totality: total
Visibility: public export
petersons : Diagram (GCL, GCL) State
  The parallel composition of the two Peterson's processes, to be
model-checked.

Totality: total
Visibility: public export
IsTT : (b : Bool) ->Dec (Sob)
  Type-level decider for booleans.

Totality: total
Visibility: public export
Mutex : Formula
  Mutual exclusion, i.e. both critical sections not simultaneously active.

Totality: total
Visibility: public export
checkMutex : MCMutex
  Model-check (search) whether the mutex condition is satisfied.

Totality: total
Visibility: public export
SF : Formula
  Starvation freedom

Totality: total
Visibility: public export
checkSF : MCSF
  Model-check (search) whether starvation freedom holds.

Totality: total
Visibility: public export
Termination : Formula
  Deadlock freedom, aka. termination for all possible paths/traces

Totality: total
Visibility: public export
checkTermination : MCTermination
  Model-check (search) whether termination holds.

Totality: total
Visibility: public export
init : State
  Initial state for model-checking Peterson's algorithm.

Totality: total
Visibility: public export
tree : CT
  The computational tree for the two Peterson's processes.

Totality: total
Visibility: public export
CSP : Type
  The Critical Section Problem:
1) a process's critical section (CS) is only ever accessed by that process
and no other
2) any process which wishes to gain access to its CS eventually
does so
3) the composition of the processes is deadlock free
(we use a stronger requirement: that all process composition must
terminate successfully)

Totality: total
Visibility: public export
checkPetersons : Prop (Nat::Constraints) CSP
  A `Prop` (property) containing all the conditions necessary for proving that
Peterson's Algorithm is a correct solution to the Critical Section Problem.
When evaluated (e.g. through the `auto` search in a `Properties.check`
call; specifically `runProp`), it will produce the required proof (which is
**very** big).

Totality: total
Visibility: public export
dekkers1 : GCL
  First Dekker's algorithm process

Totality: total
Visibility: public export
dekkers2 : GCL
  First Dekker's algorithm process

Totality: total
Visibility: public export
dekkers : Diagram (GCL, GCL) State
  The parallel composition of the two Dekker's processes, to be model-checked.

Totality: total
Visibility: public export
checkDekkers : HDec (ExistsFinally?f100 (modeldekkersinit))
  An attempt at finding a violation of Mutual Exclusion.
THIS WILL NOT FIND A PROOF due to the lack of fairness in the unfolding of
the traces. Dekker's algorithm requires fair scheduling in order to be
correct, but since we don't have that, we cannot find a proof that no
violations of mutex exist.

/!\ Trying to evaluate this did not finish after 10 minutes /!\

Totality: total
Visibility: public export
\ No newline at end of file +

Reexports

importpublic Search.CTL

Definitions

weaken : Dec{_:6603}->Bool
  Weaken a Dec to a Bool.

Totality: total
Visibility: public export
dataGCL : Type->Type
  Guarded Command Language

Totality: total
Visibility: public export
Constructors:
IF : (Sts : Type) ->ListGUARD->GCL
DOT : (Sts : Type) ->GCL->GCL->GCL
DO : (Sts : Type) ->ListGUARD->GCL
UPDATE : (Sts : Type) -> (Sts->Sts) ->GCL
SKIP : (Sts : Type) ->GCL
  Termination

Hints:
(Sts : Type) ->Uninhabited (IF{_:6700}=SKIP)
(Sts : Type) ->Uninhabited (DOT{_:6725}{_:6724}=SKIP)
(Sts : Type) ->Uninhabited (DO{_:6753}=SKIP)
(Sts : Type) ->Uninhabited (UPDATE{_:6776}=SKIP)
Pred : Type->Type
  A predicate

Totality: total
Visibility: public export
recordGUARD : Type->Type
  Guards are checks on the current state

Totality: total
Visibility: public export
Constructor: 
MkGUARD : (Sts : Type) ->Pred->GCL->GUARD

Projections:
.g : (Sts : Type) ->GUARD->Pred
  The check to confirm
.x : (Sts : Type) ->GUARD->GCL
  The current state

Hints:
(Sts : Type) ->Uninhabited (IF{_:6700}=SKIP)
(Sts : Type) ->Uninhabited (DO{_:6753}=SKIP)
.g : (Sts : Type) ->GUARD->Pred
  The check to confirm

Totality: total
Visibility: public export
g : (Sts : Type) ->GUARD->Pred
  The check to confirm

Totality: total
Visibility: public export
.x : (Sts : Type) ->GUARD->GCL
  The current state

Totality: total
Visibility: public export
x : (Sts : Type) ->GUARD->GCL
  The current state

Totality: total
Visibility: public export
isSkip : (Sts : Type) -> (l : GCL) ->Dec (l=SKIP)
  Prove that the given program terminated (i.e. reached a `SKIP`).

Totality: total
Visibility: public export
ops' : (Sts : Type) ->GCL->Sts->List (GCL, Sts)
  Operational semantics of GCL.
(curried version to pass the termination checker)

Totality: total
Visibility: public export
ops : (Sts : Type) -> (GCL, Sts) ->List (GCL, Sts)
  Operational semantics of GCL.

Totality: total
Visibility: public export
gclToDiag : (Sts : Type) ->GCL->DiagramGCLSts
  We can convert a GCL program to a transition digram by using the program
as the state and the operational semantics as the transition function.

Totality: total
Visibility: public export
while : (Sts : Type) ->Pred->GCL->GCL
  While loops are GCL do loops with a single guard.

Totality: total
Visibility: public export
await : (Sts : Type) ->Pred->GCL
  Await halts progress unless the predicate is satisfied.

Totality: total
Visibility: public export
ifThenElse : (Sts : Type) ->Pred->GCL->GCL->GCL
  If statements translate into GCL if statements by having an unmodified and
a negated version of the predicate in the list of `IF` GCL statements.

Totality: total
Visibility: public export
recordState : Type
Totality: total
Visibility: public export
Constructor: 
MkState : Bool->Bool->Nat->Bool->Bool->State

Projections:
.inCS1 : State->Bool
.inCS2 : State->Bool
.intent1 : State->Bool
.intent2 : State->Bool
.turn : State->Nat
.intent2 : State->Bool
Totality: total
Visibility: public export
.intent1 : State->Bool
Totality: total
Visibility: public export
intent2 : State->Bool
Totality: total
Visibility: public export
intent1 : State->Bool
Totality: total
Visibility: public export
.turn : State->Nat
Totality: total
Visibility: public export
turn : State->Nat
Totality: total
Visibility: public export
.inCS2 : State->Bool
Totality: total
Visibility: public export
.inCS1 : State->Bool
Totality: total
Visibility: public export
inCS2 : State->Bool
Totality: total
Visibility: public export
inCS1 : State->Bool
Totality: total
Visibility: public export
CS1 : GCL
  First critical section

Totality: total
Visibility: public export
CS2 : GCL
  Second critical section

Totality: total
Visibility: public export
petersons1 : GCL
  First Peterson's algorithm process

Totality: total
Visibility: public export
petersons2 : GCL
  Second Peterson's algorithm process

Totality: total
Visibility: public export
petersons : Diagram (GCL, GCL) State
  The parallel composition of the two Peterson's processes, to be
model-checked.

Totality: total
Visibility: public export
IsTT : (b : Bool) ->Dec (Sob)
  Type-level decider for booleans.

Totality: total
Visibility: public export
Mutex : Formula
  Mutual exclusion, i.e. both critical sections not simultaneously active.

Totality: total
Visibility: public export
checkMutex : MCMutex
  Model-check (search) whether the mutex condition is satisfied.

Totality: total
Visibility: public export
SF : Formula
  Starvation freedom

Totality: total
Visibility: public export
checkSF : MCSF
  Model-check (search) whether starvation freedom holds.

Totality: total
Visibility: public export
Termination : Formula
  Deadlock freedom, aka. termination for all possible paths/traces

Totality: total
Visibility: public export
checkTermination : MCTermination
  Model-check (search) whether termination holds.

Totality: total
Visibility: public export
init : State
  Initial state for model-checking Peterson's algorithm.

Totality: total
Visibility: public export
tree : CT
  The computational tree for the two Peterson's processes.

Totality: total
Visibility: public export
CSP : Type
  The Critical Section Problem:
1) a process's critical section (CS) is only ever accessed by that process
and no other
2) any process which wishes to gain access to its CS eventually
does so
3) the composition of the processes is deadlock free
(we use a stronger requirement: that all process composition must
terminate successfully)

Totality: total
Visibility: public export
checkPetersons : Prop (Nat::Constraints) CSP
  A `Prop` (property) containing all the conditions necessary for proving that
Peterson's Algorithm is a correct solution to the Critical Section Problem.
When evaluated (e.g. through the `auto` search in a `Properties.check`
call; specifically `runProp`), it will produce the required proof (which is
**very** big).

Totality: total
Visibility: public export
dekkers1 : GCL
  First Dekker's algorithm process

Totality: total
Visibility: public export
dekkers2 : GCL
  First Dekker's algorithm process

Totality: total
Visibility: public export
dekkers : Diagram (GCL, GCL) State
  The parallel composition of the two Dekker's processes, to be model-checked.

Totality: total
Visibility: public export
checkDekkers : HDec (ExistsFinally?f100 (modeldekkersinit))
  An attempt at finding a violation of Mutual Exclusion.
THIS WILL NOT FIND A PROOF due to the lack of fairness in the unfolding of
the traces. Dekker's algorithm requires fair scheduling in order to be
correct, but since we don't have that, we cannot find a proof that no
violations of mutex exist.

/!\ Trying to evaluate this did not finish after 10 minutes /!\

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Search.Generator.html b/papers/docs/Search.Generator.html index 760d6fb2fb..e650e9deb6 100644 --- a/papers/docs/Search.Generator.html +++ b/papers/docs/Search.Generator.html @@ -71,4 +71,4 @@ many duplicates when dealing with finite types which are common in programming (Bool) but even more so in dependently typed programming (Vect 0, Fin (S n), etc.). -

Definitions

interfaceGenerator : Type->Type
  A generator for a given type is a non-empty colist of values of that
type.

Parameters: a
Methods:
generate : Colist1a

Implementations:
GeneratorNat
GeneratorBool
Generator (Fin (Sn))
Generatora=>Generator (a, ())
(Generatora, Generatorb) =>Generator (a, b)
{0b : a->Type} -> (Generatora, (x : a) ->Generator (bx)) =>Generator (x : a**bx)
Generatora=>Generator (Vectna)
Generatora=>Generator (Lista)
generate : Generatora=>Colist1a
Visibility: public export
\ No newline at end of file +

Definitions

interfaceGenerator : Type->Type
  A generator for a given type is a non-empty colist of values of that
type.

Parameters: a
Methods:
generate : Colist1a

Implementations:
GeneratorNat
GeneratorBool
Generator (Fin (Sn))
Generatora=>Generator (a, ())
(Generatora, Generatorb) =>Generator (a, b)
{0b : a->Type} -> (Generatora, (x : a) ->Generator (bx)) =>Generator (x : a**bx)
Generatora=>Generator (Vectna)
Generatora=>Generator (Lista)
generate : Generatora=>Colist1a
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Search.HDecidable.html b/papers/docs/Search.HDecidable.html index 478ecc2e85..5187897b34 100644 --- a/papers/docs/Search.HDecidable.html +++ b/papers/docs/Search.HDecidable.html @@ -65,4 +65,4 @@ Applications of Applicative Proof Search by Liam O'Connor https://doi.org/10.1145/2976022.2976030 -

Definitions

recordHDec : Type->Type
  Half a decider: when the search succeeds we bother building the proof

Totality: total
Visibility: public export
Constructor: 
MkHDec : (isTrue : Bool) -> (SoisTrue->a) ->HDeca

Projections:
.evidence : ({rec:0} : HDeca) ->So (isTrue{rec:0}) ->a
.isTrue : HDeca->Bool

Hints:
AlternativeHDec
AnHDecHDec
ApplicativeHDec
FunctorHDec
MonadHDec
Showf=>Show (HDecf)
.isTrue : HDeca->Bool
Totality: total
Visibility: public export
isTrue : HDeca->Bool
Totality: total
Visibility: public export
.evidence : ({rec:0} : HDeca) ->So (isTrue{rec:0}) ->a
Totality: total
Visibility: public export
evidence : ({rec:0} : HDeca) ->So (isTrue{rec:0}) ->a
Totality: total
Visibility: public export
yes : a->HDeca
  Happy path: we have found a proof!

Totality: total
Visibility: public export
no : HDeca
  Giving up

Totality: total
Visibility: public export
fromDec : Deca->HDeca
Totality: total
Visibility: public export
fromMaybe : Maybea->HDeca
Totality: total
Visibility: public export
toMaybe : HDeca->Maybea
Totality: total
Visibility: public export
interfaceAnHDec : (Type->Type) ->Type
  A type constructor satisfying AnHdec is morally an HDec i.e. we can
turn values of this type constructor into half deciders
It may be more powerful (like Dec) or more basic (like Maybe).

Parameters: t
Methods:
toHDec : ta->HDeca

Implementations:
AnHDecDec
AnHDecHDec
AnHDecMaybe
toHDec : AnHDect=>ta->HDeca
Totality: total
Visibility: public export
(&&) : (AnHDecl, AnHDecr) =>la->rb->HDec (a, b)
  Half deciders are closed under product

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 5
(||) : (AnHDecl, AnHDecr) =>la->rb->HDec (Eitherab)
  Half deciders are closed under sum

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
not : (AnHDecl, Negatesnaa) =>lna->HDec (Nota)
  Half deciders are closed negation. Here we use the `Negates` interface
so that we end up looking for *positive* evidence of something which is
much easier to find than negative one.

Totality: total
Visibility: public export
(==>) : (AnHDecl, (AnHDecr, Negatesnaa)) =>lna->rb->HDec (a->b)
  Half deciders are closed under implication

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 3
any : AnHDecl=> (xs : Lista) -> ((x : a) ->l (px)) ->HDec (Anypxs)
  Half deciders are closed under the list quantifier any

Totality: total
Visibility: public export
all : AnHDecl=> (xs : Lista) -> ((x : a) ->l (px)) ->HDec (Allpxs)
  Half deciders are closed under the list quantifier all

Totality: total
Visibility: public export
any : AnHDecl=> (xs : LazyLista) -> ((x : a) ->l (px)) ->HDec (Anypxs)
  Half deciders are closed under the lazy list quantifier any

Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

recordHDec : Type->Type
  Half a decider: when the search succeeds we bother building the proof

Totality: total
Visibility: public export
Constructor: 
MkHDec : (isTrue : Bool) -> (SoisTrue->a) ->HDeca

Projections:
.evidence : ({rec:0} : HDeca) ->So (isTrue{rec:0}) ->a
.isTrue : HDeca->Bool

Hints:
AlternativeHDec
AnHDecHDec
ApplicativeHDec
FunctorHDec
MonadHDec
Showf=>Show (HDecf)
.isTrue : HDeca->Bool
Totality: total
Visibility: public export
isTrue : HDeca->Bool
Totality: total
Visibility: public export
.evidence : ({rec:0} : HDeca) ->So (isTrue{rec:0}) ->a
Totality: total
Visibility: public export
evidence : ({rec:0} : HDeca) ->So (isTrue{rec:0}) ->a
Totality: total
Visibility: public export
yes : a->HDeca
  Happy path: we have found a proof!

Totality: total
Visibility: public export
no : HDeca
  Giving up

Totality: total
Visibility: public export
fromDec : Deca->HDeca
Totality: total
Visibility: public export
fromMaybe : Maybea->HDeca
Totality: total
Visibility: public export
toMaybe : HDeca->Maybea
Totality: total
Visibility: public export
interfaceAnHDec : (Type->Type) ->Type
  A type constructor satisfying AnHdec is morally an HDec i.e. we can
turn values of this type constructor into half deciders
It may be more powerful (like Dec) or more basic (like Maybe).

Parameters: t
Methods:
toHDec : ta->HDeca

Implementations:
AnHDecDec
AnHDecHDec
AnHDecMaybe
toHDec : AnHDect=>ta->HDeca
Totality: total
Visibility: public export
(&&) : (AnHDecl, AnHDecr) =>la->rb->HDec (a, b)
  Half deciders are closed under product

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 5
(||) : (AnHDecl, AnHDecr) =>la->rb->HDec (Eitherab)
  Half deciders are closed under sum

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
not : (AnHDecl, Negatesnaa) =>lna->HDec (Nota)
  Half deciders are closed negation. Here we use the `Negates` interface
so that we end up looking for *positive* evidence of something which is
much easier to find than negative one.

Totality: total
Visibility: public export
(==>) : (AnHDecl, (AnHDecr, Negatesnaa)) =>lna->rb->HDec (a->b)
  Half deciders are closed under implication

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 3
any : AnHDecl=> (xs : Lista) -> ((x : a) ->l (px)) ->HDec (Anypxs)
  Half deciders are closed under the list quantifier any

Totality: total
Visibility: public export
all : AnHDecl=> (xs : Lista) -> ((x : a) ->l (px)) ->HDec (Allpxs)
  Half deciders are closed under the list quantifier all

Totality: total
Visibility: public export
any : AnHDecl=> (xs : LazyLista) -> ((x : a) ->l (px)) ->HDec (Anypxs)
  Half deciders are closed under the lazy list quantifier any

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Search.Negation.html b/papers/docs/Search.Negation.html index 485be915a3..c6b5b73476 100644 --- a/papers/docs/Search.Negation.html +++ b/papers/docs/Search.Negation.html @@ -61,4 +61,4 @@ -

Search.Negation(source)

Definitions

interfaceNegates : Type->Type->Type
  It is much easier to look for positive evidence than it is to look
for negative evidence. So instead of looking for `Not q`, we may
want to look for `p` instead

Parameters: p, q
Methods:
toNegation : p->Notq

Implementations:
Negates (px) (qx) =>Negates (Allpxs) (Anyqxs)
Negates (px) (qx) =>Negates (Anypxs) (Allqxs)
Negates (LTmn) (GTEmn)
Negates (LTEmn) (GTmn)
toNegation : Negatespq=>p->Notq
Totality: total
Visibility: public export
\ No newline at end of file +

Search.Negation(source)

Definitions

interfaceNegates : Type->Type->Type
  It is much easier to look for positive evidence than it is to look
for negative evidence. So instead of looking for `Not q`, we may
want to look for `p` instead

Parameters: p, q
Methods:
toNegation : p->Notq

Implementations:
Negates (px) (qx) =>Negates (Allpxs) (Anyqxs)
Negates (px) (qx) =>Negates (Anypxs) (Allqxs)
Negates (LTmn) (GTEmn)
Negates (LTEmn) (GTmn)
toNegation : Negatespq=>p->Notq
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Search.Properties.html b/papers/docs/Search.Properties.html index 331e560ba1..c2e0c4cfd0 100644 --- a/papers/docs/Search.Properties.html +++ b/papers/docs/Search.Properties.html @@ -65,4 +65,4 @@ Applications of Applicative Proof Search by Liam O'Connor https://doi.org/10.1145/2976022.2976030 -

Reexports

importpublic Data.Stream
importpublic Data.Colist
importpublic Data.Colist1
importpublic Search.Negation
importpublic Search.HDecidable
importpublic Search.Generator

Definitions

Product : ListType->Type
  Take the product of a list of types

Totality: total
Visibility: public export
recordProp : ListType->Type->Type
  A property amenable to testing
@cs is the list of generators we need (inferrable)
@a is the type we hope is inhabited
NB: the longer the list of generators, the bigger the search space!

Totality: total
Visibility: public export
Constructor: 
MkProp : (Colist1 (Productcs) ->Fuel->HDeca) ->Propcsa

Projection: 
.runProp : Propcsa->Colist1 (Productcs) ->Fuel->HDeca
  The function trying to find an `a` provided generators for `cs`.
Made total by consuming some fuel along the way.

Hint: 
AProp (Propcs)
.runProp : Propcsa->Colist1 (Productcs) ->Fuel->HDeca
  The function trying to find an `a` provided generators for `cs`.
Made total by consuming some fuel along the way.

Totality: total
Visibility: public export
runProp : Propcsa->Colist1 (Productcs) ->Fuel->HDeca
  The function trying to find an `a` provided generators for `cs`.
Made total by consuming some fuel along the way.

Totality: total
Visibility: public export
interfaceAProp : (Type->Type) ->Type
  A type constructor satisfying the AProp interface is morally a Prop
It may not make use of all of the powers granted by Prop, hence the
associated `Constraints` list of types.

Parameters: t
Methods:
0Constraints : ListType
toProp : ta->PropConstraintsa

Implementations:
AProp (Propcs)
APropHDec
APropDec
0Constraints : APropt=>ListType
Totality: total
Visibility: public export
toProp : {auto__con : APropt} ->ta->PropConstraintsa
Totality: total
Visibility: public export
check : {autogen : Generator (Productcs)} -> (f : Fuel) -> (p : Propcsa) ->So (isTrue (runProppgeneratef)) =>a
  We can run an AProp to try to generate a value of type a

Totality: total
Visibility: public export
exists : {autoaPropt : APropt} -> ((x : a) ->t (px)) ->Prop (a::Constraints) (DPairap)
  Provided that we know how to generate candidates of type `a`, we can look
for a witness satisfying a given predicate over `a`.

Totality: total
Visibility: public export
\ No newline at end of file +

Reexports

importpublic Data.Stream
importpublic Data.Colist
importpublic Data.Colist1
importpublic Search.Negation
importpublic Search.HDecidable
importpublic Search.Generator

Definitions

Product : ListType->Type
  Take the product of a list of types

Totality: total
Visibility: public export
recordProp : ListType->Type->Type
  A property amenable to testing
@cs is the list of generators we need (inferrable)
@a is the type we hope is inhabited
NB: the longer the list of generators, the bigger the search space!

Totality: total
Visibility: public export
Constructor: 
MkProp : (Colist1 (Productcs) ->Fuel->HDeca) ->Propcsa

Projection: 
.runProp : Propcsa->Colist1 (Productcs) ->Fuel->HDeca
  The function trying to find an `a` provided generators for `cs`.
Made total by consuming some fuel along the way.

Hint: 
AProp (Propcs)
.runProp : Propcsa->Colist1 (Productcs) ->Fuel->HDeca
  The function trying to find an `a` provided generators for `cs`.
Made total by consuming some fuel along the way.

Totality: total
Visibility: public export
runProp : Propcsa->Colist1 (Productcs) ->Fuel->HDeca
  The function trying to find an `a` provided generators for `cs`.
Made total by consuming some fuel along the way.

Totality: total
Visibility: public export
interfaceAProp : (Type->Type) ->Type
  A type constructor satisfying the AProp interface is morally a Prop
It may not make use of all of the powers granted by Prop, hence the
associated `Constraints` list of types.

Parameters: t
Methods:
0Constraints : ListType
toProp : ta->PropConstraintsa

Implementations:
AProp (Propcs)
APropHDec
APropDec
0Constraints : APropt=>ListType
Totality: total
Visibility: public export
toProp : {auto__con : APropt} ->ta->PropConstraintsa
Totality: total
Visibility: public export
check : {autogen : Generator (Productcs)} -> (f : Fuel) -> (p : Propcsa) ->So (isTrue (runProppgeneratef)) =>a
  We can run an AProp to try to generate a value of type a

Totality: total
Visibility: public export
exists : {autoaPropt : APropt} -> ((x : a) ->t (px)) ->Prop (a::Constraints) (DPairap)
  Provided that we know how to generate candidates of type `a`, we can look
for a witness satisfying a given predicate over `a`.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/docs/Search.Tychonoff.PartI.html b/papers/docs/Search.Tychonoff.PartI.html index 612938fe63..12c0318d41 100644 --- a/papers/docs/Search.Tychonoff.PartI.html +++ b/papers/docs/Search.Tychonoff.PartI.html @@ -65,4 +65,4 @@ "Search over uniformly continuous decidable predicates on infinite collections of types" https://www.cs.bham.ac.uk/~txw467/tychonoff/ -

Definitions

dsc : Discretex=> (Nat->x) -> (Nat->x) ->NatInf
Totality: total
Visibility: public export
\ No newline at end of file +

Definitions

dsc : Discretex=> (Nat->x) -> (Nat->x) ->NatInf
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/papers/index.html b/papers/index.html index 02ecb2c1d9..66ed02f66b 100644 --- a/papers/index.html +++ b/papers/index.html @@ -61,4 +61,4 @@ -

Package papers - Namespaces

\ No newline at end of file +

Package papers - Namespaces

\ No newline at end of file diff --git a/prelude/docs/Builtin.html b/prelude/docs/Builtin.html index 734ff4a221..c03b26d45f 100644 --- a/prelude/docs/Builtin.html +++ b/prelude/docs/Builtin.html @@ -61,4 +61,4 @@ -

Builtin(source)

Definitions

assert_total : (1_ : a) ->a
  Assert to the totality checker that the given expression will always
terminate.

The multiplicity of its argument is 1, so `assert_total` won't affect how
many times variables are used. If you're not writing a linear function,
this doesn't make a difference.

Note: assert_total can reduce at compile time, if required for unification,
which might mean that it's no longer guarded a subexpression. Therefore,
it is best to use it around the smallest possible subexpression.

Totality: total
Visibility: public export
assert_smaller : (0_ : a) -> (1_ : b) ->b
  Assert to the totality checker that y is always structurally smaller than x
(which is typically a pattern argument, and *must* be in normal form for
this to work).

The multiplicity of x is 0, so in a linear function, you can pass values to
x even if they have already been used.
The multiplicity of y is 1, so `assert_smaller` won't affect how many times
its y argument is used.
If you're not writing a linear function, the multiplicities don't make a
difference.

@ x the larger value (typically a pattern argument)
@ y the smaller value (typically an argument to a recursive call)

Totality: total
Visibility: public export
dataUnit : Type
  The canonical single-element type, also known as the trivially true
proposition.

Totality: total
Visibility: public export
Constructor: 
MkUnit : ()
  The trivial constructor for `()`.
dataPair : Type->Type->Type
  The non-dependent pair type, also known as conjunction.

Totality: total
Visibility: public export
Constructor: 
MkPair : a->b-> (a, b)
  A pair of elements.
@ a the left element of the pair
@ b the right element of the pair
fst : (a, b) ->a
  Return the first element of a pair.

Totality: total
Visibility: public export
snd : (a, b) ->b
  Return the second element of a pair.

Totality: total
Visibility: public export
swap : (a, b) -> (b, a)
  Swap the elements in a pair

Totality: total
Visibility: public export
dataLPair : Type->Type->Type
  A pair type where each component is linear

Totality: total
Visibility: public export
Constructor: 
(#) : (1_ : a) -> (1_ : b) ->LPairab
  A linear pair of elements.
If you take one copy of the linear pair apart
then you only get one copy of its left and right elements.
@ a the left element of the pair
@ b the right element of the pair
recordDPair : (a : Type) -> (a->Type) ->Type
  Dependent pairs aid in the construction of dependent types by providing
evidence that some value resides in the type.

Formally, speaking, dependent pairs represent existential quantification -
they consist of a witness for the existential claim and a proof that the
property holds for it.

@ a the value to place in the type.
@ p the dependent type that requires the value.

Totality: total
Visibility: public export
Constructor: 
MkDPair : (fst : a) ->pfst->DPairap

Projections:
.fst : DPairap->a
.snd : ({rec:0} : DPairap) ->p (fst{rec:0})
.fst : DPairap->a
Totality: total
Visibility: public export
fst : DPairap->a
Totality: total
Visibility: public export
.snd : ({rec:0} : DPairap) ->p (fst{rec:0})
Totality: total
Visibility: public export
snd : ({rec:0} : DPairap) ->p (fst{rec:0})
Totality: total
Visibility: public export
dataRes : (a : Type) -> (a->Type) ->Type
  A dependent variant of LPair, pairing a result value with a resource
that depends on the result value

Totality: total
Visibility: public export
Constructor: 
(#) : (val : a) -> (1_ : tval) ->Resat
dataVoid : Type
  The empty type, also known as the trivially false proposition.

Use `void` or `absurd` to prove anything if you have a variable of type
`Void` in scope.

Totality: total
Visibility: public export
dataEqual : a->b->Type
Totality: total
Visibility: public export
Constructor: 
Refl : x=x
(===) : a->a->Type
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(~=~) : a->b->Type
  Explicit heterogeneous ("John Major") equality.  Use this when Idris
incorrectly chooses homogeneous equality for `(=)`.
@ a the type of the left side
@ b the type of the right side
@ x the left side
@ y the right side

Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
rewrite__impl : (0p : (a->Type)) -> (0_ : x=y) -> (1_ : py) ->px
  Perform substitution in a term according to some equality.

Like `replace`, but with an explicit predicate, and applying the rewrite in
the other direction, which puts it in a form usable by the `rewrite` tactic
and term.

Totality: total
Visibility: public export
replace : {0p : {_:423}->Type} -> (0_ : x=y) -> (1_ : px) ->py
  Perform substitution in a term according to some equality.

Totality: total
Visibility: public export
sym : (0_ : x=y) ->y=x
  Symmetry of propositional equality.

Totality: total
Visibility: public export
trans : (0_ : a=b) -> (0_ : b=c) ->a=c
  Transitivity of propositional equality.

Totality: total
Visibility: public export
mkDPairInjectiveFst : (a**pa) = (b**qb) ->a=b
  Injectivity of MkDPair (first components)

Totality: total
Visibility: export
mkDPairInjectiveSnd : (a**pa) = (a**qa) ->pa=qa
  Injectivity of MkDPair (snd components)

Totality: total
Visibility: export
believe_me : a->b
  Subvert the type checker.  This function is abstract, so it will not reduce
in the type checker. Use it with care - it can result in segfaults or
worse!

Totality: total
Visibility: public export
assert_linear : (1_ : (a->b)) -> (1_ : a) ->b
  Assert to the usage checker that the given function uses its argument linearly.

Totality: total
Visibility: public export
idris_crash : String->a
Visibility: export
delay : a-> Lazy a
Totality: total
Visibility: public export
force : Lazy a->a
Totality: total
Visibility: public export
interfaceFromString : Type->Type
  Interface for types that can be constructed from string literals.

Parameters: ty
Constructor: 
MkFromString

Methods:
fromString : String->ty
  Conversion from String.

Implementation: 
FromStringString
fromString : FromStringty=>String->ty
  Conversion from String.

Totality: total
Visibility: public export
defaultString : FromStringString
Totality: total
Visibility: public export
interfaceFromChar : Type->Type
  Interface for types that can be constructed from char literals.

Parameters: ty
Constructor: 
MkFromChar

Methods:
fromChar : Char->ty
  Conversion from Char.

Implementation: 
FromCharChar
fromChar : FromCharty=>Char->ty
  Conversion from Char.

Totality: total
Visibility: public export
defaultChar : FromCharChar
Totality: total
Visibility: public export
interfaceFromDouble : Type->Type
  Interface for types that can be constructed from double literals.

Parameters: ty
Constructor: 
MkFromDouble

Methods:
fromDouble : Double->ty
  Conversion from Double.

Implementation: 
FromDoubleDouble
fromDouble : FromDoublety=>Double->ty
  Conversion from Double.

Totality: total
Visibility: public export
defaultDouble : FromDoubleDouble
Totality: total
Visibility: public export
\ No newline at end of file +

Builtin(source)

Definitions

assert_total : (1_ : a) ->a
  Assert to the totality checker that the given expression will always
terminate.

The multiplicity of its argument is 1, so `assert_total` won't affect how
many times variables are used. If you're not writing a linear function,
this doesn't make a difference.

Note: assert_total can reduce at compile time, if required for unification,
which might mean that it's no longer guarded a subexpression. Therefore,
it is best to use it around the smallest possible subexpression.

Totality: total
Visibility: public export
assert_smaller : (0_ : a) -> (1_ : b) ->b
  Assert to the totality checker that y is always structurally smaller than x
(which is typically a pattern argument, and *must* be in normal form for
this to work).

The multiplicity of x is 0, so in a linear function, you can pass values to
x even if they have already been used.
The multiplicity of y is 1, so `assert_smaller` won't affect how many times
its y argument is used.
If you're not writing a linear function, the multiplicities don't make a
difference.

@ x the larger value (typically a pattern argument)
@ y the smaller value (typically an argument to a recursive call)

Totality: total
Visibility: public export
dataUnit : Type
  The canonical single-element type, also known as the trivially true
proposition.

Totality: total
Visibility: public export
Constructor: 
MkUnit : ()
  The trivial constructor for `()`.
dataPair : Type->Type->Type
  The non-dependent pair type, also known as conjunction.

Totality: total
Visibility: public export
Constructor: 
MkPair : a->b-> (a, b)
  A pair of elements.
@ a the left element of the pair
@ b the right element of the pair
fst : (a, b) ->a
  Return the first element of a pair.

Totality: total
Visibility: public export
snd : (a, b) ->b
  Return the second element of a pair.

Totality: total
Visibility: public export
swap : (a, b) -> (b, a)
  Swap the elements in a pair

Totality: total
Visibility: public export
dataLPair : Type->Type->Type
  A pair type where each component is linear

Totality: total
Visibility: public export
Constructor: 
(#) : (1_ : a) -> (1_ : b) ->LPairab
  A linear pair of elements.
If you take one copy of the linear pair apart
then you only get one copy of its left and right elements.
@ a the left element of the pair
@ b the right element of the pair
recordDPair : (a : Type) -> (a->Type) ->Type
  Dependent pairs aid in the construction of dependent types by providing
evidence that some value resides in the type.

Formally, speaking, dependent pairs represent existential quantification -
they consist of a witness for the existential claim and a proof that the
property holds for it.

@ a the value to place in the type.
@ p the dependent type that requires the value.

Totality: total
Visibility: public export
Constructor: 
MkDPair : (fst : a) ->pfst->DPairap

Projections:
.fst : DPairap->a
.snd : ({rec:0} : DPairap) ->p (fst{rec:0})
.fst : DPairap->a
Totality: total
Visibility: public export
fst : DPairap->a
Totality: total
Visibility: public export
.snd : ({rec:0} : DPairap) ->p (fst{rec:0})
Totality: total
Visibility: public export
snd : ({rec:0} : DPairap) ->p (fst{rec:0})
Totality: total
Visibility: public export
dataRes : (a : Type) -> (a->Type) ->Type
  A dependent variant of LPair, pairing a result value with a resource
that depends on the result value

Totality: total
Visibility: public export
Constructor: 
(#) : (val : a) -> (1_ : tval) ->Resat
dataVoid : Type
  The empty type, also known as the trivially false proposition.

Use `void` or `absurd` to prove anything if you have a variable of type
`Void` in scope.

Totality: total
Visibility: public export
dataEqual : a->b->Type
Totality: total
Visibility: public export
Constructor: 
Refl : x=x
(===) : a->a->Type
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(~=~) : a->b->Type
  Explicit heterogeneous ("John Major") equality.  Use this when Idris
incorrectly chooses homogeneous equality for `(=)`.
@ a the type of the left side
@ b the type of the right side
@ x the left side
@ y the right side

Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
rewrite__impl : (0p : (a->Type)) -> (0_ : x=y) -> (1_ : py) ->px
  Perform substitution in a term according to some equality.

Like `replace`, but with an explicit predicate, and applying the rewrite in
the other direction, which puts it in a form usable by the `rewrite` tactic
and term.

Totality: total
Visibility: public export
replace : {0p : {_:423}->Type} -> (0_ : x=y) -> (1_ : px) ->py
  Perform substitution in a term according to some equality.

Totality: total
Visibility: public export
sym : (0_ : x=y) ->y=x
  Symmetry of propositional equality.

Totality: total
Visibility: public export
trans : (0_ : a=b) -> (0_ : b=c) ->a=c
  Transitivity of propositional equality.

Totality: total
Visibility: public export
mkDPairInjectiveFst : (a**pa) = (b**qb) ->a=b
  Injectivity of MkDPair (first components)

Totality: total
Visibility: export
mkDPairInjectiveSnd : (a**pa) = (a**qa) ->pa=qa
  Injectivity of MkDPair (snd components)

Totality: total
Visibility: export
believe_me : a->b
  Subvert the type checker.  This function is abstract, so it will not reduce
in the type checker. Use it with care - it can result in segfaults or
worse!

Totality: total
Visibility: public export
assert_linear : (1_ : (a->b)) -> (1_ : a) ->b
  Assert to the usage checker that the given function uses its argument linearly.

Totality: total
Visibility: public export
idris_crash : String->a
Visibility: export
delay : a-> Lazy a
Totality: total
Visibility: public export
force : Lazy a->a
Totality: total
Visibility: public export
interfaceFromString : Type->Type
  Interface for types that can be constructed from string literals.

Parameters: ty
Constructor: 
MkFromString

Methods:
fromString : String->ty
  Conversion from String.

Implementation: 
FromStringString
fromString : FromStringty=>String->ty
  Conversion from String.

Totality: total
Visibility: public export
defaultString : FromStringString
Totality: total
Visibility: public export
interfaceFromChar : Type->Type
  Interface for types that can be constructed from char literals.

Parameters: ty
Constructor: 
MkFromChar

Methods:
fromChar : Char->ty
  Conversion from Char.

Implementation: 
FromCharChar
fromChar : FromCharty=>Char->ty
  Conversion from Char.

Totality: total
Visibility: public export
defaultChar : FromCharChar
Totality: total
Visibility: public export
interfaceFromDouble : Type->Type
  Interface for types that can be constructed from double literals.

Parameters: ty
Constructor: 
MkFromDouble

Methods:
fromDouble : Double->ty
  Conversion from Double.

Implementation: 
FromDoubleDouble
fromDouble : FromDoublety=>Double->ty
  Conversion from Double.

Totality: total
Visibility: public export
defaultDouble : FromDoubleDouble
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.Basics.html b/prelude/docs/Prelude.Basics.html index c233b33f25..05bc63cd20 100644 --- a/prelude/docs/Prelude.Basics.html +++ b/prelude/docs/Prelude.Basics.html @@ -61,4 +61,4 @@ -

Prelude.Basics(source)

Definitions

Not : Type->Type
  `Not x` is an alias for `x -> Void`, indicating that any term of type `x`
leads to a contradiction. It can be used in conjunction with `void` or
`absurd`.

Totality: total
Visibility: public export
the : (0a : Type) ->a->a
  Manually assign a type to an expression.
@ a the type to assign
@ x the element to get the type

Totality: total
Visibility: public export
id : a->a
  Identity function.

Totality: total
Visibility: public export
dup : a-> (a, a)
  Function that duplicates its input

Totality: total
Visibility: public export
const : a->b->a
  Constant function.  Ignores its second argument.

Totality: total
Visibility: public export
(.) : (b->c) -> (a->b) ->a->c
  Function composition.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 9
(.:) : (c->d) -> (a->b->c) ->a->b->d
  Composition of a two-argument function with a single-argument one.
`(.:)` is like `(.)` but the second argument and the result are two-argument functions.
This operator is also known as "blackbird operator".

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 9
on : (b->b->c) -> (a->b) ->a->a->c
  `on b u x y` runs the binary function b on the results of applying
unary function u to two arguments x and y. From the opposite perspective,
it transforms two inputs and combines the outputs.

```idris example
((+) `on` f) x y = f x + f y
```

Typical usage:

```idris example
sortBy (compare `on` fst).
```

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 0
flip : (a->b->c) ->b->a->c
  Takes in the first two arguments in reverse order.
@ f the function to flip

Totality: total
Visibility: public export
apply : (a->b) ->a->b
  Function application.

Totality: total
Visibility: public export
curry : ((a, b) ->c) ->a->b->c
Totality: total
Visibility: public export
uncurry : (a->b->c) -> (a, b) ->c
Totality: total
Visibility: public export
($) : {0b : a->Type} -> ((x : a) ->bx) -> (x : a) ->bx
  ($) is compiled specially to shortcut any tricky unification issues, but if
it did have a type this is what it would be, and it might be useful to
use directly sometimes (e.g. in higher order functions)

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 0
cong : (0f : (t->u)) -> (0_ : a=b) ->fa=fb
  Equality is a congruence.

Totality: total
Visibility: public export
cong2 : (0f : (t1->t2->u)) -> (0_ : a=b) -> (0_ : c=d) ->fac=fbd
  Two-holed congruence.

Totality: total
Visibility: export
depCong : {0p : a->Type} -> (0f : ((x : a) ->px)) ->x1=x2->fx1=fx2
  Dependent version of `cong`.

Totality: total
Visibility: public export
depCong2 : {0p : a->Type} -> {0q : (x : a) ->px->Type} -> (0f : ((x : a) -> (y : px) ->qxy)) ->x1=x2->y1=y2->fx1y1=fx2y2
  Dependent version of `cong2`.

Totality: total
Visibility: public export
irrelevantEq : (0_ : a=b) ->a=b
  Irrelevant equalities can always be made relevant

Totality: total
Visibility: export
dataBool : Type
  Boolean Data Type.

Totality: total
Visibility: public export
Constructors:
False : Bool
True : Bool

Hints:
EqBool
OrdBool
ShowBool
Uninhabited (True=False)
Uninhabited (False=True)
not : Bool->Bool
  Boolean NOT.

Totality: total
Visibility: public export
(&&) : Bool-> Lazy Bool->Bool
  Boolean AND only evaluates the second argument if the first is `True`.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 5
(||) : Bool-> Lazy Bool->Bool
  Boolean OR only evaluates the second argument if the first is `False`.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
ifThenElse : Bool-> Lazy a-> Lazy a->a
  Non-dependent if-then-else

Totality: total
Visibility: public export
intToBool : Int->Bool
Totality: total
Visibility: public export
dataList : Type->Type
  Generic lists.

Totality: total
Visibility: public export
Constructors:
Nil : Lista
  Empty list
(::) : a->Lista->Lista
  A non-empty list, consisting of a head element and the rest of the list.

Hints:
AlternativeList
ApplicativeList
Eqa=>Eq (Lista)
FoldableList
FunctorList
MonadList
Monoid (Lista)
Orda=>Ord (Lista)
Semigroup (Lista)
Showa=>Show (Lista)
TraversableList
dataSnocList : Type->Type
  Snoc lists.

Totality: total
Visibility: public export
Constructors:
Lin : SnocLista
  Empty snoc-list
(:<) : SnocLista->a->SnocLista
  A non-empty snoc-list, consisting of the rest of the snoc-list and the final element.

Hints:
Eqa=>Eq (SnocLista)
Orda=>Ord (SnocLista)
\ No newline at end of file +

Prelude.Basics(source)

Definitions

Not : Type->Type
  `Not x` is an alias for `x -> Void`, indicating that any term of type `x`
leads to a contradiction. It can be used in conjunction with `void` or
`absurd`.

Totality: total
Visibility: public export
the : (0a : Type) ->a->a
  Manually assign a type to an expression.
@ a the type to assign
@ x the element to get the type

Totality: total
Visibility: public export
id : a->a
  Identity function.

Totality: total
Visibility: public export
dup : a-> (a, a)
  Function that duplicates its input

Totality: total
Visibility: public export
const : a->b->a
  Constant function.  Ignores its second argument.

Totality: total
Visibility: public export
(.) : (b->c) -> (a->b) ->a->c
  Function composition.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 9
(.:) : (c->d) -> (a->b->c) ->a->b->d
  Composition of a two-argument function with a single-argument one.
`(.:)` is like `(.)` but the second argument and the result are two-argument functions.
This operator is also known as "blackbird operator".

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 9
on : (b->b->c) -> (a->b) ->a->a->c
  `on b u x y` runs the binary function b on the results of applying
unary function u to two arguments x and y. From the opposite perspective,
it transforms two inputs and combines the outputs.

```idris example
((+) `on` f) x y = f x + f y
```

Typical usage:

```idris example
sortBy (compare `on` fst).
```

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 0
flip : (a->b->c) ->b->a->c
  Takes in the first two arguments in reverse order.
@ f the function to flip

Totality: total
Visibility: public export
apply : (a->b) ->a->b
  Function application.

Totality: total
Visibility: public export
curry : ((a, b) ->c) ->a->b->c
Totality: total
Visibility: public export
uncurry : (a->b->c) -> (a, b) ->c
Totality: total
Visibility: public export
($) : {0b : a->Type} -> ((x : a) ->bx) -> (x : a) ->bx
  ($) is compiled specially to shortcut any tricky unification issues, but if
it did have a type this is what it would be, and it might be useful to
use directly sometimes (e.g. in higher order functions)

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 0
cong : (0f : (t->u)) -> (0_ : a=b) ->fa=fb
  Equality is a congruence.

Totality: total
Visibility: public export
cong2 : (0f : (t1->t2->u)) -> (0_ : a=b) -> (0_ : c=d) ->fac=fbd
  Two-holed congruence.

Totality: total
Visibility: export
depCong : {0p : a->Type} -> (0f : ((x : a) ->px)) ->x1=x2->fx1=fx2
  Dependent version of `cong`.

Totality: total
Visibility: public export
depCong2 : {0p : a->Type} -> {0q : (x : a) ->px->Type} -> (0f : ((x : a) -> (y : px) ->qxy)) ->x1=x2->y1=y2->fx1y1=fx2y2
  Dependent version of `cong2`.

Totality: total
Visibility: public export
irrelevantEq : (0_ : a=b) ->a=b
  Irrelevant equalities can always be made relevant

Totality: total
Visibility: export
dataBool : Type
  Boolean Data Type.

Totality: total
Visibility: public export
Constructors:
False : Bool
True : Bool

Hints:
EqBool
OrdBool
ShowBool
Uninhabited (True=False)
Uninhabited (False=True)
not : Bool->Bool
  Boolean NOT.

Totality: total
Visibility: public export
(&&) : Bool-> Lazy Bool->Bool
  Boolean AND only evaluates the second argument if the first is `True`.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 5
(||) : Bool-> Lazy Bool->Bool
  Boolean OR only evaluates the second argument if the first is `False`.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
ifThenElse : Bool-> Lazy a-> Lazy a->a
  Non-dependent if-then-else

Totality: total
Visibility: public export
intToBool : Int->Bool
Totality: total
Visibility: public export
dataList : Type->Type
  Generic lists.

Totality: total
Visibility: public export
Constructors:
Nil : Lista
  Empty list
(::) : a->Lista->Lista
  A non-empty list, consisting of a head element and the rest of the list.

Hints:
AlternativeList
ApplicativeList
Eqa=>Eq (Lista)
FoldableList
FunctorList
MonadList
Monoid (Lista)
Orda=>Ord (Lista)
Semigroup (Lista)
Showa=>Show (Lista)
TraversableList
dataSnocList : Type->Type
  Snoc lists.

Totality: total
Visibility: public export
Constructors:
Lin : SnocLista
  Empty snoc-list
(:<) : SnocLista->a->SnocLista
  A non-empty snoc-list, consisting of the rest of the snoc-list and the final element.

Hints:
Eqa=>Eq (SnocLista)
Orda=>Ord (SnocLista)
\ No newline at end of file diff --git a/prelude/docs/Prelude.Cast.html b/prelude/docs/Prelude.Cast.html index 9ef6a6a038..169556e713 100644 --- a/prelude/docs/Prelude.Cast.html +++ b/prelude/docs/Prelude.Cast.html @@ -61,4 +61,4 @@ -

Prelude.Cast(source)

Definitions

interfaceCast : Type->Type->Type
  Interface for transforming an instance of a data type to another type.

Parameters: from, to
Constructor: 
MkCast

Methods:
cast : from->to
  Perform a (potentially lossy!) cast operation.
@ orig The original type

Implementations:
Castaa
CastIntString
CastIntegerString
CastCharString
CastDoubleString
CastNatString
CastInt8String
CastInt16String
CastInt32String
CastInt64String
CastBits8String
CastBits16String
CastBits32String
CastBits64String
CastIntInteger
CastCharInteger
CastDoubleInteger
CastStringInteger
CastNatInteger
CastBits8Integer
CastBits16Integer
CastBits32Integer
CastBits64Integer
CastInt8Integer
CastInt16Integer
CastInt32Integer
CastInt64Integer
CastIntegerInt
CastCharInt
CastDoubleInt
CastStringInt
CastNatInt
CastBits8Int
CastBits16Int
CastBits32Int
CastBits64Int
CastInt8Int
CastInt16Int
CastInt32Int
CastInt64Int
CastIntChar
CastIntegerChar
CastNatChar
CastBits8Char
CastBits16Char
CastBits32Char
CastBits64Char
CastInt8Char
CastInt16Char
CastInt32Char
CastInt64Char
CastIntDouble
CastIntegerDouble
CastStringDouble
CastNatDouble
CastBits8Double
CastBits16Double
CastBits32Double
CastBits64Double
CastInt8Double
CastInt16Double
CastInt32Double
CastInt64Double
CastIntBits8
CastIntegerBits8
CastBits16Bits8
CastBits32Bits8
CastBits64Bits8
CastStringBits8
CastDoubleBits8
CastCharBits8
CastNatBits8
CastInt8Bits8
CastInt16Bits8
CastInt32Bits8
CastInt64Bits8
CastIntBits16
CastIntegerBits16
CastBits8Bits16
CastBits32Bits16
CastBits64Bits16
CastStringBits16
CastDoubleBits16
CastCharBits16
CastNatBits16
CastInt8Bits16
CastInt16Bits16
CastInt32Bits16
CastInt64Bits16
CastIntBits32
CastIntegerBits32
CastBits8Bits32
CastBits16Bits32
CastBits64Bits32
CastStringBits32
CastDoubleBits32
CastCharBits32
CastNatBits32
CastInt8Bits32
CastInt16Bits32
CastInt32Bits32
CastInt64Bits32
CastIntBits64
CastIntegerBits64
CastBits8Bits64
CastBits16Bits64
CastBits32Bits64
CastStringBits64
CastDoubleBits64
CastCharBits64
CastNatBits64
CastInt8Bits64
CastInt16Bits64
CastInt32Bits64
CastInt64Bits64
CastStringInt8
CastDoubleInt8
CastCharInt8
CastIntInt8
CastIntegerInt8
CastNatInt8
CastBits8Int8
CastBits16Int8
CastBits32Int8
CastBits64Int8
CastInt16Int8
CastInt32Int8
CastInt64Int8
CastStringInt16
CastDoubleInt16
CastCharInt16
CastIntInt16
CastIntegerInt16
CastNatInt16
CastBits8Int16
CastBits16Int16
CastBits32Int16
CastBits64Int16
CastInt8Int16
CastInt32Int16
CastInt64Int16
CastStringInt32
CastDoubleInt32
CastCharInt32
CastIntInt32
CastIntegerInt32
CastNatInt32
CastBits8Int32
CastBits16Int32
CastBits32Int32
CastBits64Int32
CastInt8Int32
CastInt16Int32
CastInt64Int32
CastStringInt64
CastDoubleInt64
CastCharInt64
CastIntInt64
CastIntegerInt64
CastNatInt64
CastBits8Int64
CastBits16Int64
CastBits32Int64
CastBits64Int64
CastInt8Int64
CastInt16Int64
CastInt32Int64
CastStringNat
CastDoubleNat
CastCharNat
CastIntNat
CastIntegerNat
CastBits8Nat
CastBits16Nat
CastBits32Nat
CastBits64Nat
CastInt8Nat
CastInt16Nat
CastInt32Nat
CastInt64Nat
cast : Castfromto=>from->to
  Perform a (potentially lossy!) cast operation.
@ orig The original type

Totality: total
Visibility: public export
\ No newline at end of file +

Prelude.Cast(source)

Definitions

interfaceCast : Type->Type->Type
  Interface for transforming an instance of a data type to another type.

Parameters: from, to
Constructor: 
MkCast

Methods:
cast : from->to
  Perform a (potentially lossy!) cast operation.
@ orig The original type

Implementations:
Castaa
CastIntString
CastIntegerString
CastCharString
CastDoubleString
CastNatString
CastInt8String
CastInt16String
CastInt32String
CastInt64String
CastBits8String
CastBits16String
CastBits32String
CastBits64String
CastIntInteger
CastCharInteger
CastDoubleInteger
CastStringInteger
CastNatInteger
CastBits8Integer
CastBits16Integer
CastBits32Integer
CastBits64Integer
CastInt8Integer
CastInt16Integer
CastInt32Integer
CastInt64Integer
CastIntegerInt
CastCharInt
CastDoubleInt
CastStringInt
CastNatInt
CastBits8Int
CastBits16Int
CastBits32Int
CastBits64Int
CastInt8Int
CastInt16Int
CastInt32Int
CastInt64Int
CastIntChar
CastIntegerChar
CastNatChar
CastBits8Char
CastBits16Char
CastBits32Char
CastBits64Char
CastInt8Char
CastInt16Char
CastInt32Char
CastInt64Char
CastIntDouble
CastIntegerDouble
CastStringDouble
CastNatDouble
CastBits8Double
CastBits16Double
CastBits32Double
CastBits64Double
CastInt8Double
CastInt16Double
CastInt32Double
CastInt64Double
CastIntBits8
CastIntegerBits8
CastBits16Bits8
CastBits32Bits8
CastBits64Bits8
CastStringBits8
CastDoubleBits8
CastCharBits8
CastNatBits8
CastInt8Bits8
CastInt16Bits8
CastInt32Bits8
CastInt64Bits8
CastIntBits16
CastIntegerBits16
CastBits8Bits16
CastBits32Bits16
CastBits64Bits16
CastStringBits16
CastDoubleBits16
CastCharBits16
CastNatBits16
CastInt8Bits16
CastInt16Bits16
CastInt32Bits16
CastInt64Bits16
CastIntBits32
CastIntegerBits32
CastBits8Bits32
CastBits16Bits32
CastBits64Bits32
CastStringBits32
CastDoubleBits32
CastCharBits32
CastNatBits32
CastInt8Bits32
CastInt16Bits32
CastInt32Bits32
CastInt64Bits32
CastIntBits64
CastIntegerBits64
CastBits8Bits64
CastBits16Bits64
CastBits32Bits64
CastStringBits64
CastDoubleBits64
CastCharBits64
CastNatBits64
CastInt8Bits64
CastInt16Bits64
CastInt32Bits64
CastInt64Bits64
CastStringInt8
CastDoubleInt8
CastCharInt8
CastIntInt8
CastIntegerInt8
CastNatInt8
CastBits8Int8
CastBits16Int8
CastBits32Int8
CastBits64Int8
CastInt16Int8
CastInt32Int8
CastInt64Int8
CastStringInt16
CastDoubleInt16
CastCharInt16
CastIntInt16
CastIntegerInt16
CastNatInt16
CastBits8Int16
CastBits16Int16
CastBits32Int16
CastBits64Int16
CastInt8Int16
CastInt32Int16
CastInt64Int16
CastStringInt32
CastDoubleInt32
CastCharInt32
CastIntInt32
CastIntegerInt32
CastNatInt32
CastBits8Int32
CastBits16Int32
CastBits32Int32
CastBits64Int32
CastInt8Int32
CastInt16Int32
CastInt64Int32
CastStringInt64
CastDoubleInt64
CastCharInt64
CastIntInt64
CastIntegerInt64
CastNatInt64
CastBits8Int64
CastBits16Int64
CastBits32Int64
CastBits64Int64
CastInt8Int64
CastInt16Int64
CastInt32Int64
CastStringNat
CastDoubleNat
CastCharNat
CastIntNat
CastIntegerNat
CastBits8Nat
CastBits16Nat
CastBits32Nat
CastBits64Nat
CastInt8Nat
CastInt16Nat
CastInt32Nat
CastInt64Nat
cast : Castfromto=>from->to
  Perform a (potentially lossy!) cast operation.
@ orig The original type

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.EqOrd.html b/prelude/docs/Prelude.EqOrd.html index 8edadf9009..2389de7993 100644 --- a/prelude/docs/Prelude.EqOrd.html +++ b/prelude/docs/Prelude.EqOrd.html @@ -61,4 +61,4 @@ -

Prelude.EqOrd(source)

Definitions

interfaceEq : Type->Type
  The Eq interface defines inequality and equality.
A minimal definition includes either `(==)` or `(/=)`.

Parameters: ty
Constructor: 
MkEq

Methods:
(==) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
(/=) : ty->ty->Bool
Fixity Declaration: infix operator, level 6

Implementations:
EqPrec
EqVoid
Eq ()
EqBool
EqInt
EqInteger
EqBits8
EqBits16
EqBits32
EqBits64
EqInt8
EqInt16
EqInt32
EqInt64
EqDouble
EqChar
EqString
Eqa=>Eqb=>Eq (a, b)
EqOrdering
EqNat
Eqa=>Eq (Maybea)
(Eqa, Eqb) =>Eq (Eitherab)
Eqa=>Eq (Lista)
Eqa=>Eq (SnocLista)
(==) : Eqty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(/=) : Eqty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
dataOrdering : Type
Totality: total
Visibility: public export
Constructors:
LT : Ordering
EQ : Ordering
GT : Ordering

Hints:
EqOrdering
MonoidOrdering
SemigroupOrdering
ShowOrdering
contra : Ordering->Ordering
Totality: total
Visibility: public export
interfaceOrd : Type->Type
  The Ord interface defines comparison operations on ordered data types.
A minimal definition includes either `compare` or `(<)`.

Parameters: ty
Constraints: Eq ty
Constructor: 
MkOrd

Methods:
compare : ty->ty->Ordering
(<) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
(>) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
(<=) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
(>=) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
max : ty->ty->ty
min : ty->ty->ty

Implementations:
OrdPrec
OrdVoid
Ord ()
OrdBool
OrdInt
OrdInteger
OrdBits8
OrdBits16
OrdBits32
OrdBits64
OrdInt8
OrdInt16
OrdInt32
OrdInt64
OrdDouble
OrdString
OrdChar
Orda=>Ordb=>Ord (a, b)
OrdNat
Orda=>Ord (Maybea)
(Orda, Ordb) =>Ord (Eitherab)
Orda=>Ord (Lista)
Orda=>Ord (SnocLista)
compare : Ordty=>ty->ty->Ordering
Totality: total
Visibility: public export
(<) : Ordty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(>) : Ordty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(<=) : Ordty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(>=) : Ordty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
max : Ordty=>ty->ty->ty
Totality: total
Visibility: public export
min : Ordty=>ty->ty->ty
Totality: total
Visibility: public export
comparing : Orda=> (b->a) ->b->b->Ordering
Totality: total
Visibility: export
compareInteger : Integer->Integer->Ordering
Totality: total
Visibility: public export
\ No newline at end of file +

Prelude.EqOrd(source)

Definitions

interfaceEq : Type->Type
  The Eq interface defines inequality and equality.
A minimal definition includes either `(==)` or `(/=)`.

Parameters: ty
Constructor: 
MkEq

Methods:
(==) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
(/=) : ty->ty->Bool
Fixity Declaration: infix operator, level 6

Implementations:
EqPrec
EqVoid
Eq ()
EqBool
EqInt
EqInteger
EqBits8
EqBits16
EqBits32
EqBits64
EqInt8
EqInt16
EqInt32
EqInt64
EqDouble
EqChar
EqString
Eqa=>Eqb=>Eq (a, b)
EqOrdering
EqNat
Eqa=>Eq (Maybea)
(Eqa, Eqb) =>Eq (Eitherab)
Eqa=>Eq (Lista)
Eqa=>Eq (SnocLista)
(==) : Eqty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(/=) : Eqty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
dataOrdering : Type
Totality: total
Visibility: public export
Constructors:
LT : Ordering
EQ : Ordering
GT : Ordering

Hints:
EqOrdering
MonoidOrdering
SemigroupOrdering
ShowOrdering
contra : Ordering->Ordering
Totality: total
Visibility: public export
interfaceOrd : Type->Type
  The Ord interface defines comparison operations on ordered data types.
A minimal definition includes either `compare` or `(<)`.

Parameters: ty
Constraints: Eq ty
Constructor: 
MkOrd

Methods:
compare : ty->ty->Ordering
(<) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
(>) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
(<=) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
(>=) : ty->ty->Bool
Fixity Declaration: infix operator, level 6
max : ty->ty->ty
min : ty->ty->ty

Implementations:
OrdPrec
OrdVoid
Ord ()
OrdBool
OrdInt
OrdInteger
OrdBits8
OrdBits16
OrdBits32
OrdBits64
OrdInt8
OrdInt16
OrdInt32
OrdInt64
OrdDouble
OrdString
OrdChar
Orda=>Ordb=>Ord (a, b)
OrdNat
Orda=>Ord (Maybea)
(Orda, Ordb) =>Ord (Eitherab)
Orda=>Ord (Lista)
Orda=>Ord (SnocLista)
compare : Ordty=>ty->ty->Ordering
Totality: total
Visibility: public export
(<) : Ordty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(>) : Ordty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(<=) : Ordty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
(>=) : Ordty=>ty->ty->Bool
Totality: total
Visibility: public export
Fixity Declaration: infix operator, level 6
max : Ordty=>ty->ty->ty
Totality: total
Visibility: public export
min : Ordty=>ty->ty->ty
Totality: total
Visibility: public export
comparing : Orda=> (b->a) ->b->b->Ordering
Totality: total
Visibility: export
compareInteger : Integer->Integer->Ordering
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.IO.html b/prelude/docs/Prelude.IO.html index 6554c1f708..9059dcea0d 100644 --- a/prelude/docs/Prelude.IO.html +++ b/prelude/docs/Prelude.IO.html @@ -61,4 +61,4 @@ -

Prelude.IO(source)

Definitions

interfaceHasIO : (Type->Type) ->Type
Parameters: io
Constraints: Monad io
Constructor: 
MkHasIO

Methods:
liftIO : IOa->ioa

Implementation: 
HasLinearIOio=>HasIOio
liftIO : HasIOio=>IOa->ioa
Totality: total
Visibility: public export
interfaceHasLinearIO : (Type->Type) ->Type
Parameters: io
Constraints: Monad io
Constructor: 
MkHasLinearIO

Methods:
liftIO1 : (1_ : IOa) ->ioa

Implementation: 
HasLinearIOIO
liftIO1 : HasLinearIOio=> (1_ : IOa) ->ioa
Totality: total
Visibility: public export
primIO : HasIOio=> ((1_ : %World) ->IOResa) ->ioa
Totality: total
Visibility: export
primIO1 : HasLinearIOio=> (1_ : ((1_ : %World) ->IOResa)) ->ioa
Totality: total
Visibility: export
onCollectAny : HasIOio=>AnyPtr-> (AnyPtr->IO ()) ->ioGCAnyPtr
Totality: total
Visibility: export
onCollect : HasIOio=>Ptrt-> (Ptrt->IO ()) ->io (GCPtrt)
Totality: total
Visibility: export
prim__getString : PtrString->String
putStr : HasIOio=>String->io ()
  Output a string to stdout without a trailing newline.

Totality: total
Visibility: export
putStrLn : HasIOio=>String->io ()
  Output a string to stdout with a trailing newline.

Totality: total
Visibility: export
getLine : HasIOio=>ioString
  Read one line of input from stdin, without the trailing newline.

Totality: total
Visibility: export
putChar : HasIOio=>Char->io ()
  Write one single-byte character to stdout.

Totality: total
Visibility: export
putCharLn : HasIOio=>Char->io ()
  Write one multi-byte character to stdout, with a trailing newline.

Totality: total
Visibility: export
getChar : HasIOio=>ioChar
  Read one single-byte character from stdin.

Totality: total
Visibility: export
prim__fork : (1_ : PrimIO ()) ->PrimIOThreadID
fork : (1_ : IO ()) ->IOThreadID
Totality: total
Visibility: export
prim__threadWait : (1_ : ThreadID) ->PrimIO ()
threadWait : (1_ : ThreadID) ->IO ()
Totality: total
Visibility: export
print : HasIOio=>Showa=>a->io ()
  Output something showable to stdout, without a trailing newline.

Totality: total
Visibility: export
printLn : HasIOio=>Showa=>a->io ()
  Output something showable to stdout, with a trailing newline.

Totality: total
Visibility: export
\ No newline at end of file +

Prelude.IO(source)

Definitions

interfaceHasIO : (Type->Type) ->Type
Parameters: io
Constraints: Monad io
Constructor: 
MkHasIO

Methods:
liftIO : IOa->ioa

Implementation: 
HasLinearIOio=>HasIOio
liftIO : HasIOio=>IOa->ioa
Totality: total
Visibility: public export
interfaceHasLinearIO : (Type->Type) ->Type
Parameters: io
Constraints: Monad io
Constructor: 
MkHasLinearIO

Methods:
liftIO1 : (1_ : IOa) ->ioa

Implementation: 
HasLinearIOIO
liftIO1 : HasLinearIOio=> (1_ : IOa) ->ioa
Totality: total
Visibility: public export
primIO : HasIOio=> ((1_ : %World) ->IOResa) ->ioa
Totality: total
Visibility: export
primIO1 : HasLinearIOio=> (1_ : ((1_ : %World) ->IOResa)) ->ioa
Totality: total
Visibility: export
onCollectAny : HasIOio=>AnyPtr-> (AnyPtr->IO ()) ->ioGCAnyPtr
Totality: total
Visibility: export
onCollect : HasIOio=>Ptrt-> (Ptrt->IO ()) ->io (GCPtrt)
Totality: total
Visibility: export
prim__getString : PtrString->String
putStr : HasIOio=>String->io ()
  Output a string to stdout without a trailing newline.

Totality: total
Visibility: export
putStrLn : HasIOio=>String->io ()
  Output a string to stdout with a trailing newline.

Totality: total
Visibility: export
getLine : HasIOio=>ioString
  Read one line of input from stdin, without the trailing newline.

Totality: total
Visibility: export
putChar : HasIOio=>Char->io ()
  Write one single-byte character to stdout.

Totality: total
Visibility: export
putCharLn : HasIOio=>Char->io ()
  Write one multi-byte character to stdout, with a trailing newline.

Totality: total
Visibility: export
getChar : HasIOio=>ioChar
  Read one single-byte character from stdin.

Totality: total
Visibility: export
prim__fork : (1_ : PrimIO ()) ->PrimIOThreadID
fork : (1_ : IO ()) ->IOThreadID
Totality: total
Visibility: export
prim__threadWait : (1_ : ThreadID) ->PrimIO ()
threadWait : (1_ : ThreadID) ->IO ()
Totality: total
Visibility: export
print : HasIOio=>Showa=>a->io ()
  Output something showable to stdout, without a trailing newline.

Totality: total
Visibility: export
printLn : HasIOio=>Showa=>a->io ()
  Output something showable to stdout, with a trailing newline.

Totality: total
Visibility: export
\ No newline at end of file diff --git a/prelude/docs/Prelude.Interfaces.html b/prelude/docs/Prelude.Interfaces.html index 76b82a105c..1802f8aaa7 100644 --- a/prelude/docs/Prelude.Interfaces.html +++ b/prelude/docs/Prelude.Interfaces.html @@ -61,4 +61,4 @@ -

Prelude.Interfaces(source)

Definitions

interfaceSemigroup : Type->Type
  Sets equipped with a single binary operation that is associative.  Must
satisfy the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c

Parameters: ty
Constructor: 
MkSemigroup

Methods:
(<+>) : ty->ty->ty
Fixity Declaration: infixl operator, level 8

Implementations:
Semigroup ()
Semigroupa=>Semigroupb=>Semigroup (a, b)
SemigroupOrdering
Semigroupb=>Semigroup (a->b)
Semigroup (Maybea)
Semigroup (Lista)
SemigroupString
(<+>) : Semigroupty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
interfaceMonoid : Type->Type
  Sets equipped with a single binary operation that is associative, along with
a neutral element for that binary operation. Must satisfy the following
laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a

Parameters: ty
Constraints: Semigroup ty
Constructor: 
MkMonoid

Methods:
neutral : ty

Implementations:
Monoid ()
Monoida=>Monoidb=>Monoid (a, b)
MonoidOrdering
Monoidb=>Monoid (a->b)
Monoid (Maybea)
Monoid (Lista)
MonoidString
neutral : Monoidty=>ty
Totality: total
Visibility: public export
interfaceFunctor : (Type->Type) ->Type
  Functors allow a uniform action over a parameterised type.
@ f a parameterised type

Parameters: f
Constructor: 
MkFunctor

Methods:
map : (a->b) ->fa->fb
  Apply a function across everything of type 'a' in a parameterised type
@ f the parameterised type
@ func the function to apply

Implementations:
FunctorIO
Functor (Paira)
FunctorMaybe
Functor (Eithere)
FunctorList
FunctorStream
map : Functorf=> (a->b) ->fa->fb
  Apply a function across everything of type 'a' in a parameterised type
@ f the parameterised type
@ func the function to apply

Totality: total
Visibility: public export
(<$>) : Functorf=> (a->b) ->fa->fb
  An infix alias for `map`, applying a function across everything of type 'a'
in a parameterised type.
@ f the parameterised type
@ func the function to apply

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
(<&>) : Functorf=>fa-> (a->b) ->fb
  Flipped version of `<$>`, an infix alias for `map`, applying a function across
everything of type 'a' in a parameterised type.
@ f the parameterised type
@ func the function to apply

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(<$) : Functorf=>b->fa->fb
  Run something for effects, replacing the return value with a given parameter.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
($>) : Functorf=>fa->b->fb
  Flipped version of `<$`.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
ignore : Functorf=>fa->f ()
  Run something for effects, throwing away the return value.

Totality: total
Visibility: public export
interfaceBifunctor : (Type->Type->Type) ->Type
  Bifunctors
@f The action of the Bifunctor on pairs of objects
A minimal definition includes either `bimap` or both `mapFst` and `mapSnd`.

Parameters: f
Constructor: 
MkBifunctor

Methods:
bimap : (a->c) -> (b->d) ->fab->fcd
  The action of the Bifunctor on pairs of morphisms

````idris example
bimap (\x => x + 1) reverse (1, "hello") == (2, "olleh")
````
mapFst : (a->c) ->fab->fcb
  The action of the Bifunctor on morphisms pertaining to the first object

````idris example
mapFst (\x => x + 1) (1, "hello") == (2, "hello")
````
mapSnd : (b->d) ->fab->fad
  The action of the Bifunctor on morphisms pertaining to the second object

````idris example
mapSnd reverse (1, "hello") == (1, "olleh")
````

Implementations:
BifunctorPair
BifunctorEither
bimap : Bifunctorf=> (a->c) -> (b->d) ->fab->fcd
  The action of the Bifunctor on pairs of morphisms

````idris example
bimap (\x => x + 1) reverse (1, "hello") == (2, "olleh")
````

Totality: total
Visibility: public export
mapFst : Bifunctorf=> (a->c) ->fab->fcb
  The action of the Bifunctor on morphisms pertaining to the first object

````idris example
mapFst (\x => x + 1) (1, "hello") == (2, "hello")
````

Totality: total
Visibility: public export
mapSnd : Bifunctorf=> (b->d) ->fab->fad
  The action of the Bifunctor on morphisms pertaining to the second object

````idris example
mapSnd reverse (1, "hello") == (1, "olleh")
````

Totality: total
Visibility: public export
mapHom : Bifunctorf=> (a->b) ->faa->fbb
Totality: total
Visibility: public export
interfaceApplicative : (Type->Type) ->Type
Parameters: f
Constraints: Functor f
Constructor: 
MkApplicative

Methods:
pure : a->fa
(<*>) : f (a->b) ->fa->fb
Fixity Declaration: infixl operator, level 3

Implementations:
ApplicativeIO
Monoida=>Applicative (Paira)
ApplicativeMaybe
Applicative (Eithere)
ApplicativeList
pure : Applicativef=>a->fa
Totality: total
Visibility: public export
(<*>) : Applicativef=>f (a->b) ->fa->fb
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
(<*) : Applicativef=>fa->fb->fa
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
(*>) : Applicativef=>fa->fb->fb
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
interfaceAlternative : (Type->Type) ->Type
  An alternative functor has a notion of disjunction.
@f is the underlying applicative functor
We expect (f a, empty, (<|>)) to be a type family of monoids.

Parameters: f
Constraints: Applicative f
Constructor: 
MkAlternative

Methods:
empty : fa
(<|>) : fa-> Lazy (fa) ->fa
Fixity Declaration: infixr operator, level 2

Implementations:
AlternativeMaybe
AlternativeList
empty : Alternativef=>fa
Totality: total
Visibility: public export
(<|>) : Alternativef=>fa-> Lazy (fa) ->fa
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 2
interfaceMonad : (Type->Type) ->Type
  Monad
@m The underlying functor
A minimal definition includes either `(>>=)` or `join`.

Parameters: m
Constraints: Applicative m
Constructor: 
MkMonad

Methods:
(>>=) : ma-> (a->mb) ->mb
  Also called `bind`.

Fixity Declaration: infixl operator, level 1
join : m (ma) ->ma
  Also called `flatten` or mu.

Implementations:
MonadIO
Monoida=>Monad (Paira)
MonadMaybe
Monad (Eithere)
MonadList
(>>=) : Monadm=>ma-> (a->mb) ->mb
  Also called `bind`.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
join : Monadm=>m (ma) ->ma
  Also called `flatten` or mu.

Totality: total
Visibility: public export
(=<<) : Monadm=> (a->mb) ->ma->mb
  Right-to-left monadic bind, flipped version of `>>=`.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(>>) : Monadm=>m () -> Lazy (mb) ->mb
  Sequencing of effectful composition

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(>=>) : Monadm=> (a->mb) -> (b->mc) ->a->mc
  Left-to-right Kleisli composition of monads.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(<=<) : Monadm=> (b->mc) -> (a->mb) ->a->mc
  Right-to-left Kleisli composition of monads, flipped version of `>=>`.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
guard : Alternativef=>Bool->f ()
  `guard a` is `pure ()` if `a` is `True` and `empty` if `a` is `False`.

Totality: total
Visibility: public export
when : Applicativef=>Bool-> Lazy (f ()) ->f ()
  Conditionally execute an applicative expression when the boolean is true.

Totality: total
Visibility: public export
unless : Applicativef=>Bool-> Lazy (f ()) ->f ()
  Execute an applicative expression unless the boolean is true.

Totality: total
Visibility: public export
interfaceFoldable : (Type->Type) ->Type
  The `Foldable` interface describes how you can iterate over the elements in
a parameterised type and combine the elements together, using a provided
function, into a single result.
@ t The type of the 'Foldable' parameterised type.
A minimal definition includes `foldr`

Parameters: t
Constructor: 
MkFoldable

Methods:
foldr : (elem->acc->acc) ->acc->telem->acc
  Successively combine the elements in a parameterised type using the
provided function, starting with the element that is in the final position
i.e. the right-most position.
@ func The function used to 'fold' an element into the accumulated result
@ init The starting value the results are being combined into
@ input The parameterised type
foldl : (acc->elem->acc) ->acc->telem->acc
  The same as `foldr` but begins the folding from the element at the initial
position in the data structure i.e. the left-most position.
@ func The function used to 'fold' an element into the accumulated result
@ init The starting value the results are being combined into
@ input The parameterised type
null : telem->Bool
  Test whether the structure is empty.
@ acc The accumulator value which is specified to be lazy
foldlM : Monadm=> (acc->elem->macc) ->acc->telem->macc
  Similar to `foldl`, but uses a function wrapping its result in a `Monad`.
Consequently, the final value is wrapped in the same `Monad`.
toList : telem->Listelem
  Produce a list of the elements contained in the parametrised type.
foldMap : Monoidm=> (a->m) ->ta->m
  Maps each element to a value and combine them.
For performance reasons, this should wherever
be implemented with tail recursion.
@ f The function to apply to each element.

Implementations:
Foldable (Paira)
FoldableMaybe
Foldable (Eithere)
FoldableList
foldr : Foldablet=> (elem->acc->acc) ->acc->telem->acc
  Successively combine the elements in a parameterised type using the
provided function, starting with the element that is in the final position
i.e. the right-most position.
@ func The function used to 'fold' an element into the accumulated result
@ init The starting value the results are being combined into
@ input The parameterised type

Totality: total
Visibility: public export
foldl : Foldablet=> (acc->elem->acc) ->acc->telem->acc
  The same as `foldr` but begins the folding from the element at the initial
position in the data structure i.e. the left-most position.
@ func The function used to 'fold' an element into the accumulated result
@ init The starting value the results are being combined into
@ input The parameterised type

Totality: total
Visibility: public export
null : Foldablet=>telem->Bool
  Test whether the structure is empty.
@ acc The accumulator value which is specified to be lazy

Totality: total
Visibility: public export
foldlM : Foldablet=>Monadm=> (acc->elem->macc) ->acc->telem->macc
  Similar to `foldl`, but uses a function wrapping its result in a `Monad`.
Consequently, the final value is wrapped in the same `Monad`.

Totality: total
Visibility: public export
toList : Foldablet=>telem->Listelem
  Produce a list of the elements contained in the parametrised type.

Totality: total
Visibility: public export
foldMap : Foldablet=>Monoidm=> (a->m) ->ta->m
  Maps each element to a value and combine them.
For performance reasons, this should wherever
be implemented with tail recursion.
@ f The function to apply to each element.

Totality: total
Visibility: public export
concat : Monoida=>Foldablet=>ta->a
  Combine each element of a structure into a monoid.

Totality: total
Visibility: public export
concatMap : Monoidm=>Foldablet=> (a->m) ->ta->m
  Combine into a monoid the collective results of applying a function to each
element of a structure.

Totality: total
Visibility: public export
and : Foldablet=>t (Lazy Bool) ->Bool
  The conjunction of all elements of a structure containing lazy boolean
values. `and` short-circuits from left to right, evaluating until either an
element is `False` or no elements remain.

Totality: total
Visibility: public export
or : Foldablet=>t (Lazy Bool) ->Bool
  The disjunction of all elements of a structure containing lazy boolean
values. `or` short-circuits from left to right, evaluating either until an
element is `True` or no elements remain.

Totality: total
Visibility: public export
any : Foldablet=> (a->Bool) ->ta->Bool
  The disjunction of the collective results of applying a predicate to all
elements of a structure. `any` short-circuits from left to right.

Totality: total
Visibility: public export
all : Foldablet=> (a->Bool) ->ta->Bool
  The conjunction of the collective results of applying a predicate to all
elements of a structure. `all` short-circuits from left to right.

Totality: total
Visibility: public export
sum : Numa=>Foldablet=>ta->a
  Add together all the elements of a structure.

Totality: total
Visibility: public export
sum' : Numa=>Foldablet=>ta->a
  Add together all the elements of a structure.
Same as `sum` but tail recursive.

Totality: total
Visibility: export
product : Numa=>Foldablet=>ta->a
  Multiply together all elements of a structure.

Totality: total
Visibility: public export
product' : Numa=>Foldablet=>ta->a
  Multiply together all elements of a structure.
Same as `product` but tail recursive.

Totality: total
Visibility: export
traverse_ : Applicativef=>Foldablet=> (a->fb) ->ta->f ()
  Map each element of a structure to a computation, evaluate those
computations and discard the results.

Totality: total
Visibility: public export
sequence_ : Applicativef=>Foldablet=>t (fa) ->f ()
  Evaluate each computation in a structure and discard the results.

Totality: total
Visibility: public export
for_ : Applicativef=>Foldablet=>ta-> (a->fb) ->f ()
  Like `traverse_` but with the arguments flipped.

Totality: total
Visibility: public export
choice : Alternativef=>Foldablet=>t (Lazy (fa)) ->fa
  Fold using Alternative.

If you have a left-biased alternative operator `<|>`, then `choice` performs
left-biased choice from a list of alternatives, which means that it
evaluates to the left-most non-`empty` alternative.

If the list is empty, or all values in it are `empty`, then it evaluates to
`empty`.

Example:

```
-- given a parser expression like:
expr = literal <|> keyword <|> funcall

-- choice lets you write this as:
expr = choice [literal, keyword, funcall]
```

Note: In Haskell, `choice` is called `asum`.

Totality: total
Visibility: public export
choiceMap : Alternativef=>Foldablet=> (a->fb) ->ta->fb
  A fused version of `choice` and `map`.

Totality: total
Visibility: public export
interfaceBifoldable : (Type->Type->Type) ->Type
  `Bifoldable` identifies foldable structures with two different varieties
of elements (as opposed to `Foldable`, which has one variety of element).
Common examples are `Either` and `Pair`.
A minimal definition includes `bifoldr`

Parameters: p
Constructor: 
MkBifoldable

Methods:
bifoldr : (a->acc->acc) -> (b->acc->acc) ->acc->pab->acc
bifoldl : (acc->a->acc) -> (acc->b->acc) ->acc->pab->acc
binull : pab->Bool

Implementations:
BifoldablePair
BifoldableEither
bifoldr : Bifoldablep=> (a->acc->acc) -> (b->acc->acc) ->acc->pab->acc
Totality: total
Visibility: public export
bifoldl : Bifoldablep=> (acc->a->acc) -> (acc->b->acc) ->acc->pab->acc
Totality: total
Visibility: public export
binull : Bifoldablep=>pab->Bool
Totality: total
Visibility: public export
bifoldMap : Monoidacc=>Bifoldablep=> (a->acc) -> (b->acc) ->pab->acc
  Analogous to `foldMap` but for `Bifoldable` structures

Totality: total
Visibility: public export
bifoldMapFst : Monoidacc=>Bifoldablep=> (a->acc) ->pab->acc
  Like Bifunctor's `mapFst` but for `Bifoldable` structures

Totality: total
Visibility: public export
interfaceTraversable : (Type->Type) ->Type
Parameters: t
Constraints: Functor t, Foldable t
Constructor: 
MkTraversable

Methods:
traverse : Applicativef=> (a->fb) ->ta->f (tb)
  Map each element of a structure to a computation, evaluate those
computations and combine the results.

Implementations:
Traversable (Paira)
TraversableMaybe
Traversable (Eithere)
TraversableList
traverse : Traversablet=>Applicativef=> (a->fb) ->ta->f (tb)
  Map each element of a structure to a computation, evaluate those
computations and combine the results.

Totality: total
Visibility: public export
sequence : Applicativef=>Traversablet=>t (fa) ->f (ta)
  Evaluate each computation in a structure and collect the results.

Totality: total
Visibility: public export
for : Applicativef=>Traversablet=>ta-> (a->fb) ->f (tb)
  Like `traverse` but with the arguments flipped.

Totality: total
Visibility: public export
interfaceBitraversable : (Type->Type->Type) ->Type
Parameters: p
Constraints: Bifunctor p, Bifoldable p
Constructor: 
MkBitraversable

Methods:
bitraverse : Applicativef=> (a->fc) -> (b->fd) ->pab->f (pcd)
  Map each element of a structure to a computation, evaluate those
computations and combine the results.

Implementations:
BitraversablePair
BitraversableEither
bitraverse : Bitraversablep=>Applicativef=> (a->fc) -> (b->fd) ->pab->f (pcd)
  Map each element of a structure to a computation, evaluate those
computations and combine the results.

Totality: total
Visibility: public export
bisequence : Applicativef=>Bitraversablep=>p (fa) (fb) ->f (pab)
  Evaluate each computation in a structure and collect the results.

Totality: total
Visibility: public export
bifor : Applicativef=>Bitraversablep=>pab-> (a->fc) -> (b->fd) ->f (pcd)
  Like `bitraverse` but with the arguments flipped.

Totality: total
Visibility: public export
\ No newline at end of file +

Prelude.Interfaces(source)

Definitions

interfaceSemigroup : Type->Type
  Sets equipped with a single binary operation that is associative.  Must
satisfy the following laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c

Parameters: ty
Constructor: 
MkSemigroup

Methods:
(<+>) : ty->ty->ty
Fixity Declaration: infixl operator, level 8

Implementations:
Semigroup ()
Semigroupa=>Semigroupb=>Semigroup (a, b)
SemigroupOrdering
Semigroupb=>Semigroup (a->b)
Semigroup (Maybea)
Semigroup (Lista)
SemigroupString
(<+>) : Semigroupty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
interfaceMonoid : Type->Type
  Sets equipped with a single binary operation that is associative, along with
a neutral element for that binary operation. Must satisfy the following
laws:

+ Associativity of `<+>`:
forall a b c, a <+> (b <+> c) == (a <+> b) <+> c
+ Neutral for `<+>`:
forall a, a <+> neutral == a
forall a, neutral <+> a == a

Parameters: ty
Constraints: Semigroup ty
Constructor: 
MkMonoid

Methods:
neutral : ty

Implementations:
Monoid ()
Monoida=>Monoidb=>Monoid (a, b)
MonoidOrdering
Monoidb=>Monoid (a->b)
Monoid (Maybea)
Monoid (Lista)
MonoidString
neutral : Monoidty=>ty
Totality: total
Visibility: public export
interfaceFunctor : (Type->Type) ->Type
  Functors allow a uniform action over a parameterised type.
@ f a parameterised type

Parameters: f
Constructor: 
MkFunctor

Methods:
map : (a->b) ->fa->fb
  Apply a function across everything of type 'a' in a parameterised type
@ f the parameterised type
@ func the function to apply

Implementations:
FunctorIO
Functor (Paira)
FunctorMaybe
Functor (Eithere)
FunctorList
FunctorStream
map : Functorf=> (a->b) ->fa->fb
  Apply a function across everything of type 'a' in a parameterised type
@ f the parameterised type
@ func the function to apply

Totality: total
Visibility: public export
(<$>) : Functorf=> (a->b) ->fa->fb
  An infix alias for `map`, applying a function across everything of type 'a'
in a parameterised type.
@ f the parameterised type
@ func the function to apply

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
(<&>) : Functorf=>fa-> (a->b) ->fb
  Flipped version of `<$>`, an infix alias for `map`, applying a function across
everything of type 'a' in a parameterised type.
@ f the parameterised type
@ func the function to apply

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(<$) : Functorf=>b->fa->fb
  Run something for effects, replacing the return value with a given parameter.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
($>) : Functorf=>fa->b->fb
  Flipped version of `<$`.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 4
ignore : Functorf=>fa->f ()
  Run something for effects, throwing away the return value.

Totality: total
Visibility: public export
interfaceBifunctor : (Type->Type->Type) ->Type
  Bifunctors
@f The action of the Bifunctor on pairs of objects
A minimal definition includes either `bimap` or both `mapFst` and `mapSnd`.

Parameters: f
Constructor: 
MkBifunctor

Methods:
bimap : (a->c) -> (b->d) ->fab->fcd
  The action of the Bifunctor on pairs of morphisms

````idris example
bimap (\x => x + 1) reverse (1, "hello") == (2, "olleh")
````
mapFst : (a->c) ->fab->fcb
  The action of the Bifunctor on morphisms pertaining to the first object

````idris example
mapFst (\x => x + 1) (1, "hello") == (2, "hello")
````
mapSnd : (b->d) ->fab->fad
  The action of the Bifunctor on morphisms pertaining to the second object

````idris example
mapSnd reverse (1, "hello") == (1, "olleh")
````

Implementations:
BifunctorPair
BifunctorEither
bimap : Bifunctorf=> (a->c) -> (b->d) ->fab->fcd
  The action of the Bifunctor on pairs of morphisms

````idris example
bimap (\x => x + 1) reverse (1, "hello") == (2, "olleh")
````

Totality: total
Visibility: public export
mapFst : Bifunctorf=> (a->c) ->fab->fcb
  The action of the Bifunctor on morphisms pertaining to the first object

````idris example
mapFst (\x => x + 1) (1, "hello") == (2, "hello")
````

Totality: total
Visibility: public export
mapSnd : Bifunctorf=> (b->d) ->fab->fad
  The action of the Bifunctor on morphisms pertaining to the second object

````idris example
mapSnd reverse (1, "hello") == (1, "olleh")
````

Totality: total
Visibility: public export
mapHom : Bifunctorf=> (a->b) ->faa->fbb
Totality: total
Visibility: public export
interfaceApplicative : (Type->Type) ->Type
Parameters: f
Constraints: Functor f
Constructor: 
MkApplicative

Methods:
pure : a->fa
(<*>) : f (a->b) ->fa->fb
Fixity Declaration: infixl operator, level 3

Implementations:
ApplicativeIO
Monoida=>Applicative (Paira)
ApplicativeMaybe
Applicative (Eithere)
ApplicativeList
pure : Applicativef=>a->fa
Totality: total
Visibility: public export
(<*>) : Applicativef=>f (a->b) ->fa->fb
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
(<*) : Applicativef=>fa->fb->fa
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
(*>) : Applicativef=>fa->fb->fb
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 3
interfaceAlternative : (Type->Type) ->Type
  An alternative functor has a notion of disjunction.
@f is the underlying applicative functor
We expect (f a, empty, (<|>)) to be a type family of monoids.

Parameters: f
Constraints: Applicative f
Constructor: 
MkAlternative

Methods:
empty : fa
(<|>) : fa-> Lazy (fa) ->fa
Fixity Declaration: infixr operator, level 2

Implementations:
AlternativeMaybe
AlternativeList
empty : Alternativef=>fa
Totality: total
Visibility: public export
(<|>) : Alternativef=>fa-> Lazy (fa) ->fa
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 2
interfaceMonad : (Type->Type) ->Type
  Monad
@m The underlying functor
A minimal definition includes either `(>>=)` or `join`.

Parameters: m
Constraints: Applicative m
Constructor: 
MkMonad

Methods:
(>>=) : ma-> (a->mb) ->mb
  Also called `bind`.

Fixity Declaration: infixl operator, level 1
join : m (ma) ->ma
  Also called `flatten` or mu.

Implementations:
MonadIO
Monoida=>Monad (Paira)
MonadMaybe
Monad (Eithere)
MonadList
(>>=) : Monadm=>ma-> (a->mb) ->mb
  Also called `bind`.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
join : Monadm=>m (ma) ->ma
  Also called `flatten` or mu.

Totality: total
Visibility: public export
(=<<) : Monadm=> (a->mb) ->ma->mb
  Right-to-left monadic bind, flipped version of `>>=`.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(>>) : Monadm=>m () -> Lazy (mb) ->mb
  Sequencing of effectful composition

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(>=>) : Monadm=> (a->mb) -> (b->mc) ->a->mc
  Left-to-right Kleisli composition of monads.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
(<=<) : Monadm=> (b->mc) -> (a->mb) ->a->mc
  Right-to-left Kleisli composition of monads, flipped version of `>=>`.

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 1
guard : Alternativef=>Bool->f ()
  `guard a` is `pure ()` if `a` is `True` and `empty` if `a` is `False`.

Totality: total
Visibility: public export
when : Applicativef=>Bool-> Lazy (f ()) ->f ()
  Conditionally execute an applicative expression when the boolean is true.

Totality: total
Visibility: public export
unless : Applicativef=>Bool-> Lazy (f ()) ->f ()
  Execute an applicative expression unless the boolean is true.

Totality: total
Visibility: public export
interfaceFoldable : (Type->Type) ->Type
  The `Foldable` interface describes how you can iterate over the elements in
a parameterised type and combine the elements together, using a provided
function, into a single result.
@ t The type of the 'Foldable' parameterised type.
A minimal definition includes `foldr`

Parameters: t
Constructor: 
MkFoldable

Methods:
foldr : (elem->acc->acc) ->acc->telem->acc
  Successively combine the elements in a parameterised type using the
provided function, starting with the element that is in the final position
i.e. the right-most position.
@ func The function used to 'fold' an element into the accumulated result
@ init The starting value the results are being combined into
@ input The parameterised type
foldl : (acc->elem->acc) ->acc->telem->acc
  The same as `foldr` but begins the folding from the element at the initial
position in the data structure i.e. the left-most position.
@ func The function used to 'fold' an element into the accumulated result
@ init The starting value the results are being combined into
@ input The parameterised type
null : telem->Bool
  Test whether the structure is empty.
@ acc The accumulator value which is specified to be lazy
foldlM : Monadm=> (acc->elem->macc) ->acc->telem->macc
  Similar to `foldl`, but uses a function wrapping its result in a `Monad`.
Consequently, the final value is wrapped in the same `Monad`.
toList : telem->Listelem
  Produce a list of the elements contained in the parametrised type.
foldMap : Monoidm=> (a->m) ->ta->m
  Maps each element to a value and combine them.
For performance reasons, this should wherever
be implemented with tail recursion.
@ f The function to apply to each element.

Implementations:
Foldable (Paira)
FoldableMaybe
Foldable (Eithere)
FoldableList
foldr : Foldablet=> (elem->acc->acc) ->acc->telem->acc
  Successively combine the elements in a parameterised type using the
provided function, starting with the element that is in the final position
i.e. the right-most position.
@ func The function used to 'fold' an element into the accumulated result
@ init The starting value the results are being combined into
@ input The parameterised type

Totality: total
Visibility: public export
foldl : Foldablet=> (acc->elem->acc) ->acc->telem->acc
  The same as `foldr` but begins the folding from the element at the initial
position in the data structure i.e. the left-most position.
@ func The function used to 'fold' an element into the accumulated result
@ init The starting value the results are being combined into
@ input The parameterised type

Totality: total
Visibility: public export
null : Foldablet=>telem->Bool
  Test whether the structure is empty.
@ acc The accumulator value which is specified to be lazy

Totality: total
Visibility: public export
foldlM : Foldablet=>Monadm=> (acc->elem->macc) ->acc->telem->macc
  Similar to `foldl`, but uses a function wrapping its result in a `Monad`.
Consequently, the final value is wrapped in the same `Monad`.

Totality: total
Visibility: public export
toList : Foldablet=>telem->Listelem
  Produce a list of the elements contained in the parametrised type.

Totality: total
Visibility: public export
foldMap : Foldablet=>Monoidm=> (a->m) ->ta->m
  Maps each element to a value and combine them.
For performance reasons, this should wherever
be implemented with tail recursion.
@ f The function to apply to each element.

Totality: total
Visibility: public export
concat : Monoida=>Foldablet=>ta->a
  Combine each element of a structure into a monoid.

Totality: total
Visibility: public export
concatMap : Monoidm=>Foldablet=> (a->m) ->ta->m
  Combine into a monoid the collective results of applying a function to each
element of a structure.

Totality: total
Visibility: public export
and : Foldablet=>t (Lazy Bool) ->Bool
  The conjunction of all elements of a structure containing lazy boolean
values. `and` short-circuits from left to right, evaluating until either an
element is `False` or no elements remain.

Totality: total
Visibility: public export
or : Foldablet=>t (Lazy Bool) ->Bool
  The disjunction of all elements of a structure containing lazy boolean
values. `or` short-circuits from left to right, evaluating either until an
element is `True` or no elements remain.

Totality: total
Visibility: public export
any : Foldablet=> (a->Bool) ->ta->Bool
  The disjunction of the collective results of applying a predicate to all
elements of a structure. `any` short-circuits from left to right.

Totality: total
Visibility: public export
all : Foldablet=> (a->Bool) ->ta->Bool
  The conjunction of the collective results of applying a predicate to all
elements of a structure. `all` short-circuits from left to right.

Totality: total
Visibility: public export
sum : Numa=>Foldablet=>ta->a
  Add together all the elements of a structure.

Totality: total
Visibility: public export
sum' : Numa=>Foldablet=>ta->a
  Add together all the elements of a structure.
Same as `sum` but tail recursive.

Totality: total
Visibility: export
product : Numa=>Foldablet=>ta->a
  Multiply together all elements of a structure.

Totality: total
Visibility: public export
product' : Numa=>Foldablet=>ta->a
  Multiply together all elements of a structure.
Same as `product` but tail recursive.

Totality: total
Visibility: export
traverse_ : Applicativef=>Foldablet=> (a->fb) ->ta->f ()
  Map each element of a structure to a computation, evaluate those
computations and discard the results.

Totality: total
Visibility: public export
sequence_ : Applicativef=>Foldablet=>t (fa) ->f ()
  Evaluate each computation in a structure and discard the results.

Totality: total
Visibility: public export
for_ : Applicativef=>Foldablet=>ta-> (a->fb) ->f ()
  Like `traverse_` but with the arguments flipped.

Totality: total
Visibility: public export
choice : Alternativef=>Foldablet=>t (Lazy (fa)) ->fa
  Fold using Alternative.

If you have a left-biased alternative operator `<|>`, then `choice` performs
left-biased choice from a list of alternatives, which means that it
evaluates to the left-most non-`empty` alternative.

If the list is empty, or all values in it are `empty`, then it evaluates to
`empty`.

Example:

```
-- given a parser expression like:
expr = literal <|> keyword <|> funcall

-- choice lets you write this as:
expr = choice [literal, keyword, funcall]
```

Note: In Haskell, `choice` is called `asum`.

Totality: total
Visibility: public export
choiceMap : Alternativef=>Foldablet=> (a->fb) ->ta->fb
  A fused version of `choice` and `map`.

Totality: total
Visibility: public export
interfaceBifoldable : (Type->Type->Type) ->Type
  `Bifoldable` identifies foldable structures with two different varieties
of elements (as opposed to `Foldable`, which has one variety of element).
Common examples are `Either` and `Pair`.
A minimal definition includes `bifoldr`

Parameters: p
Constructor: 
MkBifoldable

Methods:
bifoldr : (a->acc->acc) -> (b->acc->acc) ->acc->pab->acc
bifoldl : (acc->a->acc) -> (acc->b->acc) ->acc->pab->acc
binull : pab->Bool

Implementations:
BifoldablePair
BifoldableEither
bifoldr : Bifoldablep=> (a->acc->acc) -> (b->acc->acc) ->acc->pab->acc
Totality: total
Visibility: public export
bifoldl : Bifoldablep=> (acc->a->acc) -> (acc->b->acc) ->acc->pab->acc
Totality: total
Visibility: public export
binull : Bifoldablep=>pab->Bool
Totality: total
Visibility: public export
bifoldMap : Monoidacc=>Bifoldablep=> (a->acc) -> (b->acc) ->pab->acc
  Analogous to `foldMap` but for `Bifoldable` structures

Totality: total
Visibility: public export
bifoldMapFst : Monoidacc=>Bifoldablep=> (a->acc) ->pab->acc
  Like Bifunctor's `mapFst` but for `Bifoldable` structures

Totality: total
Visibility: public export
interfaceTraversable : (Type->Type) ->Type
Parameters: t
Constraints: Functor t, Foldable t
Constructor: 
MkTraversable

Methods:
traverse : Applicativef=> (a->fb) ->ta->f (tb)
  Map each element of a structure to a computation, evaluate those
computations and combine the results.

Implementations:
Traversable (Paira)
TraversableMaybe
Traversable (Eithere)
TraversableList
traverse : Traversablet=>Applicativef=> (a->fb) ->ta->f (tb)
  Map each element of a structure to a computation, evaluate those
computations and combine the results.

Totality: total
Visibility: public export
sequence : Applicativef=>Traversablet=>t (fa) ->f (ta)
  Evaluate each computation in a structure and collect the results.

Totality: total
Visibility: public export
for : Applicativef=>Traversablet=>ta-> (a->fb) ->f (tb)
  Like `traverse` but with the arguments flipped.

Totality: total
Visibility: public export
interfaceBitraversable : (Type->Type->Type) ->Type
Parameters: p
Constraints: Bifunctor p, Bifoldable p
Constructor: 
MkBitraversable

Methods:
bitraverse : Applicativef=> (a->fc) -> (b->fd) ->pab->f (pcd)
  Map each element of a structure to a computation, evaluate those
computations and combine the results.

Implementations:
BitraversablePair
BitraversableEither
bitraverse : Bitraversablep=>Applicativef=> (a->fc) -> (b->fd) ->pab->f (pcd)
  Map each element of a structure to a computation, evaluate those
computations and combine the results.

Totality: total
Visibility: public export
bisequence : Applicativef=>Bitraversablep=>p (fa) (fb) ->f (pab)
  Evaluate each computation in a structure and collect the results.

Totality: total
Visibility: public export
bifor : Applicativef=>Bitraversablep=>pab-> (a->fc) -> (b->fd) ->f (pcd)
  Like `bitraverse` but with the arguments flipped.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.Interpolation.html b/prelude/docs/Prelude.Interpolation.html index f5f9774986..8310546468 100644 --- a/prelude/docs/Prelude.Interpolation.html +++ b/prelude/docs/Prelude.Interpolation.html @@ -61,4 +61,4 @@ -

Prelude.Interpolation(source)

Definitions

interfaceInterpolation : Type->Type
  Interpolated strings are of the form `"xxxx \{ expr } yyyy"`.
In this example the string `"xxxx "` is concatenated with `expr` and
`" yyyy"`, since `expr` is not necessarily a string, the generated
code looks like this:
```
concat [interpolate "xxxx ", interpolate expr, interpolate " yyyy"]
```
This allows to customise the interpolation behaviour by providing
an instance of `Interpolation` for a type.

Parameters: a
Constructor: 
MkInterpolation

Methods:
interpolate : a->String

Implementations:
InterpolationString
InterpolationVoid
interpolate : Interpolationa=>a->String
Visibility: public export
\ No newline at end of file +

Prelude.Interpolation(source)

Definitions

interfaceInterpolation : Type->Type
  Interpolated strings are of the form `"xxxx \{ expr } yyyy"`.
In this example the string `"xxxx "` is concatenated with `expr` and
`" yyyy"`, since `expr` is not necessarily a string, the generated
code looks like this:
```
concat [interpolate "xxxx ", interpolate expr, interpolate " yyyy"]
```
This allows to customise the interpolation behaviour by providing
an instance of `Interpolation` for a type.

Parameters: a
Constructor: 
MkInterpolation

Methods:
interpolate : a->String

Implementations:
InterpolationString
InterpolationVoid
interpolate : Interpolationa=>a->String
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.Num.html b/prelude/docs/Prelude.Num.html index 6261d8e662..e7c8447366 100644 --- a/prelude/docs/Prelude.Num.html +++ b/prelude/docs/Prelude.Num.html @@ -61,4 +61,4 @@ -

Prelude.Num(source)

Definitions

interfaceNum : Type->Type
  The Num interface defines basic numerical arithmetic.

Parameters: ty
Constructor: 
MkNum

Methods:
(+) : ty->ty->ty
Fixity Declaration: infixl operator, level 8
(*) : ty->ty->ty
Fixity Declaration: infixl operator, level 9
fromInteger : Integer->ty
  Conversion from Integer.

Implementations:
NumInteger
NumInt
NumInt8
NumInt16
NumInt32
NumInt64
NumBits8
NumBits16
NumBits32
NumBits64
NumDouble
NumNat
(+) : Numty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
(*) : Numty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
fromInteger : Numty=>Integer->ty
  Conversion from Integer.

Totality: total
Visibility: public export
interfaceNeg : Type->Type
  The `Neg` interface defines operations on numbers which can be negative.

Parameters: ty
Constraints: Num ty
Constructor: 
MkNeg

Methods:
negate : ty->ty
  The underlying of unary minus. `-5` desugars to `negate (fromInteger 5)`.

Fixity Declaration: prefix operator, level 10
(-) : ty->ty->ty
Fixity Declarations:
infixl operator, level 8
prefix operator, level 10

Implementations:
NegInteger
NegInt
NegInt8
NegInt16
NegInt32
NegInt64
NegBits8
NegBits16
NegBits32
NegBits64
NegDouble
negate : Negty=>ty->ty
  The underlying of unary minus. `-5` desugars to `negate (fromInteger 5)`.

Totality: total
Visibility: public export
Fixity Declaration: prefix operator, level 10
negate : Negty=>ty->ty
  The underlying of unary minus. `-5` desugars to `negate (fromInteger 5)`.

Totality: total
Visibility: public export
Fixity Declaration: prefix operator, level 10
(-) : Negty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declarations:
infixl operator, level 8
prefix operator, level 10
subtract : Negty=>ty->ty->ty
  A convenience alias for `(-)`, this function enables partial application of subtraction on the
right-hand operand as
```idris example
(`subtract` 1)
```
This contrasts with `(- 1)`, which is parsed as `-1`.

Totality: total
Visibility: export
interfaceAbs : Type->Type
  Numbers for which the absolute value is defined should implement `Abs`.

Parameters: ty
Constraints: Num ty
Constructor: 
MkAbs

Methods:
abs : ty->ty
  Absolute value.

Implementations:
AbsInteger
AbsInt
AbsInt8
AbsInt16
AbsInt32
AbsInt64
AbsBits8
AbsBits16
AbsBits32
AbsBits64
AbsDouble
abs : Absty=>ty->ty
  Absolute value.

Totality: total
Visibility: public export
interfaceFractional : Type->Type
Parameters: ty
Constraints: Num ty
Constructor: 
MkFractional

Methods:
(/) : ty->ty->ty
Fixity Declaration: infixl operator, level 9
recip : ty->ty

Implementation: 
FractionalDouble
(/) : Fractionalty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
recip : Fractionalty=>ty->ty
Totality: total
Visibility: public export
interfaceIntegral : Type->Type
Parameters: ty
Constraints: Num ty
Constructor: 
MkIntegral

Methods:
div : ty->ty->ty
Fixity Declaration: infixl operator, level 9
mod : ty->ty->ty
Fixity Declaration: infixl operator, level 9

Implementations:
IntegralInteger
IntegralInt
IntegralInt8
IntegralInt16
IntegralInt32
IntegralInt64
IntegralBits8
IntegralBits16
IntegralBits32
IntegralBits64
div : Integralty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
mod : Integralty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
defaultInteger : NumInteger
Totality: total
Visibility: public export
\ No newline at end of file +

Prelude.Num(source)

Definitions

interfaceNum : Type->Type
  The Num interface defines basic numerical arithmetic.

Parameters: ty
Constructor: 
MkNum

Methods:
(+) : ty->ty->ty
Fixity Declaration: infixl operator, level 8
(*) : ty->ty->ty
Fixity Declaration: infixl operator, level 9
fromInteger : Integer->ty
  Conversion from Integer.

Implementations:
NumInteger
NumInt
NumInt8
NumInt16
NumInt32
NumInt64
NumBits8
NumBits16
NumBits32
NumBits64
NumDouble
NumNat
(+) : Numty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 8
(*) : Numty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
fromInteger : Numty=>Integer->ty
  Conversion from Integer.

Totality: total
Visibility: public export
interfaceNeg : Type->Type
  The `Neg` interface defines operations on numbers which can be negative.

Parameters: ty
Constraints: Num ty
Constructor: 
MkNeg

Methods:
negate : ty->ty
  The underlying of unary minus. `-5` desugars to `negate (fromInteger 5)`.

Fixity Declaration: prefix operator, level 10
(-) : ty->ty->ty
Fixity Declarations:
infixl operator, level 8
prefix operator, level 10

Implementations:
NegInteger
NegInt
NegInt8
NegInt16
NegInt32
NegInt64
NegBits8
NegBits16
NegBits32
NegBits64
NegDouble
negate : Negty=>ty->ty
  The underlying of unary minus. `-5` desugars to `negate (fromInteger 5)`.

Totality: total
Visibility: public export
Fixity Declaration: prefix operator, level 10
negate : Negty=>ty->ty
  The underlying of unary minus. `-5` desugars to `negate (fromInteger 5)`.

Totality: total
Visibility: public export
Fixity Declaration: prefix operator, level 10
(-) : Negty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declarations:
infixl operator, level 8
prefix operator, level 10
subtract : Negty=>ty->ty->ty
  A convenience alias for `(-)`, this function enables partial application of subtraction on the
right-hand operand as
```idris example
(`subtract` 1)
```
This contrasts with `(- 1)`, which is parsed as `-1`.

Totality: total
Visibility: export
interfaceAbs : Type->Type
  Numbers for which the absolute value is defined should implement `Abs`.

Parameters: ty
Constraints: Num ty
Constructor: 
MkAbs

Methods:
abs : ty->ty
  Absolute value.

Implementations:
AbsInteger
AbsInt
AbsInt8
AbsInt16
AbsInt32
AbsInt64
AbsBits8
AbsBits16
AbsBits32
AbsBits64
AbsDouble
abs : Absty=>ty->ty
  Absolute value.

Totality: total
Visibility: public export
interfaceFractional : Type->Type
Parameters: ty
Constraints: Num ty
Constructor: 
MkFractional

Methods:
(/) : ty->ty->ty
Fixity Declaration: infixl operator, level 9
recip : ty->ty

Implementation: 
FractionalDouble
(/) : Fractionalty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
recip : Fractionalty=>ty->ty
Totality: total
Visibility: public export
interfaceIntegral : Type->Type
Parameters: ty
Constraints: Num ty
Constructor: 
MkIntegral

Methods:
div : ty->ty->ty
Fixity Declaration: infixl operator, level 9
mod : ty->ty->ty
Fixity Declaration: infixl operator, level 9

Implementations:
IntegralInteger
IntegralInt
IntegralInt8
IntegralInt16
IntegralInt32
IntegralInt64
IntegralBits8
IntegralBits16
IntegralBits32
IntegralBits64
div : Integralty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
mod : Integralty=>ty->ty->ty
Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 9
defaultInteger : NumInteger
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.Ops.html b/prelude/docs/Prelude.Ops.html index 1851ff1aa8..3ede82e385 100644 --- a/prelude/docs/Prelude.Ops.html +++ b/prelude/docs/Prelude.Ops.html @@ -61,4 +61,4 @@ -

Prelude.Ops(source)

\ No newline at end of file +

Prelude.Ops(source)

\ No newline at end of file diff --git a/prelude/docs/Prelude.Show.html b/prelude/docs/Prelude.Show.html index 6111fa6450..2e5ec1ed52 100644 --- a/prelude/docs/Prelude.Show.html +++ b/prelude/docs/Prelude.Show.html @@ -61,4 +61,4 @@ -

Prelude.Show(source)

Definitions

dataPrec : Type
  The precedence of an Idris operator or syntactic context.

Totality: total
Visibility: public export
Constructors:
Open : Prec
Equal : Prec
Dollar : Prec
Backtick : Prec
User : Nat->Prec
PrefixMinus : Prec
App : Prec

Hints:
EqPrec
OrdPrec
precCon : Prec->Integer
  Gives the constructor index of the Prec as a helper for writing
implementations.

Totality: total
Visibility: public export
interfaceShow : Type->Type
  Things that have a canonical `String` representation.
A minimal implementation includes either `show` or `showPrec`.

Parameters: ty
Constructor: 
MkShow

Methods:
show : ty->String
  Convert a value to its `String` representation.
@ x the value to convert
showPrec : Prec->ty->String
  Convert a value to its `String` representation in a certain precedence
context.

A value should produce parentheses around itself if and only if the given
precedence context is greater than or equal to the precedence of the
outermost operation represented in the produced `String`. *This is
different from Haskell*, which requires it to be strictly greater. `Open`
should thus always produce *no* outermost parens, `App` should always
produce outermost parens except on atomic values and those that provide
their own bracketing, like `Pair` and `List`.
@ d the precedence context.
@ x the value to convert

Implementations:
ShowInt
ShowInteger
ShowBits8
ShowBits16
ShowBits32
ShowBits64
ShowInt8
ShowInt16
ShowInt32
ShowInt64
ShowDouble
ShowChar
ShowString
ShowNat
ShowBool
ShowVoid
Show ()
(Showa, Showb) =>Show (a, b)
(Showa, Show (py)) =>Show (DPairap)
Showa=>Show (Lista)
Showa=>Show (Maybea)
(Showa, Showb) =>Show (Eitherab)
ShowOrdering
show : Showty=>ty->String
  Convert a value to its `String` representation.
@ x the value to convert

Totality: total
Visibility: public export
showPrec : Showty=>Prec->ty->String
  Convert a value to its `String` representation in a certain precedence
context.

A value should produce parentheses around itself if and only if the given
precedence context is greater than or equal to the precedence of the
outermost operation represented in the produced `String`. *This is
different from Haskell*, which requires it to be strictly greater. `Open`
should thus always produce *no* outermost parens, `App` should always
produce outermost parens except on atomic values and those that provide
their own bracketing, like `Pair` and `List`.
@ d the precedence context.
@ x the value to convert

Totality: total
Visibility: public export
showParens : Bool->String->String
  Surround a `String` with parentheses depending on a condition.
@ b whether to add parentheses

Totality: total
Visibility: public export
showCon : Prec->String->String->String
  A helper for the common case of showing a non-infix constructor with at
least one argument, for use with `showArg`.

Apply `showCon` to the precedence context, the constructor name, and the
args shown with `showArg` and concatenated. Example:
```idris example
data Ann a = MkAnn String a

Show a => Show (Ann a) where
showPrec d (MkAnn s x) = showCon d "MkAnn" $ showArg s ++ showArg x
```

Totality: total
Visibility: public export
showArg : Showa=>a->String
  A helper for the common case of showing a non-infix constructor with at
least one argument, for use with `showCon`.

This adds a space to the front so the results can be directly concatenated.
See `showCon` for details and an example.

Totality: total
Visibility: public export
\ No newline at end of file +

Prelude.Show(source)

Definitions

dataPrec : Type
  The precedence of an Idris operator or syntactic context.

Totality: total
Visibility: public export
Constructors:
Open : Prec
Equal : Prec
Dollar : Prec
Backtick : Prec
User : Nat->Prec
PrefixMinus : Prec
App : Prec

Hints:
EqPrec
OrdPrec
precCon : Prec->Integer
  Gives the constructor index of the Prec as a helper for writing
implementations.

Totality: total
Visibility: public export
interfaceShow : Type->Type
  Things that have a canonical `String` representation.
A minimal implementation includes either `show` or `showPrec`.

Parameters: ty
Constructor: 
MkShow

Methods:
show : ty->String
  Convert a value to its `String` representation.
@ x the value to convert
showPrec : Prec->ty->String
  Convert a value to its `String` representation in a certain precedence
context.

A value should produce parentheses around itself if and only if the given
precedence context is greater than or equal to the precedence of the
outermost operation represented in the produced `String`. *This is
different from Haskell*, which requires it to be strictly greater. `Open`
should thus always produce *no* outermost parens, `App` should always
produce outermost parens except on atomic values and those that provide
their own bracketing, like `Pair` and `List`.
@ d the precedence context.
@ x the value to convert

Implementations:
ShowInt
ShowInteger
ShowBits8
ShowBits16
ShowBits32
ShowBits64
ShowInt8
ShowInt16
ShowInt32
ShowInt64
ShowDouble
ShowChar
ShowString
ShowNat
ShowBool
ShowVoid
Show ()
(Showa, Showb) =>Show (a, b)
(Showa, Show (py)) =>Show (DPairap)
Showa=>Show (Lista)
Showa=>Show (Maybea)
(Showa, Showb) =>Show (Eitherab)
ShowOrdering
show : Showty=>ty->String
  Convert a value to its `String` representation.
@ x the value to convert

Totality: total
Visibility: public export
showPrec : Showty=>Prec->ty->String
  Convert a value to its `String` representation in a certain precedence
context.

A value should produce parentheses around itself if and only if the given
precedence context is greater than or equal to the precedence of the
outermost operation represented in the produced `String`. *This is
different from Haskell*, which requires it to be strictly greater. `Open`
should thus always produce *no* outermost parens, `App` should always
produce outermost parens except on atomic values and those that provide
their own bracketing, like `Pair` and `List`.
@ d the precedence context.
@ x the value to convert

Totality: total
Visibility: public export
showParens : Bool->String->String
  Surround a `String` with parentheses depending on a condition.
@ b whether to add parentheses

Totality: total
Visibility: public export
showCon : Prec->String->String->String
  A helper for the common case of showing a non-infix constructor with at
least one argument, for use with `showArg`.

Apply `showCon` to the precedence context, the constructor name, and the
args shown with `showArg` and concatenated. Example:
```idris example
data Ann a = MkAnn String a

Show a => Show (Ann a) where
showPrec d (MkAnn s x) = showCon d "MkAnn" $ showArg s ++ showArg x
```

Totality: total
Visibility: public export
showArg : Showa=>a->String
  A helper for the common case of showing a non-infix constructor with at
least one argument, for use with `showCon`.

This adds a space to the front so the results can be directly concatenated.
See `showCon` for details and an example.

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.Types.html b/prelude/docs/Prelude.Types.html index 7471ea4998..44981fcf14 100644 --- a/prelude/docs/Prelude.Types.html +++ b/prelude/docs/Prelude.Types.html @@ -61,4 +61,4 @@ -

Prelude.Types(source)

Definitions

dataNat : Type
  Natural numbers: unbounded, unsigned integers which can be pattern matched.

Totality: total
Visibility: public export
Constructors:
Z : Nat
  Zero.
S : Nat->Nat
  Successor.

Hints:
CastNatString
CastNatInteger
CastNatInt
CastNatChar
CastNatDouble
CastNatBits8
CastNatBits16
CastNatBits32
CastNatBits64
CastNatInt8
CastNatInt16
CastNatInt32
CastNatInt64
CastStringNat
CastDoubleNat
CastCharNat
CastIntNat
CastIntegerNat
CastBits8Nat
CastBits16Nat
CastBits32Nat
CastBits64Nat
CastInt8Nat
CastInt16Nat
CastInt32Nat
CastInt64Nat
EqNat
NumNat
OrdNat
RangeNat
ShowNat
integerToNat : Integer->Nat
Totality: total
Visibility: public export
plus : Nat->Nat->Nat
  Add two natural numbers.
@ x the number to case-split on
@ y the other number

Totality: total
Visibility: public export
minus : Nat->Nat->Nat
  Subtract natural numbers.
If the second number is larger than the first, return 0.

Totality: total
Visibility: public export
mult : Nat->Nat->Nat
  Multiply natural numbers.

Totality: total
Visibility: public export
equalNat : Nat->Nat->Bool
Totality: total
Visibility: public export
compareNat : Nat->Nat->Ordering
Totality: total
Visibility: public export
natToInteger : Nat->Integer
Totality: total
Visibility: public export
count : Foldablet=> (a->Bool) ->ta->Nat
  Counts the number of elements that satify a predicate.

Totality: total
Visibility: public export
dataMaybe : Type->Type
  An optional value.  This can be used to represent the possibility of
failure, where a function may return a value, or not.

Totality: total
Visibility: public export
Constructors:
Nothing : Maybety
  No value stored
Just : ty->Maybety
  A value of type `ty` is stored

Hints:
AlternativeMaybe
ApplicativeMaybe
Eqa=>Eq (Maybea)
FoldableMaybe
FunctorMaybe
MonadMaybe
Monoid (Maybea)
Orda=>Ord (Maybea)
Semigroup (Maybea)
Showa=>Show (Maybea)
TraversableMaybe
Uninhabited (Nothing=Justx)
Uninhabited (Justx=Nothing)
maybe : Lazy b-> Lazy (a->b) ->Maybea->b
Totality: total
Visibility: public export
whenJust : Applicativef=>Maybea-> (a->f ()) ->f ()
  Execute an applicative expression when the Maybe is Just

Totality: total
Visibility: public export
record(<=>) : Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkEquivalence : (a->b) -> (b->a) ->a<=>b

Projections:
.leftToRight : a<=>b->a->b
.rightToLeft : a<=>b->b->a

Fixity Declaration: infix operator, level 0
.leftToRight : a<=>b->a->b
Totality: total
Visibility: public export
leftToRight : a<=>b->a->b
Totality: total
Visibility: public export
.rightToLeft : a<=>b->b->a
Totality: total
Visibility: public export
rightToLeft : a<=>b->b->a
Totality: total
Visibility: public export
dataDec : Type->Type
  Decidability.  A decidable property either holds or is a contradiction.

Totality: total
Visibility: public export
Constructors:
Yes : prop->Decprop
  The case where the property holds.
@ prf the proof
No : Notprop->Decprop
  The case where the property holding would be a contradiction.
@ contra a demonstration that prop would be a contradiction

Hints:
Uninhabited (Yesp=Noq)
Uninhabited (Nop=Yesq)
viaEquivalence : a<=>b->Deca->Decb
Totality: total
Visibility: public export
dataEither : Type->Type->Type
  A sum type.

Totality: total
Visibility: public export
Constructors:
Left : a->Eitherab
  One possibility of the sum, conventionally used to represent errors.
Right : b->Eitherab
  The other possibility, conventionally used to represent success.

Hints:
Applicative (Eithere)
BifoldableEither
BifunctorEither
BitraversableEither
(Eqa, Eqb) =>Eq (Eitherab)
Foldable (Eithere)
Functor (Eithere)
Monad (Eithere)
(Orda, Ordb) =>Ord (Eitherab)
(Showa, Showb) =>Show (Eitherab)
Traversable (Eithere)
Uninhabited (Leftp=Rightq)
Uninhabited (Rightp=Leftq)
Either (Uninhabiteda) (Uninhabitedb) =>Uninhabited (a, b)
Uninhabiteda=>Uninhabitedb=>Uninhabited (Eitherab)
either : Lazy (a->c) -> Lazy (b->c) ->Eitherab->c
  Simply-typed eliminator for Either.
@ f the action to take on Left
@ g the action to take on Right
@ e the sum to analyze

Totality: total
Visibility: public export
(<><) : SnocLista->Lista->SnocLista
  'fish': Action of lists on snoc-lists

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 7
(<>>) : SnocLista->Lista->Lista
  'chips': Action of snoc-lists on lists

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 6
(++) : SnocLista->SnocLista->SnocLista
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
length : SnocLista->Nat
Totality: total
Visibility: public export
filter : (a->Bool) ->SnocLista->SnocLista
  Filters a snoc-list according to a simple classifying function

Totality: total
Visibility: public export
mapMaybe : (a->Maybeb) ->SnocLista->SnocListb
  Apply a partial function to the elements of a list, keeping the ones at which
it is defined.

Totality: total
Visibility: public export
reverseOnto : SnocLista->SnocLista->SnocLista
  Reverse the second snoclist, prepending its elements to the first.

Totality: total
Visibility: public export
reverse : SnocLista->SnocLista
  Reverses the given list.

Totality: total
Visibility: public export
tailRecAppend : SnocLista->SnocLista->SnocLista
  Tail-recursive append. Uses of (++) are automatically transformed to
this. The only reason this is exported is that the proof of equivalence
lives in a different module.

Totality: total
Visibility: public export
lengthPlus : Nat->SnocLista->Nat
  Returns the first argument plus the length of the second.

Totality: total
Visibility: public export
lengthTR : SnocLista->Nat
  `length` implementation that uses tail recursion. Exported so
lengthTRIsLength can see it.

Totality: total
Visibility: public export
mapMaybeAppend : Listb-> (a->Maybeb) ->SnocLista->SnocListb
  Utility for implementing `mapMaybeTR`

Totality: total
Visibility: public export
mapMaybeTR : (a->Maybeb) ->SnocLista->SnocListb
  Tail recursive version of `mapMaybe`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
filterAppend : Lista-> (a->Bool) ->SnocLista->SnocLista
  Utility for implementing `filterTR`

Totality: total
Visibility: public export
filterTR : (a->Bool) ->SnocLista->SnocLista
  Tail recursive version of `filter`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
(++) : Lista->Lista->Lista
  Concatenate one list with another.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
length : Lista->Nat
  Returns the length of the list.

Totality: total
Visibility: public export
filter : (a->Bool) ->Lista->Lista
  Applied to a predicate and a list, returns the list of those elements that
satisfy the predicate.

Totality: total
Visibility: public export
mapMaybe : (a->Maybeb) ->Lista->Listb
  Apply a partial function to the elements of a list, keeping the ones at which it is defined.

Totality: total
Visibility: public export
reverseOnto : Lista->Lista->Lista
  Reverse the second list, prepending its elements to the first.

Totality: total
Visibility: public export
reverse : Lista->Lista
  Reverses the given list.

Totality: total
Visibility: public export
tailRecAppend : Lista->Lista->Lista
  Tail-recursive append. Uses of (++) are automatically transformed to
this. The only reason this is exported is that the proof of equivalence
lives in a different module.

Totality: total
Visibility: public export
lengthPlus : Nat->Lista->Nat
  Returns the first argument plus the length of the second.

Totality: total
Visibility: public export
lengthTR : Lista->Nat
  `length` implementation that uses tail recursion. Exported so
lengthTRIsLength can see it.

Totality: total
Visibility: public export
mapImpl : (a->b) ->Lista->Listb
Totality: total
Visibility: public export
mapAppend : SnocListb-> (a->b) ->Lista->Listb
  Utility for implementing `mapTR`

Totality: total
Visibility: public export
mapTR : (a->b) ->Lista->Listb
  Tail recursive version of `map`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
mapMaybeAppend : SnocListb-> (a->Maybeb) ->Lista->Listb
  Utility for implementing `mapMaybeTR`

Totality: total
Visibility: public export
mapMaybeTR : (a->Maybeb) ->Lista->Listb
  Tail recursive version of `mapMaybe`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
filterAppend : SnocLista-> (a->Bool) ->Lista->Lista
  Utility for implementing `filterTR`

Totality: total
Visibility: public export
filterTR : (a->Bool) ->Lista->Lista
  Tail recursive version of `filter`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
listBindOnto : (a->Listb) ->Listb->Lista->Listb
Totality: total
Visibility: public export
listBind : Lista-> (a->Listb) ->Listb
Totality: total
Visibility: public export
fastConcat : ListString->String
elemBy : Foldablet=> (a->a->Bool) ->a->ta->Bool
  Check if something is a member of a list using a custom comparison.

Totality: total
Visibility: public export
elem : Foldablet=>Eqa=>a->ta->Bool
  Check if something is a member of a list using the default Boolean equality.

Totality: total
Visibility: public export
getAt : Nat->Lista->Maybea
  Lookup a value at a given position

Totality: total
Visibility: export
dataStream : Type->Type
  An infinite stream.

Totality: total
Visibility: public export
Constructor: 
(::) : a-> Inf (Streama) ->Streama

Hint: 
FunctorStream
head : Streama->a
  The first element of an infinite stream.

Totality: total
Visibility: public export
tail : Streama->Streama
  All but the first element.

Totality: total
Visibility: public export
take : Nat->Streama->Lista
  Take precisely n elements from the stream.
@ n how many elements to take
@ xs the stream

Totality: total
Visibility: public export
(++) : String->String->String
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
length : String->Nat
  Returns the length of the string.

```idris example
length ""
```
```idris example
length "ABC"
```

Totality: total
Visibility: public export
reverse : String->String
  Reverses the elements within a string.

```idris example
reverse "ABC"
```
```idris example
reverse ""
```

Totality: total
Visibility: public export
substr : Nat->Nat->String->String
  Returns a substring of a given string

@ index The (zero based) index of the string to extract. If this is beyond
the end of the string, the function returns the empty string.
@ len The desired length of the substring. Truncated if this exceeds the
length of the input
@ subject The string to return a portion of

Totality: total
Visibility: public export
strCons : Char->String->String
  Adds a character to the front of the specified string.

```idris example
strCons 'A' "B"
```
```idris example
strCons 'A' ""
```

Totality: total
Visibility: public export
strUncons : String->Maybe (Char, String)
Totality: total
Visibility: public export
pack : ListChar->String
  Turns a list of characters into a string.

Totality: total
Visibility: public export
fastPack : ListChar->String
unpack : String->ListChar
  Turns a string into a list of characters.

```idris example
unpack "ABC"
```

Totality: total
Visibility: public export
fastUnpack : String->ListChar
isUpper : Char->Bool
  Returns true if the character is in the range [A-Z].

Totality: total
Visibility: public export
isLower : Char->Bool
  Returns true if the character is in the range [a-z].

Totality: total
Visibility: public export
isAlpha : Char->Bool
  Returns true if the character is in the ranges [A-Z][a-z].

Totality: total
Visibility: public export
isDigit : Char->Bool
  Returns true if the character is in the range [0-9].

Totality: total
Visibility: public export
isAlphaNum : Char->Bool
  Returns true if the character is in the ranges [A-Z][a-z][0-9].

Totality: total
Visibility: public export
isSpace : Char->Bool
  Returns true if the character is a whitespace character.

Totality: total
Visibility: public export
isNL : Char->Bool
  Returns true if the character represents a new line.

Totality: total
Visibility: public export
toUpper : Char->Char
  Convert a letter to the corresponding upper-case letter, if any.
Non-letters are ignored.

Totality: total
Visibility: public export
toLower : Char->Char
  Convert a letter to the corresponding lower-case letter, if any.
Non-letters are ignored.

Totality: total
Visibility: public export
isHexDigit : Char->Bool
  Returns true if the character is a hexadecimal digit i.e. in the range
[0-9][a-f][A-F].

Totality: total
Visibility: public export
isOctDigit : Char->Bool
  Returns true if the character is an octal digit.

Totality: total
Visibility: public export
isControl : Char->Bool
  Returns true if the character is a control character.

Totality: total
Visibility: public export
chr : Int->Char
  Convert the number to its backend dependent (usually Unicode) Char
equivalent.

Totality: total
Visibility: public export
ord : Char->Int
  Return the backend dependent (usually Unicode) numerical equivalent of the Char.

Totality: total
Visibility: public export
pi : Double
Totality: total
Visibility: public export
euler : Double
Totality: total
Visibility: public export
exp : Double->Double
Totality: total
Visibility: public export
log : Double->Double
Totality: total
Visibility: public export
pow : Double->Double->Double
Totality: total
Visibility: public export
sin : Double->Double
Totality: total
Visibility: public export
cos : Double->Double
Totality: total
Visibility: public export
tan : Double->Double
Totality: total
Visibility: public export
asin : Double->Double
Totality: total
Visibility: public export
acos : Double->Double
Totality: total
Visibility: public export
atan : Double->Double
Totality: total
Visibility: public export
sinh : Double->Double
Totality: total
Visibility: public export
cosh : Double->Double
Totality: total
Visibility: public export
tanh : Double->Double
Totality: total
Visibility: public export
sqrt : Double->Double
Totality: total
Visibility: public export
floor : Double->Double
Totality: total
Visibility: public export
ceiling : Double->Double
Totality: total
Visibility: public export
countFrom : n-> (n->n) ->Streamn
Totality: total
Visibility: public export
takeUntil : (n->Bool) ->Streamn->Listn
Visibility: public export
takeBefore : (n->Bool) ->Streamn->Listn
Visibility: public export
interfaceRange : Type->Type
Parameters: a
Constructor: 
MkRange

Methods:
rangeFromTo : a->a->Lista
rangeFromThenTo : a->a->a->Lista
rangeFrom : a->Streama
rangeFromThen : a->a->Streama

Implementations:
RangeNat
(Integrala, (Orda, Nega)) =>Rangea
RangeChar
rangeFromTo : Rangea=>a->a->Lista
Totality: total
Visibility: public export
rangeFromThenTo : Rangea=>a->a->a->Lista
Totality: total
Visibility: public export
rangeFrom : Rangea=>a->Streama
Totality: total
Visibility: public export
rangeFromThen : Rangea=>a->a->Streama
Totality: total
Visibility: public export
\ No newline at end of file +

Prelude.Types(source)

Definitions

dataNat : Type
  Natural numbers: unbounded, unsigned integers which can be pattern matched.

Totality: total
Visibility: public export
Constructors:
Z : Nat
  Zero.
S : Nat->Nat
  Successor.

Hints:
CastNatString
CastNatInteger
CastNatInt
CastNatChar
CastNatDouble
CastNatBits8
CastNatBits16
CastNatBits32
CastNatBits64
CastNatInt8
CastNatInt16
CastNatInt32
CastNatInt64
CastStringNat
CastDoubleNat
CastCharNat
CastIntNat
CastIntegerNat
CastBits8Nat
CastBits16Nat
CastBits32Nat
CastBits64Nat
CastInt8Nat
CastInt16Nat
CastInt32Nat
CastInt64Nat
EqNat
NumNat
OrdNat
RangeNat
ShowNat
integerToNat : Integer->Nat
Totality: total
Visibility: public export
plus : Nat->Nat->Nat
  Add two natural numbers.
@ x the number to case-split on
@ y the other number

Totality: total
Visibility: public export
minus : Nat->Nat->Nat
  Subtract natural numbers.
If the second number is larger than the first, return 0.

Totality: total
Visibility: public export
mult : Nat->Nat->Nat
  Multiply natural numbers.

Totality: total
Visibility: public export
equalNat : Nat->Nat->Bool
Totality: total
Visibility: public export
compareNat : Nat->Nat->Ordering
Totality: total
Visibility: public export
natToInteger : Nat->Integer
Totality: total
Visibility: public export
count : Foldablet=> (a->Bool) ->ta->Nat
  Counts the number of elements that satify a predicate.

Totality: total
Visibility: public export
dataMaybe : Type->Type
  An optional value.  This can be used to represent the possibility of
failure, where a function may return a value, or not.

Totality: total
Visibility: public export
Constructors:
Nothing : Maybety
  No value stored
Just : ty->Maybety
  A value of type `ty` is stored

Hints:
AlternativeMaybe
ApplicativeMaybe
Eqa=>Eq (Maybea)
FoldableMaybe
FunctorMaybe
MonadMaybe
Monoid (Maybea)
Orda=>Ord (Maybea)
Semigroup (Maybea)
Showa=>Show (Maybea)
TraversableMaybe
Uninhabited (Nothing=Justx)
Uninhabited (Justx=Nothing)
maybe : Lazy b-> Lazy (a->b) ->Maybea->b
Totality: total
Visibility: public export
whenJust : Applicativef=>Maybea-> (a->f ()) ->f ()
  Execute an applicative expression when the Maybe is Just

Totality: total
Visibility: public export
record(<=>) : Type->Type->Type
Totality: total
Visibility: public export
Constructor: 
MkEquivalence : (a->b) -> (b->a) ->a<=>b

Projections:
.leftToRight : a<=>b->a->b
.rightToLeft : a<=>b->b->a

Fixity Declaration: infix operator, level 0
.leftToRight : a<=>b->a->b
Totality: total
Visibility: public export
leftToRight : a<=>b->a->b
Totality: total
Visibility: public export
.rightToLeft : a<=>b->b->a
Totality: total
Visibility: public export
rightToLeft : a<=>b->b->a
Totality: total
Visibility: public export
dataDec : Type->Type
  Decidability.  A decidable property either holds or is a contradiction.

Totality: total
Visibility: public export
Constructors:
Yes : prop->Decprop
  The case where the property holds.
@ prf the proof
No : Notprop->Decprop
  The case where the property holding would be a contradiction.
@ contra a demonstration that prop would be a contradiction

Hints:
Uninhabited (Yesp=Noq)
Uninhabited (Nop=Yesq)
viaEquivalence : a<=>b->Deca->Decb
Totality: total
Visibility: public export
dataEither : Type->Type->Type
  A sum type.

Totality: total
Visibility: public export
Constructors:
Left : a->Eitherab
  One possibility of the sum, conventionally used to represent errors.
Right : b->Eitherab
  The other possibility, conventionally used to represent success.

Hints:
Applicative (Eithere)
BifoldableEither
BifunctorEither
BitraversableEither
(Eqa, Eqb) =>Eq (Eitherab)
Foldable (Eithere)
Functor (Eithere)
Monad (Eithere)
(Orda, Ordb) =>Ord (Eitherab)
(Showa, Showb) =>Show (Eitherab)
Traversable (Eithere)
Uninhabited (Leftp=Rightq)
Uninhabited (Rightp=Leftq)
Either (Uninhabiteda) (Uninhabitedb) =>Uninhabited (a, b)
Uninhabiteda=>Uninhabitedb=>Uninhabited (Eitherab)
either : Lazy (a->c) -> Lazy (b->c) ->Eitherab->c
  Simply-typed eliminator for Either.
@ f the action to take on Left
@ g the action to take on Right
@ e the sum to analyze

Totality: total
Visibility: public export
(<><) : SnocLista->Lista->SnocLista
  'fish': Action of lists on snoc-lists

Totality: total
Visibility: public export
Fixity Declaration: infixl operator, level 7
(<>>) : SnocLista->Lista->Lista
  'chips': Action of snoc-lists on lists

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 6
(++) : SnocLista->SnocLista->SnocLista
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
length : SnocLista->Nat
Totality: total
Visibility: public export
filter : (a->Bool) ->SnocLista->SnocLista
  Filters a snoc-list according to a simple classifying function

Totality: total
Visibility: public export
mapMaybe : (a->Maybeb) ->SnocLista->SnocListb
  Apply a partial function to the elements of a list, keeping the ones at which
it is defined.

Totality: total
Visibility: public export
reverseOnto : SnocLista->SnocLista->SnocLista
  Reverse the second snoclist, prepending its elements to the first.

Totality: total
Visibility: public export
reverse : SnocLista->SnocLista
  Reverses the given list.

Totality: total
Visibility: public export
tailRecAppend : SnocLista->SnocLista->SnocLista
  Tail-recursive append. Uses of (++) are automatically transformed to
this. The only reason this is exported is that the proof of equivalence
lives in a different module.

Totality: total
Visibility: public export
lengthPlus : Nat->SnocLista->Nat
  Returns the first argument plus the length of the second.

Totality: total
Visibility: public export
lengthTR : SnocLista->Nat
  `length` implementation that uses tail recursion. Exported so
lengthTRIsLength can see it.

Totality: total
Visibility: public export
mapMaybeAppend : Listb-> (a->Maybeb) ->SnocLista->SnocListb
  Utility for implementing `mapMaybeTR`

Totality: total
Visibility: public export
mapMaybeTR : (a->Maybeb) ->SnocLista->SnocListb
  Tail recursive version of `mapMaybe`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
filterAppend : Lista-> (a->Bool) ->SnocLista->SnocLista
  Utility for implementing `filterTR`

Totality: total
Visibility: public export
filterTR : (a->Bool) ->SnocLista->SnocLista
  Tail recursive version of `filter`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
(++) : Lista->Lista->Lista
  Concatenate one list with another.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
length : Lista->Nat
  Returns the length of the list.

Totality: total
Visibility: public export
filter : (a->Bool) ->Lista->Lista
  Applied to a predicate and a list, returns the list of those elements that
satisfy the predicate.

Totality: total
Visibility: public export
mapMaybe : (a->Maybeb) ->Lista->Listb
  Apply a partial function to the elements of a list, keeping the ones at which it is defined.

Totality: total
Visibility: public export
reverseOnto : Lista->Lista->Lista
  Reverse the second list, prepending its elements to the first.

Totality: total
Visibility: public export
reverse : Lista->Lista
  Reverses the given list.

Totality: total
Visibility: public export
tailRecAppend : Lista->Lista->Lista
  Tail-recursive append. Uses of (++) are automatically transformed to
this. The only reason this is exported is that the proof of equivalence
lives in a different module.

Totality: total
Visibility: public export
lengthPlus : Nat->Lista->Nat
  Returns the first argument plus the length of the second.

Totality: total
Visibility: public export
lengthTR : Lista->Nat
  `length` implementation that uses tail recursion. Exported so
lengthTRIsLength can see it.

Totality: total
Visibility: public export
mapImpl : (a->b) ->Lista->Listb
Totality: total
Visibility: public export
mapAppend : SnocListb-> (a->b) ->Lista->Listb
  Utility for implementing `mapTR`

Totality: total
Visibility: public export
mapTR : (a->b) ->Lista->Listb
  Tail recursive version of `map`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
mapMaybeAppend : SnocListb-> (a->Maybeb) ->Lista->Listb
  Utility for implementing `mapMaybeTR`

Totality: total
Visibility: public export
mapMaybeTR : (a->Maybeb) ->Lista->Listb
  Tail recursive version of `mapMaybe`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
filterAppend : SnocLista-> (a->Bool) ->Lista->Lista
  Utility for implementing `filterTR`

Totality: total
Visibility: public export
filterTR : (a->Bool) ->Lista->Lista
  Tail recursive version of `filter`. This is automatically used
at runtime due to a `transform` rule.

Totality: total
Visibility: public export
listBindOnto : (a->Listb) ->Listb->Lista->Listb
Totality: total
Visibility: public export
listBind : Lista-> (a->Listb) ->Listb
Totality: total
Visibility: public export
fastConcat : ListString->String
elemBy : Foldablet=> (a->a->Bool) ->a->ta->Bool
  Check if something is a member of a list using a custom comparison.

Totality: total
Visibility: public export
elem : Foldablet=>Eqa=>a->ta->Bool
  Check if something is a member of a list using the default Boolean equality.

Totality: total
Visibility: public export
getAt : Nat->Lista->Maybea
  Lookup a value at a given position

Totality: total
Visibility: export
dataStream : Type->Type
  An infinite stream.

Totality: total
Visibility: public export
Constructor: 
(::) : a-> Inf (Streama) ->Streama

Hint: 
FunctorStream
head : Streama->a
  The first element of an infinite stream.

Totality: total
Visibility: public export
tail : Streama->Streama
  All but the first element.

Totality: total
Visibility: public export
take : Nat->Streama->Lista
  Take precisely n elements from the stream.
@ n how many elements to take
@ xs the stream

Totality: total
Visibility: public export
(++) : String->String->String
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
length : String->Nat
  Returns the length of the string.

```idris example
length ""
```
```idris example
length "ABC"
```

Totality: total
Visibility: public export
reverse : String->String
  Reverses the elements within a string.

```idris example
reverse "ABC"
```
```idris example
reverse ""
```

Totality: total
Visibility: public export
substr : Nat->Nat->String->String
  Returns a substring of a given string

@ index The (zero based) index of the string to extract. If this is beyond
the end of the string, the function returns the empty string.
@ len The desired length of the substring. Truncated if this exceeds the
length of the input
@ subject The string to return a portion of

Totality: total
Visibility: public export
strCons : Char->String->String
  Adds a character to the front of the specified string.

```idris example
strCons 'A' "B"
```
```idris example
strCons 'A' ""
```

Totality: total
Visibility: public export
strUncons : String->Maybe (Char, String)
Totality: total
Visibility: public export
pack : ListChar->String
  Turns a list of characters into a string.

Totality: total
Visibility: public export
fastPack : ListChar->String
unpack : String->ListChar
  Turns a string into a list of characters.

```idris example
unpack "ABC"
```

Totality: total
Visibility: public export
fastUnpack : String->ListChar
isUpper : Char->Bool
  Returns true if the character is in the range [A-Z].

Totality: total
Visibility: public export
isLower : Char->Bool
  Returns true if the character is in the range [a-z].

Totality: total
Visibility: public export
isAlpha : Char->Bool
  Returns true if the character is in the ranges [A-Z][a-z].

Totality: total
Visibility: public export
isDigit : Char->Bool
  Returns true if the character is in the range [0-9].

Totality: total
Visibility: public export
isAlphaNum : Char->Bool
  Returns true if the character is in the ranges [A-Z][a-z][0-9].

Totality: total
Visibility: public export
isSpace : Char->Bool
  Returns true if the character is a whitespace character.

Totality: total
Visibility: public export
isNL : Char->Bool
  Returns true if the character represents a new line.

Totality: total
Visibility: public export
toUpper : Char->Char
  Convert a letter to the corresponding upper-case letter, if any.
Non-letters are ignored.

Totality: total
Visibility: public export
toLower : Char->Char
  Convert a letter to the corresponding lower-case letter, if any.
Non-letters are ignored.

Totality: total
Visibility: public export
isHexDigit : Char->Bool
  Returns true if the character is a hexadecimal digit i.e. in the range
[0-9][a-f][A-F].

Totality: total
Visibility: public export
isOctDigit : Char->Bool
  Returns true if the character is an octal digit.

Totality: total
Visibility: public export
isControl : Char->Bool
  Returns true if the character is a control character.

Totality: total
Visibility: public export
chr : Int->Char
  Convert the number to its backend dependent (usually Unicode) Char
equivalent.

Totality: total
Visibility: public export
ord : Char->Int
  Return the backend dependent (usually Unicode) numerical equivalent of the Char.

Totality: total
Visibility: public export
pi : Double
Totality: total
Visibility: public export
euler : Double
Totality: total
Visibility: public export
exp : Double->Double
Totality: total
Visibility: public export
log : Double->Double
Totality: total
Visibility: public export
pow : Double->Double->Double
Totality: total
Visibility: public export
sin : Double->Double
Totality: total
Visibility: public export
cos : Double->Double
Totality: total
Visibility: public export
tan : Double->Double
Totality: total
Visibility: public export
asin : Double->Double
Totality: total
Visibility: public export
acos : Double->Double
Totality: total
Visibility: public export
atan : Double->Double
Totality: total
Visibility: public export
sinh : Double->Double
Totality: total
Visibility: public export
cosh : Double->Double
Totality: total
Visibility: public export
tanh : Double->Double
Totality: total
Visibility: public export
sqrt : Double->Double
Totality: total
Visibility: public export
floor : Double->Double
Totality: total
Visibility: public export
ceiling : Double->Double
Totality: total
Visibility: public export
countFrom : n-> (n->n) ->Streamn
Totality: total
Visibility: public export
takeUntil : (n->Bool) ->Streamn->Listn
Visibility: public export
takeBefore : (n->Bool) ->Streamn->Listn
Visibility: public export
interfaceRange : Type->Type
Parameters: a
Constructor: 
MkRange

Methods:
rangeFromTo : a->a->Lista
rangeFromThenTo : a->a->a->Lista
rangeFrom : a->Streama
rangeFromThen : a->a->Streama

Implementations:
RangeNat
(Integrala, (Orda, Nega)) =>Rangea
RangeChar
rangeFromTo : Rangea=>a->a->Lista
Totality: total
Visibility: public export
rangeFromThenTo : Rangea=>a->a->a->Lista
Totality: total
Visibility: public export
rangeFrom : Rangea=>a->Streama
Totality: total
Visibility: public export
rangeFromThen : Rangea=>a->a->Streama
Totality: total
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.Uninhabited.html b/prelude/docs/Prelude.Uninhabited.html index f3b63f90f6..42c2a879d4 100644 --- a/prelude/docs/Prelude.Uninhabited.html +++ b/prelude/docs/Prelude.Uninhabited.html @@ -61,4 +61,4 @@ -

Prelude.Uninhabited(source)

Definitions

interfaceUninhabited : Type->Type
  A canonical proof that some type is empty.

Parameters: t
Constructor: 
MkUninhabited

Methods:
uninhabited : t->Void
  If I have a t, I've had a contradiction.
@ t the uninhabited type

Implementations:
Uninhabited (Nothing=Justx)
Uninhabited (Justx=Nothing)
Uninhabited (Yesp=Noq)
Uninhabited (Nop=Yesq)
Uninhabited (Leftp=Rightq)
Uninhabited (Rightp=Leftq)
Either (Uninhabiteda) (Uninhabitedb) =>Uninhabited (a, b)
Uninhabiteda=>Uninhabitedb=>Uninhabited (Eitherab)
UninhabitedVoid
Uninhabited (True=False)
Uninhabited (False=True)
uninhabited : Uninhabitedt=>t->Void
  If I have a t, I've had a contradiction.
@ t the uninhabited type

Totality: total
Visibility: public export
void : (0_ : Void) ->a
  The eliminator for the `Void` type.

Totality: total
Visibility: public export
absurd : Uninhabitedt=>t->a
  Use an absurd assumption to discharge a proof obligation.
@ t some empty type
@ a the goal type
@ h the contradictory hypothesis

Totality: total
Visibility: public export
\ No newline at end of file +

Prelude.Uninhabited(source)

Definitions

interfaceUninhabited : Type->Type
  A canonical proof that some type is empty.

Parameters: t
Constructor: 
MkUninhabited

Methods:
uninhabited : t->Void
  If I have a t, I've had a contradiction.
@ t the uninhabited type

Implementations:
Uninhabited (Nothing=Justx)
Uninhabited (Justx=Nothing)
Uninhabited (Yesp=Noq)
Uninhabited (Nop=Yesq)
Uninhabited (Leftp=Rightq)
Uninhabited (Rightp=Leftq)
Either (Uninhabiteda) (Uninhabitedb) =>Uninhabited (a, b)
Uninhabiteda=>Uninhabitedb=>Uninhabited (Eitherab)
UninhabitedVoid
Uninhabited (True=False)
Uninhabited (False=True)
uninhabited : Uninhabitedt=>t->Void
  If I have a t, I've had a contradiction.
@ t the uninhabited type

Totality: total
Visibility: public export
void : (0_ : Void) ->a
  The eliminator for the `Void` type.

Totality: total
Visibility: public export
absurd : Uninhabitedt=>t->a
  Use an absurd assumption to discharge a proof obligation.
@ t some empty type
@ a the goal type
@ h the contradictory hypothesis

Totality: total
Visibility: public export
\ No newline at end of file diff --git a/prelude/docs/Prelude.html b/prelude/docs/Prelude.html index 8e73ffd375..3c6b402249 100644 --- a/prelude/docs/Prelude.html +++ b/prelude/docs/Prelude.html @@ -61,4 +61,4 @@ -

Prelude(source)

Reexports

importpublic Builtin
importpublic PrimIO
importpublic Prelude.Basics as Prelude
importpublic Prelude.Cast as Prelude
importpublic Prelude.EqOrd as Prelude
importpublic Prelude.Interfaces as Prelude
importpublic Prelude.Interpolation as Prelude
importpublic Prelude.IO as Prelude
importpublic Prelude.Num as Prelude
importpublic Prelude.Ops as Prelude
importpublic Prelude.Show as Prelude
importpublic Prelude.Types as Prelude
importpublic Prelude.Uninhabited as Prelude
\ No newline at end of file +

Prelude(source)

Reexports

importpublic Builtin
importpublic PrimIO
importpublic Prelude.Basics as Prelude
importpublic Prelude.Cast as Prelude
importpublic Prelude.EqOrd as Prelude
importpublic Prelude.Interfaces as Prelude
importpublic Prelude.Interpolation as Prelude
importpublic Prelude.IO as Prelude
importpublic Prelude.Num as Prelude
importpublic Prelude.Ops as Prelude
importpublic Prelude.Show as Prelude
importpublic Prelude.Types as Prelude
importpublic Prelude.Uninhabited as Prelude
\ No newline at end of file diff --git a/prelude/docs/PrimIO.html b/prelude/docs/PrimIO.html index ddd419971f..98d2a86cf5 100644 --- a/prelude/docs/PrimIO.html +++ b/prelude/docs/PrimIO.html @@ -61,4 +61,4 @@ -

PrimIO(source)

Definitions

dataIORes : Type->Type
Totality: total
Visibility: public export
Constructor: 
MkIORes : a-> (1_ : %World) ->IOResa
PrimIO : Type->Type
  Idris's primitive IO, for building abstractions on top of.

Totality: total
Visibility: public export
dataIO : Type->Type
  The internal representation of I/O computations.

Totality: total
Visibility: export
Constructor: 
MkIO : (1_ : PrimIOa) ->IOa
prim__io_pure : a->PrimIOa
Totality: total
Visibility: export
io_pure : a->IOa
Totality: total
Visibility: export
prim__io_bind : (1_ : PrimIOa) -> (1_ : (a->PrimIOb)) ->PrimIOb
Totality: total
Visibility: export
io_bind : (1_ : IOa) -> (1_ : (a->IOb)) ->IOb
Totality: total
Visibility: export
dataPtr : Type->Type
Totality: total
Visibility: public export
dataAnyPtr : Type
Totality: total
Visibility: public export
dataGCPtr : Type->Type
Totality: total
Visibility: public export
dataGCAnyPtr : Type
Totality: total
Visibility: public export
dataThreadID : Type
Totality: total
Visibility: public export
fromPrim : (1_ : ((1_ : %World) ->IOResa)) ->IOa
Totality: total
Visibility: export
toPrim : (1_ : IOa) ->PrimIOa
Totality: total
Visibility: export
prim__nullAnyPtr : AnyPtr->Int
prim__getNullAnyPtr : AnyPtr
prim__castPtr : AnyPtr->Ptrt
Totality: total
Visibility: export
prim__forgetPtr : Ptrt->AnyPtr
Totality: total
Visibility: export
prim__nullPtr : Ptrt->Int
Totality: total
Visibility: export
unsafePerformIO : IOa->a
Totality: total
Visibility: export
\ No newline at end of file +

PrimIO(source)

Definitions

dataIORes : Type->Type
Totality: total
Visibility: public export
Constructor: 
MkIORes : a-> (1_ : %World) ->IOResa
PrimIO : Type->Type
  Idris's primitive IO, for building abstractions on top of.

Totality: total
Visibility: public export
dataIO : Type->Type
  The internal representation of I/O computations.

Totality: total
Visibility: export
Constructor: 
MkIO : (1_ : PrimIOa) ->IOa
prim__io_pure : a->PrimIOa
Totality: total
Visibility: export
io_pure : a->IOa
Totality: total
Visibility: export
prim__io_bind : (1_ : PrimIOa) -> (1_ : (a->PrimIOb)) ->PrimIOb
Totality: total
Visibility: export
io_bind : (1_ : IOa) -> (1_ : (a->IOb)) ->IOb
Totality: total
Visibility: export
dataPtr : Type->Type
Totality: total
Visibility: public export
dataAnyPtr : Type
Totality: total
Visibility: public export
dataGCPtr : Type->Type
Totality: total
Visibility: public export
dataGCAnyPtr : Type
Totality: total
Visibility: public export
dataThreadID : Type
Totality: total
Visibility: public export
fromPrim : (1_ : ((1_ : %World) ->IOResa)) ->IOa
Totality: total
Visibility: export
toPrim : (1_ : IOa) ->PrimIOa
Totality: total
Visibility: export
prim__nullAnyPtr : AnyPtr->Int
prim__getNullAnyPtr : AnyPtr
prim__castPtr : AnyPtr->Ptrt
Totality: total
Visibility: export
prim__forgetPtr : Ptrt->AnyPtr
Totality: total
Visibility: export
prim__nullPtr : Ptrt->Int
Totality: total
Visibility: export
unsafePerformIO : IOa->a
Totality: total
Visibility: export
\ No newline at end of file diff --git a/prelude/index.html b/prelude/index.html index f7937be0de..40a6e2fc36 100644 --- a/prelude/index.html +++ b/prelude/index.html @@ -61,4 +61,4 @@ -

Package prelude - Namespaces

\ No newline at end of file +

Package prelude - Namespaces

\ No newline at end of file diff --git a/test/docs/Test.Golden.html b/test/docs/Test.Golden.html index ebd52a11da..32fe516355 100644 --- a/test/docs/Test.Golden.html +++ b/test/docs/Test.Golden.html @@ -131,4 +131,4 @@ ``` assuming that the test runner is compiled to an executable named `runtests`. -

Definitions

recordOptions : Type
  Options for the test driver.

Totality: total
Visibility: public export
Constructor: 
MkOptions : String->MaybeString->Maybe (String->Bool) ->Bool->Bool->Bool->Nat->MaybeString->Options

Projections:
.codegen : Options->MaybeString
  Which codegen should we use?
.color : Options->Bool
  Should we use colors?
.exeUnderTest : Options->String
  Name of the idris2 executable
.failureFile : Options->MaybeString
  Should we write the list of failing cases to a file?
.interactive : Options->Bool
  Should we run the test suite interactively?
.onlyNames : Options->Maybe (String->Bool)
  Should we only run some specific cases?
.threads : Options->Nat
  How many threads should we use?
.timing : Options->Bool
  Should we time and display the tests
.exeUnderTest : Options->String
  Name of the idris2 executable

Visibility: public export
exeUnderTest : Options->String
  Name of the idris2 executable

Visibility: public export
.codegen : Options->MaybeString
  Which codegen should we use?

Visibility: public export
codegen : Options->MaybeString
  Which codegen should we use?

Visibility: public export
.onlyNames : Options->Maybe (String->Bool)
  Should we only run some specific cases?

Visibility: public export
onlyNames : Options->Maybe (String->Bool)
  Should we only run some specific cases?

Visibility: public export
.interactive : Options->Bool
  Should we run the test suite interactively?

Visibility: public export
interactive : Options->Bool
  Should we run the test suite interactively?

Visibility: public export
.color : Options->Bool
  Should we use colors?

Visibility: public export
color : Options->Bool
  Should we use colors?

Visibility: public export
.timing : Options->Bool
  Should we time and display the tests

Visibility: public export
timing : Options->Bool
  Should we time and display the tests

Visibility: public export
.threads : Options->Nat
  How many threads should we use?

Visibility: public export
threads : Options->Nat
  How many threads should we use?

Visibility: public export
.failureFile : Options->MaybeString
  Should we write the list of failing cases to a file?

Visibility: public export
failureFile : Options->MaybeString
  Should we write the list of failing cases to a file?

Visibility: public export
initOptions : String->Bool->Options
Visibility: export
usage : String
Visibility: export
options : ListString->IO (MaybeOptions)
  Process the command line options.

Visibility: export
runTest : Options->String->IOResult
  Run the specified Golden test with the supplied options.
See the module documentation for more information.
@testPath the directory that contains the test.

Visibility: export
pathLookup : ListString->IO (MaybeString)
  Find the first occurrence of an executable on `PATH`.

Visibility: export
dataRequirement : Type
  Some test may involve Idris' backends and have requirements.
We define here the ones supported by Idris

Totality: total
Visibility: public export
Constructors:
C : Requirement
Chez : Requirement
Node : Requirement
Racket : Requirement
Gambit : Requirement

Hints:
EqRequirement
ShowRequirement
checkRequirement : Requirement->IO (MaybeString)
Visibility: export
findCG : IO (MaybeString)
Visibility: export
dataCodegen : Type
  A choice of a codegen

Totality: total
Visibility: public export
Constructors:
Nothing : Codegen
  Do NOT pass a cg argument to the executable being tested
Default : Codegen
  Use whatever the test runner was passed at the toplevel,
and if nothing was passed guess a sensible default using findCG
Just : Requirement->Codegen
  Use exactly the given requirement
toList : Codegen->ListRequirement
Visibility: export
recordTestPool : Type
  A test pool is characterised by
+ a name
+ a list of requirement
+ a choice of codegen (overriding the default)
+ and a list of directory paths

Totality: total
Visibility: public export
Constructor: 
MkTestPool : String->ListRequirement->Codegen->ListString->TestPool

Projections:
.codegen : TestPool->Codegen
.constraints : TestPool->ListRequirement
.poolName : TestPool->String
.testCases : TestPool->ListString
.poolName : TestPool->String
Visibility: public export
poolName : TestPool->String
Visibility: public export
.constraints : TestPool->ListRequirement
Visibility: public export
constraints : TestPool->ListRequirement
Visibility: public export
.codegen : TestPool->Codegen
Visibility: public export
codegen : TestPool->Codegen
Visibility: public export
.testCases : TestPool->ListString
Visibility: public export
testCases : TestPool->ListString
Visibility: public export
testsInDir : String-> {default (constTrue) _ : (String->Bool)} ->String-> {default [] _ : ListRequirement} -> {defaultNothing_ : Codegen} ->IOTestPool
  Find all the test in the given directory.

Visibility: export
filterTests : Options->ListString->ListString
  Only keep the tests that have been asked for

Visibility: export
recordSummary : Type
  The summary of a test pool run

Totality: total
Visibility: public export
Constructor: 
MkSummary : ListString->ListString->Summary

Projections:
.failure : Summary->ListString
.success : Summary->ListString

Hints:
MonoidSummary
SemigroupSummary
.success : Summary->ListString
Visibility: public export
success : Summary->ListString
Visibility: public export
.failure : Summary->ListString
Visibility: public export
failure : Summary->ListString
Visibility: public export
initSummary : Summary
  A new, blank summary

Visibility: export
updateSummary : Result->Summary->Summary
  Update the summary to contain the given result

Visibility: export
bulkUpdateSummary : ListResult->Summary->Summary
  Update the summary to contain the given results

Visibility: export
dataThreadInstruction : Type
  An instruction to a thread which runs tests

Totality: total
Visibility: public export
Constructors:
Run : String->ThreadInstruction
  A test to run
Stop : ThreadInstruction
  An indication for the thread to stop
testSender : ChannelThreadInstruction->Nat->ListString->IO ()
  Sends the given tests on the given @Channel@, then sends `nThreads` many
'Stop' @ThreadInstruction@s to stop the threads running the tests.

@testChan The channel to send the tests over.
@nThreads The number of threads being used to run the tests.
@tests The list of tests to send to the runners/threads.

Visibility: export
dataThreadResult : Type
  A result from a test-runner/thread

Totality: total
Visibility: public export
Constructors:
Res : Result->ThreadResult
  The result of running a test
Done : ThreadResult
  An indication that the thread was told to stop
testReceiver : ChannelThreadResult->Summary->ChannelSummary->Nat->IO ()
  Receives results on the given @Channel@, accumulating them as a @Summary@.
When all results have been received (i.e. @nThreads@ many 'Done'
@ThreadInstruction@s have been encountered), send the resulting Summary over
the @accChan@ Channel (necessary to be able to @fork@ this function and
still obtain the Summary at the end).

@resChan The channel to receives the results on.
@acc The Summary acting as an accumulator.
@accChan The Channel to send the final Summary over.
@nThreads The number of threads being used to run the tests.

Visibility: export
poolRunner : Options->TestPool->IOSummary
  A runner for a test pool. If there are tests in the @TestPool@ that we want
to run, spawns `opts.threads` many runners and sends them the tests,
collecting all the results in the @Summary@ returned at the end.

@opts The options for the TestPool.
@pool The TestPool to run.

Visibility: export
runnerWith : Options->ListTestPool->IO ()
Visibility: export
runner : ListTestPool->IO ()
  A runner for a whole test suite

Visibility: export
\ No newline at end of file +

Definitions

recordOptions : Type
  Options for the test driver.

Totality: total
Visibility: public export
Constructor: 
MkOptions : String->MaybeString->Maybe (String->Bool) ->Bool->Bool->Bool->Nat->MaybeString->Options

Projections:
.codegen : Options->MaybeString
  Which codegen should we use?
.color : Options->Bool
  Should we use colors?
.exeUnderTest : Options->String
  Name of the idris2 executable
.failureFile : Options->MaybeString
  Should we write the list of failing cases to a file?
.interactive : Options->Bool
  Should we run the test suite interactively?
.onlyNames : Options->Maybe (String->Bool)
  Should we only run some specific cases?
.threads : Options->Nat
  How many threads should we use?
.timing : Options->Bool
  Should we time and display the tests
.exeUnderTest : Options->String
  Name of the idris2 executable

Visibility: public export
exeUnderTest : Options->String
  Name of the idris2 executable

Visibility: public export
.codegen : Options->MaybeString
  Which codegen should we use?

Visibility: public export
codegen : Options->MaybeString
  Which codegen should we use?

Visibility: public export
.onlyNames : Options->Maybe (String->Bool)
  Should we only run some specific cases?

Visibility: public export
onlyNames : Options->Maybe (String->Bool)
  Should we only run some specific cases?

Visibility: public export
.interactive : Options->Bool
  Should we run the test suite interactively?

Visibility: public export
interactive : Options->Bool
  Should we run the test suite interactively?

Visibility: public export
.color : Options->Bool
  Should we use colors?

Visibility: public export
color : Options->Bool
  Should we use colors?

Visibility: public export
.timing : Options->Bool
  Should we time and display the tests

Visibility: public export
timing : Options->Bool
  Should we time and display the tests

Visibility: public export
.threads : Options->Nat
  How many threads should we use?

Visibility: public export
threads : Options->Nat
  How many threads should we use?

Visibility: public export
.failureFile : Options->MaybeString
  Should we write the list of failing cases to a file?

Visibility: public export
failureFile : Options->MaybeString
  Should we write the list of failing cases to a file?

Visibility: public export
initOptions : String->Bool->Options
Visibility: export
usage : String
Visibility: export
options : ListString->IO (MaybeOptions)
  Process the command line options.

Visibility: export
runTest : Options->String->IOResult
  Run the specified Golden test with the supplied options.
See the module documentation for more information.
@testPath the directory that contains the test.

Visibility: export
pathLookup : ListString->IO (MaybeString)
  Find the first occurrence of an executable on `PATH`.

Visibility: export
dataRequirement : Type
  Some test may involve Idris' backends and have requirements.
We define here the ones supported by Idris

Totality: total
Visibility: public export
Constructors:
C : Requirement
Chez : Requirement
Node : Requirement
Racket : Requirement
Gambit : Requirement

Hints:
EqRequirement
ShowRequirement
checkRequirement : Requirement->IO (MaybeString)
Visibility: export
findCG : IO (MaybeString)
Visibility: export
dataCodegen : Type
  A choice of a codegen

Totality: total
Visibility: public export
Constructors:
Nothing : Codegen
  Do NOT pass a cg argument to the executable being tested
Default : Codegen
  Use whatever the test runner was passed at the toplevel,
and if nothing was passed guess a sensible default using findCG
Just : Requirement->Codegen
  Use exactly the given requirement
toList : Codegen->ListRequirement
Visibility: export
recordTestPool : Type
  A test pool is characterised by
+ a name
+ a list of requirement
+ a choice of codegen (overriding the default)
+ and a list of directory paths

Totality: total
Visibility: public export
Constructor: 
MkTestPool : String->ListRequirement->Codegen->ListString->TestPool

Projections:
.codegen : TestPool->Codegen
.constraints : TestPool->ListRequirement
.poolName : TestPool->String
.testCases : TestPool->ListString
.poolName : TestPool->String
Visibility: public export
poolName : TestPool->String
Visibility: public export
.constraints : TestPool->ListRequirement
Visibility: public export
constraints : TestPool->ListRequirement
Visibility: public export
.codegen : TestPool->Codegen
Visibility: public export
codegen : TestPool->Codegen
Visibility: public export
.testCases : TestPool->ListString
Visibility: public export
testCases : TestPool->ListString
Visibility: public export
testsInDir : String-> {default (constTrue) _ : (String->Bool)} ->String-> {default [] _ : ListRequirement} -> {defaultNothing_ : Codegen} ->IOTestPool
  Find all the test in the given directory.

Visibility: export
filterTests : Options->ListString->ListString
  Only keep the tests that have been asked for

Visibility: export
recordSummary : Type
  The summary of a test pool run

Totality: total
Visibility: public export
Constructor: 
MkSummary : ListString->ListString->Summary

Projections:
.failure : Summary->ListString
.success : Summary->ListString

Hints:
MonoidSummary
SemigroupSummary
.success : Summary->ListString
Visibility: public export
success : Summary->ListString
Visibility: public export
.failure : Summary->ListString
Visibility: public export
failure : Summary->ListString
Visibility: public export
initSummary : Summary
  A new, blank summary

Visibility: export
updateSummary : Result->Summary->Summary
  Update the summary to contain the given result

Visibility: export
bulkUpdateSummary : ListResult->Summary->Summary
  Update the summary to contain the given results

Visibility: export
dataThreadInstruction : Type
  An instruction to a thread which runs tests

Totality: total
Visibility: public export
Constructors:
Run : String->ThreadInstruction
  A test to run
Stop : ThreadInstruction
  An indication for the thread to stop
testSender : ChannelThreadInstruction->Nat->ListString->IO ()
  Sends the given tests on the given @Channel@, then sends `nThreads` many
'Stop' @ThreadInstruction@s to stop the threads running the tests.

@testChan The channel to send the tests over.
@nThreads The number of threads being used to run the tests.
@tests The list of tests to send to the runners/threads.

Visibility: export
dataThreadResult : Type
  A result from a test-runner/thread

Totality: total
Visibility: public export
Constructors:
Res : Result->ThreadResult
  The result of running a test
Done : ThreadResult
  An indication that the thread was told to stop
testReceiver : ChannelThreadResult->Summary->ChannelSummary->Nat->IO ()
  Receives results on the given @Channel@, accumulating them as a @Summary@.
When all results have been received (i.e. @nThreads@ many 'Done'
@ThreadInstruction@s have been encountered), send the resulting Summary over
the @accChan@ Channel (necessary to be able to @fork@ this function and
still obtain the Summary at the end).

@resChan The channel to receives the results on.
@acc The Summary acting as an accumulator.
@accChan The Channel to send the final Summary over.
@nThreads The number of threads being used to run the tests.

Visibility: export
poolRunner : Options->TestPool->IOSummary
  A runner for a test pool. If there are tests in the @TestPool@ that we want
to run, spawns `opts.threads` many runners and sends them the tests,
collecting all the results in the @Summary@ returned at the end.

@opts The options for the TestPool.
@pool The TestPool to run.

Visibility: export
runnerWith : Options->ListTestPool->IO ()
Visibility: export
runner : ListTestPool->IO ()
  A runner for a whole test suite

Visibility: export
\ No newline at end of file diff --git a/test/index.html b/test/index.html index b1522b0758..bfa085f3df 100644 --- a/test/index.html +++ b/test/index.html @@ -61,4 +61,4 @@ -

Package test - Namespaces

\ No newline at end of file +

Package test - Namespaces

\ No newline at end of file