File ghc-explicit-exception.spec of Package ghc-explicit-exception
#
# spec file for package ghc-explicit-exception
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global pkg_name explicit-exception
Name: ghc-%{pkg_name}
Version: 0.1.8
Release: 0
Summary: Exceptions which are explicit in the type signature
License: BSD-3-Clause
Group: System/Libraries
Url: https://hackage.haskell.org/package/%{pkg_name}
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
BuildRequires: ghc-Cabal-devel
# Begin cabal-rpm deps:
BuildRequires: ghc-deepseq-devel
BuildRequires: ghc-rpm-macros
BuildRequires: ghc-transformers-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# End cabal-rpm deps
%description
Synchronous and Asynchronous exceptions which are explicit in the type
signature. The first ones are very similar to 'Either' and
'Control.Monad.Error.ErrorT'. The second ones are used for 'System.IO.readFile'
and 'System.IO.hGetContents'. This package is a proposal for improved exception
handling in Haskell. It strictly separates between handling of exceptional
situations (file not found, invalid user input, see
<http://www.haskell.org/haskellwiki/Exception>) and (programming) errors
(division by zero, index out of range, see
<http://www.haskell.org/haskellwiki/Error>). Handling of the first one is
called "exception handling", whereas handling of errors is better known as
"debugging".
For applications see the packages 'midi', 'spreadsheet', 'http-monad'.
Although I'm not happy with the identifier style of the Monad Transformer
Library (partially intended for unqualified use) I have tried to adopt it for
this library, in order to let Haskell programmers get accustomed easily to it.
To do: Because many people requested it, we will provide a 'bracket' function
that frees a resource both when an exception and an error occurs, that is, it
combines exception handling and debugging. However note that freeing resources
in case of an error is dangerous and may cause further damage.
%package devel
Summary: Haskell %{pkg_name} library development files
Group: Development/Libraries/Other
Requires: %{name} = %{version}-%{release}
Requires: ghc-compiler = %{ghc_version}
Requires(post): ghc-compiler = %{ghc_version}
Requires(postun): ghc-compiler = %{ghc_version}
%description devel
This package provides the Haskell %{pkg_name} library development
files.
%prep
%setup -q -n %{pkg_name}-%{version}
%build
%ghc_lib_build
%install
%ghc_lib_install
%post devel
%ghc_pkg_recache
%postun devel
%ghc_pkg_recache
%files -f %{name}.files
%defattr(-,root,root,-)
%doc LICENSE
%files devel -f %{name}-devel.files
%defattr(-,root,root,-)
%changelog