The identity function on types, used primarily for its Monad
instance.
The identity monad is useful together with monad transformers to construct monads for particular
purposes. Additionally, it can be used with do
-notation in order to use control structures such as
local mutability, for
-loops, and early returns in code that does not otherwise use monads.
Examples:
def containsFive (xs : List Nat) : Bool := Id.run do
for x in xs do
if x == 5 then return true
return false
#eval containsFive [1, 3, 5, 7]
true
Instances For
@[always_inline]
Equations
- One or more equations did not get rendered due to their size.
The identity monad has a bind
operator.
Equations
Instances For
Equations
- Id.instOfNat = inferInstanceAs (OfNat α n)