Idris2/libs/base/Data/Fuel.idr
2020-06-02 17:20:42 +02:00

21 lines
382 B
Idris

module Data.Fuel
%default total
||| Fuel for running total operations potentially indefinitely.
public export
data Fuel = Dry | More (Lazy Fuel)
||| Provide `n` units of fuel.
export
limit : Nat -> Fuel
limit Z = Dry
limit (S n) = More (limit n)
||| Provide fuel indefinitely.
||| This function is fundamentally partial.
partial
export
forever : Fuel
forever = More forever