take3 :: [Int] -> [Triangle]
take3 =
  take3' []
  where
      take3' acc [] = acc
      take3' acc ints' = take3' ((i,j,k):acc) rest
        where [i,j,k] = take 3 ints'
              rest    = drop 3 ints'
take3 :: [Int] -> [Triangle]
take3 =
  take3' []
  where
      take3' acc [] = acc
      take3' acc ints' = take3' ((i,j,k):acc) rest
        where [i,j,k] = take 3 ints'
              rest    = drop 3 ints'
take3 =
  take3' []
  where
      take3' acc [] = acc
      take3' acc ints' = take3' ((i,j,k):acc) rest
        where [i,j,k] = take 3 ints'
              rest    = drop 3 ints'