Implementation-wise, it's no so difficult to include - the lexer needs to be tweaked. But it seems like a specialised use-case that will only affect a minority of users is probably not worthwhile as an extension to the language/compiler.
Maybe you can try using OverloadedStrings and implement this as a library?
```
newtype Binary = Binary Integer
deriving Num
instance IsString Binary where
fromString binaryLiteral = error "Code here to parse binary literal with underscores"
binaryVal :: Binary
binaryVal = "1101_1110_0101"
```
Hope that helps,
Rahul