# Übungsaufgabe 2: Maybe (optional)

## Einführung

Öffne GHCi und versuche, eine leere Liste an die Funktion *head* zu übergeben. Was passiert?  

## Anweisungen
Die Standardfunktionen *head*, *tail*, *last* und *init* sind für leere Listen problematisch, weil sie Fehler werfen. Dein Ziel ist es, eigene Versionen dieser Funktionen zu schreiben, die nie fehlschlagen. Die Funktionen sollen *Just x* zurückgeben, wenn die Liste mindestens ein Element enthält, und *Nothing*, wenn die Liste leer ist.

So könnte die Typannotation deiner sicheren Funktion beispielsweise aussehen:
```safeHead :: [a] -> Maybe a```


## Ausführen und Testen
Kompiliere den Code, führe das Programm aus und überprüfe die Ausgaben. Alle Ausgaben sollten *True* sein, wenn *Just* und *Maybe* korrekt implementiert wurden.

