putTerm (ListTerm value)
  | len == 0 = putNil  -- this is mentioned in the BERT spec.
  | otherwise= do
      tag 108
      put32u $ length value
      forM_ value putTerm
      putNil
  where
    len = length value
    putNil = putWord8 106
putTerm (ListTerm value)
  | len == 0 = putNil  -- this is mentioned in the BERT spec.
  | otherwise= do
      tag 108
      put32u $ length value
      forM_ value putTerm
      putNil
  where
    len = length value
    putNil = putWord8 106
putTerm (ListTerm value)
  | len == 0 = putNil  -- this is mentioned in the BERT spec.
  | otherwise= do
      tag 108
      put32u $ length value
      forM_ value putTerm
      putNil
  where
    len = length value
    putNil = putWord8 106