# Control.ST.Loop

pure : (result : ty) -> STransLoop m ty (out_fn result) out_fn
data STransLoop : (m : Type -> Type) -> (ty : Type) -> Resources -> (ty -> Resources) -> Type
  Bind : STrans m a st1 st2_fn -> ((result : a) -> Inf (STransLoop m b (st2_fn result) st3_fn)) -> STransLoop m b st1 st3_fn
  Pure : (result : ty) -> STransLoop m ty (out_fn result) out_fn
(>>=) : STrans m a st1 st2_fn -> ((result : a) -> Inf (STransLoop m b (st2_fn result) st3_fn)) -> STransLoop m b st1 st3_fn
  Fixity
    Left associative, precedence 5