Find palindromic numbers in both binary and ternary bases

You are encouraged to solve this task according to the task description, using any language you may know.
Task

   Find and show (in decimal) the first six numbers (non-negative integers) that are   palindromes   in   both:
   base 2
   base 3
   Display   0   (zero) as the first number found, even though some other definitions ignore it.
   Optionally, show the decimal number found in its binary and ternary form.
   Show all output here.


It's permissible to assume the first two numbers and simply list them.



See also
   Sequence A60792,   numbers that are palindromic in bases 2 and 3 on The On-Line Encyclopedia of Integer Sequences.


import Data.Char (digitToInt, intToDigit, isDigit)
import Data.List (transpose, unwords)
import Numeric (readInt, showIntAtBase)
 
---------- PALINDROMIC IN BOTH BINARY AND TERNARY --------
 
dualPalindromics :: [Integer]
dualPalindromics =
  0 :
  1 :
  take
    4
    ( filter
        isBinPal
        (readBase3 . base3Palindrome <$> [1 ..])
    )
 
base3Palindrome :: Integer -> String
base3Palindrome =
  ((<>) <*> (('1' :) . reverse)) . showBase 3
 
isBinPal :: Integer -> Bool
isBinPal n =
  ( \s ->
      ( \(q, r) ->
          (1 == r)
            && drop (succ q) s == reverse (take q s)
      )
        $ quotRem (length s) 2
  )
    $ showBase 2 n
 
--------------------------- TEST -------------------------
main :: IO ()
main =
  mapM_
    putStrLn
    ( unwords
        <$> transpose
          ( ( fmap
                =<< flip justifyLeft ' '
                  . succ
                  . maximum
                  . fmap length
            )
              <$> transpose
                ( ["Decimal", "Ternary", "Binary"] :
                  fmap
                    ( (<*>) [show, showBase 3, showBase 2]
                        . return
                    )
                    dualPalindromics
                )
          )
    )
  where
    justifyLeft n c s = take n (s <> replicate n c)
 
-------------------------- BASES -------------------------
 
readBase3 :: String -> Integer
readBase3 = fst . head . readInt 3 isDigit digitToInt
 
showBase :: Integer -> Integer -> String
showBase base n = showIntAtBase base intToDigit n []