You probably want lenses.
{-# LANGUAGE TemplateHaskell #-}
import Control.Lens
data Typex = Typex
{ _level :: Int
, _coordinate :: (Int, Int)
, _connections :: [(Int,(Int,Int),Double)]
} deriving Show
makeLenses ''Typex
main :: IO ()
main = print $ [[Typex 0 (0,0) []]
,[Typex 1 (1,1) [], Typex 1 (2,2) []]
,[]]
& ix 1 . ix 0 . connections
%~ ((9,(9,9),pi):)
In this example, the the nested list is indexed (ix) into the head of the middle element, in that Typex value focused on the connections field, and there the element (9,(9,9),pi) prepended. Result:
[[Typex {_level = 0, _coordinate = (0,0), _connections = []}],[Typex {_level = 1, _coordinate = (1,1), _connections = [(9,(9,9),3.141592653589793)]},Typex {_level = 1, _coordinate = (2,2), _connections = []}],[]]