objectIdentifier :: Word16 -> Word32 -> Maybe ObjectIdentifier
objectIdentifier ot inum = ObjectIdentifier <$> rawValue
  where rawValue = (+) <$> inum' <*> ot'
        inum'
          | inum > 0x3FFFFF = Nothing
          | otherwise       = Just inum
        ot'
          | ot > 0x3FF      = Nothing
          | otherwise       = Just $ shiftL (fromIntegral ot) 22
objectIdentifier :: Word16 -> Word32 -> Maybe ObjectIdentifier
objectIdentifier ot inum = ObjectIdentifier <$> rawValue
  where rawValue = (+) <$> inum' <*> ot'
        inum'
          | inum > 0x3FFFFF = Nothing
          | otherwise       = Just inum
        ot'
          | ot > 0x3FF      = Nothing
          | otherwise       = Just $ shiftL (fromIntegral ot) 22
objectIdentifier ot inum = ObjectIdentifier <$> rawValue
  where rawValue = (+) <$> inum' <*> ot'
        inum'
          | inum > 0x3FFFFF = Nothing
          | otherwise       = Just inum
        ot'
          | ot > 0x3FF      = Nothing
          | otherwise       = Just $ shiftL (fromIntegral ot) 22