-- | Alternative application using sum type.
e_choice :: Entity
e_choice = Entity "choice" ((a ->> c) ->> (b ->> c) ->> TSum a b ->> c) defaultFixity $
  VFun $ \(VFun f) ->
    VFun $ \(VFun g) ->
      VFun $ \s ->
        case s of
          VSumL x -> f x
          VSumR x -> g x 
          _ -> undefined
e_choice :: Entity
e_choice = Entity "choice" ((a ->> c) ->> (b ->> c) ->> TSum a b ->> c) defaultFixity $
  VFun $ \(VFun f) ->
    VFun $ \(VFun g) ->
      VFun $ \s ->
        case s of
          VSumL x -> f x
          VSumR x -> g x 
          _ -> undefined
e_choice = Entity "choice" ((a ->> c) ->> (b ->> c) ->> TSum a b ->> c) defaultFixity $
  VFun $ \(VFun f) ->
    VFun $ \(VFun g) ->
      VFun $ \s ->
        case s of
          VSumL x -> f x
          VSumR x -> g x 
          _ -> undefined