Fix bugs in Variant and add Maybe