isEmpty, head.isEmpty, head.head... Why not pattern match?