module Fold.ShortcutNonempty.Examples.Interesting where

import Fold.ShortcutNonempty.Type

import Data.Function (id)
import Data.Void (absurd)

{-| The first input (tenacious) -}
first :: ShortcutNonemptyFold a a
first :: forall a. ShortcutNonemptyFold a a
first = ShortcutNonemptyFold
  { initial :: a -> Vitality a Void
initial = forall a b. a -> Vitality a b
Dead
  , step :: Void -> a -> Vitality a Void
step = forall a. Void -> a
absurd
  , extractDead :: a -> a
extractDead = forall a. a -> a
id
  , extractLive :: Void -> a
extractLive = forall a. Void -> a
absurd
  }