never executed always true always false
    1 module HelVM.HelIO.ListLike.ListLikeMay where
    2 
    3 import           HelVM.HelIO.Extra
    4 
    5 import           Data.ListLike
    6 
    7 import           Prelude           hiding (break, divMod, drop, fromList, init, last, length, null, splitAt, swap, toList, uncons)
    8 
    9 uncons2 :: ListLike full item => full -> Maybe (item, item, full)
   10 uncons2 = uncons2' <=< uncons where
   11   uncons2' (e , l') = uncons2'' <$> uncons l' where
   12     uncons2'' (e' , l'') = (e , e' , l'')
   13 
   14 
   15 unsnoc :: ListLike full item => full -> Maybe (full, item)
   16 unsnoc l = toMaybe (null l) (init l , last l)