- Built-in
- User defined
let makeUser = \(user : Text) ->
let home = "/home/${user}"
let privateKey = "${home}/.ssh/id_ed25519"
let publicKey = "${privateKey}.pub"
in { home, privateKey, publicKey }
in [ makeUser "bill"
, makeUser "jane"
]
- Primitive types
- Lists
- Unions
- Records and Record completion operator
- Optional values
- Maps
- JSON/Type
- Really hard to write recursive types
- No support for record fields autocompletion
- Dhall formatter removes any comment that is not in the beggining of the file
- Only can compare booleans, so it's impossible to write something like
Map.lookup
for example
- Simple, functional, strongly typed
- Embrace limitations