úÎ\- non-portable experimentalvector-th-unbox@liyang.hu TrustworthyLet'6s consider a more complex example: suppose we want an Unbox  instance for Maybe a$. We can encode this using the pair  (Bool, a), with 'the boolean indicating whether we have Nothing or Just something. This 'encoding requires a dummy value in the Nothing case, necessitating an  additional Default (see the  data-default package) constraint. Thus: derivingUnbox "Maybe" 6 [d| (Default a, Unbox a) !Ò Maybe a !’ (Bool, a) |] / [| maybe (False, def) (\ x !’ (True, x)) |] 3 [| \ (b, x) !’ if b then Just x else Nothing |] CUnique constructor suffix for the MVector and Vector data families Quotation of the form [t| ctxt !Ò src !’ rep |] #Quotation of an expression of type  src !’ rep #Quotation of an expression of type  rep !’ src :Declarations to be spliced for the derived Unbox instance vector-th-unbox-0.2Data.Vector.Unboxed.Deriving derivingUnbox newPatExpwrap